Aggiunti DatiTrasporto FE
This commit is contained in:
parent
e10266d808
commit
50c9083473
|
@ -153,40 +153,7 @@ if ($dir == 'entrata') {
|
|||
|
||||
</div>
|
||||
|
||||
|
||||
<?php
|
||||
if ($tipodoc == 'Fattura accompagnatoria di vendita') {
|
||||
?>
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
{[ "type": "select", "label": "<?php echo tr('Aspetto beni'); ?>", "name": "idaspettobeni", "placeholder": "-", "values": "query=SELECT id, descrizione FROM dt_aspettobeni ORDER BY descrizione ASC", "value": "$idaspettobeni$" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "select", "label": "<?php echo tr('Causale trasporto'); ?>", "name": "idcausalet", "placeholder": "-", "values": "query=SELECT id, descrizione FROM dt_causalet ORDER BY descrizione ASC", "value": "$idcausalet$" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "select", "label": "<?php echo tr('Porto'); ?>", "name": "idporto", "placeholder": "-", "values": "query=SELECT id, descrizione FROM dt_porto ORDER BY descrizione ASC", "value": "$idporto$" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "text", "label": "<?php echo tr('Num. colli'); ?>", "name": "n_colli", "value": "$n_colli$" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
{[ "type": "select", "label": "<?php echo tr('Tipo di spedizione'); ?>", "name": "idspedizione", "values": "query=SELECT id, descrizione FROM dt_spedizione ORDER BY descrizione ASC", "value": "$idspedizione$" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "select", "label": "<?php echo 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$" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
}
|
||||
|
||||
if ($dir == 'uscita') {
|
||||
?>
|
||||
|
@ -249,6 +216,48 @@ if ($record['stato'] == 'Emessa') {
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
|
||||
if ($tipodoc == 'Fattura accompagnatoria di vendita') {
|
||||
echo '
|
||||
<div class="box box-info">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title"><i class="fa fa-edit"></i> '.tr('Dati Fattura accompagnatoria').'</h3>
|
||||
</div>
|
||||
|
||||
<div class="box-body">
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
{[ "type": "select", "label": "'.tr('Aspetto beni').'", "name": "idaspettobeni", "placeholder": "-", "values": "query=SELECT id, descrizione FROM dt_aspettobeni ORDER BY descrizione ASC", "value": "$idaspettobeni$" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "select", "label": "'.tr('Causale trasporto').'", "name": "idcausalet", "placeholder": "-", "values": "query=SELECT id, descrizione FROM dt_causalet ORDER BY descrizione ASC", "value": "$idcausalet$" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "select", "label": "'.tr('Porto').'", "name": "idporto", "placeholder": "-", "values": "query=SELECT id, descrizione FROM dt_porto ORDER BY descrizione ASC", "value": "$idporto$" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "text", "label": "'.tr('Num. colli').'", "name": "n_colli", "value": "$n_colli$" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
{[ "type": "select", "label": "'.tr('Tipo di spedizione').'", "name": "idspedizione", "values": "query=SELECT id, descrizione FROM dt_spedizione ORDER BY descrizione ASC", "value": "$idspedizione$" ]}
|
||||
</div>
|
||||
|
||||
<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$" ]}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>';
|
||||
}
|
||||
?>
|
||||
</form>
|
||||
|
||||
|
||||
|
|
|
@ -7,6 +7,12 @@ if (!empty($fattura_pa)) {
|
|||
$disabled = false;
|
||||
$generated = file_exists($upload_dir.'/'.$fattura_pa->getFilename());
|
||||
} else {
|
||||
echo '
|
||||
<div class="alert alert-warning">
|
||||
<i class="fa fa-warning"></i>
|
||||
<b>'.tr('Attenzione!').'</b> '.tr('Per generare la fattura elettronica è necessario che sia in stato "Emessa"').'.
|
||||
</div>';
|
||||
|
||||
$disabled = true;
|
||||
$generated = false;
|
||||
}
|
||||
|
|
|
@ -38,7 +38,10 @@ class FatturaElettronica
|
|||
$database = database();
|
||||
|
||||
// Documento
|
||||
$this->documento = $database->fetchOne('SELECT *, (SELECT `codice_tipo_documento_fe` FROM `co_tipidocumento` WHERE `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento`) AS `tipo_documento`, (SELECT `descrizione` FROM `co_statidocumento` WHERE `co_documenti`.`idstatodocumento` = `co_statidocumento`.`id`) AS `stato` FROM `co_documenti` WHERE `id` = '.prepare($id_documento));
|
||||
$this->documento = $database->fetchOne('SELECT `co_documenti`.*, `co_tipidocumento`.`descrizione` AS `tipo`, `co_tipidocumento`.`codice_tipo_documento_fe` AS `tipo_documento`, `co_statidocumento`.`descrizione` AS `stato` FROM `co_documenti`
|
||||
INNER JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento`
|
||||
INNER JOIN `co_statidocumento` ON `co_statidocumento`.`id` = `co_documenti`.`idstatodocumento`
|
||||
WHERE `co_documenti`.`id` = '.prepare($id_documento));
|
||||
|
||||
// Controllo sulla possibilità di creare la fattura elettronica
|
||||
if ($this->documento['stato'] != 'Emessa' || $this->getCliente()['tipo'] == 'Privato') {
|
||||
|
@ -54,9 +57,7 @@ class FatturaElettronica
|
|||
public static function getAzienda()
|
||||
{
|
||||
if (empty(static::$azienda)) {
|
||||
$database = database();
|
||||
|
||||
static::$azienda = $database->fetchOne('SELECT *, (SELECT `iso2` FROM `an_nazioni` WHERE `an_nazioni`.`id` = `an_anagrafiche`.`id_nazione`) AS nazione FROM `an_anagrafiche` WHERE `idanagrafica` = '.prepare(setting('Azienda predefinita')));
|
||||
static::$azienda = static::getAnagrafica(setting('Azienda predefinita'));
|
||||
}
|
||||
|
||||
return static::$azienda;
|
||||
|
@ -70,14 +71,24 @@ class FatturaElettronica
|
|||
public function getCliente()
|
||||
{
|
||||
if (empty($this->cliente)) {
|
||||
$database = database();
|
||||
|
||||
$this->cliente = $database->fetchOne('SELECT *, (SELECT `iso2` FROM `an_nazioni` WHERE `an_nazioni`.`id` = `an_anagrafiche`.`id_nazione`) AS nazione FROM `an_anagrafiche` WHERE `idanagrafica` = '.prepare($this->getDocumento()['idanagrafica']));
|
||||
$this->cliente = static::getAnagrafica($this->getDocumento()['idanagrafica']);
|
||||
}
|
||||
|
||||
return $this->cliente;
|
||||
}
|
||||
|
||||
/**
|
||||
* Restituisce le informazioni riguardanti un anagrafica sulla base dell'identificativo fornito.
|
||||
*
|
||||
* @param int $id
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected static function getAnagrafica($id)
|
||||
{
|
||||
return database()->fetchOne('SELECT *, (SELECT `iso2` FROM `an_nazioni` WHERE `an_nazioni`.`id` = `an_anagrafiche`.`id_nazione`) AS nazione FROM `an_anagrafiche` WHERE `idanagrafica` = '.prepare($id));
|
||||
}
|
||||
|
||||
/**
|
||||
* Restituisce le informazioni relative al documento.
|
||||
*
|
||||
|
@ -107,8 +118,12 @@ class FatturaElettronica
|
|||
*
|
||||
* @return array
|
||||
*/
|
||||
protected static function getDatiTrasmissione($documento, $azienda, $cliente)
|
||||
protected static function getDatiTrasmissione($fattura)
|
||||
{
|
||||
$azienda = static::getAzienda();
|
||||
$documento = $fattura->getDocumento();
|
||||
$cliente = $fattura->getCliente();
|
||||
|
||||
$default_code = ($cliente['tipo'] == 'Ente pubblico') ? '999999' : '0000000';
|
||||
|
||||
// Generazione dell'header
|
||||
|
@ -208,8 +223,10 @@ class FatturaElettronica
|
|||
*
|
||||
* @return array
|
||||
*/
|
||||
protected static function getCedentePrestatore($azienda)
|
||||
protected static function getCedentePrestatore($fattura)
|
||||
{
|
||||
$azienda = static::getAzienda();
|
||||
|
||||
$result = [
|
||||
'DatiAnagrafici' => static::getDatiAnagrafici($azienda, true),
|
||||
'Sede' => static::getSede($azienda),
|
||||
|
@ -259,8 +276,10 @@ class FatturaElettronica
|
|||
*
|
||||
* @return array
|
||||
*/
|
||||
protected static function getCessionarioCommittente($cliente)
|
||||
protected static function getCessionarioCommittente($fattura)
|
||||
{
|
||||
$cliente = $fattura->getCliente();
|
||||
|
||||
$result = [
|
||||
'DatiAnagrafici' => static::getDatiAnagrafici($cliente),
|
||||
'Sede' => static::getSede($cliente),
|
||||
|
@ -275,8 +294,10 @@ class FatturaElettronica
|
|||
*
|
||||
* @return array
|
||||
*/
|
||||
protected static function getDatiGeneraliDocumento($documento)
|
||||
protected static function getDatiGeneraliDocumento($fattura)
|
||||
{
|
||||
$documento = $fattura->getDocumento();
|
||||
|
||||
$result = [
|
||||
'TipoDocumento' => $documento['tipo_documento'],
|
||||
'Divisa' => 'EUR',
|
||||
|
@ -304,18 +325,50 @@ class FatturaElettronica
|
|||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Restituisce l'array responsabile per la generazione del tag DatiTrasporto.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected static function getDatiTrasporto($fattura)
|
||||
{
|
||||
$documento = $fattura->getDocumento();
|
||||
$database = database();
|
||||
|
||||
$vettore = static::getAnagrafica($documento['idvettore']);
|
||||
|
||||
$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'];
|
||||
|
||||
$result = [
|
||||
'DatiAnagraficiVettore' => static::getDatiAnagrafici($vettore),
|
||||
'CausaleTrasporto' => $causale,
|
||||
'NumeroColli' => $documento['n_colli'],
|
||||
'Descrizione' => $aspetto,
|
||||
];
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Restituisce l'array responsabile per la generazione del tag DatiDocumento.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected static function getDatiGenerali($documento)
|
||||
protected static function getDatiGenerali($fattura)
|
||||
{
|
||||
$documento = $fattura->getDocumento();
|
||||
|
||||
$result = [
|
||||
'DatiGeneraliDocumento' => static::getDatiGeneraliDocumento($documento),
|
||||
'DatiGeneraliDocumento' => static::getDatiGeneraliDocumento($fattura),
|
||||
// TODO: DatiOrdineAcquisto, DatiContratto, DatiConvenzione, DatiRicezione, DatiFattureCollegate, DatiSAL, DatiDDT, DatiTrasporto, FatturaPrincipale
|
||||
];
|
||||
|
||||
if ($documento['tipo'] == 'Fattura accompagnatoria di vendita') {
|
||||
$result['DatiTrasporto'] = static::getDatiTrasporto($fattura);
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
@ -324,8 +377,10 @@ class FatturaElettronica
|
|||
*
|
||||
* @return array
|
||||
*/
|
||||
protected static function getDatiBeniServizi($documento)
|
||||
protected static function getDatiBeniServizi($fattura)
|
||||
{
|
||||
$documento = $fattura->getDocumento();
|
||||
|
||||
$database = database();
|
||||
|
||||
$result = [];
|
||||
|
@ -399,8 +454,10 @@ class FatturaElettronica
|
|||
*
|
||||
* @return array
|
||||
*/
|
||||
protected static function getDatiPagamento($documento)
|
||||
protected static function getDatiPagamento($fattura)
|
||||
{
|
||||
$documento = $fattura->getDocumento();
|
||||
|
||||
$database = database();
|
||||
|
||||
$pagamento = $database->fetchOne('SELECT * FROM `co_pagamenti` WHERE `id` = '.prepare($documento['idpagamento']));
|
||||
|
@ -429,8 +486,10 @@ class FatturaElettronica
|
|||
*
|
||||
* @return array
|
||||
*/
|
||||
protected static function getAllegati($documento)
|
||||
protected static function getAllegati($fattura)
|
||||
{
|
||||
$documento = $fattura->getDocumento();
|
||||
|
||||
$id_module = Modules::get('Fatture di vendita')['id'];
|
||||
$dir = Uploads::getDirectory($id_module, Plugins::get('Fatturazione Elettronica')['id']);
|
||||
|
||||
|
@ -464,9 +523,9 @@ class FatturaElettronica
|
|||
$cliente = $fattura->getCliente();
|
||||
|
||||
$result = [
|
||||
'DatiTrasmissione' => static::getDatiTrasmissione($documento, $azienda, $cliente),
|
||||
'CedentePrestatore' => static::getCedentePrestatore($azienda),
|
||||
'CessionarioCommittente' => static::getCessionarioCommittente($cliente),
|
||||
'DatiTrasmissione' => static::getDatiTrasmissione($fattura),
|
||||
'CedentePrestatore' => static::getCedentePrestatore($fattura),
|
||||
'CessionarioCommittente' => static::getCessionarioCommittente($fattura),
|
||||
];
|
||||
|
||||
return $result;
|
||||
|
@ -479,13 +538,11 @@ class FatturaElettronica
|
|||
*/
|
||||
protected static function getBody($fattura)
|
||||
{
|
||||
$documento = $fattura->getDocumento();
|
||||
|
||||
$result = [
|
||||
'DatiGenerali' => static::getDatiGenerali($documento),
|
||||
'DatiBeniServizi' => static::getDatiBeniServizi($documento),
|
||||
'DatiPagamento' => static::getDatiPagamento($documento),
|
||||
'Allegati' => static::getAllegati($documento),
|
||||
'DatiGenerali' => static::getDatiGenerali($fattura),
|
||||
'DatiBeniServizi' => static::getDatiBeniServizi($fattura),
|
||||
'DatiPagamento' => static::getDatiPagamento($fattura),
|
||||
'Allegati' => static::getAllegati($fattura),
|
||||
];
|
||||
|
||||
return $result;
|
||||
|
|
|
@ -111,7 +111,7 @@ echo '
|
|||
</th>
|
||||
|
||||
<th class="small">
|
||||
'.tr('Volume', [], ['upper' => true]).'
|
||||
'.tr('Volume', [], ['upper' => true]).'
|
||||
</th>
|
||||
|
||||
<th class="small">
|
||||
|
|
Loading…
Reference in New Issue