Aggiunta gestione RappresentanteFiscale in XML

This commit is contained in:
Pek5892 2023-12-04 11:59:42 +01:00
parent b1080c129b
commit d0a8011ce6
6 changed files with 185 additions and 103 deletions

View File

@ -62,4 +62,26 @@ class Sede extends Model
{ {
return $this->belongsTo(Nazione::class, 'id_nazione'); return $this->belongsTo(Nazione::class, 'id_nazione');
} }
public function save(array $options = [])
{
$this->fixRappresentanteFiscale();
return parent::save($options);
}
protected function fixRappresentanteFiscale()
{
$rappresentante_fiscale = post('is_rappresentante_fiscale');
if (!empty($rappresentante_fiscale)) {
self::where('idanagrafica', $this->idanagrafica)
->where('id', '!=', $this->id)
->update([
'is_rappresentante_fiscale' => 0,
]);
$this->attributes['is_rappresentante_fiscale'] = $rappresentante_fiscale;
}
}
} }

View File

@ -23,6 +23,7 @@ use FluidXml\FluidXml;
use GuzzleHttp\Client; use GuzzleHttp\Client;
use Modules; use Modules;
use Modules\Anagrafiche\Anagrafica; use Modules\Anagrafiche\Anagrafica;
use Modules\Anagrafiche\Sede;
use Modules\Banche\Banca; use Modules\Banche\Banca;
use Modules\Fatture\Fattura; use Modules\Fatture\Fattura;
use Modules\Fatture\Gestori\Bollo; use Modules\Fatture\Gestori\Bollo;
@ -829,6 +830,24 @@ class FatturaElettronica
return $result; return $result;
} }
/**
* Restituisce l'array responsabile per la generazione del tag RappresentanteFiscale (1.3).
*
* @return array
*/
protected static function getRappresentanteFiscale($fattura)
{
//Fattura per conto terzi, il cliente diventa il cedente al posto della mia Azienda (fornitore)
$cliente = $fattura->getCliente();
$azienda = Sede::where('idanagrafica', $cliente->id)->where('is_rappresentante_fiscale', 1)->selectRaw('*, nomesede AS ragione_sociale')->first();
$result = [
'DatiAnagrafici' => static::getDatiAnagrafici($azienda, true),
];
return $result;
}
/** /**
* Restituisce l'array responsabile per la generazione del tag CessionarioCommittente (Cliente) (1.4). * Restituisce l'array responsabile per la generazione del tag CessionarioCommittente (Cliente) (1.4).
* *
@ -1757,11 +1776,31 @@ class FatturaElettronica
*/ */
protected static function getHeader($fattura) protected static function getHeader($fattura)
{ {
$result = [ $documento = $fattura->getDocumento();
'DatiTrasmissione' => static::getDatiTrasmissione($fattura), $rappresentante_fiscale = null;
'CedentePrestatore' => static::getCedentePrestatore($fattura),
'CessionarioCommittente' => static::getCessionarioCommittente($fattura), //Fattura per conto terzi, il cliente diventa il cedente al posto della mia Azienda (fornitore)
]; if ($documento['is_fattura_conto_terzi']) {
$azienda = $fattura->getCliente();
$rappresentante_fiscale = Sede::where('idanagrafica', $azienda->id)->where('is_rappresentante_fiscale', 1)->first();
} else {
$azienda = static::getAzienda();
}
if ($rappresentante_fiscale) {
$result = [
'DatiTrasmissione' => static::getDatiTrasmissione($fattura),
'CedentePrestatore' => static::getCedentePrestatore($fattura),
'RappresentanteFiscale' => static::getRappresentanteFiscale($fattura),
'CessionarioCommittente' => static::getCessionarioCommittente($fattura),
];
} else {
$result = [
'DatiTrasmissione' => static::getDatiTrasmissione($fattura),
'CedentePrestatore' => static::getCedentePrestatore($fattura),
'CessionarioCommittente' => static::getCessionarioCommittente($fattura),
];
}
// 1.5 Terzo Intermediario // 1.5 Terzo Intermediario
if (!empty(setting('Terzo intermediario'))) { if (!empty(setting('Terzo intermediario'))) {

View File

@ -19,77 +19,83 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
use Modules\Anagrafiche\Sede;
$operazione = filter('op'); $operazione = filter('op');
switch ($operazione) { switch ($operazione) {
case 'addsede': case 'addsede':
if (!empty(post('nomesede'))) { if (!empty(post('nomesede'))) {
$opt_out_newsletter = post('disable_newsletter'); $opt_out_newsletter = post('disable_newsletter');
$dbo->insert('an_sedi', [ $dbo->insert('an_sedi', [
'idanagrafica' => $id_parent, 'idanagrafica' => $id_parent,
'nomesede' => post('nomesede'), 'nomesede' => post('nomesede'),
'indirizzo' => post('indirizzo'), 'indirizzo' => post('indirizzo'),
'codice_destinatario' => post('codice_destinatario'),
'citta' => post('citta'), 'citta' => post('citta'),
'cap' => post('cap'), 'cap' => post('cap'),
'is_automezzo' => post('is_automezzo'),
'provincia' => strtoupper(post('provincia')), 'provincia' => strtoupper(post('provincia')),
'km' => post('km'), 'km' => post('km'),
'id_nazione' => !empty(post('id_nazione')) ? post('id_nazione') : null,
'idzona' => !empty(post('idzona')) ? post('idzona') : 0,
'cellulare' => post('cellulare'), 'cellulare' => post('cellulare'),
'telefono' => post('telefono'), 'telefono' => post('telefono'),
'email' => post('email'), 'email' => post('email'),
'id_nazione' => !empty(post('id_nazione')) ? post('id_nazione') : null,
'idzona' => !empty(post('idzona')) ? post('idzona') : 0,
'enable_newsletter' => empty($opt_out_newsletter), 'enable_newsletter' => empty($opt_out_newsletter),
'codice_destinatario' => post('codice_destinatario'),
'is_automezzo' => post('is_automezzo'),
'is_rappresentante_fiscale' => post('is_rappresentante_fiscale'),
]); ]);
$id_record = $dbo->lastInsertedID();
$id_referenti = (array) post('id_referenti'); $id_record = $dbo->lastInsertedID();
foreach ($id_referenti as $id_referente) {
$dbo->update('an_referenti', [
'idsede' => $id_record,
], [
'id' => $id_referente,
]);
}
if (isAjaxRequest() && !empty($id_record)) { $id_referenti = (array) post('id_referenti');
echo json_encode(['id' => $id_record, 'text' => post('nomesede').' - '.post('citta')]); foreach ($id_referenti as $id_referente) {
} $dbo->update('an_referenti', [
'idsede' => $id_record,
], [
'id' => $id_referente,
]);
}
flash()->info(tr('Aggiunta una nuova sede!')); if (isAjaxRequest() && !empty($id_record)) {
} else { echo json_encode(['id' => $id_record, 'text' => post('nomesede').' - '.post('citta')]);
flash()->warning(tr('Errore durante aggiunta della sede')); }
}
flash()->info(tr('Aggiunta una nuova sede!'));
} else {
flash()->warning(tr('Errore durante aggiunta della sede'));
}
$id_record->save();
break; break;
case 'updatesede': case 'updatesede':
$opt_out_newsletter = post('disable_newsletter'); $opt_out_newsletter = post('disable_newsletter');
$sede = Sede::find($id_record);
$dbo->update('an_sedi', [ $dbo->update('an_sedi', [
'nomesede' => post('nomesede'), 'nomesede' => post('nomesede'),
'indirizzo' => post('indirizzo'), 'indirizzo' => post('indirizzo'),
'codice_destinatario' => post('codice_destinatario'),
'piva' => post('piva'),
'codice_fiscale' => post('codice_fiscale'),
'citta' => post('citta'), 'citta' => post('citta'),
'cap' => post('cap'), 'cap' => post('cap'),
'is_automezzo' => post('is_automezzo'),
'provincia' => strtoupper(post('provincia')), 'provincia' => strtoupper(post('provincia')),
'km' => post('km'),
'cellulare' => post('cellulare'),
'telefono' => post('telefono'),
'email' => post('email'),
'fax' => post('fax'),
'id_nazione' => !empty(post('id_nazione')) ? post('id_nazione') : null, 'id_nazione' => !empty(post('id_nazione')) ? post('id_nazione') : null,
'telefono' => post('telefono'),
'cellulare' => post('cellulare'),
'email' => post('email'),
'enable_newsletter' => empty($opt_out_newsletter),
'codice_destinatario' => post('codice_destinatario'),
'is_rappresentante_fiscale' => post('is_rappresentante_fiscale'),
'piva' => post('piva'),
'codice_fiscale' => post('codice_fiscale'),
'is_automezzo' => post('is_automezzo'),
'idzona' => post('idzona'), 'idzona' => post('idzona'),
'km' => post('km'),
'note' => post('note'), 'note' => post('note'),
'gaddress' => post('gaddress'), 'gaddress' => post('gaddress'),
'lat' => post('lat'), 'lat' => post('lat'),
'lng' => post('lng'), 'lng' => post('lng'),
'enable_newsletter' => empty($opt_out_newsletter),
], ['id' => $id_record]); ], ['id' => $id_record]);
$referenti = $dbo->fetchArray('SELECT id FROM an_referenti WHERE idsede = '.$id_record); $referenti = $dbo->fetchArray('SELECT id FROM an_referenti WHERE idsede = '.$id_record);
@ -112,6 +118,8 @@ switch ($operazione) {
]); ]);
} }
$sede->save();
flash()->info(tr('Salvataggio completato!')); flash()->info(tr('Salvataggio completato!'));
break; break;

View File

@ -42,18 +42,11 @@ echo '
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "text", "label": "'.tr('Indirizzo').'", "name": "indirizzo", "required": 0 ]} {[ "type": "text", "label": "'.tr('Indirizzo').'", "name": "indirizzo", "required": 0 ]}
</div> </div>
<div class="col-md-6">
{[ "type": "text", "label": "'.($record['tipo_anagrafica'] == 'Ente pubblico' ? tr('Codice unico ufficio') : tr('Codice destinatario')).'", "name": "codice_destinatario", "required": 0, "class": "text-center text-uppercase alphanumeric-mask", "value": "$codice_destinatario$", "maxlength": '.($record['tipo_anagrafica'] == 'Ente pubblico' ? '6' : '7').', "help": "'.tr('<b>Attenzione</b>: per impostare il codice specificare prima \'Tipologia\' e \'Nazione\' dell\'anagrafica:<br><ul><li>Ente pubblico (B2G/PA) - Codice Univoco Ufficio (www.indicepa.gov.it), 6 caratteri</li><li>Azienda (B2B) - Codice Destinatario, 7 caratteri</li><li>Privato (B2C) - viene utilizzato il Codice Fiscale</li></ul>').'", "readonly": "'.intval($record['iso2'] ? $record['iso2'] != 'IT' : 0).'" ]}
</div>
</div>
<div class="row">
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "text", "label": "'.tr('Città').'", "name": "citta", "required": 1 ]} {[ "type": "text", "label": "'.tr('Città').'", "name": "citta", "required": 1 ]}
</div> </div>
</div>
<div class="row">
<div class="col-md-2"> <div class="col-md-2">
{[ "type": "text", "label": "'.tr('C.A.P.').'", "name": "cap" ]} {[ "type": "text", "label": "'.tr('C.A.P.').'", "name": "cap" ]}
</div> </div>
@ -65,40 +58,41 @@ echo '
<div class="col-md-2"> <div class="col-md-2">
{[ "type": "text", "label": "'.tr('Km').'", "name": "km" ]} {[ "type": "text", "label": "'.tr('Km').'", "name": "km" ]}
</div> </div>
</div> <div class="col-md-3">
<div class="row">
<div class="col-md-6">
{[ "type": "select", "label": "'.tr('Nazione').'", "name": "id_nazione", "ajax-source": "nazioni", "required": 1 ]} {[ "type": "select", "label": "'.tr('Nazione').'", "name": "id_nazione", "ajax-source": "nazioni", "required": 1 ]}
</div> </div>
<div class="col-md-6"> <div class="col-md-3">
{[ "type": "select", "label": "'.tr('Zona').'", "name": "idzona", "ajax-source": "zone", "placeholder": "'.tr('Nessuna zona').'", "icon-after": "add|'.Modules::get('Zone')['id'].'" ]} {[ "type": "select", "label": "'.tr('Zona').'", "name": "idzona", "ajax-source": "zone", "placeholder": "'.tr('Nessuna zona').'", "icon-after": "add|'.Modules::get('Zone')['id'].'" ]}
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-4"> <div class="col-md-3">
{[ "type": "telefono", "label": "'.tr('Cellulare').'", "name": "cellulare" ]} {[ "type": "telefono", "label": "'.tr('Cellulare').'", "name": "cellulare" ]}
</div> </div>
<div class="col-md-4"> <div class="col-md-3">
{[ "type": "telefono", "label": "'.tr('Telefono').'", "name": "telefono" ]} {[ "type": "telefono", "label": "'.tr('Telefono').'", "name": "telefono" ]}
</div> </div>
<div class="col-md-4"> <div class="col-md-3">
{[ "type": "text", "label": "'.tr('Indirizzo email').'", "name": "email", "class": "email-mask", "validation": "email" ]} {[ "type": "text", "label": "'.tr('Indirizzo email').'", "name": "email", "class": "email-mask", "validation": "email" ]}
</div> </div>
</div> <div class="col-md-3">
<div class="row">
<div class="col-md-6">
{[ "type": "checkbox", "label": "'.tr('Opt-out per newsletter').'", "name": "disable_newsletter", "id": "disable_newsletter_m", "value": "0", "help": "'.tr("Blocco per l'invio delle email.").'" ]} {[ "type": "checkbox", "label": "'.tr('Opt-out per newsletter').'", "name": "disable_newsletter", "id": "disable_newsletter_m", "value": "0", "help": "'.tr("Blocco per l'invio delle email.").'" ]}
</div> </div>
<div class="col-md-6"> </div>
<div class="row">
<div class="col-md-4">
{[ "type": "text", "label": "'.($record['tipo_anagrafica'] == 'Ente pubblico' ? tr('Codice unico ufficio') : tr('Codice destinatario')).'", "name": "codice_destinatario", "required": 0, "class": "text-center text-uppercase alphanumeric-mask", "value": "$codice_destinatario$", "maxlength": '.($record['tipo_anagrafica'] == 'Ente pubblico' ? '6' : '7').', "help": "'.tr('<b>Attenzione</b>: per impostare il codice specificare prima \'Tipologia\' e \'Nazione\' dell\'anagrafica:<br><ul><li>Ente pubblico (B2G/PA) - Codice Univoco Ufficio (www.indicepa.gov.it), 6 caratteri</li><li>Azienda (B2B) - Codice Destinatario, 7 caratteri</li><li>Privato (B2C) - viene utilizzato il Codice Fiscale</li></ul>').'", "readonly": "'.intval($record['iso2'] ? $record['iso2'] != 'IT' : 0).'" ]}
</div>
<div class="col-md-4">
{[ "type": "checkbox", "label": "'.tr('Automezzo').'", "name": "is_automezzo", "id": "is_automezzo", "value": "0", "help": "'.tr('Seleziona se questa sede rappresenta un automezzo.').'" ]} {[ "type": "checkbox", "label": "'.tr('Automezzo').'", "name": "is_automezzo", "id": "is_automezzo", "value": "0", "help": "'.tr('Seleziona se questa sede rappresenta un automezzo.').'" ]}
</div> </div>
<div class="col-md-4">
{[ "type": "checkbox", "label": "'.tr('Rappresentante fiscale').'", "name": "is_rappresentante_fiscale", "value": "'.($record['is_rappresentante_fiscale']).'", "help": "'.tr("Utilizza questa sede come rappresentante fiscale per l'anagrafica.").'" ]}
</div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
{[ "type": "select", "multiple": "1", "label": "'.tr('Referenti').'", "name": "id_referenti[]", "ajax-source": "referenti", "select-options": {"idanagrafica": '.$id_parent.'}, "icon-after": "add|'.Modules::get('Anagrafiche')['id'].'|id_plugin='.Plugins::get('Referenti')['id'].'&id_parent='.$id_parent.'" ]} {[ "type": "select", "multiple": "1", "label": "'.tr('Referenti').'", "name": "id_referenti[]", "ajax-source": "referenti", "select-options": {"idanagrafica": '.$id_parent.'}, "icon-after": "add|'.Modules::get('Anagrafiche')['id'].'|id_plugin='.Plugins::get('Referenti')['id'].'&id_parent='.$id_parent.'" ]}

View File

@ -40,76 +40,70 @@ echo '
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "text", "label": "'.tr('Indirizzo').'", "name": "indirizzo", "id": "indirizzo_", "required": 0, "value": "$indirizzo$" ]} {[ "type": "text", "label": "'.tr('Indirizzo').'", "name": "indirizzo", "id": "indirizzo_", "required": 0, "value": "$indirizzo$" ]}
</div> </div>
<div class="col-md-6">
{[ "type": "text", "label": "'.($record['tipo_anagrafica'] == 'Ente pubblico' ? tr('Codice unico ufficio') : tr('Codice destinatario')).'", "name": "codice_destinatario", "required": 0, "class": "text-center text-uppercase alphanumeric-mask", "value": "$codice_destinatario$", "maxlength": '.($record['tipo_anagrafica'] == 'Ente pubblico' ? '6' : '7').', "help": "'.tr('<b>Attenzione</b>: per impostare il codice specificare prima \'Tipologia\' e \'Nazione\' dell\'anagrafica:<br><ul><li>Ente pubblico (B2G/PA) - Codice Univoco Ufficio (www.indicepa.gov.it), 6 caratteri</li><li>Azienda (B2B) - Codice Destinatario, 7 caratteri</li><li>Privato (B2C) - viene utilizzato il Codice Fiscale</li></ul>').'", "readonly": "'.intval($record['iso2'] ? $record['iso2'] != 'IT' : 0).'" ]}
</div>
</div>
<div class="row">
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "text", "label": "'.tr('Città').'", "name": "citta", "id": "citta_", "value": "$citta$", "required": 1 ]} {[ "type": "text", "label": "'.tr('Città').'", "name": "citta", "id": "citta_", "value": "$citta$", "required": 1 ]}
</div> </div>
</div>
<div class="col-md-2"> <div class="row">
<div class="col-md-4">
{[ "type": "text", "label": "'.tr('C.A.P.').'", "name": "cap", "value": "$cap$", "required":1 ]} {[ "type": "text", "label": "'.tr('C.A.P.').'", "name": "cap", "value": "$cap$", "required":1 ]}
</div> </div>
<div class="col-md-2"> <div class="col-md-4">
{[ "type": "text", "label": "'.tr('Provincia').'", "name": "provincia", "value": "$provincia$", "maxlength": 2, "class": "text-center provincia-mask text-uppercase", "extra": "onkeyup=\"this.value = this.value.toUpperCase();\"" ]} {[ "type": "text", "label": "'.tr('Provincia').'", "name": "provincia", "value": "$provincia$", "maxlength": 2, "class": "text-center provincia-mask text-uppercase", "extra": "onkeyup=\"this.value = this.value.toUpperCase();\"" ]}
</div> </div>
<div class="col-md-4">
<div class="col-md-2">
{[ "type": "number", "label": "'.tr('Km').'", "name": "km", "value": "$km$" ]}
</div>
</div>
<div class="row">
<div class="col-md-6">
{[ "type": "select", "label": "'.tr('Nazione').'", "name": "id_nazione", "value": "$id_nazione$", "ajax-source": "nazioni", "required": 1 ]} {[ "type": "select", "label": "'.tr('Nazione').'", "name": "id_nazione", "value": "$id_nazione$", "ajax-source": "nazioni", "required": 1 ]}
</div> </div>
</div>
<div class="col-md-6"> <div class="row">
<div class="col-md-3">
{[ "type": "telefono", "label": "'.tr('Telefono').'", "name": "telefono", "value": "$telefono$" ]} {[ "type": "telefono", "label": "'.tr('Telefono').'", "name": "telefono", "value": "$telefono$" ]}
</div> </div>
</div> <div class="col-md-3">
<div class="row">
<div class="col-md-6">
{[ "type": "text", "label": "'.tr('Fax').'", "name": "fax", "value": "$fax$" ]}
</div>
<div class="col-md-6">
{[ "type": "telefono", "label": "'.tr('Cellulare').'", "name": "cellulare", "value": "$cellulare$" ]} {[ "type": "telefono", "label": "'.tr('Cellulare').'", "name": "cellulare", "value": "$cellulare$" ]}
</div> </div>
</div>
<div class="row">
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "text", "label": "'.tr('Indirizzo email').'", "name": "email", "value": "$email$", "class": "email-mask", "validation": "email" ]} {[ "type": "text", "label": "'.tr('Indirizzo email').'", "name": "email", "value": "$email$", "class": "email-mask", "validation": "email" ]}
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "checkbox", "label": "'.tr('Opt-out per newsletter').'", "name": "disable_newsletter", "id": "disable_newsletter_m", "value": "'.empty($record['enable_newsletter']).'", "help": "'.tr("Blocco per l'invio delle email.").'" ]} {[ "type": "checkbox", "label": "'.tr('Opt-out per newsletter').'", "name": "disable_newsletter", "id": "disable_newsletter_m", "value": "'.empty($record['enable_newsletter']).'", "help": "'.tr("Blocco per l'invio delle email.").'" ]}
</div> </div>
</div>
<div class="row">
<div class="col-md-3">
{[ "type": "text", "label": "'.($record['tipo_anagrafica'] == 'Ente pubblico' ? tr('Codice unico ufficio') : tr('Codice destinatario')).'", "name": "codice_destinatario", "required": 0, "class": "text-center text-uppercase alphanumeric-mask", "value": "$codice_destinatario$", "maxlength": '.($record['tipo_anagrafica'] == 'Ente pubblico' ? '6' : '7').', "help": "'.tr('<b>Attenzione</b>: per impostare il codice specificare prima \'Tipologia\' e \'Nazione\' dell\'anagrafica:<br><ul><li>Ente pubblico (B2G/PA) - Codice Univoco Ufficio (www.indicepa.gov.it), 6 caratteri</li><li>Azienda (B2B) - Codice Destinatario, 7 caratteri</li><li>Privato (B2C) - viene utilizzato il Codice Fiscale</li></ul>').'", "readonly": "'.intval($record['iso2'] ? $record['iso2'] != 'IT' : 0).'" ]}
</div>
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "checkbox", "label": "'.tr('Rappresentante fiscale').'", "name": "is_rappresentante_fiscale", "value": "'.($record['is_rappresentante_fiscale']).'", "help": "'.tr("Utilizza questa sede come rappresentante fiscale per l'anagrafica.").'" ]}
</div>
<div class="col-md-3">
{[ "type": "text", "label": "'.tr('Partita IVA').'", "name": "piva", "value": "'.($record['piva']).'", "help": "'.tr('Partita IVA del rappresentante fiscale.').'", "disabled":"disabled"]}
</div>
<div class="col-md-3">
{[ "type": "text", "label": "'.tr('Codice fiscale').'", "name": "codice_fiscale", "value": "'.($record['codice_fiscale']).'", "help": "'.tr('Codice fiscale del rappresentante fiscale.').'", "disabled":"disabled" ]}
</div>
</div>
<div class="row">
<div class="col-md-4">
{[ "type": "checkbox", "label": "'.tr('Automezzo').'", "name": "is_automezzo", "id": "is_automezzo", "value": "'.$record['is_automezzo'].'", "help": "'.tr('Seleziona se questa sede rappresenta un automezzo.').'" ]} {[ "type": "checkbox", "label": "'.tr('Automezzo').'", "name": "is_automezzo", "id": "is_automezzo", "value": "'.$record['is_automezzo'].'", "help": "'.tr('Seleziona se questa sede rappresenta un automezzo.').'" ]}
</div> </div>
<div class="col-md-3"> <div class="col-md-4">
{[ "type": "select", "label": "'.tr('Zona').'", "name": "idzona", "ajax-source": "zone", "value": "$idzona$", "placeholder": "'.tr('Nessuna zona').'", "icon-after": "add|'.Modules::get('Zone')['id'].'" ]} {[ "type": "select", "label": "'.tr('Zona').'", "name": "idzona", "ajax-source": "zone", "value": "$idzona$", "placeholder": "'.tr('Nessuna zona').'", "icon-after": "add|'.Modules::get('Zone')['id'].'" ]}
</div> </div>
</div> <div class="col-md-4">
{[ "type": "number", "label": "'.tr('Km').'", "name": "km", "value": "$km$" ]}
<div class="row">
<div class="col-md-12">
{[ "type": "select", "multiple": "1", "label": "'.tr('Referenti').'", "name": "id_referenti[]", "value": "'.$referenti.'", "ajax-source": "referenti", "select-options": {"idanagrafica": '.$id_parent.'}, "icon-after": "add|'.Modules::get('Anagrafiche')['id'].'|id_plugin='.Plugins::get('Referenti')['id'].'&id_parent='.$id_parent.'" ]}
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-6">
{[ "type": "select", "multiple": "1", "label": "'.tr('Referenti').'", "name": "id_referenti[]", "value": "'.$referenti.'", "ajax-source": "referenti", "select-options": {"idanagrafica": '.$id_parent.'}, "icon-after": "add|'.Modules::get('Anagrafiche')['id'].'|id_plugin='.Plugins::get('Referenti')['id'].'&id_parent='.$id_parent.'" ]}
</div>
<div class="col-md-6">
{[ "type": "textarea", "label": "'.tr('Note').'", "name": "note", "value": "$note$" ]} {[ "type": "textarea", "label": "'.tr('Note').'", "name": "note", "value": "$note$" ]}
</div> </div>
</div> </div>
@ -214,6 +208,29 @@ echo '
<script>$(document).ready(init)</script> <script>$(document).ready(init)</script>
<script> <script>
function rappresentante_fiscale() {
let rappresentante_fiscale = input("is_rappresentante_fiscale");
let piva = input("piva");
let codice_fiscale = input("codice_fiscale");
if(rappresentante_fiscale.get()==1){
input("piva").enable();
input("codice_fiscale").enable();
} else {
input("piva").disable();
input("codice_fiscale").disable();
}
}
$(document).ready(function() {
rappresentante_fiscale();
});
input("is_rappresentante_fiscale").change(function () {
rappresentante_fiscale();
});
$("#modals > div").on("shown.bs.modal", function () { $("#modals > div").on("shown.bs.modal", function () {
if (input("lat").get() && input("lng").get()) { if (input("lat").get() && input("lng").get()) {
caricaMappaSede(); caricaMappaSede();
@ -288,5 +305,4 @@ function rimuoviSede(button) {
}); });
}).catch(swal.noop); }).catch(swal.noop);
} }
</script>'; </script>';

