Fix minori

This commit is contained in:
Pek5892 2024-03-06 10:56:09 +01:00
parent 8f279df90a
commit 9d9bd9e4bc
24 changed files with 102 additions and 70 deletions

View File

@ -95,7 +95,7 @@ switch (post('op')) {
'prezzo_acquisto' => post('prezzo_acquisto'),
'prezzo_vendita' => post('prezzo_vendita'),
'idiva_vendita' => post('idiva_vendita') ?: null,
'iva_vendita' => $iva ? $iva->descrizione : null,
'iva_vendita' => $iva ? $iva->name : null,
'um_secondaria' => post('um_secondaria'),
'um' => post('um'),
],

View File

@ -18,6 +18,7 @@
*/
include_once __DIR__.'/../../core.php';
use Models\Module;
?><form action="" method="post" id="edit-form">
<input type="hidden" name="backto" value="record-edit">
@ -72,7 +73,7 @@ include_once __DIR__.'/../../core.php';
<th width="20%"><?php echo tr('Opzioni'); ?></th>
</tr>
<?php include base_dir().'/modules/'.Modules::get($id_module)['directory'].'/row-list.php'; ?>
<?php include base_dir().'/modules/'.Module::find($id_module)->directory.'/row-list.php'; ?>
</table>
</div>
</div>

View File

