diff --git a/modules/articoli/actions.php b/modules/articoli/actions.php
index 5a3f90f58..e56a4a338 100644
--- a/modules/articoli/actions.php
+++ b/modules/articoli/actions.php
@@ -21,6 +21,7 @@ switch (post('op')) {
$idiva_vendita = post('idiva_vendita');
$gg_garanzia = post('gg_garanzia');
+ $servizio = post('servizio');
$componente_filename = post('componente_filename');
$volume = post('volume');
@@ -42,6 +43,7 @@ switch (post('op')) {
' prezzo_acquisto='.prepare($prezzo_acquisto).','.
' idiva_vendita='.prepare($idiva_vendita).','.
' gg_garanzia='.prepare($gg_garanzia).','.
+ ' servizio='.prepare($servizio).','.
' volume='.prepare($volume).','.
' peso_lordo='.prepare($peso_lordo).','.
' componente_filename='.prepare($componente_filename).','.
diff --git a/modules/articoli/edit.php b/modules/articoli/edit.php
index 15e9e5008..d753ae85b 100644
--- a/modules/articoli/edit.php
+++ b/modules/articoli/edit.php
@@ -93,10 +93,7 @@ $_SESSION['superselect']['id_categoria'] = $records[0]['id_categoria'];
{[ "type": "number", "label": "", "name": "prezzo_acquisto", "value": "$prezzo_acquisto$", "icon-after": "€" ]}
-
-
-
+ {[ "type": "select", "label": "'.tr('Articolo').'", "name": "idarticolo", "value": "'.$idarticolo.'", "ajax-source": "articoli" ]}
+
';
+}
+
// Descrizione
echo '
- {[ "type": "textarea", "label": "'.tr('Descrizione').'", "name": "descrizione", "value": '.json_encode($descrizione).', "required": 1 ]}
+ {[ "type": "textarea", "label": "'.tr('Descrizione').'", "name": "descrizione", "id": "descrizione_riga", "value": '.json_encode($descrizione).', "required": 1 ]}
';
-// Iva
-
-echo '
+if($rsr[0]['is_descrizione']!=1){
+ // Iva
+ echo '
{[ "type": "select", "label": "'.tr('Iva').'", "name": "idiva", "required": 1, "values": "query=SELECT id, descrizione FROM co_iva ORDER BY descrizione ASC", "value": "'.$idiva.'" ]}
';
-// Quantità
-echo '
+ // Quantità
+ echo '
{[ "type": "number", "label": "'.tr('Q.tà').'", "name": "qta", "value": "'.$qta.'", "required": 1, "decimals": "qta" ]}
';
-// Unità di misura
-echo '
+ // Unità di misura
+ echo '
{[ "type": "select", "label": "'.tr('Unità di misura').'", "icon-after": "add|'.Modules::get('Unità di misura')['id'].'", "name": "um", "value": "'.$um.'", "ajax-source": "misure" ]}
';
-/*
-if (!empty($idriga)) {
-//Rivalsa INPS
-if( get_var("Percentuale rivalsa INPS") != "" ){
+ /*
+ if (!empty($idriga)) {
+ //Rivalsa INPS
+ if( get_var("Percentuale rivalsa INPS") != "" ){
echo "
{[ "type": "number", "label": "'.tr('Costo unitario').'", "name": "prezzo", "required": 1, "value": "'.$prezzo.'", "icon-after": "€" ]}
';
-// Sconto unitario
-echo '
+ // Sconto unitario
+ echo '
{[ "type": "number", "label": "'.tr('Sconto unitario').'", "name": "sconto", "value": "'.$sconto.'", "icon-after": "choice|untprc|'.$tipo_sconto.'" ]}
';
+}
+
+echo '
+ ';
echo '
diff --git a/modules/contratti/edit.php b/modules/contratti/edit.php
index ef4f742cf..54d6b019e 100644
--- a/modules/contratti/edit.php
+++ b/modules/contratti/edit.php
@@ -277,7 +277,8 @@ if (sizeof($rs) > 0) {
-
-
- '.nl2br($r['descrizione']).'
+ | ';
+ if (!empty($r['idarticolo'])) {
+ echo Modules::link('Articoli', $r['idarticolo'], $r['codice'].' - '.$r['descrizione']);
+ } else {
+ echo nl2br($r['descrizione']);
+ }
+
+ echo '
| ';
// q.tà
echo '
-
- '.Translator::numberToLocale($r['qta']).'
+ | ';
+ if($r['is_descrizione']==0){
+ echo
+ Translator::numberToLocale($r['qta']);
+ }
+ echo '
| ';
// um
echo '
-
- '.$r['um'].'
+ | ';
+ if($r['is_descrizione']==0){
+ echo
+ $r['um'];
+ }
+ echo '
| ';
// costo unitario
echo '
-
- '.Translator::numberToLocale($r['subtotale'] / $r['qta']).' €
+ | ';
+ if($r['is_descrizione']==0){
+ echo
+ Translator::numberToLocale($r['subtotale'] / $r['qta']).' €';
+ }
+ echo'
| ';
// iva
echo '
-
- '.Translator::numberToLocale($r['iva'])." €
- ".$r['desc_iva'].'
+ | ';
+ if($r['is_descrizione']==0){
+ echo
+ Translator::numberToLocale($r['iva'])." €
+ ".$r['desc_iva'].'';
+ }
+ echo '
| ';
// Imponibile
echo '
-
- '.Translator::numberToLocale($r['subtotale']).' €';
+ | ';
+ if($r['is_descrizione']==0){
+ echo
+ Translator::numberToLocale($r['subtotale']).' €';
- if ($r['sconto_unitario'] > 0) {
- echo '
- - '.tr('sconto _TOT_ _TYPE_', [
- '_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
- '_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
- ]).'';
+ if ($r['sconto_unitario'] > 0) {
+ echo '
+ - '.tr('sconto _TOT_ _TYPE_', [
+ '_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
+ '_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
+ ]).'';
+ }
}
-
echo '
| ';
diff --git a/modules/ddt/actions.php b/modules/ddt/actions.php
index eb12f6dfd..720b0f44d 100644
--- a/modules/ddt/actions.php
+++ b/modules/ddt/actions.php
@@ -198,6 +198,17 @@ switch (post('op')) {
}
}
break;
+
+ case 'adddescrizione':
+ if (!empty($id_record)) {
+ $descrizione = post('descrizione');
+ $query = 'INSERT INTO dt_righe_ddt(idddt, descrizione, is_descrizione) VALUES('.prepare($id_record).', '.prepare($descrizione).', 1)';
+
+ if ($dbo->query($query)) {
+ $_SESSION['infos'][] = tr('Riga descrittiva aggiunta!');
+ }
+ }
+ break;
// Creazione ddt da ordine
case 'ddt_da_ordine':
@@ -351,6 +362,7 @@ switch (post('op')) {
$idordine = $rs[0]['idordine'];
$old_qta = $rs[0]['qta'];
$idddt = $rs[0]['idddt'];
+ $is_descrizione = $rs[0]['is_descrizione'];
// Controllo per gestire i serial
if (!empty($idarticolo)) {
@@ -369,7 +381,11 @@ switch (post('op')) {
$desc_iva = $rs[0]['descrizione'];
// Modifica riga generica sul ddt
- $query = 'UPDATE dt_righe_ddt SET idiva='.prepare($idiva).', desc_iva='.prepare($desc_iva).', iva='.prepare($iva).', iva_indetraibile='.prepare($iva_indetraibile).', descrizione='.prepare($descrizione).', subtotale='.prepare($subtot).', sconto='.prepare($sconto).', sconto_unitario='.prepare($sconto_unitario).', tipo_sconto='.prepare($tipo_sconto).', um='.prepare($um).', qta='.prepare($qta).' WHERE id='.prepare($idriga);
+ if($is_descrizione==0){
+ $query = 'UPDATE dt_righe_ddt SET idiva='.prepare($idiva).', desc_iva='.prepare($desc_iva).', iva='.prepare($iva).', iva_indetraibile='.prepare($iva_indetraibile).', descrizione='.prepare($descrizione).', subtotale='.prepare($subtot).', sconto='.prepare($sconto).', sconto_unitario='.prepare($sconto_unitario).', tipo_sconto='.prepare($tipo_sconto).', um='.prepare($um).', qta='.prepare($qta).' WHERE id='.prepare($idriga);
+ }else{
+ $query = 'UPDATE dt_righe_ddt SET descrizione='.prepare($descrizione).' WHERE id='.prepare($idriga);
+ }
if ($dbo->query($query)) {
if (!empty($idarticolo)) {
// Controlli aggiuntivi sulle quantità evase degli ordini
diff --git a/modules/ddt/add_descrizione.php b/modules/ddt/add_descrizione.php
new file mode 100644
index 000000000..9109d1eda
--- /dev/null
+++ b/modules/ddt/add_descrizione.php
@@ -0,0 +1,48 @@
+fetchArray('SELECT * FROM dt_ddt WHERE id='.prepare($id_record));
+$numero = (!empty($rs[0]['numero_esterno'])) ? $rs[0]['numero_esterno'] : $rs[0]['numero'];
+$idanagrafica = $rs[0]['idanagrafica'];
+
+/*
+ Form di inserimento riga ddt
+*/
+echo '
+'.tr('Ddt numero _NUM_', [
+ '_NUM_' => $numero,
+]).'
+
+';
\ No newline at end of file
diff --git a/modules/ddt/add_riga.php b/modules/ddt/add_riga.php
index eba79e506..e7609b744 100644
--- a/modules/ddt/add_riga.php
+++ b/modules/ddt/add_riga.php
@@ -72,41 +72,45 @@ echo '
{[ "type": "textarea", "label": "'.tr('Descrizione').'", "name": "descrizione", "required": 1, "value": '.json_encode($descrizione).' ]}
';
+
+if($rsr[0]['is_descrizione']==0){
-// Quantità
-echo '
+ // Quantità
+ echo '
{[ "type": "number", "label": "'.tr('Q.tà').'", "name": "qta", "required": 1, "value": "'.$qta.'", "decimals": "qta" ]}
';
-// Unità di misura
+ // Unità di misura
echo '
{[ "type": "select", "label": "'.tr('Unità di misura').'", "icon-after": "add|'.Modules::get('Unità di misura')['id'].'", "name": "um", "value": "'.$um.'", "ajax-source": "misure" ]}
';
-// Iva
-echo '
+ // Iva
+ echo '
{[ "type": "select", "label": "'.tr('Iva').'", "name": "idiva", "values": "query=SELECT id, descrizione FROM co_iva ORDER BY descrizione ASC", "value": "'.$idiva.'" ]}
';
-// Costo unitario
-echo '
+ // Costo unitario
+ echo '
{[ "type": "number", "label": "'.tr('Costo unitario').'", "name": "prezzo", "required": 1, "value": "'.$subtot.'", "icon-after": "€" ]}
';
-// Sconto unitario
-echo '
+ // Sconto unitario
+ echo '
{[ "type": "number", "label": "'.tr('Sconto unitario').'", "name": "sconto", "value": "'.$sconto.'", "icon-after": "choice|untprc|'.$tipo_sconto.'" ]}
';
+}
+
echo '
diff --git a/modules/ddt/edit.php b/modules/ddt/edit.php
index b25ff86b9..1a9229a66 100644
--- a/modules/ddt/edit.php
+++ b/modules/ddt/edit.php
@@ -145,6 +145,9 @@ if ($records[0]['stato'] != 'Evaso') {
+
+
+
';
- if (empty($r['sconto_globale'])) {
- echo '
- '.Translator::numberToLocale($r['qta'] - $r['qta_evasa']).'
-
('.tr('Q.tà iniziale').': '.Translator::numberToLocale($r['qta']).')';
- } else {
- echo '1';
+ if($r['is_descrizione']==0){
+ if (empty($r['sconto_globale'])) {
+ echo '
+ '.Translator::numberToLocale($r['qta'] - $r['qta_evasa']).'
+
('.tr('Q.tà iniziale').': '.Translator::numberToLocale($r['qta']).')';
+ } else {
+ echo '1';
+ }
}
echo '
';
// Unità di misura
echo '
-
- '.$r['um'].'
+ | ';
+ if($r['is_descrizione']==0){
+ echo
+ $r['um'];
+ }
+ echo '
| ';
// Costo unitario
echo '
-
- '.Translator::numberToLocale($r['subtotale'] / $r['qta']).' €';
+ | ';
+ if($r['is_descrizione']==0){
+ echo
+ Translator::numberToLocale($r['subtotale'] / $r['qta']).' €';
- if ($r['sconto_unitario'] > 0) {
- echo '
- - '.tr('sconto _TOT_ _TYPE_', [
- '_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
- '_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
- ]).'';
+ if ($r['sconto_unitario'] > 0) {
+ echo '
+ - '.tr('sconto _TOT_ _TYPE_', [
+ '_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
+ '_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
+ ]).'';
+ }
}
-
echo '
| ';
// Iva
echo '
-
- '.Translator::numberToLocale($r['iva']).' €
- '.$r['desc_iva'].'
+ | ';
+ if($r['is_descrizione']==0){
+ echo
+ Translator::numberToLocale($r['iva']).' €
+ '.$r['desc_iva'].'';
+ }
+ echo '
| ';
// Imponibile
echo '
-
- '.Translator::numberToLocale($r['subtotale'] - $r['sconto']).' €
+ | ';
+ if($r['is_descrizione']==0){
+ echo
+ Translator::numberToLocale($r['subtotale'] - $r['sconto']).' €';
+ }
+ echo '
| ';
// Possibilità di rimuovere una riga solo se il ddt non è evaso
diff --git a/modules/fatture/actions.php b/modules/fatture/actions.php
index c0e9dc41d..6e4572a52 100755
--- a/modules/fatture/actions.php
+++ b/modules/fatture/actions.php
@@ -743,6 +743,17 @@ switch (post('op')) {
}
}
break;
+
+ case 'adddescrizione':
+ if (!empty($id_record)) {
+ $descrizione = post('descrizione');
+ $query = 'INSERT INTO co_righe_documenti(iddocumento, descrizione, is_descrizione) VALUES('.prepare($id_record).', '.prepare($descrizione).', 1)';
+
+ if ($dbo->query($query)) {
+ $_SESSION['infos'][] = tr('Riga descrittiva aggiunta!');
+ }
+ }
+ break;
case 'editriga':
if (isset($post['idriga'])) {
@@ -765,11 +776,12 @@ switch (post('op')) {
$subtot = $prezzo * $qta;
// Lettura idarticolo dalla riga documento
- $rs = $dbo->fetchArray('SELECT iddocumento, idarticolo, qta, abilita_serial FROM co_righe_documenti WHERE id='.prepare($idriga));
+ $rs = $dbo->fetchArray('SELECT iddocumento, idarticolo, qta, abilita_serial, is_descrizione FROM co_righe_documenti WHERE id='.prepare($idriga));
$idarticolo = $rs[0]['idarticolo'];
$old_qta = $rs[0]['qta'];
$iddocumento = $rs[0]['iddocumento'];
$abilita_serial = $rs[0]['abilita_serial'];
+ $is_descrizione = $rs[0]['is_descrizione'];
// Controllo per gestire i serial
if (!empty($idarticolo)) {
@@ -797,8 +809,14 @@ switch (post('op')) {
$rs = $dbo->fetchArray($query);
$ritenutaacconto = (($prezzo * $qta) - $sconto + $rivalsainps) / 100 * $rs[0]['percentuale'];
- // Modifica riga generica sul documento
- $query = 'UPDATE co_righe_documenti SET idconto='.prepare($idconto).', idiva='.prepare($idiva).', desc_iva='.prepare($desc_iva).', iva='.prepare($iva).', iva_indetraibile='.prepare($iva_indetraibile).', descrizione='.prepare($descrizione).', subtotale='.prepare($subtot).', sconto='.prepare($sconto).', sconto_unitario='.prepare($sconto_unitario).', tipo_sconto='.prepare($tipo_sconto).', um='.prepare($um).', idritenutaacconto='.prepare(post('idritenutaacconto')).', ritenutaacconto='.prepare($ritenutaacconto).', idrivalsainps='.prepare(post('idrivalsainps')).', rivalsainps='.prepare($rivalsainps).', qta='.prepare($qta).' WHERE id='.prepare($idriga).' AND iddocumento='.prepare($iddocumento);
+
+ if($is_descrizione==0){
+ // Modifica riga generica sul documento
+ $query = 'UPDATE co_righe_documenti SET idconto='.prepare($idconto).', idiva='.prepare($idiva).', desc_iva='.prepare($desc_iva).', iva='.prepare($iva).', iva_indetraibile='.prepare($iva_indetraibile).', descrizione='.prepare($descrizione).', subtotale='.prepare($subtot).', sconto='.prepare($sconto).', sconto_unitario='.prepare($sconto_unitario).', tipo_sconto='.prepare($tipo_sconto).', um='.prepare($um).', idritenutaacconto='.prepare(post('idritenutaacconto')).', ritenutaacconto='.prepare($ritenutaacconto).', idrivalsainps='.prepare(post('idrivalsainps')).', rivalsainps='.prepare($rivalsainps).', qta='.prepare($qta).' WHERE id='.prepare($idriga).' AND iddocumento='.prepare($iddocumento);
+ }else{
+ // Modifica riga descrizione sul documento
+ $query = 'UPDATE co_righe_documenti SET descrizione='.prepare($descrizione).' WHERE id='.prepare($idriga).' AND iddocumento='.prepare($iddocumento);
+ }
if ($dbo->query($query)) {
// Modifica per gestire i serial
if (!empty($idarticolo)) {
diff --git a/modules/fatture/add_descrizione.php b/modules/fatture/add_descrizione.php
new file mode 100644
index 000000000..524ffab30
--- /dev/null
+++ b/modules/fatture/add_descrizione.php
@@ -0,0 +1,50 @@
+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'];
+
+/*
+ Form di inserimento riga documento
+*/
+echo '
+'.tr('Documento numero _NUM_', [
+ '_NUM_' => $numero,
+]).'
+
+';
\ No newline at end of file
diff --git a/modules/fatture/edit.php b/modules/fatture/edit.php
index 898cbacee..1730a986a 100644
--- a/modules/fatture/edit.php
+++ b/modules/fatture/edit.php
@@ -302,6 +302,11 @@ if ($records[0]['stato'] != 'Pagato' && $records[0]['stato'] != 'Emessa') {
Riga generica
';
+
+ echo '
+
+ Descrizione
+ ';
}
?>
diff --git a/modules/fatture/edit_riga.php b/modules/fatture/edit_riga.php
index 53035e4cb..ebf5d583f 100644
--- a/modules/fatture/edit_riga.php
+++ b/modules/fatture/edit_riga.php
@@ -44,70 +44,73 @@ echo '
{[ "type": "textarea", "label": "'.tr('Descrizione').'", "name": "descrizione", "required": 1, "value": '.json_encode($rsr[0]['descrizione']).' ]}
';
+
+if($rsr[0]['is_descrizione']==0){
+
+ if (get_var('Percentuale rivalsa INPS') != '' || get_var("Percentuale ritenuta d'acconto") != '' || $dir == 'uscita') {
+ echo '
+ ';
+
+ // Rivalsa INPS
+ if (get_var('Percentuale rivalsa INPS') != '' || $dir == 'uscita') {
+ echo '
+
+ {[ "type": "select", "label": "'.tr('Rivalsa INPS').'", "name": "idrivalsainps", "value": "'.$rsr[0]['idrivalsainps'].'", "values": "query=SELECT * FROM co_rivalsainps", "required": '.intval($dir != 'uscita').' ]}
+
';
+ }
+
+ // Ritenuta d'acconto
+ if (get_var("Percentuale ritenuta d'acconto") != '' || $dir == 'uscita') {
+ echo '
+
+ {[ "type": "select", "label": "'.tr("Ritenuta d'acconto").'", "name": "idritenutaacconto", "value": "'.$rsr[0]['idritenutaacconto'].'", "values": "query=SELECT * FROM co_ritenutaacconto", "required": '.intval($dir != 'uscita').' ]}
+
';
+ }
-if (get_var('Percentuale rivalsa INPS') != '' || get_var("Percentuale ritenuta d'acconto") != '' || $dir == 'uscita') {
- echo '
-
';
-
- // Rivalsa INPS
- if (get_var('Percentuale rivalsa INPS') != '' || $dir == 'uscita') {
echo '
-
- {[ "type": "select", "label": "'.tr('Rivalsa INPS').'", "name": "idrivalsainps", "value": "'.$rsr[0]['idrivalsainps'].'", "values": "query=SELECT * FROM co_rivalsainps", "required": '.intval($dir != 'uscita').' ]}
';
}
- // Ritenuta d'acconto
- if (get_var("Percentuale ritenuta d'acconto") != '' || $dir == 'uscita') {
- echo '
-
- {[ "type": "select", "label": "'.tr("Ritenuta d'acconto").'", "name": "idritenutaacconto", "value": "'.$rsr[0]['idritenutaacconto'].'", "values": "query=SELECT * FROM co_ritenutaacconto", "required": '.intval($dir != 'uscita').' ]}
-
';
- }
+ // Iva
+ echo '
+
+
+ {[ "type": "select", "label": "'.tr('Iva').'", "name": "idiva", "required": 1, "value": "'.$rsr[0]['idiva'].'", "values": "query=SELECT * FROM co_iva ORDER BY descrizione ASC" ]}
+
';
echo '
-
';
+
+ {[ "type": "select", "label": "'.tr('Conto').'", "name": "idconto", "required": 1, "value": "'.$idconto.'", "ajax-source": "'.$conti.'" ]}
+
+
';
+
+ // Quantità
+ echo '
+
+
+ {[ "type": "number", "label": "'.tr('Q.tà').'", "name": "qta", "required": 1, "value": "'.$rsr[0]['qta'].'", "decimals": "qta" ]}
+
';
+
+ // Unità di misura
+ echo '
+
+ {[ "type": "select", "label": "'.tr('Unità di misura').'", "icon-after": "add|'.Modules::get('Unità di misura')['id'].'", "name": "um", "ajax-source": "misure", "value": "'.$rsr[0]['um'].'" ]}
+
';
+
+ // Costo unitario
+ echo '
+
+ {[ "type": "number", "label": "'.tr('Costo unitario').'", "name": "prezzo", "required": 1, "value": "'.($rsr[0]['subtotale'] / $rsr[0]['qta']).'", "icon-after": "€" ]}
+
';
+
+ // Sconto unitario
+ echo '
+
+ {[ "type": "number", "label": "'.tr('Sconto unitario').'", "name": "sconto", "value": "'.$sconto.'", "icon-after": "choice|untprc|'.$tipo_sconto.'" ]}
+
+
';
+
}
-
-// Iva
-echo '
-
-
- {[ "type": "select", "label": "'.tr('Iva').'", "name": "idiva", "required": 1, "value": "'.$rsr[0]['idiva'].'", "values": "query=SELECT * FROM co_iva ORDER BY descrizione ASC" ]}
-
';
-
-echo '
-
- {[ "type": "select", "label": "'.tr('Conto').'", "name": "idconto", "required": 1, "value": "'.$idconto.'", "ajax-source": "'.$conti.'" ]}
-
-
';
-
-// Quantità
-echo '
-
-
- {[ "type": "number", "label": "'.tr('Q.tà').'", "name": "qta", "required": 1, "value": "'.$rsr[0]['qta'].'", "decimals": "qta" ]}
-
';
-
-// Unità di misura
-echo '
-
- {[ "type": "select", "label": "'.tr('Unità di misura').'", "icon-after": "add|'.Modules::get('Unità di misura')['id'].'", "name": "um", "ajax-source": "misure", "value": "'.$rsr[0]['um'].'" ]}
-
';
-
-// Costo unitario
-echo '
-
- {[ "type": "number", "label": "'.tr('Costo unitario').'", "name": "prezzo", "required": 1, "value": "'.($rsr[0]['subtotale'] / $rsr[0]['qta']).'", "icon-after": "€" ]}
-
';
-
-// Sconto unitario
-echo '
-
- {[ "type": "number", "label": "'.tr('Sconto unitario').'", "name": "sconto", "value": "'.$sconto.'", "icon-after": "choice|untprc|'.$tipo_sconto.'" ]}
-
-
';
-
echo '
diff --git a/modules/fatture/row-list.php b/modules/fatture/row-list.php
index cba91459b..6684ddb8c 100755
--- a/modules/fatture/row-list.php
+++ b/modules/fatture/row-list.php
@@ -153,43 +153,69 @@ if (!empty($rs)) {
';
echo '
-
- '.Translator::numberToLocale($r['qta']).'
+ | ';
+
+ if($r['is_descrizione']==0){
+ echo
+ Translator::numberToLocale($r['qta']);
+ }
+
+ echo '
| ';
// Unità di misura
echo '
-
- '.$r['um'].'
+ | ';
+
+ if($r['is_descrizione']==0){
+ echo
+ $r['um'];
+ }
+
+ echo '
| ';
// Costo unitario
echo '
-
- '.Translator::numberToLocale($r['subtotale'] / $r['qta']).' €';
+ | ';
+
+ if($r['is_descrizione']==0){
+ echo
+ Translator::numberToLocale($r['subtotale'] / $r['qta']).' €';
- if ($r['sconto_unitario'] > 0) {
- echo '
- - '.tr('sconto _TOT_ _TYPE_', [
- '_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
- '_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
- ]).'';
+ if ($r['sconto_unitario'] > 0) {
+ echo '
+ - '.tr('sconto _TOT_ _TYPE_', [
+ '_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
+ '_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
+ ]).'';
+ }
}
-
+
echo '
| ';
// Iva
echo '
-
- '.Translator::numberToLocale($r['iva']).' €
- '.$r['desc_iva'].'
+ | ';
+
+ if($r['is_descrizione']==0){
+ echo
+ Translator::numberToLocale($r['iva']).' €
+ '.$r['desc_iva'].'';
+ }
+
+ echo '
| ';
// Imponibile
echo '
-
- '.Translator::numberToLocale($r['subtotale'] - $r['sconto']).' €
+ | ';
+ if($r['is_descrizione']==0){
+ echo
+ Translator::numberToLocale($r['subtotale'] - $r['sconto']).' €';
+ }
+ echo '
| ';
// Possibilità di rimuovere una riga solo se la fattura non è pagata
diff --git a/modules/ordini/actions.php b/modules/ordini/actions.php
index c6e7cbaa7..fc8029b1e 100644
--- a/modules/ordini/actions.php
+++ b/modules/ordini/actions.php
@@ -189,6 +189,17 @@ switch (post('op')) {
}
}
break;
+
+ case 'adddescrizione':
+ if (!empty($id_record)) {
+ $descrizione = post('descrizione');
+ $query = 'INSERT INTO or_righe_ordini(idordine, descrizione, is_descrizione) VALUES('.prepare($id_record).', '.prepare($descrizione).', 1)';
+
+ if ($dbo->query($query)) {
+ $_SESSION['infos'][] = tr('Riga descrittiva aggiunta!');
+ }
+ }
+ break;
// Scollegamento articolo da ordine
case 'unlink_articolo':
@@ -253,11 +264,12 @@ switch (post('op')) {
$sconto = $sconto * $qta;
// Lettura idarticolo dalla riga documento
- $rs = $dbo->fetchArray('SELECT idordine, idarticolo, qta, abilita_serial FROM or_righe_ordini WHERE id='.prepare($idriga));
+ $rs = $dbo->fetchArray('SELECT idordine, idarticolo, qta, abilita_serial, is_descrizione FROM or_righe_ordini WHERE id='.prepare($idriga));
$idarticolo = $rs[0]['idarticolo'];
$old_qta = $rs[0]['qta'];
$idordine = $rs[0]['idordine'];
$abilita_serial = $rs[0]['abilita_serial'];
+ $is_descrizione = $rs[0]['is_descrizione'];
// Controllo per gestire i serial
if (!empty($idarticolo)) {
@@ -275,8 +287,12 @@ switch (post('op')) {
$iva_indetraibile = $iva / 100 * $rs[0]['indetraibile'];
$desc_iva = $rs[0]['descrizione'];
- // Modifica riga generica sul documento
- $query = 'UPDATE or_righe_ordini SET idiva='.prepare($idiva).', desc_iva='.prepare($rs[0]['descrizione']).', iva='.prepare($iva).', iva_indetraibile='.prepare($iva_indetraibile).', descrizione='.prepare($descrizione).', subtotale='.prepare($subtot).', sconto='.prepare($sconto).', sconto_unitario='.prepare($sconto_unitario).', tipo_sconto='.prepare($tipo_sconto).', um='.prepare($um).', qta='.prepare($qta).' WHERE id='.prepare($idriga);
+ if($is_descrizione==0){
+ // Modifica riga generica sul documento
+ $query = 'UPDATE or_righe_ordini SET idiva='.prepare($idiva).', desc_iva='.prepare($rs[0]['descrizione']).', iva='.prepare($iva).', iva_indetraibile='.prepare($iva_indetraibile).', descrizione='.prepare($descrizione).', subtotale='.prepare($subtot).', sconto='.prepare($sconto).', sconto_unitario='.prepare($sconto_unitario).', tipo_sconto='.prepare($tipo_sconto).', um='.prepare($um).', qta='.prepare($qta).' WHERE id='.prepare($idriga);
+ }else{
+ $query = 'UPDATE or_righe_ordini SET descrizione='.prepare($descrizione).' WHERE id='.prepare($idriga);
+ }
if ($dbo->query($query)) {
$_SESSION['infos'][] = tr('Riga modificata!');
diff --git a/modules/ordini/add_descrizione.php b/modules/ordini/add_descrizione.php
new file mode 100644
index 000000000..3dd54b694
--- /dev/null
+++ b/modules/ordini/add_descrizione.php
@@ -0,0 +1,41 @@
+fetchArray('SELECT * FROM or_ordini WHERE id='.prepare($id_record));
+$numero = $record[0]['numero'];
+$idanagrafica = $record[0]['idanagrafica'];
+
+/*
+ Form di inserimento riga documento
+*/
+echo '
+
'.tr('Ordine numero _NUM_', [
+ '_NUM_' => $numero,
+]).'
+
+
';
\ No newline at end of file
diff --git a/modules/ordini/add_riga.php b/modules/ordini/add_riga.php
index 58003d60f..558b23137 100644
--- a/modules/ordini/add_riga.php
+++ b/modules/ordini/add_riga.php
@@ -79,39 +79,41 @@ echo '
';
-// Iva
-echo '
+if($rsr[0]['is_descrizione']!=1){
+ // Iva
+ echo '
{[ "type": "select", "label": "'.tr('Iva').'", "name": "idiva", "required": 1, "value": "'.$idiva.'", "values": "query=SELECT * FROM co_iva ORDER BY descrizione ASC" ]}
';
-// Quantità
-echo '
+ // Quantità
+ echo '
{[ "type": "number", "label": "'.tr('Q.tà').'", "name": "qta", "required": 1, "value": "'.$qta.'", "decimals": "qta" ]}
';
-// Unità di misura
-echo '
+ // Unità di misura
+ echo '
{[ "type": "select", "label": "'.tr('Unità di misura').'", "icon-after": "add|'.Modules::get('Unità di misura')['id'].'", "name": "um", "ajax-source": "misure", "value": "'.$um.'" ]}
';
-// Costo unitario
-echo '
+ // Costo unitario
+ echo '
{[ "type": "number", "label": "'.tr('Costo unitario').'", "name": "prezzo", "required": 1, "icon-after": "€", "value": "'.$prezzo.'" ]}
';
-// Sconto unitario
-echo '
+ // Sconto unitario
+ echo '
{[ "type": "number", "label": "'.tr('Sconto unitario').'", "name": "sconto", "value": "'.$sconto.'", "icon-after": "choice|untprc|'.$tipo_sconto.'" ]}
';
+}
echo '
diff --git a/modules/ordini/edit.php b/modules/ordini/edit.php
index 5c0c92032..18f3fca54 100644
--- a/modules/ordini/edit.php
+++ b/modules/ordini/edit.php
@@ -98,6 +98,7 @@ if ($module['name'] == 'Ordini cliente') {
?>
Articolo
Riga generica
+ Descrizione
diff --git a/modules/ordini/row-list.php b/modules/ordini/row-list.php
index c8b123dd8..ec508c545 100644
--- a/modules/ordini/row-list.php
+++ b/modules/ordini/row-list.php
@@ -75,49 +75,65 @@ if (!empty($rs)) {
echo '
';
- if (empty($r['sconto_globale'])) {
- echo '
- '.Translator::numberToLocale($r['qta'] - $r['qta_evasa']).'
- ('.tr('Q.tà iniziale').': '.Translator::numberToLocale($r['qta']).')';
- } else {
- echo '1';
+ if($r['is_descrizione']==0){
+ if (empty($r['sconto_globale'])) {
+ echo '
+ '.Translator::numberToLocale($r['qta'] - $r['qta_evasa']).'
+ ('.tr('Q.tà iniziale').': '.Translator::numberToLocale($r['qta']).')';
+ } else {
+ echo '1';
+ }
}
echo '
| ';
// Unità di misura
echo '
-
- '.$r['um'].'
+ | ';
+ if($r['is_descrizione']==0){
+ echo
+ $r['um'];
+ }
+ echo '
| ';
// Costo unitario
echo '
-
- '.Translator::numberToLocale($r['subtotale'] / $r['qta']).' €';
+ | ';
+ if($r['is_descrizione']==0){
+ echo
+ Translator::numberToLocale($r['subtotale'] / $r['qta']).' €';
- if ($r['sconto_unitario'] > 0) {
- echo '
- - '.tr('sconto _TOT_ _TYPE_', [
- '_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
- '_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
- ]).'';
+ if ($r['sconto_unitario'] > 0) {
+ echo '
+ - '.tr('sconto _TOT_ _TYPE_', [
+ '_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
+ '_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
+ ]).'';
+ }
}
-
echo '
| ';
// Iva
echo '
-
- '.Translator::numberToLocale($r['iva']).' €
- '.$r['desc_iva'].'
+ | ';
+ if($r['is_descrizione']==0){
+ echo
+ Translator::numberToLocale($r['iva']).' €
+ '.$r['desc_iva'].'';
+ }
+ echo '
| ';
// Imponibile
echo '
-
- '.Translator::numberToLocale($r['subtotale'] - $r['sconto']).' €
+ | ';
+ if($r['is_descrizione']==0){
+ echo
+ Translator::numberToLocale($r['subtotale'] - $r['sconto']).' €';
+ }
+ echo '
| ';
// Possibilità di rimuovere una riga solo se l'ordine non è evaso
diff --git a/modules/preventivi/actions.php b/modules/preventivi/actions.php
index 629e2f803..7633e6fcf 100644
--- a/modules/preventivi/actions.php
+++ b/modules/preventivi/actions.php
@@ -233,10 +233,25 @@ switch (post('op')) {
$_SESSION['infos'][] = tr('Articolo aggiunto!');
break;
+
+ case 'adddescrizione':
+ if (!empty($id_record)) {
+ $descrizione = post('descrizione');
+ $query = 'INSERT INTO co_righe_preventivi(idpreventivo, descrizione, is_descrizione) VALUES('.prepare($id_record).', '.prepare($descrizione).', 1)';
+
+ if ($dbo->query($query)) {
+ $_SESSION['infos'][] = tr('Riga descrittiva aggiunta!');
+ }
+ }
+ break;
case 'editriga':
$idriga = post('idriga');
$descrizione = post('descrizione');
+
+ //Info riga Preventivo
+ $rs = $dbo->fetchArray('SELECT * FROM co_righe_preventivi WHERE id='.prepare($idriga));
+ $is_descrizione = $rs[0]['is_descrizione'];
$qta = $post['qta'];
$prezzo = $post['prezzo'];
@@ -257,8 +272,12 @@ switch (post('op')) {
$iva_indetraibile = $iva / 100 * $rs2[0]['indetraibile'];
$desc_iva = $rs2[0]['descrizione'];
- // Modifica riga generica sul documento
- $query = 'UPDATE co_righe_preventivi SET idiva='.prepare($idiva).', desc_iva='.prepare($desc_iva).', iva='.prepare($iva).', iva_indetraibile='.prepare($iva_indetraibile).', descrizione='.prepare($descrizione).', subtotale='.prepare($subtot).', sconto='.prepare($sconto).', sconto_unitario='.prepare($sconto_unitario).', tipo_sconto='.prepare($tipo_sconto).', um='.prepare($um).', qta='.prepare($qta).' WHERE id='.prepare($idriga);
+ if($is_descrizione==0){
+ // Modifica riga generica sul documento
+ $query = 'UPDATE co_righe_preventivi SET idiva='.prepare($idiva).', desc_iva='.prepare($desc_iva).', iva='.prepare($iva).', iva_indetraibile='.prepare($iva_indetraibile).', descrizione='.prepare($descrizione).', subtotale='.prepare($subtot).', sconto='.prepare($sconto).', sconto_unitario='.prepare($sconto_unitario).', tipo_sconto='.prepare($tipo_sconto).', um='.prepare($um).', qta='.prepare($qta).' WHERE id='.prepare($idriga);
+ }else{
+ $query = 'UPDATE co_righe_preventivi SET descrizione='.prepare($descrizione).' WHERE id='.prepare($idriga);
+ }
$dbo->query($query);
$_SESSION['infos'][] = 'Riga modificata!';
diff --git a/modules/preventivi/add_descrizione.php b/modules/preventivi/add_descrizione.php
new file mode 100644
index 000000000..b7db4cb6d
--- /dev/null
+++ b/modules/preventivi/add_descrizione.php
@@ -0,0 +1,41 @@
+fetchArray('SELECT * FROM co_preventivi WHERE id='.prepare($id_record));
+$numero = $record[0]['numero'];
+$idanagrafica = $record[0]['idanagrafica'];
+
+/*
+ Form di inserimento riga documento
+*/
+echo '
+'.tr('Preventivo numero _NUM_', [
+ '_NUM_' => $numero,
+]).'
+
+';
\ No newline at end of file
diff --git a/modules/preventivi/edit.php b/modules/preventivi/edit.php
index 6feea63a0..6096e66dd 100644
--- a/modules/preventivi/edit.php
+++ b/modules/preventivi/edit.php
@@ -139,9 +139,11 @@ $_SESSION['superselect']['idanagrafica'] = $records[0]['idanagrafica'];
-
+
+
Riga
+
+
Descrizione
+
diff --git a/modules/preventivi/edit_riga.php b/modules/preventivi/edit_riga.php
index 89fa9d677..1043092ec 100644
--- a/modules/preventivi/edit_riga.php
+++ b/modules/preventivi/edit_riga.php
@@ -61,13 +61,15 @@ echo '
';
-// Elenco articoli raggruppati per gruppi e sottogruppi
-echo '
+if($rsr[0]['is_descrizione']!=1){
+ // Elenco articoli raggruppati per gruppi e sottogruppi
+ echo '
{[ "type": "select", "label": "'.tr('Articolo').'", "name": "idarticolo", "value": "'.$idarticolo.'", "ajax-source": "articoli" ]}
';
+}
// Descrizione
echo '
@@ -77,39 +79,42 @@ echo '
';
-// Quantità
-echo '
+if($rsr[0]['is_descrizione']!=1){
+ // Quantità
+ echo '
{[ "type": "number", "label": "'.tr('Q.tà').'", "name": "qta", "value": "'.$qta.'", "required": 1, "decimals": "qta" ]}
';
-// Unità di misura
-echo '
+ // Unità di misura
+ echo '
{[ "type": "select", "label": "'.tr('Unità di misura').'", "icon-after": "add|'.Modules::get('Unità di misura')['id'].'", "name": "um", "value": "'.$um.'", "ajax-source": "misure" ]}
';
-// Iva
-echo '
+ // Iva
+ echo '
{[ "type": "select", "label": "'.tr('Iva').'", "name": "idiva", "required": 1, "value": "'.$idiva.'", "values": "query=SELECT * FROM co_iva ORDER BY descrizione ASC" ]}
';
-// Costo unitario
-echo '
+ // Costo unitario
+ echo '
{[ "type": "number", "label": "'.tr('Costo unitario').'", "name": "prezzo", "required": 1, "value": "'.$subtot.'", "icon-after": "€" ]}
';
-// Sconto unitario
-echo '
+ // Sconto unitario
+ echo '
{[ "type": "number", "label": "'.tr('Sconto unitario').'", "name": "sconto", "value": "'.$sconto.'", "icon-after": "choice|untprc|'.$tipo_sconto.'" ]}
';
+
+}
echo '