Fix #424
This commit is contained in:
parent
97f50a5c47
commit
3d12041beb
|
@ -2,9 +2,12 @@
|
|||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
use Modules\Anagrafiche\Anagrafica;
|
||||
use Modules\Articoli\Articolo as ArticoloOriginale;
|
||||
use Modules\Interventi\Components\Articolo;
|
||||
use Modules\Interventi\Intervento;
|
||||
use Modules\Interventi\Stato;
|
||||
use Modules\Interventi\TipoSessione;
|
||||
|
||||
switch (post('op')) {
|
||||
case 'update':
|
||||
|
@ -100,18 +103,19 @@ switch (post('op')) {
|
|||
|
||||
case 'add':
|
||||
if (post('id_intervento') == null) {
|
||||
$formato = setting('Formato codice intervento');
|
||||
$template = str_replace('#', '%', $formato);
|
||||
$idanagrafica = post('idanagrafica');
|
||||
$idtipointervento = post('idtipointervento');
|
||||
$idstatointervento = post('idstatointervento');
|
||||
$data_richiesta = post('data_richiesta');
|
||||
|
||||
$rs = $dbo->fetchArray('SELECT codice FROM in_interventi WHERE codice=(SELECT MAX(CAST(codice AS SIGNED)) FROM in_interventi) AND codice LIKE '.prepare(Util\Generator::complete($template)).' ORDER BY codice DESC LIMIT 0,1');
|
||||
if (!empty($rs[0]['codice'])) {
|
||||
$codice = Util\Generator::generate($formato, $rs[0]['codice']);
|
||||
}
|
||||
$anagrafica = Anagrafica::find($idanagrafica);
|
||||
$tipo = TipoSessione::find($idtipointervento);
|
||||
$stato = Stato::find($idstatointervento);
|
||||
|
||||
if (empty($codice)) {
|
||||
$rs = $dbo->fetchArray('SELECT codice FROM in_interventi WHERE codice LIKE '.prepare(Util\Generator::complete($template)).' ORDER BY codice DESC LIMIT 0,1');
|
||||
$codice = Util\Generator::generate($formato, $rs[0]['codice']);
|
||||
}
|
||||
$intervento = Intervento::build($anagrafica, $tipo, $stato, $data_richiesta);
|
||||
$id_record = $intervento->id;
|
||||
|
||||
flash()->info(tr('Aggiunto nuovo intervento!'));
|
||||
|
||||
// Informazioni di base
|
||||
$idpreventivo = post('idpreventivo');
|
||||
|
@ -119,31 +123,20 @@ switch (post('op')) {
|
|||
$idcontratto_riga = post('idcontratto_riga');
|
||||
$idtipointervento = post('idtipointervento');
|
||||
$idsede = post('idsede');
|
||||
$data_richiesta = post('data_richiesta');
|
||||
$richiesta = post('richiesta');
|
||||
$idautomezzo = null;
|
||||
|
||||
if (!empty($codice) && !empty(post('idanagrafica')) && !empty(post('idtipointervento'))) {
|
||||
// Salvataggio modifiche intervento
|
||||
$dbo->insert('in_interventi', [
|
||||
'idanagrafica' => post('idanagrafica'),
|
||||
'idclientefinale' => post('idclientefinale') ?: 0,
|
||||
'idstatointervento' => post('idstatointervento'),
|
||||
'idtipointervento' => $idtipointervento,
|
||||
'idsede' => $idsede ?: 0,
|
||||
'idautomezzo' => $idautomezzo ?: 0,
|
||||
'id_preventivo' => $idpreventivo,
|
||||
|
||||
'codice' => $codice,
|
||||
'data_richiesta' => $data_richiesta,
|
||||
'richiesta' => $richiesta,
|
||||
]);
|
||||
|
||||
$id_record = $dbo->lastInsertedID();
|
||||
|
||||
flash()->info(tr('Aggiunto nuovo intervento!'));
|
||||
if (post('idclientefinale')) {
|
||||
$intervento->idclientefinale = post('idclientefinale');
|
||||
}
|
||||
|
||||
if (post('idsede')) {
|
||||
$intervento->idsede = post('idsede');
|
||||
}
|
||||
|
||||
$intervento->id_preventivo = post('$idpreventivo');
|
||||
$intervento->richiesta = post('richiesta');
|
||||
|
||||
// Collego l'intervento al contratto
|
||||
if (!empty($idcontratto)) {
|
||||
$array = [
|
||||
|
|
|
@ -8,18 +8,7 @@ unset($_SESSION['superselect']['idsede']);
|
|||
unset($_SESSION['superselect']['non_fatturato']);
|
||||
|
||||
// Calcolo del nuovo codice
|
||||
$idintervento_template = setting('Formato codice intervento');
|
||||
$idintervento_template = str_replace('#', '%', $idintervento_template);
|
||||
|
||||
$rs = $dbo->fetchArray('SELECT codice FROM in_interventi WHERE codice=(SELECT MAX(CAST(codice AS SIGNED)) FROM in_interventi) AND codice LIKE '.prepare(Util\Generator::complete($idintervento_template)).' ORDER BY codice DESC LIMIT 0,1');
|
||||
if (!empty($rs[0]['codice'])) {
|
||||
$new_codice = Util\Generator::generate(setting('Formato codice intervento'), $rs[0]['codice']);
|
||||
}
|
||||
|
||||
if (empty($new_codice)) {
|
||||
$rs = $dbo->fetchArray('SELECT codice FROM in_interventi WHERE codice LIKE '.prepare(Util\Generator::complete($idintervento_template)).' ORDER BY codice DESC LIMIT 0,1');
|
||||
$new_codice = Util\Generator::generate(setting('Formato codice intervento'), $rs[0]['codice']);
|
||||
}
|
||||
$new_codice = \Modules\Interventi\Intervento::getNextCodice();
|
||||
|
||||
// Se ho passato l'idanagrafica, carico il tipo di intervento di default
|
||||
$idanagrafica = filter('idanagrafica');
|
||||
|
|
|
@ -88,26 +88,4 @@ class Articolo extends Article
|
|||
{
|
||||
return 'entrata';
|
||||
}
|
||||
|
||||
/**
|
||||
* Effettua i conti per l'IVA indetraibile.
|
||||
*/
|
||||
public function fixIvaIndetraibile()
|
||||
{
|
||||
}
|
||||
|
||||
public function getSubtotaleAttribute()
|
||||
{
|
||||
return $this->prezzo_vendita * $this->qta;
|
||||
}
|
||||
|
||||
/**
|
||||
* Effettua i conti per il subtotale della riga.
|
||||
*/
|
||||
protected function fixSubtotale()
|
||||
{
|
||||
$this->prezzo_vendita = $this->prezzo_unitario_vendita;
|
||||
|
||||
$this->fixIva();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,4 +20,31 @@ trait RelationTrait
|
|||
{
|
||||
return $this->parent();
|
||||
}
|
||||
|
||||
public function fixIvaIndetraibile()
|
||||
{
|
||||
}
|
||||
|
||||
public function fixRivalsaINPS()
|
||||
{
|
||||
}
|
||||
|
||||
public function fixRitenutaAcconto()
|
||||
{
|
||||
}
|
||||
|
||||
public function getSubtotaleAttribute()
|
||||
{
|
||||
return $this->prezzo_vendita * $this->qta;
|
||||
}
|
||||
|
||||
/**
|
||||
* Effettua i conti per il subtotale della riga.
|
||||
*/
|
||||
protected function fixSubtotale()
|
||||
{
|
||||
$this->prezzo_vendita = $this->prezzo_unitario_vendita;
|
||||
|
||||
$this->fixIva();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,21 +6,59 @@ use Common\Document;
|
|||
use Modules\Anagrafiche\Anagrafica;
|
||||
use Modules\Interventi\Components\Articolo;
|
||||
use Modules\Interventi\Components\Riga;
|
||||
use Modules\Preventivi\Preventivo;
|
||||
use Util\Generator;
|
||||
|
||||
class Intervento extends Document
|
||||
{
|
||||
protected $table = 'in_interventi';
|
||||
|
||||
/**
|
||||
* Crea un nuovo preventivo.
|
||||
*
|
||||
* @param Anagrafica $anagrafica
|
||||
* @param TipoSessione $tipo_sessione
|
||||
* @param Stato $stato
|
||||
* @param string $data_richiesta
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public static function build(Anagrafica $anagrafica, TipoSessione $tipo_sessione, Stato $stato, $data_richiesta)
|
||||
{
|
||||
$model = parent::build();
|
||||
|
||||
$model->anagrafica()->associate($anagrafica);
|
||||
$model->stato()->associate($stato);
|
||||
$model->tipoSessione()->associate($tipo_sessione);
|
||||
|
||||
$model->codice = static::getNextCodice();
|
||||
$model->data_richiesta = $data_richiesta;
|
||||
|
||||
$model->save();
|
||||
|
||||
return $model;
|
||||
}
|
||||
|
||||
public function anagrafica()
|
||||
{
|
||||
return $this->belongsTo(Anagrafica::class, 'idanagrafica');
|
||||
}
|
||||
|
||||
public function preventivo()
|
||||
{
|
||||
return $this->hasOne(Preventivo::class, 'id_preventivo');
|
||||
}
|
||||
|
||||
public function stato()
|
||||
{
|
||||
return $this->belongsTo(Stato::class, 'idstatointervento');
|
||||
}
|
||||
|
||||
public function tipoSessione()
|
||||
{
|
||||
return $this->belongsTo(TipoSessione::class, 'idtipointervento');
|
||||
}
|
||||
|
||||
public function articoli()
|
||||
{
|
||||
return $this->hasMany(Articolo::class, 'idintervento');
|
||||
|
@ -40,4 +78,21 @@ class Intervento extends Document
|
|||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
// Metodi statici
|
||||
|
||||
/**
|
||||
* Calcola il nuovo codice di intervento.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getNextCodice()
|
||||
{
|
||||
$maschera = setting('Formato codice intervento');
|
||||
|
||||
$ultimo = Generator::getPreviousFrom($maschera, 'in_interventi', 'codice');
|
||||
$numero = Generator::generate($maschera, $ultimo);
|
||||
|
||||
return $numero;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,10 +6,11 @@ use Common\Model;
|
|||
|
||||
class Stato extends Model
|
||||
{
|
||||
public $primaryKey = 'idstatointervento';
|
||||
protected $table = 'in_statiintervento';
|
||||
|
||||
public function interventi()
|
||||
{
|
||||
return $this->hasMany(Ordine::class, 'idstatointervento');
|
||||
return $this->hasMany(Intervento::class, 'idstatointervento');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,4 +24,9 @@ class TipoSessione extends Model
|
|||
{
|
||||
return $this->hasMany(Preventivo::class, 'idtipointervento');
|
||||
}
|
||||
|
||||
public function interventi()
|
||||
{
|
||||
return $this->hasMany(Intervento::class, 'idtipointervento');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -18,9 +18,9 @@ class Preventivo extends Document
|
|||
/**
|
||||
* Crea un nuovo preventivo.
|
||||
*
|
||||
* @param Anagrafica $anagrafica
|
||||
* @param TipoIntervento $tipo_sessione
|
||||
* @param string $nome
|
||||
* @param Anagrafica $anagrafica
|
||||
* @param TipoSessione $tipo_sessione
|
||||
* @param string $nome
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
|
|
|
@ -144,19 +144,7 @@ switch (filter('op')) {
|
|||
// intervento sempre nello stato "In programmazione"
|
||||
$idstatointervento = 'WIP';
|
||||
|
||||
// calcolo codice 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');
|
||||
if (!empty($rs[0]['codice'])) {
|
||||
$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']);
|
||||
}
|
||||
$codice = \Modules\Interventi\Intervento::getNextCodice();
|
||||
|
||||
// Creo intervento
|
||||
$dbo->insert('in_interventi', [
|
||||
|
|
|
@ -13,15 +13,19 @@ class MessageHandler extends AbstractProcessingHandler
|
|||
{
|
||||
protected function write(array $record)
|
||||
{
|
||||
$message = tr("Si è verificato un'errore").'.';
|
||||
$message = tr("Si è verificato un'errore").' <i>[uid: '.$record['extra']['uid'].']</i>.';
|
||||
|
||||
if (auth()->check()) {
|
||||
$message .= '
|
||||
'.tr('Se il problema persiste siete pregati di chiedere assistenza tramite la sezione Bug').'. <a href="'.ROOTDIR.'/bug.php"><i class="fa fa-external-link"></i></a>
|
||||
'.tr('Se il problema persiste siete pregati di chiedere assistenza tramite la sezione Bug').'. <a href="'.ROOTDIR.'/bug.php"><i class="fa fa-external-link"></i></a>';
|
||||
|
||||
if (auth()->isAdmin()) {
|
||||
$message .= '
|
||||
<br><small>'.$record['message'].'</small>';
|
||||
}
|
||||
}
|
||||
|
||||
//flash()->error($message);
|
||||
flash()->error($message);
|
||||
|
||||
echo '
|
||||
<div class="alert alert-danger push">
|
||||
|
|
Loading…
Reference in New Issue