You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

895 lines
23KB

  1. <?php
  2. namespace Lc\CaracoleBundle\Model\Order;
  3. use Doctrine\Common\Collections\ArrayCollection;
  4. use Doctrine\Common\Collections\Collection;
  5. use Doctrine\ORM\Mapping as ORM;
  6. use Lc\CaracoleBundle\Doctrine\Extension\FilterSectionInterface;
  7. use Lc\CaracoleBundle\Model\Address\AddressInterface;
  8. use Lc\CaracoleBundle\Model\Config\TaxRateInterface;
  9. use Lc\CaracoleBundle\Model\File\DocumentInterface;
  10. use Lc\CaracoleBundle\Model\PointSale\PointSaleInterface;
  11. use Lc\CaracoleBundle\Model\Section\SectionInterface;
  12. use Lc\SovBundle\Model\Ticket\TicketInterface;
  13. use Lc\CaracoleBundle\Model\User\VisitorInterface;
  14. use Lc\SovBundle\Doctrine\Pattern\AbstractLightEntity;
  15. use Lc\SovBundle\Model\User\UserInterface;
  16. abstract class OrderShopModel extends AbstractLightEntity implements FilterSectionInterface, OrderShopInterface
  17. {
  18. const DELIVERY_TYPE_HOME = 'home';
  19. const DELIVERY_TYPE_POINTSALE = 'point-sale';
  20. /**
  21. * @ORM\ManyToOne(targetEntity="Lc\SovBundle\Model\User\UserInterface", inversedBy="orderShops", fetch="EAGER")
  22. */
  23. protected $user;
  24. /**
  25. * @ORM\ManyToOne(targetEntity="Lc\CaracoleBundle\Model\User\VisitorInterface", inversedBy="orders")
  26. */
  27. protected $visitor;
  28. /**
  29. * @ORM\ManyToOne(targetEntity="Lc\CaracoleBundle\Model\Address\AddressInterface")
  30. */
  31. protected $invoiceAddress;
  32. /**
  33. * @ORM\Column(type="text", nullable=true)
  34. */
  35. protected $invoiceAddressText;
  36. /**
  37. * @ORM\Column(type="datetime", nullable=true)
  38. */
  39. protected $validationDate;
  40. /**
  41. * @ORM\Column(type="text", nullable=true)
  42. */
  43. protected $comment;
  44. /**
  45. * @ORM\Column(type="string", length=31, nullable=true)
  46. */
  47. protected $meanPayment;
  48. /**
  49. * @ORM\OneToMany(targetEntity="Lc\CaracoleBundle\Model\Order\OrderStatusHistoryInterface", mappedBy="orderShop", orphanRemoval=true, cascade={"persist"})
  50. */
  51. protected $orderStatusHistories;
  52. /**
  53. * @ORM\OneToMany(targetEntity="Lc\CaracoleBundle\Model\Order\OrderPaymentInterface", mappedBy="orderShop", orphanRemoval=true,cascade={"persist"})
  54. */
  55. protected $orderPayments;
  56. /**
  57. * @ORM\OneToMany(targetEntity="Lc\CaracoleBundle\Model\Order\OrderProductInterface", mappedBy="orderShop", cascade={"persist", "remove"}, orphanRemoval=true, fetch="EAGER")
  58. */
  59. protected $orderProducts;
  60. /**
  61. * @ORM\Column(type="text", nullable=true)
  62. */
  63. protected $deliveryInfos;
  64. /**
  65. * @ORM\ManyToOne(targetEntity="Lc\CaracoleBundle\Model\Order\OrderStatusInterface")
  66. * @ORM\JoinColumn(nullable=false)
  67. */
  68. protected $orderStatus;
  69. /**
  70. * @ORM\OneToMany(targetEntity="Lc\CaracoleBundle\Model\Order\OrderReductionCartInterface", mappedBy="orderShop", orphanRemoval=true)
  71. */
  72. protected $orderReductionCarts;
  73. /**
  74. * @ORM\OneToMany(targetEntity="Lc\CaracoleBundle\Model\Order\OrderReductionCreditInterface", mappedBy="orderShop", orphanRemoval=true)
  75. */
  76. protected $orderReductionCredits;
  77. /**
  78. * @ORM\ManyToMany(targetEntity="Lc\CaracoleBundle\Model\File\DocumentInterface", inversedBy="orderShops")
  79. */
  80. protected $documents;
  81. /**
  82. * @ORM\OneToMany(targetEntity="Lc\SovBundle\Model\Ticket\TicketInterface", mappedBy="orderShop")
  83. */
  84. protected $tickets;
  85. /**
  86. * @ORM\ManyToOne(targetEntity="Lc\CaracoleBundle\Model\Section\SectionInterface", inversedBy="orderShops")
  87. * @ORM\JoinColumn(nullable=false)
  88. */
  89. protected $section;
  90. /**
  91. * @ORM\Column(type="integer", nullable=true)
  92. */
  93. protected $cycleId;
  94. /**
  95. * @ORM\Column(type="integer", nullable=true)
  96. */
  97. protected $cycleNumber;
  98. /**
  99. * @ORM\Column(type="datetime", nullable=true)
  100. */
  101. protected $orderShopCreatedAt;
  102. /**
  103. * @ORM\Column(type="integer", nullable=true)
  104. */
  105. protected $idValidOrder;
  106. /**
  107. * @ORM\ManyToOne(targetEntity="App\Entity\Address\Address")
  108. */
  109. protected $deliveryAddress;
  110. /**
  111. * @ORM\ManyToOne(targetEntity="App\Entity\PointSale\PointSale")
  112. */
  113. protected $deliveryPointSale;
  114. /**
  115. * @ORM\Column(type="text", nullable=true)
  116. */
  117. protected $deliveryAddressText;
  118. /**
  119. * @ORM\Column(type="string", length=255, nullable=true)
  120. */
  121. protected $deliveryType;
  122. /**
  123. * @ORM\Column(type="float", nullable=true)
  124. */
  125. protected $deliveryPrice;
  126. /**
  127. * @ORM\ManyToOne(targetEntity="App\Entity\Config\TaxRate")
  128. */
  129. protected $deliveryTaxRate;
  130. /**
  131. * @ORM\Column(type="string", length=20, nullable=true)
  132. */
  133. protected $reference;
  134. /**
  135. * @ORM\ManyToOne(targetEntity="App\Entity\Order\OrderShop", inversedBy="complementaryOrderShops")
  136. */
  137. protected $mainOrderShop;
  138. /**
  139. * @ORM\OneToMany(targetEntity="App\Entity\Order\OrderShop", mappedBy="mainOrderShop")
  140. */
  141. protected $complementaryOrderShops;
  142. /**
  143. * @ORM\Column(type="boolean", nullable=true)
  144. */
  145. protected $declineComplementaryOrderShop;
  146. /**
  147. * @ORM\Column(type="boolean", nullable=true)
  148. */
  149. protected $orderAllowByAdmin;
  150. /**
  151. * @ORM\Column(type="integer", nullable=true)
  152. */
  153. protected $hasReach;
  154. /**
  155. * @ORM\Column(type="float", nullable=true)
  156. */
  157. protected $statTotal;
  158. /**
  159. * @ORM\Column(type="float", nullable=true)
  160. */
  161. protected $statTotalWithTax;
  162. /**
  163. * @ORM\Column(type="float", nullable=true)
  164. */
  165. protected $statTotalOrderProductsWithReductions;
  166. /**
  167. * @ORM\Column(type="float", nullable=true)
  168. */
  169. protected $statTotalOrderProductsWithTaxAndReductions;
  170. /**
  171. * @ORM\Column(type="float", nullable=true)
  172. */
  173. protected $statMarginOrderProductsWithReductions;
  174. /**
  175. * @ORM\Column(type="float", nullable=true)
  176. */
  177. protected $statDeliveryPriceWithReduction;
  178. /**
  179. * @ORM\Column(type="float", nullable=true)
  180. */
  181. protected $statDeliveryPriceWithTaxAndReduction;
  182. public function __construct()
  183. {
  184. $this->orderStatusHistories = new ArrayCollection();
  185. $this->orderPayments = new ArrayCollection();
  186. $this->orderProducts = new ArrayCollection();
  187. $this->orderReductionCarts = new ArrayCollection();
  188. $this->orderReductionCredits = new ArrayCollection();
  189. $this->documents = new ArrayCollection();
  190. $this->complementaryOrderShops = new ArrayCollection();
  191. $this->tickets = new ArrayCollection();
  192. }
  193. public function __toString()
  194. {
  195. if ($this->getValidationDate()) {
  196. return 'Commande du ' . $this->getValidationDate()->format('d/m/Y');
  197. } else {
  198. return 'Commande #' . $this->getId();
  199. }
  200. }
  201. public function getValidationDate(): ?\DateTimeInterface
  202. {
  203. return $this->validationDate;
  204. }
  205. public function setValidationDate(\DateTimeInterface $validationDate): self
  206. {
  207. $this->validationDate = $validationDate;
  208. return $this;
  209. }
  210. public function getUser(): ?UserInterface
  211. {
  212. return $this->user;
  213. }
  214. public function setUser(?UserInterface $user): self
  215. {
  216. $this->user = $user;
  217. return $this;
  218. }
  219. public function getInvoiceAddress(): ?AddressInterface
  220. {
  221. return $this->invoiceAddress;
  222. }
  223. public function setInvoiceAddress(?AddressInterface $invoiceAddress): self
  224. {
  225. $this->invoiceAddress = $invoiceAddress;
  226. return $this;
  227. }
  228. public function getInvoiceAddressText(): ?string
  229. {
  230. return $this->invoiceAddressText;
  231. }
  232. public function setInvoiceAddressText(string $invoiceAddressText): self
  233. {
  234. $this->invoiceAddressText = $invoiceAddressText;
  235. return $this;
  236. }
  237. public function getComment(): ?string
  238. {
  239. return $this->comment;
  240. }
  241. public function setComment(?string $comment): self
  242. {
  243. $this->comment = $comment;
  244. return $this;
  245. }
  246. public function getMeanPayment(): ?string
  247. {
  248. return $this->meanPayment;
  249. }
  250. public function setMeanPayment(string $meanPayment): self
  251. {
  252. $this->meanPayment = $meanPayment;
  253. return $this;
  254. }
  255. /**
  256. * @return Collection|OrderStatusHistoryInterface[]
  257. */
  258. public function getOrderStatusHistories(): Collection
  259. {
  260. return $this->orderStatusHistories;
  261. }
  262. public function addOrderStatusHistory(OrderStatusHistoryInterface $orderStatusHistory): self
  263. {
  264. if (!$this->orderStatusHistories->contains($orderStatusHistory)) {
  265. $this->orderStatusHistories[] = $orderStatusHistory;
  266. $orderStatusHistory->setOrderShop($this);
  267. }
  268. return $this;
  269. }
  270. public function removeOrderStatusHistory(OrderStatusHistoryInterface $orderStatusHistory): self
  271. {
  272. if ($this->orderStatusHistories->contains($orderStatusHistory)) {
  273. $this->orderStatusHistories->removeElement($orderStatusHistory);
  274. // set the owning side to null (unless already changed)
  275. if ($orderStatusHistory->getOrderShop() === $this) {
  276. $orderStatusHistory->setOrderShop(null);
  277. }
  278. }
  279. return $this;
  280. }
  281. /**
  282. * @return Collection|OrderPaymentInterface[]
  283. */
  284. public function getOrderPayments($meanPayment = null): Collection
  285. {
  286. if ($meanPayment) {
  287. $orderPaymentsReturn = new ArrayCollection();
  288. foreach ($this->orderPayments as $orderPayment) {
  289. if ($orderPayment->getMeanPayment() == $meanPayment) {
  290. $orderPaymentsReturn[] = $orderPayment;
  291. }
  292. }
  293. return $orderPaymentsReturn;
  294. }
  295. return $this->orderPayments;
  296. }
  297. public function addOrderPayment(OrderPaymentInterface $orderPayment): self
  298. {
  299. if (!$this->orderPayments->contains($orderPayment)) {
  300. $this->orderPayments[] = $orderPayment;
  301. $orderPayment->setOrderShop($this);
  302. }
  303. return $this;
  304. }
  305. public function removeOrderPayment(OrderPaymentInterface $orderPayment): self
  306. {
  307. if ($this->orderPayments->contains($orderPayment)) {
  308. $this->orderPayments->removeElement($orderPayment);
  309. // set the owning side to null (unless already changed)
  310. if ($orderPayment->getOrderShop() === $this) {
  311. $orderPayment->setOrderShop(null);
  312. }
  313. }
  314. return $this;
  315. }
  316. /**
  317. * @return Collection|OrderProductInterface[]
  318. */
  319. public function getOrderProducts(): Collection
  320. {
  321. return $this->orderProducts;
  322. }
  323. public function addOrderProduct(OrderProductInterface $orderProduct): self
  324. {
  325. if (!$this->orderProducts->contains($orderProduct)) {
  326. $this->orderProducts[] = $orderProduct;
  327. $orderProduct->setOrderShop($this);
  328. }
  329. return $this;
  330. }
  331. public function removeOrderProduct(OrderProductInterface $orderProduct): self
  332. {
  333. if ($this->orderProducts->contains($orderProduct)) {
  334. $this->orderProducts->removeElement($orderProduct);
  335. // set the owning side to null (unless already changed)
  336. if ($orderProduct->getOrderShop() === $this) {
  337. $orderProduct->setOrderShop(null);
  338. }
  339. }
  340. return $this;
  341. }
  342. public function getVisitor(): ?VisitorInterface
  343. {
  344. return $this->visitor;
  345. }
  346. public function setVisitor(?VisitorInterface $visitor): self
  347. {
  348. $this->visitor = $visitor;
  349. return $this;
  350. }
  351. public function getDeliveryInfos(): ?string
  352. {
  353. return $this->deliveryInfos;
  354. }
  355. public function setDeliveryInfos(?string $deliveryInfos): self
  356. {
  357. $this->deliveryInfos = $deliveryInfos;
  358. return $this;
  359. }
  360. public function getOrderStatus(): ?OrderStatusInterface
  361. {
  362. return $this->orderStatus;
  363. }
  364. public function setOrderStatusProtected(?OrderStatusInterface $orderStatus): self
  365. {
  366. $this->orderStatus = $orderStatus;
  367. return $this;
  368. }
  369. /**
  370. * @return Collection|OrderReductionCartInterface[]
  371. */
  372. public function getOrderReductionCarts(): Collection
  373. {
  374. return $this->orderReductionCarts;
  375. }
  376. public function addOrderReductionCart(OrderReductionCartInterface $orderReductionCart): self
  377. {
  378. if (!$this->orderReductionCarts->contains($orderReductionCart)) {
  379. $this->orderReductionCarts[] = $orderReductionCart;
  380. $orderReductionCart->setOrderShop($this);
  381. }
  382. return $this;
  383. }
  384. public function removeOrderReductionCart(OrderReductionCartInterface $orderReductionCart): self
  385. {
  386. if ($this->orderReductionCarts->contains($orderReductionCart)) {
  387. $this->orderReductionCarts->removeElement($orderReductionCart);
  388. // set the owning side to null (unless already changed)
  389. if ($orderReductionCart->getOrderShop() === $this) {
  390. $orderReductionCart->setOrderShop(null);
  391. }
  392. }
  393. return $this;
  394. }
  395. /**
  396. * @return Collection|OrderReductionCreditInterface[]
  397. */
  398. public function getOrderReductionCredits(): Collection
  399. {
  400. return $this->orderReductionCredits;
  401. }
  402. public function addOrderReductionCredit(OrderReductionCreditInterface $orderReductionCredit): self
  403. {
  404. if (!$this->orderReductionCredits->contains($orderReductionCredit)) {
  405. $this->orderReductionCredits[] = $orderReductionCredit;
  406. $orderReductionCredit->setOrderShop($this);
  407. }
  408. return $this;
  409. }
  410. public function removeOrderReductionCredit(OrderReductionCreditInterface $orderReductionCredit): self
  411. {
  412. if ($this->orderReductionCredits->contains($orderReductionCredit)) {
  413. $this->orderReductionCredits->removeElement($orderReductionCredit);
  414. // set the owning side to null (unless already changed)
  415. if ($orderReductionCredit->getOrderShop() === $this) {
  416. $orderReductionCredit->setOrderShop(null);
  417. }
  418. }
  419. return $this;
  420. }
  421. /**
  422. * @return Collection|DocumentInterface[]
  423. */
  424. public function getDocuments(): Collection
  425. {
  426. return $this->documents;
  427. }
  428. public function addDocument(DocumentInterface $document): self
  429. {
  430. if (!$this->documents->contains($document)) {
  431. $this->documents[] = $document;
  432. }
  433. return $this;
  434. }
  435. public function removeDocument(DocumentInterface $document): self
  436. {
  437. if ($this->documents->contains($document)) {
  438. $this->documents->removeElement($document);
  439. }
  440. return $this;
  441. }
  442. /**
  443. * @return Collection|TicketInterface[]
  444. */
  445. public function getTickets(): Collection
  446. {
  447. return $this->tickets;
  448. }
  449. public function addTicket(TicketInterface $ticket): self
  450. {
  451. if (!$this->tickets->contains($ticket)) {
  452. $this->tickets[] = $ticket;
  453. $ticket->setOrderShop($this);
  454. }
  455. return $this;
  456. }
  457. public function removeTicket(TicketInterface $ticket): self
  458. {
  459. if ($this->tickets->contains($ticket)) {
  460. $this->tickets->removeElement($ticket);
  461. // set the owning side to null (unless already changed)
  462. if ($ticket->getOrderShop() === $this) {
  463. $ticket->setOrderShop(null);
  464. }
  465. }
  466. return $this;
  467. }
  468. public function getSection(): ?SectionInterface
  469. {
  470. return $this->section;
  471. }
  472. public function setSection(?SectionInterface $section): self
  473. {
  474. $this->section = $section;
  475. return $this;
  476. }
  477. public function getCycleId(): ?int
  478. {
  479. return $this->cycleId;
  480. }
  481. public function setCycleId(?int $cycleId): self
  482. {
  483. $this->cycleId = $cycleId;
  484. return $this;
  485. }
  486. public function getCycleNumber(): ?int
  487. {
  488. return $this->cycleNumber;
  489. }
  490. public function setCycleNumber(?int $cycleNumber): self
  491. {
  492. $this->cycleNumber = $cycleNumber;
  493. return $this;
  494. }
  495. public function getOrderShopCreatedAt(): ?\DateTimeInterface
  496. {
  497. return $this->orderShopCreatedAt;
  498. }
  499. public function setOrderShopCreatedAt(?\DateTimeInterface $orderShopCreatedAt): self
  500. {
  501. $this->orderShopCreatedAt = $orderShopCreatedAt;
  502. return $this;
  503. }
  504. public function getIdValidOrder(): ?int
  505. {
  506. return $this->idValidOrder;
  507. }
  508. public function setIdValidOrder(?int $idValidOrder): self
  509. {
  510. $this->idValidOrder = $idValidOrder;
  511. return $this;
  512. }
  513. public function getDeliveryAddress(): ?AddressInterface
  514. {
  515. return $this->deliveryAddress;
  516. }
  517. public function setDeliveryAddress(?AddressInterface $deliveryAddress): self
  518. {
  519. $this->deliveryAddress = $deliveryAddress;
  520. return $this;
  521. }
  522. public function getDeliveryAddressText(): ?string
  523. {
  524. return $this->deliveryAddressText;
  525. }
  526. public function setDeliveryAddressText(string $deliveryAddressText): self
  527. {
  528. $this->deliveryAddressText = $deliveryAddressText;
  529. return $this;
  530. }
  531. public function getDeliveryPointSale(): ?PointSaleInterface
  532. {
  533. return $this->deliveryPointSale;
  534. }
  535. public function setDeliveryPointSale(?PointSaleInterface $deliveryPointSale): self
  536. {
  537. $this->deliveryPointSale = $deliveryPointSale;
  538. return $this;
  539. }
  540. public function getDeliveryType(): ?string
  541. {
  542. return $this->deliveryType;
  543. }
  544. public function setDeliveryType(?string $deliveryType): self
  545. {
  546. $this->deliveryType = $deliveryType;
  547. return $this;
  548. }
  549. public function getDeliveryPrice(): ?float
  550. {
  551. return $this->deliveryPrice;
  552. }
  553. public function setDeliveryPrice(?float $deliveryPrice): self
  554. {
  555. $this->deliveryPrice = $deliveryPrice;
  556. return $this;
  557. }
  558. public function getDeliveryTaxRate(): ?TaxRateInterface
  559. {
  560. return $this->deliveryTaxRate;
  561. }
  562. public function setDeliveryTaxRate(?TaxRateInterface $deliveryTaxRate): self
  563. {
  564. $this->deliveryTaxRate = $deliveryTaxRate;
  565. return $this;
  566. }
  567. public function getReference(): ?string
  568. {
  569. return $this->reference;
  570. }
  571. public function setReference(?string $reference): self
  572. {
  573. $this->reference = $reference;
  574. return $this;
  575. }
  576. public function getMainOrderShop(): ?self
  577. {
  578. return $this->mainOrderShop;
  579. }
  580. public function setMainOrderShop(?self $mainOrderShop): self
  581. {
  582. $this->mainOrderShop = $mainOrderShop;
  583. return $this;
  584. }
  585. /**
  586. * @return Collection|OrderShopInterface[]
  587. */
  588. public function getComplementaryOrderShops(): Collection
  589. {
  590. $arrayComplementaryOrderShops = new ArrayCollection();
  591. foreach ($this->complementaryOrderShops as $complementaryOrderShop) {
  592. if ($complementaryOrderShop->isValid()) {
  593. $arrayComplementaryOrderShops[] = $complementaryOrderShop;
  594. }
  595. }
  596. return $arrayComplementaryOrderShops;
  597. }
  598. public function addComplementaryOrderShop(self $complementaryOrderShop): self
  599. {
  600. if (!$this->complementaryOrderShops->contains($complementaryOrderShop)) {
  601. $this->complementaryOrderShops[] = $complementaryOrderShop;
  602. $complementaryOrderShop->setMainOrderShop($this);
  603. }
  604. return $this;
  605. }
  606. public function removeComplementaryOrderShop(self $complementaryOrderShop): self
  607. {
  608. if ($this->complementaryOrderShops->contains($complementaryOrderShop)) {
  609. $this->complementaryOrderShops->removeElement($complementaryOrderShop);
  610. // set the owning side to null (unless already changed)
  611. if ($complementaryOrderShop->getMainOrderShop() === $this) {
  612. $complementaryOrderShop->setMainOrderShop(null);
  613. }
  614. }
  615. return $this;
  616. }
  617. public function getDeclineComplementaryOrderShop(): ?bool
  618. {
  619. return $this->declineComplementaryOrderShop;
  620. }
  621. public function setDeclineComplementaryOrderShop(?bool $declineComplementaryOrderShop): self
  622. {
  623. $this->declineComplementaryOrderShop = $declineComplementaryOrderShop;
  624. return $this;
  625. }
  626. public function getOrderAllowByAdmin(): ?bool
  627. {
  628. return $this->orderAllowByAdmin;
  629. }
  630. public function setOrderAllowByAdmin(?bool $orderAllowByAdmin): self
  631. {
  632. $this->orderAllowByAdmin = $orderAllowByAdmin;
  633. return $this;
  634. }
  635. public function getHasReach(): ?int
  636. {
  637. return $this->hasReach;
  638. }
  639. public function setHasReach(?int $hasReach): self
  640. {
  641. $this->hasReach = $hasReach;
  642. return $this;
  643. }
  644. public function getStatTotal(): ?float
  645. {
  646. return $this->statTotal;
  647. }
  648. public function setStatTotal(?float $statTotal): self
  649. {
  650. $this->statTotal = $statTotal;
  651. return $this;
  652. }
  653. public function getStatTotalWithTax(): ?float
  654. {
  655. return $this->statTotalWithTax;
  656. }
  657. public function setStatTotalWithTax(?float $statTotalWithTax): self
  658. {
  659. $this->statTotalWithTax = $statTotalWithTax;
  660. return $this;
  661. }
  662. public function getStatTotalOrderProductsWithReductions(): ?float
  663. {
  664. return $this->statTotalOrderProductsWithReductions;
  665. }
  666. public function setStatTotalOrderProductsWithReductions(?float $statTotalOrderProductsWithReductions): self
  667. {
  668. $this->statTotalOrderProductsWithReductions = $statTotalOrderProductsWithReductions;
  669. return $this;
  670. }
  671. public function getStatTotalOrderProductsWithTaxAndReductions(): ?float
  672. {
  673. return $this->statTotalOrderProductsWithTaxAndReductions;
  674. }
  675. public function setStatTotalOrderProductsWithTaxAndReductions(?float $statTotalOrderProductsWithTaxAndReductions): self
  676. {
  677. $this->statTotalOrderProductsWithTaxAndReductions = $statTotalOrderProductsWithTaxAndReductions;
  678. return $this;
  679. }
  680. public function getStatMarginOrderProductsWithReductions(): ?float
  681. {
  682. return $this->statMarginOrderProductsWithReductions;
  683. }
  684. public function setStatMarginOrderProductsWithReductions(?float $statMarginOrderProductsWithReductions): self
  685. {
  686. $this->statMarginOrderProductsWithReductions = $statMarginOrderProductsWithReductions;
  687. return $this;
  688. }
  689. public function getStatDeliveryPriceWithReduction(): ?float
  690. {
  691. return $this->statDeliveryPriceWithReduction;
  692. }
  693. public function setStatDeliveryPriceWithReduction(?float $statDeliveryPriceWithReduction): self
  694. {
  695. $this->statDeliveryPriceWithReduction = $statDeliveryPriceWithReduction;
  696. return $this;
  697. }
  698. public function getStatDeliveryPriceWithTaxAndReduction(): ?float
  699. {
  700. return $this->statDeliveryPriceWithTaxAndReduction;
  701. }
  702. public function setStatDeliveryPriceWithTaxAndReduction(?float $statDeliveryPriceWithTaxAndReduction): self
  703. {
  704. $this->statDeliveryPriceWithTaxAndReduction = $statDeliveryPriceWithTaxAndReduction;
  705. return $this;
  706. }
  707. }