mirror of
https://github.com/devcode-it/openstamanager.git
synced 2024-12-23 05:54:03 +01:00
Miglioramento arrotondamenti importFE
This commit is contained in:
parent
1c03dddf80
commit
0927dca82f
@ -39,7 +39,6 @@ if ($module['name'] == 'Interventi') {
|
||||
$width = $options['dir'] == 'entrata' ? 4 : 6;
|
||||
$label = $options['dir'] == 'entrata' ? tr('Prezzo unitario di vendita') : tr('Prezzo unitario');
|
||||
|
||||
|
||||
if ($options['dir'] == 'entrata') {
|
||||
// Prezzo di acquisto unitario
|
||||
echo '
|
||||
|
@ -84,8 +84,7 @@ switch (post('op')) {
|
||||
flash()->error(tr('Attenzione: il codice fiscale _COD_ è già stato utilizzato', [
|
||||
'_COD_' => post('codice_fiscale'),
|
||||
]));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$anagrafica->codice_fiscale = post('codice_fiscale');
|
||||
}
|
||||
} else {
|
||||
@ -100,8 +99,7 @@ switch (post('op')) {
|
||||
flash()->error(tr('Attenzione: la partita IVA _IVA_ è già stata utilizzata', [
|
||||
'_IVA_' => post('piva'),
|
||||
]));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$anagrafica->partita_iva = post('piva');
|
||||
}
|
||||
} else {
|
||||
@ -163,8 +161,7 @@ switch (post('op')) {
|
||||
flash()->error(tr('Attenzione: il codice fiscale _COD_ è già stato utilizzato', [
|
||||
'_COD_' => post('codice_fiscale'),
|
||||
]));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$anagrafica->codice_fiscale = post('codice_fiscale');
|
||||
}
|
||||
} else {
|
||||
@ -179,8 +176,7 @@ switch (post('op')) {
|
||||
flash()->error(tr('Attenzione: la partita IVA _IVA_ è già stata utilizzata', [
|
||||
'_IVA_' => post('piva'),
|
||||
]));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$anagrafica->partita_iva = post('piva');
|
||||
}
|
||||
} else {
|
||||
|
@ -120,7 +120,6 @@ foreach ($rs as $r) {
|
||||
</form>';
|
||||
}
|
||||
|
||||
|
||||
echo '
|
||||
<div class="handle clickable" style="padding:10px">
|
||||
<i class="fa fa-sort"></i>
|
||||
|
@ -180,7 +180,6 @@ if (!empty($rs)) {
|
||||
<i class="fa fa-sort"></i>
|
||||
</div>';
|
||||
|
||||
|
||||
echo '
|
||||
</td>
|
||||
</tr>';
|
||||
|
@ -556,7 +556,7 @@ if ($dir == 'uscita' && $fattura->isFE()) {
|
||||
|
||||
var div = $("#controlla_totali");
|
||||
div.removeClass("alert-info");
|
||||
console.log(data);
|
||||
|
||||
if (data.stored == null) {
|
||||
div.addClass("alert-info").html("'.tr("Il file XML non contiene il nodo ''ImportoTotaleDocumento'': impossibile controllare corrispondenza dei totali").'.")
|
||||
} else if (data.stored == data.calculated){
|
||||
|
@ -332,7 +332,6 @@ class Fattura extends Document
|
||||
*/
|
||||
public static function registraScadenza(Fattura $fattura, $importo, $scadenza, $is_pagato, $type = 'fattura')
|
||||
{
|
||||
|
||||
//Calcolo la descrizione
|
||||
$descrizione = database()->fetchOne("SELECT CONCAT(co_tipidocumento.descrizione, CONCAT(' numero ', IF(numero_esterno!='', numero_esterno, numero))) AS descrizione FROM co_documenti INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id WHERE co_documenti.id='".$fattura->id."'")['descrizione'];
|
||||
|
||||
@ -493,6 +492,25 @@ class Fattura extends Document
|
||||
return $numero;
|
||||
}
|
||||
|
||||
/**
|
||||
* Restituisce i dati bancari in base al pagamento.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getBanca()
|
||||
{
|
||||
$result = [];
|
||||
$riba = database()->fetchOne('SELECT riba FROM co_pagamenti WHERE id ='.prepare($this->idpagamento));
|
||||
|
||||
if ($riba['riba'] == 1) {
|
||||
$result = database()->fetchOne('SELECT codiceiban, appoggiobancario, bic FROM an_anagrafiche WHERE idanagrafica ='.prepare($this->idanagrafica));
|
||||
} else {
|
||||
$result = database()->fetchOne('SELECT iban AS codiceiban, nome AS appoggiobancario, bic FROM co_banche WHERE id='.prepare($this->idbanca));
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
protected function calcolaMarcaDaBollo()
|
||||
{
|
||||
$righe_bollo = $this->getRighe()->filter(function ($item, $key) {
|
||||
@ -542,22 +560,4 @@ class Fattura extends Document
|
||||
|
||||
$riga->save();
|
||||
}
|
||||
|
||||
/**
|
||||
* Restituisce i dati bancari in base al pagamento
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getBanca(){
|
||||
$result = [];
|
||||
$riba = database()->fetchOne('SELECT riba FROM co_pagamenti WHERE id =' .prepare($this->idpagamento));
|
||||
|
||||
if ($riba['riba'] == 1){
|
||||
$result = database()->fetchOne('SELECT codiceiban, appoggiobancario, bic FROM an_anagrafiche WHERE idanagrafica =' .prepare($this->idanagrafica));
|
||||
}else{
|
||||
$result = database()->fetchOne('SELECT iban AS codiceiban, nome AS appoggiobancario, bic FROM co_banche WHERE id=' .prepare($this->idbanca));
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
@ -170,7 +170,6 @@ if (!empty($rs)) {
|
||||
</form>";
|
||||
}
|
||||
|
||||
|
||||
echo '
|
||||
<div class="handle clickable" style="padding:10px">
|
||||
<i class="fa fa-sort"></i>
|
||||
|
@ -116,13 +116,11 @@ foreach ($rs as $r) {
|
||||
</form>";
|
||||
}
|
||||
|
||||
|
||||
echo '
|
||||
<div class="handle clickable" style="padding:10px">
|
||||
<i class="fa fa-sort"></i>
|
||||
</div>';
|
||||
|
||||
|
||||
echo '
|
||||
</td>
|
||||
</tr>';
|
||||
|
@ -3,14 +3,13 @@
|
||||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
switch (post('op')) {
|
||||
|
||||
case 'add':
|
||||
$data = post("data");
|
||||
$tipo = post("tipo");
|
||||
$da_pagare = post("da_pagare");
|
||||
$descrizione = post("descrizione");
|
||||
$data = post('data');
|
||||
$tipo = post('tipo');
|
||||
$da_pagare = post('da_pagare');
|
||||
$descrizione = post('descrizione');
|
||||
|
||||
$dbo->query("INSERT INTO co_scadenziario(descrizione, tipo, data_emissione, scadenza, da_pagare, pagato, data_pagamento) VALUES(".prepare($descrizione).", ".prepare($tipo).", CURDATE(), ".prepare($data).", ".prepare($da_pagare).", '0', '0000-00-00')");
|
||||
$dbo->query('INSERT INTO co_scadenziario(descrizione, tipo, data_emissione, scadenza, da_pagare, pagato, data_pagamento) VALUES('.prepare($descrizione).', '.prepare($tipo).', CURDATE(), '.prepare($data).', '.prepare($da_pagare).", '0', '0000-00-00')");
|
||||
$id_record = $dbo->lastInsertedID();
|
||||
|
||||
flash()->info(tr('Scadenza inserita!'));
|
||||
@ -40,7 +39,7 @@ switch (post('op')) {
|
||||
|
||||
break;
|
||||
|
||||
case "delete":
|
||||
case 'delete':
|
||||
$dbo->query("DELETE FROM co_scadenziario WHERE id='".$id_record."'");
|
||||
flash()->info(tr('Scadenza eliminata!'));
|
||||
break;
|
||||
|
@ -7,7 +7,7 @@ include_once __DIR__.'/../../core.php';
|
||||
<form action="" method="post" id="add-form">
|
||||
<input type="hidden" name="op" value="add">
|
||||
<input type="hidden" name="backto" value="record-edit">
|
||||
<input type="hidden" name="dir" value="<?php echo $dir ?>">
|
||||
<input type="hidden" name="dir" value="<?php echo $dir; ?>">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
|
@ -1109,7 +1109,6 @@ class FatturaElettronica
|
||||
*/
|
||||
protected static function getDatiPagamento($fattura)
|
||||
{
|
||||
|
||||
$documento = $fattura->getDocumento();
|
||||
|
||||
$fattura = Fattura::find($documento['id']);
|
||||
@ -1141,7 +1140,6 @@ class FatturaElettronica
|
||||
$pagamento['BIC'] = $banca['bic'];
|
||||
}
|
||||
|
||||
|
||||
$result[]['DettaglioPagamento'] = $pagamento;
|
||||
}
|
||||
|
||||
|
@ -176,8 +176,8 @@ if (!empty($righe)) {
|
||||
'_UM_' => $riga['UnitaMisura'],
|
||||
]).'</small><br>
|
||||
|
||||
<small>'.tr('Aliquota iva _PRC_% _DESC_', [
|
||||
'_PRC_' => Translator::numberToLocale($riga['AliquotaIVA']),
|
||||
<small>'.tr('Aliquota IVA _VALUE_ _DESC_', [
|
||||
'_VALUE_' => empty($riga['Natura']) ? numberFormat($riga['AliquotaIVA']).'%' : $riga['Natura'],
|
||||
'_DESC_' => $riga['RiferimentoNormativo'] ? ' - '.$riga['RiferimentoNormativo'] : '',
|
||||
]).'</small>
|
||||
</td>
|
||||
@ -214,7 +214,6 @@ if (!empty($righe)) {
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
if(first_iva) {
|
||||
$iva = first_iva.selectData();
|
||||
|
||||
|
@ -65,6 +65,23 @@ class FatturaOrdinaria extends FatturaElettronica
|
||||
{
|
||||
$result = $this->getBody()['DatiBeniServizi']['DettaglioLinee'];
|
||||
|
||||
$riepolighi = $this->getBody()['DatiBeniServizi']['DatiRiepilogo'];
|
||||
foreach ($riepolighi as $riepilogo) {
|
||||
if (!empty($riepilogo['Arrotondamento'])) {
|
||||
$descrizione = tr('Arrotondamento IVA _VALUE_', [
|
||||
'_VALUE_' => empty($riepilogo['Natura']) ? numberFormat($riepilogo['AliquotaIVA']).'%' : $riepilogo['Natura'],
|
||||
]);
|
||||
|
||||
$result[] = [
|
||||
'Descrizione' => $descrizione,
|
||||
'PrezzoUnitario' => $riepilogo['Arrotondamento'],
|
||||
'Quantita' => 1,
|
||||
'AliquotaIVA' => $riepilogo['AliquotaIVA'],
|
||||
'Natura' => $riepilogo['Natura'],
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
return $this->forceArray($result);
|
||||
}
|
||||
|
||||
@ -145,6 +162,9 @@ class FatturaOrdinaria extends FatturaElettronica
|
||||
$obj->save();
|
||||
}
|
||||
|
||||
// Ricaricamento della fattura
|
||||
$fattura->refresh();
|
||||
|
||||
// Arrotondamenti differenti nella fattura XML
|
||||
$totali_righe = array_column($righe, 'PrezzoTotale');
|
||||
$totale_righe = sum($totali_righe);
|
||||
@ -152,7 +172,7 @@ class FatturaOrdinaria extends FatturaElettronica
|
||||
$dati_generali = $this->getBody()['DatiGenerali']['DatiGeneraliDocumento'];
|
||||
$totale_documento = $dati_generali['ImportoTotaleDocumento'];
|
||||
|
||||
$diff = $totale_documento ? $totale_documento - $fattura->totale : $totale_righe - $fattura->imponibile_scontato;
|
||||
$diff = $totale_documento ? floatval($totale_documento) - $fattura->totale : $totale_righe - $fattura->imponibile_scontato;
|
||||
if (!empty($diff)) {
|
||||
// Rimozione dell'IVA calcolata automaticamente dal gestionale
|
||||
$iva_arrotondamento = database()->fetchOne('SELECT * FROM co_iva WHERE id='.prepare($iva[0]));
|
||||
|
@ -73,7 +73,9 @@ class Query
|
||||
}
|
||||
} else {
|
||||
foreach ($dates as $k => $v) {
|
||||
if ($k < 1) continue;
|
||||
if ($k < 1) {
|
||||
continue;
|
||||
}
|
||||
$filters[] = $v;
|
||||
}
|
||||
}
|
||||
|
@ -15,9 +15,9 @@ include_once $docroot.'/templates/pdfgen_variables.php';
|
||||
|
||||
//Filtro in base al segmento
|
||||
$id_segment = $_SESSION['module_18']['id_segment'];
|
||||
$rs_segment = $dbo->fetchArray("SELECT * FROM zz_segments WHERE id=".prepare($id_segment));
|
||||
$rs_segment = $dbo->fetchArray('SELECT * FROM zz_segments WHERE id='.prepare($id_segment));
|
||||
|
||||
$add_where = "AND ".$rs_segment[0]['clause'];
|
||||
$add_where = 'AND '.$rs_segment[0]['clause'];
|
||||
|
||||
$body .= '<h3>'.$titolo.' dal '.Translator::dateToLocale($date_start).' al '.Translator::dateToLocale($date_end)."</h3>\n";
|
||||
$body .= "<table class=\"table_values\" cellspacing=\"0\" border=\"0\" cellpadding=\"0\" style=\"table-layout:fixed; border-color:#aaa;\">\n";
|
||||
|
@ -58,10 +58,9 @@ foreach ($files as $key => $value) {
|
||||
|
||||
delete($files);
|
||||
|
||||
|
||||
//Calcolo la descrizione per il nuovo campo descrizione in scadenzario
|
||||
$rs = $dbo->fetchArray("SELECT * FROM co_scadenziario");
|
||||
$rs = $dbo->fetchArray('SELECT * FROM co_scadenziario');
|
||||
|
||||
for($i=0;$i<sizeof($rs);$i++){
|
||||
for ($i = 0; $i < sizeof($rs); ++$i) {
|
||||
$dbo->query("UPDATE co_scadenziario SET descrizione=(SELECT CONCAT(co_tipidocumento.descrizione, CONCAT(' numero ', IF(numero_esterno!='', numero_esterno, numero))) FROM co_documenti INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id WHERE co_documenti.id='".$rs[$i]['iddocumento']."') WHERE co_scadenziario.id='".$rs[$i]['id']."'");
|
||||
}
|
Loading…
Reference in New Issue
Block a user