diff --git a/include/common/articolo.php b/include/common/articolo.php index b83b69159..b50638821 100644 --- a/include/common/articolo.php +++ b/include/common/articolo.php @@ -63,6 +63,8 @@ if (!isset($options['edit_articolo']) || !empty($options['edit_articolo'])) { $("#prezzo").val($data.prezzo_'.($options['dir'] == 'entrata' ? 'vendita' : 'acquisto').'); $("#descrizione_riga").val($data.descrizione); $("#idiva").selectSet($data.idiva_vendita, $data.iva_vendita); + $("#idconto").selectSetNew($data.idconto_'.($options['dir'] == 'entrata' ? 'vendita' : 'acquisto').', $data.idconto_'.($options['dir'] == 'entrata' ? 'vendita' : 'acquisto').'_title); + console.log($data); $("#um").selectSetNew($data.um, $data.um); }'; diff --git a/modules/articoli/actions.php b/modules/articoli/actions.php index ecd18f8a8..86b0bf901 100644 --- a/modules/articoli/actions.php +++ b/modules/articoli/actions.php @@ -40,6 +40,8 @@ switch (post('op')) { 'threshold_qta' => post('threshold_qta'), 'prezzo_vendita' => post('prezzo_vendita'), 'prezzo_acquisto' => post('prezzo_acquisto'), + 'idconto_vendita' => post('idconto_vendita'), + 'idconto_acquisto' => post('idconto_acquisto'), 'idiva_vendita' => post('idiva_vendita'), 'gg_garanzia' => post('gg_garanzia'), 'servizio' => post('servizio'), diff --git a/modules/articoli/ajax/select.php b/modules/articoli/ajax/select.php index aa3881c2c..b5276279d 100644 --- a/modules/articoli/ajax/select.php +++ b/modules/articoli/ajax/select.php @@ -4,7 +4,7 @@ include_once __DIR__.'/../../../core.php'; switch ($resource) { case 'articoli': - $query = 'SELECT mg_articoli.*, co_iva.descrizione AS iva_vendita FROM mg_articoli LEFT OUTER JOIN co_iva ON mg_articoli.idiva_vendita=co_iva.id |where| ORDER BY mg_articoli.id_categoria ASC, mg_articoli.id_sottocategoria ASC'; + $query = 'SELECT mg_articoli.*, (SELECT CONCAT(numero, " ", descrizione) FROM co_pianodeiconti3 WHERE co_pianodeiconti3.id = idconto_vendita) AS idconto_vendita_title, (SELECT CONCAT(numero, " ", descrizione) FROM co_pianodeiconti3 WHERE co_pianodeiconti3.id = idconto_acquisto) AS idconto_acquisto_title, co_iva.descrizione AS iva_vendita FROM mg_articoli LEFT OUTER JOIN co_iva ON mg_articoli.idiva_vendita=co_iva.id |where| ORDER BY mg_articoli.id_categoria ASC, mg_articoli.id_sottocategoria ASC'; $idiva_predefinita = setting('Iva predefinita'); $rs = $dbo->fetchArray("SELECT descrizione FROM co_iva WHERE id='".$idiva_predefinita."'"); @@ -66,6 +66,10 @@ switch ($resource) { 'um' => $r['um'], 'idiva_vendita' => $idiva, 'iva_vendita' => $iva, + 'idconto_vendita' => $r['idconto_vendita'], + 'idconto_vendita_title' => $r['idconto_vendita_title'], + 'idconto_acquisto' => $r['idconto_acquisto'], + 'idconto_acquisto_title' => $r['idconto_acquisto_title'], 'prezzo_acquisto' => Translator::numberToLocale($r['prezzo_acquisto']), 'prezzo_vendita' => Translator::numberToLocale($r['prezzo_vendita']), ]; diff --git a/modules/articoli/edit.php b/modules/articoli/edit.php index 975eaa971..f1c9d5a7e 100644 --- a/modules/articoli/edit.php +++ b/modules/articoli/edit.php @@ -141,6 +141,12 @@ if (!empty($records[0]['immagine01'])) { {[ "type": "number", "label": "", "name": "threshold_qta", "value": "$threshold_qta$", "decimals": "qta", "min-value": "undefined" ]} + +
+
+ {[ "type": "select", "label": "", "name": "idconto_acquisto", "value": "$idconto_acquisto$", "ajax-source": "conti-acquisti" ]} +
+
@@ -181,6 +187,12 @@ if (!empty($records[0]['immagine01'])) { {[ "type": "number", "label": "", "name": "volume", "value": "$volume$", "icon-after": "M3" ]} + +
+
+ {[ "type": "select", "label": "", "name": "idconto_vendita", "value": "$idconto_vendita$", "ajax-source": "conti-vendite" ]} +
+
diff --git a/modules/fatture/actions.php b/modules/fatture/actions.php index 7503ae685..bd25e2d63 100644 --- a/modules/fatture/actions.php +++ b/modules/fatture/actions.php @@ -327,7 +327,7 @@ switch (post('op')) { $costi_intervento = get_costi_intervento($idintervento); - //Fatturo i diritti di chiamata raggruppati per costo + // Fatturo i diritti di chiamata raggruppati per costo $rst = $dbo->fetchArray('SELECT COUNT(id) AS qta, SUM(prezzo_dirittochiamata) AS tot_prezzo_dirittochiamata FROM in_interventi_tecnici WHERE idintervento='.prepare($idintervento).' AND prezzo_dirittochiamata > 0 GROUP BY prezzo_dirittochiamata'); // Aggiunta diritto di chiamata se esiste @@ -472,6 +472,8 @@ switch (post('op')) { $ritenutaacconto = ($subtot + $rivalsainps) / 100 * $rs[0]['percentuale']; } + $idconto = ($dir == 'entrata') ? setting('Conto predefinito fatture di vendita') : setting('Conto predefinito fatture di acquisto'); + $query = 'INSERT INTO co_righe_documenti(iddocumento, idintervento, idconto, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, qta, idrivalsainps, rivalsainps, idritenutaacconto, ritenutaacconto, calcolo_ritenutaacconto, `order`) VALUES('.prepare($id_record).', NULL, '.prepare($idconto).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare('Sconto '.$descrizione).', '.prepare($subtot).', 1, '.prepare(setting('Percentuale rivalsa INPS')).', '.prepare($rivalsainps).', '.prepare(setting("Percentuale ritenuta d'acconto")).', '.prepare($ritenutaacconto).', '.prepare(setting("Metodologia calcolo ritenuta d'acconto predefinito")).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))'; $dbo->query($query); } diff --git a/modules/fatture/add_ddt.php b/modules/fatture/add_ddt.php index d4a36ea3b..06896dbbe 100644 --- a/modules/fatture/add_ddt.php +++ b/modules/fatture/add_ddt.php @@ -12,7 +12,6 @@ if ($module['name'] == 'Fatture di vendita') { $record = $dbo->fetchArray('SELECT * FROM co_documenti WHERE id='.prepare($id_record)); $numero = ($record[0]['numero_esterno'] != '') ? $record[0]['numero_esterno'] : $record[0]['numero']; -$idconto = $record[0]['idconto']; $idanagrafica = $record[0]['idanagrafica']; // Preventivo diff --git a/modules/fatture/add_descrizione.php b/modules/fatture/add_descrizione.php index f1558742d..226639f20 100644 --- a/modules/fatture/add_descrizione.php +++ b/modules/fatture/add_descrizione.php @@ -15,7 +15,6 @@ if ($module['name'] == 'Fatture di vendita') { $record = $dbo->fetchArray('SELECT * FROM co_documenti WHERE id='.prepare($id_record)); $numero = ($record[0]['numero_esterno'] != '') ? $record[0]['numero_esterno'] : $record[0]['numero']; -$idconto = $record[0]['idconto']; $idanagrafica = $record[0]['idanagrafica']; /* diff --git a/modules/fatture/add_intervento.php b/modules/fatture/add_intervento.php index f2e4a6414..43a36b686 100644 --- a/modules/fatture/add_intervento.php +++ b/modules/fatture/add_intervento.php @@ -16,9 +16,10 @@ if ($module['name'] == 'Fatture di vendita') { $record = $dbo->fetchArray('SELECT * FROM co_documenti WHERE id='.prepare($id_record)); $numero = ($record[0]['numero_esterno'] != '') ? $record[0]['numero_esterno'] : $record[0]['numero']; -$idconto = $record[0]['idconto']; $idanagrafica = $record[0]['idanagrafica']; +$idconto = ($dir == 'entrata') ? setting('Conto predefinito fatture di vendita') : setting('Conto predefinito fatture di acquisto'); + /* Form di inserimento riga documento */ diff --git a/modules/fatture/add_ordine.php b/modules/fatture/add_ordine.php index 35a0db858..4c0b16a01 100644 --- a/modules/fatture/add_ordine.php +++ b/modules/fatture/add_ordine.php @@ -14,7 +14,6 @@ if ($module['name'] == 'Fatture di vendita') { $record = $dbo->fetchArray('SELECT * FROM co_documenti WHERE id='.prepare($id_record)); $numero = ($record[0]['numero_esterno'] != '') ? $record[0]['numero_esterno'] : $record[0]['numero']; -$idconto = $record[0]['idconto']; $idanagrafica = $record[0]['idanagrafica']; // Preventivo diff --git a/modules/fatture/add_preventivo.php b/modules/fatture/add_preventivo.php index 527b21206..bcac2fd82 100644 --- a/modules/fatture/add_preventivo.php +++ b/modules/fatture/add_preventivo.php @@ -14,9 +14,10 @@ if ($module['name'] == 'Fatture di vendita') { $record = $dbo->fetchArray('SELECT * FROM co_documenti WHERE id='.prepare($id_record)); $numero = ($record[0]['numero_esterno'] != '') ? $record[0]['numero_esterno'] : $record[0]['numero']; -$idconto = $record[0]['idconto']; $idanagrafica = $record[0]['idanagrafica']; +$idconto = ($dir == 'entrata') ? setting('Conto predefinito fatture di vendita') : setting('Conto predefinito fatture di acquisto'); + /* Form di inserimento riga documento */ diff --git a/modules/fatture/crea_documento.php b/modules/fatture/crea_documento.php index 69f0c0a33..fb4af9ce9 100644 --- a/modules/fatture/crea_documento.php +++ b/modules/fatture/crea_documento.php @@ -78,6 +78,10 @@ $idanagrafica = $rs[0]['idanagrafica']; $idpagamento = $rs[0]['idpagamento']; $idconto = $rs[0]['idconto']; +if (empty($idconto)) { + $idconto = ($dir == 'entrata') ? setting('Conto predefinito fatture di vendita') : setting('Conto predefinito fatture di acquisto'); +} + /* Form di inserimento riga documento */ diff --git a/modules/fatture/modutil.php b/modules/fatture/modutil.php index 3f4ba7c71..382765d69 100644 --- a/modules/fatture/modutil.php +++ b/modules/fatture/modutil.php @@ -675,7 +675,13 @@ function add_articolo_infattura($iddocumento, $idarticolo, $descrizione, $idiva, $desc_iva = $rs2[0]['descrizione']; if ($qta != 0) { - $rsart = $dbo->fetchArray('SELECT abilita_serial FROM mg_articoli WHERE id='.prepare($idarticolo)); + $rsart = $dbo->fetchArray('SELECT abilita_serial, idconto_vendita, idconto_acquisto FROM mg_articoli WHERE id='.prepare($idarticolo)); + + $default_idconto = ($dir == 'entrata') ? setting('Conto predefinito fatture di vendita') : setting('Conto predefinito fatture di acquisto'); + if ($idconto == $default_idconto) { + $idconto = $rsart[0]['idconto_'.($dir == 'entrata' ? 'vendita' : 'acquisto')]; + } + $idconto = empty($idconto) ? $default_idconto : $idconto; $dbo->query('INSERT INTO co_righe_documenti(iddocumento, idarticolo, idintervento, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, sconto_unitario, tipo_sconto, qta, abilita_serial, idconto, um, `order`) VALUES ('.prepare($iddocumento).', '.prepare($idarticolo).', '.(!empty($idintervento) ? prepare($idintervento) : 'NULL').', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($descrizione).', '.prepare($prezzo).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', '.prepare($qta).', '.prepare($rsart[0]['abilita_serial']).', '.prepare($idconto).', '.prepare($um).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($iddocumento).'))'); $idriga = $dbo->lastInsertedID(); diff --git a/modules/fatture/row-add.php b/modules/fatture/row-add.php index b83e5c45a..78ffc72f3 100644 --- a/modules/fatture/row-add.php +++ b/modules/fatture/row-add.php @@ -6,26 +6,17 @@ include_once __DIR__.'/../../core.php'; $rs = $dbo->fetchArray('SELECT idanagrafica FROM co_documenti WHERE id='.prepare($id_record)); $idanagrafica = $rs[0]['idanagrafica']; -// Leggo il conto dall'ultima riga inserita -$rs = $dbo->fetchArray('SELECT idconto FROM co_righe_documenti WHERE iddocumento='.prepare($id_record).' ORDER BY id DESC LIMIT 0,1'); -$idconto = $rs[0]['idconto']; - if ($module['name'] == 'Fatture di vendita') { $dir = 'entrata'; $conti = 'conti-vendite'; - - // Se non ho letto un conto dall'ultima riga inserita, lo leggo dalle impostazioni - if (empty($idconto)) { - $idconto = setting('Conto predefinito fatture di vendita'); - } } else { $dir = 'uscita'; $conti = 'conti-acquisti'; +} - // Se non ho letto un conto dall'ultima riga inserita, lo leggo dalle impostazioni - if (empty($idconto)) { - $idconto = setting('Conto predefinito fatture di acquisto'); - } +// Conto dalle impostazioni +if (empty($idconto)) { + $idconto = ($dir == 'entrata') ? setting('Conto predefinito fatture di vendita') : setting('Conto predefinito fatture di acquisto'); } // Impostazioni per la gestione diff --git a/modules/interventi/bulk.php b/modules/interventi/bulk.php index 02da089ae..1913d1a3f 100644 --- a/modules/interventi/bulk.php +++ b/modules/interventi/bulk.php @@ -56,7 +56,7 @@ switch (post('op')) { case 'creafatturavendita': - $rs_idanagrafica = $dbo->fetchArray("SELECT idanagrafica FROM in_interventi WHERE id='".$id_records[0]."'"); + $rs_idanagrafica = $dbo->fetchArray('SELECT idanagrafica FROM in_interventi WHERE id='.prepare($id_records[0])); $idanagrafica = $rs_idanagrafica[0]['idanagrafica']; $data = date('Y-m-d'); diff --git a/modules/partitario/ajax/select.php b/modules/partitario/ajax/select.php index 96bfe3a74..227e61b30 100644 --- a/modules/partitario/ajax/select.php +++ b/modules/partitario/ajax/select.php @@ -33,7 +33,7 @@ switch ($resource) { $where[] = 'idpianodeiconti2='.prepare($r['id']); if (!empty($search)) { - $search_fields[] = '(co_pianodeiconti3.descrizione LIKE '.prepare('%'.$search.'%')." OR CONCAT( co_pianodeiconti2.numero, '.', co_pianodeiconti3.numero ) LIKE ".prepare('%'.$search.'%').')'; + $search_fields[] = '(co_pianodeiconti3.descrizione LIKE '.prepare('%'.$search.'%')." OR CONCAT(co_pianodeiconti2.numero, '.', co_pianodeiconti3.numero) LIKE ".prepare('%'.$search.'%').')'; } if (!empty($search_fields)) { $where[] = '('.implode(' OR ', $search_fields).')'; diff --git a/update/2_4_2.sql b/update/2_4_2.sql index fe9e37717..3886e5487 100644 --- a/update/2_4_2.sql +++ b/update/2_4_2.sql @@ -209,3 +209,6 @@ INSERT INTO `zz_plugins` (`id`, `name`, `title`, `idmodule_from`, `idmodule_to`, -- Aggiornamento zz_settings ALTER TABLE `zz_settings` CHANGE `idimpostazione` `id` int(11) NOT NULL AUTO_INCREMENT; UPDATE `zz_views` SET `query` = REPLACE(`query`, 'idimpostazione', 'id'); + +-- Aggiunta conti in Articoli +ALTER TABLE `mg_articoli` ADD `idconto_vendita` int(11), ADD `idconto_acquisto` int(11);