Merge branch 'master' into 2.4.11

This commit is contained in:
Thomas Zilio 2019-07-15 16:54:09 +02:00
commit 19d87a134b
8 changed files with 186 additions and 9 deletions

View File

@ -623,7 +623,7 @@ if ($dir == 'uscita' && $fattura->isFE()) {
<?php <?php
if ($dir == 'entrata') { if ($dir == 'entrata') {
echo ' echo '
<div class="alert alert-info text-center">'.tr('Per allegare un documento alla fattura elettronica caricare il file PDF specificando come categoria "Fattura Elettronica"').'.</div>'; <div class="alert alert-info text-center">'.tr('Per allegare un documento alla fattura elettronica caricare il file PDF specificando come categoria "Allegati Fattura Elettronica"').'.</div>';
} }
echo ' echo '

View File

@ -526,7 +526,7 @@ class Fattura extends Document
public function getBollo() public function getBollo()
{ {
if (isset($this->bollo)) { if (isset($this->bollo)) {
return $this->bollo; return $this->bollo;
} }
$righe_bollo = $this->getRighe()->filter(function ($item, $key) { $righe_bollo = $this->getRighe()->filter(function ($item, $key) {
@ -548,7 +548,7 @@ class Fattura extends Document
return $marca_da_bollo; return $marca_da_bollo;
} }
protected function manageRigaMarcaDaBollo() public function manageRigaMarcaDaBollo()
{ {
$riga = $this->rigaBollo; $riga = $this->rigaBollo;

View File

@ -288,6 +288,8 @@ function add_conto(id) {
} }
function load_movimenti(selector, id_conto) { function load_movimenti(selector, id_conto) {
$("#main_loading").show();
$.ajax({ $.ajax({
url: "'.$structure->fileurl('dettagli_conto.php').'", url: "'.$structure->fileurl('dettagli_conto.php').'",
type: "get", type: "get",
@ -297,8 +299,9 @@ function load_movimenti(selector, id_conto) {
}, },
success: function(data){ success: function(data){
$("#" + selector).html(data); $("#" + selector).html(data);
$("#" + selector).slideToggle(); $("#" + selector).slideToggle();
$("#main_loading").fadeOut();
} }
}); });
} }

View File

@ -1195,7 +1195,7 @@ class FatturaElettronica
// Inclusione // Inclusione
foreach ($allegati as $allegato) { foreach ($allegati as $allegato) {
if ($allegato['category'] == 'Fattura Elettronica' && $allegato['name'] != 'Stampa allegata') { if ($allegato['category'] == 'Allegati Fattura Elettronica') {
$file = DOCROOT.'/'.$directory.'/'.$allegato['filename']; $file = DOCROOT.'/'.$directory.'/'.$allegato['filename'];
$attachments[] = [ $attachments[] = [

View File

@ -42,7 +42,7 @@ class FileManager implements ManagerInterface
<div class="panel-heading"> <div class="panel-heading">
<h3 class="panel-title">'.tr('Allegati').'</h3> <h3 class="panel-title">'.tr('Allegati').'</h3>
</div> </div>
<div class="panel-body"><div id="loading_'.$attachment_id.'" class="text-center hide" style="position:relative;top:100px;z-index:2;opacity:0.5;" ><i class="fa fa-refresh fa-spin fa-3x fa-fw"></i><span class="sr-only">'.tr('Caricamento...').'</span></div>'; <div class="panel-body"><div id="loading_'.$attachment_id.'" class="text-center hide" style="position:relative;top:100px;z-index:2;opacity:0.5;"><i class="fa fa-refresh fa-spin fa-3x fa-fw"></i><span class="sr-only">'.tr('Caricamento...').'</span></div>';
} }
$count = 0; $count = 0;

View File

@ -5,7 +5,7 @@ use Modules\Anagrafiche\Anagrafica;
// Fix del calcolo del bollo // Fix del calcolo del bollo
$fatture = \Modules\Fatture\Fattura::all(); $fatture = \Modules\Fatture\Fattura::all();
foreach ($fatture as $fattura) { foreach ($fatture as $fattura) {
$fattura->save(); $fattura->manageRigaMarcaDaBollo();
} }
// Fix per le relazioni tariffe-tecnici // Fix per le relazioni tariffe-tecnici

View File

@ -254,3 +254,16 @@ UPDATE `zz_prints` SET `filename` = 'Stampa calendario {periodo}' WHERE `name` =
-- Aggiornamento Statistiche delle Anagrafiche -- Aggiornamento Statistiche delle Anagrafiche
UPDATE `zz_plugins` SET `options` = 'custom', `directory` = 'statistiche_anagrafiche', `script` = '' WHERE `name` = 'Statistiche' AND `idmodule_from` = (SELECT `id` FROM `zz_modules` WHERE `name` = 'Anagrafiche'); UPDATE `zz_plugins` SET `options` = 'custom', `directory` = 'statistiche_anagrafiche', `script` = '' WHERE `name` = 'Statistiche' AND `idmodule_from` = (SELECT `id` FROM `zz_modules` WHERE `name` = 'Anagrafiche');
-- Fix sconti globali
UPDATE `co_righe_documenti` SET `sconto` = -`subtotale`, `sconto_unitario` = -`subtotale` WHERE `is_sconto` = 1 AND `subtotale` != 0;
UPDATE `co_righe_preventivi` SET `sconto` = -`subtotale`, `sconto_unitario` = -`subtotale` WHERE `is_sconto` = 1 AND `subtotale` != 0;
UPDATE `co_righe_contratti` SET `sconto` = -`subtotale`, `sconto_unitario` = -`subtotale` WHERE `is_sconto` = 1 AND `subtotale` != 0;
UPDATE `or_righe_ordini` SET `sconto` = -`subtotale`, `sconto_unitario` = -`subtotale` WHERE `is_sconto` = 1 AND `subtotale` != 0;
UPDATE `dt_righe_ddt` SET `sconto` = -`subtotale`, `sconto_unitario` = -`subtotale` WHERE `is_sconto` = 1 AND `subtotale` != 0;
UPDATE `co_righe_documenti` SET `subtotale` = 0 WHERE `is_sconto` = 1 AND `subtotale` != 0;
UPDATE `co_righe_preventivi` SET `subtotale` = 0 WHERE `is_sconto` = 1 AND `subtotale` != 0;
UPDATE `co_righe_contratti` SET `subtotale` = 0 WHERE `is_sconto` = 1 AND `subtotale` != 0;
UPDATE `or_righe_ordini` SET `subtotale` = 0 WHERE `is_sconto` = 1 AND `subtotale` != 0;
UPDATE `dt_righe_ddt` SET `subtotale` = 0 WHERE `is_sconto` = 1 AND `subtotale` != 0;

View File

@ -1,7 +1,168 @@
<?php <?php
include_once DOCROOT.'/modules/fatture/modutil.php'; include_once DOCROOT.'/modules/fatture/modutil.php';
include_once DOCROOT.'/modules/interventi/modutil.php';
function get_costi_intervento_fix($id_intervento)
{
$dbo = database();
$decimals = setting('Cifre decimali per importi');
$idiva = setting('Iva predefinita');
$rs_iva = $dbo->fetchArray('SELECT descrizione, percentuale, indetraibile FROM co_iva WHERE id='.prepare($idiva));
$tecnici = $dbo->fetchArray('SELECT
COALESCE(SUM(
ROUND(prezzo_ore_unitario_tecnico*ore, '.$decimals.')
), 0) AS manodopera_costo,
COALESCE(SUM(
ROUND(prezzo_ore_unitario*ore, '.$decimals.')
), 0) AS manodopera_addebito,
COALESCE(SUM(
ROUND(prezzo_ore_unitario*ore, '.$decimals.') - ROUND(sconto, '.$decimals.')
), 0) AS manodopera_scontato,
COALESCE(SUM(
ROUND(prezzo_dirittochiamata_tecnico, '.$decimals.')
), 0) AS dirittochiamata_costo,
COALESCE(SUM(
ROUND(prezzo_dirittochiamata, '.$decimals.')
), 0) AS dirittochiamata_addebito,
COALESCE(SUM(
ROUND(prezzo_dirittochiamata, '.$decimals.')
), 0) AS dirittochiamata_scontato,
COALESCE(SUM(
ROUND(prezzo_km_consuntivo_tecnico, '.$decimals.')
), 0) AS viaggio_costo,
COALESCE(SUM(
ROUND(prezzo_km_consuntivo, '.$decimals.')
), 0) viaggio_addebito,
COALESCE(SUM(
ROUND(prezzo_km_consuntivo, '.$decimals.') - ROUND(scontokm, '.$decimals.')
), 0) AS viaggio_scontato
FROM in_interventi_tecnici WHERE idintervento='.prepare($id_intervento));
$articoli = $dbo->fetchArray('SELECT
COALESCE(SUM(
ROUND(prezzo_acquisto, '.$decimals.') * ROUND(qta, '.$decimals.')
), 0) AS ricambi_costo,
COALESCE(SUM(
ROUND(prezzo_vendita, '.$decimals.') * ROUND(qta, '.$decimals.')
), 0) AS ricambi_addebito,
COALESCE(SUM(
ROUND(prezzo_vendita, '.$decimals.') * ROUND(qta, '.$decimals.') - ROUND(sconto, '.$decimals.')
), 0) AS ricambi_scontato,
ROUND(
(SELECT percentuale FROM co_iva WHERE co_iva.id=mg_articoli_interventi.idiva), '.$decimals.'
) AS ricambi_iva
FROM mg_articoli_interventi WHERE idintervento='.prepare($id_intervento));
$altro = $dbo->fetchArray('SELECT
COALESCE(SUM(
ROUND(prezzo_acquisto, '.$decimals.') * ROUND(qta, '.$decimals.')
), 0) AS altro_costo,
COALESCE(SUM(
ROUND(prezzo_vendita, '.$decimals.') * ROUND(qta, '.$decimals.')
), 0) AS altro_addebito,
COALESCE(SUM(
ROUND(prezzo_vendita, '.$decimals.') * ROUND(qta, '.$decimals.') - ROUND(sconto, '.$decimals.')
), 0) AS altro_scontato,
ROUND(
(SELECT percentuale FROM co_iva WHERE co_iva.id=in_righe_interventi.idiva), '.$decimals.'
) AS altro_iva
FROM in_righe_interventi WHERE idintervento='.prepare($id_intervento));
$result = array_merge($tecnici[0], $articoli[0], $altro[0]);
$result['totale_costo'] = sum([
$result['manodopera_costo'],
$result['dirittochiamata_costo'],
$result['viaggio_costo'],
$result['ricambi_costo'],
$result['altro_costo'],
]);
$result['totale_addebito'] = sum([
$result['manodopera_addebito'],
$result['dirittochiamata_addebito'],
$result['viaggio_addebito'],
$result['ricambi_addebito'],
$result['altro_addebito'],
]);
$result['totale_scontato'] = sum([
$result['manodopera_scontato'],
$result['dirittochiamata_scontato'],
$result['viaggio_scontato'],
$result['ricambi_scontato'],
$result['altro_scontato'],
]);
$result['iva_costo'] = sum([
$result['manodopera_costo'] * $rs_iva[0]['percentuale'] / 100,
$result['dirittochiamata_costo'] * $rs_iva[0]['percentuale'] / 100,
$result['viaggio_costo'] * $rs_iva[0]['percentuale'] / 100,
$result['ricambi_costo'] * $result['ricambi_iva'] / 100,
$result['altro_costo'] * $result['altro_iva'] / 100,
]);
$result['iva_addebito'] = sum([
$result['manodopera_addebito'] * $rs_iva[0]['percentuale'] / 100,
$result['dirittochiamata_addebito'] * $rs_iva[0]['percentuale'] / 100,
$result['viaggio_addebito'] * $rs_iva[0]['percentuale'] / 100,
$result['ricambi_addebito'] * $result['ricambi_iva'] / 100,
$result['altro_addebito'] * $result['altro_iva'] / 100,
]);
$result['iva_totale'] = sum([
$result['manodopera_scontato'] * $rs_iva[0]['percentuale'] / 100,
$result['dirittochiamata_scontato'] * $rs_iva[0]['percentuale'] / 100,
$result['viaggio_scontato'] * $rs_iva[0]['percentuale'] / 100,
$result['ricambi_scontato'] * $result['ricambi_iva'] / 100,
$result['altro_scontato'] * $result['altro_iva'] / 100,
]);
$result['totaleivato_costo'] = sum([
$result['manodopera_costo'] + ($result['manodopera_costo'] * $rs_iva[0]['percentuale'] / 100),
$result['dirittochiamata_costo'] + ($result['dirittochiamata_costo'] * $rs_iva[0]['percentuale'] / 100),
$result['viaggio_costo'] + ($result['viaggio_costo'] * $rs_iva[0]['percentuale'] / 100),
$result['ricambi_costo'] + ($result['ricambi_costo'] * $result['ricambi_iva'] / 100),
$result['altro_costo'] + ($result['altro_costo'] * $result['altro_iva'] / 100),
]);
$result['totaleivato_addebito'] = sum([
$result['manodopera_addebito'] + ($result['manodopera_addebito'] * $rs_iva[0]['percentuale'] / 100),
$result['dirittochiamata_addebito'] + ($result['dirittochiamata_addebito'] * $rs_iva[0]['percentuale'] / 100),
$result['viaggio_addebito'] + ($result['viaggio_addebito'] * $rs_iva[0]['percentuale'] / 100),
$result['ricambi_addebito'] + ($result['ricambi_addebito'] * $result['ricambi_iva'] / 100),
$result['altro_addebito'] + ($result['altro_addebito'] * $result['altro_iva'] / 100),
]);
$result['totale'] = sum([
$result['manodopera_scontato'] + ($result['manodopera_scontato'] * $rs_iva[0]['percentuale'] / 100),
$result['dirittochiamata_scontato'] + ($result['dirittochiamata_scontato'] * $rs_iva[0]['percentuale'] / 100),
$result['viaggio_scontato'] + ($result['viaggio_scontato'] * $rs_iva[0]['percentuale'] / 100),
$result['ricambi_scontato'] + ($result['ricambi_scontato'] * $result['ricambi_iva'] / 100),
$result['altro_scontato'] + ($result['altro_scontato'] * $result['altro_iva'] / 100),
]);
// Calcolo dello sconto incondizionato
$sconto = $dbo->fetchArray('SELECT sconto_globale, tipo_sconto_globale FROM in_interventi WHERE id='.prepare($id_intervento))[0];
$result['sconto_globale'] = ($sconto['tipo_sconto_globale'] == 'PRC') ? $result['totale_scontato'] * $sconto['sconto_globale'] / 100 : $sconto['sconto_globale'];
$result['sconto_globale'] = round($result['sconto_globale'], $decimals);
$result['totale_scontato'] = sum($result['totale_scontato'], -$result['sconto_globale']);
$result['iva_totale'] = sum($result['iva_totale'], -($result['sconto_globale'] * $rs_iva[0]['percentuale'] / 100));
$result['totale'] = sum($result['totale'], -($result['sconto_globale'] + ($result['sconto_globale'] * $rs_iva[0]['percentuale'] / 100)));
return $result;
}
// Aggiornamento sconti incodizionati per Interventi // Aggiornamento sconti incodizionati per Interventi
$id_iva = setting('Iva predefinita'); $id_iva = setting('Iva predefinita');
@ -9,7 +170,7 @@ $iva = $dbo->fetchOne('SELECT * FROM co_iva WHERE id='.prepare($id_iva));
$interventi = $dbo->fetchArray('SELECT * FROM in_interventi WHERE sconto_globale != 0 AND sconto_globale != NULL'); $interventi = $dbo->fetchArray('SELECT * FROM in_interventi WHERE sconto_globale != 0 AND sconto_globale != NULL');
foreach ($interventi as $intervento) { foreach ($interventi as $intervento) {
$costi = get_costi_intervento($intervento['id']); $costi = get_costi_intervento_fix($intervento['id']);
$sconto_globale = $costi['sconto_globale']; $sconto_globale = $costi['sconto_globale'];
if ($intervento['tipo_sconto_globale'] == 'PRC') { if ($intervento['tipo_sconto_globale'] == 'PRC') {