Fix #424
This commit is contained in:
parent
97f50a5c47
commit
3d12041beb
|
@ -2,9 +2,12 @@
|
||||||
|
|
||||||
include_once __DIR__.'/../../core.php';
|
include_once __DIR__.'/../../core.php';
|
||||||
|
|
||||||
|
use Modules\Anagrafiche\Anagrafica;
|
||||||
use Modules\Articoli\Articolo as ArticoloOriginale;
|
use Modules\Articoli\Articolo as ArticoloOriginale;
|
||||||
use Modules\Interventi\Components\Articolo;
|
use Modules\Interventi\Components\Articolo;
|
||||||
use Modules\Interventi\Intervento;
|
use Modules\Interventi\Intervento;
|
||||||
|
use Modules\Interventi\Stato;
|
||||||
|
use Modules\Interventi\TipoSessione;
|
||||||
|
|
||||||
switch (post('op')) {
|
switch (post('op')) {
|
||||||
case 'update':
|
case 'update':
|
||||||
|
@ -100,18 +103,19 @@ switch (post('op')) {
|
||||||
|
|
||||||
case 'add':
|
case 'add':
|
||||||
if (post('id_intervento') == null) {
|
if (post('id_intervento') == null) {
|
||||||
$formato = setting('Formato codice intervento');
|
$idanagrafica = post('idanagrafica');
|
||||||
$template = str_replace('#', '%', $formato);
|
$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');
|
$anagrafica = Anagrafica::find($idanagrafica);
|
||||||
if (!empty($rs[0]['codice'])) {
|
$tipo = TipoSessione::find($idtipointervento);
|
||||||
$codice = Util\Generator::generate($formato, $rs[0]['codice']);
|
$stato = Stato::find($idstatointervento);
|
||||||
}
|
|
||||||
|
|
||||||
if (empty($codice)) {
|
$intervento = Intervento::build($anagrafica, $tipo, $stato, $data_richiesta);
|
||||||
$rs = $dbo->fetchArray('SELECT codice FROM in_interventi WHERE codice LIKE '.prepare(Util\Generator::complete($template)).' ORDER BY codice DESC LIMIT 0,1');
|
$id_record = $intervento->id;
|
||||||
$codice = Util\Generator::generate($formato, $rs[0]['codice']);
|
|
||||||
}
|
flash()->info(tr('Aggiunto nuovo intervento!'));
|
||||||
|
|
||||||
// Informazioni di base
|
// Informazioni di base
|
||||||
$idpreventivo = post('idpreventivo');
|
$idpreventivo = post('idpreventivo');
|
||||||
|
@ -119,31 +123,20 @@ switch (post('op')) {
|
||||||
$idcontratto_riga = post('idcontratto_riga');
|
$idcontratto_riga = post('idcontratto_riga');
|
||||||
$idtipointervento = post('idtipointervento');
|
$idtipointervento = post('idtipointervento');
|
||||||
$idsede = post('idsede');
|
$idsede = post('idsede');
|
||||||
$data_richiesta = post('data_richiesta');
|
|
||||||
$richiesta = post('richiesta');
|
$richiesta = post('richiesta');
|
||||||
$idautomezzo = null;
|
$idautomezzo = null;
|
||||||
|
|
||||||
if (!empty($codice) && !empty(post('idanagrafica')) && !empty(post('idtipointervento'))) {
|
if (post('idclientefinale')) {
|
||||||
// Salvataggio modifiche intervento
|
$intervento->idclientefinale = post('idclientefinale');
|
||||||
$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('idsede')) {
|
||||||
|
$intervento->idsede = post('idsede');
|
||||||
|
}
|
||||||
|
|
||||||
|
$intervento->id_preventivo = post('$idpreventivo');
|
||||||
|
$intervento->richiesta = post('richiesta');
|
||||||
|
|
||||||
// Collego l'intervento al contratto
|
// Collego l'intervento al contratto
|
||||||
if (!empty($idcontratto)) {
|
if (!empty($idcontratto)) {
|
||||||
$array = [
|
$array = [
|
||||||
|
|
|
@ -8,18 +8,7 @@ unset($_SESSION['superselect']['idsede']);
|
||||||
unset($_SESSION['superselect']['non_fatturato']);
|
unset($_SESSION['superselect']['non_fatturato']);
|
||||||
|
|
||||||
// Calcolo del nuovo codice
|
// Calcolo del nuovo codice
|
||||||
$idintervento_template = setting('Formato codice intervento');
|
$new_codice = \Modules\Interventi\Intervento::getNextCodice();
|
||||||
$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']);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Se ho passato l'idanagrafica, carico il tipo di intervento di default
|
// Se ho passato l'idanagrafica, carico il tipo di intervento di default
|
||||||
$idanagrafica = filter('idanagrafica');
|
$idanagrafica = filter('idanagrafica');
|
||||||
|
|
|
@ -88,26 +88,4 @@ class Articolo extends Article
|
||||||
{
|
{
|
||||||
return 'entrata';
|
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();
|
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\Anagrafiche\Anagrafica;
|
||||||
use Modules\Interventi\Components\Articolo;
|
use Modules\Interventi\Components\Articolo;
|
||||||
use Modules\Interventi\Components\Riga;
|
use Modules\Interventi\Components\Riga;
|
||||||
|
use Modules\Preventivi\Preventivo;
|
||||||
|
use Util\Generator;
|
||||||
|
|
||||||
class Intervento extends Document
|
class Intervento extends Document
|
||||||
{
|
{
|
||||||
protected $table = 'in_interventi';
|
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()
|
public function anagrafica()
|
||||||
{
|
{
|
||||||
return $this->belongsTo(Anagrafica::class, 'idanagrafica');
|
return $this->belongsTo(Anagrafica::class, 'idanagrafica');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function preventivo()
|
||||||
|
{
|
||||||
|
return $this->hasOne(Preventivo::class, 'id_preventivo');
|
||||||
|
}
|
||||||
|
|
||||||
public function stato()
|
public function stato()
|
||||||
{
|
{
|
||||||
return $this->belongsTo(Stato::class, 'idstatointervento');
|
return $this->belongsTo(Stato::class, 'idstatointervento');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function tipoSessione()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(TipoSessione::class, 'idtipointervento');
|
||||||
|
}
|
||||||
|
|
||||||
public function articoli()
|
public function articoli()
|
||||||
{
|
{
|
||||||
return $this->hasMany(Articolo::class, 'idintervento');
|
return $this->hasMany(Articolo::class, 'idintervento');
|
||||||
|
@ -40,4 +78,21 @@ class Intervento extends Document
|
||||||
{
|
{
|
||||||
return null;
|
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
|
class Stato extends Model
|
||||||
{
|
{
|
||||||
|
public $primaryKey = 'idstatointervento';
|
||||||
protected $table = 'in_statiintervento';
|
protected $table = 'in_statiintervento';
|
||||||
|
|
||||||
public function interventi()
|
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');
|
return $this->hasMany(Preventivo::class, 'idtipointervento');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function interventi()
|
||||||
|
{
|
||||||
|
return $this->hasMany(Intervento::class, 'idtipointervento');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,7 @@ class Preventivo extends Document
|
||||||
* Crea un nuovo preventivo.
|
* Crea un nuovo preventivo.
|
||||||
*
|
*
|
||||||
* @param Anagrafica $anagrafica
|
* @param Anagrafica $anagrafica
|
||||||
* @param TipoIntervento $tipo_sessione
|
* @param TipoSessione $tipo_sessione
|
||||||
* @param string $nome
|
* @param string $nome
|
||||||
*
|
*
|
||||||
* @return self
|
* @return self
|
||||||
|
|
|
@ -144,19 +144,7 @@ switch (filter('op')) {
|
||||||
// intervento sempre nello stato "In programmazione"
|
// intervento sempre nello stato "In programmazione"
|
||||||
$idstatointervento = 'WIP';
|
$idstatointervento = 'WIP';
|
||||||
|
|
||||||
// calcolo codice intervento
|
$codice = \Modules\Interventi\Intervento::getNextCodice();
|
||||||
$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']);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Creo intervento
|
// Creo intervento
|
||||||
$dbo->insert('in_interventi', [
|
$dbo->insert('in_interventi', [
|
||||||
|
|
|
@ -13,15 +13,19 @@ class MessageHandler extends AbstractProcessingHandler
|
||||||
{
|
{
|
||||||
protected function write(array $record)
|
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()) {
|
if (auth()->check()) {
|
||||||
$message .= '
|
$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>';
|
<br><small>'.$record['message'].'</small>';
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//flash()->error($message);
|
flash()->error($message);
|
||||||
|
|
||||||
echo '
|
echo '
|
||||||
<div class="alert alert-danger push">
|
<div class="alert alert-danger push">
|
||||||
|
|
Loading…
Reference in New Issue