mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-02-16 11:30:55 +01:00
Miglioramento articoli in Interventi
This commit is contained in:
parent
3f5a9ccec3
commit
7ceabfa2a7
@ -77,10 +77,7 @@ if (filter('op') == 'link_file' || filter('op') == 'unlink_file') {
|
||||
$mail->setTemplate($id_template, $id_record);
|
||||
|
||||
// Destinatari
|
||||
$receivers = post('destinatari');
|
||||
$receivers = array_filter($receivers, function ($value) {
|
||||
return !empty($value);
|
||||
});
|
||||
$receivers = array_clean(post('destinatari'));
|
||||
$types = post('tipo_destinatari');
|
||||
foreach ($receivers as $key => $receiver) {
|
||||
$mail->addReceiver($receiver, $types[$key]);
|
||||
@ -172,9 +169,7 @@ if ($structure->permission == 'rw') {
|
||||
// Esecuzione delle operazioni di gruppo
|
||||
$id_records = post('id_records');
|
||||
$id_records = is_array($id_records) ? $id_records : explode(';', $id_records);
|
||||
$id_records = array_filter($id_records, function ($var) {
|
||||
return !empty($var);
|
||||
});
|
||||
$id_records = array_clean($id_records);
|
||||
$id_records = array_unique($id_records);
|
||||
|
||||
$bulk = $structure->filepath('bulk.php');
|
||||
|
@ -64,7 +64,7 @@ if (!isset($options['edit_articolo']) || !empty($options['edit_articolo'])) {
|
||||
|
||||
$("#prezzo").val($data.prezzo_'.($options['dir'] == 'entrata' ? 'vendita' : 'acquisto').');
|
||||
$("#descrizione_riga").val($data.descrizione);
|
||||
$("#idiva").selectSet($data.idiva_vendita, $data.iva_vendita);
|
||||
$("#idiva").selectSetNew($data.idiva_vendita, $data.iva_vendita);
|
||||
if(id_conto) {
|
||||
$("#idconto").selectSetNew(id_conto, $data.idconto_'.($options['dir'] == 'entrata' ? 'vendita' : 'acquisto').'_title);
|
||||
}
|
||||
|
19
lib/util.php
19
lib/util.php
@ -27,6 +27,25 @@ if (!function_exists('array_column')) {
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('array_clean')) {
|
||||
/**
|
||||
* Pulisce i contenuti vuoti di un array.
|
||||
*
|
||||
* @param $array
|
||||
*
|
||||
* @since 2.3.2
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
function array_clean($array)
|
||||
{
|
||||
return array_filter($array, function ($value) {
|
||||
return !empty($value);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (!function_exists('starts_with')) {
|
||||
/**
|
||||
* Check if a string starts with the given string.
|
||||
|
@ -62,6 +62,7 @@ switch ($resource) {
|
||||
$results[count($results) - 1]['children'][] = [
|
||||
'id' => $r['id'],
|
||||
'text' => $r['codice'].' - '.$r['descrizione'],
|
||||
'codice' => $r['codice'],
|
||||
'descrizione' => $r['descrizione'],
|
||||
'um' => $r['um'],
|
||||
'idiva_vendita' => $idiva,
|
||||
|
@ -267,7 +267,7 @@ switch (post('op')) {
|
||||
|
||||
// Aggiornamento seriali dalla riga dell'ordine
|
||||
$serials = is_array(post('serial')[$idriga]) ? post('serial')[$idriga] : [];
|
||||
$serials = array_filter($serials, function ($value) { return !empty($value); });
|
||||
$serials = array_clean($serials);
|
||||
|
||||
$dbo->sync('mg_prodotti', ['id_riga_ddt' => $riga, 'dir' => $dir, 'id_articolo' => $idarticolo], ['serial' => $serials]);
|
||||
|
||||
|
@ -740,9 +740,7 @@ switch (post('op')) {
|
||||
|
||||
// Aggiornamento seriali dalla riga dell'ordine
|
||||
$serials = is_array(post('serial')[$i]) ? post('serial')[$i] : [];
|
||||
$serials = array_filter($serials, function ($value) {
|
||||
return !empty($value);
|
||||
});
|
||||
$serials = array_clean($serials);
|
||||
|
||||
$dbo->sync('mg_prodotti', ['id_riga_documento' => $idriga, 'dir' => $dir, 'id_articolo' => $idarticolo], ['serial' => $serials]);
|
||||
}
|
||||
@ -823,9 +821,7 @@ switch (post('op')) {
|
||||
|
||||
// Aggiornamento seriali dalla riga dell'ordine
|
||||
$serials = is_array(post('serial')[$i]) ? post('serial')[$i] : [];
|
||||
$serials = array_filter($serials, function ($value) {
|
||||
return !empty($value);
|
||||
});
|
||||
$serials = array_clean($serials);
|
||||
|
||||
$dbo->sync('mg_prodotti', ['id_riga_documento' => $riga, 'dir' => $dir, 'id_articolo' => $idarticolo], ['serial' => $serials]);
|
||||
|
||||
@ -1310,9 +1306,7 @@ switch (post('op')) {
|
||||
|
||||
// Aggiornamento seriali dalla riga dell'ordine
|
||||
$serials = is_array(post('serial')[$i]) ? post('serial')[$i] : [];
|
||||
$serials = array_filter($serials, function ($value) {
|
||||
return !empty($value);
|
||||
});
|
||||
$serials = array_clean($serials);
|
||||
|
||||
$dbo->sync('mg_prodotti', ['id_riga_documento' => $riga, 'dir' => 'uscita', 'id_articolo' => $idarticolo], ['serial' => $serials]);
|
||||
$dbo->detach('mg_prodotti', ['id_riga_documento' => $idriga, 'dir' => 'entrata', 'id_articolo' => $idarticolo], ['serial' => $serials]);
|
||||
|
@ -824,7 +824,7 @@ function rimuovi_riga_fattura($id_documento, $id_riga, $dir)
|
||||
|
||||
if (!empty($riga['idarticolo'])) {
|
||||
$serials = array_column($serials, 'serial');
|
||||
$serials = array_filter($serials, function ($value) { return !empty($value); });
|
||||
$serials = array_clean($serials);
|
||||
|
||||
$dbo->attach('mg_prodotti', ['id_riga_documento' => $riga['ref_riga_documento'], 'dir' => $dir, 'id_articolo' => $riga['idarticolo']], ['serial' => $serials]);
|
||||
}
|
||||
|
@ -527,6 +527,7 @@ switch (post('op')) {
|
||||
$articolo->qta = post('qta');
|
||||
$articolo->descrizione = post('descrizione');
|
||||
$articolo->prezzo_vendita = post('prezzo_vendita');
|
||||
$articolo->prezzo_acquisto = post('prezzo_acquisto');
|
||||
$articolo->um = post('um');
|
||||
|
||||
$articolo->sconto_unitario = post('sconto');
|
||||
|
@ -29,6 +29,7 @@ if (empty($idriga)) {
|
||||
$qta = 1;
|
||||
$um = '';
|
||||
|
||||
$prezzo_acquisto = '0';
|
||||
$prezzo_vendita = '0';
|
||||
$sconto_unitario = 0;
|
||||
|
||||
@ -55,6 +56,7 @@ if (empty($idriga)) {
|
||||
$idiva = $rsr[0]['idiva'];
|
||||
|
||||
$prezzo_vendita = $rsr[0]['prezzo_vendita'];
|
||||
$prezzo_acquisto = $rsr[0]['prezzo_acquisto'];
|
||||
|
||||
$sconto_unitario = $rsr[0]['sconto_unitario'];
|
||||
$tipo_sconto = $rsr[0]['tipo_sconto'];
|
||||
@ -92,8 +94,15 @@ echo '
|
||||
<div class="col-md-12">
|
||||
{[ "type": "textarea", "label": "'.tr('Descrizione').'", "name": "descrizione", "id": "descrizione_articolo", "required": 1, "value": '.json_encode($descrizione).' ]}
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
// Impianto
|
||||
echo '
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
{[ "type": "select", "label": "'.tr('Impianto su cui installare').'", "name": "idimpianto", "value": "'.$idimpianto.'", "ajax-source": "impianti-intervento" ]}
|
||||
</div>
|
||||
<br>';
|
||||
</div>';
|
||||
|
||||
// Quantità
|
||||
echo '
|
||||
@ -108,24 +117,24 @@ echo '
|
||||
{[ "type": "select", "label": "'.tr('Unità di misura').'", "icon-after": "add|'.Modules::get('Unità di misura')['id'].'", "name": "um", "value": "'.$um.'", "ajax-source": "misure" ]}
|
||||
</div>';
|
||||
|
||||
// Impianto
|
||||
// Iva
|
||||
echo '
|
||||
<div class="col-md-4">
|
||||
{[ "type": "select", "label": "'.tr('Impianto su cui installare').'", "name": "idimpianto", "value": "'.$idimpianto.'", "ajax-source": "impianti-intervento" ]}
|
||||
{[ "type": "select", "label": "'.tr('Iva').'", "name": "idiva", "required": 1, "value": "'.$idiva.'", "ajax-source": "iva" ]}
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
// Iva
|
||||
// Prezzo di acquisto
|
||||
echo '
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
{[ "type": "select", "label": "'.tr('Iva').'", "name": "idiva", "required": 1, "value": "'.$idiva.'", "ajax-source": "iva" ]}
|
||||
{[ "type": "number", "label": "'.tr('Prezzo di acquisto (un.)').'", "name": "prezzo_acquisto", "required": 1, "value": "'.$prezzo_acquisto.'", "icon-after": "€" ]}
|
||||
</div>';
|
||||
|
||||
// Prezzo di vendita
|
||||
echo '
|
||||
<div class="col-md-4">
|
||||
{[ "type": "number", "label": "'.tr('Costo unitario').'", "name": "prezzo_vendita", "required": 1, "value": "'.$prezzo_vendita.'", "icon-after": "€" ]}
|
||||
{[ "type": "number", "label": "'.tr('Prezzo di vendita (un.)').'", "name": "prezzo_vendita", "required": 1, "value": "'.$prezzo_vendita.'", "icon-after": "€" ]}
|
||||
</div>';
|
||||
|
||||
// Sconto
|
||||
@ -173,8 +182,9 @@ echo '
|
||||
$data = $(this).selectData();
|
||||
|
||||
$("#prezzo_vendita").val($data.prezzo_vendita);
|
||||
$("#prezzo_acquisto").val($data.prezzo_acquisto);
|
||||
$("#descrizione_articolo").val($data.descrizione);
|
||||
$("#idiva").selectSet($data.idiva_vendita, $data.iva_vendita);
|
||||
$("#idiva").selectSetNew($data.idiva_vendita, $data.iva_vendita);
|
||||
$("#um").selectSetNew($data.um, $data.um);
|
||||
}else{
|
||||
$("#prezzi_articolo button").addClass("disabled");
|
||||
|
@ -4,6 +4,8 @@ include_once __DIR__.'/../../core.php';
|
||||
|
||||
include_once Modules::filepath('Articoli', 'modutil.php');
|
||||
|
||||
$show_prezzi = Auth::user()['gruppo'] != 'Tecnici' || (Auth::user()['gruppo'] == 'Tecnici' && setting('Mostra i prezzi al tecnico'));
|
||||
|
||||
$query = 'SELECT *, (SELECT codice FROM mg_articoli WHERE id=mg_articoli_interventi.idarticolo) AS codice, mg_articoli_interventi.id AS idriga, (SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT idlistino_vendite FROM an_anagrafiche WHERE idanagrafica=(SELECT idanagrafica FROM in_interventi WHERE id=mg_articoli_interventi.idintervento) ) ) AS prc_guadagno FROM mg_articoli_interventi WHERE idintervento='.prepare($id_record).' '.Modules::getAdditionalsQuery('Magazzino');
|
||||
$rs = $dbo->fetchArray($query);
|
||||
|
||||
@ -14,12 +16,12 @@ if (!empty($rs)) {
|
||||
<th>'.tr('Articolo').'</th>
|
||||
<th width="8%">'.tr('Q.tà').'</th>';
|
||||
|
||||
if (Auth::admin() || Auth::user()['gruppo'] != 'Tecnici') {
|
||||
if ($show_prezzi) {
|
||||
echo '
|
||||
<th width="15%">'.tr('Prezzo di acquisto').'</th>';
|
||||
}
|
||||
|
||||
if (Auth::admin() || Auth::user()['gruppo'] != 'Tecnici') {
|
||||
if ($show_prezzi) {
|
||||
echo '
|
||||
<th width="15%">'.tr('Prezzo di vendita').'</th>
|
||||
<th width="10%">'.tr('Iva').'</th>
|
||||
@ -28,7 +30,7 @@ if (!empty($rs)) {
|
||||
|
||||
if (!$record['flag_completato']) {
|
||||
echo '
|
||||
<th width="80"></th>';
|
||||
<th width="120" class="text-center">'.tr('#').'</th>';
|
||||
}
|
||||
echo '
|
||||
</tr>';
|
||||
@ -78,14 +80,14 @@ if (!empty($rs)) {
|
||||
'.Translator::numberToLocale($r['qta'], 'qta').' '.$r['um'].'
|
||||
</td>';
|
||||
|
||||
if (Auth::admin() || Auth::user()['gruppo'] != 'Tecnici') {
|
||||
if ($show_prezzi) {
|
||||
echo '
|
||||
<td class="text-right">
|
||||
'.Translator::numberToLocale($r['prezzo_acquisto']).' €
|
||||
</td>';
|
||||
}
|
||||
|
||||
if (Auth::admin() || Auth::user()['gruppo'] != 'Tecnici') {
|
||||
if ($show_prezzi) {
|
||||
// Prezzo unitario
|
||||
echo '
|
||||
<td class="text-right">
|
||||
@ -121,7 +123,7 @@ if (!empty($rs)) {
|
||||
// Visibile solo se l'intervento non è stato nè fatturato nè completato.
|
||||
if (!$record['flag_completato']) {
|
||||
echo '
|
||||
<td>';
|
||||
<td class="text-center">';
|
||||
|
||||
if ($r['abilita_serial']) {
|
||||
echo '
|
||||
|
@ -8,11 +8,13 @@ if (file_exists(__DIR__.'/../../../core.php')) {
|
||||
|
||||
include_once Modules::filepath('Interventi', 'modutil.php');
|
||||
|
||||
$show_prezzi = Auth::user()['gruppo'] != 'Tecnici' || (Auth::user()['gruppo'] == 'Tecnici' && setting('Mostra i prezzi al tecnico'));
|
||||
|
||||
$idiva = setting('Iva predefinita');
|
||||
$rs_iva = $dbo->fetchArray('SELECT descrizione, percentuale, indetraibile FROM co_iva WHERE id='.prepare($idiva));
|
||||
($rs_iva[0]['percentuale'] > 0) ? $hide = '' : $hide = 'hide';
|
||||
|
||||
if (Auth::admin() || Auth::user()['gruppo'] != 'Tecnici') {
|
||||
if ($show_prezzi) {
|
||||
$costi = get_costi_intervento($id_record);
|
||||
|
||||
$rss = $dbo->fetchArray('SELECT in_statiintervento.completato AS flag_completato FROM in_statiintervento INNER JOIN in_interventi ON in_statiintervento.idstatointervento=in_interventi.idstatointervento WHERE in_interventi.id='.prepare($id_record));
|
||||
|
@ -6,6 +6,8 @@ if (file_exists(__DIR__.'/../../../core.php')) {
|
||||
include_once __DIR__.'/../../core.php';
|
||||
}
|
||||
|
||||
$show_prezzi = Auth::user()['gruppo'] != 'Tecnici' || (Auth::user()['gruppo'] == 'Tecnici' && setting('Mostra i prezzi al tecnico'));
|
||||
|
||||
$query = 'SELECT * FROM in_righe_interventi WHERE idintervento='.prepare($id_record).' '.Modules::getAdditionalsQuery('Magazzino').' ORDER BY id ASC';
|
||||
$rs2 = $dbo->fetchArray($query);
|
||||
|
||||
@ -17,7 +19,7 @@ if (count($rs2) > 0) {
|
||||
<th width="8%">'.tr('Q.tà').'</th>
|
||||
<th width="15%">'.tr('Prezzo di acquisto').'</th>';
|
||||
|
||||
if (Auth::admin() || Auth::user()['gruppo'] != 'Tecnici') {
|
||||
if ($show_prezzi) {
|
||||
echo '
|
||||
<th width="15%">'.tr('Prezzo di vendita').'</th>
|
||||
<th width="10%">'.tr('Iva').'</th>
|
||||
@ -26,7 +28,7 @@ if (count($rs2) > 0) {
|
||||
|
||||
if (!$record['flag_completato']) {
|
||||
echo '
|
||||
<th width="80"></th>';
|
||||
<th width="120" class="text-center">'.tr('#').'</th>';
|
||||
}
|
||||
echo '
|
||||
</tr>';
|
||||
@ -51,7 +53,7 @@ if (count($rs2) > 0) {
|
||||
'.Translator::numberToLocale($r['prezzo_acquisto']).' €
|
||||
</td>';
|
||||
|
||||
if (Auth::admin() || Auth::user()['gruppo'] != 'Tecnici') {
|
||||
if ($show_prezzi) {
|
||||
// Prezzo unitario
|
||||
$netto = $r['prezzo_vendita'] - $r['sconto_unitario'];
|
||||
|
||||
@ -89,7 +91,7 @@ if (count($rs2) > 0) {
|
||||
// Visibile solo se l'intervento non è stato nè fatturato nè completato.
|
||||
if (!$record['flag_completato']) {
|
||||
echo '
|
||||
<td>
|
||||
<td class="text-center">
|
||||
<button type="button" class="btn btn-warning btn-xs" data-toggle="tooltip" onclick="launch_modal(\''.tr('Modifica spesa').'\', \''.$rootdir.'/modules/interventi/add_righe.php?id_module='.$id_module.'&id_record='.$id_record.'&idriga='.$r['id'].'\', 1);"><i class="fa fa-edit"></i></button>
|
||||
<button type="button" class="btn btn-danger btn-xs" data-toggle="tooltip" onclick="if(confirm(\''.tr('Eliminare questa spesa?').'\')){ elimina_riga( \''.$r['id'].'\' ); }"><i class="fa fa-trash"></i></button>
|
||||
</td>';
|
||||
|
@ -154,7 +154,7 @@ echo '
|
||||
|
||||
$("#prezzo_vendita").val($data.prezzo_vendita);
|
||||
$("#descrizione_articolo").val($data.descrizione);
|
||||
$("#idiva").selectSet($data.idiva_vendita, $data.iva_vendita);
|
||||
$("#idiva").selectSetNew($data.idiva_vendita, $data.iva_vendita);
|
||||
$("#um").selectSetNew($data.um, $data.um);
|
||||
}else{
|
||||
$("#prezzi_articolo button").addClass("disabled");
|
||||
|
@ -45,7 +45,7 @@ abstract class Article extends Row
|
||||
'dir' => 'entrata',
|
||||
'id_articolo' => $this->idarticolo,
|
||||
], [
|
||||
'serial' => $serials,
|
||||
'serial' => array_clean($serials),
|
||||
]);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user