View File

@ -88,3 +88,6 @@ INSERT INTO `zz_prints` (`id`, `id_module`, `is_record`, `name`, `title`, `filen
INSERT INTO `zz_widgets` (`id`, `name`, `type`, `id_module`, `location`, `class`, `query`, `bgcolor`, `icon`, `print_link`, `more_link`, `more_link_type`, `php_include`, `text`, `enabled`, `order`, `help`) VALUES INSERT INTO `zz_widgets` (`id`, `name`, `type`, `id_module`, `location`, `class`, `query`, `bgcolor`, `icon`, `print_link`, `more_link`, `more_link_type`, `php_include`, `text`, `enabled`, `order`, `help`) VALUES
(NULL, 'Stampa carico odierno', 'print', (SELECT `id` FROM `zz_modules` WHERE name='Automezzi'), 'controller_top', 'col-md-4', '', '#37a02d', 'fa fa-print', '', 'var data_carico = prompt(\'Data del carico da stampare?\', moment(new Date()).format(\'DD/MM/YYYY\'));\r\nif ( data_carico != null){ \r\nwindow.open(\'pdfgen.php?id_print=54&search_targa=\'+$(\'#th_Targa input\').val()+\'&search_nome=\'+$(\'#th_Nome input\').val()+\'&data_carico=\'+data_carico); \r\n}', 'javascript', '', 'Stampa carico odierno', '1', '2', NULL), (NULL, 'Stampa carico odierno', 'print', (SELECT `id` FROM `zz_modules` WHERE name='Automezzi'), 'controller_top', 'col-md-4', '', '#37a02d', 'fa fa-print', '', 'var data_carico = prompt(\'Data del carico da stampare?\', moment(new Date()).format(\'DD/MM/YYYY\'));\r\nif ( data_carico != null){ \r\nwindow.open(\'pdfgen.php?id_print=54&search_targa=\'+$(\'#th_Targa input\').val()+\'&search_nome=\'+$(\'#th_Nome input\').val()+\'&data_carico=\'+data_carico); \r\n}', 'javascript', '', 'Stampa carico odierno', '1', '2', NULL),
(NULL, 'Stampa giacenza', 'print', (SELECT `id` FROM `zz_modules` WHERE name='Automezzi'), 'controller_top', 'col-md-4', '', '#45a9f1', 'fa fa-truck', '', 'if( confirm(\'Stampare la giacenza attuale sugli automezzi?\') ){ window.open(\'pdfgen.php?id_print=53&search_targa=\'+$(\'#th_Targa input\').val()+\'&search_nome=\'+$(\'#th_Nome input\').val()); }', 'javascript', '', 'Stampa giacenza', '1', '1', NULL); (NULL, 'Stampa giacenza', 'print', (SELECT `id` FROM `zz_modules` WHERE name='Automezzi'), 'controller_top', 'col-md-4', '', '#45a9f1', 'fa fa-truck', '', 'if( confirm(\'Stampare la giacenza attuale sugli automezzi?\') ){ window.open(\'pdfgen.php?id_print=53&search_targa=\'+$(\'#th_Targa input\').val()+\'&search_nome=\'+$(\'#th_Nome input\').val()); }', 'javascript', '', 'Stampa giacenza', '1', '1', NULL);
-- Aggiunta flag rappresentante fiscale per sede
ALTER TABLE `an_sedi` ADD `is_rappresentante_fiscale` BOOLEAN NOT NULL DEFAULT FALSE;