Patch level : 12.0 634

Files correlati     : fp
Commento            :
- Sistemata query per visualizzare fatture
- Non valorizzo più le colonne vuote
- Tolti dati sede per clienti stranieri
This commit is contained in:
Mattia Tollari 2018-10-15 12:58:46 +02:00
parent 3fb031ee91
commit 03f90ed4b8
3 changed files with 80 additions and 19 deletions

View File

@ -131,7 +131,12 @@ void TPA_mask::fill()
const TDate dal = get(F_DATAINI); const TDate dal = get(F_DATAINI);
TString filter_selected = get(F_FATTSEL); TString filter_selected = get(F_FATTSEL);
#ifdef DBG
enable(DLG_OK);
#else
enable(DLG_OK, filter_selected != "X"); enable(DLG_OK, filter_selected != "X");
#endif
// Record di controllo per eventuali elaborazioni precedenti // Record di controllo per eventuali elaborazioni precedenti
TString hfatt(LEN_HFATT), bfatt(LEN_BFATT); TString hfatt(LEN_HFATT), bfatt(LEN_BFATT);

View File

@ -26,6 +26,7 @@ BEGIN
PROMPT 1 2 "Fatture da visualizzare" PROMPT 1 2 "Fatture da visualizzare"
ITEM "|Da inviare" ITEM "|Da inviare"
ITEM "X|XML Generato" ITEM "X|XML Generato"
ITEM "N|Notificato"
ITEM "E|In errore" ITEM "E|In errore"
END END

View File

