1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-06-05 22:09:38 +02:00

Aggiunta tabella co_pagamenti_lang

This commit is contained in:
Pek5892
2024-02-08 13:10:46 +01:00
parent 7782769922
commit c8c3afbc83
39 changed files with 373 additions and 171 deletions

View File

@@ -37,7 +37,7 @@ switch ($resource) {
`contratto`.`id` AS id_contratto, `contratto`.`id` AS id_contratto,
`contratto`.`descrizione` AS descrizione_contratto, `contratto`.`descrizione` AS descrizione_contratto,
`co_pagamenti`.`id` AS id_pagamento, `co_pagamenti`.`id` AS id_pagamento,
`co_pagamenti`.`descrizione` AS desc_pagamento, `co_pagamenti_lang`.`name` AS desc_pagamento,
`banca_vendite`.`id` AS id_banca_vendite, `banca_vendite`.`id` AS id_banca_vendite,
CONCAT(`banca_vendite`.`nome`, ' - ', `banca_vendite`.`iban`) AS descrizione_banca_vendite CONCAT(`banca_vendite`.`nome`, ' - ', `banca_vendite`.`iban`) AS descrizione_banca_vendite
FROM FROM
@@ -51,12 +51,11 @@ switch ($resource) {
LEFT JOIN LEFT JOIN
(SELECT `co_contratti`.`id`, `idanagrafica`, CONCAT('Contratto ', `numero`, ' del ', DATE_FORMAT(`data_bozza`, '%d/%m/%Y'), ' - ', `co_contratti`.`nome`, ' [', `co_staticontratti`.`descrizione` , ']') AS descrizione FROM `co_contratti` LEFT JOIN `co_staticontratti` ON `co_contratti`.`idstato`=`co_staticontratti`.`id` WHERE `co_contratti`.`predefined`=1 AND `is_pianificabile`=1) AS contratto (SELECT `co_contratti`.`id`, `idanagrafica`, CONCAT('Contratto ', `numero`, ' del ', DATE_FORMAT(`data_bozza`, '%d/%m/%Y'), ' - ', `co_contratti`.`nome`, ' [', `co_staticontratti`.`descrizione` , ']') AS descrizione FROM `co_contratti` LEFT JOIN `co_staticontratti` ON `co_contratti`.`idstato`=`co_staticontratti`.`id` WHERE `co_contratti`.`predefined`=1 AND `is_pianificabile`=1) AS contratto
ON `an_anagrafiche`.`idanagrafica`=`contratto`.`idanagrafica` ON `an_anagrafiche`.`idanagrafica`=`contratto`.`idanagrafica`
LEFT JOIN LEFT JOIN `co_pagamenti` ON `an_anagrafiche`.`idpagamento_vendite`=`co_pagamenti`.`id`
`co_pagamenti` LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti`.`id`=`co_pagamenti_lang`.`id_record` AND `co_pagamenti_lang`.`id_lang`= ".prepare(setting('Lingua')).')
ON `an_anagrafiche`.`idpagamento_vendite`=`co_pagamenti`.`id`
LEFT JOIN LEFT JOIN
`co_banche` banca_vendite `co_banche` banca_vendite
ON `co_pagamenti`.`idconto_vendite` = `banca_vendite`.`id_pianodeiconti3` AND `banca_vendite`.`id_anagrafica` = ".prepare($id_azienda).' AND `banca_vendite`.`deleted_at` IS NULL AND `banca_vendite`.`predefined` = 1 ON `co_pagamenti`.`idconto_vendite` = `banca_vendite`.`id_pianodeiconti3` AND `banca_vendite`.`id_anagrafica` = '.prepare($id_azienda).' AND `banca_vendite`.`deleted_at` IS NULL AND `banca_vendite`.`predefined` = 1
|where| |where|
ORDER BY ORDER BY
`ragione_sociale`'; `ragione_sociale`';
@@ -103,14 +102,33 @@ switch ($resource) {
case 'fornitori': case 'fornitori':
$id_azienda = setting('Azienda predefinita'); $id_azienda = setting('Azienda predefinita');
$query = "SELECT `an_anagrafiche`.`idanagrafica` AS id, CONCAT(`ragione_sociale`, IF(`citta` IS NULL OR `citta` = '', '', CONCAT(' (', `citta`, ')')), IF(`an_anagrafiche`.`deleted_at` IS NULL, '', ' (".tr('eliminata').")'),' - ', `an_anagrafiche`.`codice`) AS descrizione, `idtipointervento_default` AS `idtipointervento`, `co_pagamenti`.`id` AS id_pagamento, `co_pagamenti`.`descrizione` AS desc_pagamento, `banca_acquisti`.`id` AS id_banca_acquisti, CONCAT(`banca_acquisti`.`nome`, ' - ', `banca_acquisti`.`iban`) AS descrizione_banca_acquisti FROM `an_anagrafiche` INNER JOIN (`an_tipianagrafiche_anagrafiche` INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche`.`id` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = ".prepare(setting('Lingua')).')) ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` LEFT JOIN `co_pagamenti` ON `an_anagrafiche`.`idpagamento_acquisti`=`co_pagamenti`.`id` LEFT JOIN `co_banche` banca_acquisti ON `co_pagamenti`.`idconto_acquisti` = `banca_acquisti`.`id_pianodeiconti3` AND `banca_acquisti`.`id_anagrafica` = '.prepare($id_azienda).' AND `banca_acquisti`.`deleted_at` IS NULL AND `banca_acquisti`.`predefined` = 1 |where| ORDER BY `ragione_sociale`'; $query = "SELECT
`an_anagrafiche`.`idanagrafica` AS id,
CONCAT(`ragione_sociale`, IF(`citta` IS NULL OR `citta` = '', '', CONCAT(' (', `citta`, ')')), IF(`an_anagrafiche`.`deleted_at` IS NULL, '', ' (".tr('eliminata').")'),' - ', `an_anagrafiche`.`codice`) AS descrizione,
`idtipointervento_default` AS `idtipointervento`,
`co_pagamenti`.`id` AS id_pagamento,
`co_pagamenti_lang`.`name` AS desc_pagamento,
`banca_acquisti`.`id` AS id_banca_acquisti,
CONCAT(`banca_acquisti`.`nome`, ' - ', `banca_acquisti`.`iban`) AS descrizione_banca_acquisti
FROM
`an_anagrafiche`
INNER JOIN (
`an_tipianagrafiche_anagrafiche`
INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche`.`id`
LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = ".prepare(setting('Lingua')).')) ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica`
LEFT JOIN `co_pagamenti` ON `an_anagrafiche`.`idpagamento_acquisti`=`co_pagamenti`.`id`
LEFT JOIN `co_pagamenti_lang` co_pagamenti_lang ON (`co_pagamenti`.`id` = `co_pagamenti_lang`.`id_record` AND `co_pagamenti_lang`.`id_lang` = '.prepare(setting('Lingua')).")
LEFT JOIN `co_banche` banca_acquisti ON `co_pagamenti`.`idconto_acquisti` = `banca_acquisti`.`id_pianodeiconti3` AND `banca_acquisti`.`id_anagrafica` = '.prepare($id_azienda).' AND `banca_acquisti`.`deleted_at` IS NULL AND `banca_acquisti`.`predefined` = 1
|where|
ORDER BY
`ragione_sociale`";
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = '`an_anagrafiche`.`idanagrafica`='.prepare($element); $filter[] = '`an_anagrafiche`.`idanagrafica`='.prepare($element);
} }
if (empty($filter)) { if (empty($filter)) {
$where[] = "`name` = 'Fornitore'"; $where[] = "`an_tipianagrafiche_lang`.`name` = 'Fornitore'";
$where[] = '`an_anagrafiche`.`deleted_at` IS NULL'; $where[] = '`an_anagrafiche`.`deleted_at` IS NULL';
} }

View File

@@ -500,7 +500,7 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "'.tr('Pagamento predefinito').'", "name": "idpagamento_vendite", "values": "query=SELECT id, descrizione FROM co_pagamenti GROUP BY descrizione ORDER BY descrizione ASC", "value": "$idpagamento_vendite$" ]} {[ "type": "select", "label": "'.tr('Pagamento predefinito').'", "name": "idpagamento_vendite", "values": "query=SELECT `co_pagamenti`.`id`, `co_pagamenti_lang`.`name` AS descrizione FROM `co_pagamenti` LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti`.`id` = `co_pagamenti_lang`.`id_record` AND `co_pagamenti_lang`.`id_lang` = '.prepare(setting('Lingua')).') GROUP BY `descrizione` ORDER BY `descrizione` ASC", "value": "$idpagamento_vendite$" ]}
</div> </div>
</div> </div>
@@ -576,7 +576,7 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
<div class="tab-pane '.(!$is_fornitore ? 'hide' : (!$is_cliente ? 'active' : '')).'" id="fornitore"> <div class="tab-pane '.(!$is_fornitore ? 'hide' : (!$is_cliente ? 'active' : '')).'" id="fornitore">
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "'.tr('Pagamento predefinito').'", "name": "idpagamento_acquisti", "values": "query=SELECT id, descrizione FROM co_pagamenti GROUP BY descrizione ORDER BY descrizione ASC", "value": "$idpagamento_acquisti$" ]} {[ "type": "select", "label": "'.tr('Pagamento predefinito').'", "name": "idpagamento_acquisti", "values": "query=SELECT `co_pagamenti`.`id`, `co_pagamenti_lang`.`name` AS descrizione FROM `co_pagamenti` LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti`.`id` = `co_pagamenti_lang`.`id_record` AND `co_pagamenti_lang`.`id_lang` = '.prepare(setting('Lingua')).') GROUP BY `descrizione` ORDER BY `descrizione` ASC", "value": "$idpagamento_acquisti$" ]}
</div> </div>
<div class="col-md-6"> <div class="col-md-6">

View File

@@ -97,7 +97,7 @@ echo '
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "select", "label": "<?php echo tr('Pagamento'); ?>", "name": "idpagamento", "values": "query=SELECT id, descrizione FROM co_pagamenti GROUP BY descrizione ORDER BY descrizione", "value": "$idpagamento$" ]} {[ "type": "select", "label": "<?php echo tr('Pagamento'); ?>", "name": "idpagamento", "values": "query=SELECT `co_pagamenti`.`id`, `co_pagamenti_lang`.`name` AS `descrizione` FROM `co_pagamenti` LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti`.`id` = `co_pagamenti_lang`.`id_record` AND `co_pagamenti_lang`.`id_lang` = ".prepare(setting('Lingua')).") GROUP BY `descrizione` ORDER BY `descrizione`", "value": "$idpagamento$" ]}
</div> </div>
<div class="col-md-3"> <div class="col-md-3">

View File

@@ -199,7 +199,7 @@ foreach ($righe as $riga) {
// Iva // Iva
echo ' echo '
<br><small class="'.(($riga->aliquota->deleted_at) ? 'text-red' : '').' text-muted">'.$riga->aliquota->descrizione.(($riga->aliquota->esente) ? ' ('.$riga->aliquota->codice_natura_fe.')' : null).'</small> <br><small class="'.(($riga->aliquota->deleted_at) ? 'text-red' : '').' text-muted">'.$riga->aliquota->name.(($riga->aliquota->esente) ? ' ('.$riga->aliquota->codice_natura_fe.')' : null).'</small>
</td>'; </td>';
} }

View File

