Ampliamento nodi FE
This commit is contained in:
parent
0c0ff74a95
commit
0a83b4d4d6
|
@ -4,11 +4,6 @@ include_once __DIR__.'/../../core.php';
|
||||||
|
|
||||||
use Modules\Anagrafiche\Anagrafica;
|
use Modules\Anagrafiche\Anagrafica;
|
||||||
|
|
||||||
$id_azienda = $dbo->fetchArray("SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Azienda'")[0]['idtipoanagrafica'];
|
|
||||||
$id_cliente = $dbo->fetchArray("SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Cliente'")[0]['idtipoanagrafica'];
|
|
||||||
$id_fornitore = $dbo->fetchArray("SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Fornitore'")[0]['idtipoanagrafica'];
|
|
||||||
$id_tecnico = $dbo->fetchArray("SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Tecnico'")[0]['idtipoanagrafica'];
|
|
||||||
|
|
||||||
switch (post('op')) {
|
switch (post('op')) {
|
||||||
case 'update':
|
case 'update':
|
||||||
// Informazioni sulla sede
|
// Informazioni sulla sede
|
||||||
|
|
|
@ -4,6 +4,11 @@ include_once __DIR__.'/../../core.php';
|
||||||
|
|
||||||
use Modules\Anagrafiche\Anagrafica;
|
use Modules\Anagrafiche\Anagrafica;
|
||||||
|
|
||||||
|
$id_azienda = $dbo->fetchArray("SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Azienda'")[0]['idtipoanagrafica'];
|
||||||
|
$id_cliente = $dbo->fetchArray("SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Cliente'")[0]['idtipoanagrafica'];
|
||||||
|
$id_fornitore = $dbo->fetchArray("SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Fornitore'")[0]['idtipoanagrafica'];
|
||||||
|
$id_tecnico = $dbo->fetchArray("SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Tecnico'")[0]['idtipoanagrafica'];
|
||||||
|
|
||||||
if (isset($id_record)) {
|
if (isset($id_record)) {
|
||||||
$anagrafica = Anagrafica::find($id_record);
|
$anagrafica = Anagrafica::find($id_record);
|
||||||
|
|
||||||
|
|
|
@ -90,6 +90,7 @@ switch (post('op')) {
|
||||||
'idconto' => post('idconto'),
|
'idconto' => post('idconto'),
|
||||||
|
|
||||||
'n_colli' => post('n_colli'),
|
'n_colli' => post('n_colli'),
|
||||||
|
'tipo_resa' => post('tipo_resa'),
|
||||||
'bollo' => 0,
|
'bollo' => 0,
|
||||||
'rivalsainps' => 0,
|
'rivalsainps' => 0,
|
||||||
'ritenutaacconto' => 0,
|
'ritenutaacconto' => 0,
|
||||||
|
|
|
@ -265,8 +265,82 @@ if ($tipodoc == 'Fattura accompagnatoria di vendita') {
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-3">
|
<div class="col-md-3">
|
||||||
{[ "type": "select", "label": "'.tr('Vettore').'", "name": "idvettore", "values": "query=SELECT DISTINCT an_anagrafiche.idanagrafica AS id, an_anagrafiche.ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN an_tipianagrafiche_anagrafiche ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE an_tipianagrafiche_anagrafiche.idtipoanagrafica=(SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione=\'Vettore\') ORDER BY descrizione ASC", "value": "$idvettore$", "required": 1 ]}
|
{[ "type": "select", "label": "'.tr('Vettore').'", "name": "idvettore", "values": "query=SELECT DISTINCT an_anagrafiche.idanagrafica AS id, an_anagrafiche.ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN an_tipianagrafiche_anagrafiche ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE an_tipianagrafiche_anagrafiche.idtipoanagrafica=(SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione=\'Vettore\') ORDER BY descrizione ASC", "value": "$idvettore$", "required": '.intval($record['idspedizione'] != 3).' ]}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
$("#idspedizione").change( function(){
|
||||||
|
if ($(this).val() == 3) {
|
||||||
|
$("#idvettore").attr("required", false);
|
||||||
|
$("#idvettore").parent().find("label").text("'.tr('Vettore').'")
|
||||||
|
}else{
|
||||||
|
$("#idvettore").attr("required", true);
|
||||||
|
$("#idvettore").parent().find("label").text("'.tr('Vettore').'*")
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>';
|
||||||
|
|
||||||
|
$tipo_resa = [
|
||||||
|
[
|
||||||
|
'id' => 'EXW',
|
||||||
|
'text' => 'EXW',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'id' => 'FCA',
|
||||||
|
'text' => 'FCA',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'id' => 'FAS',
|
||||||
|
'text' => 'FAS',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'id' => 'FOB',
|
||||||
|
'text' => 'FOB',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'id' => 'CFR',
|
||||||
|
'text' => 'CFR',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'id' => 'CIF',
|
||||||
|
'text' => 'CIF',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'id' => 'CPT',
|
||||||
|
'text' => 'CPT',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'id' => 'CIP',
|
||||||
|
'text' => 'CIP',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'id' => 'DAF',
|
||||||
|
'text' => 'DAF',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'id' => 'DES',
|
||||||
|
'text' => 'DES',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'id' => 'DEQ',
|
||||||
|
'text' => 'DEQ',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'id' => 'DDU',
|
||||||
|
'text' => 'DDU',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'id' => 'DDP',
|
||||||
|
'text' => 'DDP',
|
||||||
|
]
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
echo '
|
||||||
|
<div class="col-md-3">
|
||||||
|
{[ "type": "select", "label": "'.tr('Tipo Resa').'", "name": "tipo_resa", "values": '.json_encode($tipo_resa).', "readonly": '.intval($record['causale_desc'] != 'Reso').' ]}
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>';
|
</div>';
|
||||||
|
|
|
@ -11,11 +11,24 @@ if ($module['name'] == 'Fatture di vendita') {
|
||||||
if (isset($id_record)) {
|
if (isset($id_record)) {
|
||||||
$fattura = Modules\Fatture\Fattura::with('tipo', 'stato')->find($id_record);
|
$fattura = Modules\Fatture\Fattura::with('tipo', 'stato')->find($id_record);
|
||||||
|
|
||||||
$record = $dbo->fetchOne('SELECT *, co_tipidocumento.reversed AS is_reversed, co_documenti.idagente AS idagente_fattura, co_documenti.note, co_documenti.note_aggiuntive, co_documenti.idpagamento, co_documenti.id AS iddocumento, co_statidocumento.descrizione AS `stato`, co_tipidocumento.descrizione AS `descrizione_tipodoc`,
|
$record = $dbo->fetchOne('SELECT *,
|
||||||
(SELECT is_fiscale FROM zz_segments WHERE id = id_segment) AS is_fiscale,
|
co_tipidocumento.reversed AS is_reversed,
|
||||||
(SELECT descrizione FROM co_ritenutaacconto WHERE id=idritenutaacconto) AS ritenutaacconto_desc,
|
co_documenti.idagente AS idagente_fattura,
|
||||||
(SELECT descrizione FROM co_rivalsainps WHERE id=idrivalsainps) AS rivalsainps_desc
|
co_documenti.note,
|
||||||
FROM ((co_documenti LEFT OUTER JOIN co_statidocumento ON co_documenti.idstatodocumento=co_statidocumento.id) INNER JOIN an_anagrafiche ON co_documenti.idanagrafica=an_anagrafiche.idanagrafica) INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id WHERE co_tipidocumento.dir = '.prepare($dir).' AND co_documenti.id='.prepare($id_record));
|
co_documenti.note_aggiuntive,
|
||||||
|
co_documenti.idpagamento,
|
||||||
|
co_documenti.id AS iddocumento,
|
||||||
|
co_statidocumento.descrizione AS `stato`,
|
||||||
|
co_tipidocumento.descrizione AS `descrizione_tipodoc`,
|
||||||
|
(SELECT is_fiscale FROM zz_segments WHERE id = id_segment) AS is_fiscale,
|
||||||
|
(SELECT descrizione FROM co_ritenutaacconto WHERE id=idritenutaacconto) AS ritenutaacconto_desc,
|
||||||
|
(SELECT descrizione FROM co_rivalsainps WHERE id=idrivalsainps) AS rivalsainps_desc,
|
||||||
|
(SELECT descrizione FROM dt_causalet WHERE id=idcausalet) AS causale_desc
|
||||||
|
FROM co_documenti
|
||||||
|
LEFT OUTER JOIN co_statidocumento ON co_documenti.idstatodocumento=co_statidocumento.id
|
||||||
|
INNER JOIN an_anagrafiche ON co_documenti.idanagrafica=an_anagrafiche.idanagrafica
|
||||||
|
INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id
|
||||||
|
WHERE co_tipidocumento.dir = '.prepare($dir).' AND co_documenti.id='.prepare($id_record));
|
||||||
|
|
||||||
$note_accredito = $dbo->fetchArray("SELECT co_documenti.id, IF(numero_esterno != '', numero_esterno, numero) AS numero, data FROM co_documenti JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id WHERE reversed = 1 AND ref_documento=".prepare($id_record));
|
$note_accredito = $dbo->fetchArray("SELECT co_documenti.id, IF(numero_esterno != '', numero_esterno, numero) AS numero, data FROM co_documenti JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id WHERE reversed = 1 AND ref_documento=".prepare($id_record));
|
||||||
}
|
}
|
||||||
|
|
|
@ -153,6 +153,25 @@ class FatturaElettronica
|
||||||
return $this->ordini;
|
return $this->ordini;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Restituisce le fatture collegaten al documento.
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getFattureCollegate()
|
||||||
|
{
|
||||||
|
if (empty($this->fatture_collegate)) {
|
||||||
|
$documento = $this->getDocumento();
|
||||||
|
$database = database();
|
||||||
|
|
||||||
|
$note_accredito = $database->fetchArray("SELECT numero_esterno, data FROM co_documenti WHERE id=".prepare($documento['ref_documento']));
|
||||||
|
|
||||||
|
$this->fatture_collegate = $note_accredito;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->fatture_collegate;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Restituisce le informazioni relative al documento.
|
* Restituisce le informazioni relative al documento.
|
||||||
*
|
*
|
||||||
|
@ -436,17 +455,23 @@ class FatturaElettronica
|
||||||
$documento = $fattura->getDocumento();
|
$documento = $fattura->getDocumento();
|
||||||
$database = database();
|
$database = database();
|
||||||
|
|
||||||
$vettore = static::getAnagrafica($documento['idvettore']);
|
|
||||||
|
|
||||||
$causale = $database->fetchOne('SELECT descrizione FROM dt_causalet WHERE id = '.prepare($documento['idcausalet']))['descrizione'];
|
$causale = $database->fetchOne('SELECT descrizione FROM dt_causalet WHERE id = '.prepare($documento['idcausalet']))['descrizione'];
|
||||||
$aspetto = $database->fetchOne('SELECT descrizione FROM dt_aspettobeni WHERE id = '.prepare($documento['idaspettobeni']))['descrizione'];
|
$aspetto = $database->fetchOne('SELECT descrizione FROM dt_aspettobeni WHERE id = '.prepare($documento['idaspettobeni']))['descrizione'];
|
||||||
|
|
||||||
$result = [
|
$result = [];
|
||||||
'DatiAnagraficiVettore' => static::getDatiAnagrafici($vettore),
|
|
||||||
'CausaleTrasporto' => $causale,
|
if ($documento['idvettore']) {
|
||||||
'NumeroColli' => $documento['n_colli'],
|
$vettore = static::getAnagrafica($documento['idvettore']);
|
||||||
'Descrizione' => $aspetto,
|
$result['DatiAnagraficiVettore'] = static::getDatiAnagrafici($vettore);
|
||||||
];
|
}
|
||||||
|
|
||||||
|
$result['CausaleTrasporto'] = $causale;
|
||||||
|
$result['NumeroColli'] = $documento['n_colli'];
|
||||||
|
$result['Descrizione'] = $aspetto;
|
||||||
|
|
||||||
|
if ($documento['tipo_resa']) {
|
||||||
|
$result['TipoResa'] = $documento['tipo_resa'];
|
||||||
|
}
|
||||||
|
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
@ -463,20 +488,20 @@ class FatturaElettronica
|
||||||
$result = [];
|
$result = [];
|
||||||
foreach ($ordini as $element) {
|
foreach ($ordini as $element) {
|
||||||
if (!empty($element['id_documento_fe'])) {
|
if (!empty($element['id_documento_fe'])) {
|
||||||
$dati_contratto = [
|
$dati = [
|
||||||
'IdDocumento' => $element['id_documento_fe'],
|
'IdDocumento' => $element['id_documento_fe'],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($element['codice_cig'])) {
|
if (!empty($element['codice_cig'])) {
|
||||||
$dati_contratto['CodiceCIG'] = $element['codice_cig'];
|
$dati['CodiceCIG'] = $element['codice_cig'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($element['codice_cup'])) {
|
if (!empty($element['codice_cup'])) {
|
||||||
$dati_contratto['CodiceCUP'] = $element['codice_cup'];
|
$dati['CodiceCUP'] = $element['codice_cup'];
|
||||||
}
|
}
|
||||||
|
|
||||||
$result[] = $dati_contratto;
|
$result[] = $dati;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $result;
|
return $result;
|
||||||
|
@ -494,20 +519,40 @@ class FatturaElettronica
|
||||||
$result = [];
|
$result = [];
|
||||||
foreach ($contratti as $element) {
|
foreach ($contratti as $element) {
|
||||||
if (!empty($element['id_documento_fe'])) {
|
if (!empty($element['id_documento_fe'])) {
|
||||||
$dati_contratto = [
|
$dati = [
|
||||||
'IdDocumento' => $element['id_documento_fe'],
|
'IdDocumento' => $element['id_documento_fe'],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($element['codice_cig'])) {
|
if (!empty($element['codice_cig'])) {
|
||||||
$dati_contratto['CodiceCIG'] = $element['codice_cig'];
|
$dati['CodiceCIG'] = $element['codice_cig'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($element['codice_cup'])) {
|
if (!empty($element['codice_cup'])) {
|
||||||
$dati_contratto['CodiceCUP'] = $element['codice_cup'];
|
$dati['CodiceCUP'] = $element['codice_cup'];
|
||||||
}
|
}
|
||||||
|
|
||||||
$result[] = $dati_contratto;
|
$result[] = $dati;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Restituisce l'array responsabile per la generazione del tag DatiFattureCollegate.
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
protected static function getDatiFattureCollegate($fattura)
|
||||||
|
{
|
||||||
|
$fatture = $fattura->getFattureCollegate();
|
||||||
|
|
||||||
|
$result = [];
|
||||||
|
foreach ($fatture as $element) {
|
||||||
|
$result[] = [
|
||||||
|
'IdDocumento' => $element['numero_esterno'],
|
||||||
|
'Data' => $element['data'],
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
return $result;
|
return $result;
|
||||||
|
@ -551,6 +596,18 @@ class FatturaElettronica
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Controllo le le righe per la fatturazione di contratti
|
||||||
|
$dati_fatture_collegate = static::getDatiFattureCollegate($fattura);
|
||||||
|
if (!empty($dati_fatture_collegate)) {
|
||||||
|
foreach ($dati_fatture_collegate as $dato) {
|
||||||
|
if (!empty($dato)) {
|
||||||
|
$result[] = [
|
||||||
|
'DatiFattureCollegate' => $dato,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ($documento['tipo'] == 'Fattura accompagnatoria di vendita') {
|
if ($documento['tipo'] == 'Fattura accompagnatoria di vendita') {
|
||||||
$result['DatiTrasporto'] = static::getDatiTrasporto($fattura);
|
$result['DatiTrasporto'] = static::getDatiTrasporto($fattura);
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,3 +31,5 @@ ALTER TABLE `co_documenti` CHANGE `codice_xml` `progressivo_invio` VARCHAR(255);
|
||||||
-- Aggiunto codice cig e codice cup per fatture e ordini
|
-- Aggiunto codice cig e codice cup per fatture e ordini
|
||||||
ALTER TABLE `or_ordini` ADD `codice_cig` VARCHAR(15) AFTER `tipo_sconto_globale`, ADD `codice_cup` VARCHAR(15) AFTER `codice_cig`, ADD `id_documento_fe` VARCHAR(20) AFTER `codice_cup`;
|
ALTER TABLE `or_ordini` ADD `codice_cig` VARCHAR(15) AFTER `tipo_sconto_globale`, ADD `codice_cup` VARCHAR(15) AFTER `codice_cig`, ADD `id_documento_fe` VARCHAR(20) AFTER `codice_cup`;
|
||||||
ALTER TABLE `co_righe_documenti` ADD `data_inizio_periodo` date, ADD `data_fine_periodo` date, ADD `riferimento_amministrazione` VARCHAR(20), ADD `tipo_cessione_prestazione` enum('SC', 'PR', 'AB', 'AC') DEFAULT NULL;
|
ALTER TABLE `co_righe_documenti` ADD `data_inizio_periodo` date, ADD `data_fine_periodo` date, ADD `riferimento_amministrazione` VARCHAR(20), ADD `tipo_cessione_prestazione` enum('SC', 'PR', 'AB', 'AC') DEFAULT NULL;
|
||||||
|
|
||||||
|
ALTER TABLE `co_documenti` ADD `tipo_resa` VARCHAR(3);
|
||||||
|
|
Loading…
Reference in New Issue