Merge branch 'master' of https://github.com/devcode-it/openstamanager
This commit is contained in:
commit
1d8ded79a4
|
@ -37,9 +37,9 @@ if ($options['action'] == 'edit') {
|
|||
// Fattura di vendita
|
||||
elseif ($options['dir'] == 'entrata') {
|
||||
// Caso particolare per aggiunta articolo
|
||||
$id_rivalsa_inps = ($options['op'] == 'addarticolo') ? '' : setting('Percentuale rivalsa');
|
||||
$id_rivalsa_inps = ($options['op'] == 'addarticolo') ? '' : setting('Cassa previdenziale predefinita');
|
||||
|
||||
$id_ritenuta_acconto = $options['id_ritenuta_acconto_predefined'] ?: setting("Percentuale ritenuta d'acconto");
|
||||
$id_ritenuta_acconto = $options['id_ritenuta_acconto_predefined'] ?: setting("Ritenuta d'acconto predefinita");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -48,10 +48,10 @@ $calcolo_ritenuta_acconto = $calcolo_ritenuta_acconto ?: setting("Metodologia ca
|
|||
echo '
|
||||
<div class="row">';
|
||||
|
||||
// Rivalsa INPS
|
||||
// Cassa previdenziale
|
||||
echo '
|
||||
<div class="col-md-4">
|
||||
{[ "type": "select", "label": "'.tr('Rivalsa').'", "name": "id_rivalsa_inps", "value": "'.$id_rivalsa_inps.'", "values": "query=SELECT * FROM co_rivalse", "help": "'.(($options['dir'] == 'entrata') ? setting('Tipo Cassa Previdenziale') : null).'" ]}
|
||||
{[ "type": "select", "label": "'.tr('Cassa previdenziale').'", "name": "id_rivalsa_inps", "value": "'.$id_rivalsa_inps.'", "values": "query=SELECT * FROM co_rivalse", "help": "'.(($options['dir'] == 'entrata') ? setting('Tipo Cassa Previdenziale') : null).'" ]}
|
||||
</div>';
|
||||
|
||||
// Ritenuta d'acconto
|
||||
|
@ -75,11 +75,11 @@ if (!empty($options['show-ritenuta-contributi']) || empty($options['hide_conto']
|
|||
echo '
|
||||
<div class="row">';
|
||||
|
||||
// Ritenuta contributi
|
||||
// Ritenuta previdenziale
|
||||
if (!empty($options['show-ritenuta-contributi'])) {
|
||||
echo '
|
||||
<div class="col-md-'.$width.'">
|
||||
{[ "type": "checkbox", "label": "'.tr('Ritenuta contributi').'", "name": "ritenuta_contributi", "value": "'.$result['ritenuta_contributi'].'" ]}
|
||||
{[ "type": "checkbox", "label": "'.tr('Ritenuta previdenziale').'", "name": "ritenuta_contributi", "value": "'.$result['ritenuta_contributi'].'" ]}
|
||||
</div>';
|
||||
}
|
||||
|
||||
|
|
|
@ -120,7 +120,7 @@ if (!empty($options['create_document'])) {
|
|||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
{[ "type": "select", "label": "'.tr('Ritenuta contributi').'", "name": "id_ritenuta_contributi", "value": "$id_ritenuta_contributi$", "values": "query=SELECT * FROM co_ritenuta_contributi" ]}
|
||||
{[ "type": "select", "label": "'.tr('Ritenuta previdenziale').'", "name": "id_ritenuta_contributi", "value": "$id_ritenuta_contributi$", "values": "query=SELECT * FROM co_ritenuta_contributi" ]}
|
||||
</div>';
|
||||
}
|
||||
|
||||
|
@ -187,13 +187,13 @@ if (!empty($options['create_document'])) {
|
|||
</div>';
|
||||
}
|
||||
|
||||
// Conto, rivalsa INPS, ritenuta d'acconto e ritenuta contributi
|
||||
// Conto, rivalsa INPS, ritenuta d'acconto e ritenuta previdenziale
|
||||
if (in_array($final_module['name'], ['Fatture di vendita', 'Fatture di acquisto']) && !in_array($original_module['name'], ['Fatture di vendita', 'Fatture di acquisto'])) {
|
||||
$id_rivalsa_inps = setting('Percentuale rivalsa');
|
||||
$id_rivalsa_inps = setting('Cassa previdenziale predefinita');
|
||||
if ($dir == 'uscita') {
|
||||
$id_ritenuta_acconto = $documento->anagrafica->id_ritenuta_acconto_acquisti;
|
||||
} else {
|
||||
$id_ritenuta_acconto = $documento->anagrafica->id_ritenuta_acconto_vendite ?: setting("Percentuale ritenuta d'acconto");
|
||||
$id_ritenuta_acconto = $documento->anagrafica->id_ritenuta_acconto_vendite ?: setting("Ritenuta d'acconto predefinita");
|
||||
}
|
||||
$calcolo_ritenuta_acconto = setting("Metodologia calcolo ritenuta d'acconto predefinito");
|
||||
|
||||
|
@ -240,11 +240,11 @@ if (in_array($final_module['name'], ['Fatture di vendita', 'Fatture di acquisto'
|
|||
echo '
|
||||
<div class="row">';
|
||||
|
||||
// Ritenuta contributi
|
||||
// Ritenuta previdenziale
|
||||
if ($show_ritenuta_contributi) {
|
||||
echo '
|
||||
<div class="col-md-'.$width.'">
|
||||
{[ "type": "checkbox", "label": "'.tr('Ritenuta contributi').'", "name": "ritenuta_contributi", "value": "1" ]}
|
||||
{[ "type": "checkbox", "label": "'.tr('Ritenuta previdenziale').'", "name": "ritenuta_contributi", "value": "1" ]}
|
||||
</div>';
|
||||
}
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ $settings = [
|
|||
'Utilizza prezzi di vendita comprensivi di IVA' => false,
|
||||
];
|
||||
|
||||
if (!empty(setting("Percentuale ritenuta d'acconto"))) {
|
||||
if (!empty(setting("Ritenuta d'acconto predefinita"))) {
|
||||
$settings["Causale ritenuta d'acconto"] = true;
|
||||
}
|
||||
|
||||
|
|
4500
locale/catalog.pot
4500
locale/catalog.pot
File diff suppressed because it is too large
Load Diff
|
@ -73,7 +73,7 @@ class Anagrafica extends Model
|
|||
$model->cognome = $cognome;
|
||||
|
||||
$model->codice = static::getNextCodice();
|
||||
$model->id_ritenuta_acconto_vendite = setting("Percentuale ritenuta d'acconto");
|
||||
$model->id_ritenuta_acconto_vendite = setting("Ritenuta d'acconto predefinita");
|
||||
$model->save();
|
||||
|
||||
$model->tipologie = $tipologie;
|
||||
|
|
|
@ -341,11 +341,11 @@ $("#scorporaIva").click( function() {
|
|||
|
||||
// Collegamenti diretti
|
||||
// Fatture, ddt, preventivi collegati a questo articolo
|
||||
$elementi = $dbo->fetchArray('SELECT `co_documenti`.`id`, `co_documenti`.`data`, `co_documenti`.`numero`, `co_documenti`.`numero_esterno`, `co_tipidocumento`.`descrizione` AS tipo_documento, `co_tipidocumento`.`dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idarticolo` = '.prepare($id_record).')
|
||||
$elementi = $dbo->fetchArray('SELECT `co_documenti`.`id`, `co_documenti`.`data`, `co_documenti`.`numero`, `co_documenti`.`numero_esterno`, `co_tipidocumento`.`descrizione` AS tipo_documento, `co_tipidocumento`.`dir`, SUM(co_righe_documenti.qta) AS qta_totale, ((SUM(co_righe_documenti.prezzo_unitario)-SUM(co_righe_documenti.sconto_unitario))/SUM(co_righe_documenti.qta)) AS prezzo_unitario, SUM(co_righe_documenti.prezzo_unitario)-SUM(co_righe_documenti.sconto_unitario) AS prezzo_totale FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` INNER JOIN `co_righe_documenti` ON `co_documenti`.`id`=`co_righe_documenti`.`iddocumento` WHERE `co_righe_documenti`.`idarticolo` = '.prepare($id_record).' GROUP BY co_documenti.id
|
||||
|
||||
UNION SELECT `dt_ddt`.`id`, `dt_ddt`.`data`, `dt_ddt`.`numero`, `dt_ddt`.`numero_esterno`, `dt_tipiddt`.`descrizione` AS tipo_documento, `dt_tipiddt`.`dir` FROM `dt_ddt` JOIN `dt_tipiddt` ON `dt_tipiddt`.`id` = `dt_ddt`.`idtipoddt` WHERE `dt_ddt`.`id` IN (SELECT `idddt` FROM `dt_righe_ddt` WHERE `idarticolo` = '.prepare($id_record).')
|
||||
UNION SELECT `dt_ddt`.`id`, `dt_ddt`.`data`, `dt_ddt`.`numero`, `dt_ddt`.`numero_esterno`, `dt_tipiddt`.`descrizione` AS tipo_documento, `dt_tipiddt`.`dir`, SUM(dt_righe_ddt.qta) AS qta_totale, ((SUM(dt_righe_ddt.prezzo_unitario)-SUM(dt_righe_ddt.sconto_unitario))/SUM(dt_righe_ddt.qta)) AS prezzo_unitario, SUM(dt_righe_ddt.prezzo_unitario)-SUM(dt_righe_ddt.sconto_unitario) AS prezzo_totale FROM `dt_ddt` JOIN `dt_tipiddt` ON `dt_tipiddt`.`id` = `dt_ddt`.`idtipoddt` INNER JOIN `dt_righe_ddt` ON `dt_ddt`.`id`=`dt_righe_ddt`.`idddt` WHERE `dt_righe_ddt`.`idarticolo` = '.prepare($id_record).' GROUP BY dt_ddt.id
|
||||
|
||||
UNION SELECT `co_preventivi`.`id`, `co_preventivi`.`data_bozza`, `co_preventivi`.`numero`, 0 AS numero_esterno , "Preventivo" AS tipo_documento, 0 AS dir FROM `co_preventivi` WHERE `co_preventivi`.`id` IN (SELECT `idpreventivo` FROM `co_righe_preventivi` WHERE `idarticolo` = '.prepare($id_record).') ORDER BY `data`');
|
||||
UNION SELECT `co_preventivi`.`id`, `co_preventivi`.`data_bozza`, `co_preventivi`.`numero`, 0 AS numero_esterno , "Preventivo" AS tipo_documento, 0 AS dir, SUM(co_righe_preventivi.qta) AS qta_totale, ((SUM(co_righe_preventivi.prezzo_unitario)-SUM(co_righe_preventivi.sconto_unitario))/SUM(co_righe_preventivi.qta)) AS prezzo_unitario, SUM(co_righe_preventivi.prezzo_unitario)-SUM(co_righe_preventivi.sconto_unitario) AS prezzo_totale FROM `co_preventivi` INNER JOIN `co_righe_preventivi` ON `co_preventivi`.`id`=`co_righe_preventivi`.`idpreventivo` WHERE `co_righe_preventivi`.`idarticolo` = '.prepare($id_record).' GROUP BY co_preventivi.id ORDER BY `data`');
|
||||
|
||||
if (!empty($elementi)) {
|
||||
echo '
|
||||
|
@ -359,7 +359,13 @@ if (!empty($elementi)) {
|
|||
</div>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<ul>';
|
||||
<table class="table table-striped table-bordered table-extra-condensed">
|
||||
<tr>
|
||||
<th>'.tr('Documento').'</td>
|
||||
<th width="12%" class="text-center">'.tr('Quantità').'</td>
|
||||
<th width="15%" class="text-center">'.tr('Prezzo unitario').'</td>
|
||||
<th width="15%" class="text-center">'.tr('Prezzo totale').'</td>
|
||||
<tr>';
|
||||
|
||||
foreach ($elementi as $elemento) {
|
||||
$descrizione = tr('_DOC_ num. _NUM_ del _DATE_', [
|
||||
|
@ -381,11 +387,16 @@ if (!empty($elementi)) {
|
|||
$id = $elemento['id'];
|
||||
|
||||
echo '
|
||||
<li>'.Modules::link($modulo, $id, $descrizione).'</li>';
|
||||
<tr>
|
||||
<td>'.Modules::link($modulo, $id, $descrizione).'</td>
|
||||
<td class="text-center">'.Translator::numberToLocale($elemento['qta_totale']).'</td>
|
||||
<td class="text-right">'.moneyFormat($elemento['prezzo_unitario']).'</td>
|
||||
<td class="text-right">'.moneyFormat($elemento['prezzo_totale']).'</td>
|
||||
<tr>';
|
||||
}
|
||||
|
||||
echo '
|
||||
</ul>
|
||||
</table>
|
||||
</div>
|
||||
</div>';
|
||||
}
|
||||
|
|
|
@ -420,7 +420,7 @@ $riga = $contratto->getRiga($type, $id_riga);
|
|||
}
|
||||
|
||||
// Cambio stato precedente contratto in concluso (non più pianificabile)
|
||||
$dbo->query('UPDATE `co_contratti` SET `rinnovabile`= 0, `idstato`= (SELECT id FROM co_staticontratti WHERE is_pianificabile = 0 AND is_fatturabile = 1 AND descrizione = \'Concluso\') WHERE `id` = '.prepare($id_record));
|
||||
$dbo->query('UPDATE `co_contratti` SET `rinnovabile`= 0, `idstato`= (SELECT id FROM co_staticontratti WHERE descrizione = \'Concluso\') WHERE `id` = '.prepare($id_record));
|
||||
|
||||
flash()->info(tr('Contratto rinnovato!'));
|
||||
|
||||
|
|
|
@ -35,13 +35,13 @@ echo '
|
|||
</button>
|
||||
</div>';
|
||||
|
||||
$rinnova = !empty($record['data_accettazione']) && !empty($record['data_conclusione']) && $record['data_accettazione'] != '0000-00-00' && $record['data_conclusione'] != '0000-00-00' && $record['is_pianificabile'] && $record['rinnovabile'];
|
||||
$rinnova = !empty($record['data_accettazione']) && !empty($record['data_conclusione']) && $record['data_accettazione'] != '0000-00-00' && $record['data_conclusione'] != '0000-00-00' && $record['is_completato'] && $record['rinnovabile'];
|
||||
|
||||
$stati_pianificabili = $dbo->fetchOne('SELECT GROUP_CONCAT(`descrizione` SEPARATOR ", ") AS stati_pianificabili FROM `co_staticontratti` WHERE `is_pianificabile` = 1')['stati_pianificabili'];
|
||||
$stati_completati = $dbo->fetchOne('SELECT GROUP_CONCAT(`descrizione` SEPARATOR ", ") AS stati_completati FROM `co_staticontratti` WHERE `is_completato` = 1')['stati_completati'];
|
||||
|
||||
echo '
|
||||
<div class="tip" data-toggle="tooltip" title="'.tr('Il contratto è rinnovabile se sono definite le date di accettazione e conclusione e si trova in uno di questi stati: _STATE_LIST_', [
|
||||
'_STATE_LIST_' => $stati_pianificabili,
|
||||
'_STATE_LIST_' => $stati_completati,
|
||||
]).'" id="rinnova">
|
||||
<button type="button" class="btn btn-warning ask '.($rinnova ? '' : 'disabled').'" data-backto="record-edit" data-op="renew" data-msg="'.tr('Rinnovare questo contratto?').'" data-button="'.tr('Rinnova').'" data-class="btn btn-lg btn-warning">
|
||||
<i class="fa fa-refresh"></i> '.tr('Rinnova').'...
|
||||
|
|
|
@ -118,7 +118,7 @@ if (strtotime($record['data_conclusione']) < strtotime($record['data_accettazion
|
|||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "number", "label": "<?php echo 'Sconto finale'; ?>", "name": "sconto_finale", "value": "<?php echo $contratto->sconto_finale_percentuale ?: $contratto->sconto_finale; ?>", "icon-after": "choice|untprc|<?php echo empty($contratto->sconto_finale) ? 'PRC' : 'UNT'; ?>", "help": "<?php echo tr('Sconto finale, utilizzabile per applicare sconti sul Netto a pagare del documento'); ?>." ]}
|
||||
{[ "type": "number", "label": "<?php echo 'Sconto in fattura'; ?>", "name": "sconto_finale", "value": "<?php echo $contratto->sconto_finale_percentuale ?: $contratto->sconto_finale; ?>", "icon-after": "choice|untprc|<?php echo empty($contratto->sconto_finale) ? 'PRC' : 'UNT'; ?>", "help": "<?php echo tr('Sconto in fattura, utilizzabile per applicare sconti sul netto a pagare del documento'); ?>." ]}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
@ -441,6 +441,7 @@ $("#idanagrafica_c").change(function() {
|
|||
session_set("superselect,idanagrafica", $(this).val(), 0);
|
||||
|
||||
$("#idsede").selectReset();
|
||||
$("#matricolaimpianto").selectReset();
|
||||
});
|
||||
|
||||
$("#codice_cig, #codice_cup").bind("keyup change", function(e) {
|
||||
|
|
|
@ -215,12 +215,12 @@ echo '
|
|||
<td></td>
|
||||
</tr>';
|
||||
|
||||
// SCONTO FINALE
|
||||
// SCONTO IN FATTURA
|
||||
if (!empty($sconto_finale)) {
|
||||
echo '
|
||||
<tr>
|
||||
<td colspan="5" class="text-right">
|
||||
<b>'.tr('Sconto finale', [], ['upper' => true]).':</b>
|
||||
<b>'.tr('Sconto in fattura', [], ['upper' => true]).':</b>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
'.moneyFormat($sconto_finale, 2).'
|
||||
|
|
|
@ -263,7 +263,7 @@ if ($dir == 'entrata') {
|
|||
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
{[ "type": "number", "label": "'.('Sconto finale').'", "name": "sconto_finale", "value": "'.($ddt->sconto_finale_percentuale ?: $ddt->sconto_finale).'", "icon-after": "choice|untprc|'.(empty($ddt->sconto_finale) ? 'PRC' : 'UNT').'", "help": "'.tr('Sconto finale, utilizzabile per applicare sconti sul Netto a pagare del documento').'." ]}
|
||||
{[ "type": "number", "label": "'.('Sconto in fattura').'", "name": "sconto_finale", "value": "'.($ddt->sconto_finale_percentuale ?: $ddt->sconto_finale).'", "icon-after": "choice|untprc|'.(empty($ddt->sconto_finale) ? 'PRC' : 'UNT').'", "help": "'.tr('Sconto in fattura, utilizzabile per applicare sconti sul netto a pagare del documento').'." ]}
|
||||
</div>
|
||||
</div>';
|
||||
}
|
||||
|
|
|
@ -138,7 +138,7 @@ function ricalcola_costiagg_ddt($idddt, $idrivalsainps = '', $idritenutaacconto
|
|||
// Leggo la rivalsa inps se c'è (per i ddt di vendita lo leggo dalle impostazioni)
|
||||
if ($dir == 'entrata') {
|
||||
if (!empty($idrivalsainps)) {
|
||||
$idrivalsainps = setting('Percentuale rivalsa');
|
||||
$idrivalsainps = setting('Cassa previdenziale predefinita');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -159,7 +159,7 @@ function ricalcola_costiagg_ddt($idddt, $idrivalsainps = '', $idritenutaacconto
|
|||
// Leggo la ritenuta d'acconto se c'è (per i ddt di vendita lo leggo dalle impostazioni)
|
||||
if (!empty($idritenutaacconto)) {
|
||||
if ($dir == 'entrata') {
|
||||
$idritenutaacconto = setting("Percentuale ritenuta d'acconto");
|
||||
$idritenutaacconto = setting("Ritenuta d'acconto predefinita");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -273,12 +273,12 @@ echo '
|
|||
<td></td>
|
||||
</tr>';
|
||||
|
||||
// SCONTO FINALE
|
||||
// SCONTO IN FATTURA
|
||||
if (!empty($sconto_finale)) {
|
||||
echo '
|
||||
<tr>
|
||||
<td colspan="5" class="text-right">
|
||||
<b>'.tr('Sconto finale', [], ['upper' => true]).':</b>
|
||||
<b>'.tr('Sconto in fattura', [], ['upper' => true]).':</b>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
'.moneyFormat($sconto_finale, 2).'
|
||||
|
|
|
@ -397,8 +397,8 @@ elseif ($record['stato'] == 'Bozza') {
|
|||
?>
|
||||
|
||||
<div class="col-md-3">
|
||||
<?php echo !empty($record['id_ritenuta_contributi']) ? Modules::link('Ritenute contributi', $record['id_ritenuta_contributi'], null, null, 'class="pull-right"') : ''; ?>
|
||||
{[ "type": "select", "label": "<?php echo tr('Ritenuta contributi'); ?>", "name": "id_ritenuta_contributi", "value": "$id_ritenuta_contributi$", "values": "query=SELECT *, CONCAT(descrizione,(IF(percentuale>0, CONCAT(\" - \", percentuale, \"% sul \", percentuale_imponibile, \"% imponibile\"), \"\"))) AS descrizione FROM co_ritenuta_contributi", "help": "<?php echo tr('Ritenuta contributi da applicare alle righe della fattura.'); ?>" ]}
|
||||
<?php echo !empty($record['id_ritenuta_contributi']) ? Modules::link('Ritenute previdenziali', $record['id_ritenuta_contributi'], null, null, 'class="pull-right"') : ''; ?>
|
||||
{[ "type": "select", "label": "<?php echo tr('Ritenuta previdenziale'); ?>", "name": "id_ritenuta_contributi", "value": "$id_ritenuta_contributi$", "values": "query=SELECT *, CONCAT(descrizione,(IF(percentuale>0, CONCAT(\" - \", percentuale, \"% sul \", percentuale_imponibile, \"% imponibile\"), \"\"))) AS descrizione FROM co_ritenuta_contributi", "help": "<?php echo tr('Ritenuta previdenziale da applicare alle righe della fattura.'); ?>" ]}
|
||||
</div>
|
||||
|
||||
<?php
|
||||
|
@ -441,7 +441,7 @@ elseif ($record['stato'] == 'Bozza') {
|
|||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "number", "label": "'.tr('Sconto finale').'", "name": "sconto_finale", "value": "'.($fattura->sconto_finale_percentuale ?: $fattura->sconto_finale).'", "icon-after": "choice|untprc|'.(empty($fattura->sconto_finale) ? 'PRC' : 'UNT').'", "help": "'.tr('Sconto finale in fattura, utilizzabile per applicare sconti sul Netto a pagare del documento e le relative scadenze').'. '.tr('Per utilizzarlo in relazione a una riga della Fattura Elettronica, inserire il tipo di dato in \'\'Attributi avanzati\'\' -> \'\'Altri Dati Gestionali\'\' -> \'\'TipoDato\'\' e il testo di descrizione in \'\'Attributi avanzati\'\' -> \'\'Altri Dati Gestionali\'\' -> \'\'RiferimentoTesto\'\' della specifica riga').'. '.tr('Nota: lo sconto finale in fattura non influenza i movimenti contabili').'." ]}
|
||||
{[ "type": "number", "label": "'.tr('Sconto in fattura').'", "name": "sconto_finale", "value": "'.($fattura->sconto_finale_percentuale ?: $fattura->sconto_finale).'", "icon-after": "choice|untprc|'.(empty($fattura->sconto_finale) ? 'PRC' : 'UNT').'", "help": "'.tr('Sconto in fattura, utilizzabile per applicare sconti sul Netto a pagare del documento e le relative scadenze').'. '.tr('Per utilizzarlo in relazione a una riga della Fattura Elettronica, inserire il tipo di dato in \'\'Attributi avanzati\'\' -> \'\'Altri Dati Gestionali\'\' -> \'\'TipoDato\'\' e il testo di descrizione in \'\'Attributi avanzati\'\' -> \'\'Altri Dati Gestionali\'\' -> \'\'RiferimentoTesto\'\' della specifica riga').'. '.tr('Nota: lo sconto in fattura non influenza i movimenti contabili').'." ]}
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
|
|
|
@ -80,7 +80,7 @@ if (!empty($documento->dichiarazione)) {
|
|||
$ritenuta_acconto = $dbo->fetchOne('SELECT id_ritenuta_acconto_'.($dir == 'uscita' ? 'acquisti' : 'vendite').' AS id_ritenuta_acconto FROM an_anagrafiche WHERE idanagrafica='.prepare($documento['idanagrafica']));
|
||||
$id_ritenuta_acconto = $ritenuta_acconto['id_ritenuta_acconto'];
|
||||
if ($dir == 'entrata' && empty($id_ritenuta_acconto)) {
|
||||
$id_ritenuta_acconto = setting("Percentuale ritenuta d'acconto");
|
||||
$id_ritenuta_acconto = setting("Ritenuta d'acconto predefinita");
|
||||
}
|
||||
$options['id_ritenuta_acconto_predefined'] = $id_ritenuta_acconto;
|
||||
|
||||
|
|
|
@ -75,9 +75,9 @@ foreach ($righe as $riga) {
|
|||
$descrizione_conto = $dbo->fetchOne('SELECT descrizione FROM co_pianodeiconti3 WHERE id = '.prepare($riga->id_conto))['descrizione'];
|
||||
|
||||
$extra_riga = replace('_DESCRIZIONE_CONTO__ID_DOCUMENTO__NUMERO_RIGA__CODICE_COMMESSA__CODICE_CIG__CODICE_CUP__RITENUTA_ACCONTO__RITENUTA_CONTRIBUTI__RIVALSA_', [
|
||||
'_RIVALSA_' => $riga->rivalsa_inps ? '<br>Rivalsa: '.moneyFormat(abs($riga->rivalsa_inps)) : null,
|
||||
'_RIVALSA_' => $riga->rivalsa_inps ? '<br>'.tr('Cassa previdenziale').': '.moneyFormat(abs($riga->rivalsa_inps)) : null,
|
||||
'_RITENUTA_ACCONTO_' => $riga->ritenuta_acconto ? '<br>Ritenuta acconto: '.moneyFormat(abs($riga->ritenuta_acconto)) : null,
|
||||
'_RITENUTA_CONTRIBUTI_' => $riga->ritenuta_contributi ? '<br>Ritenuta contributi: '.moneyFormat(abs($riga->ritenuta_contributi)) : null,
|
||||
'_RITENUTA_CONTRIBUTI_' => $riga->ritenuta_contributi ? '<br>Ritenuta previdenziale: '.moneyFormat(abs($riga->ritenuta_contributi)) : null,
|
||||
'_DESCRIZIONE_CONTO_' => $descrizione_conto ?: '<span class="label label-danger" ><i class="fa fa-exclamation-triangle"></i>
|
||||
'.tr('Conto mancante').'</span>',
|
||||
'_ID_DOCUMENTO_' => $id_documento_fe ? ' - DOC: '.$id_documento_fe : null,
|
||||
|
@ -305,7 +305,7 @@ if (!empty($rivalsa_inps)) {
|
|||
}
|
||||
|
||||
echo '
|
||||
<b>'.tr('Rivalsa', [], ['upper' => true]).' :</b>
|
||||
<b>'.tr('Cassa previdenziale', [], ['upper' => true]).' :</b>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
'.moneyFormat($rivalsa_inps, 2).'
|
||||
|
@ -360,12 +360,12 @@ if (!empty($ritenuta_acconto)) {
|
|||
</tr>';
|
||||
}
|
||||
|
||||
// RITENUTA CONTRIBUTI
|
||||
// RITENUTA PREVIDENZIALE
|
||||
if (!empty($ritenuta_contributi)) {
|
||||
echo '
|
||||
<tr>
|
||||
<td colspan="5" class="text-right">
|
||||
<b>'.tr('Ritenuta contributi', [], ['upper' => true]).':</b>
|
||||
<b>'.tr('Ritenuta previdenziale', [], ['upper' => true]).':</b>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
'.moneyFormat($ritenuta_contributi, 2).'
|
||||
|
@ -374,12 +374,12 @@ if (!empty($ritenuta_contributi)) {
|
|||
</tr>';
|
||||
}
|
||||
|
||||
// SCONTO FINALE
|
||||
// SCONTO IN FATTURA
|
||||
if (!empty($sconto_finale)) {
|
||||
echo '
|
||||
<tr>
|
||||
<td colspan="5" class="text-right">
|
||||
<b>'.tr('Sconto finale', [], ['upper' => true]).':</b>
|
||||
<b>'.tr('Sconto in fattura', [], ['upper' => true]).':</b>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
'.moneyFormat($sconto_finale, 2).'
|
||||
|
|
|
@ -140,7 +140,7 @@ class Fattura extends Document
|
|||
$model->addebita_bollo = setting('Addebita marca da bollo al cliente');
|
||||
|
||||
// Ritenuta contributi predefinita
|
||||
$id_ritenuta_contributi = ($tipo_documento->dir == 'entrata') ? setting('Ritenuta contributi') : null;
|
||||
$id_ritenuta_contributi = ($tipo_documento->dir == 'entrata') ? setting('Ritenuta previdenziale predefinita') : null;
|
||||
$model->id_ritenuta_contributi = $id_ritenuta_contributi ?: null;
|
||||
|
||||
// Banca predefinita per l'anagrafica controparte
|
||||
|
|
|
@ -207,7 +207,7 @@ class Movimenti
|
|||
}
|
||||
|
||||
/*
|
||||
* 7) Ritenuta contributi
|
||||
* 7) Ritenuta previdenziale
|
||||
* Conto "Conto per Erario c/enasarco": DARE per Vendita, AVERE per Acquisto
|
||||
* Conto della controparte: AVERE per Vendita, DARE per Acquisto
|
||||
*/
|
||||
|
|
|
@ -46,9 +46,7 @@ switch ($resource) {
|
|||
}
|
||||
|
||||
$where[] = 'idanagrafica='.prepare($superselect['idanagrafica']);
|
||||
if (!empty($superselect['idsede_destinazione'])) {
|
||||
$where[] = 'idsede='.prepare($superselect['idsede_destinazione']);
|
||||
}
|
||||
$where[] = 'idsede='.prepare($superselect['idsede_destinazione'] ?: 0);
|
||||
|
||||
if (!empty($search)) {
|
||||
$search_fields[] = 'nome LIKE '.prepare('%'.$search.'%');
|
||||
|
|
|
@ -169,7 +169,7 @@ echo '
|
|||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
{[ "type": "select", "label": "'.tr('Sede destinazione').'", "name": "idsede_destinazione", "value": "'.$id_sede.'", "ajax-source": "sedi", "icon-after": "add|'.$module_anagrafiche['id'].'|id_plugin='.$id_plugin_sedi.'&id_parent='.$id_anagrafica.'" ]}
|
||||
{[ "type": "select", "label": "'.tr('Sede destinazione').'", "name": "idsede_destinazione", "value": "'.$id_sede.'", "ajax-source": "sedi", "select-options": '.json_encode(['idanagrafica' => $id_anagrafica]).', "icon-after": "add|'.$module_anagrafiche['id'].'|id_plugin='.$id_plugin_sedi.'&id_parent='.$id_anagrafica.'" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
|
@ -231,7 +231,7 @@ echo '
|
|||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
{[ "type": "select", "label": "'.tr('Impianto').'", "multiple": 1, "name": "idimpianti[]", "value": "'.$impianti_collegati.'", "ajax-source": "impianti-cliente", "select-options": {"idanagrafica": '.($id_anagrafica ?: '""').'}, "icon-after": "add|'.Modules::get('Impianti')['id'].'|id_anagrafica='.$id_anagrafica.'" ]}
|
||||
{[ "type": "select", "label": "'.tr('Impianto').'", "multiple": 1, "name": "idimpianti[]", "value": "'.$impianti_collegati.'", "ajax-source": "impianti-cliente", "select-options": {"idanagrafica": '.($id_anagrafica ?: '""').', "idsede_destinazione": '.($id_sede ?: '""').'}, "icon-after": "add|'.Modules::get('Impianti')['id'].'|id_anagrafica='.$id_anagrafica.'" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
|
|
|
@ -153,8 +153,8 @@ function aggiungi_intervento_in_fattura($id_intervento, $id_fattura, $descrizion
|
|||
{
|
||||
$dbo = database();
|
||||
|
||||
$id_rivalsa_inps = $id_rivalsa_inps !== false ? $id_rivalsa_inps : setting('Percentuale rivalsa');
|
||||
$id_ritenuta_acconto = $id_ritenuta_acconto !== false ? $id_ritenuta_acconto : setting("Percentuale ritenuta d'acconto");
|
||||
$id_rivalsa_inps = $id_rivalsa_inps !== false ? $id_rivalsa_inps : setting('Cassa previdenziale predefinita');
|
||||
$id_ritenuta_acconto = $id_ritenuta_acconto !== false ? $id_ritenuta_acconto : setting("Ritenuta d'acconto predefinita");
|
||||
$calcolo_ritenuta_acconto = $calcolo_ritenuta_acconto !== false ? $calcolo_ritenuta_acconto : setting("Metodologia calcolo ritenuta d'acconto predefinito");
|
||||
|
||||
$fattura = Fattura::find($id_fattura);
|
||||
|
|
|
@ -27,7 +27,7 @@ switch (post('op')) {
|
|||
$operations['aggiorna-liste'] = [
|
||||
'text' => '<span><i class="fa fa-refresh"></i> '.tr('Aggiorna liste').'</span>',
|
||||
'data' => [
|
||||
'msg' => tr(''),
|
||||
'msg' => tr('Vuoi davvero aggiornare le liste dei destinatari?'),
|
||||
'button' => tr('Procedi'),
|
||||
'class' => 'btn btn-lg btn-danger',
|
||||
],
|
||||
|
|
|
@ -42,15 +42,40 @@ include_once __DIR__.'/../../core.php';
|
|||
</form>
|
||||
|
||||
<?php
|
||||
// Collegamenti diretti (numerici)
|
||||
$mansioni_collegate = $dbo->fetchNum('SELECT id FROM an_referenti WHERE idmansione='.prepare($id_record));
|
||||
|
||||
if (!empty($mansioni_collegate)) {
|
||||
$elementi = $dbo->fetchArray('SELECT an_referenti.nome, an_anagrafiche.ragione_sociale, an_anagrafiche.idanagrafica FROM an_referenti LEFT JOIN an_anagrafiche ON an_referenti.idanagrafica=an_anagrafiche.idanagrafica WHERE idmansione='.prepare($id_record));
|
||||
|
||||
if (!empty($elementi)) {
|
||||
echo '
|
||||
<div class="alert alert-danger">
|
||||
'.tr('Ci sono _NUM_ referenti collegati', [
|
||||
'_NUM_' => $mansioni_collegate,
|
||||
]).'.
|
||||
<div class="box box-warning collapsable collapsed-box">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title"><i class="fa fa-warning"></i> '.tr('Referenti collegati: _NUM_', [
|
||||
'_NUM_' => count($elementi),
|
||||
]).'</h3>
|
||||
<div class="box-tools pull-right">
|
||||
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-plus"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<ul>';
|
||||
|
||||
foreach ($elementi as $elemento) {
|
||||
$descrizione = tr('_REF_ (_ANAGRAFICA_)', [
|
||||
'_REF_' => $elemento['nome'],
|
||||
'_ANAGRAFICA_' => $elemento['ragione_sociale'],
|
||||
]);
|
||||
|
||||
|
||||
$plugin = 'Referenti';
|
||||
$id = $elemento['idanagrafica'];
|
||||
|
||||
echo '
|
||||
<li>'.Plugins::link($plugin, $id, $descrizione).'</li>';
|
||||
}
|
||||
|
||||
echo '
|
||||
</ul>
|
||||
</div>
|
||||
</div>';
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -124,7 +124,7 @@ if ($module['name'] == 'Ordini cliente') {
|
|||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "number", "label": "<?php echo 'Sconto finale'; ?>", "name": "sconto_finale", "value": "<?php echo $ordine->sconto_finale_percentuale ?: $ordine->sconto_finale; ?>", "icon-after": "choice|untprc|<?php echo empty($ordine->sconto_finale) ? 'PRC' : 'UNT'; ?>", "help": "<?php echo tr('Sconto finale, utilizzabile per applicare sconti sul Netto a pagare del documento'); ?>." ]}
|
||||
{[ "type": "number", "label": "<?php echo 'Sconto in fattura'; ?>", "name": "sconto_finale", "value": "<?php echo $ordine->sconto_finale_percentuale ?: $ordine->sconto_finale; ?>", "icon-after": "choice|untprc|<?php echo empty($ordine->sconto_finale) ? 'PRC' : 'UNT'; ?>", "help": "<?php echo tr('Sconto in fattura, utilizzabile per applicare sconti sul netto a pagare del documento'); ?>." ]}
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
|
|
|
@ -138,7 +138,7 @@ function ricalcola_costiagg_ordine($idordine, $idrivalsainps = '', $idritenutaac
|
|||
// Leggo la rivalsa inps se c'è (per i ordine di vendita lo leggo dalle impostazioni)
|
||||
if ($dir == 'entrata') {
|
||||
if (!empty($idrivalsainps)) {
|
||||
$idrivalsainps = setting('Percentuale rivalsa');
|
||||
$idrivalsainps = setting('Cassa previdenziale predefinita');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -155,7 +155,7 @@ function ricalcola_costiagg_ordine($idordine, $idrivalsainps = '', $idritenutaac
|
|||
// Leggo la rivalsa inps se c'è (per i ordine di vendita lo leggo dalle impostazioni)
|
||||
if (!empty($idritenutaacconto)) {
|
||||
if ($dir == 'entrata') {
|
||||
$idritenutaacconto = setting("Percentuale ritenuta d'acconto");
|
||||
$idritenutaacconto = setting("Ritenuta d'acconto predefinita");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -302,12 +302,12 @@ echo '
|
|||
<td></td>
|
||||
</tr>';
|
||||
|
||||
// SCONTO FINALE
|
||||
// SCONTO IN FATTURA
|
||||
if (!empty($sconto_finale)) {
|
||||
echo '
|
||||
<tr>
|
||||
<td colspan="6" class="text-right">
|
||||
<b>'.tr('Sconto finale', [], ['upper' => true]).':</b>
|
||||
<b>'.tr('Sconto in fattura', [], ['upper' => true]).':</b>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
'.moneyFormat($sconto_finale, 2).'
|
||||
|
|
|
@ -139,7 +139,7 @@ echo '
|
|||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "number", "label": "<?php echo 'Sconto finale'; ?>", "name": "sconto_finale", "value": "<?php echo $preventivo->sconto_finale_percentuale ?: $preventivo->sconto_finale; ?>", "icon-after": "choice|untprc|<?php echo empty($preventivo->sconto_finale) ? 'PRC' : 'UNT'; ?>", "help": "<?php echo tr('Sconto finale, utilizzabile per applicare sconti sul Netto a pagare del documento'); ?>." ]}
|
||||
{[ "type": "number", "label": "<?php echo 'Sconto in fattura'; ?>", "name": "sconto_finale", "value": "<?php echo $preventivo->sconto_finale_percentuale ?: $preventivo->sconto_finale; ?>", "icon-after": "choice|untprc|<?php echo empty($preventivo->sconto_finale) ? 'PRC' : 'UNT'; ?>", "help": "<?php echo tr('Sconto in fattura, utilizzabile per applicare sconti sul netto a pagare del documento'); ?>." ]}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
|
|
@ -254,12 +254,12 @@ echo '
|
|||
<td></td>
|
||||
</tr>';
|
||||
|
||||
// SCONTO FINALE
|
||||
// SCONTO IN FATTURA
|
||||
if (!empty($sconto_finale)) {
|
||||
echo '
|
||||
<tr>
|
||||
<td colspan="6" class="text-right">
|
||||
<b>'.tr('Sconto finale', [], ['upper' => true]).':</b>
|
||||
<b>'.tr('Sconto in fattura', [], ['upper' => true]).':</b>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
'.moneyFormat($sconto_finale, 2).'
|
||||
|
|
|
@ -1447,8 +1447,8 @@ class FatturaElettronica
|
|||
if (!empty($dichiarazione) && $riga->aliquota->id == $id_iva_dichiarazione) {
|
||||
$dettaglio[]['AltriDatiGestionali'] = [
|
||||
'TipoDato' => 'INTENTO',
|
||||
'RiferimentoNumero' => $dichiarazione->numero_protocollo,
|
||||
'RiferimentoData' => $dichiarazione->data_emissione,
|
||||
'RiferimentoTesto' => $dichiarazione->numero_protocollo,
|
||||
'RiferimentoData' => $dichiarazione->data_protocollo,
|
||||
];
|
||||
}
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@ include_once __DIR__.'/../../core.php';
|
|||
|
||||
use Modules\DDT\DDT;
|
||||
use Modules\Ordini\Ordine;
|
||||
use Modules\Fatture\Fattura;
|
||||
use Plugins\ImportFE\FatturaElettronica;
|
||||
use Plugins\ImportFE\Interaction;
|
||||
|
||||
|
@ -138,6 +139,7 @@ switch (filter('op')) {
|
|||
$fattura_pa = FatturaElettronica::manage($filename);
|
||||
$id_fattura = $fattura_pa->save($info);
|
||||
$fattura_pa->delete();
|
||||
$fattura = Fattura::find($id_fattura);
|
||||
|
||||
// Aggiorno la tipologia di anagrafica fornitore
|
||||
$anagrafica = $database->fetchOne('SELECT idanagrafica FROM co_documenti WHERE co_documenti.id='.prepare($id_fattura));
|
||||
|
@ -166,6 +168,11 @@ switch (filter('op')) {
|
|||
redirect(base_path().'/editor.php?id_module='.$id_module.'&id_record='.$id_fattura);
|
||||
} elseif (!empty($file)) {
|
||||
redirect(base_path().'/editor.php?id_module='.$id_module.'&id_plugin='.$id_plugin.'&id_record='.$id_record.'&sequence=1');
|
||||
flash()->warning(tr('È stata appena creata la fattura numero _NUM_ del _DATA_ (_ANAGRAFICA_)', [
|
||||
'_NUM_' => $fattura->numero,
|
||||
'_DATA_' => dateFormat($fattura->data),
|
||||
'_ANAGRAFICA_' => $fattura->anagrafica->ragione_sociale,
|
||||
]));
|
||||
} else {
|
||||
flash()->info(tr('Tutte le fatture salvate sono state importate!'));
|
||||
redirect(base_path().'/controller.php?id_module='.$id_module);
|
||||
|
|
|
@ -67,13 +67,15 @@ function compile(btn) {
|
|||
|
||||
$("select[name^=iva]").each(function(){
|
||||
var aliquota = $(this).closest("tr").find("[id^=aliquota]").text();
|
||||
if (response.iva[aliquota] !== undefined){
|
||||
if (response.iva[aliquota] !== undefined && !$(this).val()){
|
||||
$(this).selectSet(response.iva[aliquota].id);
|
||||
}
|
||||
});
|
||||
|
||||
$("select[name^=conto]").each(function(){
|
||||
$(this).selectSetNew(response.conto.id, response.conto.descrizione);
|
||||
if (!$(this).val()){
|
||||
$(this).selectSetNew(response.conto.id, response.conto.descrizione);
|
||||
}
|
||||
});
|
||||
},
|
||||
error: function(data) {
|
||||
|
|
|
@ -320,8 +320,13 @@ class FatturaOrdinaria extends FatturaElettronica
|
|||
$fattura->refresh();
|
||||
|
||||
// Arrotondamenti differenti nella fattura XML
|
||||
$totali_righe = array_column($righe, 'PrezzoTotale');
|
||||
$totale_righe = sum($totali_righe, null, 2);
|
||||
$dati_riepilogo = $this->getBody()['DatiBeniServizi']['DatiRiepilogo'];
|
||||
if (!empty($dati_riepilogo['ImponibileImporto'])) {
|
||||
$totale_righe = $dati_riepilogo['ImponibileImporto'];
|
||||
} else {
|
||||
$totali_righe = array_column($righe, 'PrezzoTotale');
|
||||
$totale_righe = sum($totali_righe, null, 2);
|
||||
}
|
||||
|
||||
$diff = round(abs($totale_righe) - abs($fattura->totale_imponibile), 2);
|
||||
if (!empty($diff)) {
|
||||
|
|
|
@ -40,10 +40,10 @@ class Parcella extends FatturaOrdinaria
|
|||
*
|
||||
* @return Fattura
|
||||
*/
|
||||
public function prepareFattura($id_tipo, $data, $id_sezionale, $ref_fattura)
|
||||
public function prepareFattura($id_tipo, $data, $data_registrazione, $id_sezionale, $ref_fattura)
|
||||
{
|
||||
if (empty($ref_fattura)) {
|
||||
return parent::prepareFattura($id_tipo, $data, $id_sezionale, $ref_fattura);
|
||||
return parent::prepareFattura($id_tipo, $data, $data_registrazione, $id_sezionale, $ref_fattura);
|
||||
}
|
||||
|
||||
$anagrafica = $this->saveAnagrafica();
|
||||
|
|
|
@ -49,7 +49,7 @@ switch ($operazione) {
|
|||
'idtipointervento' => post('idtipointervento'),
|
||||
'richiesta' => post('richiesta'),
|
||||
'idimpianti' => implode(',', post('idimpianti') ?: []),
|
||||
'idsede' => implode(',', post('idsede_c') ?: []),
|
||||
'idsede' => post('idsede_c') ?: 0,
|
||||
], ['id' => $id_record]);
|
||||
|
||||
flash()->info(tr('Promemoria inserito!'));
|
||||
|
|
|
@ -275,11 +275,11 @@ if ($options['pricing']) {
|
|||
</tr>';
|
||||
|
||||
if ($sconto_finale) {
|
||||
// SCONTO FINALE
|
||||
// SCONTO IN FATTURA
|
||||
echo '
|
||||
<tr>
|
||||
<td colspan="3" class="text-right border-top">
|
||||
<b>'.tr('Sconto finale', [], ['upper' => true]).':</b>
|
||||
<b>'.tr('Sconto in fattura', [], ['upper' => true]).':</b>
|
||||
</td>
|
||||
<th colspan="2" class="text-right">
|
||||
<b>'.moneyFormat($sconto_finale, 2).'</b>
|
||||
|
|
|
@ -87,11 +87,11 @@ if ($options['pricing']) {
|
|||
</tr>';
|
||||
|
||||
if ($sconto_finale) {
|
||||
// Riga 4 SCONTO FINALE
|
||||
// Riga 4 SCONTO IN FATTURA
|
||||
echo "
|
||||
<tr>
|
||||
<td>
|
||||
<p class='small-bold'>".tr('Sconto finale', [], ['upper' => true])."</p>
|
||||
<p class='small-bold'>".tr('Sconto in fattura', [], ['upper' => true])."</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
|
|
@ -339,8 +339,8 @@ if ($has_split_payment) {
|
|||
}
|
||||
|
||||
/*
|
||||
* Riga di riepilogo per lo Sconto finale sulla fattura.
|
||||
* Sconto finale | Totale (+ Rivalsa INPS - Ritenuta - Totale IVA [se split payment] - Sconto finale)
|
||||
* Riga di riepilogo per lo sconto in fattura.
|
||||
* Sconto in | Totale (+ Rivalsa INPS - Ritenuta - Totale IVA [se split payment] - Sconto finale)
|
||||
*/
|
||||
if ($has_sconto_finale) {
|
||||
$first_colspan = 1;
|
||||
|
|
|
@ -301,11 +301,11 @@ if ($options['pricing']) {
|
|||
</tr>';
|
||||
|
||||
if ($sconto_finale) {
|
||||
// SCONTO FINALE
|
||||
// SCONTO IN FATTURA
|
||||
echo '
|
||||
<tr>
|
||||
<td colspan="'.$colspan.'" class="text-right border-top">
|
||||
<b>'.tr('Sconto finale', [], ['upper' => true]).':</b>
|
||||
<b>'.tr('Sconto in fattura', [], ['upper' => true]).':</b>
|
||||
</td>
|
||||
<th colspan="2" class="text-right">
|
||||
<b>'.moneyFormat($sconto_finale, 2).'</b>
|
||||
|
|
|
@ -44,7 +44,7 @@ try {
|
|||
}
|
||||
|
||||
// Ri.Ba: Banca predefinita *del Cliente* piuttosto che dell'Azienda
|
||||
if ($pagamento->isRiBa()) {
|
||||
if ($pagamento && $pagamento->isRiBa()) {
|
||||
$banca = Banca::where('id_anagrafica', $anagrafica->id)
|
||||
->where('predefined', 1)
|
||||
->first();
|
||||
|
@ -358,11 +358,11 @@ if (($options['pricing'] && !isset($options['hide_total'])) || $options['show_on
|
|||
</tr>';
|
||||
|
||||
if ($sconto_finale) {
|
||||
// SCONTO FINALE
|
||||
// SCONTO IN FATTURA
|
||||
echo '
|
||||
<tr>
|
||||
<td colspan="'.($options['show_only_total'] ? 2 : 4).'" class="text-right border-top">
|
||||
<b>'.tr('Sconto finale', [], ['upper' => true]).':</b>
|
||||
<b>'.tr('Sconto in fattura', [], ['upper' => true]).':</b>
|
||||
</td>
|
||||
<th colspan="'.($options['show_only_total'] ? (($has_images) ? 2 : 1) : (($has_images) ? 3 : 2)).'" class="text-right">
|
||||
<b>'.moneyFormat($sconto_finale, 2).'</b>
|
||||
|
|
|
@ -24,6 +24,7 @@ echo '
|
|||
|
||||
echo '
|
||||
<td>'.str_pad($record['idmovimenti'], 8, '0', STR_PAD_LEFT).'</td>
|
||||
<td>'.$record['numero'].'</td>
|
||||
<td>'.Translator::datetoLocale($record['data_registrazione']).'</td>
|
||||
<td>'.$record['numero_esterno'].'</td>
|
||||
<td>'.Translator::datetoLocale($record['data']).'</td>
|
||||
|
|
|
@ -27,13 +27,13 @@ $esercizio = $year_start == $year_end ? ' - '.tr('Esercizio _YEAR_', [
|
|||
]) : '';
|
||||
|
||||
if ('entrata' == $dir) {
|
||||
$titolo = tr('Registro iva vendita dal _START_ al _END_ _SEZIONALE_', [
|
||||
$titolo = tr('Registro iva vendite dal _START_ al _END_ _SEZIONALE_', [
|
||||
'_START_' => Translator::dateToLocale($date_start),
|
||||
'_END_' => Translator::dateToLocale($date_end),
|
||||
'_SEZIONALE_' => (!empty($sezionale)) ? ' - '.$sezionale : '',
|
||||
], ['upper' => true]);
|
||||
} elseif ('uscita' == $dir) {
|
||||
$titolo = tr('Registro iva acquisto dal _START_ al _END_ _SEZIONALE_', [
|
||||
$titolo = tr('Registro iva acquisti dal _START_ al _END_ _SEZIONALE_', [
|
||||
'_START_' => Translator::dateToLocale($date_start),
|
||||
'_END_' => Translator::dateToLocale($date_end),
|
||||
'_SEZIONALE_' => (!empty($sezionale)) ? ' - '.$sezionale : '',
|
||||
|
@ -48,7 +48,8 @@ echo '<h4><b>'.$titolo.'</b></h4>
|
|||
<table class="table table-condensed table-striped" border="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>'.tr('Prot.').'</th>
|
||||
<th>'.tr('Movimento').'</th>
|
||||
<th>'.tr('N° Prot.').'</th>
|
||||
<th>'.tr('Data reg.').'</th>
|
||||
<th>'.tr('N<sup>o</sup> doc.').'</th>
|
||||
<th>'.tr('Data doc.').'</th>
|
||||
|
|
|
@ -22,4 +22,18 @@ INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`
|
|||
UPDATE `zz_widgets` SET `query` = 'SELECT COUNT(id) AS dato FROM co_preventivi WHERE idstato=(SELECT id FROM co_statipreventivi WHERE descrizione=\"In lavorazione\") AND default_revision=1' WHERE `zz_widgets`.`name` ='Preventivi in lavorazione';
|
||||
|
||||
-- Rimosso controllo is_pianificabile widget contratti in scadenza
|
||||
UPDATE `zz_widgets` SET `query` = 'SELECT COUNT(dati.id) AS dato FROM(SELECT id, ((SELECT SUM(co_righe_contratti.qta) FROM co_righe_contratti WHERE co_righe_contratti.um=\'ore\' AND co_righe_contratti.idcontratto=co_contratti.id) - IFNULL( (SELECT SUM(in_interventi_tecnici.ore) FROM in_interventi_tecnici INNER JOIN in_interventi ON in_interventi_tecnici.idintervento=in_interventi.id WHERE in_interventi.id_contratto=co_contratti.id AND in_interventi.idstatointervento IN (SELECT in_statiintervento.idstatointervento FROM in_statiintervento WHERE in_statiintervento.is_completato = 1)), 0) ) AS ore_rimanenti, DATEDIFF(data_conclusione, NOW()) AS giorni_rimanenti, data_conclusione, ore_preavviso_rinnovo, giorni_preavviso_rinnovo, (SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica=co_contratti.idanagrafica) AS ragione_sociale FROM co_contratti WHERE rinnovabile = 1 AND YEAR(data_conclusione) > 1970 AND co_contratti.id NOT IN (SELECT idcontratto_prev FROM co_contratti contratti) HAVING (ore_rimanenti < ore_preavviso_rinnovo OR DATEDIFF(data_conclusione, NOW()) < ABS(giorni_preavviso_rinnovo)) ORDER BY giorni_rimanenti ASC, ore_rimanenti ASC) dati' WHERE `zz_widgets`.`name` = 'Contratti in scadenza';
|
||||
UPDATE `zz_widgets` SET `query` = 'SELECT COUNT(dati.id) AS dato FROM(SELECT id, ((SELECT SUM(co_righe_contratti.qta) FROM co_righe_contratti WHERE co_righe_contratti.um=\'ore\' AND co_righe_contratti.idcontratto=co_contratti.id) - IFNULL( (SELECT SUM(in_interventi_tecnici.ore) FROM in_interventi_tecnici INNER JOIN in_interventi ON in_interventi_tecnici.idintervento=in_interventi.id WHERE in_interventi.id_contratto=co_contratti.id AND in_interventi.idstatointervento IN (SELECT in_statiintervento.idstatointervento FROM in_statiintervento WHERE in_statiintervento.is_completato = 1)), 0) ) AS ore_rimanenti, DATEDIFF(data_conclusione, NOW()) AS giorni_rimanenti, data_conclusione, ore_preavviso_rinnovo, giorni_preavviso_rinnovo, (SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica=co_contratti.idanagrafica) AS ragione_sociale FROM co_contratti WHERE rinnovabile = 1 AND YEAR(data_conclusione) > 1970 AND co_contratti.id NOT IN (SELECT idcontratto_prev FROM co_contratti contratti) HAVING (ore_rimanenti < ore_preavviso_rinnovo OR DATEDIFF(data_conclusione, NOW()) < ABS(giorni_preavviso_rinnovo)) ORDER BY giorni_rimanenti ASC, ore_rimanenti ASC) dati' WHERE `zz_widgets`.`name` = 'Contratti in scadenza';
|
||||
|
||||
-- Aggiornamento ritenuta contributi in contributi previdenziali
|
||||
UPDATE `zz_settings` SET `nome` = 'Ritenuta previdenziale predefinita' WHERE `nome` = 'Ritenuta contributi';
|
||||
UPDATE `zz_modules` SET `name` = 'Ritenute previdenziali', `title` = 'Ritenute previdenziali' WHERE `name` = 'Ritenute contributi';
|
||||
|
||||
-- Aggiornamento rivalse in casse previdenziali
|
||||
UPDATE `zz_settings` SET `nome` = 'Cassa previdenziale predefinita' WHERE `nome` = 'Percentuale rivalsa';
|
||||
UPDATE `zz_modules` SET `name` = 'Casse previdenziali', `title` = 'Casse previdenziali' WHERE `name` = 'Rivalse';
|
||||
|
||||
-- Aggiornamento impostazione predefinita ritenuta d'acconto
|
||||
UPDATE `zz_settings` SET `nome` = 'Ritenuta d''acconto predefinita' WHERE `nome` = 'Percentuale ritenuta d''acconto';
|
||||
|
||||
-- Fix vista tecnici assegnati
|
||||
UPDATE `zz_views` SET `query` = 'GROUP_CONCAT(DISTINCT(SELECT DISTINCT(ragione_sociale) FROM an_anagrafiche WHERE idanagrafica = in_interventi_tecnici_assegnati.id_tecnico) SEPARATOR \', \')' WHERE `zz_views`.`name` = 'Tecnici assegnati';
|
Loading…
Reference in New Issue