@@ -30,6 +30,7 @@ use Modules\DDT\DDT;
use Modules\DDT\Stato; use Modules\DDT\Stato;
use Modules\DDT\Tipo; use Modules\DDT\Tipo;
use Modules\Iva\Aliquota; use Modules\Iva\Aliquota;
use Modules\Pagamenti\Pagamento;
$module = Modules::get($id_module); $module = Modules::get($id_module);
@@ -80,9 +81,7 @@ switch (filter('op')) {
} }
// Leggo la descrizione del pagamento // Leggo la descrizione del pagamento
$query = 'SELECT descrizione FROM co_pagamenti WHERE id='.prepare($idpagamento); $pagamento = Pagamento::find($idpagamento)->name;
$rs = $dbo->fetchArray($query);
$pagamento = $rs[0]['descrizione'];
$ddt->data = post('data'); $ddt->data = post('data');
$ddt->numero_esterno = $numero_esterno; $ddt->numero_esterno = $numero_esterno;

View File

@@ -221,7 +221,7 @@ foreach ($righe as $riga) {
// Iva // Iva
echo ' echo '
<br><small class="'.(($riga->aliquota->deleted_at) ? 'text-red' : '').' text-muted">'.$riga->aliquota->descrizione.(($riga->aliquota->esente) ? ' ('.$riga->aliquota->codice_natura_fe.')' : null).'</small> <br><small class="'.(($riga->aliquota->deleted_at) ? 'text-red' : '').' text-muted">'.$riga->aliquota->name.(($riga->aliquota->esente) ? ' ('.$riga->aliquota->codice_natura_fe.')' : null).'</small>
</td>'; </td>';
} }

View File

