diff --git a/modules/anagrafiche/actions.php b/modules/anagrafiche/actions.php
index 5759d8e0a..3c5c92890 100644
--- a/modules/anagrafiche/actions.php
+++ b/modules/anagrafiche/actions.php
@@ -80,7 +80,6 @@ switch (post('op')) {
$anagrafica->colore = post('colore');
$anagrafica->idtipointervento_default = post('idtipointervento_default');
$anagrafica->id_ritenuta_acconto_acquisti = post('id_ritenuta_acconto_acquisti');
- $anagrafica->id_ritenuta_acconto_vendite = post('id_ritenuta_acconto_vendite');
$anagrafica->split_payment = post('split_payment');
$anagrafica->tipologie = (array) post('idtipoanagrafica');
diff --git a/modules/anagrafiche/edit.php b/modules/anagrafiche/edit.php
index 70dfab6d8..9d1942c09 100644
--- a/modules/anagrafiche/edit.php
+++ b/modules/anagrafiche/edit.php
@@ -326,7 +326,7 @@ if (!empty($google)) {
- {[ "type": "select", "label": "", "name": "id_ritenuta_acconto_vendite", "values": "query=SELECT id, descrizione FROM co_ritenutaacconto ORDER BY descrizione ASC", "value": "$id_ritenuta_acconto_vendite$", "extra": "" ]}
+ {[ "type": "select", "label": "", "name": "idsede_fatturazione", "values": "query=SELECT id, IF(citta = '', nomesede, CONCAT_WS(', ', nomesede, citta)) AS descrizione FROM an_sedi WHERE idanagrafica='' UNION SELECT '0' AS id, 'Sede legale' AS descrizione ORDER BY descrizione", "value": "$idsede_fatturazione$" , "extra": "" ]}
@@ -335,9 +335,23 @@ if (!empty($google)) {
{[ "type": "select", "label": "", "name": "idlistino_vendite", "values": "query=SELECT id, nome AS descrizione FROM mg_listini ORDER BY nome ASC", "value": "$idlistino_vendite$", "extra": "" ]}
-
- {[ "type": "select", "label": "", "name": "idsede_fatturazione", "values": "query=SELECT id, IF(citta = '', nomesede, CONCAT_WS(', ', nomesede, citta)) AS descrizione FROM an_sedi WHERE idanagrafica='' UNION SELECT '0' AS id, 'Sede legale' AS descrizione ORDER BY descrizione", "value": "$idsede_fatturazione$" , "extra": "" ]}
-
+
+fetchOne('SELECT co_pianodeiconti2.numero as numero, co_pianodeiconti3.numero as numero_conto, co_pianodeiconti3.descrizione as descrizione FROM co_pianodeiconti3 INNER JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id WHERE co_pianodeiconti3.id = '.prepare($record['idconto_cliente']));
+
+ if (!empty($conto['numero_conto'])) {
+ $piano_dei_conti_cliente = tr('_NAME_', [
+ '_NAME_' => $conto['numero'].'.'.$conto['numero_conto'].' '.$conto['descrizione'],
+ ]);
+ echo Modules::link('Piano dei conti', null, null, null, 'class="pull-right"');
+ } else {
+ $piano_dei_conti_cliente = tr('Nessuno');
+ } ?>
+
+ {[ "type": "select", "label": "", "name": "piano_dei_conti_cliente", "values": "list=\"\": \"\"", "readonly": 1, "value": "", "extra": "" ]}
+
@@ -349,32 +363,6 @@ if (!empty($google)) {
{[ "type": "select", "label": "", "name": "idagente", "values": "query=SELECT an_anagrafiche.idanagrafica AS id, IF(deleted_at IS NOT NULL, CONCAT(ragione_sociale, ' (Eliminato)'), ragione_sociale ) AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE (descrizione='Agente' AND deleted_at IS NULL)ORDER BY ragione_sociale", "value": "$idagente$", "extra": "" ]}
-
-
-fetchOne('SELECT co_pianodeiconti2.numero as numero, co_pianodeiconti3.numero as numero_conto, co_pianodeiconti3.descrizione as descrizione FROM co_pianodeiconti3 INNER JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id WHERE co_pianodeiconti3.id = '.prepare($record['idconto_cliente']));
-
- /*echo '
-
'.tr('Piano dei conti collegato: _NAME_', [
- '_NAME_' => $conto['numero'].'.'.$conto['numero_conto'].' '.$conto['descrizione'],
- ]).Modules::link('Piano dei conti', null, '').'
';*/
- if (!empty($conto['numero_conto'])) {
- $piano_dei_conti_cliente = tr('_NAME_', [
- '_NAME_' => $conto['numero'].'.'.$conto['numero_conto'].' '.$conto['descrizione'],
- ]);
- echo Modules::link('Piano dei conti', null, null, null, 'class="pull-right"');
- } else {
- $piano_dei_conti_cliente = tr('Nessuno');
- } ?>
-
- {[ "type": "select", "label": "", "name": "piano_dei_conti_cliente", "values": "list=\"\": \"\"", "readonly": 1, "value": "", "extra": "" ]}
-
-
-
-
-
diff --git a/modules/fatture/actions.php b/modules/fatture/actions.php
index 07354749d..74bcc3a4d 100644
--- a/modules/fatture/actions.php
+++ b/modules/fatture/actions.php
@@ -637,12 +637,13 @@ switch (post('op')) {
$id_record = $fattura->id;
}
- $parziale = false;
-
- $id_iva = get('id_iva');
+ $id_rivalsa_inps = setting('Percentuale rivalsa');
+ $id_ritenuta_acconto = ($dir == 'uscita') ? $fattura->anagrafica->id_ritenuta_acconto_acquisti : setting("Percentuale ritenuta d'acconto");
+ $calcolo_ritenuta_acconto = setting("Metodologia calcolo ritenuta d'acconto predefinito");
$id_conto = get('id_conto');
- $righe = $ordine->getRighe();
+ $parziale = false;
+ $righe = $ordine->getRighe();
foreach ($righe as $riga) {
if (post('evadere')[$riga->id] == 'on') {
$qta = post('qta_da_evadere')[$riga->id];
@@ -650,6 +651,10 @@ switch (post('op')) {
$copia = $riga->copiaIn($fattura, $qta);
$copia->id_conto = $id_conto;
+ $copia->calcolo_ritenuta_acconto = $calcolo_ritenuta_acconto;
+ $copia->id_ritenuta_acconto = $id_ritenuta_acconto;
+ $copia->id_rivalsa_inps = $id_rivalsa_inps;
+
// Aggiornamento seriali dalla riga dell'ordine
if ($copia->isArticolo()) {
$copia->movimenta($copia->qta);
@@ -695,10 +700,12 @@ switch (post('op')) {
$id_record = $fattura->id;
}
- $parziale = false;
-
- $id_iva = get('id_iva');
+ $id_rivalsa_inps = setting('Percentuale rivalsa');
+ $id_ritenuta_acconto = ($dir == 'uscita') ? $fattura->anagrafica->id_ritenuta_acconto_acquisti : setting("Percentuale ritenuta d'acconto");
+ $calcolo_ritenuta_acconto = setting("Metodologia calcolo ritenuta d'acconto predefinito");
$id_conto = get('id_conto');
+
+ $parziale = false;
$righe = $ddt->getRighe();
foreach ($righe as $riga) {
if (post('evadere')[$riga->id] == 'on') {
@@ -707,6 +714,10 @@ switch (post('op')) {
$copia = $riga->copiaIn($fattura, $qta);
$copia->id_conto = $id_conto;
+ $copia->calcolo_ritenuta_acconto = $calcolo_ritenuta_acconto;
+ $copia->id_ritenuta_acconto = $id_ritenuta_acconto;
+ $copia->id_rivalsa_inps = $id_rivalsa_inps;
+
// Aggiornamento seriali dalla riga dell'ordine
if ($copia->isArticolo()) {
$serials = is_array(post('serial')[$riga->id]) ? post('serial')[$riga->id] : [];
@@ -749,10 +760,13 @@ switch (post('op')) {
$id_record = $fattura->id;
}
- $parziale = false;
-
- $id_iva = get('id_iva');
+ $id_rivalsa_inps = setting('Percentuale rivalsa');
+ $id_ritenuta_acconto = ($dir == 'uscita') ? $fattura->anagrafica->id_ritenuta_acconto_acquisti : setting("Percentuale ritenuta d'acconto");
+ $calcolo_ritenuta_acconto = setting("Metodologia calcolo ritenuta d'acconto predefinito");
$id_conto = get('id_conto');
+ $id_iva = get('id_iva');
+
+ $parziale = false;
$righe = $preventivo->getRighe();
foreach ($righe as $riga) {
if (post('evadere')[$riga->id] == 'on') {
@@ -762,6 +776,10 @@ switch (post('op')) {
$copia->id_iva = $id_iva;
$copia->id_conto = $id_conto;
+ $copia->calcolo_ritenuta_acconto = $calcolo_ritenuta_acconto;
+ $copia->id_ritenuta_acconto = $id_ritenuta_acconto;
+ $copia->id_rivalsa_inps = $id_rivalsa_inps;
+
// Aggiornamento seriali dalla riga dell'ordine
if ($copia->isArticolo()) {
$copia->movimenta($copia->qta);
@@ -810,10 +828,13 @@ switch (post('op')) {
$id_record = $fattura->id;
}
- $parziale = false;
-
- $id_iva = get('id_iva');
+ $id_rivalsa_inps = setting('Percentuale rivalsa');
+ $id_ritenuta_acconto = ($dir == 'uscita') ? $fattura->anagrafica->id_ritenuta_acconto_acquisti : setting("Percentuale ritenuta d'acconto");
+ $calcolo_ritenuta_acconto = setting("Metodologia calcolo ritenuta d'acconto predefinito");
$id_conto = get('id_conto');
+ $id_iva = get('id_iva');
+
+ $parziale = false;
$righe = $contratto->getRighe();
foreach ($righe as $riga) {
if (post('evadere')[$riga->id] == 'on') {
@@ -823,6 +844,10 @@ switch (post('op')) {
$copia->id_iva = $id_iva;
$copia->id_conto = $id_conto;
+ $copia->calcolo_ritenuta_acconto = $calcolo_ritenuta_acconto;
+ $copia->id_ritenuta_acconto = $id_ritenuta_acconto;
+ $copia->id_rivalsa_inps = $id_rivalsa_inps;
+
// Aggiornamento seriali dalla riga dell'ordine
if ($copia->isArticolo()) {
$copia->movimenta($copia->qta);
diff --git a/update/2_4_7.sql b/update/2_4_7.sql
index 239a6be15..37c7c65dd 100644
--- a/update/2_4_7.sql
+++ b/update/2_4_7.sql
@@ -17,3 +17,6 @@ INSERT INTO `co_staticontratti` (`id`, `descrizione`, `pianificabile`, `fatturab
(NULL, 'Parzialmente fatturato', 0, 1, 'fa fa-file-text-o text-warning');
UPDATE `zz_widgets` SET `query` = REPLACE(`query`, 'In attesa di pagamento', 'Fatturato');
+
+-- Rimozione id_ritenuta_acconto_vendite non supportata
+ALTER TABLE `an_anagrafiche` DROP `id_ritenuta_acconto_vendite`;