1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2024-12-24 14:31:42 +01:00

Aggiunta funzioni per movimentazione articoli libera

This commit is contained in:
loviuz 2019-12-12 19:08:23 +01:00
parent 4bd795122f
commit f4051a53d1
5 changed files with 136 additions and 4 deletions

View File

@ -90,6 +90,7 @@ switch ($resource) {
if (!empty($search)) { if (!empty($search)) {
$search_fields[] = 'mg_articoli.descrizione LIKE '.prepare('%'.$search.'%'); $search_fields[] = 'mg_articoli.descrizione LIKE '.prepare('%'.$search.'%');
$search_fields[] = 'mg_articoli.codice LIKE '.prepare('%'.$search.'%'); $search_fields[] = 'mg_articoli.codice LIKE '.prepare('%'.$search.'%');
$search_fields[] = 'mg_articoli.barcode LIKE '.prepare('%'.$search.'%');
} }
$custom = [ $custom = [

View File

@ -45,7 +45,7 @@ class Articolo extends Model
*/ */
public function movimenta($qta, $descrizone = null, $data = null, $manuale = false, $array = []) public function movimenta($qta, $descrizone = null, $data = null, $manuale = false, $array = [])
{ {
$this->registra($qta, $descrizone, $data, $manuale, $array); $id = $this->registra($qta, $descrizone, $data, $manuale, $array);
if ($this->servizio == 0) { if ($this->servizio == 0) {
$this->qta += $qta; $this->qta += $qta;
@ -53,7 +53,7 @@ class Articolo extends Model
$this->save(); $this->save();
} }
return true; return $id;
} }
/** /**
@ -69,6 +69,8 @@ class Articolo extends Model
*/ */
public function registra($qta, $descrizone = null, $data = null, $manuale = false, $array = []) public function registra($qta, $descrizone = null, $data = null, $manuale = false, $array = [])
{ {
$id = false;
if (empty($qta)) { if (empty($qta)) {
return false; return false;
} }
@ -84,8 +86,9 @@ class Articolo extends Model
'manuale' => $manuale, 'manuale' => $manuale,
])); ]));
} }
$id = database()->lastInsertedID();
return true; return $id;
} }
// Attributi Eloquent // Attributi Eloquent

View File

@ -0,0 +1,38 @@
<?php
include_once __DIR__.'/../../core.php';
use Modules\Articoli\Articolo;
switch (post('op')) {
case 'add':
$idsede_partenza = post('idsede_partenza');
$idsede_destinazione = post('idsede_destinazione');
$qta = ( post('direzione') == 'Carico manuale' ) ? post('qta') : -post('qta');
if( post('direzione') == 'Carico manuale' ){
if( $idsede_partenza == 0){
$qta = -post('qta');
} elseif( $idsede_partenza != 0 && $idsede_destinazione == 0){
$qta = post('qta');
$idsede_partenza = post('idsede_destinazione');
$idsede_destinazione = post('idsede_partenza');
}
} else {
if( $idsede_destinazione == 0){
$qta = -post('qta');
$idsede_partenza = post('idsede_destinazione');
$idsede_destinazione = post('idsede_partenza');
} elseif( $idsede_partenza == 0 && $idsede_destinazione != 0){
$qta = post('qta');
}
}
$articolo = Articolo::find(post('idarticolo'));
$idmovimento = $articolo->movimenta($qta, post('movimento'), post('data'), 1);
$dbo->query('UPDATE mg_movimenti SET idsede_azienda='.prepare($idsede_partenza).', idsede_controparte='.prepare($idsede_destinazione).' WHERE id='.prepare($idmovimento));
break;
}

87
modules/movimenti/add.php Normal file
View File

