src/Entity/Finance/Quotation.php line 72
<?php
namespace App\Entity\Finance;
use ApiPlatform\Doctrine\Orm\Filter\SearchFilter;
use ApiPlatform\Metadata\ApiFilter;
use ApiPlatform\Metadata\ApiResource;
use ApiPlatform\Metadata\GetCollection;
use ApiPlatform\Metadata\Link;
use ApiPlatform\Metadata\Post;
use App\Dto\Common\ObservationInput;
use App\Dto\Finance\QuoteableInput;
use App\Dto\Finance\QuoteableStatusInput;
use App\Entity\Expediting\ShippingPlan;
use App\Processor\Finance\QuotationInputProcessor;
use App\Processor\Finance\QuotationObservationProcessor;
use App\Processor\Finance\QuotationStatusInputProcessor;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity]
#[ApiResource(
routePrefix: '/finance',
input: QuoteableInput::class,
order: ['id' => 'DESC'],
processor: QuotationInputProcessor::class
)]
#[ApiResource(
operations: [
new GetCollection(
uriTemplate: '/quotations/{identifier}/editions',
uriVariables: [
'identifier' => new Link(fromProperty: 'editions', fromClass: Quotation::class),
],
paginationEnabled: false,
order: ['id' => 'DESC'],
),
],
routePrefix: '/finance',
)]
#[ApiResource(
uriTemplate: '/expediting/shipping_plans/{identifier}/quotations',
operations: [new GetCollection(name: 'get_quotations_by_shipping_plan')],
uriVariables: [
'identifier' => new Link(fromProperty: 'quotations', fromClass: ShippingPlan::class),
],
)]
#[ApiResource(
operations: [
new Post(
uriTemplate: '/quotations/{identifier}/amend',
input: QuoteableInput::class,
processor: QuotationInputProcessor::class,
),
new Post(
uriTemplate: '/quotations/{identifier}/status',
input: QuoteableStatusInput::class,
processor: QuotationStatusInputProcessor::class,
),
new Post(
uriTemplate: '/quotations/{identifier}/observations',
input: ObservationInput::class,
processor: QuotationObservationProcessor::class
),
],
routePrefix: '/finance',
)]
#[ApiFilter(SearchFilter::class, properties: [
'status' => 'exact',
'number' => 'ipartial',
'shippingPlan.workOrder.reference' => 'ipartial',
])]
class Quotation extends BaseQuotation
{
}