mirror of
https://github.com/devcode-it/openstamanager.git
synced 2024-12-22 21:28:08 +01:00
Miglioramento arrotondamenti importFE
This commit is contained in:
parent
1c03dddf80
commit
0927dca82f
@ -29,17 +29,16 @@ echo '
|
||||
echo '
|
||||
<div class="row">';
|
||||
|
||||
//Fix per Altre spese intervento
|
||||
//Fix per Altre spese intervento
|
||||
if ($module['name'] == 'Interventi') {
|
||||
$options['dir'] = 'entrata';
|
||||
$result['prezzo_unitario_acquisto'] = $result['prezzo_acquisto'];
|
||||
$result['prezzo'] = $result['prezzo_vendita'];
|
||||
$options['dir'] = 'entrata';
|
||||
$result['prezzo_unitario_acquisto'] = $result['prezzo_acquisto'];
|
||||
$result['prezzo'] = $result['prezzo_vendita'];
|
||||
}
|
||||
|
||||
$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 '
|
||||
|
@ -77,15 +77,14 @@ switch (post('op')) {
|
||||
$anagrafica->tipologie = (array) post('idtipoanagrafica');
|
||||
|
||||
// Blocco il salvataggio del codice fiscale se già presente
|
||||
if (!empty(post('codice_fiscale'))){
|
||||
if (!empty(post('codice_fiscale'))) {
|
||||
$count_cf = $dbo->fetchNum('SELECT codice_fiscale FROM an_anagrafiche WHERE codice_fiscale = '.prepare(post('codice_fiscale')).' AND idanagrafica != '.prepare($id_record));
|
||||
|
||||
if ($count_cf > 0) {
|
||||
flash()->error(tr('Attenzione: il codice fiscale _COD_ è già stato utilizzato', [
|
||||
'_COD_' => post('codice_fiscale'),
|
||||
]));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$anagrafica->codice_fiscale = post('codice_fiscale');
|
||||
}
|
||||
} else {
|
||||
@ -93,15 +92,14 @@ switch (post('op')) {
|
||||
}
|
||||
|
||||
// Blocco il salvataggio della partita iva se già presente
|
||||
if (!empty(post('piva'))){
|
||||
if (!empty(post('piva'))) {
|
||||
$count_piva = $dbo->fetchNum('SELECT piva FROM an_anagrafiche WHERE piva = '.prepare(post('piva')).' AND idanagrafica != '.prepare($id_record));
|
||||
|
||||
if ($count_piva > 0) {
|
||||
flash()->error(tr('Attenzione: la partita IVA _IVA_ è già stata utilizzata', [
|
||||
'_IVA_' => post('piva'),
|
||||
]));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$anagrafica->partita_iva = post('piva');
|
||||
}
|
||||
} else {
|
||||
@ -151,20 +149,19 @@ switch (post('op')) {
|
||||
case 'add':
|
||||
$idtipoanagrafica = post('idtipoanagrafica');
|
||||
$ragione_sociale = post('ragione_sociale');
|
||||
|
||||
|
||||
$anagrafica = Anagrafica::build($ragione_sociale, post('nome'), post('cognome'), $idtipoanagrafica);
|
||||
$id_record = $anagrafica->id;
|
||||
|
||||
// Blocco il salvataggio del codice fiscale se già presente
|
||||
if (!empty(post('codice_fiscale'))){
|
||||
if (!empty(post('codice_fiscale'))) {
|
||||
$count_cf = $dbo->fetchNum('SELECT codice_fiscale FROM an_anagrafiche WHERE codice_fiscale = '.prepare(post('codice_fiscale')).' AND idanagrafica != '.prepare($id_record));
|
||||
|
||||
if ($count_cf > 0) {
|
||||
flash()->error(tr('Attenzione: il codice fiscale _COD_ è già stato utilizzato', [
|
||||
'_COD_' => post('codice_fiscale'),
|
||||
]));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$anagrafica->codice_fiscale = post('codice_fiscale');
|
||||
}
|
||||
} else {
|
||||
@ -172,15 +169,14 @@ switch (post('op')) {
|
||||
}
|
||||
|
||||
// Blocco il salvataggio della partita iva se già presente
|
||||
if (!empty(post('piva'))){
|
||||
if (!empty(post('piva'))) {
|
||||
$count_piva = $dbo->fetchNum('SELECT piva FROM an_anagrafiche WHERE piva = '.prepare(post('piva')).' AND idanagrafica != '.prepare($id_record));
|
||||
|
||||
if ($count_piva > 0) {
|
||||
flash()->error(tr('Attenzione: la partita IVA _IVA_ è già stata utilizzata', [
|
||||
'_IVA_' => post('piva'),
|
||||
]));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$anagrafica->partita_iva = post('piva');
|
||||
}
|
||||
} else {
|
||||
|
@ -230,17 +230,17 @@ switch ($resource) {
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 'nazioni':
|
||||
$query = 'SELECT id AS id, CONCAT_WS(\' - \', iso2, nome) AS descrizione FROM an_nazioni |where| ORDER BY CASE WHEN iso2=\'IT\' THEN -1 ELSE iso2 END';
|
||||
|
||||
foreach ($elements as $element) {
|
||||
$filter[] = 'id='.prepare($element);
|
||||
}
|
||||
case 'nazioni':
|
||||
$query = 'SELECT id AS id, CONCAT_WS(\' - \', iso2, nome) AS descrizione FROM an_nazioni |where| ORDER BY CASE WHEN iso2=\'IT\' THEN -1 ELSE iso2 END';
|
||||
|
||||
foreach ($elements as $element) {
|
||||
$filter[] = 'id='.prepare($element);
|
||||
}
|
||||
|
||||
if (!empty($search)) {
|
||||
$search_fields[] = 'nome LIKE '.prepare('%'.$search.'%');
|
||||
}
|
||||
|
||||
if (!empty($search)) {
|
||||
$search_fields[] = 'nome LIKE '.prepare('%'.$search.'%');
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
@ -119,9 +119,8 @@ foreach ($rs as $r) {
|
||||
</div>
|
||||
</form>';
|
||||
}
|
||||
|
||||
|
||||
echo '
|
||||
|
||||
echo '
|
||||
<div class="handle clickable" style="padding:10px">
|
||||
<i class="fa fa-sort"></i>
|
||||
</div>';
|
||||
|
@ -22,7 +22,7 @@ if (!empty($rs)) {
|
||||
// Se scaduto, segna la riga in rosso
|
||||
$class = (strtotime($r['data_conclusione']) < strtotime(date('Y-m-d')) && !empty($data_conclusione)) ? 'danger' : '';
|
||||
|
||||
if( $class!='danger' ){
|
||||
if ($class != 'danger') {
|
||||
// Se ore finite, segna la riga in rosso
|
||||
$class = ($r['ore'] < 1 && !empty($r['ore'])) ? 'danger' : '';
|
||||
}
|
||||
|
@ -585,7 +585,7 @@ if (empty($domenica)) {
|
||||
|
||||
echo "
|
||||
minTime: '".setting('Inizio orario lavorativo')."',
|
||||
maxTime: '".((setting('Fine orario lavorativo')=='00:00') ? :'23:59:59')."',
|
||||
maxTime: '".((setting('Fine orario lavorativo') == '00:00') ?: '23:59:59')."',
|
||||
";
|
||||
|
||||
?>
|
||||
|
@ -174,12 +174,11 @@ if (!empty($rs)) {
|
||||
</div>
|
||||
</form>";
|
||||
}
|
||||
|
||||
echo '
|
||||
|
||||
echo '
|
||||
<div class="handle clickable" style="padding:10px">
|
||||
<i class="fa fa-sort"></i>
|
||||
</div>';
|
||||
|
||||
|
||||
echo '
|
||||
</td>
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -44,7 +44,7 @@ if ($show_prezzi) {
|
||||
<th>'.tr('Totale diritto di chiamata', [], ['upper' => true]).'</th>
|
||||
<td class="text-right">'.moneyFormat($costi['dirittochiamata_costo'], 2).'</td>
|
||||
<td class="text-right">'.moneyFormat($costi['dirittochiamata_addebito'], 2).'</td>
|
||||
<td class="text-right">'.moneyFormat($costi['dirittochiamata_scontato'],2 ).'</td>
|
||||
<td class="text-right">'.moneyFormat($costi['dirittochiamata_scontato'], 2).'</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
@ -79,8 +79,8 @@ if ($show_prezzi) {
|
||||
<tr class='.$hide.' >
|
||||
<th>'.tr('Imponibile', [], ['upper' => true]).'</th>
|
||||
<td class="text-right">'.moneyFormat($costi['totale_costo'], 2).'</td>
|
||||
<td class="text-right">'.moneyFormat($costi['totale_addebito'] ,2).'</td>
|
||||
<td class="text-right">'.moneyFormat($costi['totale_scontato'] ,2).'</td>
|
||||
<td class="text-right">'.moneyFormat($costi['totale_addebito'], 2).'</td>
|
||||
<td class="text-right">'.moneyFormat($costi['totale_scontato'], 2).'</td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
@ -376,7 +376,7 @@ function aggiungi_intervento_in_fattura($id_intervento, $id_fattura, $descrizion
|
||||
$rs = $dbo->fetchArray($query);
|
||||
|
||||
$sconto = $rst[$i]['tot_sconto'];
|
||||
$sconto_unitario = $sconto/$ore;
|
||||
$sconto_unitario = $sconto / $ore;
|
||||
$subtot = $rst[$i]['tot_prezzo_ore_consuntivo'];
|
||||
$iva = ($subtot - $sconto) / 100 * $rs[0]['percentuale'];
|
||||
$iva_indetraibile = $iva / 100 * $rs[0]['indetraibile'];
|
||||
|
@ -169,9 +169,8 @@ if (!empty($rs)) {
|
||||
</div>
|
||||
</form>";
|
||||
}
|
||||
|
||||
|
||||
echo '
|
||||
|
||||
echo '
|
||||
<div class="handle clickable" style="padding:10px">
|
||||
<i class="fa fa-sort"></i>
|
||||
</div>';
|
||||
|
@ -115,13 +115,11 @@ foreach ($rs as $r) {
|
||||
</div>
|
||||
</form>";
|
||||
}
|
||||
|
||||
|
||||
echo '
|
||||
|
||||
echo '
|
||||
<div class="handle clickable" style="padding:10px">
|
||||
<i class="fa fa-sort"></i>
|
||||
</div>';
|
||||
|
||||
|
||||
echo '
|
||||
</td>
|
||||
|
@ -3,16 +3,15 @@
|
||||
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!'));
|
||||
break;
|
||||
|
||||
@ -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">
|
||||
|
@ -49,7 +49,7 @@ if ($rs[0]['dir'] == 'entrata') {
|
||||
<th>'.tr('Data').':</th>
|
||||
<td>'.Translator::dateToLocale($rs[0]['data']).'</td>
|
||||
</tr>';
|
||||
} else if ($rs[0]['dir'] == 'uscita') {
|
||||
} elseif ($rs[0]['dir'] == 'uscita') {
|
||||
$dir = 'uscita';
|
||||
$modulo = 'Fatture di acquisto';
|
||||
echo "
|
||||
@ -72,9 +72,9 @@ if ($rs[0]['dir'] == 'entrata') {
|
||||
<th>'.tr('Data').':</th>
|
||||
<td>'.Translator::dateToLocale($rs[0]['data']).'</td>
|
||||
</tr>';
|
||||
}else{
|
||||
} else {
|
||||
$rs = $dbo->fetchArray("SELECT * FROM co_scadenziario WHERE id='".$id_record."'");
|
||||
echo "
|
||||
echo "
|
||||
<tr>
|
||||
<th width='120'>".tr('Descrizione').':</th>
|
||||
<td><input type="text" class="form-control" name="descrizione" value="'.$rs[0]['descrizione'].'"></td>
|
||||
@ -100,10 +100,10 @@ $totale_da_pagare = 0;
|
||||
$totale_pagato = 0;
|
||||
|
||||
//Scelgo la query in base al segmento
|
||||
if($record['iddocumento']!=0){
|
||||
$rs = $dbo->fetchArray('SELECT * FROM co_scadenziario WHERE iddocumento = (SELECT iddocumento FROM co_scadenziario s WHERE id='.prepare($id_record).') ORDER BY scadenza ASC');
|
||||
}else{
|
||||
$rs = $dbo->fetchArray('SELECT * FROM co_scadenziario WHERE id='.prepare($id_record).' ORDER BY scadenza ASC');
|
||||
if ($record['iddocumento'] != 0) {
|
||||
$rs = $dbo->fetchArray('SELECT * FROM co_scadenziario WHERE iddocumento = (SELECT iddocumento FROM co_scadenziario s WHERE id='.prepare($id_record).') ORDER BY scadenza ASC');
|
||||
} else {
|
||||
$rs = $dbo->fetchArray('SELECT * FROM co_scadenziario WHERE id='.prepare($id_record).' ORDER BY scadenza ASC');
|
||||
}
|
||||
|
||||
for ($i = 0; $i < count($rs); ++$i) {
|
||||
@ -124,7 +124,7 @@ for ($i = 0; $i < count($rs); ++$i) {
|
||||
</td>
|
||||
|
||||
<td align="right">
|
||||
{[ "type": "number", "name": "scadenza['.$rs[$i]['id'].']", "decimals": 2, "value": "'.Translator::numberToLocale($rs[$i]['da_pagare'],2).'" ]}
|
||||
{[ "type": "number", "name": "scadenza['.$rs[$i]['id'].']", "decimals": 2, "value": "'.Translator::numberToLocale($rs[$i]['da_pagare'], 2).'" ]}
|
||||
</td>
|
||||
|
||||
<td align="right">
|
||||
@ -181,13 +181,13 @@ echo '
|
||||
{( "name": "log_email", "id_module": "$id_module$", "id_record": "$id_record$" )}
|
||||
|
||||
<?php
|
||||
if($records[0]['iddocumento']==0){
|
||||
?>
|
||||
if ($records[0]['iddocumento'] == 0) {
|
||||
?>
|
||||
<a class="btn btn-danger ask" data-backto="record-list">
|
||||
<i class="fa fa-trash"></i> <?php echo tr('Elimina'); ?>
|
||||
</a>
|
||||
<?php
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
<script>
|
||||
@ -197,8 +197,8 @@ if($records[0]['iddocumento']==0){
|
||||
totale_ok();
|
||||
|
||||
<?php
|
||||
if($record['iddocumento']!=0){
|
||||
?>
|
||||
if ($record['iddocumento'] != 0) {
|
||||
?>
|
||||
$('input[name*=scadenza]').keyup( function(){ totale_ok(); } );
|
||||
<?php
|
||||
}
|
||||
|
@ -394,7 +394,7 @@ class FatturaElettronica
|
||||
$result[] = [
|
||||
'ProgressivoInvio' => $documento['progressivo_invio'],
|
||||
'FormatoTrasmissione' => ($cliente['tipo'] == 'Ente pubblico') ? 'FPA12' : 'FPR12',
|
||||
'CodiceDestinatario' => !empty( $codice_destinatario ) ? $codice_destinatario : $default_code,
|
||||
'CodiceDestinatario' => !empty($codice_destinatario) ? $codice_destinatario : $default_code,
|
||||
];
|
||||
|
||||
// Telefono di contatto
|
||||
@ -969,7 +969,7 @@ class FatturaElettronica
|
||||
$dettaglio['DataFinePeriodo'] = $riga['data_fine_periodo'];
|
||||
}
|
||||
|
||||
$dettaglio['PrezzoUnitario'] = $riga->prezzo_unitario_vendita ? :0;
|
||||
$dettaglio['PrezzoUnitario'] = $riga->prezzo_unitario_vendita ?: 0;
|
||||
|
||||
// Sconto (2.2.1.10)
|
||||
$sconto = $riga->sconto;
|
||||
@ -992,10 +992,10 @@ class FatturaElettronica
|
||||
$aliquota = $riga->aliquota ?: $iva_descrizioni;
|
||||
$percentuale = floatval($aliquota->percentuale);
|
||||
|
||||
if($documento->isNotaDiAccredito()){
|
||||
$dettaglio['PrezzoTotale'] = -$riga->imponibile_scontato ? :0;
|
||||
}else{
|
||||
$dettaglio['PrezzoTotale'] = $riga->imponibile_scontato ? :0;
|
||||
if ($documento->isNotaDiAccredito()) {
|
||||
$dettaglio['PrezzoTotale'] = -$riga->imponibile_scontato ?: 0;
|
||||
} else {
|
||||
$dettaglio['PrezzoTotale'] = $riga->imponibile_scontato ?: 0;
|
||||
}
|
||||
$dettaglio['AliquotaIVA'] = $percentuale;
|
||||
|
||||
@ -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]));
|
||||
|
@ -67,16 +67,18 @@ class Query
|
||||
$date_filter = $matches[0];
|
||||
|
||||
$filters = [];
|
||||
if ($dates[0] != 'custom'){
|
||||
foreach ($dates as $date) {
|
||||
$filters[] = $date." BETWEEN '|period_start|' AND '|period_end|'";
|
||||
}
|
||||
}else{
|
||||
foreach ($dates as $k => $v) {
|
||||
if ($k < 1) continue;
|
||||
$filters[] = $v;
|
||||
}
|
||||
}
|
||||
if ($dates[0] != 'custom') {
|
||||
foreach ($dates as $date) {
|
||||
$filters[] = $date." BETWEEN '|period_start|' AND '|period_end|'";
|
||||
}
|
||||
} else {
|
||||
foreach ($dates as $k => $v) {
|
||||
if ($k < 1) {
|
||||
continue;
|
||||
}
|
||||
$filters[] = $v;
|
||||
}
|
||||
}
|
||||
$date_query = !empty($filters) && !empty(self::$segments) ? ' AND ('.implode(' OR ', $filters).')' : '';
|
||||
|
||||
// Elenco delle sostituzioni
|
||||
|
@ -163,7 +163,7 @@ if (!empty($record['rivalsainps'])) {
|
||||
|
||||
$first_colspan = 3;
|
||||
$second_colspan = 2;
|
||||
|
||||
|
||||
if (empty($sconto)) {
|
||||
--$first_colspan;
|
||||
--$second_colspan;
|
||||
|
@ -212,7 +212,7 @@ elseif (get('lev') == '1') {
|
||||
}
|
||||
|
||||
// Mostro il saldo finale del conto di livello 3
|
||||
$body .= " <tr><td class='br bb padded'></td><td class='br bb padded'>".$rs3[$z]['numero'].' '.$rs3[$z]['descrizione']."</td><td class='br bb padded text-right'>".moneyFormat(abs($dare),2)."</td><td class='bb padded text-right'>".moneyFormat(abs($avere), 2)."</td></tr>\n";
|
||||
$body .= " <tr><td class='br bb padded'></td><td class='br bb padded'>".$rs3[$z]['numero'].' '.$rs3[$z]['descrizione']."</td><td class='br bb padded text-right'>".moneyFormat(abs($dare), 2)."</td><td class='bb padded text-right'>".moneyFormat(abs($avere), 2)."</td></tr>\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -220,8 +220,8 @@ elseif (get('lev') == '1') {
|
||||
// Stampa "Costi/Ricavi" se conto economico
|
||||
if ($rs1[0]['descrizione'] == 'Economico') {
|
||||
$body .= " <tr><th colspan='3' class='br bb padded'>RICAVI</th><th align='right' class='bb padded'>".moneyFormat(sum($ricavi), 2)."</th></tr>\n";
|
||||
$body .= " <tr><th colspan='3' class='br bb padded'>COSTI</th><th align='right' class='bb padded'>".moneyFormat(sum($costi),2)."</th></tr>\n";
|
||||
$body .= " <tr><th colspan='3' class='br padded'>UTILE</th><th class='padded' align='right'>".moneyFormat(sum($ricavi) - sum($costi),2)."</th></tr>\n";
|
||||
$body .= " <tr><th colspan='3' class='br bb padded'>COSTI</th><th align='right' class='bb padded'>".moneyFormat(sum($costi), 2)."</th></tr>\n";
|
||||
$body .= " <tr><th colspan='3' class='br padded'>UTILE</th><th class='padded' align='right'>".moneyFormat(sum($ricavi) - sum($costi), 2)."</th></tr>\n";
|
||||
}
|
||||
|
||||
// Stampa "Attività/Passività" se stato patrimoniale
|
||||
@ -307,7 +307,7 @@ elseif (get('lev') == '1') {
|
||||
$body .= " <tr><th class='br bb padded'> </th><th align='right' class='bb br padded'> </th>\n";
|
||||
|
||||
// Utile
|
||||
$body .= " <th class='br bb padded'>UTILE</th><th align='right' class='bb padded'>" .moneyFormat(abs($utile_perdita), 2)."</th></tr>\n";
|
||||
$body .= " <th class='br bb padded'>UTILE</th><th align='right' class='bb padded'>".moneyFormat(abs($utile_perdita), 2)."</th></tr>\n";
|
||||
}
|
||||
|
||||
// PAREGGIO 1
|
||||
|
@ -69,7 +69,7 @@ for ($i = 0; $i < sizeof($rs); ++$i) {
|
||||
echo ' <td></td>';
|
||||
echo ' <td></td>';
|
||||
} else {
|
||||
echo ' <td>'.(($dir == 'uscita') ? $rs[$i]['numero'] : '-' ).'</td>';
|
||||
echo ' <td>'.(($dir == 'uscita') ? $rs[$i]['numero'] : '-').'</td>';
|
||||
echo ' <td>'.$rs[$i]['numero_esterno'].'</td>';
|
||||
echo ' <td>'.date('d/m/Y', strtotime($rs[$i]['data'])).'</td>';
|
||||
echo ' <td>'.$rs[$i]['codice_tipo_documento_fe'].'</td>';
|
||||
|
@ -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++){
|
||||
$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']."'");
|
||||
}
|
||||
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']."'");
|
||||
}
|
||||
|
@ -81,7 +81,7 @@ return [
|
||||
'or_righe_ordini',
|
||||
'or_statiordine',
|
||||
'or_tipiordine',
|
||||
'zz_currencies',
|
||||
'zz_currencies',
|
||||
'zz_documenti',
|
||||
'zz_documenti_categorie',
|
||||
'zz_email_print',
|
||||
|
Loading…
Reference in New Issue
Block a user