fix: gestione movimentazioni e creazioni articoli fra sedi abilitate
This commit is contained in:
parent
9544ff1b5d
commit
f4e0e373ec
|
@ -389,17 +389,12 @@ switch ($resource) {
|
|||
$user = Auth::user();
|
||||
$id_azienda = setting('Azienda predefinita');
|
||||
|
||||
$query = "SELECT * FROM (SELECT '0' AS id, 'Sede legale' AS `nomesede`, CONCAT_WS(' - ', \"".tr('Sede legale')."\" , (SELECT CONCAT (`citta`, IF(`indirizzo`!='',CONCAT(' (', `indirizzo`, ')'), ''),' (', `ragione_sociale`,')') FROM `an_anagrafiche` |where|)) AS descrizione UNION SELECT `id`, `nomesede`, CONCAT_WS(' - ', `nomesede`, CONCAT(`citta`, IF(`indirizzo`!='',CONCAT(' (', `indirizzo`, ')'), '')) ) FROM `an_sedi` |where|) AS tab |filter| ORDER BY descrizione";
|
||||
|
||||
foreach ($elements as $element) {
|
||||
$filter[] = '`id`='.prepare($element);
|
||||
}
|
||||
$query = "SELECT * FROM (SELECT '0' AS id, 'Sede legale' AS `nomesede`, CONCAT_WS(' - ', \"".tr('Sede legale')."\" , (SELECT CONCAT (`citta`, IF(`indirizzo`!='',CONCAT(' (', `indirizzo`, ')'), ''),' (', `ragione_sociale`,')') FROM `an_anagrafiche` |where|)) AS descrizione UNION SELECT `id`, `nomesede`, CONCAT_WS(' - ', `nomesede`, CONCAT(`citta`, IF(`indirizzo`!='',CONCAT(' (', `indirizzo`, ')'), '')) ) FROM `an_sedi`) AS tab |filter| ORDER BY descrizione";
|
||||
|
||||
$where[] = '`idanagrafica`='.prepare($id_azienda);
|
||||
// admin o utente senza una sede prefissata, avrà accesso a tutte le sedi
|
||||
if (!empty($user->sedi) and !$user->is_admin) {
|
||||
$where[] = '`id` IN('.implode(',', $user->sedi).')';
|
||||
}
|
||||
|
||||
// filtro in base alle sedi abilitate all'anagrafica
|
||||
$filter[] = '`id` IN('.implode(',', $user->sedi).')';
|
||||
|
||||
if (!empty($search)) {
|
||||
$search_fields[] = '`nomesede` LIKE '.prepare('%'.$search.'%');
|
||||
|
|
|
@ -83,7 +83,8 @@ switch (post('op')) {
|
|||
|
||||
if (!empty(post('qta'))) {
|
||||
$data_movimento = new Carbon();
|
||||
$articolo->movimenta(post('qta'), tr('Carico manuale'), $data_movimento->format('Y-m-d'), true);
|
||||
$sede = post('sede');
|
||||
$articolo->movimenta(post('qta'), tr('Carico manuale'), $data_movimento->format('Y-m-d'), true, $sede);
|
||||
}
|
||||
|
||||
$id_record = $articolo->id;
|
||||
|
|
|
@ -92,13 +92,11 @@ $aliquota_predefinita = floatval(Aliquota::find($iva_predefinita)->percentuale);
|
|||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
{[ "type": "number", "label": "<?php echo tr('Soglia minima quantità'); ?>", "name": "threshold_qta", "decimals": "qta", "min-value": "undefined" ]}
|
||||
{[ "type": "select", "label": "<?php echo tr('Sede'); ?>", "name": "sede", "ajax-source": "sedi_azienda", "value": "0", "required": 1 ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
{[ "type": "select", "label": "<?php echo tr('Iva di vendita'); ?>", "name": "idiva_vendita", "ajax-source": "iva", "valore_predefinito": "Iva predefinita", "help": "<?php echo tr('Se non specificata, verrà utilizzata l\'iva di default delle impostazioni'); ?>" ]}
|
||||
<input type="hidden" name="prezzi_ivati" value="<?php echo $prezzi_ivati; ?>">
|
||||
<input type="hidden" name="aliquota_predefinita" value="<?php echo $aliquota_predefinita; ?>">
|
||||
{[ "type": "number", "label": "<?php echo tr('Soglia minima quantità'); ?>", "name": "threshold_qta", "decimals": "qta", "min-value": "undefined" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -116,17 +114,23 @@ $aliquota_predefinita = floatval(Aliquota::find($iva_predefinita)->percentuale);
|
|||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="col-md-4">
|
||||
{[ "type": "select", "label": "<?php echo tr('Conto predefinito di acquisto'); ?>", "name": "idconto_acquisto", "ajax-source": "conti-acquisti" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<div class="col-md-4">
|
||||
{[ "type": "select", "label": "<?php echo tr('Conto predefinito di vendita'); ?>", "name": "idconto_vendita", "ajax-source": "conti-vendite" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
{[ "type": "select", "label": "<?php echo tr('Iva di vendita'); ?>", "name": "idiva_vendita", "ajax-source": "iva", "valore_predefinito": "Iva predefinita", "help": "<?php echo tr('Se non specificata, verrà utilizzata l\'iva di default delle impostazioni'); ?>" ]}
|
||||
<input type="hidden" name="prezzi_ivati" value="<?php echo $prezzi_ivati; ?>">
|
||||
<input type="hidden" name="aliquota_predefinita" value="<?php echo $aliquota_predefinita; ?>">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="col-md-4">
|
||||
{[ "type": "checkbox", "label": "<?php echo tr('Abilita serial number'); ?>", "name": "abilita_serial_add", "help": "<?php echo tr('Abilita serial number in fase di aggiunta articolo in fattura o ddt'); ?>", "value": "<?php echo setting('Serial number abilitato di default'); ?>","placeholder": "<?php echo tr('Serial number'); ?>" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -71,10 +71,10 @@ class Articolo extends Model
|
|||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function movimenta($qta, $descrizone = null, $data = null, $manuale = false, $array = [])
|
||||
public function movimenta($qta, $descrizone = null, $data = null, $manuale = false, $id_sede = null, $array = [], )
|
||||
{
|
||||
$data = ($data ?: date('Y-m-d H:i:s'));
|
||||
$id = $this->registra($qta, $descrizone, $data, $manuale, $array);
|
||||
$id = $this->registra($qta, $descrizone, $data, $manuale, $array, $id_sede);
|
||||
|
||||
if (empty($this->servizio)) {
|
||||
$this->qta += $qta;
|
||||
|
@ -95,7 +95,7 @@ class Articolo extends Model
|
|||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function registra($qta, $descrizone = null, $data = null, $manuale = false, $array = [])
|
||||
public function registra($qta, $descrizone = null, $data = null, $manuale = false, $array = [], $id_sede = null)
|
||||
{
|
||||
if (empty($qta)) {
|
||||
return false;
|
||||
|
@ -112,6 +112,7 @@ class Articolo extends Model
|
|||
'movimento' => $descrizone,
|
||||
'data' => $data,
|
||||
'manuale' => $manuale,
|
||||
'idsede' => $id_sede ?: 0,
|
||||
'idutente' => $user->id,
|
||||
]));
|
||||
}
|
||||
|
|
|
@ -30,9 +30,6 @@ if (setting('Attiva scorciatoie da tastiera')) {
|
|||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
|
||||
<form action="" method="post" id="add-form">
|
||||
<input type="hidden" name="op" value="add">
|
||||
<input type="hidden" name="backto" value="record-edit">
|
||||
|
|
Loading…
Reference in New Issue