<?phpnamespace App\V4\Model\Quote;use App\Model\Compare\DateCompare;use App\Model\Compare\NumberCompare;use App\Model\SpecificField\SpecificField;use App\Model\SpecificFieldAwareTrait;use App\Model\SpecificFieldsAwareInterface;use App\Model\Traits\BlamableTrait;use App\Model\Traits\ImportableObjectTrait;use App\Model\Traits\TimeStampableCompare;use App\V4\Model\IdSearchTrait;use App\V4\Model\QuoteSpecificField\QuoteSpecificField;use Doctrine\Common\Collections\ArrayCollection;use Doctrine\Common\Collections\Collection;use Symfony\Component\Serializer\Annotation\Groups;class QuoteSearch implements SpecificFieldsAwareInterface{ public const SPECIFIC_FIELD_CLASS_NAME = QuoteSpecificField::class; use ImportableObjectTrait; use BlamableTrait; use TimeStampableCompare; use IdSearchTrait; use SpecificFieldAwareTrait; /** * Titre de l'offre. * * @var string|null * @Groups({"quote:search"}) */ private $name; /** * Numéro de devis. * * @var string|null * @Groups({"quote:search"}) */ private $quoteNumber; /** * Numéro de contrat. * * @var string|null * @Groups({"quote:search"}) */ private $contractNumber; /** * @var array|null * @Groups({"quote:search"}) */ private $status; /** * @var string|null * @Groups({"quote:search"}) */ private $salesForecast; /** * @var DateCompare|null * @Groups({"quote:search"}) */ private $issuedAt; /** * @var DateCompare|null * @Groups({"quote:search"}) */ private $warrantlyAt; /** * @var DateCompare|null * @Groups({"quote:search"}) */ private $expiredAt; /** * @var DateCompare|null * @Groups({"quote:search"}) */ private $expectedSignedAt; /** * @var array|null * @Groups({"quote:search"}) */ private $managedBy; /** * @var NumberCompare|null * @Groups({"quote:search"}) */ private $totalExcludingVat; /** * @var float|null * @Groups({"quote:search"}) */ private $potential; /** * Mes devis. * * @var bool|null * @Groups({"quote:search"}) */ private $myQuotes; /** * contrat de maintenance ? * * @var bool|null * @Groups({"isMaintenance"}) */ private $isMaintenance; /** * @Groups({"quote:search"}) * * @var array|null */ private $prospectIds = []; /** * @var array * * @Groups({"quote:search"}) */ private $productIds = []; /** * @Groups({"quote:search"}) * * @var array|null */ private $contactIds = []; /** * @var array|null * @Groups({"quote:search"}) */ private $prospects; /** * Section de l'offre. * * @var string|null * @Groups({"quote:search"}) */ private $sectionName; /** * @var SpecificField[]|Collection * * @Groups({"prospect:search"}) */ private $specificFields; /** * @var array|null * @Groups({"quote:search"}) */ private $reason; /** * Commentaire de la raison. * * @var string|null * @Groups({"quote:search"}) */ private $reasonComment; /** * @var string|null * * @Groups({"quote:search"}) */ private $fileLabel; public function __construct() { $this->specificFields = new ArrayCollection(); } /** * {@inheritdoc} */ public function getSpecificFields(): Collection { return $this->specificFields; } /** * {@inheritdoc} */ public function getSpecificFieldByFieldId(string $id): ?SpecificField { foreach ($this->specificFields as $specificField) { if ($specificField->getFieldId() === $id) { return $specificField; } } return null; } /** * @see ImportableObjectTrait::class * * @param QuoteSpecificField $specificField * * @return $this */ public function addQuoteSpecificField(QuoteSpecificField $specificField): self { return $this->addSpecificField($specificField); } /** * {@inheritdoc} */ public function addSpecificField($specificField): SpecificFieldsAwareInterface { $this->specificFields[] = $specificField; return $this; } /** * {@inheritdoc} */ public function setSpecificFields(Collection $specificFields): self { $this->specificFields = $specificFields; return $this; } /** * @return string|null */ public function getName(): ?string { return $this->name; } /** * @param string|null $name * * @return QuoteSearch */ public function setName(?string $name): QuoteSearch { $this->name = $name; return $this; } /** * @return bool|null */ public function getMyQuotes(): ?bool { return $this->myQuotes; } /** * @param bool|null $myQuotes * * @return QuoteSearch */ public function setMyQuotes(?bool $myQuotes): QuoteSearch { $this->myQuotes = $myQuotes; return $this; } /** * @return string|null */ public function getQuoteNumber(): ?string { return $this->quoteNumber; } /** * @param string|null $quoteNumber * * @return QuoteSearch */ public function setQuoteNumber(?string $quoteNumber): QuoteSearch { $this->quoteNumber = $quoteNumber; return $this; } /** * @return string|null */ public function getSalesForecast(): ?string { return $this->salesForecast; } /** * @param string|null $salesForecast * * @return QuoteSearch */ public function setSalesForecast(?string $salesForecast): QuoteSearch { $this->salesForecast = $salesForecast; return $this; } /** * @return DateCompare|null */ public function getIssuedAt(): ?DateCompare { return $this->issuedAt; } /** * @param DateCompare|null $issuedAt * * @return QuoteSearch */ public function setIssuedAt(?DateCompare $issuedAt): QuoteSearch { $this->issuedAt = $issuedAt; return $this; } /** * @return DateCompare|null */ public function getExpectedSignedAt(): ?DateCompare { return $this->expectedSignedAt; } /** * @param DateCompare|null $expectedSignedAt * * @return QuoteSearch */ public function setExpectedSignedAt(?DateCompare $expectedSignedAt): QuoteSearch { $this->expectedSignedAt = $expectedSignedAt; return $this; } /** * @return NumberCompare|null */ public function getTotalExcludingVat(): ?NumberCompare { return $this->totalExcludingVat; } /** * @param NumberCompare|null $totalExcludingVat * * @return QuoteSearch */ public function setTotalExcludingVat(?NumberCompare $totalExcludingVat): QuoteSearch { $this->totalExcludingVat = $totalExcludingVat; return $this; } /** * @return float|null */ public function getPotential(): ?float { return $this->potential; } /** * @param float|null $potential * * @return QuoteSearch */ public function setPotential(?float $potential): QuoteSearch { $this->potential = $potential; return $this; } /** * @return array|null */ public function getProspectIds(): ?array { return $this->prospectIds; } /** * @param array|null $prospectIds * * @return QuoteSearch */ public function setProspectIds(?array $prospectIds): QuoteSearch { $this->prospectIds = $prospectIds; return $this; } /** * @return array */ public function getProductIds(): array { return $this->productIds; } /** * @param array $productIds * * @return self */ public function setProductIds(array $productIds): self { $this->productIds = $productIds; return $this; } /** * @return array|null */ public function getContactIds(): ?array { return $this->contactIds; } /** * @param array|null $contactIds * * @return QuoteSearch */ public function setContactIds(?array $contactIds): QuoteSearch { $this->contactIds = $contactIds; return $this; } /** * @return DateCompare|null */ public function getWarrantlyAt(): ?DateCompare { return $this->warrantlyAt; } /** * @param DateCompare|null $warrantlyAt * * @return QuoteSearch */ public function setWarrantlyAt(?DateCompare $warrantlyAt): QuoteSearch { $this->warrantlyAt = $warrantlyAt; return $this; } /** * @return DateCompare|null */ public function getExpiredAt(): ?DateCompare { return $this->expiredAt; } /** * @param DateCompare|null $expiredAt * * @return QuoteSearch */ public function setExpiredAt(?DateCompare $expiredAt): QuoteSearch { $this->expiredAt = $expiredAt; return $this; } /** * @return bool|null */ public function getIsMaintenance(): ?bool { return $this->isMaintenance; } /** * @param bool|null $isMaintenance * * @return QuoteSearch */ public function setIsMaintenance(?bool $isMaintenance): QuoteSearch { $this->isMaintenance = $isMaintenance; return $this; } /** * @return string|null */ public function getContractNumber(): ?string { return $this->contractNumber; } /** * @param string|null $contractNumber * * @return QuoteSearch */ public function setContractNumber(?string $contractNumber): QuoteSearch { $this->contractNumber = $contractNumber; return $this; } /** * @return array|null */ public function getProspects(): ?array { return $this->prospects; } /** * @param array|null $prospects * * @return QuoteSearch */ public function setProspects(?array $prospects): QuoteSearch { $this->prospects = $prospects; return $this; } /** * @return array|null */ public function getStatus(): ?array { return $this->status; } /** * @param array|null $status * * @return QuoteSearch */ public function setStatus(?array $status): QuoteSearch { $this->status = $status; return $this; } /** * @return array|null */ public function getManagedBy(): ?array { return $this->managedBy; } /** * @param array|null $managedBy * * @return QuoteSearch */ public function setManagedBy(?array $managedBy): QuoteSearch { $this->managedBy = $managedBy; return $this; } /** * @return string|null */ public function getSectionName(): ?string { return $this->sectionName; } /** * @param string|null $sectionName * * @return QuoteSearch */ public function setSectionName(?string $sectionName): QuoteSearch { $this->sectionName = $sectionName; return $this; } /** * @return array|null */ public function getReason(): ?array { return $this->reason; } /** * @param array|null $reason * * @return QuoteSearch */ public function setReason(?array $reason): QuoteSearch { $this->reason = $reason; return $this; } /** * @return string|null */ public function getReasonComment(): ?string { return $this->reasonComment; } /** * @param string|null $reasonComment * * @return QuoteSearch */ public function setReasonComment(?string $reasonComment): QuoteSearch { $this->reasonComment = $reasonComment; return $this; } public function getFileLabel(): ?string { return $this->fileLabel; } public function setFileLabel(?string $fileLabel): self { $this->fileLabel = $fileLabel; return $this; }}