@ -50,8 +50,9 @@ switch (post('op')) {
'_NAME_' => $descrizione,
]));
} else {
$categoria = Categoria::build($descrizione);
$categoria = Categoria::build();
$id_record = $categoria->id;
$dbo->query('INSERT INTO `do_categorie_lang` (`id_record`, `id_lang`, `name`) VALUES ('.prepare($id_record).', '.prepare(setting('Lingua')).', '.prepare($descrizione).')');
if (isAjaxRequest()) {
echo json_encode(['id' => $id_record, 'text' => $descrizione]);

View File

@ -30,11 +30,9 @@ class Categoria extends Model
protected $table = 'do_categorie';
public static function build($descrizione)
public static function build()
{
$model = new static();
$model->descrizione = $descrizione;
$model->save();
$gruppi = database()->fetchArray('SELECT `id` FROM `zz_groups`');

View File

@ -18,6 +18,7 @@
*/
include_once __DIR__.'/../../../core.php';
use Models\Module;
$fields = [
'Numero' => 'numero',
@ -45,7 +46,7 @@ foreach ($rs as $r) {
$result = [];
$module = ($r['dir'] == 'uscita') ? 'Ddt di acquisto' : 'Ddt di vendita';
$link_id = Modules::get($module)['id'];
$link_id = (new Module())->getByName($module)->id_record;
$numero = empty($r['numero_esterno']) ? $r['numero'] : $r['numero_esterno'];

View File

@ -499,7 +499,7 @@ switch (post('op')) {
$fattura->data_registrazione = post('data_registrazione');
}
if ($stato_precedente->descrizione == 'Bozza' && $fattura->isFiscale()) {
if ($stato_precedente->name == 'Bozza' && $fattura->isFiscale()) {
$fattura->stato()->associate($new_stato);
$results = $fattura->save();
$message = '';

View File

@ -218,7 +218,7 @@ class Fattura extends Document
$model->note = implode("\n", $notes);
if ($tipo_documento->descrizione == 'Fattura accompagnatoria di vendita') {
if ($tipo_documento->name == 'Fattura accompagnatoria di vendita') {
$model->idporto = database()->fetchOne('SELECT `id` FROM `dt_porto` WHERE `predefined` = 1')['id'];
$model->idcausalet = database()->fetchOne('SELECT `id` FROM `dt_causalet` WHERE `predefined` = 1')['id'];
$model->idspedizione = database()->fetchOne('SELECT `id` FROM `dt_spedizione` WHERE `predefined` = 1')['id'];

View File

@ -363,7 +363,6 @@ echo input([
'type' => 'ckeditor',
'label' => tr('Richiesta'),
'name' => 'richiesta',
'id' => 'richiesta_add',
'required' => 1,
'value' => $record['richiesta'],
'extra' => 'style=\'max-height:80px;\'',
@ -375,7 +374,6 @@ echo input([
'type' => 'ckeditor',
'label' => tr('Descrizione'),
'name' => 'descrizione',
'id' => 'descrizione_add',
'value' => $record['descrizione'],
'extra' => 'style=\'max-height:80px;\'',
]);

View File

@ -20,10 +20,11 @@
include_once __DIR__.'/../../../core.php';
use Modules\Interventi\Intervento;
use Models\PrintTemplate;
$id_records = explode(';', get('id_records'));
$id_print = setting('Stampa per anteprima e firma');
$template = Prints::get($id_print)['name'];
$template = PrintTemplate::find($id_print)->name;
$interventi_completati = [];
$interventi_firmati = [];

View File

@ -33,12 +33,10 @@ class Stato extends Model
return $this->hasMany(Intervento::class, 'idstatointervento');
}
public static function build($nome)
public static function build($codice)
{
$model = new static();
$model->codice = 'NEW';
$model->descrizione = $nome;
$model->codice = $codice;
$model->save();
return $model;

View File

@ -174,7 +174,7 @@ class Ordine extends Document
// Impostazione del nuovo stato
if ($qta_evasa == 0) {
$descrizione = 'Accettato';
} elseif (!in_array($stato_attuale->descrizione, ['Parzialmente fatturato', 'Fatturato']) && $trigger->getDocument() instanceof DDT) {
} elseif (!in_array($stato_attuale->name, ['Parzialmente fatturato', 'Fatturato']) && $trigger->getDocument() instanceof DDT) {
$descrizione = $parziale ? 'Parzialmente evaso' : 'Evaso';
} else {
$descrizione = $parziale ? 'Parzialmente fatturato' : 'Fatturato';

View File

@ -64,7 +64,7 @@ if (!empty($movimenti)) {
<tr>
<td>';
$id_modulo_fattura = ($movimento['dir'] == 'entrata') ? (new Module())->getByName('Fatture di vendita')->id_record : (new Module())->getByName('Fatture di acquisto')->id_record;
$id_modulo_fattura = ($movimento['dir'] == 'entrata') ? 'Fatture di vendita' : 'Fatture di acquisto';
if (!empty($movimento['primanota'])) {
echo Modules::link($id_prima_nota, $movimento['idmastrino'], $movimento['descrizione']);

View File

@ -18,6 +18,7 @@
*/
include_once __DIR__.'/../../core.php';
use Models\Module;
$idconto = get('id');
$lvl = get('lvl');
@ -30,8 +31,8 @@ if ($lvl == 2) {
}
$info = $dbo->fetchOne($query);
?><form action="<?php echo base_path(); ?>/editor.php?id_module=<?php echo Modules::get('Piano dei conti')['id']; ?>" method="post">
?>
<form action="<?php echo base_path(); ?>/editor.php?id_module=<?php echo (new Module())->getByName('Piano dei conti')->id_record; ?>" method="post">
<input type="hidden" name="op" value="edit">
<input type="hidden" name="backto" value="record-list">
<input type="hidden" name="lvl" value="<?php echo $lvl; ?>">
@ -50,7 +51,7 @@ $info = $dbo->fetchOne($query);
</div>
<div class="row">
<div class="col-md-4 <?php echo intval($lvl != 3) ? 'hidden' : ''; ?>">
{[ "type": "number", "decimals": 0, "label": "<?php echo tr('Percentuale deducibile'); ?>", "name": "percentuale_deducibile", "value": "<?php echo $info['percentuale_deducibile']; ?>", "icon-after": "<i class=\"fa fa-percent\"></i>", "max-value": "100", "min-value": "0" ]}
{[ "type": "number", "decimals": 0, "label": "<?php echo tr('Percentuale deducibile'); ?>", "name": "percentuale_deducibile", "value": "<?php echo $info['percentuale_deducibile']; ?>", "icon-after": "<i class="fa fa-percent"></i>", "max-value": "100", "min-value": "0" ]}
</div>
<div class="col-md-4 <?php echo intval($lvl != 2) ? 'hidden' : ''; ?>">

View File

@ -18,6 +18,7 @@
*/
include_once __DIR__.'/../../core.php';
use Models\Module;
?><form action="" method="post" id="edit-form">
<input type="hidden" name="backto" value="record-edit">
@ -72,7 +73,7 @@ $previous_module = $_SESSION['module_'.$record['id_module']]['id_segment'];
$_SESSION['module_'.$id_module]['id_segment'] = $id_record;
$_SESSION['module_'.$record['id_module']]['id_segment'] = $id_record;
$current_module = Modules::get($record['id_module']);
$current_module = Module::find($record['id_module']);
$total = Util\Query::readQuery($current_module);
$module_query = Modules::replaceAdditionals($record['id_module'], $total['query']);

View File

@ -1466,8 +1466,7 @@ class FatturaElettronica
$aliquota = $riga->aliquota ?: $iva_descrizioni;
// Se sono presenti solo righe descrittive uso l'iva da impostazioni
if (empty($aliquota)) {
$aliquota_predefinita = Aliquota::find(setting('Iva predefinita'));
$aliquota = $aliquota_predefinita;
$aliquota = Aliquota::find(setting('Iva predefinita'));
}
$percentuale = floatval($aliquota->percentuale);
@ -1628,11 +1627,11 @@ class FatturaElettronica
// Se sono presenti solo righe descrittive uso l'iva da impostazioni e creo un riepilogo con gli importi a 0
if (empty($iva)) {
$iva = [
'AliquotaIVA' => $aliquota_predefinita->percentuale,
'AliquotaIVA' => $aliquota->percentuale,
'ImponibileImporto' => 0,
'Imposta' => 0,
'EsigibilitaIVA' => $aliquota_predefinita->esigibilita,
'RiferimentoNormativo' => $aliquota_predefinita->descrizione,
'EsigibilitaIVA' => $aliquota->esigibilita,
'RiferimentoNormativo' => $aliquota->name,
];
// 2.2.2

View File

@ -286,7 +286,7 @@ switch (filter('op')) {
$iva[$key] = [
'id' => $aliquota->id,
'descrizione' => $aliquota->descrizione,
'descrizione' => $aliquota->name,
];
}

View File

@ -109,7 +109,7 @@ echo '
foreach ($righe as $riga) {
$id_iva = $riga->id_iva;
$descrizione = $riga->descrizione."\n{periodo}";
$descrizione = $riga->name."\n{periodo}";
$options = [
'id' => $riga->id,
@ -122,7 +122,7 @@ foreach ($righe as $riga) {
echo '
<!--h5>'.tr('Informazioni generali sulle righe con IVA: _IVA_', [
'_IVA_' => $riga->iva->descrizione,
'_IVA_' => $riga->iva->name,
]).'</h5-->
<div class="row">

View File

@ -87,7 +87,7 @@ echo '
// gestione replace
$descrizione = setting('Descrizione fattura pianificata');
$modules = MODULES::get('Contratti')['id'];
$modules = (new Module())->getByName('Contratti')->id_record;
$variables = include Modules::filepath($modules, 'variables.php');
foreach ($variables as $variable => $value) {
$descrizione = str_replace('{'.$variable.'}', $value, $descrizione);

View File

@ -19,6 +19,7 @@
use Carbon\Carbon;
use Plugins\PianificazioneInterventi\Promemoria;
use Models\Module;
include_once __DIR__.'/../../../core.php';
@ -118,7 +119,7 @@ foreach ($raggruppamenti as $mese => $raggruppamento) {
// Pulsanti
echo '
<td>
<button type="button" class="btn btn-primary btn-sm" title="Pianifica intervento ora..." data-toggle="tooltip" onclick="launch_modal(\'Pianifica intervento\', \''.base_path().'/add.php?id_module='.Modules::get('Interventi')['id'].'&ref=interventi_contratti&idcontratto='.$contratto->id.'&idcontratto_riga='.$promemoria->id.'\');">
<button type="button" class="btn btn-primary btn-sm" title="Pianifica intervento ora..." data-toggle="tooltip" onclick="launch_modal(\'Pianifica intervento\', \''.base_path().'/add.php?id_module='.(new Module())->getByName('Interventi')->id_record.'&ref=interventi_contratti&idcontratto='.$contratto->id.'&idcontratto_riga='.$promemoria->id.'\');">
<i class="fa fa-calendar"></i>
</button>
</td>

View File

@ -103,7 +103,7 @@ abstract class Discount extends Accounting
{
$this->attributes['iva'] = parent::getIvaAttribute();
$descrizione = $this->aliquota->descrizione;
$descrizione = $this->aliquota->name;
if (!empty($descrizione)) {
$this->attributes['desc_iva'] = $descrizione;
}

View File

@ -20,6 +20,7 @@
namespace HTMLBuilder\Manager;
use Util\Query;
use Models\Module;
/**
* @since 2.4
@ -80,7 +81,7 @@ class WidgetManager implements ManagerInterface
protected static function getModule()
{
return \Modules::get('Stato dei servizi');
return Module::find((new Module())->getByName('Stato dei servizi')->id_record);
}
protected function prints($widget)

View File

@ -49,4 +49,34 @@ class PrintTemplate extends Model
$builder->where('enabled', true);
});
}
/**
* Ritorna l'attributo name del template.
*
* @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 template 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

@ -282,7 +282,7 @@ class Modules
$testo = $testo.' <i class="fa fa-external-link"></i>';
}
$module = self::get($modulo);
$module = self::get((new Module())->getByName($modulo)->id_record);
$extra .= !empty($blank) ? ' target="_blank"' : '';
@ -329,7 +329,7 @@ class Modules
$link = (!empty($element['option']) && $element['option'] != 'menu') ? base_path().'/controller.php?id_module='.$element['id'] : 'javascript:;';
$title = $element['title'];
$target = '_self'; // $target = ($element['new'] == 1) ? '_blank' : '_self';
$active = ($actual == $element['name']);
$active = ($actual == $title);
$show = (self::getPermission($element['id']) != '-' && !empty($element['enabled'])) ? true : false;
$submenus = $element['all_children'];

View File

@ -439,9 +439,6 @@ UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_module
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`co_statidocumento_lang`.`name`' WHERE `zz_modules`.`name` = 'Fatture di vendita' AND `zz_views`.`name` = 'icon_title_Stato';
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`co_statidocumento_lang`.`name`' WHERE `zz_modules`.`name` = 'Fatture di acquisto' AND `zz_views`.`name` = 'icon_title_Stato';
-- Fix plugin Ddt del cliente
UPDATE `zz_plugins` SET `options` = '{ \"main_query\": [ { \"type\": \"table\", \"fields\": \"Numero, Data, Descrizione, Qtà\", \"query\": \"SELECT dt_ddt.id, IF(dt_tipiddt.dir = \'entrata\', (SELECT `id` FROM `zz_modules` WHERE `name` = \'Ddt di vendita\'), (SELECT `id` FROM `zz_modules` WHERE `name` = \'Ddt di acquisto\')) AS _link_module_, dt_ddt.id AS _link_record_, IF(dt_ddt.numero_esterno = \'\', dt_ddt.numero, dt_ddt.numero_esterno) AS Numero, DATE_FORMAT(dt_ddt.data, \'%d/%m/%Y\') AS Data, dt_righe_ddt.descrizione AS `Descrizione`, REPLACE(REPLACE(REPLACE(FORMAT(dt_righe_ddt.qta, 2), \',\', \'#\'), \'.\', \',\'), \'#\', \'.\') AS `Qtà` FROM dt_ddt LEFT JOIN dt_righe_ddt ON dt_ddt.id=dt_righe_ddt.idddt JOIN dt_tipiddt ON dt_ddt.idtipoddt = dt_tipiddt.id WHERE dt_ddt.idanagrafica=|id_parent| HAVING 2=2 ORDER BY dt_ddt.id DESC\"} ]}' WHERE `zz_plugins`.`name` = 'Ddt del cliente';
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`co_statidocumento_lang`.`name`' WHERE `zz_modules`.`name` = 'Scadenzario' AND `zz_views`.`name` = 'descrizione';
UPDATE `zz_widgets` SET `query` = "SELECT\n CONCAT_WS(\' \', REPLACE(REPLACE(REPLACE(FORMAT((\n SELECT SUM(\n (`co_righe_documenti`.`subtotale` - `co_righe_documenti`.`sconto`) * IF(`co_tipidocumento`.`reversed`, -1, 1)\n )\n ), 2), \',\', \'#\'), \'.\', \',\'), \'#\', \'.\'), \'&euro;\') AS dato\nFROM \n `co_righe_documenti`\n INNER JOIN `co_documenti` ON `co_righe_documenti`.`iddocumento` = `co_documenti`.`id`\n INNER JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento` = `co_tipidocumento`.`id`\n INNER JOIN `co_statidocumento` ON `co_documenti`.`idstatodocumento` = `co_statidocumento`.`id`\n LEFT JOIN `co_statidocumento_lang` ON (`co_statidocumento`.`id` = `co_statidocumento_lang`.`id_record` AND `co_statidocumento_lang`.|lang|)\nWHERE \n `co_statidocumento_lang`.`name`!=\'Bozza\' AND `co_tipidocumento`.`dir`=\'entrata\' |segment(`co_documenti`.`id_segment`)| AND `data` >= \'|period_start|\' AND `data` <= \'|period_end|\' AND 1=1" WHERE `zz_widgets`.`name` = 'Fatturato';
@ -858,34 +855,6 @@ ALTER TABLE `dt_statiddt` CHANGE `id` `id` INT NOT NULL AUTO_INCREMENT;
ALTER TABLE `dt_statiddt_lang` ADD CONSTRAINT `dt_statiddt_lang_ibfk_1` FOREIGN KEY (`id_record`) REFERENCES `dt_statiddt`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT;
-- Allineamento vista Ddt di vendita
UPDATE `zz_modules` SET `options` = "
SELECT
|select|
FROM
`dt_ddt`
LEFT JOIN `an_anagrafiche` ON `dt_ddt`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
LEFT JOIN `dt_tipiddt` ON `dt_ddt`.`idtipoddt` = `dt_tipiddt`.`id`
LEFT JOIN `dt_causalet` ON `dt_ddt`.`idcausalet` = `dt_causalet`.`id`
LEFT JOIN `dt_causalet_lang` ON (`dt_causalet_lang`.`id_record` = `dt_causalet`.`id` AND `dt_causalet_lang`.|lang|)
LEFT JOIN `dt_spedizione` ON `dt_ddt`.`idspedizione` = `dt_spedizione`.`id`
LEFT JOIN `dt_spedizione_lang` ON (`dt_spedizione_lang`.`id_record` = `dt_spedizione`.`id` AND `dt_spedizione_lang`.|lang|)
LEFT JOIN `an_anagrafiche` `vettori` ON `dt_ddt`.`idvettore` = `vettori`.`idanagrafica`
LEFT JOIN `an_sedi` AS sedi ON `dt_ddt`.`idsede_partenza` = sedi.`id`
LEFT JOIN `an_sedi` AS `sedi_destinazione`ON `dt_ddt`.`idsede_destinazione` = `sedi_destinazione`.`id`
LEFT JOIN (SELECT `idddt`, SUM(`subtotale` - `sconto`) AS `totale_imponibile`, SUM(`subtotale` - `sconto` + `iva`) AS `totale` FROM `dt_righe_ddt` GROUP BY `idddt`) AS righe ON `dt_ddt`.`id` = `righe`.`idddt`
LEFT JOIN `dt_statiddt` ON `dt_statiddt`.`id` = `dt_ddt`.`idstatoddt`
LEFT JOIN `dt_statiddt_lang` ON (`dt_statiddt_lang`.`id_record` = `dt_statiddt`.`id` AND `dt_statiddt_lang`.|lang|)
LEFT JOIN (SELECT GROUP_CONCAT(DISTINCT 'Fattura ',`co_documenti`.`numero_esterno` SEPARATOR ', ') AS `info`, `co_righe_documenti`.`original_document_id` AS `idddt` FROM `co_documenti` INNER JOIN `co_righe_documenti` ON `co_documenti`.`id` = `co_righe_documenti`.`iddocumento` WHERE `original_document_type`='Modules\\DDT\\DDT' GROUP BY `original_document_id`) AS `fattura` ON `fattura`.`idddt` = `dt_ddt`.`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 = 'Ddt di vendita') AND `zz_operations`.`op` = 'send-email' GROUP BY id_record) AS `email` ON `email`.`id_record` = `dt_ddt`.`id`
WHERE
1=1 |segment(`dt_ddt`.`id_segment`)| AND `dir` = 'entrata' |date_period(`data`)|
HAVING
2=2
ORDER BY
`data` DESC,
CAST(`numero_esterno` AS UNSIGNED) DESC,
`dt_ddt`.`created_at` DESC" WHERE `name` = 'Ddt di vendita';
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`dt_statiddt_lang`.`name`' WHERE `zz_modules`.`name` = 'Ddt di vendita' AND `zz_views`.`name` = 'icon_title_Stato';
-- Allineamento vista Ddt di acquisto
@ -1254,8 +1223,6 @@ HAVING
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`in_tipiintervento_lang`.`name`' WHERE `zz_modules`.`name` = 'Tipi di intervento' AND `zz_views`.`name` = 'Descrizione';
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`in_tipiintervento`.`id`' WHERE `zz_modules`.`name` = 'Tipi di intervento' AND `zz_views`.`name` = 'id';
UPDATE `zz_plugins` SET `options` = '{\"main_query\": [{\"type\": \"table\", \"fields\": \"Numero, Data inizio, Data fine, Tipo\", \"query\": \"SELECT in_interventi.id, in_interventi.codice AS Numero, DATE_FORMAT(MAX(orario_inizio),\'%d/%m/%Y\') AS \'Data inizio\', DATE_FORMAT(MAX(orario_fine),\'%d/%m/%Y\') AS \'Data fine\', (SELECT name FROM in_tipiintervento LEFT JOIN in_tipiintervento_lang ON (in_tipiintervento_lang.id_record = in_tipiintervento.id AND in_tipiintervento_lang.id_lang = (SELECT valore FROM zz_settings WHERE nome = \'Lingua\'))WHERE in_tipiintervento.id=in_interventi.idtipointervento) AS \'Tipo\', (SELECT `id` FROM `zz_modules` WHERE `name` = \'Interventi\') AS _link_module_, in_interventi.id AS _link_record_ FROM in_interventi LEFT JOIN `in_interventi_tecnici` ON `in_interventi_tecnici`.`idintervento` = `in_interventi`.`id` INNER JOIN `in_statiintervento` ON `in_interventi`.`idstatointervento`=`in_statiintervento`.`id` WHERE 1=1 AND in_interventi.deleted_at IS NULL AND idanagrafica = |id_parent| GROUP BY `in_interventi`.`id` HAVING 2=2 ORDER BY in_interventi.id DESC\"}]}' WHERE `zz_plugins`.`name` = 'Storico attività';
-- Aggiunta tabella mg_articoli_lang
CREATE TABLE IF NOT EXISTS `mg_articoli_lang` (
`id` int NOT NULL,
@ -1928,4 +1895,38 @@ ORDER BY
ALTER TABLE `my_impianti_interventi` ADD `note` TEXT NOT NULL AFTER `idimpianto`;
-- Aggiornato plugin Impianti
UPDATE `zz_plugins` SET `script` = '', `directory` = 'impianti_intervento', `options` = 'custom' WHERE `zz_plugins`.`id` = (SELECT `id_record` FROM `zz_plugins_lang` WHERE `name` = 'Impianti');
UPDATE `zz_plugins` SET `script` = '', `directory` = 'impianti_intervento', `options` = 'custom' WHERE `zz_plugins`.`id` = (SELECT `id_record` FROM `zz_plugins_lang` WHERE `name` = 'Impianti');
UPDATE `zz_plugins` SET `options` = '{\"main_query\": [{\"type\": \"table\", \"fields\": \"Numero, Data inizio, Data fine, Tipo\", \"query\": \"SELECT in_interventi.id, in_interventi.codice AS Numero, DATE_FORMAT(MAX(orario_inizio),\'%d/%m/%Y\') AS \'Data inizio\', DATE_FORMAT(MAX(orario_fine),\'%d/%m/%Y\') AS \'Data fine\', (SELECT name FROM in_tipiintervento LEFT JOIN in_tipiintervento_lang ON (in_tipiintervento_lang.id_record = in_tipiintervento.id AND in_tipiintervento_lang.id_lang = (SELECT valore FROM zz_settings WHERE nome = \'Lingua\'))WHERE in_tipiintervento.id=in_interventi.idtipointervento) AS \'Tipo\', (SELECT `id_record` FROM `zz_modules_lang` WHERE `name` = \'Interventi\') AS _link_module_, in_interventi.id AS _link_record_ FROM in_interventi LEFT JOIN `in_interventi_tecnici` ON `in_interventi_tecnici`.`idintervento` = `in_interventi`.`id` INNER JOIN `in_statiintervento` ON `in_interventi`.`idstatointervento`=`in_statiintervento`.`id` WHERE 1=1 AND in_interventi.deleted_at IS NULL AND idanagrafica = |id_parent| GROUP BY `in_interventi`.`id` HAVING 2=2 ORDER BY in_interventi.id DESC\"}]}' WHERE `zz_plugins`.`id` = (SELECT `id_record` FROM `zz_plugins_lang` WHERE `name` = 'Storico attività');
-- Allineamento vista Ddt di vendita
UPDATE `zz_modules` SET `options` = "
SELECT
|select|
FROM
`dt_ddt`
LEFT JOIN `an_anagrafiche` ON `dt_ddt`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
LEFT JOIN `dt_tipiddt` ON `dt_ddt`.`idtipoddt` = `dt_tipiddt`.`id`
LEFT JOIN `dt_causalet` ON `dt_ddt`.`idcausalet` = `dt_causalet`.`id`
LEFT JOIN `dt_causalet_lang` ON (`dt_causalet_lang`.`id_record` = `dt_causalet`.`id` AND `dt_causalet_lang`.|lang|)
LEFT JOIN `dt_spedizione` ON `dt_ddt`.`idspedizione` = `dt_spedizione`.`id`
LEFT JOIN `dt_spedizione_lang` ON (`dt_spedizione_lang`.`id_record` = `dt_spedizione`.`id` AND `dt_spedizione_lang`.|lang|)
LEFT JOIN `an_anagrafiche` `vettori` ON `dt_ddt`.`idvettore` = `vettori`.`idanagrafica`
LEFT JOIN `an_sedi` AS sedi ON `dt_ddt`.`idsede_partenza` = sedi.`id`
LEFT JOIN `an_sedi` AS `sedi_destinazione`ON `dt_ddt`.`idsede_destinazione` = `sedi_destinazione`.`id`
LEFT JOIN (SELECT `idddt`, SUM(`subtotale` - `sconto`) AS `totale_imponibile`, SUM(`subtotale` - `sconto` + `iva`) AS `totale` FROM `dt_righe_ddt` GROUP BY `idddt`) AS righe ON `dt_ddt`.`id` = `righe`.`idddt`
LEFT JOIN `dt_statiddt` ON `dt_statiddt`.`id` = `dt_ddt`.`idstatoddt`
LEFT JOIN `dt_statiddt_lang` ON (`dt_statiddt_lang`.`id_record` = `dt_statiddt`.`id` AND `dt_statiddt_lang`.|lang|)
LEFT JOIN (SELECT GROUP_CONCAT(DISTINCT 'Fattura ',`co_documenti`.`numero_esterno` SEPARATOR ', ') AS `info`, `co_righe_documenti`.`original_document_id` AS `idddt` FROM `co_documenti` INNER JOIN `co_righe_documenti` ON `co_documenti`.`id` = `co_righe_documenti`.`iddocumento` WHERE `original_document_type`='Modules\\DDT\\DDT' GROUP BY `original_document_id`) AS `fattura` ON `fattura`.`idddt` = `dt_ddt`.`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_record` FROM `zz_modules_lang` WHERE `name` = 'Ddt di vendita') AND `zz_operations`.`op` = 'send-email' GROUP BY id_record) AS `email` ON `email`.`id_record` = `dt_ddt`.`id`
WHERE
1=1 |segment(`dt_ddt`.`id_segment`)| AND `dir` = 'entrata' |date_period(`data`)|
HAVING
2=2
ORDER BY
`data` DESC,
CAST(`numero_esterno` AS UNSIGNED) DESC,
`dt_ddt`.`created_at` DESC" WHERE `zz_modules`.`id` = (SELECT `id_record` FROM `zz_modules_lang` WHERE `name` = 'Ddt di vendita');
-- Fix plugin Ddt del cliente
UPDATE `zz_plugins` SET `options` = '{ \"main_query\": [ { \"type\": \"table\", \"fields\": \"Numero, Data, Descrizione, Qtà\", \"query\": \"SELECT dt_ddt.id, IF(dt_tipiddt.dir = \'entrata\', (SELECT `id_record` FROM `zz_modules_lang` WHERE `name` = \'Ddt di vendita\'), (SELECT `id_record` FROM `zz_modules_lang` WHERE `name` = \'Ddt di acquisto\')) AS _link_module_, dt_ddt.id AS _link_record_, IF(dt_ddt.numero_esterno = \'\', dt_ddt.numero, dt_ddt.numero_esterno) AS Numero, DATE_FORMAT(dt_ddt.data, \'%d/%m/%Y\') AS Data, dt_righe_ddt.descrizione AS `Descrizione`, REPLACE(REPLACE(REPLACE(FORMAT(dt_righe_ddt.qta, 2), \',\', \'#\'), \'.\', \',\'), \'#\', \'.\') AS `Qtà` FROM dt_ddt LEFT JOIN dt_righe_ddt ON dt_ddt.id=dt_righe_ddt.idddt JOIN dt_tipiddt ON dt_ddt.idtipoddt = dt_tipiddt.id WHERE dt_ddt.idanagrafica=|id_parent| HAVING 2=2 ORDER BY dt_ddt.id DESC\"} ]}' WHERE `zz_plugins`.`id` = (SELECT `id_record` FROM `zz_plugins_lang` WHERE `name` = 'Ddt del cliente');