diff --git a/composer.json b/composer.json
index 907b70ae4..7c28d2fa3 100755
--- a/composer.json
+++ b/composer.json
@@ -38,7 +38,7 @@
"ifsnop/mysqldump-php": "^2.3",
"illuminate/database": "^6.0",
"intervention/image": "^2.3",
- "league/csv": "^8.2",
+ "league/csv": "9.5.0",
"league/oauth2-client": "^2.6",
"league/oauth2-google": "^3.0",
"maximebf/debugbar": "^1.15",
diff --git a/include/common/importa.php b/include/common/importa.php
index d42799440..8af3f8982 100755
--- a/include/common/importa.php
+++ b/include/common/importa.php
@@ -258,6 +258,19 @@ if (in_array($final_module['name'], ['Fatture di vendita', 'Fatture di acquisto'
';
}
+$has_serial = 0;
+if (!empty($options['serials'])) {
+ foreach ($righe as $riga) {
+ if (!empty($riga['abilita_serial'])) {
+ $serials = $riga->serials ?: 0;
+
+ if (!empty($serials)) {
+ $has_serial = 1;
+ }
+ }
+ }
+}
+
// Righe del documento
echo '
@@ -279,7 +292,7 @@ echo '
'.tr('Q.tà da evadere').' |
'.tr('Subtot.').' | ';
-if (!empty($options['serials'])) {
+if (!empty($has_serial)) {
echo '
'.tr('Seriali').' | ';
}
@@ -322,6 +335,19 @@ foreach ($righe as $i => $riga) {
echo ' '.nl2br($descrizione);
+ if ($riga->isArticolo() && !empty($riga->abilita_serial)) {
+ $serials = $riga->serials;
+ $mancanti = abs($riga->qta) - count($serials);
+
+ if (!empty($mancanti)) {
+ echo '
+
'.tr('_NUM_ serial mancanti', [
+ '_NUM_' => $mancanti,
+ ]).'';
+ }
+ }
+
+
echo '
';
@@ -343,7 +369,7 @@ foreach ($righe as $i => $riga) {
';
// Seriali
- if (!empty($options['serials'])) {
+ if (!empty($has_serial)) {
echo '
';
@@ -521,10 +547,10 @@ echo '
}
$("input[name=righe]").each(function() {
- ricalcolaTotaleRiga($(this).val());
+ ricalcolaTotaleRiga($(this).val(), first = true);
});
- function ricalcolaTotaleRiga(r) {
+ function ricalcolaTotaleRiga(r, first) {
let prezzo_unitario = $("#prezzo_unitario_" + r).val();
let sconto = $("#sconto_unitario_" + r).val();
@@ -551,11 +577,12 @@ echo '
qta = 0;
}
- let serial_select = $("#serial_" + r);
- serial_select.selectClear();
- serial_select.select2("destroy");
- serial_select.data("maximum", qta);
- start_superselect();
+ if (!first) {
+ let serial_select = $("#serial_" + r);
+ serial_select.selectClear();
+ serial_select.data("maximum", qta);
+ initSelectInput("#serial_" + r);
+ }
let subtotale = (prezzo_scontato * qta).toLocale();
diff --git a/mail.php b/mail.php
index 8300dc7bb..2e81d86b6 100755
--- a/mail.php
+++ b/mail.php
@@ -28,16 +28,20 @@ $smtp = $template->account;
$body = $module->replacePlaceholders($id_record, $template['body']);
$subject = $module->replacePlaceholders($id_record, $template['subject']);
-$emails = explode(';', $module->replacePlaceholders($id_record, '{email}'));
+$emails = [];
+if ($module->replacePlaceholders($id_record, '{email}')) {
+ $emails = explode(';', $module->replacePlaceholders($id_record, '{email}'));
+}
+
$id_anagrafica = $module->replacePlaceholders($id_record, '{id_anagrafica}');
// Aggiungo email referenti in base alla mansione impostata nel template
$mansioni = $dbo->select('em_mansioni_template', 'idmansione', ['id_template' => $template->id]);
foreach ($mansioni as $mansione) {
- $referenti = $dbo->select('an_referenti', 'email', ['idmansione' => $mansione['idmansione'], 'idanagrafica' => $id_anagrafica]);
+ $referenti = $dbo->table('an_referenti')->where('idmansione', $mansione['idmansione'])->where('idanagrafica', $id_anagrafica)->where('email', '!=', '')->get();
foreach ($referenti as $referente) {
- if (!in_array($referente['email'], $emails)) {
- $emails[] = $referente['email'];
+ if (!in_array($referente->email, $emails)) {
+ $emails[] = $referente->email;
}
}
}
@@ -101,6 +105,13 @@ echo '
{[ "type": "email", "name": "destinatari['.$idx++.']", "value": "'.$email.'", "icon-before": "choice|email", "extra": "onkeyup=\'aggiungiDestinatario();\'", "class": "destinatari", "required": 0 ]}
';
}
+
+ if (empty($emails)) {
+ echo '
+
+ {[ "type": "email", "name": "destinatari['.$idx++.']", "value": "", "icon-before": "choice|email", "extra": "onkeyup=\'aggiungiDestinatario();\'", "class": "destinatari", "required": 0 ]}
+ ';
+ }
echo '
diff --git a/modules/anagrafiche/ajax/select.php b/modules/anagrafiche/ajax/select.php
index 2d12a0b39..2e7c27501 100755
--- a/modules/anagrafiche/ajax/select.php
+++ b/modules/anagrafiche/ajax/select.php
@@ -356,8 +356,9 @@ switch ($resource) {
* Opzioni utilizzate:
* - idanagrafica
*/
+
case 'dichiarazioni_intento':
- $query = "SELECT id, CONCAT(CONCAT_WS(' - ', numero_protocollo, numero_progressivo), ' data di fine ', DATE_FORMAT(data_fine, '%d/%m/%Y')) AS descrizione FROM co_dichiarazioni_intento |where| ORDER BY data";
+ $query = "SELECT id, CONCAT('Prot. ', numero_protocollo, ' con data fine ', DATE_FORMAT(data_fine, '%d/%m/%Y'),' - utilizzati ',REPLACE(REPLACE(REPLACE(FORMAT(SUM(totale),2), ',', '#'), '.', ','), '#', '.'), ' su ' , REPLACE(REPLACE(REPLACE(FORMAT(SUM(massimale),2), ',', '#'), '.', ','), '#', '.'), ' €' ) AS descrizione FROM co_dichiarazioni_intento |where| ORDER BY data";
foreach ($elements as $element) {
$filter[] = 'id='.prepare($element);
diff --git a/modules/articoli/actions.php b/modules/articoli/actions.php
index 03a8c82a9..b083dc68b 100755
--- a/modules/articoli/actions.php
+++ b/modules/articoli/actions.php
@@ -58,8 +58,12 @@ switch (post('op')) {
$articolo->barcode = post('barcode');
$articolo->threshold_qta = post('threshold_qta');
+ $articolo->coefficiente = post('coefficiente');
+ $articolo->idiva_vendita = post('idiva_vendita');
$articolo->prezzo_acquisto = post('prezzo_acquisto');
- $articolo->setPrezzoVendita(post('prezzo_vendita'), post('idiva_vendita'));
+ if (empty(post('coefficiente'))) {
+ $articolo->setPrezzoVendita(post('prezzo_vendita'), post('idiva_vendita'));
+ }
$articolo->idconto_vendita = post('idconto_vendita');
$articolo->idconto_acquisto = post('idconto_acquisto');
$articolo->save();
@@ -116,6 +120,8 @@ switch (post('op')) {
$articolo->abilita_serial = post('abilita_serial');
$articolo->ubicazione = post('ubicazione');
$articolo->threshold_qta = post('threshold_qta');
+ $articolo->coefficiente = post('coefficiente');
+ $articolo->idiva_vendita = post('idiva_vendita');
$articolo->prezzo_acquisto = post('prezzo_acquisto');
$articolo->idconto_vendita = post('idconto_vendita');
$articolo->idconto_acquisto = post('idconto_acquisto');
@@ -129,7 +135,9 @@ switch (post('op')) {
$articolo->fattore_um_secondaria = post('fattore_um_secondaria');
$articolo->qta_multipla = post('qta_multipla');
- $articolo->setPrezzoVendita(post('prezzo_vendita'), post('idiva_vendita'));
+ if (empty(post('coefficiente'))) {
+ $articolo->setPrezzoVendita(post('prezzo_vendita'), post('idiva_vendita'));
+ }
$componente = post('componente_filename');
$articolo->componente_filename = $componente;
diff --git a/modules/articoli/add.php b/modules/articoli/add.php
index d3ff9805d..c93d28f8c 100755
--- a/modules/articoli/add.php
+++ b/modules/articoli/add.php
@@ -19,6 +19,12 @@
include_once __DIR__.'/../../core.php';
+use Modules\Iva\Aliquota;
+
+$prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA');
+$iva_predefinita = setting('Iva predefinita');
+$aliquota_predefinita = floatval(Aliquota::find($iva_predefinita)->percentuale);
+
?> |