Compare commits
9 Commits
c78abaebd5
...
2e2fa27963
Author | SHA1 | Date |
---|---|---|
valentina | 2e2fa27963 | |
MatteoPistorello | c89e617fef | |
MatteoPistorello | 137b1a63ab | |
Luca | f31a30f0e2 | |
valentina | 634eb25164 | |
valentina | 8d5c11d968 | |
valentina | a8b7ea98b1 | |
valentina | f6b7fedc09 | |
valentina | 0d851a3cd8 |
|
@ -4,7 +4,7 @@ Tutti i maggiori cambiamenti di questo progetto saranno documentati in questo fi
|
|||
|
||||
Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://keepachangelog.com/), e il progetto segue il [Semantic Versioning](http://semver.org/) per definire le versioni delle release.
|
||||
|
||||
- [2.5.3 (2024-07-18)](#253-2024-07-18)
|
||||
- [2.5.3 (2024-07-31)](#253-2024-07-31)
|
||||
- [2.5.2 (2024-05-31)](#252-2024-05-31)
|
||||
- [2.5.1 (2024-04-24)](#251-2024-04-24)
|
||||
- [2.5 (2024-03-28)](#25-2024-03-28)
|
||||
|
@ -69,7 +69,7 @@ Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://k
|
|||
- [2.2 (2016-11-10)](#22-2016-11-10)
|
||||
- [2.1 (2015-04-02)](#21-2015-04-02)
|
||||
|
||||
## 2.5.3 (2024-07-18)
|
||||
## 2.5.3 (2024-07-31)
|
||||
### Aggiunto (Added)
|
||||
- Aggiunto il valore delle **Vendite al banco** sul grafico del Fatturato
|
||||
- Aggiunta legenda in **Articoli**
|
||||
|
|
|
@ -118,7 +118,7 @@ if (filter('action') == 'do_update') {
|
|||
include_once App::filepath('include|custom|', 'top.php');
|
||||
|
||||
echo '
|
||||
<div class="card card-danger card-outline text-center">
|
||||
<div class="card card-danger card-outline card-center-large text-center">
|
||||
<div class="card-header">
|
||||
<h3 class="card-title">'.tr('Aggiornamento in corso!').'</h3>
|
||||
</div>
|
||||
|
|
|
@ -60,9 +60,7 @@ switch (post('op')) {
|
|||
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
|
||||
$articolo->name = post('descrizione');
|
||||
}
|
||||
if (!setting('Utilizza codice articolo come barcode')) {
|
||||
$articolo->barcode = post('barcode');
|
||||
}
|
||||
$articolo->barcode = post('barcode');
|
||||
$articolo->threshold_qta = post('threshold_qta');
|
||||
$articolo->coefficiente = post('coefficiente');
|
||||
$articolo->idiva_vendita = post('idiva_vendita');
|
||||
|
@ -133,9 +131,7 @@ switch (post('op')) {
|
|||
}
|
||||
|
||||
$articolo->codice = post('codice', true);
|
||||
if (!setting('Utilizza codice articolo come barcode')) {
|
||||
$articolo->barcode = post('barcode');
|
||||
}
|
||||
$articolo->barcode = post('barcode');
|
||||
$articolo->um = post('um');
|
||||
$articolo->id_categoria = post('categoria');
|
||||
$articolo->id_sottocategoria = post('subcategoria');
|
||||
|
|
|
@ -25,7 +25,6 @@ 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);
|
||||
$utilizza_codice_barcode = setting('Utilizza codice articolo come barcode');
|
||||
|
||||
?><form action="" method="post" id="add-form">
|
||||
<input type="hidden" name="op" value="add">
|
||||
|
@ -37,7 +36,7 @@ $utilizza_codice_barcode = setting('Utilizza codice articolo come barcode');
|
|||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
{[ "type": "text", "label": "<?php echo tr('Barcode'); ?>", "name": "barcode", "required": 0, "value": "<?php echo htmlentities(filter('barcode')) ?: ''; ?>", "validation": "barcode", "disabled": "<?php echo $utilizza_codice_barcode; ?>" ]}
|
||||
{[ "type": "text", "label": "<?php echo tr('Barcode'); ?>", "name": "barcode", "required": 0, "value": "<?php echo htmlentities(filter('barcode')) ?: ''; ?>", "validation": "barcode" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -505,7 +505,7 @@ $operations['stampa-etichette'] = [
|
|||
'text' => '<span><i class="fa fa-barcode"></i> '.tr('Stampa etichette').'</span>',
|
||||
'data' => [
|
||||
'title' => tr('Stampare le etichette?'),
|
||||
'msg' => tr('Per ciascun articolo selezionato, se presente il barcode, verrà stampata un\'etichetta').'<br><br>
|
||||
'msg' => tr('Per ciascun articolo selezionato, verrà stampata un\'etichetta').'<br><br>
|
||||
{[ "type": "select", "label": "'.tr('Tipologia stampa').'", "name": "tipologia", "required": 1, "values": "list=\"singola\":\"Singola\",\"a4\":\"Formato A4\"", "value": "singola" ]}<br>',
|
||||
'button' => tr('Procedi'),
|
||||
'class' => 'btn btn-lg btn-warning',
|
||||
|
|
|
@ -22,8 +22,6 @@ include_once __DIR__.'/../../core.php';
|
|||
use Models\Module;
|
||||
use Modules\Iva\Aliquota;
|
||||
|
||||
$utilizza_codice_barcode = setting('Utilizza codice articolo come barcode');
|
||||
|
||||
?><form action="" method="post" id="edit-form" enctype="multipart/form-data">
|
||||
<input type="hidden" name="backto" value="record-edit">
|
||||
<input type="hidden" name="op" value="update">
|
||||
|
@ -47,7 +45,7 @@ $utilizza_codice_barcode = setting('Utilizza codice articolo come barcode');
|
|||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
{[ "type": "text", "label": "<?php echo tr('Barcode'); ?>", "name": "barcode", "value": "<?php echo $utilizza_codice_barcode ? '$codice$' : '$barcode$'; ?>", "disabled": "<?php echo $utilizza_codice_barcode; ?>" ]}
|
||||
{[ "type": "text", "label": "<?php echo tr('Barcode'); ?>", "name": "barcode", "value": "$barcode$" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -46,6 +46,14 @@ switch ($name) {
|
|||
['id', '<>', $id_record],
|
||||
])->count() == 0;
|
||||
|
||||
if ($disponibile) {
|
||||
$disponibile = Articolo::where([
|
||||
['codice', $value],
|
||||
['barcode', '=', ''],
|
||||
['id', '<>', $id_record],
|
||||
])->count() == 0;
|
||||
}
|
||||
|
||||
$message = $disponibile ? tr('Il barcode è disponbile') : tr('Il barcode è già utilizzato in un altro articolo');
|
||||
|
||||
$response = [
|
||||
|
|
|
@ -591,6 +591,9 @@ switch (post('op')) {
|
|||
|
||||
if (!empty($barcode)) {
|
||||
$id_articolo = $dbo->selectOne('mg_articoli', 'id', ['deleted_at' => null, 'attivo' => 1, 'barcode' => $barcode])['id'];
|
||||
if (empty($id_articolo)) {
|
||||
$id_articolo = $dbo->selectOne('mg_articoli', 'id', ['deleted_at' => null, 'attivo' => 1, 'barcode' => '', 'codice' => $barcode])['id'];
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($id_articolo)) {
|
||||
|
|
|
@ -560,6 +560,9 @@ switch (filter('op')) {
|
|||
|
||||
if (!empty($barcode)) {
|
||||
$id_articolo = $dbo->selectOne('mg_articoli', 'id', ['deleted_at' => null, 'attivo' => 1, 'barcode' => $barcode])['id'];
|
||||
if (empty($id_articolo)) {
|
||||
$id_articolo = $dbo->selectOne('mg_articoli', 'id', ['deleted_at' => null, 'attivo' => 1, 'barcode' => '', 'codice' => $barcode])['id'];
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($id_articolo)) {
|
||||
|
|
|
@ -965,6 +965,9 @@ switch ($op) {
|
|||
|
||||
if (!empty($barcode)) {
|
||||
$id_articolo = $dbo->selectOne('mg_articoli', 'id', ['deleted_at' => null, 'attivo' => 1, 'barcode' => $barcode])['id'];
|
||||
if (empty($id_articolo)) {
|
||||
$id_articolo = $dbo->selectOne('mg_articoli', 'id', ['deleted_at' => null, 'attivo' => 1, 'barcode' => '', 'codice' => $barcode])['id'];
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($id_articolo)) {
|
||||
|
|
|
@ -1155,6 +1155,9 @@ switch (post('op')) {
|
|||
|
||||
if (!empty($barcode)) {
|
||||
$id_articolo = $dbo->selectOne('mg_articoli', 'id', ['deleted_at' => null, 'attivo' => 1, 'barcode' => $barcode])['id'];
|
||||
if (empty($id_articolo)) {
|
||||
$id_articolo = $dbo->selectOne('mg_articoli', 'id', ['deleted_at' => null, 'attivo' => 1, 'barcode' => '', 'codice' => $barcode])['id'];
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($id_articolo)) {
|
||||
|
|
|
@ -612,6 +612,9 @@ switch (post('op')) {
|
|||
|
||||
if (!empty($barcode)) {
|
||||
$id_articolo = $dbo->selectOne('mg_articoli', 'id', ['deleted_at' => null, 'attivo' => 1, 'barcode' => $barcode])['id'];
|
||||
if (empty($id_articolo)) {
|
||||
$id_articolo = $dbo->selectOne('mg_articoli', 'id', ['deleted_at' => null, 'attivo' => 1, 'barcode' => '', 'codice' => $barcode])['id'];
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($id_articolo)) {
|
||||
|
|
|
@ -427,6 +427,9 @@ switch (post('op')) {
|
|||
|
||||
if (!empty($barcode)) {
|
||||
$id_articolo = $dbo->selectOne('mg_articoli', 'id', ['deleted_at' => null, 'attivo' => 1, 'barcode' => $barcode])['id'];
|
||||
if (empty($id_articolo)) {
|
||||
$id_articolo = $dbo->selectOne('mg_articoli', 'id', ['deleted_at' => null, 'attivo' => 1, 'barcode' => '', 'codice' => $barcode])['id'];
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($id_articolo)) {
|
||||
|
|
|
@ -133,6 +133,11 @@ foreach ($scadenze as $id_documento => $righe) {
|
|||
]);
|
||||
|
||||
renderTabella($nome, $righe, $totale_dare, $totale_avere);
|
||||
|
||||
foreach ($righe as $riga) {
|
||||
$totale_dare += $riga['dare'];
|
||||
$totale_avere += $riga['avere'];
|
||||
}
|
||||
}
|
||||
|
||||
// Elenco per scadenze
|
||||
|
@ -146,6 +151,10 @@ foreach ($scadenze as $id_scadenza => $righe) {
|
|||
]);
|
||||
|
||||
renderTabella($nome, $righe, $totale_dare, $totale_avere);
|
||||
foreach ($righe as $riga) {
|
||||
$totale_dare += $riga['dare'];
|
||||
$totale_avere += $riga['avere'];
|
||||
}
|
||||
}
|
||||
|
||||
// Elenco generale
|
||||
|
@ -183,8 +192,8 @@ echo '
|
|||
<table class="table table-bordered">
|
||||
<tr>
|
||||
<th class="text-right">'.tr('Totale').'</th>
|
||||
<th class="text-right" width="20%">'.moneyFormat($totale_dare).'</th>
|
||||
<th class="text-right" width="20%">'.moneyFormat($totale_avere).'</th>
|
||||
<th id="totale_dare" class="text-right" width="20%">'.moneyFormat($totale_dare).'</th>
|
||||
<th id="totale_avere" class="text-right" width="20%">'.moneyFormat($totale_avere).'</th>
|
||||
</tr>
|
||||
</table>';
|
||||
|
||||
|
@ -361,6 +370,22 @@ $(document).on("keyup change", "input[id*=avere]", function() {
|
|||
}
|
||||
});
|
||||
|
||||
$(document).on("change", "[id*=dare], [id*=avere]", function() {
|
||||
var totalDare = 0;
|
||||
var totalAvere = 0;
|
||||
|
||||
$("[id*=dare]").each(function() {
|
||||
totalDare += parseFloat($(this).val()) || 0;
|
||||
});
|
||||
|
||||
$("[id*=avere]").each(function() {
|
||||
totalAvere += parseFloat($(this).val()) || 0;
|
||||
});
|
||||
|
||||
$("#totale_dare").text(totalDare.toLocale());
|
||||
$("#totale_avere").text(totalAvere.toLocale());
|
||||
});
|
||||
|
||||
function visualizzaMovimenti(button) {
|
||||
let id_conto = $(button).parent().parent().find("select").val();
|
||||
openModal("'.tr('Ultimi 25 movimenti').'", "'.$module->fileurl('dettagli.php').'?id_module=" + globals.id_module + "&id_conto=" + id_conto);
|
||||
|
|
|
@ -533,7 +533,7 @@ class FatturaOrdinaria extends FatturaElettronica
|
|||
$percentuale = $m[3];
|
||||
|
||||
$totale_previsto = round($importo / $percentuale * 100, 2);
|
||||
$percentuale_importo = round($totale_previsto / $totale * 100, 2);
|
||||
$percentuale_importo = round($totale_previsto / ($totale ?: 1) * 100, 2);
|
||||
|
||||
$ritenuta_contributi = $database->fetchOne('SELECT * FROM`co_ritenuta_contributi` WHERE `percentuale` = '.prepare($percentuale).' AND `percentuale_imponibile` = '.prepare($percentuale_importo));
|
||||
if (empty($ritenuta_contributi)) {
|
||||
|
@ -634,7 +634,7 @@ class FatturaOrdinaria extends FatturaElettronica
|
|||
}
|
||||
|
||||
$totale_previsto = round($importo * 100 / $percentuale, 2);
|
||||
$percentuale_importo = round($totale_previsto / $totale * 100, 2);
|
||||
$percentuale_importo = round($totale_previsto / ($totale ?: 1) * 100, 2);
|
||||
$percentuale_importo = min($percentuale_importo, 100); // Nota: Fix per la percentuale che superava il 100% nel caso di importi con Rivalsa compresa
|
||||
|
||||
$ritenuta_acconto = $database->fetchOne('SELECT * FROM `co_ritenutaacconto` WHERE `percentuale` = '.prepare($percentuale).' AND `percentuale_imponibile` = '.prepare($percentuale_importo));
|
||||
|
|
|
@ -181,14 +181,13 @@ class Manager
|
|||
|
||||
foreach ($joins as $join) {
|
||||
if (count($join) >= 3) {
|
||||
$query->leftJoin($join[0], function($joinClause) use ($join) {
|
||||
$query->leftJoin($join[0], function ($joinClause) use ($join) {
|
||||
$joinClause->on($join[1], $join[2]);
|
||||
|
||||
// Aggiungi condizioni aggiuntive se ci sono abbastanza elementi in $join
|
||||
if (isset($join[3])) {
|
||||
$joinClause->whereRaw($join[3] . ' = ?', [$join[4]]);
|
||||
$joinClause->whereRaw($join[3].' = ?', [$join[4]]);
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -45,7 +45,7 @@ $page = 0;
|
|||
$prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA');
|
||||
|
||||
foreach ($articoli as $articolo) {
|
||||
$barcode = setting('Utilizza codice articolo come barcode') ? $articolo->codice : $articolo->barcode;
|
||||
$barcode = $articolo->barcode ?: $articolo->codice;
|
||||
|
||||
echo '
|
||||
<div class="barcode-cell">
|
||||
|
|
|
@ -44,7 +44,7 @@ $i = 0;
|
|||
$prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA');
|
||||
|
||||
foreach ($articoli as $articolo) {
|
||||
$barcode = setting('Utilizza codice articolo come barcode') ? $articolo->codice : $articolo->barcode;
|
||||
$barcode = $articolo->barcode ?: $articolo->codice;
|
||||
|
||||
if ($i % 5 == 0) {
|
||||
echo '</tr><tr>';
|
||||
|
|
|
@ -111,10 +111,6 @@ HAVING
|
|||
ORDER BY
|
||||
`mg_articoli_lang`.`title`" WHERE `name` = 'Articoli';
|
||||
|
||||
-- Aggiunta impostazione per utilizzare il codice come barcode
|
||||
INSERT INTO `zz_settings` (`nome`, `valore`, `tipo`, `editable`, `sezione`, `order`) VALUES ('Utilizza codice articolo come barcode', '0', 'boolean', '1', 'Magazzino', '4');
|
||||
INSERT INTO `zz_settings_lang` (`id_lang`, `id_record`, `title`, `help`) VALUES ((SELECT `valore` FROM `zz_settings` WHERE `nome` = 'Lingua'), (SELECT `id` FROM `zz_settings` WHERE `nome`='Utilizza codice articolo come barcode'), 'Utilizza codice articolo come barcode', '');
|
||||
|
||||
-- Aggiunte note sessioni
|
||||
ALTER TABLE `in_interventi_tecnici` ADD `note` TEXT NOT NULL AFTER `tipo_scontokm`;
|
||||
|
||||
|
@ -128,3 +124,7 @@ UPDATE `zz_widgets` SET `more_link` = "if($(\'#th_Tipo input\').val()!= \'Fornit
|
|||
UPDATE `zz_widgets` SET `more_link` = "if($(\'#th_Tipo input\').val()!= \'Agente\'){ $(\'#th_Tipo input\').val(\'Agente\').trigger(\'keyup\');} else { $(\'#th_Tipo input\').val(\'\').trigger(\'keyup\');}" WHERE `zz_widgets`.`name` = 'Numero di agenti';
|
||||
UPDATE `zz_widgets` SET `more_link` = "if($(\'#th_Tipo input\').val()!= \'Vettore\'){ $(\'#th_Tipo input\').val(\'Vettore\').trigger(\'keyup\');} else { $(\'#th_Tipo input\').val(\'\').trigger(\'keyup\');}" WHERE `zz_widgets`.`name` = 'Numero di vettori';
|
||||
UPDATE `zz_widgets` SET `more_link` = "$(\'#th_Tipo input\').val(\'\').trigger(\'keyup\');" WHERE `zz_widgets`.`name` = 'Tutte le anagrafiche';
|
||||
|
||||
|
||||
-- Spostata impostazione Stato dell'attività alla chiusura (utilizzata solo da APP)
|
||||
UPDATE `zz_settings` SET `sezione` = 'Applicazione' WHERE `zz_settings`.`nome` = "Stato dell\'attività alla chiusura";
|
Loading…
Reference in New Issue