Closed ghost closed 3 years ago
Ciao, effettivamente va implementata. Metto in coda lavori.
Per la maggior parte dei casi, basterebbe aumentare il numero dei decimali a 3. O parametrizzare questo valore da qualche parte. Io ho fatto semplicemente questa modifica sul file src/FatturaElettronica/FatturaElettronicaBody/DatiBeniServizi/Linea.php
In tutti gli altri posti va tenuta la formattazione a 2 decimali...mentre su quantità, prezzounitario e totaleprezzo può arrivare a 8 decimali.
/**
* @param \XMLWriter $writer
* @return \XMLWriter
*/
public function toXmlBlock(\XMLWriter $writer)
{
$writer->startElement('DettaglioLinee');
$writer->writeElement('NumeroLinea', $this->numeroLinea);
if ($this->codiceArticolo) {
$writer->startElement('CodiceArticolo');
$writer->writeElement('CodiceTipo', $this->codiceTipo);
$writer->writeElement('CodiceValore', $this->codiceArticolo);
$writer->endElement();
}
$writer->writeElement('Descrizione', $this->descrizione);
if ($this->quantita) {
$writer->writeElement('Quantita', fe_number_format($this->quantita, 3)); //numero decimali 3 per errore calcolo
$writer->writeElement('UnitaMisura', $this->unitaMisura);
}
$this->writeXmlField('DataInizioPeriodo', $writer);
$this->writeXmlField('DataFinePeriodo', $writer);
$writer->writeElement('PrezzoUnitario', fe_number_format($this->prezzoUnitario, 3)); //numero decimali 3 per errore calcolo
$writer->writeElement('PrezzoTotale', $this->prezzoTotale());
$writer->writeElement('AliquotaIVA', fe_number_format($this->aliquotaIva, 2));
$this->writeXmlFields($writer);
$writer->endElement();
return $writer;
}
/**
* Calcola e restituisce il prezzo totale della linea
*
* @param bool $format
* @return string | float
*/
public function prezzoTotale($format = true)
{
$quantita = $this->quantita ? $this->quantita : 1;
if ($format) {
return fe_number_format($this->prezzoUnitario * $quantita, 3); //numero decimali 3 per errore calcolo
}
return $this->prezzoUnitario * $quantita;
}
@salgua ho aperto una pull request per aggiungere la possibilità di specificare un numero personalizzato di decimali
Ciao. Su alcune fatture, a volte, é necessario specificare il valore numerico con più di 2 decimali dopo la virgola.