Aggiunti pagamenti mancanti + Fix DatiPagamento import FE

This commit is contained in:
Luca 2019-01-09 17:12:00 +01:00
parent 12bd99531f
commit 1a0c9d7bde
8 changed files with 104 additions and 48 deletions

View File

@ -35,16 +35,16 @@ if ($dir == 'entrata') {
<?php
if ($dir == 'entrata') {
$rs2 = $dbo->fetchArray('SELECT piva, codice_fiscale, citta, indirizzo, cap, provincia, id_nazione FROM an_anagrafiche WHERE idanagrafica='.prepare($record['idanagrafica']));
$rs2 = $dbo->fetchArray('SELECT piva, codice_fiscale, citta, indirizzo, cap, provincia, id_nazione, tipo FROM an_anagrafiche WHERE idanagrafica='.prepare($record['idanagrafica']));
$campi_mancanti = [];
if ($rs2[0]['piva'] == '') {
array_push($campi_mancanti, 'Partita IVA');
}
/*if ($rs2[0]['codice_fiscale'] == '') {
if ($rs2[0]['codice_fiscale'] == '' and ($rs2[0]['tipo'] == 'Privato' or $rs2[0]['tipo'] == 'Ente pubblico')) {
array_push($campi_mancanti, 'Codice fiscale');
}
*/
else if ($rs2[0]['piva'] == '') {
array_push($campi_mancanti, 'Partita IVA');
}
if ($rs2[0]['citta'] == '') {
array_push($campi_mancanti, 'Città');
}

View File

@ -967,15 +967,28 @@ class FatturaElettronica
if (!empty($anagrafica['codice_fiscale'])) {
$result['CodiceFiscale'] = $anagrafica['codice_fiscale'];
}
$result['Anagrafica'] = [
'Denominazione' => $anagrafica['ragione_sociale'],
// TODO: 'Nome' => $azienda['ragione_sociale'],
// TODO: 'Cognome' => $azienda['ragione_sociale'],
// TODO: 'Titolo' => $azienda['ragione_sociale'],
// TODO: CodEORI
];
if (!empty($anagrafica['nome']) or !empty($anagrafica['cognome'])){
$result['Anagrafica'] = [
//'Denominazione' => $anagrafica['ragione_sociale'],
'Nome' => $anagrafica['nome'],
'Cognome' => $anagrafica['cognome'],
// TODO: 'Titolo' => $anagrafica['ragione_sociale'],
// TODO: CodEORI
];
}else{
$result['Anagrafica'] = [
'Denominazione' => $anagrafica['ragione_sociale'],
//'Nome' => $anagrafica['nome'],
//'Cognome' => $anagrafica['cognome'],
// TODO: 'Titolo' => $anagrafica['ragione_sociale'],
// TODO: CodEORI
];
}
// Informazioni specifiche azienda
if ($azienda) {
$result['RegimeFiscale'] = setting('Regime Fiscale');
@ -1194,7 +1207,7 @@ class FatturaElettronica
// Importo Totale Documento (2.1.1.9)
// Importo totale del documento al netto dell'eventuale sconto e comprensivo di imposta a debito del cessionario / committente
$fattura = Modules\Fatture\Fattura::find($documento['id']);
$result['ImportoTotaleDocumento'] = $fattura->netto;
$result['ImportoTotaleDocumento'] = abs($fattura->netto);
return $result;
}
@ -1477,8 +1490,8 @@ class FatturaElettronica
foreach ($riepiloghi_percentuale as $riepilogo) {
$iva = [
'AliquotaIVA' => $riepilogo['percentuale'],
'ImponibileImporto' => $riepilogo['totale'],
'Imposta' => $riepilogo['iva'],
'ImponibileImporto' => abs($riepilogo['totale']),
'Imposta' => abs($riepilogo['iva']),
'EsigibilitaIVA' => $riepilogo['esigibilita'],
];

View File

@ -36,37 +36,54 @@ echo '
</small>
</h4><br>';
// Pagamenti
$pagamenti = $fattura_pa->getBody()['DatiPagamento'];
// Se il blocco DatiPagamento è valorizzato (opzionale)
if (!empty($fattura_pa->getBody()['DatiPagamento'])){
$pagamenti = $fattura_pa->getBody()['DatiPagamento'];
$metodi = $pagamenti['DettaglioPagamento'];
$metodi = isset($metodi[0]) ? $metodi : [$metodi];
$codice_modalita_pagamento = $metodi[0]['ModalitaPagamento'];
echo '
<h4>'.tr('Pagamento').'</h4>
<p>'.tr('La fattura importata presenta _NUM_ rate di pagamento con le seguenti scadenze', [
'_NUM_' => count($metodi),
]).':</p>
<ul>';
// Scadenze di pagamento
foreach ($metodi as $metodo) {
echo '
<li>';
//nodo opzionale per il blocco DatiPagamento
if (!empty($metodo['DataScadenzaPagamento'])){
echo Translator::dateToLocale($metodo['DataScadenzaPagamento']).' ';
}
echo '('.((!empty($metodo['ModalitaPagamento'])) ? database()->fetchOne('SELECT descrizione FROM fe_modalita_pagamento WHERE codice = '.prepare($metodo['ModalitaPagamento']))['descrizione'] : '' ).')';
echo '
</li>';
}
echo '
</ul>';
}
$metodi = $pagamenti['DettaglioPagamento'];
$metodi = isset($metodi[0]) ? $metodi : [$metodi];
$codice_modalita_pagamento = $metodi[0]['ModalitaPagamento'];
// prc '.($pagamenti['CondizioniPagamento'] == 'TP01' ? '!' : '').'= 100 AND
$query = 'SELECT id, descrizione FROM co_pagamenti';
$query = 'SELECT id, CONCAT (descrizione, IF((codice_modalita_pagamento_fe IS NULL), \"\", CONCAT( \" (\", codice_modalita_pagamento_fe, \")\" ) )) as descrizione FROM co_pagamenti';
if (!empty($codice_modalita_pagamento)) {
$query .= ' WHERE codice_modalita_pagamento_fe = '.prepare($codice_modalita_pagamento);
$query .= ' WHERE codice_modalita_pagamento_fe = '.prepare($codice_modalita_pagamento);
}
$query .= ' GROUP BY descrizione ORDER BY descrizione ASC';
echo '
<h4>'.tr('Pagamento').'</h4>
<p>'.tr('La fattura importata presenta _NUM_ rate di pagamento con le seguenti scadenze', [
'_NUM_' => count($metodi),
]).':</p>
<ul>';
// Scadenze di pagamento
foreach ($metodi as $metodo) {
echo '
<li>'.Translator::dateToLocale($metodo['DataScadenzaPagamento']).'</li>';
}
echo '
</ul>';
echo '
{[ "type": "select", "label": "'.tr('Pagamento').'", "name": "pagamento", "required": 1, "values": "query='.$query.'" ]}';

