Fix note di credito/debito

This commit is contained in:
Thomas Zilio 2018-09-28 17:29:59 +02:00
parent cfe2bbdb02
commit a8c24b3823
5 changed files with 29 additions and 18 deletions

View File

@ -1254,15 +1254,18 @@ switch (post('op')) {
$id_segment = post('id_segment');
$data = post('data');
$numero = get_new_numerofattura($record['data']);
$numero_esterno = get_new_numerosecondariofattura($record['data']);
$anagrafica = $fattura->anagrafica()->first();
$tipo = Tipo::where('descrizione', 'Nota di credito')->where('dir', 'entrata')->first();
$rs = $dbo->fetchArray('SELECT * FROM co_documenti WHERE id='.prepare($id_record));
$idconto = $rs[0]['idconto'];
$nota = Fattura::new($anagrafica, $tipo, $data, $id_segment);
$nota->ref_documento = $fattura->id;
$nota->idconto = $fattura->idconto;
$nota->idpagamento = $fattura->idpagamento;
$nota->idbanca = $fattura->idbanca;
$nota->idsede = $fattura->idsede;
$nota->save();
$ref_documento = $id_record;
$dbo->query('INSERT INTO co_documenti (numero, numero_esterno, ref_documento, idanagrafica, idconto, idtipodocumento, idpagamento, idbanca, data, idstatodocumento, idsede, id_segment) SELECT '.prepare($numero).', '.prepare($numero_esterno).', '.prepare($ref_documento).', idanagrafica, idconto, (SELECT `id` FROM `co_tipidocumento` WHERE `descrizione`=\'Nota di accredito\' AND dir = \'entrata\'), idpagamento, idbanca, '.prepare($data).', (SELECT `id` FROM `co_statidocumento` WHERE `descrizione`=\'Bozza\'), idsede, '.prepare($id_segment).' FROM co_documenti AS t WHERE id = '.prepare($id_record));
$id_record = $dbo->lastInsertedID();
$id_record = $nota->id;
// Lettura di tutte le righe della tabella in arrivo
foreach (post('qta_da_evadere') as $i => $value) {
@ -1339,17 +1342,25 @@ switch (post('op')) {
// Nota di debito
if (get('op') == 'nota_addebito') {
$rs_segment = $dbo->fetchArray("SELECT * FROM zz_segments WHERE predefined_addebito='1'");
if (sizeof($rs_segment) > 0) {
if (!empty($rs_segment)) {
$id_segment = $rs_segment[0]['id'];
} else {
$id_segment = $record['id_segment'];
}
$numero = get_new_numerofattura($record['data']);
$numero_esterno = get_new_numerosecondariofattura($record['data']);
$anagrafica = $fattura->anagrafica()->first();
$tipo = Tipo::where('descrizione', 'Nota di debito')->where('dir', 'entrata')->first();
$data = $fattura->data;
$dbo->query('INSERT INTO co_documenti (numero, numero_esterno, ref_documento, idanagrafica, idconto, idtipodocumento, idpagamento, idbanca, data, idstatodocumento, idsede, id_segment) SELECT '.prepare($numero).', '.prepare($numero_esterno).', '.prepare($id_record).', idanagrafica, idconto, (SELECT `id` FROM `co_tipidocumento` WHERE `descrizione`=\'Nota di addebito\' AND dir = \'entrata\'), idpagamento, idbanca, data, (SELECT `id` FROM `co_statidocumento` WHERE `descrizione`=\'Bozza\'), idsede, '.prepare($id_segment).' FROM co_documenti AS t WHERE id = '.prepare($id_record));
$id_record = $dbo->lastInsertedID();
$nota = Fattura::new($anagrafica, $tipo, $data, $id_segment);
$nota->ref_documento = $fattura->id;
$nota->idconto = $fattura->idconto;
$nota->idpagamento = $fattura->idpagamento;
$nota->idbanca = $fattura->idbanca;
$nota->idsede = $fattura->idsede;
$nota->save();
$id_record = $nota->id;
}
// Aggiornamento stato dei ddt presenti in questa fattura in base alle quantità totali evase

View File

@ -414,7 +414,7 @@ include $docroot.'/modules/fatture/row-list.php';
if (!empty($note_accredito)) {
echo '
<div class="alert alert-info text-center">'.tr('Note di accredito collegate').':';
<div class="alert alert-info text-center">'.tr('Note di credito collegate').':';
foreach ($note_accredito as $nota) {
$text = tr('Rif. fattura _NUM_ del _DATE_', [
'_NUM_' => $nota['numero'],

View File

@ -818,7 +818,7 @@ function rimuovi_riga_fattura($id_documento, $id_riga, $dir)
}
}
// Nota di accredito
// Nota di credito
if (!empty($riga['ref_riga_documento'])) {
$dbo->query('UPDATE co_righe_documenti SET qta_evasa = qta_evasa+'.$riga['qta'].' WHERE id='.prepare($riga['ref_riga_documento']));

View File

@ -307,7 +307,7 @@ class Fattura extends Model
}
/**
* Restituisce l'elenco delle note di accredito collegate.
* Restituisce l'elenco delle note di credito collegate.
*
* @return array
*/
@ -319,7 +319,7 @@ class Fattura extends Model
}
/**
* Controlla se la fattura è una nota di accredito.
* Controlla se la fattura è una nota di credito.
*
* @return bool
*/

View File

@ -91,11 +91,11 @@ if (str_contains($current_module['option'], '|segment|')) {
<div class="row">
<div class="col-md-6">
{[ "type": "checkbox", "label": "<?php echo tr('Predefinito note di accredito'); ?>", "name": "predefined_accredito", "value": "$predefined_accredito$", "help": "<?php echo tr('Seleziona per rendere il sezionale predefinito per le note di accredito.'); ?>", "placeholder": "<?php echo tr('Sezionale predefinito per le note di accredito'); ?>" ]}
{[ "type": "checkbox", "label": "<?php echo tr('Predefinito note di credito'); ?>", "name": "predefined_accredito", "value": "$predefined_accredito$", "help": "<?php echo tr('Seleziona per rendere il sezionale predefinito per le note di credito'); ?>", "placeholder": "<?php echo tr('Sezionale predefinito per le note di credito'); ?>" ]}
</div>
<div class="col-md-6">
{[ "type": "checkbox", "label": "<?php echo tr('Predefinito note di addebito'); ?>", "name": "predefined_addebito", "value": "$predefined_addebito$", "help": "<?php echo tr('Seleziona per rendere il sezionale predefinito per le note di addebito.'); ?>", "placeholder": "<?php echo tr('Sezionale predefinito per le note di addebito'); ?>" ]}
{[ "type": "checkbox", "label": "<?php echo tr('Predefinito note di debito'); ?>", "name": "predefined_addebito", "value": "$predefined_addebito$", "help": "<?php echo tr('Seleziona per rendere il sezionale predefinito per le note di debito'); ?>", "placeholder": "<?php echo tr('Sezionale predefinito per le note di debito'); ?>" ]}
</div>
</div>