Compare commits

...

4 Commits

Author SHA1 Message Date
MatteoPistorello 4ba48bbf82 Aggiunto codice fornitore nella stampa ordine fornitore 2021-07-07 15:01:51 +02:00
MatteoPistorello 292a52d76f Merge branch 'master' of https://github.com/devcode-it/openstamanager 2021-07-07 15:01:02 +02:00
MatteoPistorello 8a883f1127 Rimossi controlli per visualizzare campo ritenuta e rivalsa 2021-07-07 15:00:59 +02:00
Beppe 4cb23e256b Rimozione blocco quantità massime importabili 2021-07-07 13:01:54 +02:00
17 changed files with 87 additions and 51 deletions

View File

@ -45,6 +45,7 @@ Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://k
- Aggiunta colonna Scaduto nel modulo Scadenzario
- Aggiunto campi confermato, data e ora evasione nel modulo **Preventivi**
- Aggiunta possibilità di creare un nuovi conti di secondo livello dal modulo **Piano dei conti**
- Aggiunta impostazione per la rimozione del blocco sulle quantità massime importabili fra documenti
### Fixed
-

View File

@ -22,15 +22,6 @@ if ($module['name'] != 'Fatture di acquisto' && $module['name'] != 'Fatture di v
return;
}
if ($options['dir'] == 'entrata') {
$show_rivalsa = ((setting('Percentuale rivalsa') != '') or (!empty($result['idrivalsainps'])));
$show_ritenuta_acconto = ((setting("Percentuale ritenuta d'acconto") != '') or (!empty($result['idritenutaacconto'])));
$show_ritenuta_acconto |= !empty($options['id_ritenuta_acconto_predefined']);
} else {
$show_rivalsa = 1;
$show_ritenuta_acconto = 1;
}
// Percentuale rivalsa e Percentuale ritenuta d'acconto
if ($options['action'] == 'edit') {
$id_rivalsa_inps = $result['idrivalsainps'];
@ -54,37 +45,30 @@ if ($options['action'] == 'edit') {
$calcolo_ritenuta_acconto = $calcolo_ritenuta_acconto ?: setting("Metodologia calcolo ritenuta d'acconto predefinito");
if ($show_rivalsa == 1 || $show_ritenuta_acconto == 1) {
echo '
echo '
<div class="row">';
// Rivalsa INPS
if ($show_rivalsa == 1) {
echo '
echo '
<div class="col-md-4">
{[ "type": "select", "label": "'.tr('Rivalsa').'", "name": "id_rivalsa_inps", "value": "'.$id_rivalsa_inps.'", "values": "query=SELECT * FROM co_rivalse", "help": "'.(($options['dir'] == 'entrata') ? setting('Tipo Cassa Previdenziale') : null).'" ]}
</div>';
}
// Ritenuta d'acconto
if ($show_ritenuta_acconto == 1) {
echo '
echo '
<div class="col-md-4">
{[ "type": "select", "label": "'.tr("Ritenuta d'acconto").'", "name": "id_ritenuta_acconto", "value": "'.$id_ritenuta_acconto.'", "values": "query=SELECT * FROM co_ritenutaacconto" ]}
</div>';
}
// Calcola ritenuta d'acconto su
if ($show_ritenuta_acconto == 1) {
echo '
echo '
<div class="col-md-4">
{[ "type": "select", "label": "'.tr("Calcola ritenuta d'acconto su").'", "name": "calcolo_ritenuta_acconto", "value": "'.$calcolo_ritenuta_acconto.'", "values": "list=\"IMP\":\"Imponibile\", \"IMP+RIV\":\"Imponibile + rivalsa\"", "required": "1" ]}
{[ "type": "select", "label": "'.tr("Calcola ritenuta d'acconto su").'", "name": "calcolo_ritenuta_acconto", "value": "'.$calcolo_ritenuta_acconto.'", "values": "list=\"IMP\":\"Imponibile\", \"IMP+RIV\":\"Imponibile + rivalsa\""]}
</div>';
}
echo '
</div>';
}
if (!empty($options['show-ritenuta-contributi']) || empty($options['hide_conto'])) {
$width = !empty($options['show-ritenuta-contributi']) && empty($options['hide_conto']) ? 6 : 12;
@ -111,3 +95,25 @@ if (!empty($options['show-ritenuta-contributi']) || empty($options['hide_conto']
echo '
</div>';
}
echo '
<script>
$(document).ready(function(){
if(input("id_ritenuta_acconto").get()){
$("#calcolo_ritenuta_acconto").prop("required", true);
} else{
$("#calcolo_ritenuta_acconto").prop("required", false);
input("calcolo_ritenuta_acconto").set("");
}
$("#id_ritenuta_acconto").on("change", function(){
if(input("id_ritenuta_acconto").get()){
$("#calcolo_ritenuta_acconto").prop("required", true);
} else{
$("#calcolo_ritenuta_acconto").prop("required", false);
input("calcolo_ritenuta_acconto").set("");
}
});
});
</script>';

View File

@ -171,8 +171,6 @@ if (in_array($final_module['name'], ['Fatture di vendita', 'Fatture di acquisto'
}
$calcolo_ritenuta_acconto = setting("Metodologia calcolo ritenuta d'acconto predefinito");
$show_rivalsa = !empty($id_rivalsa_inps);
$show_ritenuta_acconto = setting("Percentuale ritenuta d'acconto") != '' || !empty($id_ritenuta_acconto);
$show_ritenuta_contributi = !empty($documento_finale['id_ritenuta_contributi']);
$id_conto = $documento_finale['idconto'];
@ -187,20 +185,17 @@ if (in_array($final_module['name'], ['Fatture di vendita', 'Fatture di acquisto'
</div>
<div class="box-body">';
if ($show_rivalsa || $show_ritenuta_acconto) {
echo '
<div class="row">';
// Rivalsa INPS
if ($show_rivalsa) {
echo '
<div class="col-md-4">
{[ "type": "select", "label": "'.tr('Rivalsa').'", "name": "id_rivalsa_inps", "value": "'.$id_rivalsa_inps.'", "values": "query=SELECT * FROM co_rivalse", "help": "'.($options['dir'] == 'entrata' ? setting('Tipo Cassa Previdenziale') : null).'" ]}
</div>';
}
// Ritenuta d'acconto
if ($show_ritenuta_acconto) {
echo '
<div class="col-md-4">
{[ "type": "select", "label": "'.tr("Ritenuta d'acconto").'", "name": "id_ritenuta_acconto", "value": "'.$id_ritenuta_acconto.'", "values": "query=SELECT * FROM co_ritenutaacconto" ]}
@ -211,11 +206,9 @@ if (in_array($final_module['name'], ['Fatture di vendita', 'Fatture di acquisto'
<div class="col-md-4">
{[ "type": "select", "label": "'.tr("Calcola ritenuta d'acconto su").'", "name": "calcolo_ritenuta_acconto", "value": "'.$calcolo_ritenuta_acconto.'", "values": "list=\"IMP\":\"Imponibile\", \"IMP+RIV\":\"Imponibile + rivalsa\"", "required": "1" ]}
</div>';
}
echo '
</div>';
}
$width = $show_ritenuta_contributi ? 6 : 12;
@ -288,7 +281,7 @@ foreach ($righe as $i => $riga) {
<input type="hidden" class="righe" name="righe" value="'.$i.'"/>
<input type="hidden" id="prezzo_unitario_'.$i.'" name="subtot['.$riga['id'].']" value="'.$riga['prezzo_unitario'].'" />
<input type="hidden" id="sconto_unitario_'.$i.'" name="sconto['.$riga['id'].']" value="'.$riga['sconto_unitario'].'" />
<input type="hidden" id="max_qta_'.$i.'" value="'.$qta_rimanente.'" />';
<input type="hidden" id="max_qta_'.$i.'" value="'.($options['superamento_soglia_qta'] ? '' : $riga['qta_rimanente']).'" />';
// Checkbox - da evadere?
echo '
@ -471,7 +464,7 @@ function ricalcolaTotaleRiga(r) {
let sconto = $("#sconto_unitario_" + r).val();
let max_qta_input = $("#max_qta_" + r);
let qta_max = max_qta_input.val() ? max_qta_input.val() : 0;
let qta_max = max_qta_input.val();
prezzo_unitario = parseFloat(prezzo_unitario);
sconto = parseFloat(sconto);
@ -550,4 +543,23 @@ echo '
}
ricalcolaTotale();
$(document).ready(function(){
if(input("id_ritenuta_acconto").get()){
$("#calcolo_ritenuta_acconto").prop("required", true);
} else{
$("#calcolo_ritenuta_acconto").prop("required", false);
input("calcolo_ritenuta_acconto").set("");
}
$("#id_ritenuta_acconto").on("change", function(){
if(input("id_ritenuta_acconto").get()){
$("#calcolo_ritenuta_acconto").prop("required", true);
} else{
$("#calcolo_ritenuta_acconto").prop("required", false);
input("calcolo_ritenuta_acconto").set("");
}
});
});
</script>';

View File

@ -35,6 +35,7 @@ if (!empty($id_documento)) {
'documento' => $documento,
'documento_finale' => $documento_finale,
'tipo_documento_finale' => Contratto::class,
'superamento_soglia_qta' => setting('Permetti il superamento della soglia quantità dei documenti di origine'),
];
echo App::load('importa.php', [], $options, true);

View File

@ -35,6 +35,7 @@ if (!empty($id_documento)) {
'documento' => $documento,
'documento_finale' => $documento_finale,
'tipo_documento_finale' => DDT::class,
'superamento_soglia_qta' => setting('Permetti il superamento della soglia quantità dei documenti di origine'),
];
echo App::load('importa.php', [], $options, true);

View File

@ -36,6 +36,7 @@ if (!empty($id_documento)) {
'documento' => $documento,
'documento_finale' => $documento_finale,
'tipo_documento_finale' => DDT::class,
'superamento_soglia_qta' => setting('Permetti il superamento della soglia quantità dei documenti di origine'),
];
echo App::load('importa.php', [], $options, true);

View File

@ -36,6 +36,7 @@ if (!empty($id_documento)) {
'documento' => $documento,
'documento_finale' => $documento_finale,
'tipo_documento_finale' => Fattura::class,
'superamento_soglia_qta' => setting('Permetti il superamento della soglia quantità dei documenti di origine'),
];
echo App::load('importa.php', [], $options, true);

View File

@ -37,6 +37,7 @@ if (!empty($id_documento)) {
'documento' => $documento,
'documento_finale' => $documento_finale,
'tipo_documento_finale' => Fattura::class,
'superamento_soglia_qta' => setting('Permetti il superamento della soglia quantità dei documenti di origine'),
];
echo App::load('importa.php', [], $options, true);

View File

@ -98,6 +98,7 @@ $options = [
'action' => 'add',
'hide_conto' => true,
'dir' => $dir,
'superamento_soglia_qta' => setting('Permetti il superamento della soglia quantità dei documenti di origine'),
];
// Leggo la ritenuta d'acconto predefinita per l'anagrafica e se non c'è leggo quella predefinita generica

View File

@ -37,6 +37,7 @@ if (!empty($id_documento)) {
'documento' => $documento,
'documento_finale' => $documento_finale,
'tipo_documento_finale' => Fattura::class,
'superamento_soglia_qta' => setting('Permetti il superamento della soglia quantità dei documenti di origine'),
];
echo App::load('importa.php', [], $options, true);

View File

@ -36,6 +36,7 @@ if (!empty($id_documento)) {
'documento' => $documento,
'documento_finale' => $documento_finale,
'tipo_documento_finale' => Fattura::class,
'superamento_soglia_qta' => setting('Permetti il superamento della soglia quantità dei documenti di origine'),
];
echo App::load('importa.php', [], $options, true);

View File

@ -37,6 +37,7 @@ if (!empty($id_documento)) {
'documento' => $documento,
'documento_finale' => $documento_finale,
'tipo_documento_finale' => Intervento::class,
'superamento_soglia_qta' => setting('Permetti il superamento della soglia quantità dei documenti di origine'),
];
echo App::load('importa.php', [], $options, true);

View File

@ -36,6 +36,7 @@ if (!empty($id_documento)) {
'documento' => $documento,
'documento_finale' => $documento_finale,
'tipo_documento_finale' => Ordine::class,
'superamento_soglia_qta' => setting('Permetti il superamento della soglia quantità dei documenti di origine'),
];
echo App::load('importa.php', [], $options, true);

View File

@ -367,7 +367,7 @@ abstract class Component extends Model
$original = $this->getOriginalComponent();
// Controllo per evitare di superare la quantità totale del componente di origine
if ($original->qta_rimanente < $diff) {
if ($original->qta_rimanente < $diff && empty(setting('Permetti il superamento della soglia quantità dei documenti di origine'))) {
$diff = $original->qta_rimanente;
$value = $previous + $diff;
}

View File

@ -37,7 +37,7 @@ if ($documento->direzione == 'entrata') {
}
if ($documento->direzione == 'uscita') {
++$columns;
$columns += 2;
$char_number = $options['pricing'] ? 26 : 63;
} else {
$char_number = $options['pricing'] ? 45 : 82;
@ -53,11 +53,12 @@ echo "
<table class='table table-striped table-bordered' id='contents'>
<thead>
<tr>
<th class='text-center' style='width:5%'>".tr('#', [], ['upper' => true]).'</th>';
<th class='text-center' style='width:4%'>".tr('#', [], ['upper' => true]).'</th>';
if ($documento->direzione == 'uscita') {
echo "
<th class='text-center' style='width:10%'>".tr('Codice', [], ['upper' => true]).'</th>';
<th class='text-center' style='width:11%'>".tr('Codice', [], ['upper' => true])."</th>
<th class='text-center' style='width:11%'>".tr('Codice fornitore', [], ['upper' => true])."</th>";
}
if ($has_image) {
@ -67,13 +68,13 @@ echo "
echo "
<th class='text-center'>".tr('Descrizione', [], ['upper' => true])."</th>
<th class='text-center' style='width:10%'>".tr('Q.tà', [], ['upper' => true]).'</th>';
<th class='text-center' style='width:9%'>".tr('Q.tà', [], ['upper' => true]).'</th>';
if ($options['pricing']) {
echo "
<th class='text-center' style='width:15%'>".tr('Prezzo unitario', [], ['upper' => true])."</th>
<th class='text-center' style='width:15%'>".tr('Imponibile', [], ['upper' => true])."</th>
<th class='text-center' style='width:10%'>".tr('IVA', [], ['upper' => true]).' (%)</th>';
<th class='text-center' style='width:11%'>".tr('Prezzo unitario', [], ['upper' => true])."</th>
<th class='text-center' style='width:11%'>".tr('Imponibile', [], ['upper' => true])."</th>
<th class='text-center' style='width:5%'>".tr('IVA', [], ['upper' => true]).' (%)</th>';
}
echo "
@ -96,13 +97,6 @@ foreach ($righe as $riga) {
'.$num.'
</td>';
if ($documento->direzione == 'uscita') {
echo '
<td class="text-center" style="vertical-align: middle">
'.$riga->articolo->codice.'
</td>';
}
if ($has_image) {
if ($riga->isArticolo() && !empty($riga->articolo->image)) {
echo '
@ -117,6 +111,16 @@ foreach ($righe as $riga) {
}
}
if ($documento->direzione == 'uscita') {
echo '
<td class="text-center" style="vertical-align: middle">
'.$riga->articolo->codice.'
</td>
<td class="text-center" style="vertical-align: middle">
'.($riga->articolo ? $riga->articolo->dettaglioFornitore($documento->idanagrafica)->codice_fornitore : '').'
</td>';
}
echo '
<td>
'.nl2br($r['descrizione']);
@ -165,7 +169,7 @@ foreach ($righe as $riga) {
// Prezzo unitario
echo '
<td class="text-right">
'.moneyFormat($riga->prezzo_unitario);
'.moneyFormat($riga->prezzo_unitario);
if ($riga->sconto > 0) {
$text = discountInfo($riga, false);
@ -194,7 +198,7 @@ foreach ($righe as $riga) {
echo '
<td class="text-center">
<small>'.Translator::dateToLocale($riga->data_evasione).($riga->ora_evasione ? '<br>'.Translator::timeToLocale($riga->ora_evasione).'' : '').'</small>
'.Translator::dateToLocale($riga->data_evasione).($riga->ora_evasione ? '<br>'.Translator::timeToLocale($riga->ora_evasione).'' : '').'
</td>';
} else {
echo '
@ -230,7 +234,7 @@ $netto_a_pagare = $documento->netto;
$show_sconto = $sconto > 0;
$colspan = 5;
($documento->direzione == 'uscita' ? $colspan++ : $colspan);
($documento->direzione == 'uscita' ? $colspan+=2 : $colspan);
($has_image ? $colspan++ : $colspan);
// TOTALE COSTI FINALI

View File

@ -18,7 +18,7 @@
*/
$settings = [
'font-size' => 9,
'font-size' => 8,
];
return $settings;

View File

@ -64,3 +64,6 @@ INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`
-- Aggiunta vista "Esigibilità" per il modulo "IVA"
INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `search_inside`, `order_by`, `visible`, `summable`, `default`) VALUES
(NULL, (SELECT `zz_modules`.`id` FROM `zz_modules` WHERE `zz_modules`.`name`='IVA'), 'Esigibilità', 'IF(esigibilita=\'I\', \'IVA ad esigibilità immediata\', IF(esigibilita=\'D\', \'IVA ad esigibilità differita\', \'Scissione dei pagamenti\'))', 5, 1, 0, 0, '', '', 1, 0, 0);
-- Gestione righe da documenti esterni
INSERT INTO `zz_settings` (`nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES ('Permetti il superamento della soglia quantità dei documenti di origine', '0', 'boolean', '1', 'Generali', '20', NULL);