View File

@ -12,7 +12,7 @@ $settings = [
],
'header-height' => 35,
'footer-height' => 5,
'header-font-size' => 12,
'header-font-size' => 11,
];
return $settings;

View File

@ -54,7 +54,7 @@ echo '
</td>
<td colspan="2" style="height:10mm;padding-top:2mm;">
<p class="small-bold">'.tr('Banca di appoggio', [], ['upper' => true]).'</p>
<p>$appoggiobancario$</p>
<p><small>$appoggiobancario$</small></p>
</td>
</tr>
<tr>

View File

@ -117,7 +117,7 @@ $replaces = array_merge($replaces, [
'rootdir' => ROOTDIR,
'directory' => Prints::get($id_print)['full_directory'],
'footer' => !empty($footer) ? $footer : '',
'dicitura_fissa_fattura' => setting('Dicitura fissa fattura'),
'dicitura_fissa_fattura' => setting('Dicitura fissa fattura').((!empty(setting('OSMCloud Services API Token'))) ? tr(' Documento privo di valenza fiscale dell\'art 21 dpr 633/72.'): ''),
]);
unset($replace);

View File

@ -34,6 +34,7 @@ echo "
// RIGHE PREVENTIVO CON ORDINAMENTO UNICO
$righe = $dbo->fetchArray("SELECT *,
IFNULL((SELECT `codice` FROM `mg_articoli` WHERE `id` = `or_righe_ordini`.`idarticolo`), '') AS codice_articolo,
IFNULL((SELECT `immagine` FROM `mg_articoli` WHERE `id` = `or_righe_ordini`.`idarticolo`), '') AS immagine_articolo,
(SELECT GROUP_CONCAT(`serial` SEPARATOR ', ') FROM `mg_prodotti` WHERE `id_riga_ordine` = `or_righe_ordini`.`id`) AS seriali,
(SELECT `percentuale` FROM `co_iva` WHERE `id` = `or_righe_ordini`.`idiva`) AS perc_iva
FROM `or_righe_ordini` WHERE idordine=".prepare($id_record).' ORDER BY `order`');
@ -44,7 +45,13 @@ foreach ($righe as $r) {
echo '
<tr>
<td>
<td>';
if (!empty($r['immagine_articolo'])) {
//echo '<img src="files/articoli/'.$r['immagine_articolo'].'" height="120"></img><div class="clearfix" ></div>';
}
echo '
'.nl2br($r['descrizione']);
// Codice articolo

View File

@ -62,3 +62,22 @@ UPDATE `zz_modules` SET `options` = '{ "main_query": [ { "type": "table", "field
UPDATE `zz_modules` SET `options` = 'SELECT |select| FROM `dt_ddt` INNER JOIN `dt_tipiddt` ON `dt_ddt`.`idtipoddt` = `dt_tipiddt`.`id` WHERE 1=1 AND `dir` = ''entrata'' AND `data` >= ''|period_start|'' AND `data` <= ''|period_end|'' HAVING 2=2 ORDER BY `data` DESC, CAST(`numero_esterno` AS UNSIGNED) DESC,`dt_ddt`.created_at DESC' WHERE `zz_modules`.`name` = 'Ddt di vendita';
UPDATE `zz_modules` SET `options` = 'SELECT |select| FROM `dt_ddt` INNER JOIN `dt_tipiddt` ON `dt_ddt`.`idtipoddt` = `dt_tipiddt`.`id` WHERE 1=1 AND `dir` = ''uscita'' AND `data` >= ''|period_start|'' AND `data` <= ''|period_end|'' HAVING 2=2 ORDER BY `data` DESC, CAST(`numero_esterno` AS UNSIGNED) DESC, `dt_ddt`.created_at DESC' WHERE `zz_modules`.`id` = 'Ddt di acquisto';
-- Aggiunti pagamenti mancanti Assegno circolare,Contanti presso Tesoreria, Vaglia cambiario, Bollettino bancario, RID, RID utenze, RID veloce, MAV, Quietanza erario, Giroconto su conti di contabilità speciale, Domiciliazione bancaria, Domiciliazione postale, Bollettino di c/c postale, SEPA Direct Debit, SEPA Direct Debit CORE, SEPA Direct Debit B2B, Trattenuta su somme già riscosse
INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `created_at`, `updated_at`, `idconto_vendite`, `idconto_acquisti`, `codice_modalita_pagamento_fe`) VALUES (NULL, 'Assegno circolare', '0', '1', '100', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, 'MP03');
INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `created_at`, `updated_at`, `idconto_vendite`, `idconto_acquisti`, `codice_modalita_pagamento_fe`) VALUES (NULL, 'Contanti presso Tesoreria', '0', '1', '100', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, 'MP04');
INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `created_at`, `updated_at`, `idconto_vendite`, `idconto_acquisti`, `codice_modalita_pagamento_fe`) VALUES (NULL, 'Vaglia cambiario', '0', '1', '100', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, 'MP06');
INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `created_at`, `updated_at`, `idconto_vendite`, `idconto_acquisti`, `codice_modalita_pagamento_fe`) VALUES (NULL, 'Bollettino bancario', '0', '1', '100', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, 'MP07');
INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `created_at`, `updated_at`, `idconto_vendite`, `idconto_acquisti`, `codice_modalita_pagamento_fe`) VALUES (NULL, 'RID', '0', '1', '100', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, 'MP09');
INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `created_at`, `updated_at`, `idconto_vendite`, `idconto_acquisti`, `codice_modalita_pagamento_fe`) VALUES (NULL, 'RID utenze', '0', '1', '100', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, 'MP10');
INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `created_at`, `updated_at`, `idconto_vendite`, `idconto_acquisti`, `codice_modalita_pagamento_fe`) VALUES (NULL, 'RID veloce', '0', '1', '100', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, 'MP11');
INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `created_at`, `updated_at`, `idconto_vendite`, `idconto_acquisti`, `codice_modalita_pagamento_fe`) VALUES (NULL, 'MAV', '0', '1', '100', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, 'MP13');
INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `created_at`, `updated_at`, `idconto_vendite`, `idconto_acquisti`, `codice_modalita_pagamento_fe`) VALUES (NULL, 'Quietanza erario', '0', '1', '100', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, 'MP14');
INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `created_at`, `updated_at`, `idconto_vendite`, `idconto_acquisti`, `codice_modalita_pagamento_fe`) VALUES (NULL, 'Giroconto su conti di contabilità speciale', '0', '1', '100', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, 'MP15');
INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `created_at`, `updated_at`, `idconto_vendite`, `idconto_acquisti`, `codice_modalita_pagamento_fe`) VALUES (NULL, 'Domiciliazione bancaria', '0', '1', '100', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, 'MP16');
INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `created_at`, `updated_at`, `idconto_vendite`, `idconto_acquisti`, `codice_modalita_pagamento_fe`) VALUES (NULL, 'Domiciliazione postale', '0', '1', '100', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, 'MP17');
INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `created_at`, `updated_at`, `idconto_vendite`, `idconto_acquisti`, `codice_modalita_pagamento_fe`) VALUES (NULL, 'Bollettino di c/c postale', '0', '1', '100', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, 'MP18');
INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `created_at`, `updated_at`, `idconto_vendite`, `idconto_acquisti`, `codice_modalita_pagamento_fe`) VALUES (NULL, 'SEPA Direct Debit', '0', '1', '100', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, 'MP19');
INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `created_at`, `updated_at`, `idconto_vendite`, `idconto_acquisti`, `codice_modalita_pagamento_fe`) VALUES (NULL, 'SEPA Direct Debit CORE', '0', '1', '100', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, 'MP20');
INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `created_at`, `updated_at`, `idconto_vendite`, `idconto_acquisti`, `codice_modalita_pagamento_fe`) VALUES (NULL, 'SEPA Direct Debit B2B', '0', '1', '100', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, 'MP21');
INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `created_at`, `updated_at`, `idconto_vendite`, `idconto_acquisti`, `codice_modalita_pagamento_fe`) VALUES (NULL, 'Trattenuta su somme già riscosse', '0', '1', '100', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, 'MP22');