@ -264,7 +264,8 @@ void TPaf_record::set(const char* fld, const char* val)
// Imposta il valore di un campo stringa // Imposta il valore di un campo stringa
void TPaf_record::set(const char* fld, const TString& val) void TPaf_record::set(const char* fld, const TString& val)
{ {
const TVariant var(val); const TVariant var(val);
if(!var.is_string() || (val.full()))
set(fld, var); set(fld, var);
} }
@ -401,7 +402,7 @@ bool TPaf_record::search()
if (!var.is_null()) if (!var.is_null())
query << fld << ", "; query << fld << ", ";
} }
query.rtrim(1) << "DESC;"; query.rtrim(2) << " DESC;";
// return xvt_sql_execute(_db, query, paf_search_record, this) == 1; // return xvt_sql_execute(_db, query, paf_search_record, this) == 1;
// TODO: Valutare // TODO: Valutare
@ -988,12 +989,17 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
} }
// DatiSede // DatiSede
paf0400f.set("P4_SEDEIND", cliente.via_residenza());
paf0400f.set("P4_SEDENRCIVICO", cliente.civico_residenza()); if (cliente.italiano())
paf0400f.set("P4_SEDECAP", cliente.CAP_residenza()); {
paf0400f.set("P4_SEDECOMUNE", cliente.comune_residenza()); paf0400f.set("P4_SEDEIND", cliente.via_residenza());
paf0400f.set("P4_SEDEPROV", cliente.provincia_residenza()); paf0400f.set("P4_SEDENRCIVICO", cliente.civico_residenza());
paf0400f.set("P4_SEDENAZ", cliente.stato_residenza_ISO()); paf0400f.set("P4_SEDECAP", cliente.CAP_residenza());
paf0400f.set("P4_SEDECOMUNE", cliente.comune_residenza());
paf0400f.set("P4_SEDEPROV", cliente.provincia_residenza());
paf0400f.set("P4_SEDENAZ", cliente.stato_residenza_ISO());
}
paf0400f.set("P4_GESTIONE", "D"); paf0400f.set("P4_GESTIONE", "D");
ok &= insert(paf0400f); ok &= insert(paf0400f);
// </CessionarioCommittente> // </CessionarioCommittente>
@ -1187,8 +1193,10 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
paf1900f.set("PY_KEYBODYFATT", bfatt); paf1900f.set("PY_KEYBODYFATT", bfatt);
remove(paf1900f); // Cancella tutte le righe articoli del documento remove(paf1900f); // Cancella tutte le righe articoli del documento
if(doc.is_fattura()) TPaf_record paf3000f("PAF3000F");
doc.set_riga_esenzione(); paf3000f.set("PT_KEYHEADERFATT", hfatt);
paf3000f.set("PT_KEYBODYFATT", bfatt);
remove(paf3000f);
long riga = 0; long riga = 0;
TString16 codivadefault; TString16 codivadefault;
@ -1200,6 +1208,7 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
break; break;
} }
} }
FOR_EACH_PHYSICAL_RDOC(doc, r, rdoc) FOR_EACH_PHYSICAL_RDOC(doc, r, rdoc)
{ {
paf1800f.reset(); paf1800f.reset();
@ -1207,15 +1216,14 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
paf1800f.set("PI_KEYBODYFATT", bfatt); paf1800f.set("PI_KEYBODYFATT", bfatt);
paf1800f.set("PI_NUMEROLINEA", ++riga); paf1800f.set("PI_NUMEROLINEA", ++riga);
TPaf_record paf3000f("PAF3000F"); paf3000f.reset();
paf3000f.set("PT_KEYHEADERFATT", hfatt); paf3000f.set("PT_KEYHEADERFATT", hfatt);
paf3000f.set("PT_KEYBODYFATT", bfatt); paf3000f.set("PT_KEYBODYFATT", bfatt);
remove(paf3000f);
paf3000f.set("PT_RIFNUMLINEA", riga); paf3000f.set("PT_RIFNUMLINEA", riga);
paf3000f.set("PT_COMMENTO", descrizione(*rdoc)); paf3000f.set("PT_COMMENTO", descrizione(*rdoc));
// Nel dubbio preparo la riga di descrizione // Nel dubbio preparo la riga di descrizione
paf1800f.set("PI_QUANTITA", ZERO); paf1800f.set("PI_QUANTITA", UNO);
paf1800f.set("PI_PREZZOUNIT", ZERO); paf1800f.set("PI_PREZZOUNIT", ZERO);
paf1800f.set("PI_PRZTOTALE", ZERO); paf1800f.set("PI_PRZTOTALE", ZERO);
paf1800f.set("PI_ALIQUOTAIVA", "22.00"); // Altrimenti scarta le righe di descrizione paf1800f.set("PI_ALIQUOTAIVA", "22.00"); // Altrimenti scarta le righe di descrizione
@ -1401,6 +1409,33 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
ok &= insert(paf1800f) && insert(paf3000f); ok &= insert(paf1800f) && insert(paf3000f);
} }
// Controllo plafond
// Riga esenzione?
if (doc.is_fattura())
{
doc.set_riga_esenzione();
if(doc.ha_riga_esenzione())
{
const TRiga_documento& riga_es = doc.get_riga_esenzione();
paf1800f.reset();
paf1800f.set("PI_KEYHEADERFATT", hfatt);
paf1800f.set("PI_KEYBODYFATT", bfatt);
paf1800f.set("PI_NUMEROLINEA", ++riga);
paf3000f.reset();
paf3000f.set("PT_KEYHEADERFATT", hfatt);
paf3000f.set("PT_KEYBODYFATT", bfatt);
paf3000f.set("PT_RIFNUMLINEA", riga);
paf3000f.set("PT_COMMENTO", descrizione(riga_es));
paf1800f.set("PI_QUANTITA", UNO);
paf1800f.set("PI_PREZZOUNIT", ZERO);
paf1800f.set("PI_PRZTOTALE", ZERO);
paf1800f.set("PI_ALIQUOTAIVA", "22.00");
ok &= insert(paf1800f) && insert(paf3000f);
}
}
// Se il bollo va fatto pagare bisogna aggiungere una riga! // Se il bollo va fatto pagare bisogna aggiungere una riga!
if(doc.get_bool("ADDBOLLI")) if(doc.get_bool("ADDBOLLI"))
{ {
@ -1409,33 +1444,53 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
paf1800f.set("PI_KEYBODYFATT", bfatt); paf1800f.set("PI_KEYBODYFATT", bfatt);
paf1800f.set("PI_NUMEROLINEA", ++riga); paf1800f.set("PI_NUMEROLINEA", ++riga);
TPaf_record paf3000f("PAF3000F"); paf3000f.reset();
paf3000f.set("PT_KEYHEADERFATT", hfatt); paf3000f.set("PT_KEYHEADERFATT", hfatt);
paf3000f.set("PT_KEYBODYFATT", bfatt); paf3000f.set("PT_KEYBODYFATT", bfatt);
remove(paf3000f);
paf3000f.set("PT_RIFNUMLINEA", riga); paf3000f.set("PT_RIFNUMLINEA", riga);
paf3000f.set("PT_COMMENTO", "Imposta bollo assolta in modo virtuale"); paf3000f.set("PT_COMMENTO", "Imposta bollo assolta in modo virtuale");
paf1800f.set("PI_QUANTITA", UNO);
paf1800f.set("PI_PREZZOUNIT", doc.get_real("BOLLI")); paf1800f.set("PI_PREZZOUNIT", doc.get_real("BOLLI"));
paf1800f.set("PI_PRZTOTALE", doc.get_real("BOLLI")); paf1800f.set("PI_PRZTOTALE", doc.get_real("BOLLI"));
set_IVA(doc.codiva_bolli(), paf1800f); set_IVA(doc.codiva_bolli(), paf1800f);
ok &= insert(paf1800f) && insert(paf3000f); ok &= insert(paf1800f) && insert(paf3000f);
} }
// Controllo plafond // Conai assolto
if(doc.clifor().vendite().get_bool("CONAIASS"))
{
paf1800f.reset();
paf1800f.set("PI_KEYHEADERFATT", hfatt);
paf1800f.set("PI_KEYBODYFATT", bfatt);
paf1800f.set("PI_NUMEROLINEA", ++riga);
paf3000f.reset();
paf3000f.set("PT_KEYHEADERFATT", hfatt);
paf3000f.set("PT_KEYBODYFATT", bfatt);
paf3000f.set("PT_RIFNUMLINEA", riga);
paf3000f.set("PT_COMMENTO", ini_get_string(CONFIG_DITTA, "ve", "DESCCONAIASS", "Contributo CONAI assolto ove dovuto"));
paf1800f.set("PI_QUANTITA", UNO);
paf1800f.set("PI_PREZZOUNIT", ZERO);
paf1800f.set("PI_PRZTOTALE", ZERO);
paf1800f.set("PI_ALIQUOTAIVA", "22.00");
ok &= insert(paf1800f) && insert(paf3000f);
}
// </DatiBeniServizi> // </DatiBeniServizi>
// <DatiTrasporto> // <DatiTrasporto>
/*
* Non valorizziamo nulla al momento in quanto su Campo i dati obbligatori non ci sono/non sono obbligatori
TString cod_vettore = doc.get("CODVETT1"); TString cod_vettore = doc.get("CODVETT1");
// É una fattura accompagnatoria! // É una fattura accompagnatoria!
if(cod_vettore.full()) if(cod_vettore.full())
{ {
TRectype vettore = cache().get("%VET", cod_vettore);
// Controllo di avere tutto quello che mi interessa
} }
*/
// </DatiTrasporto> // </DatiTrasporto>
// Salvo la testata // Salvo la testata