diff --git a/assets/src/css/style.css b/assets/src/css/style.css index 320d0fabc..b2b7f15c5 100644 --- a/assets/src/css/style.css +++ b/assets/src/css/style.css @@ -583,9 +583,6 @@ input.small-width { .callout a{ text-decoration: none; } -.box{ - border-top:0px; -} /*fix per tabs editor */ .nav-tabs-custom > .nav-tabs > li{ border-top: 3px solid #ddd; diff --git a/modules/anagrafiche/actions.php b/modules/anagrafiche/actions.php index a7e807565..ac299bb49 100644 --- a/modules/anagrafiche/actions.php +++ b/modules/anagrafiche/actions.php @@ -33,6 +33,7 @@ switch (post('op')) { 'cellulare' => $post['cellulare'], 'fax' => $post['fax'], 'email' => $post['email'], + 'pec' => $post['pec'], 'idsede_fatturazione' => $post['idsede_fatturazione'], 'note' => $post['note'], 'codiceri' => $post['codiceri'], @@ -174,6 +175,16 @@ switch (post('op')) { $dbo->insert('an_anagrafiche', [ 'ragione_sociale' => $ragione_sociale, 'codice' => $codice, + 'piva' => post('piva'), + 'codice_fiscale' => post('codice_fiscale'), + 'indirizzo' => post('indirizzo'), + 'citta' => post('citta'), + 'cap' => post('cap'), + 'provincia' => post('provincia'), + 'telefono' => post('telefono'), + 'cellulare' => post('cellulare'), + 'email' => post('email'), + 'idrelazione' => post('idrelazione'), 'idagente' => $idagente, ]); diff --git a/modules/anagrafiche/add.php b/modules/anagrafiche/add.php index 51eebfa09..2e40ad80a 100644 --- a/modules/anagrafiche/add.php +++ b/modules/anagrafiche/add.php @@ -22,10 +22,75 @@ echo '
{[ "type": "select", "label": "'.tr('Tipo di anagrafica').'", "name": "idtipoanagrafica[]", "multiple": "1", "required": 1, "values": "query=SELECT idtipoanagrafica AS id, descrizione FROM an_tipianagrafiche WHERE idtipoanagrafica NOT IN (SELECT DISTINCT(x.idtipoanagrafica) FROM an_tipianagrafiche_anagrafiche x INNER JOIN an_tipianagrafiche t ON x.idtipoanagrafica = t.idtipoanagrafica INNER JOIN an_anagrafiche ON an_anagrafiche.idanagrafica = x.idanagrafica WHERE t.descrizione = \'Azienda\' AND deleted = 0) ORDER BY descrizione", "value": "'.$idtipoanagrafica.'" ]}
- + '; - -
+ + +echo + '
+
+

'.tr('Dati anagrafici').'

+
+ +
+
+
+
+
+ {[ "type": "text", "label": "'.tr('Partita IVA').'", "maxlength": 13, "name": "piva", "class": "text-center alphanumeric-mask", "value": "" ]} +
+ +
+ {[ "type": "text", "label": "'.tr('Codice fiscale').'", "maxlength": 16, "name": "codice_fiscale", "class": "text-center alphanumeric-mask", "value": "" ]} +
+ +
+ {[ "type": "select", "label": "'.tr('Relazione').'", "name": "idrelazione", "values": "query=SELECT id, descrizione, colore AS _bgcolor_ FROM an_relazioni ORDER BY descrizione", "value": "" ]} +
+
+ +
+
+ {[ "type": "text", "label": "'.tr('Indirizzo').'", "name": "indirizzo", "value": "" ]} +
+ +
+ {[ "type": "text", "label": "'.tr('C.A.P.').'", "name": "cap", "maxlength": 5, "class": "text-center", "value": "" ]} +
+ +
+ {[ "type": "text", "label": "'.tr('Città').'", "name": "citta", "class": "text-center", "value": "" ]} +
+ +
+ {[ "type": "text", "label": "'.tr('Provincia').'", "name": "provincia", "maxlength": 2, "class": "text-center", "value": "" ]} +
+
+ +
+
+ {[ "type": "text", "label": "'.tr('Telefono').'", "name": "telefono", "class": "text-center", "value": "", "icon-before": "" ]} +
+
+ {[ "type": "text", "label": "'.tr('Cellulare').'", "name": "cellulare", "class": "text-center", "value": "", "icon-before": "" ]} +
+ +
+ {[ "type": "text", "label": "'.tr('Email').'", "name": "email", "class": "email-mask", "placeholder":"casella@dominio.ext", "value": "", "icon-before": "" ]} +
+
+ + +
+
'; + + + + +echo + '
diff --git a/modules/anagrafiche/edit.php b/modules/anagrafiche/edit.php index 8bbedcb94..7a3c34684 100644 --- a/modules/anagrafiche/edit.php +++ b/modules/anagrafiche/edit.php @@ -74,17 +74,21 @@ if (!$cliente) {
-
+
{[ "type": "text", "label": "", "name": "indirizzo", "value": "$indirizzo$" ]}
-
+
{[ "type": "text", "label": "", "name": "indirizzo2", "value": "$indirizzo2$" ]}
+ +
+ {[ "type": "select", "label": "", "name": "idzona", "values": "query=SELECT id, CONCAT_WS( ' - ', nome, descrizione) AS descrizione FROM an_zone ORDER BY descrizione ASC", "value": "$idzona$", "placeholder": "", "icon-after": "add|" ]} +
-
+
{[ "type": "select", "label": "", "name": "id_nazione", "values": "query=SELECT id AS id, nome AS descrizione FROM an_nazioni ORDER BY nome ASC", "value": "$id_nazione$" ]}
@@ -92,7 +96,7 @@ if (!$cliente) { {[ "type": "text", "label": "", "name": "cap", "maxlength": 5, "class": "text-center", "value": "$cap$" ]}
-
+
{[ "type": "text", "label": "", "name": "citta", "class": "text-center", "value": "$citta$" ]}
@@ -136,12 +140,14 @@ if (!$cliente) {
- {[ "type": "text", "label": "", "name": "sitoweb", "placeholder":"www.dominio.ext", "value": "$sitoweb$", "icon-before": "" ]} + {[ "type": "text", "label": "", "name": "pec", "class": "email-mask", "placeholder":"pec@dominio.ext", "value": "$pec$", "icon-before": "" ]}
- {[ "type": "select", "label": "", "name": "idzona", "values": "query=SELECT id, CONCAT_WS( ' - ', nome, descrizione) AS descrizione FROM an_zone ORDER BY descrizione ASC", "value": "$idzona$", "placeholder": "", "icon-after": "add|" ]} + {[ "type": "text", "label": "", "name": "sitoweb", "placeholder":"www.dominio.ext", "value": "$sitoweb$", "icon-before": "" ]}
+ +
diff --git a/modules/dashboard/edit.php b/modules/dashboard/edit.php index c1412c94a..b818e1b67 100644 --- a/modules/dashboard/edit.php +++ b/modules/dashboard/edit.php @@ -687,6 +687,7 @@ if (get_var('Utilizzare i tooltip sul calendario') == '1') { + $('#calendar').fullCalendar('option', 'contentHeight', 'auto'); }, events: { url: globals.rootdir + "/modules/dashboard/ajaxreq.php?op=get_current_month", diff --git a/modules/fatture/actions.php b/modules/fatture/actions.php index e82611ca4..de7b5aeeb 100644 --- a/modules/fatture/actions.php +++ b/modules/fatture/actions.php @@ -232,6 +232,7 @@ switch (post('op')) { $dbo->query('DELETE FROM co_righe_documenti WHERE iddocumento='.prepare($id_record)); $dbo->query('DELETE FROM co_scadenziario WHERE iddocumento='.prepare($id_record)); $dbo->query('DELETE FROM mg_movimenti WHERE iddocumento='.prepare($id_record)); + $dbo->query('DELETE FROM co_movimenti WHERE iddocumento='.prepare($id_record)); // Azzeramento collegamento della rata contrattuale alla pianificazione $dbo->query('UPDATE co_ordiniservizio_pianificazionefatture SET iddocumento=0 WHERE iddocumento='.prepare($id_record)); diff --git a/modules/interventi/actions.php b/modules/interventi/actions.php index 575e064f7..e65b9622c 100644 --- a/modules/interventi/actions.php +++ b/modules/interventi/actions.php @@ -196,26 +196,6 @@ switch (post('op')) { break; case 'add': - /* - $codice = post('codice'); - - // Controlli sul codice - $count = -1; - do { - $new_codice = ($count < 0) ? $codice : Util\Generator::generate(get_var('Formato codice intervento'), $codice); - $rs = $dbo->fetchArray('SELECT codice FROM in_interventi WHERE codice='.prepare($new_codice)); - ++$count; - } while (!empty($rs) || empty($new_codice)); - - if ($count > 0) { - $_SESSION['warnings'][] = tr('Numero intervento _NUM_ saltato perchè già esistente!', [ - '_NUM_' => "'".$codice."'" - ]); - $_SESSION['warnings'][] = tr('Nuovo numero intervento calcolato _NUM_', [ - '_NUM_' => "'".$new_codice."'" - ]); - } - */ $formato = get_var('Formato codice intervento'); $template = str_replace('#', '%', $formato); @@ -279,10 +259,6 @@ switch (post('op')) { if (!empty($idcontratto_riga)) { $dbo->update('co_righe_contratti', $array, ['idcontratto' => $idcontratto, 'id' => $idcontratto_riga]); } - // Altrimenti inserisco una nuova pianificazione e collego l'intervento - else { - $dbo->insert('co_righe_contratti', array_merge(['idcontratto' => $idcontratto], $array)); - } } if (!empty($post['idordineservizio'])) { diff --git a/modules/partitario/edit.php b/modules/partitario/edit.php index 6ef8ce081..7fbcd2cd4 100644 --- a/modules/partitario/edit.php +++ b/modules/partitario/edit.php @@ -264,7 +264,7 @@ for ($x = 0; $x < $n1; ++$x) { echo ''; } else { echo "

RICAVI: ".Translator::numberToLocale(sum($totale_ricavi))." €

\n"; - echo "

COSTI: ".Translator::numberToLocale(sum(abs($totale_costi)))." €

\n"; + echo "

COSTI: ".Translator::numberToLocale(abs(sum($totale_costi)))." €

\n"; echo "

UTILE/PERDITA: ".Translator::numberToLocale(sum($totale_ricavi) - sum(abs($totale_costi)))." €

\n"; } } diff --git a/modules/primanota/actions.php b/modules/primanota/actions.php index 5fda2c3f7..f76fbf2d0 100644 --- a/modules/primanota/actions.php +++ b/modules/primanota/actions.php @@ -61,7 +61,7 @@ switch (post('op')) { $rs = $dbo->fetchArray($query); // Aggiorno lo stato della fattura - if ($rs[0]['tot_pagato'] == $rs[0]['tot_da_pagare']) { + if (abs($rs[0]['tot_pagato']) == abs($rs[0]['tot_da_pagare'])) { $dbo->query("UPDATE co_documenti SET idstatodocumento=(SELECT id FROM co_statidocumento WHERE descrizione='Pagato') WHERE id=".prepare($iddocumento)); } else { $dbo->query("UPDATE co_documenti SET idstatodocumento=(SELECT id FROM co_statidocumento WHERE descrizione='Parzialmente pagato') WHERE id=".prepare($iddocumento)); diff --git a/modules/primanota/add.php b/modules/primanota/add.php index cfe42da21..5f2adf466 100644 --- a/modules/primanota/add.php +++ b/modules/primanota/add.php @@ -33,7 +33,7 @@ include_once __DIR__.'/../../core.php'; $field = 'idconto_'.($dir == 'entrata' ? 'vendite' : 'acquisti'); $idconto_aziendale = $dbo->fetchArray('SELECT '.$field.' FROM co_pagamenti WHERE id = (SELECT idpagamento FROM co_documenti WHERE id='.prepare($iddocumento).') GROUP BY descrizione')[0][$field]; - // Lettura conto cassa di default + // Lettura conto di default $idconto_aziendale = !empty($idconto_aziendale) ? $idconto_aziendale : get_var('Conto aziendale predefinito'); // Generazione causale (incasso fattura) @@ -139,7 +139,9 @@ include_once __DIR__.'/../../core.php'; '; for ($i = 0; $i < 10; ++$i) { - // Conto + + ($i<=1) ? $required = 1 : $required = 0; + // Conto echo ' @@ -149,7 +151,7 @@ include_once __DIR__.'/../../core.php'; } elseif ($i == 1) { echo $idconto_aziendale; } - echo '", "ajax-source": "conti" ]} + echo '", "ajax-source": "conti", "required": "'.$required.'" ]} '; // Importo dare e avere diff --git a/modules/primanota/edit.php b/modules/primanota/edit.php index cdd5088c9..9b78c2ef1 100644 --- a/modules/primanota/edit.php +++ b/modules/primanota/edit.php @@ -70,11 +70,14 @@ include_once __DIR__.'/../../core.php'; '; for ($i = 0; $i < 10; ++$i) { + + ($i<=1) ? $required = 1 : $required = 0; + // Conto echo ' - {[ "type": "select", "name": "idconto['.$i.']", "value": "'.$rs[$i]['idconto'].'", "ajax-source": "conti" ]} + {[ "type": "select", "name": "idconto['.$i.']", "value": "'.$rs[$i]['idconto'].'", "ajax-source": "conti", "required": "'.$required.'" ]} '; // Importo dare e avere diff --git a/templates/magazzino_inventario/pdfgen.magazzino_inventario.php b/templates/magazzino_inventario/pdfgen.magazzino_inventario.php index 92bda994a..f8f39742b 100644 --- a/templates/magazzino_inventario/pdfgen.magazzino_inventario.php +++ b/templates/magazzino_inventario/pdfgen.magazzino_inventario.php @@ -8,7 +8,13 @@ $body = file_get_contents($docroot.'/templates/magazzino_inventario/magazzino_in $search_codice = $_GET['search_codice']; $search_descrizione = $_GET['search_descrizione']; -$search_categoria = $_GET['search_categoria'].' '.$_GET['search_subcategoria']; + +if ($_GET['search_subcategoria']=='undefined') + $_GET['search_subcategoria'] = ''; + +if (!empty( $_GET['search_categoria'] ) or !empty( $_GET['search_subcategoria'] ) ) + $search_categoria = $_GET['search_categoria'].' '.$_GET['search_subcategoria']; + $search_tipo = $_GET['search_tipo']; if ($search_tipo == '') { @@ -23,15 +29,31 @@ if ($search_tipo == 'solo prodotti attivi') { $add_where = ''; } + +if ($search_codice!='') + $add_where .= " AND ( replace(codice,'.','') LIKE \"%$search_codice%\" OR codice LIKE \"%$search_codice%\" )"; + +if ($search_descrizione!='') + $add_where .= " AND replace(descrizione,'.','') LIKE \"%$search_descrizione%\""; + +$add_having = ''; +if (!empty($search_categoria)) + $add_having .= " AND CONCAT_WS( ' ', categoria, subcategoria ) LIKE '%".$search_categoria."%' "; + + + include_once $docroot.'/templates/pdfgen_variables.php'; // Ciclo tra gli articoli selezionati // LEFT OUTER JOIN mg_unitamisura ON mg_unitamisura.id=mg_articoli.idum // mg_unitamisura.valore AS um // LEFT OUTER JOIN mg_categorie ON (mg_categorie.id=mg_articoli.id_categoria AND mg_categorie.parent = 0) OR (mg_categorie.id=mg_articoli.id_sottocategoria AND mg_categorie.parent = 1) -$rs = $dbo->fetchArray("SELECT *, mg_articoli.id AS id_articolo, (SELECT nome FROM mg_categorie WHERE mg_categorie.parent = 0 AND mg_categorie.id = mg_articoli.id_categoria) AS categoria, (SELECT nome FROM mg_categorie WHERE mg_categorie.parent = 1 AND mg_categorie.id = mg_articoli.id_sottocategoria) AS subcategoria FROM mg_articoli WHERE ( replace(codice,'.','') LIKE \"%$search_codice%\" OR codice LIKE \"%$search_codice%\" ) AND replace(descrizione,'.','') LIKE \"%$search_descrizione%\" ".$add_where." AND qta > 0 HAVING CONCAT_WS( ' ', categoria, subcategoria ) LIKE \"%".$search_categoria.'%" ORDER BY codice ASC'); +$query = "SELECT *, mg_articoli.id AS id_articolo, (SELECT nome FROM mg_categorie WHERE mg_categorie.parent = 0 AND mg_categorie.id = mg_articoli.id_categoria) AS categoria, (SELECT nome FROM mg_categorie WHERE mg_categorie.parent = 1 AND mg_categorie.id = mg_articoli.id_sottocategoria) AS subcategoria FROM mg_articoli WHERE 1=1 ".$add_where." AND qta > 0 HAVING 2=2 ".$add_having." ORDER BY codice ASC"; +$rs = $dbo->fetchArray($query); $totrows = sizeof($rs); + + $body .= '

INVENTARIO AL '.date('d/m/Y')."

\n"; $body .= "\n"; diff --git a/update/2_4_1.sql b/update/2_4_1.sql index 3b0b903be..701096fcf 100644 --- a/update/2_4_1.sql +++ b/update/2_4_1.sql @@ -1 +1,16 @@ -ALTER TABLE `co_contratti` ADD `idsede` INT NOT NULL AFTER `idanagrafica`; \ No newline at end of file +ALTER TABLE `co_contratti` ADD `idsede` INT NOT NULL AFTER `idanagrafica`; + +-- Imposto conto cassa per contanti e rimesse +UPDATE `co_pagamenti` SET `idconto_vendite` = (SELECT id FROM co_pianodeiconti3 WHERE descrizione = 'Cassa'), `idconto_acquisti` = (SELECT id FROM co_pianodeiconti3 WHERE descrizione = 'Cassa') WHERE `co_pagamenti`.`descrizione` = 'Contanti' OR `co_pagamenti`.`descrizione` LIKE 'Rimessa %'; + +-- Imposto conto banca per tutti i bonifici e ri.ba. +UPDATE `co_pagamenti` SET `idconto_vendite` = (SELECT id FROM co_pianodeiconti3 WHERE descrizione = 'Banca C/C'), `idconto_acquisti` = (SELECT id FROM co_pianodeiconti3 WHERE descrizione = 'Banca C/C') WHERE `co_pagamenti`.`descrizione` LIKE 'Bonifico %' OR `co_pagamenti`.`descrizione` LIKE 'Ri.Ba. %'; + +-- Indirizzo PEC +ALTER TABLE `an_anagrafiche` ADD `pec` VARCHAR(255) NOT NULL AFTER `email`; + +-- ISO 3166-1 alpha-2 code per nazioni +ALTER TABLE `an_nazioni` ADD `iso2` VARCHAR(2) NOT NULL AFTER `nome`; + +-- ISO 2 per ITALIA (https://it.wikipedia.org/wiki/ISO_3166-1_alpha-2) +UPDATE `an_nazioni` SET `iso2` = 'IT' WHERE `an_nazioni`.`nome` = 'ITALIA'; \ No newline at end of file