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);