openstamanager/modules/interventi/api/create.php

71 lines
2.3 KiB
PHP

<?php
include_once Modules::filepath('Articoli', 'modutil.php');
switch ($resource) {
case 'intervento':
$data = $request['data'];
// Se l'idintervento non esiste, creo un nuovo intervento
$formato = setting('Formato codice intervento');
$template = str_replace('#', '%', $formato);
$rs = $dbo->fetchArray('SELECT codice FROM in_interventi WHERE codice=(SELECT MAX(CAST(codice AS SIGNED)) FROM in_interventi) AND codice LIKE '.prepare($template).' ORDER BY codice DESC LIMIT 0,1');
$codice = Util\Generator::generate($formato, $rs[0]['codice']);
if (empty($codice)) {
$rs = $dbo->fetchArray('SELECT codice FROM in_interventi WHERE codice LIKE '.prepare($template).' ORDER BY codice DESC LIMIT 0,1');
$codice = Util\Generator::generate($formato, $rs[0]['codice']);
}
if (!empty($codice) && !empty($data['id_anagrafica']) && !empty($data['id_tipo_intervento'])) {
// Salvataggio modifiche intervento
$dbo->insert('in_interventi', [
'idanagrafica' => $data['id_anagrafica'],
'idclientefinale' => 0,
'idstatointervento' => $data['id_stato_intervento'],
'idtipointervento' => $data['id_tipo_intervento'],
'idsede' => 0,
'idautomezzo' => 0,
'codice' => $codice,
'data_richiesta' => $data['data_richiesta'],
'richiesta' => $data['richiesta'],
'descrizione' => $data['descrizione'],
'informazioniaggiuntive' => $data['informazioni_aggiuntive'],
]);
$response['id'] = $dbo->lastInsertedID();
$response['codice'] = $codice;
}
break;
case 'sessione':
$data = $request['data'];
add_tecnico($data['id_intervento'], $user['idanagrafica'], $data['orario_inizio'], $data['orario_fine']);
break;
case 'articolo_intervento':
$data = $request['data'];
$articolo = Articolo::create([
'idarticolo' => $data['idarticolo'],
'idintervento' => $id_record,
'idautomezzo' => $data['idautomezzo'],
'qta' => $data['qta'],
'um' => $data['um'],
]);
break;
}
return [
'intervento',
'sessione',
'articolo_intervento',
];