Merge
This commit is contained in:
commit
93c684b4dd
|
@ -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();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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;
|
||||
|
||||
/**
|
||||
|
|
|
@ -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">';
|
||||
|
||||
|
|
|
@ -432,7 +432,7 @@ switch (post('op')) {
|
|||
|
||||
case 'export-csv':
|
||||
$file = temp_file().'.csv';
|
||||
|
||||
|
||||
$exporter = new CSV($file);
|
||||
|
||||
// Esportazione dei record selezionati
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
|
@ -90,7 +90,7 @@ if (!$clienti->isEmpty()) {
|
|||
</button>
|
||||
</td>
|
||||
</tr>';
|
||||
|
||||
|
||||
foreach ($prezzi as $key => $dettaglio) {
|
||||
echo '
|
||||
<tr>
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue