This commit is contained in:
MatteoPistorello 2020-12-04 16:19:14 +01:00
commit 93c684b4dd
12 changed files with 68 additions and 42 deletions

View File

@ -289,5 +289,27 @@ function initDynamicSelectInput(input) {
},
width: '100%'
});
// Rimozione delle option presenti nell'HTML per permettere l'aggiornamento dei dati via AJAX
// Rimozione per select multipli
if ($input.prop("multiple")) {
$input.on('select2:unselecting', function (e) {
let data = e.params ? e.params.data : null;
if (data) {
let option = $input.find('option[value="' + data.id + '"]');
option.remove();
}
});
}
// Rimozione per select singoli
else {
$input.on('select2:selecting', function (e) {
let data = $input.selectData();
if (data) {
let option = $input.find('option[value="' + data.id + '"]');
option.remove();
}
});
}
}

View File

@ -58,7 +58,6 @@ class Anagrafiche extends Resource implements RetrieveInterface, CreateInterface
'an_anagrafiche.deleted_at'
)->orderBy('an_anagrafiche.ragione_sociale');
$filters = [];
if ($request['resource'] != 'anagrafiche') {
$type = 'Cliente';

View File

@ -148,6 +148,9 @@ switch ($resource) {
$data = AJAX::selectResults($query, $where, $filter, $search_fields, $limit, $custom);
$rs = $data['results'];
// Utilizzo dell'impostazione per disabilitare articoli con quantità <= 0
$permetti_movimenti_sotto_zero = setting('Permetti selezione articoli con quantità minore o uguale a zero in Documenti di Vendita') ? true : $superselect['permetti_movimento_a_zero'];
// IVA da impostazioni
foreach ($rs as $k => $r) {
// Lettura movimenti delle mie sedi
@ -164,7 +167,7 @@ switch ($resource) {
$rs[$k] = array_merge($r, [
'text' => $r['codice'].' - '.$r['descrizione'].' '.(!$r['servizio'] ? '('.Translator::numberToLocale($qta).(!empty($r['um']) ? ' '.$r['um'] : '').')' : ''),
'disabled' => $r['qta'] <= 0 && !$superselect['permetti_movimento_a_zero'] && !$r['servizio'],
'disabled' => $r['qta'] <= 0 && !$permetti_movimenti_sotto_zero && !$r['servizio'],
]);
}
@ -256,14 +259,14 @@ switch ($resource) {
}
break;
case 'fornitori-articolo':
$query = 'SELECT an_anagrafiche.idanagrafica AS id, an_anagrafiche.ragione_sociale AS descrizione, (mg_prezzi_articoli.prezzo_unitario-(mg_prezzi_articoli.prezzo_unitario*mg_prezzi_articoli.sconto_percentuale)/100) AS prezzo_unitario FROM mg_prezzi_articoli LEFT JOIN an_anagrafiche ON mg_prezzi_articoli.id_anagrafica=an_anagrafiche.idanagrafica |where| ORDER BY an_anagrafiche.ragione_sociale';
foreach ($elements as $element) {
$filter[] = 'an_anagrafiche.idanagrafica='.prepare($element);
}
$where[] = 'dir="uscita"';
$where[] = 'minimo IS NULL';
$where[] = 'massimo IS NULL';

View File

@ -175,7 +175,7 @@ include_once __DIR__.'/../../core.php';
<div class="row">
<div class="col-md-12">
{[ "type": "select", "label": "<?php echo tr('Fornitore predefinito'); ?>", "name": "id_fornitore", "ajax-source": "fornitori-articolo", "select-options": <?php echo json_encode(['id_articolo' => $id_record]); ?>, "value":"$id_fornitore$", "help": "<?php echo tr('Fornitore predefinito, utilizzato dal gestionale per funzioni più avanzate della gestione magazzino'); ?>." ]}
{[ "type": "select", "label": "<?php echo tr('Fornitore predefinito'); ?>", "name": "id_fornitore", "ajax-source": "fornitori-articolo", "select-options": <?php echo json_encode(['id_articolo' => $id_record]); ?>, "value":"$id_fornitore$", "help": "<?php echo tr('Fornitore predefinito, utilizzato dal gestionale per funzioni più avanzate della gestione magazzino'); ?>." ]}
</div>
</div>
@ -460,7 +460,7 @@ if (!empty($elementi)) {
<script>
input('id_fornitore').change(function(){
let prezzo_unitario = $(this).selectData() ? $(this).selectData().prezzo_unitario : "";
let prezzo_unitario = $(this).selectData() ? $(this).selectData().prezzo_unitario : "";
if(input('id_fornitore').get()){
input('prezzo_acquisto').set(prezzo_unitario);
input('prezzo_acquisto').disable();
@ -474,4 +474,4 @@ $(document).ready(function(){
input('prezzo_acquisto').disable();
}
});
</script>
</script>

View File

@ -21,11 +21,11 @@ namespace Modules\Articoli\Import;
use Carbon\Carbon;
use Importer\CSVImporter;
use Modules\Anagrafiche\Anagrafica;
use Modules\Anagrafiche\Sede;
use Modules\Articoli\Articolo;
use Modules\Articoli\Categoria;
use Modules\Iva\Aliquota;
use Modules\Anagrafiche\Anagrafica;
use Plugins\DettagliArticolo\DettaglioPrezzo;
/**

View File

@ -28,14 +28,13 @@ function renderChecklist($check, $level = 0)
<span class="text">'.$check->content.'</span>';
if (empty($check->user) || $check->user->id == $user->id) {
$result .= '
<div class="tools">
<i class="fa fa-trash-o check-delete"></i>
</div>';
}
if ($level == 0) {
$result .= '
<span class="handle pull-right">
@ -46,10 +45,10 @@ function renderChecklist($check, $level = 0)
$result .= '
<span class="badge pull-right" style="margin-right:5px">'.(!empty($check->checked_at) ? tr('Verificato da _NAME_ il _DATE_', [
'_NAME_' => $check->checkUser->username,
'_DATE_' => timestampFormat($check->checked_at),
'_NAME_' => $check->checkUser->username,
'_DATE_' => timestampFormat($check->checked_at),
]) : '').'</span>';
$result .= '
<ul class="todo-list">';

View File

@ -432,7 +432,7 @@ switch (post('op')) {
case 'export-csv':
$file = temp_file().'.csv';
$exporter = new CSV($file);
// Esportazione dei record selezionati

View File

@ -18,8 +18,8 @@
*/
use Modules\Anagrafiche\Anagrafica;
use Modules\Iva\Aliquota;
use Modules\Fatture\Gestori\Bollo;
use Modules\Iva\Aliquota;
include_once __DIR__.'/../../core.php';
@ -358,7 +358,7 @@ elseif ($record['stato'] == 'Bozza') {
}
echo '
</div>';
if($dir == 'entrata'){
if ($dir == 'entrata') {
echo '
<div class="row">
<div class="col-md-3">
@ -375,8 +375,8 @@ elseif ($record['stato'] == 'Bozza') {
{[ "type": "number", "label": "'.tr('Importo marca da bollo').'", "name": "bollo", "value": "$bollo$"]}
</div>
</div>';
$bollo = new Bollo($fattura);
}
$bollo = new Bollo($fattura);
}
?>
<div class="row">
<div class="col-md-12">
@ -888,12 +888,12 @@ function cambiaStato() {
}
}
}';
if($dir=='entrata'){
if ($dir == 'entrata') {
echo '
function bolloAutomatico() {
let bollo_automatico = input("bollo_automatico");
let addebita_bollo = input("addebita_bollo");
let has_bollo ='.($bollo->getBollo()>0 ? "true" : "false").';
let has_bollo ='.($bollo->getBollo() > 0 ? 'true' : 'false').';
if(bollo_automatico.get()==0){
$(".bollo").show();
input("bollo").enable();
@ -902,7 +902,7 @@ if($dir=='entrata'){
} else {
$(".bollo").show();
input("bollo").disable();
$("#bollo").val('.setting("Importo marca da bollo").');
$("#bollo").val('.setting('Importo marca da bollo').');
}
}
$(document).ready(function() {

View File

@ -77,9 +77,9 @@ switch (filter('op')) {
$dettaglio_predefinito->sconto_percentuale = $sconto;
$dettaglio_predefinito->setPrezzoUnitario($prezzo_unitario);
$dettaglio_predefinito->save();
if($articolo->id_fornitore==$anagrafica->idanagrafica && $direzione=='uscita'){
$prezzo_unitario = $prezzo_unitario-($prezzo_unitario*$sconto/100);
$articolo->prezzo_acquisto=$prezzo_unitario;
if ($articolo->id_fornitore == $anagrafica->idanagrafica && $direzione == 'uscita') {
$prezzo_unitario = $prezzo_unitario - ($prezzo_unitario * $sconto / 100);
$articolo->prezzo_acquisto = $prezzo_unitario;
$articolo->save();
}
}

View File

@ -34,9 +34,9 @@ $direzione = get('direzione') == 'uscita' ? 'uscita' : 'entrata';
$articolo = Articolo::find($id_articolo);
$anagrafica = Anagrafica::find($id_anagrafica);
if($direzione=='entrata'){
if ($direzione == 'entrata') {
$prezzo_predefinito = $prezzi_ivati ? $articolo->prezzo_vendita_ivato : $articolo->prezzo_vendita;
} else{
} else {
$prezzo_predefinito = $articolo->prezzo_acquisto;
}
// Individuazione dei prezzi registrati
@ -45,23 +45,23 @@ $dettagli = DettaglioPrezzo::dettagli($id_articolo, $id_anagrafica, $direzione)
$dettaglio_predefinito = DettaglioPrezzo::dettaglioPredefinito($id_articolo, $id_anagrafica, $direzione)
->first();
if($articolo->id_fornitore==$anagrafica->idanagrafica){
$color='success';
$icon='check';
$text= tr('Sì');
if ($articolo->id_fornitore == $anagrafica->idanagrafica) {
$color = 'success';
$icon = 'check';
$text = tr('Sì');
} else {
$color='danger';
$icon='times';
$text= tr('No');
$color = 'danger';
$icon = 'times';
$text = tr('No');
}
echo '
<table class="table table-striped table-condensed table-bordered">
<tr>
<th class="text-center col-md-4">'.($direzione=='entrata' ? tr('Cliente') : tr('Fornitore')).'</th>
<th class="text-center col-md-4">'.($direzione == 'entrata' ? tr('Cliente') : tr('Fornitore')).'</th>
<th class="text-center col-md-4">'.tr('Prezzo predefinito').'</th>';
if($direzione=='uscita'){
if ($direzione == 'uscita') {
echo '<th class="text-center col-md-4">'.tr('Fornitore predefinito').'</th>';
} else{
} else {
echo '<th class="text-center col-md-4"></th>';
}
echo '
@ -69,9 +69,9 @@ echo '
<tr>
<td class="text-center">'.$anagrafica->ragione_sociale.'</td>
<td class="text-center">'.moneyFormat($prezzo_predefinito).'</td>';
if($direzione=='uscita'){
if ($direzione == 'uscita') {
echo '<td class="text-center"><i class="fa fa-'.$icon.' text-'.$color.'"></i> '.$text.'</td>';
} else{
} else {
echo '<td></td>';
}
echo '
@ -89,7 +89,7 @@ echo '
<div class="row">
<div class="col-md-4">
{[ "type": "checkbox", "label": "'.tr("Imposta prezzo per questa anagrafica").'", "name": "modifica_prezzi", "value": "'.intval(!empty($dettaglio_predefinito)).'" ]}
{[ "type": "checkbox", "label": "'.tr('Imposta prezzo per questa anagrafica').'", "name": "modifica_prezzi", "value": "'.intval(!empty($dettaglio_predefinito)).'" ]}
</div>
</div>

View File

@ -90,7 +90,7 @@ if (!$clienti->isEmpty()) {
</button>
</td>
</tr>';
foreach ($prezzi as $key => $dettaglio) {
echo '
<tr>

View File

@ -115,7 +115,7 @@ UPDATE `zz_views` SET `default` = 1 WHERE `zz_views`.`id_module` = (SELECT `zz_m
UPDATE `zz_modules` SET `directory` = 'piano_sconto' WHERE `zz_modules`.`id` = (SELECT `id` FROM `zz_modules` WHERE `name` = 'Piani di sconto/rincaro');
-- Aggiunto flag rinnovo automatico in contratti
ALTER TABLE `co_contratti` ADD `rinnovo_automatico` TINYINT(1) NOT NULL DEFAULT '0' AFTER `rinnovabile`;
ALTER TABLE `co_contratti` ADD `rinnovo_automatico` TINYINT(1) NOT NULL DEFAULT '0' AFTER `rinnovabile`;
-- Aggiunto segmento per attività NON completate
INSERT INTO `zz_segments` (`id`, `id_module`, `name`, `clause`, `position`, `pattern`, `note`, `predefined`, `predefined_accredito`, `predefined_addebito`, `is_fiscale`) VALUES (NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Interventi'), 'Non completate', 'in_interventi.idstatointervento NOT IN(SELECT in_statiintervento.idstatointervento FROM in_statiintervento WHERE is_completato=1)', 'WHR', '####', '', '0', '0', '0', '0');
@ -125,4 +125,7 @@ DELETE FROM `zz_segments` WHERE name='Scadenzario Ri.Ba.';
INSERT INTO `zz_segments` (`id_module`, `name`, `clause`, `position`, `pattern`, `note`, `predefined`, `predefined_accredito`, `predefined_addebito`, `is_fiscale`) VALUES
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Scadenzario'), 'Scadenzario Ri.Ba. Clienti', 'co_pagamenti.riba=1 AND co_tipidocumento.dir=\"entrata\"', 'WHR', '####', '', 0, 0, 0, 0),
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Scadenzario'), 'Scadenzario Ri.Ba. Fornitori', 'co_pagamenti.riba=1 AND co_tipidocumento.dir=\"uscita\"', 'WHR', '####', '', 0, 0, 0, 0);
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Scadenzario'), 'Scadenzario Ri.Ba. Fornitori', 'co_pagamenti.riba=1 AND co_tipidocumento.dir=\"uscita\"', 'WHR', '####', '', 0, 0, 0, 0);
-- Aggiunta impostazione per disabilitare articoli con quantità <= 0
INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES (NULL, 'Permetti selezione articoli con quantità minore o uguale a zero in Documenti di Vendita', '0', 'boolean', '1', 'Generali', '20', NULL);