<?php
namespace App\Entity\System;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass="App\Repository\System\AccountingMoneyboxRepository")
*
* @ORM\Table(name="contabilidad_monedero", indexes={
*
* @ORM\Index(name="id_order", columns={"id_order"}),
* @ORM\Index(name="fecha", columns={"fecha"}),
* @ORM\Index(name="contabilidad_monedero_a4b_uuid_index", columns={"a4b_uuid"}),
* @ORM\Index(name="contabilidad_monedero_type_index", columns={"type"}),
* @ORM\Index(name="id_customer", columns={"id_customer"}),
* @ORM\Index(name="date_add", columns={"date_add"})
* })
*/
class AccountingMoneybox
{
public const STATUS_SUCCESS = 'OK';
public const STATUS_PENDING = null;
public const TYPE_ENTRY = 1;
public const TYPE_WITHDRAWAL = 2;
/**
* @ORM\Id
*
* @ORM\GeneratedValue(strategy="AUTO")
*
* @ORM\Column(name="id_monedero", type="integer")
*/
private int $id;
/**
* @var Order|null
*
* @ORM\ManyToOne(targetEntity="App\Entity\System\Order")
*
* @ORM\JoinColumn(name="id_order", referencedColumnName="id_order")
*/
private ?Order $order = null;
/**
* @var Customer
*
* @ORM\ManyToOne(targetEntity="Customer")
*
* @ORM\JoinColumn(name="id_customer", referencedColumnName="id_customer", nullable=false)
*/
private $customer;
/**
* @ORM\Column(name="fecha", type="datetime", nullable=true)
*/
private ?\DateTime $date;
/**
* @ORM\Column(name="monederoantes", type="float", nullable=true)
*/
private ?float $moneyboxBefore;
/**
* @ORM\Column(name="monederodespues", type="float", nullable=true)
*/
private ?float $moneyboxAfter;
/**
* @ORM\Column(name="reembolsopedido", type="float", nullable=true)
*/
private ?float $orderRefund;
/**
* @ORM\Column(name="reembolsotransporte", type="float", nullable=true)
*/
private ?float $shippingRefund;
/**
* @ORM\Column(name="estado", length=3, type="string", nullable=true)
*/
private ?string $status;
/**
* @ORM\Column(name="agencia", type="integer", nullable=true)
*/
private ?int $agency;
/**
* @ORM\Column(name="concepto", length=50, type="string", nullable=true)
*/
private ?string $concept;
/**
* @ORM\Column(name="descripcion_concepto", type="text", nullable=true)
*/
private ?string $conceptDescription;
/**
* @ORM\Column(name="cambio", type="float", nullable=true)
*/
private ?float $change;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private ?int $createUser;
/**
* @ORM\Column(type="datetime", options={"default":"CURRENT_TIMESTAMP"})
*/
private ?\DateTime $dateAdd;
/**
* @ORM\Column(name="a4b_uuid", length=36, type="string", nullable=true)
*/
private ?string $a4bUuid = null;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private ?int $type;
public function getId(): int
{
return $this->id;
}
public function setId(int $id): AccountingMoneybox
{
$this->id = $id;
return $this;
}
public function getOrder(): ?Order
{
if ($this->order && $this->order->getId() === 0) {
return null;
}
return $this->order;
}
public function setOrder(Order $order): AccountingMoneybox
{
$this->order = $order;
return $this;
}
public function getCustomer(): Customer
{
return $this->customer;
}
public function setCustomer(Customer $customer): AccountingMoneybox
{
$this->customer = $customer;
return $this;
}
public function getDate(): ?\DateTime
{
return $this->date;
}
public function setDate(?\DateTime $date): AccountingMoneybox
{
$this->date = $date;
return $this;
}
public function getMoneyboxBefore(): ?float
{
return $this->moneyboxBefore;
}
public function setMoneyboxBefore(?float $moneyboxBefore): AccountingMoneybox
{
$this->moneyboxBefore = $moneyboxBefore;
return $this;
}
public function getMoneyboxAfter(): ?float
{
return $this->moneyboxAfter;
}
public function setMoneyboxAfter(?float $moneyboxAfter): AccountingMoneybox
{
$this->moneyboxAfter = $moneyboxAfter;
return $this;
}
public function getOrderRefund(): ?float
{
return $this->orderRefund;
}
public function setOrderRefund(?float $orderRefund): AccountingMoneybox
{
$this->orderRefund = $orderRefund;
return $this;
}
public function getShippingRefund(): ?float
{
return $this->shippingRefund;
}
public function setShippingRefund(?float $shippingRefund): AccountingMoneybox
{
$this->shippingRefund = $shippingRefund;
return $this;
}
public function getStatus(): ?string
{
return $this->status;
}
public function setStatus(?string $status): AccountingMoneybox
{
$this->status = $status;
return $this;
}
public function getAgency(): ?int
{
return $this->agency;
}
public function setAgency(?int $agency): AccountingMoneybox
{
$this->agency = $agency;
return $this;
}
public function getConcept(): ?string
{
return $this->concept;
}
public function setConcept(?string $concept): AccountingMoneybox
{
$this->concept = $concept;
return $this;
}
public function getConceptDescription(): ?string
{
return $this->conceptDescription;
}
public function setConceptDescription(?string $conceptDescription): AccountingMoneybox
{
$this->conceptDescription = $conceptDescription;
return $this;
}
public function getChange(): ?float
{
return $this->change;
}
public function setChange(?float $change): AccountingMoneybox
{
$this->change = $change;
return $this;
}
public function getCreateUser(): ?int
{
return $this->createUser;
}
public function setCreateUser(?int $createUser): AccountingMoneybox
{
$this->createUser = $createUser;
return $this;
}
public function getDateAdd(): ?\DateTime
{
return $this->dateAdd;
}
public function setDateAdd(?\DateTime $dateAdd): AccountingMoneybox
{
$this->dateAdd = $dateAdd;
return $this;
}
public function getA4bUuid(): ?string
{
return $this->a4bUuid;
}
public function setA4bUuid(?string $a4bUuid): AccountingMoneybox
{
$this->a4bUuid = $a4bUuid;
return $this;
}
public function getType(): ?int
{
return $this->type;
}
public function setType(?int $type): AccountingMoneybox
{
$this->type = $type;
return $this;
}
}