Miglioramento moduli minori

This commit is contained in:
Thomas Zilio 2018-09-26 10:49:38 +02:00
parent f9d393175d
commit fb3a856db2
22 changed files with 244 additions and 57 deletions

View File

@ -10,7 +10,7 @@ switch (post('op')) {
$dbo->query('UPDATE `dt_aspettobeni` SET `descrizione`='.prepare($descrizione).' WHERE `id`='.prepare($id_record));
flash()->info(tr('Salvataggio completato.'));
} else {
flash()->error(tr("E' già presente una tipologia di _TYPE_ con la stessa descrizione.", [
flash()->error(tr("E' già presente una tipologia di _TYPE_ con la stessa descrizione", [
'_TYPE_' => 'bene',
]));
}
@ -29,7 +29,7 @@ switch (post('op')) {
'_TYPE_' => 'bene',
]));
} else {
flash()->error(tr("E' già presente una tipologia di _TYPE_ con la stessa descrizione.", [
flash()->error(tr("E' già presente una tipologia di _TYPE_ con la stessa descrizione", [
'_TYPE_' => 'bene',
]));
}

View File

@ -8,10 +8,19 @@ switch (filter('op')) {
if (isset($descrizione)) {
if ($dbo->fetchNum('SELECT * FROM `dt_causalet` WHERE `descrizione`='.prepare($descrizione).' AND `id`!='.prepare($id_record)) == 0) {
$dbo->query('UPDATE `dt_causalet` SET `descrizione`='.prepare($descrizione).' WHERE `id`='.prepare($id_record));
$predefined = post('dt_causalet');
if (!empty($predefined)) {
$dbo->query('UPDATE dt_porto SET predefined = 0');
}
$dbo->update('dt_causalet', [
'descrizione' => $descrizione,
'predefined' => $predefined,
], ['id' => $id_record]);
flash()->info(tr('Salvataggio completato!'));
} else {
flash()->error(tr("E' già presente una tipologia di _TYPE_ con la stessa descrizione.", [
flash()->error(tr("E' già presente una tipologia di _TYPE_ con la stessa descrizione", [
'_TYPE_' => 'causale',
]));
}
@ -26,15 +35,16 @@ switch (filter('op')) {
if (isset($descrizione)) {
if ($dbo->fetchNum('SELECT * FROM `dt_causalet` WHERE `descrizione`='.prepare($descrizione)) == 0) {
$dbo->query('INSERT INTO `dt_causalet` (`descrizione`) VALUES ('.prepare($descrizione).')');
$dbo->insert('dt_porto', [
'dt_causalet' => $descrizione,
]);
$id_record = $dbo->lastInsertedID();
flash()->info(tr('Aggiunta nuova tipologia di _TYPE_', [
'_TYPE_' => 'causale',
]));
} else {
flash()->error(tr("E' già presente una tipologia di _TYPE_ con la stessa descrizione.", [
flash()->error(tr("E' già presente una tipologia di _TYPE_ con la stessa descrizione", [
'_TYPE_' => 'causale',
]));
}

View File

@ -13,9 +13,13 @@ include_once __DIR__.'/../../core.php';
<div class="panel-body">
<div class="row">
<div class="col-md-12">
<div class="col-md-9">
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$descrizione$" ]}
</div>
<div class="col-md-3">
{[ "type": "checkbox", "label": "<?php echo tr('Causale predefinita'); ?>", "name": "predefined", "value": "$predefined$" ]}
</div>
</div>
</div>
</div>

View File

@ -3,7 +3,7 @@
include_once __DIR__.'/../../../core.php';
//trovo id_print della stampa
$id_print = Prints::getModuleMainPrint(1)['id'];
$id_print = Prints::getModulePredefinedPrint(1)['id'];
echo '
<form action="" method="post" onsubmit="if($(this).parsley().validate()) { return stampa_calendario(); }" >
@ -82,4 +82,4 @@ $(function() {
});
});
</script>
</script>

View File

@ -4,4 +4,8 @@ include_once __DIR__.'/../../core.php';
if (isset($id_record)) {
$record = $dbo->fetchOne('SELECT *, dt_ddt.note, dt_ddt.idpagamento, dt_ddt.id AS idddt, dt_statiddt.descrizione AS `stato`, dt_tipiddt.descrizione AS `descrizione_tipodoc`, (SELECT completato FROM dt_statiddt WHERE dt_statiddt.id=dt_ddt.idstatoddt) AS flag_completato FROM ((dt_ddt LEFT OUTER JOIN dt_statiddt ON dt_ddt.idstatoddt=dt_statiddt.id) INNER JOIN an_anagrafiche ON dt_ddt.idanagrafica=an_anagrafiche.idanagrafica) INNER JOIN dt_tipiddt ON dt_ddt.idtipoddt=dt_tipiddt.id WHERE dt_ddt.id='.prepare($id_record));
$record['idporto'] = $record['idporto'] ?: $dbo->fetchOne('SELECT id FROM dt_porto WHERE predefined = 1')['id'];
$record['idcausalet'] = $record['idcausalet'] ?: $dbo->fetchOne('SELECT id FROM dt_causalet WHERE predefined = 1')['id'];
$record['idspedizione'] = $record['idspedizione'] ?: $dbo->fetchOne('SELECT id FROM dt_spedizione WHERE predefined = 1')['id'];
}

View File

@ -27,7 +27,7 @@ switch (post('op')) {
$rapportino_nome = sanitizeFilename($numero.' '.$r['data'].' '.$r['ragione_sociale'].'.pdf');
$filename = slashes($dir.'tmp/'.$rapportino_nome);
$print = Prints::getModuleMainPrint($id_module);
$print = Prints::getModulePredefinedPrint($id_module);
Prints::render($print['id'], $r['id'], $filename);
}

View File

@ -89,7 +89,7 @@ echo '
<p>'.str_replace('_NUM_', $numero, $head).'.</p>';
// Selezione articoli dell'ordine da portare nel ddt
$rs = $dbo->fetchArray('SELECT *, (qta - qta_evasa) AS qta_rimanente FROM '.$table.' INNER JOIN '.$rows.' ON '.$table.'.id='.$rows.'.'.$id.' WHERE '.$table.'.id='.prepare($id_record).' HAVING qta_rimanente > 0 ORDER BY `order`');
$rs = $dbo->fetchArray('SELECT *, IFNULL((SELECT codice FROM mg_articoli WHERE id=idarticolo),"") AS codice, (qta - qta_evasa) AS qta_rimanente FROM '.$table.' INNER JOIN '.$rows.' ON '.$table.'.id='.$rows.'.'.$id.' WHERE '.$table.'.id='.prepare($id_record).' HAVING qta_rimanente > 0 ORDER BY `order`');
if (!empty($rs)) {
echo '
@ -162,7 +162,9 @@ if (!empty($rs)) {
echo '
<input type="checkbox" checked="checked" id="checked_'.$i.'" name="evadere['.$r['id'].']" value="on" onclick="ricalcola_subtotale_riga('.$i.');" />';
echo nl2br($r['descrizione']);
$descrizione = (!empty($r['codice']) ? $r['codice'].' - ' : '').$r['descrizione'];
echo '&nbsp;'.nl2br($descrizione);
echo '
</td>';

View File

@ -34,7 +34,7 @@ switch (post('op')) {
$rapportino_nome = sanitizeFilename($numero.' '.date('Y_m_d', strtotime($r['data_richiesta'])).' '.$r['ragione_sociale'].'.pdf');
$filename = slashes($dir.'tmp/'.$rapportino_nome);
$print = Prints::getModuleMainPrint($id_module);
$print = Prints::getModulePredefinedPrint($id_module);
Prints::render($print['id'], $r['id'], $filename);
}

View File

@ -14,8 +14,8 @@ class Articolo extends Article
* Crea una nuova riga collegata ad un intervento.
*
* @param Intervento $intervento
* @param Original $articolo
* @param int $id_automezzo
* @param Original $articolo
* @param int $id_automezzo
*
* @return self
*/

View File

@ -6,48 +6,49 @@ switch (filter('op')) {
case 'update':
$descrizione = filter('descrizione');
if (isset($descrizione)) {
if ($dbo->fetchNum('SELECT * FROM `dt_porto` WHERE `descrizione`='.prepare($descrizione).' AND `id`!='.prepare($id_record)) == 0) {
$dbo->query('UPDATE `dt_porto` SET `descrizione`='.prepare($descrizione).' WHERE `id`='.prepare($id_record));
flash()->info(tr('Salvataggio completato!'));
} else {
flash()->error(tr("E' già presente una tipologia di _TYPE_ con la stessa descrizione.", [
'_TYPE_' => 'porto',
]));
if ($dbo->fetchNum('SELECT * FROM `dt_porto` WHERE `descrizione`='.prepare($descrizione).' AND `id`!='.prepare($id_record)) == 0) {
$predefined = post('predefined');
if (!empty($predefined)) {
$dbo->query('UPDATE dt_porto SET predefined = 0');
}
} else {
flash()->error(tr('Ci sono stati alcuni errori durante il salvataggio.'));
}
$dbo->update('dt_porto', [
'descrizione' => $descrizione,
'predefined' => $predefined,
], ['id' => $id_record]);
flash()->info(tr('Salvataggio completato!'));
} else {
flash()->error(tr("E' già presente una tipologia di _TYPE_ con la stessa descrizione", [
'_TYPE_' => 'porto',
]));
}
break;
case 'add':
$descrizione = filter('descrizione');
if (isset($descrizione)) {
if ($dbo->fetchNum('SELECT * FROM `dt_porto` WHERE `descrizione`='.prepare($descrizione)) == 0) {
$dbo->query('INSERT INTO `dt_porto` (`descrizione`) VALUES ('.prepare($descrizione).')');
$id_record = $dbo->lastInsertedID();
if ($dbo->fetchNum('SELECT * FROM `dt_porto` WHERE `descrizione`='.prepare($descrizione)) == 0) {
$dbo->insert('dt_porto', [
'descrizione' => $descrizione,
]);
$id_record = $dbo->lastInsertedID();
flash()->info(tr('Aggiunta nuova tipologia di _TYPE_', [
'_TYPE_' => 'porto',
]));
} else {
$flash()->error(tr("E' già presente una tipologia di _TYPE_ con la stessa descrizione.", [
'_TYPE_' => 'porto',
]));
}
flash()->info(tr('Aggiunta nuova tipologia di _TYPE_', [
'_TYPE_' => 'porto',
]));
} else {
flash()->error(tr('Ci sono stati alcuni errori durante il salvataggio!'));
flash()->error(tr("E' già presente una tipologia di _TYPE_ con la stessa descrizione", [
'_TYPE_' => 'porto',
]));
}
break;
case 'delete':
$documenti = $dbo->fetchNum('SELECT id FROM dt_ddt WHERE idporto='.prepare($id_record).'
UNION SELECT id FROM co_documenti WHERE idporto='.prepare($id_record).'
UNION SELECT id FROM co_preventivi WHERE idporto='.prepare($id_record));
UNION SELECT id FROM co_documenti WHERE idporto='.prepare($id_record).'
UNION SELECT id FROM co_preventivi WHERE idporto='.prepare($id_record));
if (isset($id_record) && empty($documenti)) {
$dbo->query('DELETE FROM `dt_porto` WHERE `id`='.prepare($id_record));

View File

@ -13,9 +13,13 @@ include_once __DIR__.'/../../core.php';
<div class="panel-body">
<div class="row">
<div class="col-md-12">
<div class="col-md-9">
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$descrizione$" ]}
</div>
<div class="col-md-3">
{[ "type": "checkbox", "label": "<?php echo tr('Porto predefinito'); ?>", "name": "predefined", "value": "$predefined$" ]}
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,63 @@
<?php
include_once __DIR__.'/../../core.php';
switch (filter('op')) {
case 'update':
$descrizione = filter('descrizione');
if ($dbo->fetchNum('SELECT * FROM `dt_spedizione` WHERE `descrizione`='.prepare($descrizione).' AND `id`!='.prepare($id_record)) == 0) {
$predefined = post('predefined');
if (!empty($predefined)) {
$dbo->query('UPDATE dt_spedizione SET predefined = 0');
}
$dbo->update('dt_spedizione', [
'descrizione' => $descrizione,
'predefined' => $predefined,
], ['id' => $id_record]);
flash()->info(tr('Salvataggio completato!'));
} else {
flash()->error(tr("E' già presente una tipologia di _TYPE_ con la stessa descrizione", [
'_TYPE_' => 'spedizione',
]));
}
break;
case 'add':
$descrizione = filter('descrizione');
if ($dbo->fetchNum('SELECT * FROM `dt_spedizione` WHERE `descrizione`='.prepare($descrizione)) == 0) {
$dbo->insert('dt_spedizione', [
'descrizione' => $descrizione,
]);
$id_record = $dbo->lastInsertedID();
flash()->info(tr('Aggiunta nuova tipologia di _TYPE_', [
'_TYPE_' => 'spedizione',
]));
} else {
flash()->error(tr("E' già presente una tipologia di _TYPE_ con la stessa descrizione", [
'_TYPE_' => 'spedizione',
]));
}
break;
case 'delete':
$documenti = $dbo->fetchNum('SELECT id FROM dt_ddt WHERE idspedizione='.prepare($id_record).'
UNION SELECT id FROM co_documenti WHERE idspedizione='.prepare($id_record));
if (isset($id_record) && empty($documenti)) {
$dbo->query('DELETE FROM `dt_spedizione` WHERE `id`='.prepare($id_record));
flash()->info(tr('Tipologia di _TYPE_ eliminata con successo!', [
'_TYPE_' => 'spedizione',
]));
} else {
flash()->error(tr('Sono presenti dei documenti collegati a questo porto.'));
}
break;
}

View File

@ -0,0 +1,21 @@
<?php
include_once __DIR__.'/../../core.php';
?><form action="" method="post" id="add-form">
<input type="hidden" name="op" value="add">
<input type="hidden" name="backto" value="record-edit">
<div class="row">
<div class="col-md-12">
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1 ]}
</div>
</div>
<!-- PULSANTI -->
<div class="row">
<div class="col-md-12 text-right">
<button type="submit" class="btn btn-primary"><i class="fa fa-plus"></i> <?php echo tr('Aggiungi'); ?></button>
</div>
</div>
</form>

View File

@ -0,0 +1,46 @@
<?php
include_once __DIR__.'/../../core.php';
?><form action="" method="post" id="edit-form">
<input type="hidden" name="backto" value="record-edit">
<input type="hidden" name="op" value="update">
<!-- DATI -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Dati'); ?></h3>
</div>
<div class="panel-body">
<div class="row">
<div class="col-md-9">
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$descrizione$" ]}
</div>
<div class="col-md-3">
{[ "type": "checkbox", "label": "<?php echo tr('Spedizione predefinita'); ?>", "name": "predefined", "value": "$predefined$" ]}
</div>
</div>
</div>
</div>
</form>
<?php
// Collegamenti diretti (numerici)
$documenti = $dbo->fetchNum('SELECT id FROM dt_ddt WHERE idspedizione='.prepare($id_record).'
UNION SELECT id FROM co_documenti WHERE idspedizione='.prepare($id_record));
if (!empty($documenti)) {
echo '
<div class="alert alert-danger">
'.tr('Ci sono _NUM_ documenti collegati', [
'_NUM_' => count($documenti),
]).'.
</div>';
}
?>
<a class="btn btn-danger ask" data-backto="record-list">
<i class="fa fa-trash"></i> <?php echo tr('Elimina'); ?>
</a>

View File

@ -0,0 +1,7 @@
<?php
include_once __DIR__.'/../../core.php';
if (isset($id_record)) {
$record = $dbo->fetchOne('SELECT * FROM `dt_spedizione` WHERE id='.prepare($id_record));
}

View File

@ -497,7 +497,7 @@ class FatturaElettronica
$rapportino_nome = sanitizeFilename($documento['numero'].'.pdf');
$filename = slashes(DOCROOT.'/'.$dir.'/'.$rapportino_nome);
$print = Prints::getModuleMainPrint($id_module);
$print = Prints::getModulePredefinedPrint($id_module);
Prints::render($print['id'], $documento['id'], $filename);

View File

@ -103,9 +103,9 @@ class ButtonManager implements ManagerInterface
$result = '
<div class="btn-group">';
$main = array_search(1, array_column($list, 'main'));
if ($main !== false) {
$element = $list[$main];
$predefined = array_search(1, array_column($list, 'predefined'));
if ($predefined !== false) {
$element = $list[$predefined];
$result .= $this->link([
'type' => $options['type'],
@ -116,12 +116,12 @@ class ButtonManager implements ManagerInterface
'parameters' => $options['parameters'],
]);
unset($list[$main]);
unset($list[$predefined]);
}
$result .= '
<button type="button" class="btn '.$options['class'].' dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
'.($main === false ? $this->defaultText($options).' ' : '').'<span class="caret"></span>
'.($predefined === false ? $this->defaultText($options).' ' : '').'<span class="caret"></span>
<span class="sr-only">Toggle Dropdown</span>
</button>
<ul class="dropdown-menu dropdown-menu-right">';

View File

@ -96,14 +96,14 @@ class Prints
*
* @return array
*/
public static function getModuleMainPrint($module)
public static function getModulePredefinedPrint($module)
{
$prints = self::getModulePrints($module);
$main = array_search(1, array_column($prints, 'main'));
$predefined = array_search(1, array_column($prints, 'predefined'));
if ($main !== false) {
return $prints[$main];
if ($predefined !== false) {
return $prints[$predefined];
} elseif (!empty($prints)) {
return $prints[0];
}

View File

@ -52,6 +52,7 @@ abstract class Article extends Row
// Individuazione dei seriali
$list = database()->fetchArray('SELECT serial FROM mg_prodotti WHERE serial IS NOT NULL AND id_riga_'.$this->serialRowID.' = '.prepare($this->id));
return array_column($list, 'serial');
}

View File

@ -107,9 +107,7 @@ abstract class Row extends Model
$valore = ($this->subtotale - $this->sconto) * $iva['percentuale'] / 100;
$this->idiva = $iva['id'];
$this->desc_iva = $descrizione;
$this->iva = $valore;
// Compatibilità con gli interventi

View File

@ -3,7 +3,16 @@
include_once __DIR__.'/../../core.php';
// Lettura info ddt
$q = 'SELECT *, (SELECT dir FROM dt_tipiddt WHERE id=idtipoddt) AS dir, (SELECT descrizione FROM dt_tipiddt WHERE id=idtipoddt) AS tipo_doc, (SELECT descrizione FROM dt_causalet WHERE id=idcausalet) AS causalet, (SELECT descrizione FROM dt_porto WHERE id=idporto) AS porto, (SELECT descrizione FROM dt_aspettobeni WHERE id=idaspettobeni) AS aspettobeni, (SELECT descrizione FROM dt_spedizione WHERE id=idspedizione) AS spedizione, (SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica=idvettore) AS vettore FROM dt_ddt WHERE id='.prepare($id_record);
$q = 'SELECT *,
(SELECT dir FROM dt_tipiddt WHERE id=idtipoddt) AS dir,
(SELECT descrizione FROM dt_tipiddt WHERE id=idtipoddt) AS tipo_doc,
(SELECT descrizione FROM dt_causalet WHERE id=idcausalet) AS causalet,
(SELECT descrizione FROM co_pagamenti WHERE id=idpagamento) AS tipo_pagamento,
(SELECT descrizione FROM dt_porto WHERE id=idporto) AS porto,
(SELECT descrizione FROM dt_aspettobeni WHERE id=idaspettobeni) AS aspettobeni,
(SELECT descrizione FROM dt_spedizione WHERE id=idspedizione) AS spedizione,
(SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica=idvettore) AS vettore
FROM dt_ddt WHERE id='.prepare($id_record);
$records = $dbo->fetchArray($q);
$module_name = ($records[0]['dir'] == 'entrata') ? 'Ddt di vendita' : 'Ddt di acquisto';

View File

@ -485,3 +485,20 @@ UPDATE `an_anagrafiche` SET `piva` = REPLACE(`piva`, ' ', ''), `codice_fiscale`
-- Aggiunta impostazione
INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`) VALUES (NULL, 'Stampa per anteprima e firma intervento', (SELECT id FROM zz_prints WHERE main = 1 AND id_module = (SELECT id FROM zz_modules WHERE name = 'Interventi')), 'query=SELECT id, title AS descrizione FROM zz_prints WHERE id_module = (SELECT id FROM zz_modules WHERE name = ''Interventi'') AND is_record = 1', 1, 'Interventi', 3);
-- Fix nomi campi predefined
ALTER TABLE `zz_smtps` CHANGE `main` `predefined` boolean NOT NULL DEFAULT 0;
ALTER TABLE `zz_prints` CHANGE `main` `predefined` boolean NOT NULL DEFAULT 0;
ALTER TABLE `zz_emails` CHANGE `main` `predefined` boolean NOT NULL DEFAULT 0;
ALTER TABLE `dt_porto` ADD `predefined` boolean NOT NULL DEFAULT 0;
ALTER TABLE `dt_causalet` ADD `predefined` boolean NOT NULL DEFAULT 0;
ALTER TABLE `dt_spedizione` ADD `predefined` boolean NOT NULL DEFAULT 0;
-- Aggiunta tabelle per la gestione dei tipi spedizione
INSERT INTO `zz_modules` (`id`, `name`, `title`, `directory`, `options`, `options2`, `icon`, `version`, `compatibility`, `order`, `parent`, `default`, `enabled`) VALUES (NULL, 'Tipi di spedizione', 'Tipi di spedizione', 'spedizioni', 'SELECT |select| FROM `dt_spedizione` WHERE 1=1 HAVING 2=2', '', 'fa fa-angle-right', '2.4.2', '2.4.2', '1', NULL, '1', '1');
UPDATE `zz_modules` `t1` INNER JOIN `zz_modules` `t2` ON (`t1`.`name` = 'Tipi di spedizione' AND `t2`.`name` = 'Tabelle') SET `t1`.`parent` = `t2`.`id`;
INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `visible`, `default`) VALUES
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Tipi di spedizione'), 'Descrizione', 'descrizione', 2, 1, 0, 1, 1),
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Tipi di spedizione'), 'id', 'id', 1, 1, 0, 0, 1);