<?php
namespace App\Entity\FattureInCloud;
use App\API\FattureInCloud\Response\DocumentoDettagliResponse;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
/**
* @ORM\Entity()
* @UniqueEntity("token")
*/
class DocumentoDettagliato
{
/**
* Identificativo univoco del documento
*
* @var string
*
* @ORM\Id
* @ORM\Column(type="string")
*/
private $id;
/**
* Identificativo permanente del documento (rimane lo stesso anche a seguito di modiifche)
*
* @var string
*
* @ORM\Column(type="string")
*/
private $token;
/**
* Tipologia del documento = ['fatture' o 'proforma' o 'ordini' o 'preventivi' o 'ndc'],
*
* @var string
*
* @ORM\Column(type="string")
*/
private $tipo;
/**
* Identificativo univoco del cliente (se nullo, il cliente non è presente nell'anagrafica) [solo con tipo!="ordforn"],
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $id_cliente;
/**
* Identificativo univoco del fornitore (se nullo, il fornitore non è presente nell'anagrafica) [solo con tipo="ordforn"],
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $id_fornitore;
/**
* Nome o ragione sociale del cliente/fornitore
*
* @var string
*
* @ORM\Column(type="string")
*/
private $nome;
/**
* Indirizzo del cliente/fornitore
*
* @var string
*
* @ORM\Column(type="string")
*/
private $indirizzo_via;
/**
* CAP del cliente/fornitore
*
* @var string
*
* @ORM\Column(type="string")
*/
private $indirizzo_cap;
/**
* Città (comune) del cliente/fornitore
*
* @var string
*
* @ORM\Column(type="string")
*/
private $indirizzo_citta;
/**
* Provincia del cliente/fornitore
*
* @var string
*
* @ORM\Column(type="string")
*/
private $indirizzo_provincia;
/**
* Note extra sull'indirizzo
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $indirizzo_extra;
/**
* Paese (nazionalità) del cliente/fornitore
*
* @var string
*
* @ORM\Column(type="string")
*/
private $paese;
/**
* Lingua del documento (sigla) = ['it' o 'en' o 'de'],
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $lingua;
/**
* Partita IVA cliente/fornitore
*
* @var string
*
* @ORM\Column(type="string")
*/
private $piva;
/**
* Codice fiscale cliente/fornitore
*
* @var string
*
* @ORM\Column(type="string")
*/
private $cf;
/**
* Numero (e serie) del documento
*
* @var string
*
* @ORM\Column(type="string")
*/
private $numero;
/**
* Data di emissione del documento
*
* @var \DateTime
*
* @ORM\Column(type="date")
*/
private $data;
/**
* Non presente in preventivi e ddt] Indica la scadenza del prossimo pagamento (vale 00/00/0000 nel caso in cui tutti i pagamenti siano saldati)
*
* @var \DateTime|null
*
* @ORM\Column(type="date", nullable=true)
*/
private $prossima_scadenza;
/**
* Valuta del documento e degli importi indicati
*
* @var string
*
* @ORM\Column(type="string")
*/
private $valuta;
/**
* Tasso di cambio EUR/{valuta}
*
* @var double
*
* @ORM\Column(type="float")
*/
private $valuta_cambio;
/**
* Specifica se i prezzi da utilizzare per il calcolo del totale sono quelli netti, oppure quello lordi, comprensivi di iva
*
* @var boolean
*
* @ORM\Column(type="boolean")
*/
private $prezzi_ivati;
/**
* Importo netto del documento (competenze)
*
* @var double
*
* @ORM\Column(type="float")
*/
private $importo_netto;
/**
* Importo dell'IAV del documento (competenze)
*
* @var double
*
* @ORM\Column(type="float")
*/
private $importo_iva;
/**
* Importo lordo del documento (totale da pagare)
*
* @var double
*
* @ORM\Column(type="float")
*/
private $importo_totale;
/**
* [Non presente in ddt e ordforn] Percentuale rivalsa INPS
*
* @var double|null
*
* @ORM\Column(type="float", nullable=true)
*/
private $rivalsa;
/**
* [Non presente in ddt e ordforn] Importo rivalsa INPS
*
* @var double|null
*
* @ORM\Column(type="float", nullable=true)
*/
private $importo_rivalsa;
/**
* [Non presente in ddt e ordforn] Percentuale cassa previdenziale
*
* @var double|null
*
* @ORM\Column(type="float", nullable=true)
*/
private $cassa;
/**
* [Non presente in ddt e ordforn] Importo cassa previdenziale
*
* @var double|null
*
* @ORM\Column(type="float", nullable=true)
*/
private $importo_cassa;
/**
* [Non presente in ddt e ordforn] Percentuale ritenuta d'acconto
*
* @var double|null
*
* @ORM\Column(type="float", nullable=true)
*/
private $rit_acconto;
/**
* [Non presente in ddt e ordforn] Imponibile della ritenuta d'acconto (percentuale sul totale)
*
* @var double|null
*
* @ORM\Column(type="float", nullable=true)
*/
private $imponibile_ritenuta;
/**
* [Non presente in ddt e ordforn] Importo ritenuta d'acconto
* @var double|null
*
* @ORM\Column(type="float", nullable=true)
*/
private $importo_rit_acconto;
/**
* [Non presente in ddt e ordforn] Percentuale altra ritenuta (ritenuta previdenziale, Enasarco etc.)
*
* @var double|null
*
* @ORM\Column(type="float", nullable=true)
*/
private $rit_altra;
/**
* [Non presente in ddt e ordforn] Importo altra ritenuta (ritenuta previdenziale, Enasarco etc.)
*
* @var double|null
*
* @ORM\Column(type="float", nullable=true)
*/
private $importo_rit_altra;
/**
* [Non presente in ddt e ordforn] Valore della marca da bollo (0 se non presente)
*
* @var double|null
*
* @ORM\Column(type="float", nullable=true)
*/
private $marca_bollo;
/**
* [Non presente in ddt] Oggetto mostrato sul documento (precedentemente "oggetto_fattura")
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $oggetto_visibile;
/**
* [Non presente in ddt] Oggetto (per organizzazione interna)
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $oggetto_interno;
/**
* [Non presente in ddt e ordforn] Centro ricavo
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $centro_ricavo;
/**
* [Solo in ordforn] Centro di costo
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $centro_costo;
/**
* [Non presente in ddt] Note (in formato HTML)
*
* @var string|null
*
* @ORM\Column(type="text", nullable=true)
*/
private $note;
/**
* [Non presente in ddt] Nasconde o mostra la scadenza sul documento
*
* @var boolean|null
*
* @ORM\Column(type="boolean", nullable=true)
*/
private $nascondi_scadenza;
/**
* [Non presente in ndc e ordforn] Indica la presenza di un DDT incluso nel documento (per i ddt è sempre true)
*
* @var boolean|null
*
* @ORM\Column(type="boolean", nullable=true)
*/
private $ddt;
/**
* [Solo se tipo=fatture] Indica la presenza di una fattura accompagnatoria inclusa nel documento
*
* @var boolean|null
*
* @ORM\Column(type="boolean", nullable=true)
*/
private $ftacc;
/**
* [Solo se tipo!=ddt] Identificativo del template del documento
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $id_template;
/**
* [Solo se ddt=true] Identificativo del template del ddt
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $ddt_id_template;
/**
* [Solo se ftacc=true] Identificativo del template della fattura accompagnatoria
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $ftacc_id_template;
/**
* [Non presente in ddt e ndc] Mostra o meno le informazioni sul metodo di pagamento sul documento
*
* @var boolean|null
*
* @ORM\Column(type="boolean", nullable=true)
*/
private $mostra_info_pagamento;
/**
* [Solo se mostra_info_pagamento=true] Nome del metodo di pagamento
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $metodo_pagamento;
/**
* [Solo se mostra_info_pagamento=true] Titolo della riga N del metodo di pagamento (N da 1 a 5)
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $metodo_titiloN;
/**
* [Solo se mostra_info_pagamento=true] Descrizione della riga N del metodo di pagamento (N da 1 a 5)
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $metodo_descN;
/**
* [Solo per preventivi, rapporti e ordforn] Nasconde o mostra la scadenza sul documento = ['tutti' o 'netto' o 'nessuno']
*
* @var boolean|null
*
* @ORM\Column(type="boolean", nullable=true)
*/
private $mostra_totali;
/**
* [Solo per ricevute, fatture, proforma, ordini] Mostra il bottone "Paga con Paypal"
*
* @var boolean|null
*
* @ORM\Column(type="boolean", nullable=true)
*/
private $mostra_bottone_paypal;
/**
* [Solo per fatture, proforma, ricevute] Mostra il bottone "Paga con TS Pay"
*
* @var boolean|null
*
* @ORM\Column(type="boolean", nullable=true)
*/
private $mostra_bottone_ts_pay;
/**
* [Solo per ricevute, fatture, proforma, ordini] Mostra il bottone "Paga con Bonifico Immediato"
*
* @var boolean|null
*
* @ORM\Column(type="boolean", nullable=true)
*/
private $mostra_bottone_bonifico;
/**
* [Solo per ricevute, fatture, proforma, ordini] Mostra il bottone "Notifica pagamento effettuato"
*
* @var boolean|null
*
* @ORM\Column(type="boolean", nullable=true)
*/
private $mostra_bottone_notifica;
/**
* Lista degli articoli/righe del documento
*
* @var DocumentoArticolo[]|null
*
* @ORM\OneToMany(targetEntity="DocumentoArticolo", mappedBy="documento", cascade={"persist"})
*/
private $lista_articoli;
/**
* [Non presente in preventivi, ddt e ordforn] Lista delle tranches di pagamento
*
* @var DocumentoPagamanto[]|null
*
* @ORM\OneToMany(targetEntity="DocumentoPagamento", mappedBy="documento", cascade={"persist"})
*/
private $lista_pagamenti;
/**
* [Se ddt=true] Numero del ddt (se tipo="ddt" corrisponde al campo "numero")
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $ddt_numero;
/**
* [Se ddt=true] Data del ddt Numero del ddt (se tipo="ddt" corrisponde al campo "data")
*
* @var \DateTime|null
*
* @ORM\Column(type="date", nullable=true)
*/
private $ddt_data;
/**
* [Se ddt/ftacc=true] Numero di colli specificato nel ddt
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $ddt_colli;
/**
* [Se ddt/ftacc=true] Peso specificato nel ddt
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $ddt_peso;
/**
* [Se ddt/ftacc=true] Causale specificata nel ddt
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $ddt_causale;
/**
* [Se ddt/ftacc=true] Luogo di spedizione specificato nel ddt
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $ddt_luogo;
/**
* [Se ddt/ftacc=true] Dati trasportatore specificati nel ddt
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $ddt_trasportatore;
/**
* [Se ddt/ftacc=true] Annotazioni specificate nel ddt
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $ddt_annotazioni;
/**
* [Solo se tipo!=ddt] Link al documento in formato PDF
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $link_doc;
/**
* [Solo se ddt=true] Link al ddt in formato PDF
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $link_ddt;
/**
* [Solo se ftacc=true] Link alla fattura accompagnatoria in formato PDF
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $link_ftacc;
/**
* [Solo se è presente un allegato] Link al file allegato
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $link_allegato;
/**
* Indica se il documento è bloccato (e di conseguenza non può essere modificato o eliminato)
*
* @var boolean|null
*
* @ORM\Column(type="boolean", nullable=true)
*/
private $bloccato;
/**
* [Solo per fatture e ndc elettroniche, vale sempre "true"] Indica che il documento è nel formato FatturaPA
*
* @var boolean|null
*
* @ORM\Column(type="boolean", nullable=true)
*/
private $PA;
/**
* [Solo se PA=true] Indica la tipologia del cliente: Pubblica Amministrazione ("PA") oppure privato ("B2B") = ['PA' o 'B2B']
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $PA_tipo_cliente;
/**
* [Solo se PA=true] Tipo di documento a cui fa seguito la fattura/ndc in questione = ['ordine' o 'convenzione' o 'contratto' o 'nessuno']
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $PA_tipo;
/**
* [Solo se PA=true] Numero del documento a cui fa seguito la fattura/ndc in questione,
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $PA_numero;
/**
* [Solo se PA=true] Data del documento a cui fa seguito la fattura/ndc in questione
*
* @var \DateTime|null
*
* @ORM\Column(type="date", nullable=true)
*/
private $PA_data;
/**
* [Solo se PA=true] Codice Unitario Progetto
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $PA_cup;
/**
* [Solo se PA=true] Codice Identificativo della Gara
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $PA_cig;
/**
* [Solo se PA=true] Codice Ufficio della Pubblica Amministrazione,
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $PA_codice;
/**
* [Solo se PA=true] Esigibilità IVA e modalità di versamento (I=immediata, D=differita, S=split payment, N=non specificata) = ['I' o 'D' o 'S' o 'N']
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $PA_esigibilita;
/**
* [Solo se PA=true] Modalità di pagamento (vedi tabella codifiche sulla documentazione ufficiale)
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $PA_modalita_pagamento;
/**
* [Solo se PA=true] Nome dell'istituto di credito
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $PA_istituto_credito;
/**
* [Solo se PA=true] Codice IBAN del conto corrente del beneficiario
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $PA_iban;
/**
* [Solo se PA=true] Beneficiario del pagamento
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $PA_beneficiario;
/**
* Indica che la fattura/ndc elettronica è stata inviata tramite il servizio FEPA TeamSystem
*
* @var boolean|null
*
* @ORM\Column(type="boolean", nullable=true)
*/
private $PA_ts;
/**
* [Solo se PA_ts=true] Stato di invio della fattura/ndc
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $PA_ts_stato;
/**
* [Solo per fatture, ndc e proforma NON elettroniche, vale sempre "true"] Indica che il documento applica lo split payment
*
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $split_payment;
public function __toString(): string
{
return $this->getNumberExplicit();
}
public function __construct(DocumentoDettagliResponse $documentoDettagli = null)
{
$this->lista_articoli = new ArrayCollection();
$this->lista_pagamenti = new ArrayCollection();
$document = $documentoDettagli->getDettagliDocumento();
if (isset($document)) {
$this->setId($document->getId());
$this->setToken($document->getToken());
$this->setTipo($document->getTipo());
$this->setIdCliente($document->getIdCliente());
$this->setIdFornitore($document->getIdFornitore());
$this->setNome($document->getNome());
$this->setIndirizzoVia($document->getIndirizzoVia());
$this->setIndirizzoCap($document->getIndirizzoCap());
$this->setIndirizzoCitta($document->getIndirizzoCitta());
$this->setIndirizzoProvincia($document->getIndirizzoProvincia());
$this->setIndirizzoExtra($document->getIndirizzoExtra());
$this->setPaese($document->getPaese());
$this->setLingua($document->getLingua());
$this->setPiva($document->getPiva());
$this->setCf($document->getCf());
$this->setNumero($document->getNumero());
$this->setData($document->getData());
$this->setProssimaScadenza($document->getProssimaScadenza());
$this->setValuta($document->getValuta());
$this->setValutaCambio($document->getValutaCambio());
$this->setPrezziIvati($document->isPrezziIvati());
$this->setImportoNetto($document->getImportoNetto());
$this->setImportoIva($document->getImportoIva());
$this->setImportoTotale($document->getImportoTotale());
$this->setRivalsa($document->getRivalsa());
$this->setImportoRivalsa($document->getImportoRivalsa());
$this->setCassa($document->getCassa());
$this->setImportoCassa($document->getImportoCassa());
$this->setRitAcconto($document->getRitAcconto());
$this->setImponibileRitenuta($document->getImponibileRitenuta());
$this->setImportoRitAcconto($document->getImportoRitAcconto());
$this->setRitAltra($document->getRitAltra());
$this->setImportoRitAltra($document->getImportoRitAltra());
$this->setMarcaBollo($document->getMarcaBollo());
$this->setOggettoVisibile($document->getOggettoVisibile());
$this->setOggettoInterno($document->getOggettoInterno());
$this->setCentroRicavo($document->getCentroRicavo());
$this->setCentroCosto($document->getCentroCosto());
$this->setNote($document->getNote());
// TODO: check why not isNascondiScadenza()
$this->setNascondiScadenza($document->getNascondiScadenza());
$this->setDdt($document->getDdt());
$this->setFtacc($document->getFtacc());
$this->setIdTemplate($document->getIdTemplate());
$this->setDdtIdTemplate($document->getDdtIdTemplate());
$this->setFtaccIdTemplate($document->getFtaccIdTemplate());
$this->setMostraInfoPagamento($document->getMostraInfoPagamento());
$this->setMetodoPagamento($document->getMetodoPagamento());
// TODO: fix metodi list
// $this->setMetodoTitiloN($document->getMetodoTitoloN());
// $this->setMetodoDescN($document->getMetodoDescN());
$this->setMostraTotali($document->getMostraTotali());
$this->setMostraBottonePaypal($document->getMostraBottonePaypal());
$this->setMostraBottoneTsPay($document->getMostraBottoneTsPay());
$this->setMostraBottoneBonifico($document->getMostraBottoneBonifico());
$this->setMostraBottoneNotifica($document->getMostraBottoneNotifica());
foreach($document->getListaArticoli() as $articolo) {
$this->addArticolo(new DocumentoArticolo($articolo));
}
foreach($document->getListaPagamenti() as $pagamento) {
$this->addPagamento(new DocumentoPagamento($pagamento));
}
}
}
/**
* @return string
*/
public function getId(): string
{
return $this->id;
}
/**
* @param string $id
* @return DocumentoDettagliato
*/
public function setId(string $id): DocumentoDettagliato
{
$this->id = $id;
return $this;
}
/**
* @return string
*/
public function getToken(): string
{
return $this->token;
}
/**
* @param string $token
* @return DocumentoDettagliato
*/
public function setToken(string $token): DocumentoDettagliato
{
$this->token = $token;
return $this;
}
/**
* @return string
*/
public function getTipo(): string
{
switch($this->tipo) {
case 'fatture':
return 'fattura';
case 'ordini':
return 'ordine';
default:
return $this->tipo;
}
}
/**
* @param string $tipo
* @return DocumentoDettagliato
*/
public function setTipo(string $tipo): DocumentoDettagliato
{
$this->tipo = $tipo;
return $this;
}
/**
* @return string|null
*/
public function getIdCliente(): ?string
{
return $this->id_cliente;
}
/**
* @param string|null $id_cliente
* @return DocumentoDettagliato
*/
public function setIdCliente(?string $id_cliente): DocumentoDettagliato
{
$this->id_cliente = $id_cliente;
return $this;
}
/**
* @return string|null
*/
public function getIdFornitore(): ?string
{
return $this->id_fornitore;
}
/**
* @param string|null $id_fornitore
* @return DocumentoDettagliato
*/
public function setIdFornitore(?string $id_fornitore): DocumentoDettagliato
{
$this->id_fornitore = $id_fornitore;
return $this;
}
/**
* @return string
*/
public function getNome(): string
{
return $this->nome;
}
/**
* @param string $nome
* @return DocumentoDettagliato
*/
public function setNome(string $nome): DocumentoDettagliato
{
$this->nome = $nome;
return $this;
}
/**
* @return string
*/
public function getIndirizzoVia(): string
{
return $this->indirizzo_via;
}
/**
* @param string $indirizzo_via
* @return DocumentoDettagliato
*/
public function setIndirizzoVia(string $indirizzo_via): DocumentoDettagliato
{
$this->indirizzo_via = $indirizzo_via;
return $this;
}
/**
* @return string
*/
public function getIndirizzoCap(): string
{
return $this->indirizzo_cap;
}
/**
* @param string $indirizzo_cap
* @return DocumentoDettagliato
*/
public function setIndirizzoCap(string $indirizzo_cap): DocumentoDettagliato
{
$this->indirizzo_cap = $indirizzo_cap;
return $this;
}
/**
* @return string
*/
public function getIndirizzoCitta(): string
{
return $this->indirizzo_citta;
}
/**
* @param string $indirizzo_citta
* @return DocumentoDettagliato
*/
public function setIndirizzoCitta(string $indirizzo_citta): DocumentoDettagliato
{
$this->indirizzo_citta = $indirizzo_citta;
return $this;
}
/**
* @return string
*/
public function getIndirizzoProvincia(): string
{
return $this->indirizzo_provincia;
}
/**
* @param string $indirizzo_provincia
* @return DocumentoDettagliato
*/
public function setIndirizzoProvincia(string $indirizzo_provincia): DocumentoDettagliato
{
$this->indirizzo_provincia = $indirizzo_provincia;
return $this;
}
/**
* @return string|null
*/
public function getIndirizzoExtra(): ?string
{
return $this->indirizzo_extra;
}
/**
* @param string|null $indirizzo_extra
* @return DocumentoDettagliato
*/
public function setIndirizzoExtra(?string $indirizzo_extra): DocumentoDettagliato
{
$this->indirizzo_extra = $indirizzo_extra;
return $this;
}
/**
* @return string
*/
public function getPaese(): string
{
return $this->paese;
}
/**
* @param string $paese
* @return DocumentoDettagliato
*/
public function setPaese(string $paese): DocumentoDettagliato
{
$this->paese = $paese;
return $this;
}
/**
* @return string|null
*/
public function getLingua(): ?string
{
return $this->lingua;
}
/**
* @param string|null $lingua
* @return DocumentoDettagliato
*/
public function setLingua(?string $lingua): DocumentoDettagliato
{
$this->lingua = $lingua;
return $this;
}
/**
* @return string
*/
public function getPiva(): string
{
return $this->piva;
}
/**
* @param string $piva
* @return DocumentoDettagliato
*/
public function setPiva(string $piva): DocumentoDettagliato
{
$this->piva = $piva;
return $this;
}
/**
* @return string
*/
public function getCf(): string
{
return $this->cf;
}
/**
* @param string $cf
* @return DocumentoDettagliato
*/
public function setCf(string $cf): DocumentoDettagliato
{
$this->cf = $cf;
return $this;
}
/**
* @return string
*/
public function getNumero(): string
{
return $this->numero;
}
/**
* @param string $numero
* @return DocumentoDettagliato
*/
public function setNumero(string $numero): DocumentoDettagliato
{
$this->numero = $numero;
return $this;
}
/**
* @return \DateTime
*/
public function getData(): \DateTime
{
return $this->data;
}
/**
* @param \DateTime $data
* @return DocumentoDettagliato
*/
public function setData(\DateTime $data): DocumentoDettagliato
{
$this->data = $data;
return $this;
}
/**
* @return \DateTime|null
*/
public function getProssimaScadenza(): ?\DateTime
{
return $this->prossima_scadenza;
}
/**
* @param \DateTime|null $prossima_scadenza
* @return DocumentoDettagliato
*/
public function setProssimaScadenza(?\DateTime $prossima_scadenza): DocumentoDettagliato
{
$this->prossima_scadenza = $prossima_scadenza;
return $this;
}
/**
* @return string
*/
public function getValuta(): string
{
return $this->valuta;
}
/**
* @param string $valuta
* @return DocumentoDettagliato
*/
public function setValuta(string $valuta): DocumentoDettagliato
{
$this->valuta = $valuta;
return $this;
}
/**
* @return float
*/
public function getValutaCambio(): float
{
return $this->valuta_cambio;
}
/**
* @param float $valuta_cambio
* @return DocumentoDettagliato
*/
public function setValutaCambio(float $valuta_cambio): DocumentoDettagliato
{
$this->valuta_cambio = $valuta_cambio;
return $this;
}
/**
* @return bool
*/
public function isPrezziIvati(): bool
{
return $this->prezzi_ivati;
}
/**
* @param bool $prezzi_ivati
* @return DocumentoDettagliato
*/
public function setPrezziIvati(bool $prezzi_ivati): DocumentoDettagliato
{
$this->prezzi_ivati = $prezzi_ivati;
return $this;
}
/**
* @return float
*/
public function getImportoNetto(): float
{
return $this->importo_netto;
}
/**
* @param float $importo_netto
* @return DocumentoDettagliato
*/
public function setImportoNetto(float $importo_netto): DocumentoDettagliato
{
$this->importo_netto = $importo_netto;
return $this;
}
/**
* @return float
*/
public function getImportoIva(): float
{
return $this->importo_iva;
}
/**
* @param float $importo_iva
* @return DocumentoDettagliato
*/
public function setImportoIva(float $importo_iva): DocumentoDettagliato
{
$this->importo_iva = $importo_iva;
return $this;
}
/**
* @return float
*/
public function getImportoTotale(): float
{
return $this->importo_totale;
}
/**
* @param float $importo_totale
* @return DocumentoDettagliato
*/
public function setImportoTotale(float $importo_totale): DocumentoDettagliato
{
$this->importo_totale = $importo_totale;
return $this;
}
/**
* @return float|null
*/
public function getRivalsa(): ?float
{
return $this->rivalsa;
}
/**
* @param float|null $rivalsa
* @return DocumentoDettagliato
*/
public function setRivalsa(?float $rivalsa): DocumentoDettagliato
{
$this->rivalsa = $rivalsa;
return $this;
}
/**
* @return float|null
*/
public function getImportoRivalsa(): ?float
{
return $this->importo_rivalsa;
}
/**
* @param float|null $importo_rivalsa
* @return DocumentoDettagliato
*/
public function setImportoRivalsa(?float $importo_rivalsa): DocumentoDettagliato
{
$this->importo_rivalsa = $importo_rivalsa;
return $this;
}
/**
* @return float|null
*/
public function getCassa(): ?float
{
return $this->cassa;
}
/**
* @param float|null $cassa
* @return DocumentoDettagliato
*/
public function setCassa(?float $cassa): DocumentoDettagliato
{
$this->cassa = $cassa;
return $this;
}
/**
* @return float|null
*/
public function getImportoCassa(): ?float
{
return $this->importo_cassa;
}
/**
* @param float|null $importo_cassa
* @return DocumentoDettagliato
*/
public function setImportoCassa(?float $importo_cassa): DocumentoDettagliato
{
$this->importo_cassa = $importo_cassa;
return $this;
}
/**
* @return float|null
*/
public function getRitAcconto(): ?float
{
return $this->rit_acconto;
}
/**
* @param float|null $rit_acconto
* @return DocumentoDettagliato
*/
public function setRitAcconto(?float $rit_acconto): DocumentoDettagliato
{
$this->rit_acconto = $rit_acconto;
return $this;
}
/**
* @return float|null
*/
public function getImponibileRitenuta(): ?float
{
return $this->imponibile_ritenuta;
}
/**
* @param float|null $imponibile_ritenuta
* @return DocumentoDettagliato
*/
public function setImponibileRitenuta(?float $imponibile_ritenuta): DocumentoDettagliato
{
$this->imponibile_ritenuta = $imponibile_ritenuta;
return $this;
}
/**
* @return float|null
*/
public function getImportoRitAcconto(): ?float
{
return $this->importo_rit_acconto;
}
/**
* @param float|null $importo_rit_acconto
* @return DocumentoDettagliato
*/
public function setImportoRitAcconto(?float $importo_rit_acconto): DocumentoDettagliato
{
$this->importo_rit_acconto = $importo_rit_acconto;
return $this;
}
/**
* @return float|null
*/
public function getRitAltra(): ?float
{
return $this->rit_altra;
}
/**
* @param float|null $rit_altra
* @return DocumentoDettagliato
*/
public function setRitAltra(?float $rit_altra): DocumentoDettagliato
{
$this->rit_altra = $rit_altra;
return $this;
}
/**
* @return float|null
*/
public function getImportoRitAltra(): ?float
{
return $this->importo_rit_altra;
}
/**
* @param float|null $importo_rit_altra
* @return DocumentoDettagliato
*/
public function setImportoRitAltra(?float $importo_rit_altra): DocumentoDettagliato
{
$this->importo_rit_altra = $importo_rit_altra;
return $this;
}
/**
* @return float|null
*/
public function getMarcaBollo(): ?float
{
return $this->marca_bollo;
}
/**
* @param float|null $marca_bollo
* @return DocumentoDettagliato
*/
public function setMarcaBollo(?float $marca_bollo): DocumentoDettagliato
{
$this->marca_bollo = $marca_bollo;
return $this;
}
/**
* @return string|null
*/
public function getOggettoVisibile(): ?string
{
return $this->oggetto_visibile;
}
/**
* @param string|null $oggetto_visibile
* @return DocumentoDettagliato
*/
public function setOggettoVisibile(?string $oggetto_visibile): DocumentoDettagliato
{
$this->oggetto_visibile = $oggetto_visibile;
return $this;
}
/**
* @return string|null
*/
public function getOggettoInterno(): ?string
{
return $this->oggetto_interno;
}
/**
* @param string|null $oggetto_interno
* @return DocumentoDettagliato
*/
public function setOggettoInterno(?string $oggetto_interno): DocumentoDettagliato
{
$this->oggetto_interno = $oggetto_interno;
return $this;
}
/**
* @return string|null
*/
public function getCentroRicavo(): ?string
{
return $this->centro_ricavo;
}
/**
* @param string|null $centro_ricavo
* @return DocumentoDettagliato
*/
public function setCentroRicavo(?string $centro_ricavo): DocumentoDettagliato
{
$this->centro_ricavo = $centro_ricavo;
return $this;
}
/**
* @return string|null
*/
public function getCentroCosto(): ?string
{
return $this->centro_costo;
}
/**
* @param string|null $centro_costo
* @return DocumentoDettagliato
*/
public function setCentroCosto(?string $centro_costo): DocumentoDettagliato
{
$this->centro_costo = $centro_costo;
return $this;
}
/**
* @return string|null
*/
public function getNote(): ?string
{
return $this->note;
}
/**
* @param string|null $note
* @return DocumentoDettagliato
*/
public function setNote(?string $note): DocumentoDettagliato
{
$this->note = $note;
return $this;
}
/**
* @return bool|null
*/
public function getNascondiScadenza(): ?bool
{
return $this->nascondi_scadenza;
}
/**
* @param bool|null $nascondi_scadenza
* @return DocumentoDettagliato
*/
public function setNascondiScadenza(?bool $nascondi_scadenza): DocumentoDettagliato
{
$this->nascondi_scadenza = $nascondi_scadenza;
return $this;
}
/**
* @return bool|null
*/
public function getDdt(): ?bool
{
return $this->ddt;
}
/**
* @param bool|null $ddt
* @return DocumentoDettagliato
*/
public function setDdt(?bool $ddt): DocumentoDettagliato
{
$this->ddt = $ddt;
return $this;
}
/**
* @return bool|null
*/
public function getFtacc(): ?bool
{
return $this->ftacc;
}
/**
* @param bool|null $ftacc
* @return DocumentoDettagliato
*/
public function setFtacc(?bool $ftacc): DocumentoDettagliato
{
$this->ftacc = $ftacc;
return $this;
}
/**
* @return string|null
*/
public function getIdTemplate(): ?string
{
return $this->id_template;
}
/**
* @param string|null $id_template
* @return DocumentoDettagliato
*/
public function setIdTemplate(?string $id_template): DocumentoDettagliato
{
$this->id_template = $id_template;
return $this;
}
/**
* @return string|null
*/
public function getDdtIdTemplate(): ?string
{
return $this->ddt_id_template;
}
/**
* @param string|null $ddt_id_template
* @return DocumentoDettagliato
*/
public function setDdtIdTemplate(?string $ddt_id_template): DocumentoDettagliato
{
$this->ddt_id_template = $ddt_id_template;
return $this;
}
/**
* @return string|null
*/
public function getFtaccIdTemplate(): ?string
{
return $this->ftacc_id_template;
}
/**
* @param string|null $ftacc_id_template
* @return DocumentoDettagliato
*/
public function setFtaccIdTemplate(?string $ftacc_id_template): DocumentoDettagliato
{
$this->ftacc_id_template = $ftacc_id_template;
return $this;
}
/**
* @return bool|null
*/
public function getMostraInfoPagamento(): ?bool
{
return $this->mostra_info_pagamento;
}
/**
* @param bool|null $mostra_info_pagamento
* @return DocumentoDettagliato
*/
public function setMostraInfoPagamento(?bool $mostra_info_pagamento): DocumentoDettagliato
{
$this->mostra_info_pagamento = $mostra_info_pagamento;
return $this;
}
/**
* @return string|null
*/
public function getMetodoPagamento(): ?string
{
return $this->metodo_pagamento;
}
/**
* @param string|null $metodo_pagamento
* @return DocumentoDettagliato
*/
public function setMetodoPagamento(?string $metodo_pagamento): DocumentoDettagliato
{
$this->metodo_pagamento = $metodo_pagamento;
return $this;
}
/**
* @return string|null
*/
public function getMetodoTitiloN(): ?string
{
return $this->metodo_titiloN;
}
/**
* @param string|null $metodo_titiloN
* @return DocumentoDettagliato
*/
public function setMetodoTitiloN(?string $metodo_titiloN): DocumentoDettagliato
{
$this->metodo_titiloN = $metodo_titiloN;
return $this;
}
/**
* @return string|null
*/
public function getMetodoDescN(): ?string
{
return $this->metodo_descN;
}
/**
* @param string|null $metodo_descN
* @return DocumentoDettagliato
*/
public function setMetodoDescN(?string $metodo_descN): DocumentoDettagliato
{
$this->metodo_descN = $metodo_descN;
return $this;
}
/**
* @return bool|null
*/
public function getMostraTotali(): ?bool
{
return $this->mostra_totali;
}
/**
* @param bool|null $mostra_totali
* @return DocumentoDettagliato
*/
public function setMostraTotali(?bool $mostra_totali): DocumentoDettagliato
{
$this->mostra_totali = $mostra_totali;
return $this;
}
/**
* @return bool|null
*/
public function getMostraBottonePaypal(): ?bool
{
return $this->mostra_bottone_paypal;
}
/**
* @param bool|null $mostra_bottone_paypal
* @return DocumentoDettagliato
*/
public function setMostraBottonePaypal(?bool $mostra_bottone_paypal): DocumentoDettagliato
{
$this->mostra_bottone_paypal = $mostra_bottone_paypal;
return $this;
}
/**
* @return bool|null
*/
public function getMostraBottoneTsPay(): ?bool
{
return $this->mostra_bottone_ts_pay;
}
/**
* @param bool|null $mostra_bottone_ts_pay
* @return DocumentoDettagliato
*/
public function setMostraBottoneTsPay(?bool $mostra_bottone_ts_pay): DocumentoDettagliato
{
$this->mostra_bottone_ts_pay = $mostra_bottone_ts_pay;
return $this;
}
/**
* @return bool|null
*/
public function getMostraBottoneBonifico(): ?bool
{
return $this->mostra_bottone_bonifico;
}
/**
* @param bool|null $mostra_bottone_bonifico
* @return DocumentoDettagliato
*/
public function setMostraBottoneBonifico(?bool $mostra_bottone_bonifico): DocumentoDettagliato
{
$this->mostra_bottone_bonifico = $mostra_bottone_bonifico;
return $this;
}
/**
* @return bool|null
*/
public function getMostraBottoneNotifica(): ?bool
{
return $this->mostra_bottone_notifica;
}
/**
* @param bool|null $mostra_bottone_notifica
* @return DocumentoDettagliato
*/
public function setMostraBottoneNotifica(?bool $mostra_bottone_notifica): DocumentoDettagliato
{
$this->mostra_bottone_notifica = $mostra_bottone_notifica;
return $this;
}
/**
* @return FattureInCloudDocumentoArticolo[]|null
*/
public function getListaArticoli(): ?ArrayCollection
{
return $this->lista_articoli;
}
/**
* @param FattureInCloudDocumentoArticolo[]|null $lista_articoli
* @return DocumentoDettagliato
*/
public function setListaArticoli(?ArrayCollection $lista_articoli): DocumentoDettagliato
{
$this->lista_articoli = $lista_articoli;
return $this;
}
/**
* @return FattureinCloudDocumentoPagamanto[]|null
*/
public function getListaPagamenti(): ?ArrayCollection
{
return $this->lista_pagamenti;
}
/**
* @param FattureinCloudDocumentoPagamanto[]|null $lista_pagamenti
* @return DocumentoDettagliato
*/
public function setListaPagamenti(?ArrayCollection $lista_pagamenti): DocumentoDettagliato
{
$this->lista_pagamenti = $lista_pagamenti;
return $this;
}
/**
* @return string|null
*/
public function getDdtNumero(): ?string
{
return $this->ddt_numero;
}
/**
* @param string|null $ddt_numero
* @return DocumentoDettagliato
*/
public function setDdtNumero(?string $ddt_numero): DocumentoDettagliato
{
$this->ddt_numero = $ddt_numero;
return $this;
}
/**
* @return \DateTime|null
*/
public function getDdtData(): ?\DateTime
{
return $this->ddt_data;
}
/**
* @param \DateTime|null $ddt_data
* @return DocumentoDettagliato
*/
public function setDdtData(?\DateTime $ddt_data): DocumentoDettagliato
{
$this->ddt_data = $ddt_data;
return $this;
}
/**
* @return string|null
*/
public function getDdtColli(): ?string
{
return $this->ddt_colli;
}
/**
* @param string|null $ddt_colli
* @return DocumentoDettagliato
*/
public function setDdtColli(?string $ddt_colli): DocumentoDettagliato
{
$this->ddt_colli = $ddt_colli;
return $this;
}
/**
* @return string|null
*/
public function getDdtPeso(): ?string
{
return $this->ddt_peso;
}
/**
* @param string|null $ddt_peso
* @return DocumentoDettagliato
*/
public function setDdtPeso(?string $ddt_peso): DocumentoDettagliato
{
$this->ddt_peso = $ddt_peso;
return $this;
}
/**
* @return string|null
*/
public function getDdtCausale(): ?string
{
return $this->ddt_causale;
}
/**
* @param string|null $ddt_causale
* @return DocumentoDettagliato
*/
public function setDdtCausale(?string $ddt_causale): DocumentoDettagliato
{
$this->ddt_causale = $ddt_causale;
return $this;
}
/**
* @return string|null
*/
public function getDdtLuogo(): ?string
{
return $this->ddt_luogo;
}
/**
* @param string|null $ddt_luogo
* @return DocumentoDettagliato
*/
public function setDdtLuogo(?string $ddt_luogo): DocumentoDettagliato
{
$this->ddt_luogo = $ddt_luogo;
return $this;
}
/**
* @return string|null
*/
public function getDdtTrasportatore(): ?string
{
return $this->ddt_trasportatore;
}
/**
* @param string|null $ddt_trasportatore
* @return DocumentoDettagliato
*/
public function setDdtTrasportatore(?string $ddt_trasportatore): DocumentoDettagliato
{
$this->ddt_trasportatore = $ddt_trasportatore;
return $this;
}
/**
* @return string|null
*/
public function getDdtAnnotazioni(): ?string
{
return $this->ddt_annotazioni;
}
/**
* @param string|null $ddt_annotazioni
* @return DocumentoDettagliato
*/
public function setDdtAnnotazioni(?string $ddt_annotazioni): DocumentoDettagliato
{
$this->ddt_annotazioni = $ddt_annotazioni;
return $this;
}
/**
* @return string|null
*/
public function getLinkDoc(): ?string
{
return $this->link_doc;
}
/**
* @param string|null $link_doc
* @return DocumentoDettagliato
*/
public function setLinkDoc(?string $link_doc): DocumentoDettagliato
{
$this->link_doc = $link_doc;
return $this;
}
/**
* @return string|null
*/
public function getLinkDdt(): ?string
{
return $this->link_ddt;
}
/**
* @param string|null $link_ddt
* @return DocumentoDettagliato
*/
public function setLinkDdt(?string $link_ddt): DocumentoDettagliato
{
$this->link_ddt = $link_ddt;
return $this;
}
/**
* @return string|null
*/
public function getLinkFtacc(): ?string
{
return $this->link_ftacc;
}
/**
* @param string|null $link_ftacc
* @return DocumentoDettagliato
*/
public function setLinkFtacc(?string $link_ftacc): DocumentoDettagliato
{
$this->link_ftacc = $link_ftacc;
return $this;
}
/**
* @return string|null
*/
public function getLinkAllegato(): ?string
{
return $this->link_allegato;
}
/**
* @param string|null $link_allegato
* @return DocumentoDettagliato
*/
public function setLinkAllegato(?string $link_allegato): DocumentoDettagliato
{
$this->link_allegato = $link_allegato;
return $this;
}
/**
* @return bool|null
*/
public function getBloccato(): ?bool
{
return $this->bloccato;
}
/**
* @param bool|null $bloccato
* @return DocumentoDettagliato
*/
public function setBloccato(?bool $bloccato): DocumentoDettagliato
{
$this->bloccato = $bloccato;
return $this;
}
/**
* @return bool|null
*/
public function getPA(): ?bool
{
return $this->PA;
}
/**
* @param bool|null $PA
* @return DocumentoDettagliato
*/
public function setPA(?bool $PA): DocumentoDettagliato
{
$this->PA = $PA;
return $this;
}
/**
* @return string|null
*/
public function getPATipoCliente(): ?string
{
return $this->PA_tipo_cliente;
}
/**
* @param string|null $PA_tipo_cliente
* @return DocumentoDettagliato
*/
public function setPATipoCliente(?string $PA_tipo_cliente): DocumentoDettagliato
{
$this->PA_tipo_cliente = $PA_tipo_cliente;
return $this;
}
/**
* @return string|null
*/
public function getPATipo(): ?string
{
return $this->PA_tipo;
}
/**
* @param string|null $PA_tipo
* @return DocumentoDettagliato
*/
public function setPATipo(?string $PA_tipo): DocumentoDettagliato
{
$this->PA_tipo = $PA_tipo;
return $this;
}
/**
* @return string|null
*/
public function getPANumero(): ?string
{
return $this->PA_numero;
}
/**
* @param string|null $PA_numero
* @return DocumentoDettagliato
*/
public function setPANumero(?string $PA_numero): DocumentoDettagliato
{
$this->PA_numero = $PA_numero;
return $this;
}
/**
* @return \DateTime|null
*/
public function getPAData(): ?\DateTime
{
return $this->PA_data;
}
/**
* @param \DateTime|null $PA_data
* @return DocumentoDettagliato
*/
public function setPAData(?\DateTime $PA_data): DocumentoDettagliato
{
$this->PA_data = $PA_data;
return $this;
}
/**
* @return string|null
*/
public function getPACup(): ?string
{
return $this->PA_cup;
}
/**
* @param string|null $PA_cup
* @return DocumentoDettagliato
*/
public function setPACup(?string $PA_cup): DocumentoDettagliato
{
$this->PA_cup = $PA_cup;
return $this;
}
/**
* @return string|null
*/
public function getPACig(): ?string
{
return $this->PA_cig;
}
/**
* @param string|null $PA_cig
* @return DocumentoDettagliato
*/
public function setPACig(?string $PA_cig): DocumentoDettagliato
{
$this->PA_cig = $PA_cig;
return $this;
}
/**
* @return string|null
*/
public function getPACodice(): ?string
{
return $this->PA_codice;
}
/**
* @param string|null $PA_codice
* @return DocumentoDettagliato
*/
public function setPACodice(?string $PA_codice): DocumentoDettagliato
{
$this->PA_codice = $PA_codice;
return $this;
}
/**
* @return string|null
*/
public function getPAEsigibilita(): ?string
{
return $this->PA_esigibilita;
}
/**
* @param string|null $PA_esigibilita
* @return DocumentoDettagliato
*/
public function setPAEsigibilita(?string $PA_esigibilita): DocumentoDettagliato
{
$this->PA_esigibilita = $PA_esigibilita;
return $this;
}
/**
* @return string|null
*/
public function getPAModalitaPagamento(): ?string
{
return $this->PA_modalita_pagamento;
}
/**
* @param string|null $PA_modalita_pagamento
* @return DocumentoDettagliato
*/
public function setPAModalitaPagamento(?string $PA_modalita_pagamento): DocumentoDettagliato
{
$this->PA_modalita_pagamento = $PA_modalita_pagamento;
return $this;
}
/**
* @return string|null
*/
public function getPAIstitutoCredito(): ?string
{
return $this->PA_istituto_credito;
}
/**
* @param string|null $PA_istituto_credito
* @return DocumentoDettagliato
*/
public function setPAIstitutoCredito(?string $PA_istituto_credito): DocumentoDettagliato
{
$this->PA_istituto_credito = $PA_istituto_credito;
return $this;
}
/**
* @return string|null
*/
public function getPAIban(): ?string
{
return $this->PA_iban;
}
/**
* @param string|null $PA_iban
* @return DocumentoDettagliato
*/
public function setPAIban(?string $PA_iban): DocumentoDettagliato
{
$this->PA_iban = $PA_iban;
return $this;
}
/**
* @return string|null
*/
public function getPABeneficiario(): ?string
{
return $this->PA_beneficiario;
}
/**
* @param string|null $PA_beneficiario
* @return DocumentoDettagliato
*/
public function setPABeneficiario(?string $PA_beneficiario): DocumentoDettagliato
{
$this->PA_beneficiario = $PA_beneficiario;
return $this;
}
/**
* @return bool|null
*/
public function getPATs(): ?bool
{
return $this->PA_ts;
}
/**
* @param bool|null $PA_ts
* @return DocumentoDettagliato
*/
public function setPATs(?bool $PA_ts): DocumentoDettagliato
{
$this->PA_ts = $PA_ts;
return $this;
}
/**
* @return string|null
*/
public function getPATsStato(): ?string
{
return $this->PA_ts_stato;
}
/**
* @param string|null $PA_ts_stato
* @return DocumentoDettagliato
*/
public function setPATsStato(?string $PA_ts_stato): DocumentoDettagliato
{
$this->PA_ts_stato = $PA_ts_stato;
return $this;
}
/**
* @return string|null
*/
public function getSplitPayment(): ?string
{
return $this->split_payment;
}
/**
* @param string|null $split_payment
* @return DocumentoDettagliato
*/
public function setSplitPayment(?string $split_payment): DocumentoDettagliato
{
$this->split_payment = $split_payment;
return $this;
}
public function addPagamento(DocumentoPagamento $pagamento): self
{
$pagamento->setDocumento($this);
$this->lista_pagamenti->add($pagamento);
return $this;
}
public function addArticolo(DocumentoArticolo $articolo): self
{
$articolo->setDocumento($this);
$this->lista_articoli->add($articolo);
return $this;
}
public function getNumberExplicit(): string
{
return $this->getTipo().' '.$this->getNumero().'/'.$this->getData()->format('Y');
}
}