Miglioramenti del codice

This commit is contained in:
Thomas Zilio 2018-11-09 07:02:59 +01:00
parent a5e3517c55
commit 2d42bb56c6
7 changed files with 82 additions and 80 deletions

View File

@ -835,20 +835,22 @@ function start_datatables() {
$('#mini-loader').show();
} else {
$('#mini-loader').hide();
//Reimposto il flag sulle righe ricaricate selezionate in precedenza
var selected = $this.data('selected').split(';');
table.rows().every( function ( rowIdx, tableLoop, rowLoop ) {
table.rows().every(function (rowIdx, tableLoop, rowLoop) {
var object_span = $.parseHTML(this.data()[0])[0];
var id = $(object_span).data('id');
for(i=0;i<selected.length;i++){
var value = selected[i];
if(value==id){
table.row(':eq('+rowIdx+')', { page: 'current' }).select();
}
}
for (i = 0; i < selected.length; i++) {
var value = selected[i];
if (value == id) {
table.row(':eq(' + rowIdx + ')', {
page: 'current'
}).select();
}
}
});
}
})
@ -979,9 +981,9 @@ jQuery.fn.selectReset = function (placeholder) {
this.selectClear();
this.empty();
if (placeholder != undefined){
this.next().find('.select2-selection__placeholder').text(placeholder);
this.next().find('input.select2-search__field').attr('placeholder', placeholder);
if (placeholder != undefined) {
this.next().find('.select2-selection__placeholder').text(placeholder);
this.next().find('input.select2-search__field').attr('placeholder', placeholder);
}
return this;

View File

@ -13,18 +13,9 @@ switch (post('op')) {
case 'update':
// Informazioni sull'anagrafica
$anagrafica->codice = post('codice');
if (empty(post('tipo'))){
$anagrafica->codice_destinatario = '';
}else if (post('tipo') == 'Privato'){
$anagrafica->codice_destinatario = '0000000';
}else{
//controlli anche su FatturaElettronica.php
if (empty(post('codice_destinatario')) or post('codice_destinatario') == '999999' or post('codice_destinatario') == '0000000')
$anagrafica->codice_destinatario = ((post('tipo') == 'Ente pubblico' ) ? '999999': '0000000');
else
$anagrafica->codice_destinatario = strtoupper(post('codice_destinatario'));
}
$anagrafica->ragione_sociale = post('ragione_sociale');
$anagrafica->tipo = post('tipo');
$anagrafica->codice_destinatario = post('codice_destinatario');
$anagrafica->ragione_sociale = post('ragione_sociale');
$anagrafica->tipo = post('tipo');
$anagrafica->data_nascita = post('data_nascita');
$anagrafica->luogo_nascita = post('luogo_nascita');

View File

@ -175,6 +175,17 @@ class Anagrafica extends Model
$this->attributes['codice_fiscale'] = trim(strtoupper($value));
}
public function setCodiceDestinatarioAttribute($value)
{
if (empty($this->tipo) || $this->tipo == 'Privato' || in_array($value, ['999999', '0000000'])) {
$codice_destinatario = '';
} else {
$codice_destinatario = $value;
}
$this->attributes['codice_destinatario'] = trim(strtoupper($codice_destinatario));
}
public function tipi()
{
return $this->belongsToMany(Tipo::class, 'an_tipianagrafiche_anagrafiche', 'idanagrafica', 'idtipoanagrafica');

View File

@ -7,9 +7,9 @@ switch (filter('op')) {
case 'generate':
if (!empty($fattura_pa)) {
$file = $fattura_pa->save($upload_dir);
//Aggiorno la data di creazione della fattura elettronica
$dbo->query("UPDATE co_documenti SET xmlgenerated_at=NOW() WHERE co_documenti.id=".prepare($id_record));
$dbo->query("UPDATE co_documenti SET xml_generated_at=NOW() WHERE co_documenti.id=".prepare($id_record));
flash()->info(tr('Fattura elettronica generata correttamente!'));

View File

@ -6,13 +6,13 @@ include_once __DIR__.'/init.php';
if (!empty($fattura_pa)) {
$disabled = false;
$generated = file_exists($upload_dir.'/'.$fattura_pa->getFilename());
//Ulteriore controllo sulla data generazione file
$rs_generated = $dbo->fetchArray("SELECT xmlgenerated_at FROM co_documenti WHERE id=".prepare($id_record));
if(empty($rs_generated[0]['xmlgenerated_at'])){
$rs_generated = $dbo->fetchArray("SELECT xml_generated_at FROM co_documenti WHERE id=".prepare($id_record));
if(empty($rs_generated[0]['xml_generated_at'])){
$generated = false;
}
} else {
echo '
<div class="alert alert-warning">

View File

@ -5,6 +5,7 @@ namespace Plugins\ExportPA;
use FluidXml\FluidXml;
use Respect\Validation\Validator as v;
use Stringy\Stringy as S;
use GuzzleHttp\Client;
use DateTime;
use DOMDocument;
use XSLTProcessor;
@ -44,7 +45,7 @@ class FatturaElettronica
WHERE `co_documenti`.`id` = '.prepare($id_documento));
// Controllo sulla possibilità di creare la fattura elettronica
// Posso fatturare ai privati utilizzando il codice fiscale
// Posso fatturare ai privati utilizzando il codice fiscale
if ($this->documento['stato'] != 'Emessa') {
throw new \UnexpectedValueException();
}
@ -393,38 +394,41 @@ class FatturaElettronica
return $result;
}
/**
* Restituisce l'array responsabile per la generazione del tag DatiContratto.
*
* @return array
*/
/**
* Restituisce l'array responsabile per la generazione del tag DatiContratto.
*
* @return array
*/
protected static function getDatiContratto($fattura)
{
$documento = $fattura->getDocumento();
$righe_documento = $fattura->getRighe();
$righe_documento = $fattura->getRighe();
$database = database();
foreach ($righe_documento as $numero => $riga) {
if (!empty($riga['idcontratto'])){
$numero_contratto = $database->fetchOne('SELECT numero FROM co_contratti WHERE id = '.prepare($riga['idcontratto']))['numero'];
$codice_cig = $database->fetchOne('SELECT codice_cig FROM co_contratti WHERE id = '.prepare($riga['idcontratto']))['codice_cig'];
$codice_cup = $database->fetchOne('SELECT codice_cup FROM co_contratti WHERE id = '.prepare($riga['idcontratto']))['codice_cup'];
$result[] = [
'IdDocumento' => $numero_contratto,
];
if (!empty($codice_cig)) {
$result['CodiceCIG'] = $codice_cig;
}
if (!empty($codice_cup)) {
$result['CodiceCUP'] = $codice_cup;
}
}
}
$result = [];
foreach ($righe_documento as $riga) {
if (!empty($riga['idcontratto'])) {
$numero_contratto = $database->fetchOne('SELECT numero FROM co_contratti WHERE id = '.prepare($riga['idcontratto']))['numero'];
$codice_cig = $database->fetchOne('SELECT codice_cig FROM co_contratti WHERE id = '.prepare($riga['idcontratto']))['codice_cig'];
$codice_cup = $database->fetchOne('SELECT codice_cup FROM co_contratti WHERE id = '.prepare($riga['idcontratto']))['codice_cup'];
$result[] = [
'IdDocumento' => $numero_contratto,
];
if (!empty($codice_cig)) {
$result['CodiceCIG'] = $codice_cig;
}
if (!empty($codice_cup)) {
$result['CodiceCUP'] = $codice_cup;
}
}
}
return $result;
}
@ -436,27 +440,21 @@ class FatturaElettronica
protected static function getDatiGenerali($fattura)
{
$documento = $fattura->getDocumento();
$cliente = $fattura->getCliente();
$cliente = $fattura->getCliente();
$result = [
'DatiGeneraliDocumento' => static::getDatiGeneraliDocumento($fattura),
// TODO: DatiOrdineAcquisto, DatiContratto, DatiConvenzione, DatiRicezione, DatiFattureCollegate, DatiSAL, DatiDDT, FatturaPrincipale
];
//aggiungo nodo codice cig, cup solo per enti pubblici
if ($cliente['tipo'] == 'Ente pubblico'){
//e se tra le righe ho fatturato almeno un contratto
$righe_documento = $fattura->getRighe();
$find = false;
foreach ($righe_documento as $key => $item) {
if (!empty($item['idcontratto'])) {
$find = true;
}
}
if ($find){
$result['DatiContratto'] = static::getDatiContratto($fattura);
}
}
// Aggiungo nodo codice cig, cup solo per enti pubblici
if ($cliente['tipo'] == 'Ente pubblico') {
// Controllo le le righe per la fatturazione di contratti
$dati_contratto = static::getDatiContratto($fattura);
if (!empty($dati_contratto)) {
$result['DatiContratto'] = $dati_contratto;
}
}
if ($documento['tipo'] == 'Fattura accompagnatoria di vendita') {
$result['DatiTrasporto'] = static::getDatiTrasporto($fattura);
@ -737,7 +735,7 @@ class FatturaElettronica
}
// Localhost: ['curl' => [CURLOPT_SSL_VERIFYPEER => false]]
$client = new \GuzzleHttp\Client();
$client = new Client();
$response = $client->request('POST', 'https://www.indicepa.gov.it/public-ws/WS01_SFE_CF.php', [
'form_params' => [

View File

@ -602,12 +602,12 @@ ALTER TABLE `co_contratti` ADD `codice_cig` VARCHAR(15) NOT NULL AFTER `tipo_sco
ALTER TABLE `co_contratti` ADD `codice_cup` VARCHAR(15) NOT NULL AFTER `codice_cig`;
-- Agiunta data e ora generazione fattura elettronica
ALTER TABLE `co_documenti` ADD `xmlgenerated_at` TIMESTAMP NULL AFTER `codice_xml`;
ALTER TABLE `co_documenti` ADD `xml_generated_at` TIMESTAMP NULL AFTER `codice_xml`;
-- Colonna nella vista fatture per indicare se è stato generato o meno il file xml
INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `visible`, `summable`, `default`) VALUES
(NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di vendita'), 'icon_FE', 'IF(xmlgenerated_at IS NOT NULL, \'fa fa-file-code-o text-success\', \'\')', 10, 1, 0, 0, 1, 0, 0),
(NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di vendita'), 'icon_title_FE', 'IF(xmlgenerated_at IS NOT NULL, \'Generata\', \'\')', 10, 1, 0, 0, 0, 0, 0);
(NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di vendita'), 'icon_FE', 'IF(xml_generated_at IS NOT NULL, \'fa fa-file-code-o text-success\', \'\')', 10, 1, 0, 0, 1, 0, 0),
(NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di vendita'), 'icon_title_FE', 'IF(xml_generated_at IS NOT NULL, \'Generata\', \'\')', 10, 1, 0, 0, 0, 0, 0);
-- Colonna nella vista fatture per indicare se è stata inviata o meno la mail
INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `visible`, `summable`, `default`) VALUES