@@ -23,6 +23,7 @@ use Common\Components\Component;
use Common\Document; use Common\Document;
use Modules\Anagrafiche\Anagrafica; use Modules\Anagrafiche\Anagrafica;
use Modules\Fatture\Fattura; use Modules\Fatture\Fattura;
use Modules\Pagamenti\Pagamento;
use Traits\RecordTrait; use Traits\RecordTrait;
use Traits\ReferenceTrait; use Traits\ReferenceTrait;
use Util\Generator; use Util\Generator;
@@ -75,9 +76,7 @@ class DDT extends Document
} }
// Tipo di pagamento e banca predefinite dall'anagrafica // Tipo di pagamento e banca predefinite dall'anagrafica
$id_pagamento = $database->fetchOne('SELECT id FROM co_pagamenti WHERE id = :id_pagamento', [ $id_pagamento = Pagamento::find($anagrafica['idpagamento_'.$conto])->id_record;
':id_pagamento' => $anagrafica['idpagamento_'.$conto],
])['id'];
// Se il ddt è un ddt cliente e non è stato associato un pagamento predefinito al cliente leggo il pagamento dalle impostazioni // Se il ddt è un ddt cliente e non è stato associato un pagamento predefinito al cliente leggo il pagamento dalle impostazioni
if ($direzione == 'entrata' && empty($id_pagamento)) { if ($direzione == 'entrata' && empty($id_pagamento)) {

View File

@@ -19,6 +19,8 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
use Modules\Pagamenti\Pagamento;
// $block_edit = $record['is_predefined']; // $block_edit = $record['is_predefined'];
?> ?>
@@ -75,7 +77,7 @@ include_once __DIR__.'/../../core.php';
<?php <?php
$results = $dbo->fetchArray('SELECT * FROM `co_pagamenti` WHERE descrizione='.prepare($record['descrizione']).' ORDER BY `num_giorni` ASC'); $results = (new Pagamento())->getByName(prepare($record['descrizione']))->id_record;
$numero_data = 1; $numero_data = 1;
foreach ($results as $result) { foreach ($results as $result) {
} }

View File

@@ -885,16 +885,16 @@ switch ($op) {
$iva = Aliquota::find(setting('Iva predefinita')); $iva = Aliquota::find(setting('Iva predefinita'));
$imponibile = $database->table('co_righe_documenti') $imponibile = $database->table('co_righe_documenti')
->join('`co_iva`', '`co_iva`.`id`', '=', '`co_righe_documenti`.`idiva`') ->join('co_iva', 'co_iva.id', '=', 'co_righe_documenti.idiva')
->where('`co_righe_documenti`.`iddocumento`', $fattura->id) ->where('co_righe_documenti.iddocumento', $fattura->id)
->whereIn('`co_iva`.`codice_natura_fe`', ['N2', 'N2.1', 'N2.2', 'N3', 'N3.1', 'N3.2', 'N3.3', 'N3.4', 'N3.5', 'N3.6', 'N6', 'N6.1', 'N6.2', 'N6.3', 'N6.4', 'N6.5', 'N6.6', 'N6.7', 'N6.8', 'N6.9']) ->whereIn('co_iva.codice_natura_fe', ['N2', 'N2.1', 'N2.2', 'N3', 'N3.1', 'N3.2', 'N3.3', 'N3.4', 'N3.5', 'N3.6', 'N6', 'N6.1', 'N6.2', 'N6.3', 'N6.4', 'N6.5', 'N6.6', 'N6.7', 'N6.8', 'N6.9'])
->sum('`subtotale`'); ->sum('subtotale');
$sconto = $database->table('co_righe_documenti') $sconto = $database->table('co_righe_documenti')
->join('`co_iva`', '`co_iva`.`id`', '=', '`co_righe_documenti`.`idiva`') ->join('co_iva', 'co_iva.id', '=', 'co_righe_documenti.idiva')
->where('`co_righe_documenti`.`iddocumento`', $fattura->id) ->where('co_righe_documenti.iddocumento', $fattura->id)
->whereIn('`co_iva`.`codice_natura_fe`', ['N2', 'N2.1', 'N2.2', 'N3', 'N3.1', 'N3.2', 'N3.3', 'N3.4', 'N3.5', 'N3.6', 'N6', 'N6.1', 'N6.2', 'N6.3', 'N6.4', 'N6.5', 'N6.6', 'N6.7', 'N6.8', 'N6.9']) ->whereIn('co_iva.codice_natura_fe', ['N2', 'N2.1', 'N2.2', 'N3', 'N3.1', 'N3.2', 'N3.3', 'N3.4', 'N3.5', 'N3.6', 'N6', 'N6.1', 'N6.2', 'N6.3', 'N6.4', 'N6.5', 'N6.6', 'N6.7', 'N6.8', 'N6.9'])
->sum('`sconto`'); ->sum('sconto');
$totale_imponibile = setting('Utilizza prezzi di vendita comprensivi di IVA') ? ($imponibile - $sconto) + (($imponibile - $sconto) * $iva->percentuale / 100) : ($imponibile - $sconto); $totale_imponibile = setting('Utilizza prezzi di vendita comprensivi di IVA') ? ($imponibile - $sconto) + (($imponibile - $sconto) * $iva->percentuale / 100) : ($imponibile - $sconto);
$totale_imponibile = $fattura->tipo->reversed == 1 ? -$totale_imponibile : $totale_imponibile; $totale_imponibile = $fattura->tipo->reversed == 1 ? -$totale_imponibile : $totale_imponibile;

View File

@@ -36,33 +36,34 @@ if (isset($id_record)) {
$is_fiscale = $fattura->isFiscale(); $is_fiscale = $fattura->isFiscale();
} }
$record = $dbo->fetchOne('SELECT co_documenti.*, $record = $dbo->fetchOne('SELECT `co_documenti`.*,
co_tipidocumento.reversed AS is_reversed, `co_tipidocumento`.`reversed` AS is_reversed,
co_documenti.idagente AS idagente_fattura, `co_documenti`.`idagente` AS idagente_fattura,
co_documenti.note, `co_documenti`.`note`,
co_documenti.note_aggiuntive, `co_documenti`.`note_aggiuntive`,
co_documenti.idpagamento, `co_documenti`.`idpagamento`,
co_documenti.id AS iddocumento, `co_documenti`.`id` AS iddocumento,
co_documenti.split_payment AS split_payment, `co_documenti`.`split_payment` AS split_payment,
co_statidocumento.descrizione AS `stato`, `co_statidocumento`.`descrizione` AS `stato`,
co_tipidocumento.descrizione AS `descrizione_tipo`, `co_tipidocumento`.`descrizione` AS `descrizione_tipo`,
co_tipidocumento.id AS `idtipodocumento`, `co_tipidocumento`.`id` AS `idtipodocumento`,
(SELECT is_fiscale FROM zz_segments WHERE zz_segments.id = co_documenti.id_segment) AS is_fiscale, (SELECT `is_fiscale` FROM `zz_segments` WHERE `zz_segments`.`id` = `co_documenti`.`id_segment`) AS is_fiscale,
(SELECT descrizione FROM co_ritenutaacconto WHERE id=idritenutaacconto) AS ritenutaacconto_desc, (SELECT `descrizione` FROM `co_ritenutaacconto` WHERE `id`=`idritenutaacconto`) AS ritenutaacconto_desc,
(SELECT descrizione FROM co_rivalse WHERE id=idrivalsainps) AS rivalsainps_desc, (SELECT `descrizione` FROM `co_rivalse` WHERE `id`=`idrivalsainps`) AS rivalsainps_desc,
(SELECT descrizione FROM dt_causalet WHERE id=idcausalet) AS causale_desc (SELECT `descrizione` FROM `dt_causalet` WHERE `id`=`idcausalet`) AS causale_desc
FROM co_documenti FROM `co_documenti`
LEFT JOIN co_statidocumento ON co_documenti.idstatodocumento=co_statidocumento.id LEFT JOIN `co_statidocumento` ON `co_documenti`.`idstatodocumento`=`co_statidocumento`.`id`
INNER JOIN an_anagrafiche ON co_documenti.idanagrafica=an_anagrafiche.idanagrafica INNER JOIN `an_anagrafiche` ON `co_documenti`.`idanagrafica`=`an_anagrafiche`.`idanagrafica`
INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id INNER JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento`=`co_tipidocumento`.`id`
LEFT JOIN co_pagamenti ON co_documenti.idpagamento=co_pagamenti.id LEFT JOIN `co_pagamenti` ON `co_documenti`.`idpagamento`=`co_pagamenti`.`id`
WHERE co_tipidocumento.dir = '.prepare($dir).' AND co_documenti.id='.prepare($id_record)); LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti_lang`.`id_record` = `co_pagamenti`.`id` AND `co_pagamenti_lang`.`id_lang` = '.prepare(setting('Lingua')).')
WHERE `co_tipidocumento`.`dir` = '.prepare($dir).' AND `co_documenti`.`id`='.prepare($id_record));
// Note di credito collegate // Note di credito collegate
$note_accredito = $dbo->fetchArray("SELECT co_documenti.id, IF(numero_esterno != '', numero_esterno, numero) AS numero, data FROM co_documenti JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id WHERE reversed = 1 AND ref_documento=".prepare($id_record)); $note_accredito = $dbo->fetchArray("SELECT `co_documenti`.`id`, IF(`numero_esterno` != '', `numero_esterno`, `numero`) AS numero, data FROM `co_documenti` JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento`=`co_tipidocumento`.`id` WHERE `reversed` = 1 AND `ref_documento`=".prepare($id_record));
// Blocco gestito dallo stato della Fattura Elettronica // Blocco gestito dallo stato della Fattura Elettronica
$stato_fe = $database->fetchOne('SELECT * FROM fe_stati_documento WHERE codice = '.prepare($fattura->codice_stato_fe)); $stato_fe = $database->fetchOne('SELECT * FROM `fe_stati_documento` WHERE `codice` = '.prepare($fattura->codice_stato_fe));
$abilita_genera = empty($fattura->codice_stato_fe) || intval($stato_fe['is_generabile']); $abilita_genera = empty($fattura->codice_stato_fe) || intval($stato_fe['is_generabile']);
// Controllo autofattura e gestione avvisi // Controllo autofattura e gestione avvisi

View File

@@ -260,7 +260,7 @@ foreach ($righe as $riga) {
echo ' echo '
<td class="text-right"> <td class="text-right">
'.moneyFormat($riga->iva_unitaria_scontata).' '.moneyFormat($riga->iva_unitaria_scontata).'
<br><small class="'.(($riga->aliquota->deleted_at) ? 'text-red' : '').' text-muted">'.$riga->aliquota->descrizione.' ('.$riga->aliquota->esigibilita.') '.(($riga->aliquota->esente) ? ' ('.$riga->aliquota->codice_natura_fe.')' : null).'</small> <br><small class="'.(($riga->aliquota->deleted_at) ? 'text-red' : '').' text-muted">'.$riga->aliquota->name.' ('.$riga->aliquota->esigibilita.') '.(($riga->aliquota->esente) ? ' ('.$riga->aliquota->codice_natura_fe.')' : null).'</small>
</td>'; </td>';
// Importo // Importo

View File

@@ -145,9 +145,7 @@ class Fattura extends Document
// $model->id_banca_controparte = ; // $model->id_banca_controparte = ;
// Tipo di pagamento dall'anagrafica controparte // Tipo di pagamento dall'anagrafica controparte
$id_pagamento = $database->fetchOne('SELECT id FROM co_pagamenti WHERE id = :id_pagamento', [ $id_pagamento = Pagamento::find($anagrafica['idpagamento_'.$conto])->id_record;
':id_pagamento' => $anagrafica->{'idpagamento_'.$conto},
])['id'];
// Per Fatture di Vendita senza pagamento predefinito per il Cliente, si utilizza il pagamento predefinito dalle Impostazioni // Per Fatture di Vendita senza pagamento predefinito per il Cliente, si utilizza il pagamento predefinito dalle Impostazioni
if ($direzione == 'entrata' && empty($id_pagamento)) { if ($direzione == 'entrata' && empty($id_pagamento)) {
@@ -163,12 +161,12 @@ class Fattura extends Document
$id_banca_azienda = $anagrafica->{'idbanca_'.$conto}; $id_banca_azienda = $anagrafica->{'idbanca_'.$conto};
if (empty($id_banca_azienda)) { if (empty($id_banca_azienda)) {
$azienda = Anagrafica::find(setting('Azienda predefinita')); $azienda = Anagrafica::find(setting('Azienda predefinita'));
$id_banca_azienda = $database->fetchOne('SELECT id FROM co_banche WHERE deleted_at IS NULL AND predefined=1 AND id_pianodeiconti3 = (SELECT idconto_'.$conto.' FROM co_pagamenti WHERE id = :id_pagamento) AND id_anagrafica = :id_anagrafica', [ $id_banca_azienda = $database->fetchOne('SELECT `id` FROM `co_banche` WHERE `deleted_at` IS NULL AND `predefined`=1 AND `id_pianodeiconti3` = (SELECT idconto_'.$conto.' FROM `co_pagamenti` WHERE `id` = :id_pagamento) AND `id_anagrafica` = :id_anagrafica', [
':id_pagamento' => $id_pagamento, ':id_pagamento' => $id_pagamento,
':id_anagrafica' => $azienda->id, ':id_anagrafica' => $azienda->id,
])['id']; ])['id'];
if (empty($id_banca_azienda)) { if (empty($id_banca_azienda)) {
$id_banca_azienda = $database->fetchOne('SELECT id FROM co_banche WHERE deleted_at IS NULL AND id_pianodeiconti3 = (SELECT idconto_'.$conto.' FROM co_pagamenti WHERE id = :id_pagamento) AND id_anagrafica = :id_anagrafica', [ $id_banca_azienda = $database->fetchOne('SELECT `id` FROM `co_banche` WHERE `deleted_at` IS NULL AND `id_pianodeiconti3` = (SELECT idconto_'.$conto.' FROM `co_pagamenti` WHERE `id` = :id_pagamento) AND `id_anagrafica` = :id_anagrafica', [
':id_pagamento' => $id_pagamento, ':id_pagamento' => $id_pagamento,
':id_anagrafica' => $azienda->id, ':id_anagrafica' => $azienda->id,
])['id']; ])['id'];

View File

@@ -20,6 +20,7 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
use Carbon\CarbonPeriod; use Carbon\CarbonPeriod;
use Models\OperationLog;
use Models\Plugin; use Models\Plugin;
use Modules\Anagrafiche\Anagrafica; use Modules\Anagrafiche\Anagrafica;
use Modules\Articoli\Articolo as ArticoloOriginale; use Modules\Articoli\Articolo as ArticoloOriginale;
@@ -38,7 +39,6 @@ use Modules\TipiIntervento\Tipo as TipoSessione;
use Plugins\ComponentiImpianti\Componente; use Plugins\ComponentiImpianti\Componente;
use Plugins\ListinoClienti\DettaglioPrezzo; use Plugins\ListinoClienti\DettaglioPrezzo;
use Plugins\PianificazioneInterventi\Promemoria; use Plugins\PianificazioneInterventi\Promemoria;
use Models\OperationLog;
$modulo_impianti = Modules::get('Impianti'); $modulo_impianti = Modules::get('Impianti');
$plugin_impianti = Plugin::pool('Impianti'); $plugin_impianti = Plugin::pool('Impianti');

View File

@@ -25,12 +25,21 @@ if (isset($id_record)) {
$intervento = Intervento::find($id_record); $intervento = Intervento::find($id_record);
$record = $dbo->fetchOne('SELECT *, $record = $dbo->fetchOne('SELECT *,
(SELECT tipo FROM an_anagrafiche WHERE idanagrafica = in_interventi.idanagrafica) AS tipo_anagrafica, `in_interventi`.`descrizione` AS descrizione,
(SELECT is_completato FROM in_statiintervento WHERE idstatointervento=in_interventi.idstatointervento) AS flag_completato, `in_interventi`.`codice` AS codice,
IF((in_interventi.idsede_destinazione = 0), (SELECT idzona FROM an_anagrafiche WHERE idanagrafica = in_interventi.idanagrafica), (SELECT idzona FROM an_sedi WHERE id = in_interventi.idsede_destinazione)) AS idzona, `an_anagrafiche`.`tipo` AS tipo_anagrafica,
(SELECT colore FROM in_statiintervento WHERE idstatointervento=in_interventi.idstatointervento) AS colore, `in_statiintervento`.`is_completato` AS flag_completato,
in_interventi.id_preventivo as idpreventivo, IF((`in_interventi`.`idsede_destinazione` = 0), `an_anagrafiche`.`idzona`, `an_sedi`.`idzona`) AS idzona,
in_interventi.id_contratto as idcontratto, `in_statiintervento`.`colore` AS colore,
in_interventi.id_ordine as idordine `in_interventi`.`idanagrafica` as idanagrafica,
FROM in_interventi WHERE id='.prepare($id_record)); `in_interventi`.`id_preventivo` as idpreventivo,
`in_interventi`.`id_contratto` as idcontratto,
`in_interventi`.`id_ordine` as idordine
FROM
in_interventi
INNER JOIN `an_anagrafiche` ON `in_interventi`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
LEFT JOIN `an_sedi` ON `in_interventi`.`idsede_destinazione` = `an_sedi`.`id`
INNER JOIN `in_statiintervento` ON `in_interventi`.`idstatointervento` = `in_statiintervento`.`idstatointervento`
WHERE
`in_interventi`.`id`='.prepare($id_record));
} }

View File

@@ -171,7 +171,7 @@ foreach ($righe as $riga) {
// Iva // Iva
echo ' echo '
<br><small class="'.(($riga->aliquota->deleted_at) ? 'text-red' : '').' text-muted">'.$riga->aliquota->descrizione.(($riga->aliquota->esente) ? ' ('.$riga->aliquota->codice_natura_fe.')' : null).'</small> <br><small class="'.(($riga->aliquota->deleted_at) ? 'text-red' : '').' text-muted">'.$riga->aliquota->name.(($riga->aliquota->esente) ? ' ('.$riga->aliquota->codice_natura_fe.')' : null).'</small>
</td>'; </td>';
} }

View File

@@ -78,7 +78,7 @@ switch (post('op')) {
} }
// Leggo la descrizione del pagamento // Leggo la descrizione del pagamento
$query = 'SELECT descrizione FROM co_pagamenti WHERE id='.prepare($idpagamento); $query = 'SELECT `name` AS descrizione FROM `co_pagamenti` LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti_lang`.`id_record` = `co_pagamenti`.`id` AND `co_pagamenti_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `co_pagamenti`.`id`='.prepare($idpagamento);
$rs = $dbo->fetchArray($query); $rs = $dbo->fetchArray($query);
$pagamento = $rs[0]['descrizione']; $pagamento = $rs[0]['descrizione'];
@@ -113,7 +113,7 @@ switch (post('op')) {
$ordine->condizioni_fornitura = post('condizioni_fornitura'); $ordine->condizioni_fornitura = post('condizioni_fornitura');
// Verifica la presenza di ordini con lo stesso numero // Verifica la presenza di ordini con lo stesso numero
$ordini = $dbo->fetchArray('SELECT * FROM or_ordini WHERE numero_cliente='.prepare(post('numero_cliente'))."AND numero_cliente IS NOT NULL AND numero_cliente != '' AND id!=".prepare($id_record).' AND idanagrafica='.prepare(post('idanagrafica'))." AND DATE_FORMAT(or_ordini.data, '%Y')=".prepare(Carbon::parse(post('data'))->copy()->format('Y'))); $ordini = $dbo->fetchArray('SELECT * FROM `or_ordini` WHERE `numero_cliente`='.prepare(post('numero_cliente'))."AND `numero_cliente` IS NOT NULL AND `numero_cliente` != '' AND `id`!=".prepare($id_record).' AND `idanagrafica`='.prepare(post('idanagrafica'))." AND DATE_FORMAT(`or_ordini`.`data`, '%Y')=".prepare(Carbon::parse(post('data'))->copy()->format('Y')));
if (!empty($ordini)) { if (!empty($ordini)) {
$documento = ''; $documento = '';
@@ -140,7 +140,7 @@ switch (post('op')) {
$ordine->save(); $ordine->save();
if ($dbo->query($query)) { if ($dbo->query($query)) {
$query = 'SELECT descrizione FROM or_statiordine WHERE id='.prepare($idstatoordine); $query = 'SELECT `descrizione` FROM `or_statiordine` WHERE `id`='.prepare($idstatoordine);
$rs = $dbo->fetchArray($query); $rs = $dbo->fetchArray($query);
// Ricalcolo inps, ritenuta e bollo (se l'ordine non è stato evaso) // Ricalcolo inps, ritenuta e bollo (se l'ordine non è stato evaso)

View File

@@ -275,7 +275,7 @@ foreach ($righe as $riga) {
// Iva // Iva
echo ' echo '
<br><small class="'.(($riga->aliquota->deleted_at) ? 'text-red' : '').' text-muted">'.$riga->aliquota->descrizione.(($riga->aliquota->esente) ? ' ('.$riga->aliquota->codice_natura_fe.')' : null).'</small> <br><small class="'.(($riga->aliquota->deleted_at) ? 'text-red' : '').' text-muted">'.$riga->aliquota->name.(($riga->aliquota->esente) ? ' ('.$riga->aliquota->codice_natura_fe.')' : null).'</small>
</td>'; </td>';
} }

View File

@@ -24,6 +24,7 @@ use Common\Document;
use Modules\Anagrafiche\Anagrafica; use Modules\Anagrafiche\Anagrafica;
use Modules\DDT\DDT; use Modules\DDT\DDT;
use Modules\Interventi\Intervento; use Modules\Interventi\Intervento;
use Modules\Pagamenti\Pagamento;
use Traits\RecordTrait; use Traits\RecordTrait;
use Traits\ReferenceTrait; use Traits\ReferenceTrait;
use Util\Generator; use Util\Generator;
@@ -69,9 +70,7 @@ class Ordine extends Document
} }
// Tipo di pagamento e banca predefinite dall'anagrafica // Tipo di pagamento e banca predefinite dall'anagrafica
$id_pagamento = $database->fetchOne('SELECT id FROM co_pagamenti WHERE id = :id_pagamento', [ $id_pagamento = Pagamento::find($anagrafica['idpagamento_'.$conto])->id_record;
':id_pagamento' => $anagrafica['idpagamento_'.$conto],
])['id'];
// Se il ordine è un ordine cliente e non è stato associato un pagamento predefinito al cliente leggo il pagamento dalle impostazioni // Se il ordine è un ordine cliente e non è stato associato un pagamento predefinito al cliente leggo il pagamento dalle impostazioni
if ($direzione == 'entrata' && empty($id_pagamento)) { if ($direzione == 'entrata' && empty($id_pagamento)) {

View File

@@ -47,7 +47,6 @@ switch (filter('op')) {
'num_giorni' => post('distanza')[$key], 'num_giorni' => post('distanza')[$key],
'giorno' => $giorno, 'giorno' => $giorno,
'prc' => post('percentuale')[$key], 'prc' => post('percentuale')[$key],
'descrizione' => $descrizione,
'idconto_vendite' => post('idconto_vendite') ?: null, 'idconto_vendite' => post('idconto_vendite') ?: null,
'idconto_acquisti' => post('idconto_acquisti') ?: null, 'idconto_acquisti' => post('idconto_acquisti') ?: null,
'codice_modalita_pagamento_fe' => post('codice_modalita_pagamento_fe'), 'codice_modalita_pagamento_fe' => post('codice_modalita_pagamento_fe'),
@@ -55,8 +54,10 @@ switch (filter('op')) {
if (!empty($id)) { if (!empty($id)) {
$dbo->update('co_pagamenti', $array, ['id' => $id]); $dbo->update('co_pagamenti', $array, ['id' => $id]);
$dbo->update('co_pagamenti_lang', ['name' => $descrizione], ['id_record' => $id, 'id_lang' => setting('Lingua')]);
} else { } else {
$dbo->INSERT('co_pagamenti', $array); $dbo->INSERT('co_pagamenti', $array);
$dbo->INSERT('co_pagamenti_lang', ['name' => $descrizione, 'id_record' => $id, 'id_lang' => setting('Lingua')]);
} }
} }
flash()->info(tr('Salvataggio completato!')); flash()->info(tr('Salvataggio completato!'));
@@ -71,8 +72,9 @@ switch (filter('op')) {
$codice_modalita_pagamento_fe = filter('codice_modalita_pagamento_fe'); $codice_modalita_pagamento_fe = filter('codice_modalita_pagamento_fe');
if (isset($descrizione)) { if (isset($descrizione)) {
$dbo->query('INSERT INTO `co_pagamenti` (`descrizione`, `codice_modalita_pagamento_fe`, `prc` ) VALUES ('.prepare($descrizione).', '.prepare($codice_modalita_pagamento_fe).', 100 )'); $dbo->query('INSERT INTO `co_pagamenti` (`codice_modalita_pagamento_fe`, `prc` ) VALUES ('.prepare($codice_modalita_pagamento_fe).', 100 )');
$id_record = $dbo->lastInsertedID(); $id_record = $dbo->lastInsertedID();
$dbo->query('INSERT INTO `co_pagamenti_lang` (`name`, `id_record`, `id_lang`) VALUES ('.prepare($descrizione).'), '.prepare($id_record).', '.prepare(setting('Lingua')).')');
flash()->info(tr('Aggiunta nuova tipologia di _TYPE_', [ flash()->info(tr('Aggiunta nuova tipologia di _TYPE_', [
'_TYPE_' => 'pagamento', '_TYPE_' => 'pagamento',
@@ -101,7 +103,7 @@ switch (filter('op')) {
flash()->info(tr('Elemento eliminato con successo!')); flash()->info(tr('Elemento eliminato con successo!'));
if ($id_record == $id) { if ($id_record == $id) {
$res = $dbo->fetchArray('SELECT * FROM `co_pagamenti` WHERE `id`!='.prepare($id).' AND `descrizione`='.prepare($record['descrizione'])); $res = $dbo->fetchArray('SELECT * FROM `co_pagamenti` LEFT JOIN `co_pagamenti_lang` WHERE `co_pagamenti`.`id`!='.prepare($id).' AND `name`='.prepare($record['descrizione']));
if (count($res) != 0) { if (count($res) != 0) {
redirect(base_path().'/editor.php?id_module='.$id_module.'&id_record='.$res[0]['id']); redirect(base_path().'/editor.php?id_module='.$id_module.'&id_record='.$res[0]['id']);
} else { } else {

View File

@@ -28,30 +28,34 @@ switch ($resource) {
// Filtri per banche dell'Azienda // Filtri per banche dell'Azienda
$id_azienda = setting('Azienda predefinita'); $id_azienda = setting('Azienda predefinita');
$query = "SELECT co_pagamenti.id, $query = "SELECT
CONCAT_WS(' - ', codice_modalita_pagamento_fe, descrizione) AS descrizione, `co_pagamenti`.`id`,
codice_modalita_pagamento_fe, CONCAT_WS(' - ', `codice_modalita_pagamento_fe`, `name`) AS descrizione,
banca_vendite.id AS id_banca_vendite, `codice_modalita_pagamento_fe`,
CONCAT(banca_vendite.nome, ' - ', banca_vendite.iban) AS descrizione_banca_vendite, `banca_vendite`.`id` AS id_banca_vendite,
banca_acquisti.id AS id_banca_acquisti, CONCAT(`banca_vendite`.`nome`, ' - ', `banca_vendite`.`iban`) AS descrizione_banca_vendite,
CONCAT(banca_acquisti.nome, ' - ', banca_acquisti.iban) AS descrizione_banca_acquisti, `banca_acquisti`.`id` AS id_banca_acquisti,
banca_cliente.id AS id_banca_cliente CONCAT(`banca_acquisti`.`nome`, ' - ', `banca_acquisti`.`iban`) AS descrizione_banca_acquisti,
FROM co_pagamenti `banca_cliente`.`id` AS id_banca_cliente
LEFT JOIN co_banche banca_cliente ON banca_cliente.id_anagrafica = ".prepare($superselect['idanagrafica']).' AND banca_cliente.deleted_at IS NULL FROM `co_pagamenti`
LEFT JOIN co_banche banca_vendite ON co_pagamenti.idconto_vendite = banca_vendite.id_pianodeiconti3 AND banca_vendite.id_anagrafica = '.prepare($id_azienda).' AND banca_vendite.deleted_at IS NULL LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti_lang`.`id_record` = `co_pagamenti`.`id` AND `co_pagamenti_lang`.`id_lang` = ".prepare(setting('Lingua')).')
LEFT JOIN co_banche banca_acquisti ON co_pagamenti.idconto_acquisti = banca_acquisti.id_pianodeiconti3 AND banca_acquisti.id_anagrafica = '.prepare($id_azienda).' AND banca_acquisti.deleted_at IS NULL LEFT JOIN `co_banche` banca_cliente ON `banca_cliente`.`id_anagrafica` = '.prepare($superselect['idanagrafica']).' AND `banca_cliente`.`deleted_at` IS NULL
|where| GROUP BY co_pagamenti.descrizione ORDER BY co_pagamenti.descrizione ASC'; LEFT JOIN `co_banche` banca_vendite ON `co_pagamenti`.`idconto_vendite` = `banca_vendite`.`id_pianodeiconti3` AND `banca_vendite`.`id_anagrafica` = '.prepare($id_azienda).' AND `banca_vendite`.`deleted_at` IS NULL
LEFT JOIN `co_banche` banca_acquisti ON `co_pagamenti`.`idconto_acquisti` = `banca_acquisti`.`id_pianodeiconti3` AND `banca_acquisti`.`id_anagrafica` = '.prepare($id_azienda).' AND `banca_acquisti`.`deleted_at` IS NULL
|where|
GROUP BY
`co_pagamenti_lang`.`name` ORDER BY `co_pagamenti_lang`.`name` ASC';
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = 'co_pagamenti.id = '.prepare($element); $filter[] = '`co_pagamenti`.`id` = '.prepare($element);
} }
if (!empty($superselect['codice_modalita_pagamento_fe'])) { if (!empty($superselect['codice_modalita_pagamento_fe'])) {
$where[] = 'codice_modalita_pagamento_fe = '.prepare($superselect['codice_modalita_pagamento_fe']); $where[] = '`codice_modalita_pagamento_fe` = '.prepare($superselect['codice_modalita_pagamento_fe']);
} }
if (!empty($search)) { if (!empty($search)) {
$search_fields[] = 'descrizione LIKE '.prepare('%'.$search.'%'); $search_fields[] = '`descrizione` LIKE '.prepare('%'.$search.'%');
} }
$data = AJAX::selectResults($query, $where, $data = AJAX::selectResults($query, $where,

View File

@@ -32,7 +32,7 @@ include_once __DIR__.'/../../core.php';
<div class="panel-body"> <div class="panel-body">
<div class="row"> <div class="row">
<div class="col-md-8"> <div class="col-md-8">
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "value": "$descrizione$", "required": 1 ]} {[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "value": "$name$", "required": 1 ]}
</div> </div>
<div class="col-md-4"> <div class="col-md-4">
@@ -87,7 +87,7 @@ $tipi_scadenza_pagamento = [
], ],
]; ];
$results = $dbo->fetchArray('SELECT * FROM `co_pagamenti` WHERE descrizione='.prepare($record['descrizione']).' ORDER BY `num_giorni` ASC'); $results = $dbo->fetchArray('SELECT * FROM `co_pagamenti` LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti`.`id` = `co_pagamenti_lang`.`id_record` AND `co_pagamenti_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `name`='.prepare($record['descrizione']).' ORDER BY `num_giorni` ASC');
$numero_rata = 1; $numero_rata = 1;
foreach ($results as $result) { foreach ($results as $result) {
$tipo_scadenza_pagamento = 3; $tipo_scadenza_pagamento = 3;

View File

@@ -20,5 +20,5 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
if (isset($id_record)) { if (isset($id_record)) {
$record = $dbo->fetchOne('SELECT * FROM `co_pagamenti` WHERE id='.prepare($id_record)); $record = $dbo->fetchOne('SELECT * FROM `co_pagamenti` LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti_lang`.`id_record` = `co_pagamenti`.`id` AND `co_pagamenti_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `co_pagamenti`.`id`='.prepare($id_record));
} }

View File

@@ -36,7 +36,7 @@ class Pagamento extends Model
public function rate() public function rate()
{ {
return $this->hasMany(Pagamento::class, 'descrizione', 'descrizione'); return $this->hasMany(Pagamento::class, 'id');
} }
public function calcola($importo, $data, $id_anagrafica) public function calcola($importo, $data, $id_anagrafica)
@@ -139,4 +139,34 @@ class Pagamento extends Model
{ {
return $this->codice_modalita_pagamento_fe == 'MP12'; return $this->codice_modalita_pagamento_fe == 'MP12';
} }
/**
* Ritorna l'attributo name del pagamento.
*
* @return string
*/
public function getNameAttribute()
{
return database()->table($this->table.'_lang')
->select('name')
->where('id_record', '=', $this->id)
->where('id_lang', '=', setting('Lingua'))
->first()->name;
}
/**
* Ritorna l'id del pagamento a partire dal nome.
*
* @param string $name il nome da ricercare
*
* @return \Illuminate\Support\Collection
*/
public function getByName($name)
{
return database()->table($this->table.'_lang')
->select('id_record')
->where('name', '=', $name)
->where('id_lang', '=', setting('Lingua'))
->first();
}
} }

View File

@@ -111,7 +111,7 @@ echo '
} }
?> ?>
{[ "type": "select", "label": "<?php echo tr('Pagamento'); ?>", "name": "idpagamento", "values": "query=SELECT id, descrizione FROM co_pagamenti GROUP BY descrizione ORDER BY descrizione", "value": "$idpagamento$" ]} {[ "type": "select", "label": "<?php echo tr('Pagamento'); ?>", "name": "idpagamento", "values": "query=SELECT `co_pagamenti`.`id`, `name` AS descrizione FROM `co_pagamenti` LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti`.`id` = `co_pagamenti_lang`.`id_record` AND `co_pagamenti_lang`.`id_lang` = ".prepare(setting('Lingua')).") GROUP BY `descrizione` ORDER BY `descrizione`", "value": "$idpagamento$" ]}
</div> </div>
<div class="col-md-3"> <div class="col-md-3">

View File

@@ -231,7 +231,7 @@ foreach ($righe as $key => $riga) {
// Iva // Iva
echo ' echo '
<br><small class="'.(($riga->aliquota->deleted_at) ? 'text-red' : '').' text-muted">'.$riga->aliquota->descrizione.(($riga->aliquota->esente) ? ' ('.$riga->aliquota->codice_natura_fe.')' : null).'</small> <br><small class="'.(($riga->aliquota->deleted_at) ? 'text-red' : '').' text-muted">'.$riga->aliquota->name.(($riga->aliquota->esente) ? ' ('.$riga->aliquota->codice_natura_fe.')' : null).'</small>
</td>'; </td>';
} }
} }

View File

@@ -17,20 +17,24 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
$r = $dbo->fetchOne('SELECT co_scadenziario.*, co_documenti.*, $r = $dbo->fetchOne('SELECT `co_scadenziario`.*, `co_documenti`.*,
an_anagrafiche.email, `an_anagrafiche`.`email`,
an_anagrafiche.pec, `an_anagrafiche`.`pec`,
an_anagrafiche.ragione_sociale, `an_anagrafiche`.`ragione_sociale`,
an_referenti.nome, `an_referenti`.`nome`,
co_scadenziario.da_pagare - co_scadenziario.pagato AS totale, `co_scadenziario`.`da_pagare` - `co_scadenziario`.`pagato` AS totale,
(SELECT pec FROM em_accounts WHERE em_accounts.id='.prepare($template['id_account']).') AS is_pec, `pec`,
(SELECT descrizione FROM co_pagamenti WHERE co_pagamenti.id = co_documenti.idpagamento) AS pagamento, `name` AS pagamento,
(SELECT GROUP_CONCAT(CONCAT("<li>",DATE_FORMAT(scadenza,"%d/%m/%Y")," - ",FORMAT(da_pagare,2),"€ - ",descrizione,"</li>") SEPARATOR "<br>") FROM co_scadenziario LEFT JOIN (SELECT id, ref_documento FROM co_documenti)as nota ON co_scadenziario.iddocumento = nota.ref_documento WHERE scadenza < NOW() AND iddocumento!=0 AND nota.id IS NULL AND da_pagare>pagato AND idanagrafica=co_documenti.idanagrafica ORDER BY scadenza) AS scadenze_fatture_scadute (SELECT GROUP_CONCAT(CONCAT("<li>",DATE_FORMAT(`scadenza`,"%d/%m/%Y")," - ",FORMAT(`da_pagare`,2),"€ - ",`descrizione`,"</li>") SEPARATOR "<br>") FROM `co_scadenziario` LEFT JOIN (SELECT `id`, `ref_documento` FROM `co_documenti`)as nota ON `co_scadenziario`.`iddocumento` = `nota`.`ref_documento` WHERE `scadenza` < NOW() AND `iddocumento`!=0 AND `nota`.`id` IS NULL AND `da_pagare`>`pagato` AND `idanagrafica`=`co_documenti`.`idanagrafica` ORDER BY `scadenza`) AS scadenze_fatture_scadute
FROM co_scadenziario FROM `co_scadenziario`
INNER JOIN co_documenti ON co_documenti.id = co_scadenziario.iddocumento INNER JOIN `co_documenti` ON `co_documenti`.`id` = `co_scadenziario`.`iddocumento`
INNER JOIN an_anagrafiche ON co_documenti.idanagrafica = an_anagrafiche.idanagrafica LEFT JOIN `co_pagamenti` ON `co_pagamenti`.`id` = `co_documenti`.`idpagamento`
LEFT JOIN an_referenti ON an_referenti.idanagrafica = an_anagrafiche.idanagrafica LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti_lang`.`id_record` = `co_pagamenti`.`id` AND `co_pagamenti_lang`.`id_lang` = '.prepare(setting('Lingua')).')
WHERE co_scadenziario.da_pagare > co_scadenziario.pagato AND co_scadenziario.iddocumento = (SELECT iddocumento FROM co_scadenziario s WHERE id='.prepare($id_record).')'); LEFT JOIN `em_accounts` ON `em_accounts`.`id` = '.prepare($template['id_account']).'
INNER JOIN `an_anagrafiche` ON `co_documenti`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
LEFT JOIN `an_referenti` ON `an_referenti`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
WHERE
`co_scadenziario`.`da_pagare` > `co_scadenziario`.`pagato` AND `co_scadenziario`.`iddocumento` = (SELECT `iddocumento` FROM `co_scadenziario` s WHERE `id`='.prepare($id_record).')');
$logo_azienda = str_replace(base_dir(), base_path(), App::filepath('templates/base|custom|/logo_azienda.jpg')); $logo_azienda = str_replace(base_dir(), base_path(), App::filepath('templates/base|custom|/logo_azienda.jpg'));

View File

@@ -28,6 +28,7 @@ use Modules\Banche\Banca;
use Modules\Fatture\Fattura; use Modules\Fatture\Fattura;
use Modules\Fatture\Gestori\Bollo; use Modules\Fatture\Gestori\Bollo;
use Modules\Iva\Aliquota; use Modules\Iva\Aliquota;
use Modules\Pagamenti\Pagamento;
use Uploads; use Uploads;
/** /**
@@ -1646,7 +1647,7 @@ class FatturaElettronica
$database = database(); $database = database();
$co_pagamenti = $database->fetchOne('SELECT * FROM `co_pagamenti` WHERE `id` = '.prepare($documento['idpagamento'])); $co_pagamenti = Pagamento::find($documento['idpagamento']);
/** /**
* TP01 - A Rate * TP01 - A Rate
@@ -1659,7 +1660,7 @@ class FatturaElettronica
$co_scadenziario = $database->fetchArray('SELECT * FROM `co_scadenziario` WHERE `iddocumento` = '.prepare($documento['id'])); $co_scadenziario = $database->fetchArray('SELECT * FROM `co_scadenziario` WHERE `iddocumento` = '.prepare($documento['id']));
foreach ($co_scadenziario as $scadenza) { foreach ($co_scadenziario as $scadenza) {
$co_pagamenti = $database->fetchOne('SELECT * FROM `co_pagamenti` WHERE `id` = '.prepare($scadenza['id_pagamento'])); $co_pagamenti = Pagamento::find($scadenza['id_pagamento']);
$banca = Banca::find($scadenza['id_banca_azienda']); $banca = Banca::find($scadenza['id_banca_azienda']);
$pagamento = [ $pagamento = [

View File

@@ -353,7 +353,7 @@ class FatturaElettronica
try { try {
$banca_fornitore = Banca::build($anagrafica, $nome, $info_pagamento['IBAN'], $info_pagamento['BIC'] ?: ''); $banca_fornitore = Banca::build($anagrafica, $nome, $info_pagamento['IBAN'], $info_pagamento['BIC'] ?: '');
} catch (\UnexpectedValueException $e) { } catch (\UnexpectedValueException $e) {
flash()->error(tr("Errore durante la creazione della banca: verificare la correttezza dei dati").'.'); flash()->error(tr('Errore durante la creazione della banca: verificare la correttezza dei dati').'.');
} }
} }
} }

View File

@@ -131,7 +131,7 @@ foreach ($righe as $riga) {
<td class="text-right">'.moneyFormat($riga->prezzo_unitario).'</td> <td class="text-right">'.moneyFormat($riga->prezzo_unitario).'</td>
<td class="text-right"> <td class="text-right">
'.moneyFormat($riga->iva).'<br> '.moneyFormat($riga->iva).'<br>
<small class="help-block">'.$riga->aliquota->descrizione.'</small> <small class="help-block">'.$riga->aliquota->name.'</small>
</td> </td>
<td class="text-right">'.moneyFormat($riga->totale_imponibile).'</td> <td class="text-right">'.moneyFormat($riga->totale_imponibile).'</td>
</tr>'; </tr>';

View File

@@ -120,7 +120,7 @@ if (!$righe->isEmpty()) {
echo ' echo '
<td class="text-right"> <td class="text-right">
'.moneyFormat($riga->iva_unitaria_scontata).' '.moneyFormat($riga->iva_unitaria_scontata).'
<br><small class="'.(($riga->aliquota->deleted_at) ? 'text-red' : '').' text-muted">'.$riga->aliquota->descrizione.(($riga->aliquota->esente) ? ' ('.$riga->aliquota->codice_natura_fe.')' : null).'</small> <br><small class="'.(($riga->aliquota->deleted_at) ? 'text-red' : '').' text-muted">'.$riga->aliquota->name.(($riga->aliquota->esente) ? ' ('.$riga->aliquota->codice_natura_fe.')' : null).'</small>
</td>'; </td>';
// Prezzo di vendita // Prezzo di vendita

View File

@@ -149,7 +149,7 @@ foreach ($raggruppamento as $id_anagrafica => $scadenze_anagrafica) {
if ($is_sepa) { if ($is_sepa) {
// Prima, successiva, singola // Prima, successiva, singola
$scadenze_antecedenti = $dbo->fetchArray('SELECT * FROM co_scadenziario INNER JOIN co_documenti ON co_scadenziario.iddocumento=co_documenti.id INNER JOIN co_pagamenti ON co_documenti.idpagamento=co_pagamenti.id WHERE co_documenti.idanagrafica='.prepare($id_anagrafica)." AND codice_modalita_pagamento_fe IN('MP19','MP20','MP21') AND data_emissione<".prepare($scadenza->data_emissione)); $scadenze_antecedenti = $dbo->fetchArray('SELECT * FROM `co_scadenziario` INNER JOIN `co_documenti` ON `co_scadenziario`.`iddocumento`=`co_documenti`.`id` INNER JOIN `co_pagamenti` ON `co_documenti`.`idpagamento`=`co_pagamenti`.`id` LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti`.`id` = `co_pagamenti_lang`.`id_record` AND `co_pagamenti_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `co_documenti`.`idanagrafica`='.prepare($id_anagrafica)." AND `codice_modalita_pagamento_fe` IN('MP19','MP20','MP21') AND `data_emissione`<".prepare($scadenza->data_emissione));
$check_successiva = ''; $check_successiva = '';
$check_prima = ''; $check_prima = '';

View File

@@ -18,6 +18,7 @@
*/ */
use Carbon\CarbonInterval; use Carbon\CarbonInterval;
use Modules\Pagamenti\Pagamento;
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
@@ -360,7 +361,7 @@ echo '
</table>'; </table>';
// CONDIZIONI GENERALI DI FORNITURA // CONDIZIONI GENERALI DI FORNITURA
$pagamento = $dbo->fetchOne('SELECT * FROM co_pagamenti WHERE id = '.$documento['idpagamento']); $pagamento = Pagamento::find($documento['idpagamento']);
echo ' echo '
<table class="table table-bordered"> <table class="table table-bordered">
@@ -376,7 +377,7 @@ echo '
</th> </th>
<td> <td>
'.$pagamento['descrizione'].' '.$pagamento->name.'
</td> </td>
</tr> </tr>

View File

@@ -21,6 +21,7 @@ include_once __DIR__.'/../../core.php';
use Modules\Anagrafiche\Nazione; use Modules\Anagrafiche\Nazione;
use Modules\DDT\DDT; use Modules\DDT\DDT;
use Modules\Pagamenti\Pagamento;
$documento = DDT::find($id_record); $documento = DDT::find($id_record);
$d_qta = (int) setting('Cifre decimali per quantità in stampa'); $d_qta = (int) setting('Cifre decimali per quantità in stampa');
@@ -31,7 +32,7 @@ $id_cliente = $documento['idanagrafica'];
$id_sede = $record['idsede_partenza']; $id_sede = $record['idsede_partenza'];
$id_azienda = setting('Azienda predefinita'); $id_azienda = setting('Azienda predefinita');
$pagamento = $dbo->fetchOne('SELECT * FROM co_pagamenti WHERE id = '.prepare($documento['idpagamento'])); $pagamento = Pagamento::find($documento['idpagamento']);
$causale = $dbo->fetchOne('SELECT * FROM dt_causalet WHERE id = '.prepare($documento['idcausalet'])); $causale = $dbo->fetchOne('SELECT * FROM dt_causalet WHERE id = '.prepare($documento['idcausalet']));
$porto = $dbo->fetchOne('SELECT * FROM dt_porto WHERE id = '.prepare($documento['idporto'])); $porto = $dbo->fetchOne('SELECT * FROM dt_porto WHERE id = '.prepare($documento['idporto']));
$aspetto_beni = $dbo->fetchOne('SELECT * FROM dt_aspettobeni WHERE id = '.prepare($documento['idaspettobeni'])); $aspetto_beni = $dbo->fetchOne('SELECT * FROM dt_aspettobeni WHERE id = '.prepare($documento['idaspettobeni']));
@@ -126,7 +127,7 @@ $custom = [
'tipo_doc' => $tipo_doc, 'tipo_doc' => $tipo_doc,
'numero' => $numero, 'numero' => $numero,
'data' => Translator::dateToLocale($documento['data']), 'data' => Translator::dateToLocale($documento['data']),
'pagamento' => $pagamento['descrizione'], 'pagamento' => $pagamento->name,
'c_destinazione' => $destinazione, 'c_destinazione' => $destinazione,
'c_partenza' => $partenza, 'c_partenza' => $partenza,
'aspettobeni' => $aspetto_beni['descrizione'], 'aspettobeni' => $aspetto_beni['descrizione'],

View File

@@ -70,10 +70,10 @@ echo "
</tr>'; </tr>';
// Elenco scadenze // Elenco scadenze
$rs2 = $dbo->fetchArray('SELECT * FROM co_scadenziario WHERE iddocumento='.prepare($id_record).' ORDER BY `scadenza` ASC'); $rs2 = $dbo->fetchArray('SELECT * FROM `co_scadenziario` WHERE `iddocumento`='.prepare($id_record).' ORDER BY `scadenza` ASC');
if (!empty($rs2)) { if (!empty($rs2)) {
for ($i = 0; $i < sizeof($rs2); ++$i) { for ($i = 0; $i < sizeof($rs2); ++$i) {
$pagamento = $dbo->fetchOne('SELECT fe_modalita_pagamento.descrizione FROM co_pagamenti INNER JOIN fe_modalita_pagamento ON fe_modalita_pagamento.codice = co_pagamenti.codice_modalita_pagamento_fe WHERE co_pagamenti.id='.$rs2[$i]['id_pagamento'])['descrizione']; $pagamento = $dbo->fetchOne('SELECT `fe_modalita_pagamento`.`descrizione` FROM `co_pagamenti` INNER JOIN `fe_modalita_pagamento` ON `fe_modalita_pagamento`.`codice` = `co_pagamenti`.`codice_modalita_pagamento_fe` WHERE `co_pagamenti`.`id`='.$rs2[$i]['id_pagamento'])['descrizione'];
echo ' echo '
<tr> <tr>
<td style=\'width:15%;\'> <td style=\'width:15%;\'>

View File

@@ -30,19 +30,34 @@ $d_totali = (int) setting('Cifre decimali per totali in stampa');
// Lettura info fattura // Lettura info fattura
$record = $dbo->fetchOne('SELECT *, $record = $dbo->fetchOne('SELECT *,
(SELECT descrizione FROM co_statidocumento WHERE id=idstatodocumento) AS stato_doc, `co_statidocumenti`.`descrizione` AS stato_doc,
(SELECT descrizione FROM co_tipidocumento WHERE id=idtipodocumento) AS tipo_doc, `co_tipidocumenti`.`descrizione` AS tipo_doc,
(SELECT descrizione FROM co_pagamenti WHERE id=idpagamento) AS id_pagamento, `co_tipidocumenti`.`dir` AS dir,
(SELECT dir FROM co_tipidocumento WHERE id=idtipodocumento) AS dir, `co_pagamenti_lang`.`name` AS pagamento,
(SELECT descrizione FROM dt_causalet WHERE id=idcausalet) AS causalet, `dt_causalet`.`descrizione` AS causalet,
(SELECT descrizione FROM dt_porto WHERE id=idporto) AS porto, `dt_porto`.`descrizione` AS porto,
(SELECT descrizione FROM dt_aspettobeni WHERE id=idaspettobeni) AS aspettobeni, `dt_aspettobeni`.`descrizione` AS aspettobeni,
(SELECT descrizione FROM dt_spedizione WHERE id=idspedizione) AS spedizione, `dt_spedizione`.`descrizione` AS spedizione,
(SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica=idvettore) AS vettore, `vettore`.`ragione_sociale` AS vettore,
(SELECT id FROM co_banche WHERE id = id_banca_azienda) AS id_banca, `co_banche`.`id` AS id_banca,
(SELECT is_fiscale FROM zz_segments WHERE id = id_segment) AS is_fiscale, `zz_segments`.`is_fiscale` AS is_fiscale,
(SELECT tipo FROM an_anagrafiche WHERE idanagrafica=co_documenti.idanagrafica) AS tipo_cliente `an_anagrafiche`.`tipo` AS tipo_cliente
FROM co_documenti WHERE id='.prepare($id_record)); FROM
`co_documenti`
INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica`=`co_documenti`.`idanagrafica`
LEFT JOIN `an_anagrafiche AS vettore ON vettore.idanagrafica = co_documenti.idvettore
INNER JOIN `co_statidocumenti` ON `co_documenti`.`idstatodocumento`=`co_statidocumenti`.`id`
INNER JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento`=`co_tipidocumento`.`id`
LEFT JOIN `co_pagamenti` ON `co_documenti`.`idpagamento`=`co_pagamenti`.`id`
LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti_lang`.`id_record` = `co_pagamenti`.`id` AND `co_pagamenti_lang`.`id_lang` = '.prepare(setting('Lingua')).')
LEFT JOIN `co_banche` ON `co_banche`.`id` = `co_documenti`.`id_banca_azienda`
INNER JOIN `zz_segments` ON `co_documenti`.`id_segment` = `zz_segments`.`id`
LEFT JOIN `dt_causalet` ON `dt_causalet`.`id` = `co_documenti`.`idcausalet`
LEFT JOIN `dt_porto` ON `dt_porto`.`id` = `co_documenti`.`idporto`
LEFT JOIN `dt_aspettobeni` ON `dt_aspettobeni`.`id` = `co_documenti`.`idaspettobeni`
LEFT JOIN `dt_spedizione` ON `dt_spedizione`.`id` = `co_documenti`.`idspedizione`
WHERE
`co_documenti`.`id`='.prepare($id_record));
$record['rivalsainps'] = floatval($record['rivalsainps']); $record['rivalsainps'] = floatval($record['rivalsainps']);
$record['ritenutaacconto'] = floatval($record['ritenutaacconto']); $record['ritenutaacconto'] = floatval($record['ritenutaacconto']);
@@ -71,7 +86,7 @@ if (empty($record['is_fiscale'])) {
// Leggo i dati della destinazione (se 0=sede legale, se!=altra sede da leggere da tabella an_sedi) // Leggo i dati della destinazione (se 0=sede legale, se!=altra sede da leggere da tabella an_sedi)
$destinazione = ''; $destinazione = '';
if (!empty($record['idsede_destinazione'])) { if (!empty($record['idsede_destinazione'])) {
$rsd = $dbo->fetchArray('SELECT (SELECT codice FROM an_anagrafiche WHERE idanagrafica=an_sedi.idanagrafica) AS codice, (SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica=an_sedi.idanagrafica) AS ragione_sociale, nomesede, indirizzo, indirizzo2, cap, citta, provincia, piva, codice_fiscale, id_nazione FROM an_sedi WHERE idanagrafica='.prepare($id_cliente).' AND id='.prepare($record['idsede_destinazione'])); $rsd = $dbo->fetchArray('SELECT (SELECT `codice` FROM `an_anagrafiche` WHERE `idanagrafica`=`an_sedi`.`idanagrafica`) AS codice, (SELECT `ragione_sociale` FROM `an_anagrafiche` WHERE `idanagrafica`=`an_sedi`.`idanagrafica`) AS ragione_sociale, `nomesede`, `indirizzo`, `indirizzo2`, `cap`, `citta`, `provincia`, `piva`, `codice_fiscale`, `id_nazione` FROM `an_sedi` WHERE `idanagrafica`='.prepare($id_cliente).' AND id='.prepare($record['idsede_destinazione']));
if (!empty($rsd[0]['nomesede'])) { if (!empty($rsd[0]['nomesede'])) {
$destinazione .= $rsd[0]['nomesede'].'<br/>'; $destinazione .= $rsd[0]['nomesede'].'<br/>';

View File

@@ -61,7 +61,7 @@ if (!empty($documento->idsede)) {
} }
$numero = !empty($documento['numero_esterno']) ? $documento['numero_esterno'] : $documento['numero']; $numero = !empty($documento['numero_esterno']) ? $documento['numero_esterno'] : $documento['numero'];
$pagamento = $dbo->fetchOne('SELECT * FROM co_pagamenti WHERE id = '.prepare($documento->idpagamento)); $pagamento = $dbo->fetchOne('SELECT * FROM `co_pagamenti` LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti`.`id` = `co_pagamenti_lang`.`id_record` AND `co_pagamenti_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `co_pagamenti`.`id` = '.prepare($documento->idpagamento));
// Sostituzioni specifiche // Sostituzioni specifiche
$custom = [ $custom = [

View File

@@ -42,7 +42,7 @@ if (!empty(get('date_end'))) {
} }
if (get('id_anagrafica') && get('id_anagrafica') != 'null') { if (get('id_anagrafica') && get('id_anagrafica') != 'null') {
$module_query = str_replace('1=1', '1=1 AND co_scadenziario.idanagrafica="'.get('id_anagrafica').'"', $module_query); $module_query = str_replace('1=1', '1=1 AND `co_scadenziario`.`idanagrafica`="'.get('id_anagrafica').'"', $module_query);
$id_anagrafica = get('id_anagrafica'); $id_anagrafica = get('id_anagrafica');
} }
@@ -51,25 +51,25 @@ if (get('is_pagata') == 'false') {
} }
if (get('is_riba') == 'true') { if (get('is_riba') == 'true') {
$module_query = str_replace('1=1', '1=1 AND co_pagamenti.codice_modalita_pagamento_fe="MP12"', $module_query); $module_query = str_replace('1=1', '1=1 AND `co_pagamenti`.`codice_modalita_pagamento_fe`="MP12"', $module_query);
} }
if (get('is_cliente') == 'true') { if (get('is_cliente') == 'true') {
$module_query = str_replace('1=1', '1=1 AND co_tipidocumento.dir="entrata"', $module_query); $module_query = str_replace('1=1', '1=1 AND `co_tipidocumento`.`dir`="entrata"', $module_query);
} }
if (get('is_fornitore') == 'true') { if (get('is_fornitore') == 'true') {
$module_query = str_replace('1=1', '1=1 AND co_tipidocumento.dir="uscita"', $module_query); $module_query = str_replace('1=1', '1=1 AND `co_tipidocumento`.`dir`="uscita"', $module_query);
} }
// Scelgo la query in base alla scadenza // Scelgo la query in base alla scadenza
if (isset($id_record)) { if (isset($id_record)) {
$record = $dbo->fetchOne('SELECT * FROM co_scadenziario WHERE id = '.prepare($id_record)); $record = $dbo->fetchOne('SELECT * FROM `co_scadenziario` WHERE `id` = '.prepare($id_record));
$documento = Fattura::find($record['iddocumento']); $documento = Fattura::find($record['iddocumento']);
if (!empty($documento)) { if (!empty($documento)) {
$module_query = str_replace('1=1', '1=1 AND co_scadenziario.iddocumento='.prepare($documento->id), $module_query); $module_query = str_replace('1=1', '1=1 AND `co_scadenziario`.`iddocumento`='.prepare($documento->id), $module_query);
} else { } else {
$module_query = str_replace('1=1', '1=1 AND co_scadenziario.id='.prepare($id_record), $module_query); $module_query = str_replace('1=1', '1=1 AND `co_scadenziario`.`id`='.prepare($id_record), $module_query);
} }
} }

View File

@@ -178,7 +178,7 @@ ALTER TABLE `an_settori`
ALTER TABLE `an_settori_lang` ADD CONSTRAINT `an_settori_lang_ibfk_1` FOREIGN KEY (`id_record`) REFERENCES `an_settori`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT; ALTER TABLE `an_settori_lang` ADD CONSTRAINT `an_settori_lang_ibfk_1` FOREIGN KEY (`id_record`) REFERENCES `an_settori`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT;
-- Allineamento vista Relazioni -- Allineamento vista Settori
UPDATE `zz_modules` SET `options` = " UPDATE `zz_modules` SET `options` = "
SELECT SELECT
|select| |select|
@@ -213,29 +213,6 @@ ALTER TABLE `an_tipianagrafiche`
ALTER TABLE `an_tipianagrafiche_lang` ADD CONSTRAINT `an_tipianagrafiche_lang_ibfk_1` FOREIGN KEY (`id_record`) REFERENCES `an_tipianagrafiche`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT; ALTER TABLE `an_tipianagrafiche_lang` ADD CONSTRAINT `an_tipianagrafiche_lang_ibfk_1` FOREIGN KEY (`id_record`) REFERENCES `an_tipianagrafiche`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT;
-- Allineamento vista Anagrafiche
UPDATE `zz_modules` SET `options` = "
SELECT
|select|
FROM
`an_anagrafiche`
LEFT JOIN `an_relazioni` ON `an_anagrafiche`.`idrelazione` = `an_relazioni`.`id`
LEFT JOIN `an_relazioni_lang` ON (`an_relazioni`.`id` = `an_relazioni_lang`.`id_record` AND `an_relazioni_lang`.|lang|)
LEFT JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
LEFT JOIN `an_tipianagrafiche` ON `an_tipianagrafiche`.`id` = `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`
LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.|lang|)
LEFT JOIN (SELECT `idanagrafica`, GROUP_CONCAT(`nomesede` SEPARATOR ', ') AS nomi FROM `an_sedi` GROUP BY `idanagrafica`) AS sedi ON `an_anagrafiche`.`idanagrafica`= `sedi`.`idanagrafica`
LEFT JOIN (SELECT `idanagrafica`, GROUP_CONCAT(`nome` SEPARATOR ', ') AS nomi FROM `an_referenti` GROUP BY `idanagrafica`) AS referenti ON `an_anagrafiche`.`idanagrafica` =`referenti`.`idanagrafica`
LEFT JOIN (SELECT `co_pagamenti`.`descrizione`AS nome, `co_pagamenti`.`id` FROM `co_pagamenti`)AS pagvendita ON IF(`an_anagrafiche`.`idpagamento_vendite`>0,`an_anagrafiche`.`idpagamento_vendite`= `pagvendita`.`id`,'')
LEFT JOIN (SELECT `co_pagamenti`.`descrizione`AS nome, `co_pagamenti`.`id` FROM `co_pagamenti`)AS pagacquisto ON IF(`an_anagrafiche`.`idpagamento_acquisti`>0,`an_anagrafiche`.`idpagamento_acquisti`= `pagacquisto`.`id`,'')
WHERE
1=1 AND `an_anagrafiche`.`deleted_at` IS NULL
GROUP BY
`an_anagrafiche`.`idanagrafica`, `pagvendita`.`nome`, `pagacquisto`.`nome`
HAVING
2=2
ORDER BY
TRIM(`ragione_sociale`)" WHERE `name` = 'Anagrafiche';
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'GROUP_CONCAT(\' \',`an_relazioni_lang`.`name`)' WHERE `zz_modules`.`name` = 'Anagrafiche' AND `zz_views`.`name` = 'color_title_Relazione'; UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'GROUP_CONCAT(\' \',`an_relazioni_lang`.`name`)' WHERE `zz_modules`.`name` = 'Anagrafiche' AND `zz_views`.`name` = 'color_title_Relazione';
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'GROUP_CONCAT(\' \',`an_tipianagrafiche_lang`.`name`)' WHERE `zz_modules`.`name` = 'Anagrafiche' AND `zz_views`.`name` = 'Tipo'; UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'GROUP_CONCAT(\' \',`an_tipianagrafiche_lang`.`name`)' WHERE `zz_modules`.`name` = 'Anagrafiche' AND `zz_views`.`name` = 'Tipo';
@@ -275,7 +252,7 @@ ALTER TABLE `co_iva`
ALTER TABLE `co_iva_lang` ADD CONSTRAINT `co_iva_lang_ibfk_1` FOREIGN KEY (`id_record`) REFERENCES `co_iva`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT; ALTER TABLE `co_iva_lang` ADD CONSTRAINT `co_iva_lang_ibfk_1` FOREIGN KEY (`id_record`) REFERENCES `co_iva`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT;
-- Allineamento vista Anagrafiche -- Allineamento vista IVA
UPDATE `zz_modules` SET `options` = " UPDATE `zz_modules` SET `options` = "
SELECT SELECT
|select| |select|
@@ -294,6 +271,147 @@ UPDATE co_iva SET codice = @codice WHERE id = (SELECT id_record FROM co_iva_lang
UPDATE co_iva SET codice = @codice+1 WHERE id = (SELECT id_record FROM co_iva_lang WHERE name = 'Non imp. art.72 DPR 633/1972'); UPDATE co_iva SET codice = @codice+1 WHERE id = (SELECT id_record FROM co_iva_lang WHERE name = 'Non imp. art.72 DPR 633/1972');
UPDATE co_iva SET codice = @codice+2 WHERE id = (SELECT id_record FROM co_iva_lang WHERE name = 'Art. 71 DPR 633/1972'); UPDATE co_iva SET codice = @codice+2 WHERE id = (SELECT id_record FROM co_iva_lang WHERE name = 'Art. 71 DPR 633/1972');
-- Aggiunta tabella co_movimenti_modelli_lang
CREATE TABLE IF NOT EXISTS `co_pagamenti_lang` (
`id` int NOT NULL,
`id_lang` int NOT NULL,
`id_record` int NOT NULL,
`name` VARCHAR(255) NOT NULL
);
ALTER TABLE `co_pagamenti_lang`
ADD PRIMARY KEY (`id`);
ALTER TABLE `co_pagamenti_lang`
MODIFY `id` int NOT NULL AUTO_INCREMENT;
INSERT INTO `co_pagamenti_lang` (`id`, `id_lang`, `id_record`, `name`) SELECT NULL, (SELECT `id` FROM `zz_langs` WHERE `iso_code` = 'it'), `id`, `descrizione` FROM `co_pagamenti`;
ALTER TABLE `co_pagamenti`
DROP `descrizione`;
ALTER TABLE `co_pagamenti_lang` ADD CONSTRAINT `co_pagamenti_lang_ibfk_1` FOREIGN KEY (`id_record`) REFERENCES `co_pagamenti`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT;
-- Allineamento vista Pagamenti
UPDATE `zz_modules` SET `options` = "
SELECT
|select|
FROM
`co_pagamenti`
LEFT JOIN (SELECT `fe_modalita_pagamento`.`codice`, CONCAT(`fe_modalita_pagamento`.`codice`, ' - ', `fe_modalita_pagamento`.`descrizione`) AS tipo FROM `fe_modalita_pagamento`) AS pagamenti ON `pagamenti`.`codice` = `co_pagamenti`.`codice_modalita_pagamento_fe`
LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti`.`id` = `co_pagamenti_lang`.`id_record` AND |lang|)
WHERE
1=1
GROUP BY
`co_pagamenti`.`id`
HAVING
2=2" WHERE `name` = 'Pagamenti';
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`co_pagamenti_lang`.`name`' WHERE `zz_modules`.`name` = 'Pagamenti' AND `zz_views`.`name` = 'descrizione';
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'COUNT(`co_pagamenti_lang`.`name`)' WHERE `zz_modules`.`name` = 'Pagamenti' AND `zz_views`.`name` = 'Rate';
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`co_pagamenti_lang`.`id`' WHERE `zz_modules`.`name` = 'Pagamenti' AND `zz_views`.`name` = 'id';
-- Allineamento vista Fatture di vendita
UPDATE `zz_modules` SET `options` = "
SELECT
|select|
FROM
`co_documenti`
LEFT JOIN (SELECT SUM(`totale`) AS `totale`, `iddocumento` FROM `co_movimenti` WHERE `totale` > 0 AND `primanota` = 1 GROUP BY `iddocumento`) AS `primanota` ON `primanota`.`iddocumento` = `co_documenti`.`id`
LEFT JOIN `an_anagrafiche` ON `co_documenti`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
LEFT JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento` = `co_tipidocumento`.`id`
LEFT JOIN (SELECT `iddocumento`, SUM(`subtotale` - `sconto`) AS `totale_imponibile`, SUM((`subtotale` - `sconto` + `rivalsainps`) * `co_iva`.`percentuale` / 100) AS `iva` FROM `co_righe_documenti` LEFT JOIN `co_iva` ON `co_iva`.`id` = `co_righe_documenti`.`idiva` GROUP BY `iddocumento`) AS `righe` ON `co_documenti`.`id` = `righe`.`iddocumento`
LEFT JOIN (SELECT `co_banche`.`id`, CONCAT(`co_banche`.`nome`, ' - ', `co_banche`.`iban`) AS `descrizione` FROM `co_banche` GROUP BY `co_banche`.`id`) AS `banche` ON `banche`.`id` =`co_documenti`.`id_banca_azienda`
LEFT JOIN `co_statidocumento` ON `co_documenti`.`idstatodocumento` = `co_statidocumento`.`id`
LEFT JOIN `fe_stati_documento` ON `co_documenti`.`codice_stato_fe` = `fe_stati_documento`.`codice`
LEFT JOIN `co_ritenuta_contributi` ON `co_documenti`.`id_ritenuta_contributi` = `co_ritenuta_contributi`.`id`
LEFT JOIN (SELECT COUNT(id) as `emails`, `em_emails`.`id_record` FROM `em_emails` INNER JOIN `zz_operations` ON `zz_operations`.`id_email` = `em_emails`.`id` WHERE `id_module` IN(SELECT `id` FROM `zz_modules` WHERE name = 'Fatture di vendita') AND `zz_operations`.`op` = 'send-email' GROUP BY `em_emails`.`id_record`) AS `email` ON `email`.`id_record` = `co_documenti`.`id`
LEFT JOIN `co_pagamenti` ON `co_documenti`.`idpagamento` = `co_pagamenti`.`id`
LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti`.`id` = `co_pagamenti_lang`.`id_record` AND |lang|)
LEFT JOIN (SELECT `numero_esterno`, `id_segment`, `idtipodocumento`, `data` FROM `co_documenti` WHERE `co_documenti`.`idtipodocumento` IN( SELECT `id` FROM `co_tipidocumento` WHERE `dir` = 'entrata') AND `numero_esterno` != '' GROUP BY `id_segment`, `numero_esterno`, `idtipodocumento` HAVING COUNT(`numero_esterno`) > 1 |date_period(`co_documenti`.`data`)| ) dup ON `co_documenti`.`numero_esterno` = `dup`.`numero_esterno` AND `dup`.`id_segment` = `co_documenti`.`id_segment` AND `dup`.`idtipodocumento` = `co_documenti`.`idtipodocumento`
WHERE
1=1 AND `dir` = 'entrata' |segment(`co_documenti`.`id_segment`)| |date_period(`co_documenti`.`data`)|
HAVING
2=2
ORDER BY
`co_documenti`.`data` DESC,
CAST(`co_documenti`.`numero_esterno` AS UNSIGNED) DESC" WHERE `name` = 'Fatture di vendita';
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`co_pagamenti_lang`.`name`' WHERE `zz_modules`.`name` = 'Fatture di vendita' AND `zz_views`.`name` = 'Pagamento';
-- Allineamento vista Anagrafiche
UPDATE `zz_modules` SET `options` = "
SELECT
|select|
FROM
`an_anagrafiche`
LEFT JOIN `an_relazioni` ON `an_anagrafiche`.`idrelazione` = `an_relazioni`.`id`
LEFT JOIN `an_relazioni_lang` ON (`an_relazioni`.`id` = `an_relazioni_lang`.`id_record` AND `an_relazioni_lang`.|lang|)
LEFT JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
LEFT JOIN `an_tipianagrafiche` ON `an_tipianagrafiche`.`id` = `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`
LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.|lang|)
LEFT JOIN (SELECT `idanagrafica`, GROUP_CONCAT(`nomesede` SEPARATOR ', ') AS nomi FROM `an_sedi` GROUP BY `idanagrafica`) AS sedi ON `an_anagrafiche`.`idanagrafica`= `sedi`.`idanagrafica`
LEFT JOIN (SELECT `idanagrafica`, GROUP_CONCAT(`nome` SEPARATOR ', ') AS nomi FROM `an_referenti` GROUP BY `idanagrafica`) AS referenti ON `an_anagrafiche`.`idanagrafica` =`referenti`.`idanagrafica`
LEFT JOIN (SELECT `co_pagamenti_lang`.`name`AS nome, `co_pagamenti`.`id` FROM `co_pagamenti` LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti`.`id` = `co_pagamenti_lang`.`id_record` AND `co_pagamenti_lang`.|lang|))AS pagvendita ON IF(`an_anagrafiche`.`idpagamento_vendite`>0,`an_anagrafiche`.`idpagamento_vendite`= `pagvendita`.`id`,'')
LEFT JOIN (SELECT `co_pagamenti_lang`.`name`AS nome, `co_pagamenti`.`id` FROM `co_pagamenti` LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti`.`id` = `co_pagamenti_lang`.`id_record` AND `co_pagamenti_lang`.|lang|))AS pagacquisto ON IF(`an_anagrafiche`.`idpagamento_acquisti`>0,`an_anagrafiche`.`idpagamento_acquisti`= `pagacquisto`.`id`,'')
WHERE
1=1 AND `an_anagrafiche`.`deleted_at` IS NULL
GROUP BY
`an_anagrafiche`.`idanagrafica`, `pagvendita`.`nome`, `pagacquisto`.`nome`
HAVING
2=2
ORDER BY
TRIM(`ragione_sociale`)" WHERE `name` = 'Anagrafiche';
-- Allineamento vista Fatture di acquisto
UPDATE `zz_modules` SET `options` = "
SELECT
|select|
FROM
`co_documenti`
LEFT JOIN `an_anagrafiche` ON `co_documenti`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
LEFT JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento` = `co_tipidocumento`.`id`
LEFT JOIN `co_statidocumento` ON `co_documenti`.`idstatodocumento` = `co_statidocumento`.`id`
LEFT JOIN `co_ritenuta_contributi` ON `co_documenti`.`id_ritenuta_contributi` = `co_ritenuta_contributi`.`id`
LEFT JOIN `co_pagamenti` ON `co_documenti`.`idpagamento` = `co_pagamenti`.`id`
LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti`.`id` = `co_pagamenti_lang`.`id_record` AND `co_pagamenti_lang`.|lang|)
LEFT JOIN (SELECT `co_banche`.`id`, CONCAT(`nome`, ' - ', `iban`) AS `descrizione` FROM `co_banche`) AS `banche` ON `banche`.`id` = `co_documenti`.`id_banca_azienda`
LEFT JOIN (SELECT `iddocumento`, GROUP_CONCAT(`co_pianodeiconti3`.`descrizione`) AS `descrizione` FROM `co_righe_documenti` INNER JOIN `co_pianodeiconti3` ON `co_pianodeiconti3`.`id` = `co_righe_documenti`.`idconto` GROUP BY iddocumento) AS `conti` ON `conti`.`iddocumento` = `co_documenti`.`id`
LEFT JOIN (SELECT `iddocumento`, SUM(`subtotale` - `sconto`) AS `totale_imponibile`, SUM(`iva`) AS `iva` FROM `co_righe_documenti` GROUP BY `iddocumento`) AS `righe` ON `co_documenti`.`id` = `righe`.`iddocumento`
LEFT JOIN (SELECT COUNT(`d`.`id`) AS `conteggio`, IF(`d`.`numero_esterno` = '', `d`.`numero`, `d`.`numero_esterno`) AS `numero_documento`, `d`.`idanagrafica` AS `anagrafica`, `d`.`id_segment` FROM `co_documenti` AS `d`
LEFT JOIN `co_tipidocumento` AS `d_tipo` ON `d`.`idtipodocumento` = `d_tipo`.`id` WHERE 1=1 AND `d_tipo`.`dir` = 'uscita' AND('|period_start|' <= `d`.`data` AND '|period_end|' >= `d`.`data` OR '|period_start|' <= `d`.`data_competenza` AND '|period_end|' >= `d`.`data_competenza`) GROUP BY `d`.`id_segment`, `numero_documento`, `d`.`idanagrafica`) AS `d` ON (`d`.`numero_documento` = IF(`co_documenti`.`numero_esterno` = '',`co_documenti`.`numero`,`co_documenti`.`numero_esterno`) AND `d`.`anagrafica` = `co_documenti`.`idanagrafica` AND `d`.`id_segment` = `co_documenti`.`id_segment`)
WHERE
1=1
AND
`dir` = 'uscita' |segment(`co_documenti`.`id_segment`)| |date_period(custom, '|period_start|' <= `co_documenti`.`data` AND '|period_end|' >= `co_documenti`.`data`, '|period_start|' <= `co_documenti`.`data_competenza` AND '|period_end|' >= `co_documenti`.`data_competenza` )|
GROUP BY
`co_documenti`.`id`, `d`.`conteggio`
HAVING
2=2
ORDER BY
`co_documenti`.`data` DESC,
CAST(IF(`co_documenti`.`numero` = '', `co_documenti`.`numero_esterno`, `co_documenti`.`numero`) AS UNSIGNED) DESC" WHERE `name` = 'Fatture di acquisto';
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'CONCAT(`co_pagamenti`.`codice_modalita_pagamento_fe`, " - ", `co_pagamenti_lang`.`name`)' WHERE `zz_modules`.`name` = 'Fatture di acquisto' AND `zz_views`.`name` = 'Pagamento';
-- Allineamento vista Scadenzario
UPDATE `zz_modules` SET `options` = "
SELECT
|select|
FROM
`co_scadenziario`
LEFT JOIN `co_documenti` ON `co_scadenziario`.`iddocumento` = `co_documenti`.`id`
LEFT JOIN `co_banche` ON `co_banche`.`id` = `co_documenti`.`id_banca_azienda`
LEFT JOIN `an_anagrafiche` ON `co_scadenziario`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
LEFT JOIN `co_pagamenti` ON `co_documenti`.`idpagamento` = `co_pagamenti`.`id`
LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti_lang`.`id_record` = `co_pagamenti`.`id` AND `co_pagamenti_lang`.|lang|)
LEFT JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento` = `co_tipidocumento`.`id`
LEFT JOIN `co_statidocumento` ON `co_documenti`.`idstatodocumento` = `co_statidocumento`.`id`
LEFT JOIN (SELECT COUNT(id_email) as emails, zz_operations.id_record FROM zz_operations WHERE id_module IN(SELECT id FROM zz_modules WHERE name = 'Scadenzario') AND `zz_operations`.`op` = 'send-email' GROUP BY zz_operations.id_record) AS `email` ON `email`.`id_record` = `co_scadenziario`.`id`
WHERE
1=1 AND (`co_statidocumento`.`descrizione` IS NULL OR `co_statidocumento`.`descrizione` IN('Emessa','Parzialmente pagato','Pagato'))
HAVING
2=2
ORDER BY
`scadenza` ASC" WHERE `name` = 'Scadenzario';
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`co_pagamenti_lang`.`name`' WHERE `zz_modules`.`name` = 'Scadenzario' AND `zz_views`.`name` = 'Tipo di pagamento';
-- Fix per file sql di update aggiornato dopo rilascio 2.4.35 -- Fix per file sql di update aggiornato dopo rilascio 2.4.35
UPDATE `zz_modules` SET `icon` = 'fa fa-exchange' WHERE `zz_modules`.`name` = 'Causali movimenti'; UPDATE `zz_modules` SET `icon` = 'fa fa-exchange' WHERE `zz_modules`.`name` = 'Causali movimenti';

View File

@@ -33,6 +33,7 @@ return [
'co_movimenti_modelli', 'co_movimenti_modelli',
'co_fatturazione_contratti', 'co_fatturazione_contratti',
'co_pagamenti', 'co_pagamenti',
'co_pagamenti_lang',
'co_pianodeiconti1', 'co_pianodeiconti1',
'co_pianodeiconti2', 'co_pianodeiconti2',
'co_pianodeiconti3', 'co_pianodeiconti3',