Merge branch 'master' of https://github.com/devcode-it/openstamanager
This commit is contained in:
commit
967b6eb9e8
|
@ -29,12 +29,13 @@ function initMaskInput(input) {
|
|||
});
|
||||
} else if ($input.hasClass('rea-mask')) {
|
||||
$input.inputmask({
|
||||
mask: "AA-999999{1,15}",
|
||||
regex: "([A-Za-z]{2})-([0-9]{20})",
|
||||
casing: "upper",
|
||||
placeholder: "",
|
||||
});
|
||||
} else if ($input.hasClass('provincia-mask')) {
|
||||
$input.inputmask({
|
||||
mask: "AA",
|
||||
regex: "[A-Za-z]{2}",
|
||||
casing: "upper",
|
||||
});
|
||||
} else if ($input.hasClass('alphanumeric-mask')) {
|
||||
|
|
|
@ -25,7 +25,7 @@ class ReaValidi extends Controllo
|
|||
{
|
||||
public function getName()
|
||||
{
|
||||
return tr('Anagrafiche con codici REA non validi');
|
||||
return tr('Anagrafiche con codici R.E.A. non validi');
|
||||
}
|
||||
|
||||
public function getType($record)
|
||||
|
@ -35,7 +35,14 @@ class ReaValidi extends Controllo
|
|||
|
||||
public function getOptions($record)
|
||||
{
|
||||
return [];
|
||||
return [
|
||||
[
|
||||
'name' => tr('Rimuovi'),
|
||||
'icon' => 'fa fa-trash',
|
||||
'color' => 'danger',
|
||||
'params' => [],
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
public function check()
|
||||
|
@ -43,7 +50,7 @@ class ReaValidi extends Controllo
|
|||
$database = database();
|
||||
|
||||
/**
|
||||
* Verifico se i rea inseriti per le anagrafiche hanno una struttura valida.
|
||||
* Verifico se i R.E.A. inseriti per le anagrafiche hanno una struttura valida.
|
||||
*/
|
||||
$anagrafiche_interessate = $database->fetchArray('SELECT
|
||||
an_anagrafiche.idanagrafica AS id,
|
||||
|
@ -54,7 +61,7 @@ class ReaValidi extends Controllo
|
|||
INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche_anagrafiche.idanagrafica = an_anagrafiche.idanagrafica
|
||||
INNER JOIN an_tipianagrafiche ON an_tipianagrafiche.idtipoanagrafica = an_tipianagrafiche_anagrafiche.idtipoanagrafica
|
||||
WHERE
|
||||
codicerea NOT REGEXP "^..-......$" AND codicerea != ""
|
||||
codicerea NOT REGEXP "([A-Za-z]{2})-([0-9]{1,20})" AND codicerea != ""
|
||||
AND
|
||||
deleted_at IS NULL
|
||||
GROUP BY an_anagrafiche.idanagrafica');
|
||||
|
@ -68,7 +75,7 @@ class ReaValidi extends Controllo
|
|||
$this->addResult([
|
||||
'id' => $anagrafica['id'],
|
||||
'nome' => \Modules::link('Anagrafiche', $anagrafica['id'], $anagrafica['ragione_sociale']),
|
||||
'descrizione' => tr('Il codice REA "_REA_" non è valido', [
|
||||
'descrizione' => tr('Il codice REA "_REA_" non è valido.', [
|
||||
'_REA_' => $anagrafica['codicerea'],
|
||||
]),
|
||||
]);
|
||||
|
@ -78,6 +85,10 @@ class ReaValidi extends Controllo
|
|||
|
||||
public function execute($record, $params = [])
|
||||
{
|
||||
return false;
|
||||
$anagrafica = Anagrafica::find($record['id']);
|
||||
$anagrafica->codicerea = null;
|
||||
$anagrafica->save();
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -66,7 +66,7 @@ switch (post('op')) {
|
|||
$anagrafica->idsede_fatturazione = post('idsede_fatturazione');
|
||||
$anagrafica->note = post('note');
|
||||
$anagrafica->codiceri = post('codiceri');
|
||||
$anagrafica->codicerea = post('codicerea');
|
||||
$anagrafica->codicerea = strtoupper(post('codicerea'));
|
||||
$anagrafica->appoggiobancario = post('appoggiobancario');
|
||||
$anagrafica->filiale = post('filiale');
|
||||
$anagrafica->codiceiban = post('codiceiban');
|
||||
|
@ -89,8 +89,6 @@ switch (post('op')) {
|
|||
$anagrafica->idrelazione = post('idrelazione');
|
||||
$anagrafica->sitoweb = post('sitoweb');
|
||||
$anagrafica->iscrizione_tribunale = post('iscrizione_tribunale');
|
||||
$anagrafica->cciaa = post('cciaa');
|
||||
$anagrafica->cciaa_citta = post('cciaa_citta');
|
||||
$anagrafica->n_alboartigiani = post('n_alboartigiani');
|
||||
$anagrafica->foro_competenza = post('foro_competenza');
|
||||
$anagrafica->riferimento_amministrazione = post('riferimento_amministrazione');
|
||||
|
|
|
@ -43,7 +43,6 @@ $fields = [
|
|||
'Note' => 'note',
|
||||
'Codice REA' => 'codicerea',
|
||||
'Marche' => 'marche',
|
||||
'CCIAA' => 'cciaa',
|
||||
'Numero di iscrizione albo artigiani' => 'n_alboartigiani',
|
||||
];
|
||||
|
||||
|
|
|
@ -192,7 +192,7 @@ if (sizeof($problemi_anagrafica) > 0) {
|
|||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
{[ "type": "text", "label": "<?php echo tr('Provincia'); ?>", "name": "provincia", "maxlength": 2, "class": "text-center provincia-mask text-uppercase", "value": "$provincia$", "extra": "onkeyup=\"this.value = this.value.toUpperCase();\"" ]}
|
||||
{[ "type": "text", "label": "<?php echo tr('Provincia'); ?>", "name": "provincia", "class": "text-center provincia-mask text-uppercase", "value": "$provincia$", "extra": "onkeyup=\"this.value = this.value.toUpperCase();\"" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
|
@ -642,7 +642,7 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
|
|||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "text", "label": "<?php echo tr('Codice R.E.A.').' <small>('.tr('provincia-C.C.I.A.A.').')</small>'; ?>", "name": "codicerea", "value": "$codicerea$", "class": "rea-mask", "help": "<?php echo tr('Formato: _PATTERN_', [
|
||||
{[ "type": "text", "label": "<?php echo tr('Codice R.E.A.').' <small>('.tr('provincia-C.C.I.A.A.').')</small>'; ?>", "name": "codicerea", "value": "$codicerea$", "class": "rea-mask text-uppercase", "help": "<?php echo tr('Esempio: _PATTERN_', [
|
||||
'_PATTERN_' => 'RM-123456',
|
||||
]); ?>" ]}
|
||||
</div>
|
||||
|
|
|
@ -104,15 +104,37 @@ foreach ($results as $result) {
|
|||
$giorno_pagamento = ($result['giorno'] < -1) ? -$result['giorno'] - 1 : $result['giorno'];
|
||||
}
|
||||
|
||||
// Collegamenti diretti
|
||||
$elementi = $dbo->fetchArray('SELECT `co_documenti`.`id`, `co_documenti`.`data`, `co_documenti`.`numero`, `co_documenti`.`numero_esterno`, `co_tipidocumento`.`descrizione` AS tipo_documento, `co_tipidocumento`.`dir`, NULL AS `deleted_at` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`idpagamento` = '.prepare($id_record).'
|
||||
|
||||
UNION
|
||||
SELECT `or_ordini`.`id`, `or_ordini`.`data`, `or_ordini`.`numero`, `or_ordini`.`numero_esterno`, `or_tipiordine`.`descrizione` AS tipo_documento, `or_tipiordine`.`dir`, NULL AS `deleted_at` FROM `or_ordini` JOIN `or_tipiordine` ON `or_tipiordine`.`id` = `or_ordini`.`idtipoordine` WHERE `or_ordini`.`idpagamento` = '.prepare($id_record).'
|
||||
|
||||
UNION
|
||||
SELECT `dt_ddt`.`id`, `dt_ddt`.`data`, `dt_ddt`.`numero`, `dt_ddt`.`numero_esterno`, `dt_tipiddt`.`descrizione` AS tipo_documento, `dt_tipiddt`.`dir`, NULL AS `deleted_at` FROM `dt_ddt` JOIN `dt_tipiddt` ON `dt_tipiddt`.`id` = `dt_ddt`.`idtipoddt` WHERE `dt_ddt`.`idpagamento` = '.prepare($id_record).'
|
||||
|
||||
UNION
|
||||
SELECT `co_contratti`.`id`, `co_contratti`.`data_bozza`, `co_contratti`.`numero`, 0 AS numero_esterno , "Contratto" AS tipo_documento, 0 AS dir, NULL AS `deleted_at` FROM `co_contratti` WHERE `co_contratti`.`idpagamento` = '.prepare($id_record).'
|
||||
|
||||
UNION
|
||||
SELECT `co_preventivi`.`id`, `co_preventivi`.`data_bozza`, `co_preventivi`.`numero`, 0 AS numero_esterno , "Preventivo" AS tipo_documento, 0 AS dir, NULL AS `deleted_at` FROM `co_preventivi` WHERE `co_preventivi`.`idpagamento` = '.prepare($id_record).'
|
||||
|
||||
ORDER BY `data`');
|
||||
|
||||
|
||||
echo '
|
||||
<div class="box box-success">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">'.tr('Rata _NUMBER_', [
|
||||
'_NUMBER_' => $numero_rata,
|
||||
]).'</h3>
|
||||
<button type="button" class="btn btn-danger pull-right" onclick="rimuoviRata('.$result['id'].')">
|
||||
<i class="fa fa-trash"></i> '.tr('Elimina').'
|
||||
</button>
|
||||
]).'</h3>';
|
||||
if (empty($elementi)) {
|
||||
echo '
|
||||
<button type="button" class="btn btn-danger pull-right" onclick="rimuoviRata(' . $result['id'] . ')">
|
||||
<i class="fa fa-trash"></i> ' . tr('Elimina') . '
|
||||
</button>';
|
||||
}
|
||||
echo '
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<input type="hidden" value="'.$result['id'].'" name="id['.$numero_rata.']">
|
||||
|
@ -171,9 +193,7 @@ foreach ($results as $result) {
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<a class="btn btn-danger ask" data-backto="record-list">
|
||||
<i class="fa fa-trash"></i> <?php echo tr('Elimina'); ?>
|
||||
</a>
|
||||
|
||||
<?php
|
||||
echo '
|
||||
<form class="hide" id="template">
|
||||
|
@ -207,6 +227,71 @@ echo '
|
|||
</div>
|
||||
</form>';
|
||||
|
||||
|
||||
|
||||
|
||||
if (!empty($elementi)) {
|
||||
echo '
|
||||
<div class="box box-warning collapsable collapsed-box">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title"><i class="fa fa-warning"></i> '.tr('Documenti collegati: _NUM_', [
|
||||
'_NUM_' => count($elementi),
|
||||
]).'</h3>
|
||||
<div class="box-tools pull-right">
|
||||
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-plus"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<ul>';
|
||||
|
||||
foreach ($elementi as $elemento) {
|
||||
$descrizione = tr('_DOC_ _NUM_ del _DATE_ _DELETED_AT_', [
|
||||
'_DOC_' => $elemento['tipo_documento'],
|
||||
'_NUM_' => !empty($elemento['numero_esterno']) ? $elemento['numero_esterno'] : $elemento['numero'],
|
||||
'_DATE_' => Translator::dateToLocale($elemento['data']),
|
||||
'_DELETED_AT_' => (!empty($elemento['deleted_at']) ? tr('Eliminato il:').' '.Translator::dateToLocale($elemento['deleted_at']) : ''),
|
||||
]);
|
||||
|
||||
//se non è un preventivo è un ddt o una fattura
|
||||
//se non è un ddt è una fattura.
|
||||
if (in_array($elemento['tipo_documento'], ['Preventivo'])) {
|
||||
$modulo = 'Preventivi';
|
||||
} elseif (in_array($elemento['tipo_documento'], ['Contratto'])) {
|
||||
$modulo = 'Contratti';
|
||||
} elseif (in_array($elemento['tipo_documento'], ['Ordine cliente', 'Ordine fornitore'])) {
|
||||
$modulo = ($elemento['dir'] == 'entrata') ? 'Ordini cliente' : 'Ordini fornitore';
|
||||
} elseif (in_array($elemento['tipo_documento'], ['Ddt in uscita', 'Ddt in entrata'])) {
|
||||
$modulo = ($elemento['dir'] == 'entrata') ? 'Ddt di vendita' : 'Ddt di acquisto';
|
||||
} else {
|
||||
$modulo = ($elemento['dir'] == 'entrata') ? 'Fatture di vendita' : 'Fatture di acquisto';
|
||||
}
|
||||
|
||||
$id = $elemento['id'];
|
||||
|
||||
echo '
|
||||
<li>'.Modules::link($modulo, $id, $descrizione).'</li>';
|
||||
}
|
||||
|
||||
echo '
|
||||
</ul>
|
||||
</div>
|
||||
</div>';
|
||||
}
|
||||
|
||||
if (!empty($elementi)) {
|
||||
echo '
|
||||
<div class="alert alert-error">
|
||||
' . tr('Eliminando questo documento si potrebbero verificare problemi nelle altre sezioni del gestionale') . '.
|
||||
</div>
|
||||
<a class="btn btn-danger ask disabled" data-backto="record-list">
|
||||
<i class="fa fa-trash"></i> '.tr('Elimina').'
|
||||
</a>';
|
||||
} else {
|
||||
echo '
|
||||
<a class="btn btn-danger ask" data-backto="record-list">
|
||||
<i class="fa fa-trash"></i> '.tr('Elimina').'
|
||||
</a>';
|
||||
}
|
||||
?>
|
||||
|
||||
<script>
|
||||
|
|
|
@ -42,29 +42,22 @@ $query = Query::getQuery($structure, $where, 0, []);
|
|||
|
||||
$query = Modules::replaceAdditionals($id_module, $query);
|
||||
|
||||
// Modifiche alla query principale
|
||||
$query = preg_replace('/FROM `mg_articoli`/', ' FROM mg_articoli LEFT JOIN (SELECT idarticolo, SUM(qta) AS qta_totale FROM mg_movimenti WHERE data <='.prepare($period_end).' GROUP BY idarticolo) movimenti ON movimenti.idarticolo=mg_articoli.id ', $query);
|
||||
|
||||
$query = preg_replace('/^SELECT /', 'SELECT mg_articoli.prezzo_vendita,', $query);
|
||||
$query = preg_replace('/^SELECT /', 'SELECT mg_articoli.um,', $query);
|
||||
$query = preg_replace('/^SELECT /', 'SELECT movimenti.qta_totale,', $query);
|
||||
|
||||
if (post('acquisto') == 'standard') {
|
||||
$query = preg_replace('/^SELECT /', 'SELECT mg_articoli.prezzo_acquisto AS acquisto,', $query);
|
||||
$query = preg_replace('/^SELECT/', 'SELECT mg_articoli.prezzo_acquisto AS acquisto, ', $query);
|
||||
$text = "al prezzo presente nella scheda articolo";
|
||||
} elseif(post('acquisto') == 'first') {
|
||||
$query = preg_replace('/^SELECT /', 'SELECT (SELECT (prezzo_unitario-sconto_unitario) AS acquisto FROM co_righe_documenti LEFT JOIN co_documenti ON co_righe_documenti.iddocumento=co_documenti.id WHERE co_documenti.idtipodocumento IN(SELECT id FROM co_tipidocumento WHERE dir="uscita") AND idarticolo=mg_articoli.id ORDER BY co_righe_documenti.id ASC LIMIT 0,1) AS acquisto,', $query);
|
||||
$query = preg_replace('/^SELECT/', 'SELECT (SELECT (prezzo_unitario-sconto_unitario) AS acquisto FROM co_righe_documenti LEFT JOIN co_documenti ON co_righe_documenti.iddocumento=co_documenti.id WHERE co_documenti.idtipodocumento IN(SELECT id FROM co_tipidocumento WHERE dir="uscita") AND idarticolo=mg_articoli.id ORDER BY co_righe_documenti.id ASC LIMIT 0,1) AS acquisto, ', $query);
|
||||
$text = "al primo articolo acquistato";
|
||||
} elseif(post('acquisto') == 'last') {
|
||||
$query = preg_replace('/^SELECT /', 'SELECT (SELECT (prezzo_unitario-sconto_unitario) AS acquisto FROM co_righe_documenti LEFT JOIN co_documenti ON co_righe_documenti.iddocumento=co_documenti.id WHERE co_documenti.idtipodocumento IN(SELECT id FROM co_tipidocumento WHERE dir="uscita") AND idarticolo=mg_articoli.id ORDER BY co_righe_documenti.id DESC LIMIT 0,1) AS acquisto,', $query);
|
||||
$query = preg_replace('/^SELECT/', 'SELECT (SELECT (prezzo_unitario-sconto_unitario) AS acquisto FROM co_righe_documenti LEFT JOIN co_documenti ON co_righe_documenti.iddocumento=co_documenti.id WHERE co_documenti.idtipodocumento IN(SELECT id FROM co_tipidocumento WHERE dir="uscita") AND idarticolo=mg_articoli.id ORDER BY co_righe_documenti.id DESC LIMIT 0,1) AS acquisto, ', $query);
|
||||
$text = "all'ultimo articolo acquistato";
|
||||
} else {
|
||||
$query = preg_replace('/^SELECT /', 'SELECT (SELECT (SUM((prezzo_unitario-sconto_unitario)*qta)/SUM(qta)) AS acquisto FROM co_righe_documenti LEFT JOIN co_documenti ON co_righe_documenti.iddocumento=co_documenti.id WHERE co_documenti.idtipodocumento IN(SELECT id FROM co_tipidocumento WHERE dir="uscita") AND idarticolo=mg_articoli.id) AS acquisto,', $query);
|
||||
$query = preg_replace('/^SELECT/', 'SELECT (SELECT (SUM((prezzo_unitario-sconto_unitario)*qta)/SUM(qta)) AS acquisto FROM co_righe_documenti LEFT JOIN co_documenti ON co_righe_documenti.iddocumento=co_documenti.id WHERE co_documenti.idtipodocumento IN(SELECT id FROM co_tipidocumento WHERE dir="uscita") AND idarticolo=mg_articoli.id) AS acquisto, ', $query);
|
||||
$text = "alla media ponderata dell'articolo";
|
||||
}
|
||||
|
||||
if (post('tipo') == 'nozero') {
|
||||
$query = str_replace('2=2', '2=2 AND movimenti.qta_totale > 0', $query);
|
||||
$query = str_replace('2=2', '2=2 AND qta > 0', $query);
|
||||
}
|
||||
|
||||
$data = Query::executeAndCount($query);
|
||||
|
@ -98,17 +91,18 @@ echo '
|
|||
|
||||
$totale_qta = 0;
|
||||
$totali = [];
|
||||
|
||||
foreach ($data['results'] as $r) {
|
||||
$valore_magazzino = $r['acquisto'] * $r['qta_totale'];
|
||||
$valore_magazzino = $r['Prezzo di acquisto'] * $r['Q.tà'];
|
||||
|
||||
echo '
|
||||
<tr>
|
||||
<td>'.$r['Codice'].'</td>
|
||||
<td>'.$r['Categoria'].'</td>
|
||||
<td>'.$r['Descrizione'].'</td>
|
||||
<td class="text-right">'.moneyFormat($r['prezzo_vendita']).'</td>
|
||||
<td class="text-right">'.Translator::numberToLocale($r['qta_totale']).' '.$r['um'].'</td>
|
||||
<td class="text-right">'.moneyFormat($r['acquisto']).'</td>
|
||||
<td class="text-right">'.moneyFormat($r['Prezzo di vendita']).'</td>
|
||||
<td class="text-right">'.Translator::numberToLocale($r['Q.tà disponibile']).' '.$r['um'].'</td>
|
||||
<td class="text-right">'.moneyFormat($r['Prezzo di acquisto']).'</td>
|
||||
<td class="text-right">'.moneyFormat($valore_magazzino).'</td>
|
||||
</tr>';
|
||||
|
||||
|
|
|
@ -0,0 +1,62 @@
|
|||
-- Fix query vista Contratti
|
||||
UPDATE `zz_modules` SET `options` = "SELECT
|
||||
|select|
|
||||
FROM
|
||||
`co_contratti`
|
||||
LEFT JOIN `an_anagrafiche` ON `co_contratti`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
|
||||
LEFT JOIN `co_staticontratti` ON `co_contratti`.`idstato` = `co_staticontratti`.`id`
|
||||
LEFT JOIN ( SELECT `idcontratto`, SUM(`subtotale` - `sconto`) AS `totale_imponibile`, SUM(`subtotale` - `sconto` + `iva`) AS `totale` FROM `co_righe_contratti` GROUP BY `idcontratto`) AS righe ON `co_contratti`.`id` = `righe`.`idcontratto`
|
||||
LEFT JOIN ( SELECT GROUP_CONCAT(CONCAT(matricola, IF(nome != '', CONCAT(' - ', nome), '')) SEPARATOR '<br>') AS descrizione, my_impianti_contratti.idcontratto FROM my_impianti INNER JOIN my_impianti_contratti ON my_impianti.id = my_impianti_contratti.idimpianto GROUP BY my_impianti_contratti.idcontratto) AS impianti ON impianti.idcontratto = co_contratti.id
|
||||
LEFT JOIN( SELECT um, SUM(qta) AS somma, idcontratto FROM co_righe_contratti GROUP BY um, idcontratto) AS orecontratti ON orecontratti.um = 'ore' AND orecontratti.idcontratto = co_contratti.id
|
||||
LEFT JOIN( SELECT in_interventi.id_contratto, SUM(ore) AS sommatecnici FROM in_interventi_tecnici INNER JOIN in_interventi ON in_interventi_tecnici.idintervento = in_interventi.id GROUP BY in_interventi.id_contratto) AS tecnici ON tecnici.id_contratto = co_contratti.id
|
||||
WHERE
|
||||
1=1
|
||||
|date_period(custom,'|period_start|' >= `data_bozza` AND '|period_start|' <= `data_conclusione`,'|period_end|' >= `data_bozza` AND '|period_end|' <= `data_conclusione`,`data_bozza` >= '|period_start|' AND `data_bozza` <= '|period_end|',`data_conclusione` >= '|period_start|' AND `data_conclusione` <= '|period_end|',`data_bozza` >= '|period_start|' AND `data_conclusione` = '0000-00-00')|
|
||||
HAVING
|
||||
2=2" WHERE `name` = 'Contratti';
|
||||
|
||||
|
||||
-- Fix query vista Fatture di vendita
|
||||
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 (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 `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 `zz_operations`.`id_email`, `zz_operations`.`id_record` FROM `zz_operations` INNER JOIN `em_emails` ON `zz_operations`.`id_email` = `em_emails`.`id` INNER JOIN `em_templates` ON `em_emails`.`id_template` = `em_templates`.`id` INNER JOIN `zz_modules` ON `zz_operations`.`id_module` = `zz_modules`.`id` WHERE `zz_modules`.`name` = 'Fatture di vendita' AND `zz_operations`.`op` = 'send-email' GROUP BY `zz_operations`.`id_record`) AS `email` ON `email`.`id_record` = `co_documenti`.`id`
|
||||
LEFT JOIN `co_pagamenti` ON `co_documenti`.`idpagamento` = `co_pagamenti`.`id`
|
||||
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( `co_documenti`.`data` BETWEEN '2022-01-01' AND '2022-12-31 23:59:59') AND `numero_esterno` != '' GROUP BY `id_segment`, `numero_esterno`, `idtipodocumento`, `data` HAVING COUNT(`numero_esterno`) > 1) dup ON `co_documenti`.`numero_esterno` = `dup`.`numero_esterno` AND `dup`.`id_segment` = `co_documenti`.`id_segment` AND `dup`.`idtipodocumento` = `co_documenti`.`idtipodocumento` AND `dup`.`data` = `co_documenti`.`data`
|
||||
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';
|
||||
|
||||
-- Fix query viste Utenti e permessi
|
||||
UPDATE `zz_modules` SET `options` = "SELECT
|
||||
|select|
|
||||
FROM
|
||||
`zz_groups`
|
||||
LEFT JOIN (SELECT `zz_users`.`idgruppo`, COUNT(`id`) AS num FROM `zz_users` GROUP BY `id`) AS utenti ON `zz_groups`.`id`=`utenti`.`idgruppo`
|
||||
WHERE
|
||||
1=1
|
||||
HAVING
|
||||
2=2
|
||||
ORDER BY
|
||||
`id`,
|
||||
`nome` ASC" WHERE `name` = 'Utenti e permessi';
|
||||
|
||||
|
||||
-- Aumento dimensione massima codicerea
|
||||
ALTER TABLE `an_anagrafiche` CHANGE `codicerea` `codicerea` VARCHAR(23) DEFAULT NULL;
|
||||
|
||||
-- Pulizia campi inutilizzati
|
||||
ALTER TABLE `an_anagrafiche` DROP `cciaa`;
|
||||
ALTER TABLE `an_anagrafiche` DROP `cciaa_citta`;
|
Loading…
Reference in New Issue