Miglioramenti vari
This commit is contained in:
parent
1e5c050314
commit
f851b7c3cb
|
@ -401,23 +401,28 @@ if (!empty($note_accredito)) {
|
|||
?>
|
||||
|
||||
<?php
|
||||
|
||||
// Visualizzo il log delle operazioni di invio email
|
||||
$rs_operations = $dbo->fetchArray('SELECT DATE_FORMAT(created_at,"%d/%m/%Y") AS data , DATE_FORMAT(created_at,"%H:%i") AS ora, (SELECT name FROM zz_emails WHERE id = id_email) AS tipo_email, (SELECT username FROM zz_users WHERE id = id_utente) AS user FROM zz_operations WHERE id_record = '.prepare($id_record).' AND op = "send-email" ORDER BY created_at DESC');
|
||||
$operations = $dbo->fetchArray('SELECT created_at, (SELECT name FROM zz_emails WHERE id = id_email) AS email, (SELECT username FROM zz_users WHERE id = id_utente) AS user FROM zz_operations WHERE id_record = '.prepare($id_record).' AND op = "send-email" ORDER BY created_at DESC');
|
||||
|
||||
// Se la mail è stata inviata, mostro la data
|
||||
if( count($rs_operations)>0 ){
|
||||
foreach ($rs_operations as $operation){
|
||||
echo "
|
||||
<span class='label label-success pull-right'>".tr('_TIPO_ inviata il _DATA_ alle _ORA_ da _USER_.', [
|
||||
'_TIPO_' => $operation['tipo_email'],
|
||||
'_DATA_' => $operation['data'],
|
||||
'_ORA_' => $operation['ora'],
|
||||
if (!empty($operations)) {
|
||||
foreach ($operations as $operation) {
|
||||
echo '
|
||||
<span class="label label-success pull-right">
|
||||
'.tr('_EMAIL_ inviata il _DATE_ alle _HOUR_ da _USER_.', [
|
||||
'_EMAIL_' => $operation['email'],
|
||||
'_DATE_' => Translator::dateToLocale($operation['data']),
|
||||
'_HOUR_' => Translator::timeToLocale($operation['ora']),
|
||||
'_USER_' => $operation['user'],
|
||||
]).'</span><br>';
|
||||
|
||||
]).'
|
||||
</span><br>';
|
||||
}
|
||||
} else {
|
||||
echo "<span class='label label-warning pull-right'>".tr("nessuna email inviata al cliente.")."</span>\n";
|
||||
echo '
|
||||
<span class="label label-warning pull-right">
|
||||
'.tr('Nessuna email inviata al cliente.').'
|
||||
</span>';
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
@ -28,7 +28,7 @@ class FatturaElettronica
|
|||
|
||||
public function __construct($id_documento)
|
||||
{
|
||||
$database = \Database::getConnection();
|
||||
$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));
|
||||
|
@ -46,13 +46,13 @@ class FatturaElettronica
|
|||
*/
|
||||
public static function getAzienda()
|
||||
{
|
||||
if (empty(self::$azienda)) {
|
||||
$database = \Database::getConnection();
|
||||
if (empty(static::$azienda)) {
|
||||
$database = database();
|
||||
|
||||
self::$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 = $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')));
|
||||
}
|
||||
|
||||
return self::$azienda;
|
||||
return static::$azienda;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -63,7 +63,7 @@ class FatturaElettronica
|
|||
public function getCliente()
|
||||
{
|
||||
if (empty($this->cliente)) {
|
||||
$database = \Database::getConnection();
|
||||
$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']));
|
||||
}
|
||||
|
@ -204,8 +204,8 @@ class FatturaElettronica
|
|||
protected static function getCedentePrestatore($azienda)
|
||||
{
|
||||
$result = [
|
||||
'DatiAnagrafici' => self::getDatiAnagrafici($azienda, true),
|
||||
'Sede' => self::getSede($azienda),
|
||||
'DatiAnagrafici' => static::getDatiAnagrafici($azienda, true),
|
||||
'Sede' => static::getSede($azienda),
|
||||
// TODO: StabileOrganizzazione,
|
||||
];
|
||||
|
||||
|
@ -253,8 +253,8 @@ class FatturaElettronica
|
|||
protected static function getCessionarioCommittente($cliente)
|
||||
{
|
||||
$result = [
|
||||
'DatiAnagrafici' => self::getDatiAnagrafici($cliente),
|
||||
'Sede' => self::getSede($cliente),
|
||||
'DatiAnagrafici' => static::getDatiAnagrafici($cliente),
|
||||
'Sede' => static::getSede($cliente),
|
||||
// TODO: StabileOrganizzazione, RappresentanteFiscale
|
||||
];
|
||||
|
||||
|
@ -287,7 +287,7 @@ class FatturaElettronica
|
|||
protected static function getDatiDocumento($documento)
|
||||
{
|
||||
$result = [
|
||||
'DatiGeneraliDocumento' => self::getDatiGeneraliDocumento($documento),
|
||||
'DatiGeneraliDocumento' => static::getDatiGeneraliDocumento($documento),
|
||||
];
|
||||
|
||||
return $result;
|
||||
|
@ -300,12 +300,12 @@ class FatturaElettronica
|
|||
*/
|
||||
protected static function getDatiBeniServizi($documento)
|
||||
{
|
||||
$database = \Database::getConnection();
|
||||
$database = database();
|
||||
|
||||
$result = [];
|
||||
|
||||
// Righe del documento
|
||||
$righe_documento = $database->select('co_righe_documenti', '*', ['iddocumento' => $documento['id']]);
|
||||
$righe_documento = $database->fetchArray('SELECT * FROM `co_righe_documenti` WHERE `iddocumento` = '.prepare($documento['id']));
|
||||
foreach ($righe_documento as $numero => $riga) {
|
||||
$prezzo_unitario = $riga['subtotale'] / $riga['qta'];
|
||||
$prezzo_totale = $riga['subtotale'] - $riga['sconto'];
|
||||
|
@ -369,7 +369,7 @@ class FatturaElettronica
|
|||
*/
|
||||
protected static function getDatiPagamento($documento)
|
||||
{
|
||||
$database = \Database::getConnection();
|
||||
$database = database();
|
||||
|
||||
$pagamento = $database->fetchOne('SELECT * FROM `co_pagamenti` WHERE `id` = '.prepare($documento['idpagamento']));
|
||||
|
||||
|
@ -398,14 +398,14 @@ class FatturaElettronica
|
|||
*/
|
||||
protected static function getHeader($fattura)
|
||||
{
|
||||
$azienda = self::getAzienda();
|
||||
$azienda = static::getAzienda();
|
||||
$documento = $fattura->getDocumento();
|
||||
$cliente = $fattura->getCliente();
|
||||
|
||||
$result = [
|
||||
'DatiTrasmissione' => self::getDatiTrasmissione($documento, $azienda, $cliente),
|
||||
'CedentePrestatore' => self::getCedentePrestatore($azienda),
|
||||
'CessionarioCommittente' => self::getCessionarioCommittente($cliente),
|
||||
'DatiTrasmissione' => static::getDatiTrasmissione($documento, $azienda, $cliente),
|
||||
'CedentePrestatore' => static::getCedentePrestatore($azienda),
|
||||
'CessionarioCommittente' => static::getCessionarioCommittente($cliente),
|
||||
];
|
||||
|
||||
return $result;
|
||||
|
@ -421,9 +421,9 @@ class FatturaElettronica
|
|||
$documento = $fattura->getDocumento();
|
||||
|
||||
$result = [
|
||||
'DatiGenerali' => self::getDatiDocumento($documento),
|
||||
'DatiBeniServizi' => self::getDatiBeniServizi($documento),
|
||||
'DatiPagamento' => self::getDatiPagamento($documento),
|
||||
'DatiGenerali' => static::getDatiDocumento($documento),
|
||||
'DatiBeniServizi' => static::getDatiBeniServizi($documento),
|
||||
'DatiPagamento' => static::getDatiPagamento($documento),
|
||||
];
|
||||
|
||||
return $result;
|
||||
|
@ -446,7 +446,7 @@ class FatturaElettronica
|
|||
$output[$key] = $this->prepareForXML($value, $key);
|
||||
}
|
||||
} elseif (!is_null($input)) {
|
||||
$info = self::$validators[$key];
|
||||
$info = static::$validators[$key];
|
||||
$size = isset($info['size']) ? $info['size'] : null;
|
||||
|
||||
$output = $input;
|
||||
|
@ -521,9 +521,22 @@ class FatturaElettronica
|
|||
$filename = $this->getFilename();
|
||||
|
||||
// Salvataggio del file
|
||||
$result = directory($directory) && file_put_contents(rtrim($directory, '/').'/'.$filename, $this->__toString());
|
||||
$file = rtrim($directory, '/').'/'.$filename;
|
||||
$result = directory($directory) && file_put_contents($file, $this->__toString());
|
||||
|
||||
// Registrazione come allegato
|
||||
$this->register($filename);
|
||||
|
||||
return ($result === false) ? null : $filename;
|
||||
}
|
||||
|
||||
/**
|
||||
* Registra il file XML come allegato.
|
||||
*
|
||||
* @param string $filename
|
||||
*/
|
||||
public function register($filename)
|
||||
{
|
||||
$data = [
|
||||
'original' => $filename,
|
||||
'category' => tr('Fattura elettronica'),
|
||||
|
@ -538,8 +551,6 @@ class FatturaElettronica
|
|||
if (!$registered) {
|
||||
\Uploads::register($data);
|
||||
}
|
||||
|
||||
return ($result === false) ? null : $filename;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -549,11 +560,11 @@ class FatturaElettronica
|
|||
*/
|
||||
public function getFilename()
|
||||
{
|
||||
$azienda = self::getAzienda();
|
||||
$azienda = static::getAzienda();
|
||||
$codice = 'IT'.(empty($azienda['piva']) ? $azienda['codice_fiscale'] : $azienda['piva']);
|
||||
|
||||
if (empty($this->documento['codice_xml'])) {
|
||||
$database = \Database::getConnection();
|
||||
$database = database();
|
||||
|
||||
do {
|
||||
$code = date('y').secure_random_string(3);
|
||||
|
@ -599,9 +610,9 @@ class FatturaElettronica
|
|||
}
|
||||
|
||||
// Generazione della fattura elettronica
|
||||
$xml = self::prepareForXML([
|
||||
'FatturaElettronicaHeader' => self::getHeader($this),
|
||||
'FatturaElettronicaBody' => self::getBody($this),
|
||||
$xml = static::prepareForXML([
|
||||
'FatturaElettronicaHeader' => static::getHeader($this),
|
||||
'FatturaElettronicaBody' => static::getBody($this),
|
||||
]);
|
||||
$fattura->add($xml);
|
||||
|
||||
|
|
|
@ -204,12 +204,13 @@ età svizzere che possiedono i requisiti di cui all''art. 15, c. 2 dell’Accord
|
|||
|
||||
INSERT INTO `zz_settings` (`idimpostazione`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`) VALUES (NULL, 'Causale ritenuta d''acconto', '', 'query=SELECT codice AS id, descrizione FROM fe_causali_pagamento_ritenuta', 1, 'Fatturazione', 0);
|
||||
|
||||
INSERT INTO `zz_plugins` (`id`, `name`, `title`, `idmodule_from`, `idmodule_to`, `position`, `directory`, `options`) VALUES (NULL, 'Fatturazione Elettronica', 'Fatturazione Elettronica', (SELECT `id` FROM `zz_modules` WHERE `name`='Fatture di vendita'), (SELECT `id` FROM `zz_modules` WHERE `name`='Fatture di vendita'), 'tab', 'fatturazione', 'custom');
|
||||
|
||||
INSERT INTO `zz_settings` (`idimpostazione`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`) VALUES (NULL, 'Authorization ID Indice PA', '', 'string', 1, 'Generali', 0);
|
||||
|
||||
ALTER TABLE `an_anagrafiche` ADD `codice_destinatario` varchar(7);
|
||||
|
||||
-- Plugin Fatturazione Elettronica
|
||||
INSERT INTO `zz_plugins` (`id`, `name`, `title`, `idmodule_from`, `idmodule_to`, `position`, `directory`, `options`) VALUES (NULL, 'Fatturazione Elettronica', 'Fatturazione Elettronica', (SELECT `id` FROM `zz_modules` WHERE `name`='Fatture di vendita'), (SELECT `id` FROM `zz_modules` WHERE `name`='Fatture di vendita'), 'tab', 'fatturazione', 'custom');
|
||||
|
||||
INSERT INTO `zz_emails` (`id`, `id_module`, `id_smtp`, `name`, `icon`, `subject`, `reply_to`, `cc`, `bcc`, `body`, `read_notify`, `main`, `deleted`) VALUES (NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di vendita'), 1, 'Fattura Elettronica', 'fa fa-file', 'Invio fattura numero {numero} del {data}', '', 'sdi01@pec.fatturapa.it', '', '<p>Gentile Cliente,</p>\r\n<p>inviamo in allegato la fattura numero {numero} del {data}.</p>\r\n<p> </p>\r\n<p>Distinti saluti</p>\r\n', '0', '0', '0');
|
||||
INSERT INTO `zz_email_print` (`id`, `id_email`, `id_print`) VALUES (NULL, (SELECT `id` FROM `zz_emails` WHERE `name` = 'Fattura Elettronica' AND `id_module` = (SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di vendita')), (SELECT `id` FROM `zz_prints` WHERE `name` = 'Fattura di vendita'));
|
||||
UPDATE `zz_emails` SET `main` = 1 WHERE `name` = 'Fattura' AND `id_module` = (SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di vendita');
|
||||
|
|
Loading…
Reference in New Issue