@ -0,0 +1,87 @@
<?php
include_once __DIR__.'/../../core.php';
// Imposto come azienda l'azienda predefinita per selezionare le sedi a cui ho accesso
$_SESSION['superselect']['idanagrafica'] = get_var('Azienda predefinita');
// Azzero le sedi selezionate
unset($_SESSION['superselect']['idsede_partenza']);
unset($_SESSION['superselect']['idsede_destinazione']);
$_SESSION['superselect']['idsede_partenza'] = 0;
$_SESSION['superselect']['idsede_destinazione'] = 0;
?>
<form action="" method="post" id="add-form" onsubmit="rimuovi();">
<input type="hidden" name="op" value="add">
<input type="hidden" name="backto" value="record-edit">
<div class="row">
<div class="col-md-4">
{["type":"select", "label":"<?php echo tr('Articolo');?>", "name":"idarticolo", "ajax-source":"articoli", "value":"", "required":1]}
</div>
<div class="col-md-2">
{["type":"number", "label":"<?php echo tr('Quantità');?>", "name":"qta", "decimals":"2", "value":"1", "required":1]}
</div>
<div class="col-md-2">
{["type":"date", "label":"<?php echo tr('Data');?>", "name":"data", "value":"-now-", "required":1]}
</div>
<div class="col-md-4">
{["type":"select", "label":"<?php echo tr('Causale');?>", "name":"direzione", "values":"list=\"Carico manuale\":\"Carico\", \"Scarico manuale\":\"Scarico\" ", "value":"Carico manuale", "required":1]}
</div>
</div>
<div class="row">
<div class="col-md-12">
{["type":"textarea", "label":"<?php echo tr('Descrizione movimento');?>", "name":"movimento", "required":1]}
</div>
</div>
<div class="row">
<div class="col-md-6">
{[ "type": "select", "label": "<?php echo tr('Sede'); ?>", "name": "idsede_destinazione", "ajax-source": "sedi_azienda", "value": "0", "required":1 ]}
</div>
<div class="col-md-6">
{[ "type": "select", "label": "<?php echo tr('Partenza merce'); ?>", "name": "idsede_partenza", "ajax-source": "sedi_azienda", "value": "0", "required":1 ]}
</div>
</div>
<!-- PULSANTI -->
<div class="row">
<div class="col-md-12 text-right">
<button type="submit" class="btn btn-default"><i class="fa fa-plus"></i> <?php echo tr('Aggiungi e chiudi'); ?></button>
<a type="button" class="btn btn-primary" onclick="ajax_submit();"><i class="fa fa-plus"></i> <?php echo tr('Aggiungi'); ?></a>
</div>
</div>
</form>
<script>
$('#bs-popup').on('shown.bs.modal', function(){
$('#direzione').on('change', function(){
$('#movimento').val( $(this).val() );
});
$('#direzione').trigger('change');
$('#idarticolo').select2('open');
});
function ajax_submit() {
//Controllo che siano presenti tutti i dati richiesti
if( $("#add-form").parsley().validate() ){
submitAjax(
$('#add-form'),
{},
function() {
$("#idarticolo").selectReset();
$("#qta").val(1);
renderMessages();
}, function(){}
);
}
}
</script>

View File

@ -14,4 +14,7 @@ UPDATE `in_statiintervento` SET `descrizione` = 'Programmato' WHERE `in_statiint
UPDATE `in_interventi` SET `data_scadenza` = NULL WHERE `data_scadenza` = '0000-00-00 00:00:00'; UPDATE `in_interventi` SET `data_scadenza` = NULL WHERE `data_scadenza` = '0000-00-00 00:00:00';
-- Permetti inserimento sessioni anche per altri tecnici -- Permetti inserimento sessioni anche per altri tecnici
INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `created_at`, `updated_at`, `order`, `help`) VALUES (NULL, 'Permetti inserimento sessioni degli altri tecnici', '0', 'boolean', '1', 'Interventi', NULL, NULL, NULL, 'Permette al tecnico l\'inserimento delle sessioni di lavoro anche per gli altri tecnici.'); INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `created_at`, `updated_at`, `order`, `help`) VALUES (NULL, 'Permetti inserimento sessioni degli altri tecnici', '0', 'boolean', '1', 'Interventi', NULL, NULL, NULL, 'Permette al tecnico l\'inserimento delle sessioni di lavoro anche per gli altri tecnici.');
-- Aggiunta cartella per il modulo "Movimenti"
UPDATE `zz_modules` SET `directory` = 'movimenti' WHERE `name` = 'Movimenti';