git-svn-id: svn://10.65.10.50/branches/R_10_00@22972 c028cbd2-c16b-5b4b-a496-9718f37d4682

This commit is contained in:
guy 2014-06-26 13:28:39 +00:00
parent 24b95de617
commit d9bb491250
2 changed files with 41 additions and 28 deletions

View File

@ -8,6 +8,8 @@
#include "pa0.h"
#include "../fe/felib.h"
#include <clifo.h>
#include <nditte.h>
/////////////////////////////////////////////////////////////////////////////////////
@ -241,14 +243,14 @@ TPaf_record::TPaf_record(const char* table) : _table(table), _key(15, ',')
class TDoc2Paf : public TSkeleton_application
{
TAnagrafica _cessionario;
TAnagrafica _ditta;
private:
int parse_line(const TString& line, TString& var, TString& val) const;
void create_table(TScanner& paf, const TString& table);
protected:
const TString& cessionario();
const TString& cessionario(const TDocumento& doc);
const TString& fattura(const TDocumento& doc);
void elabora(TDocumentoEsteso& doc);
@ -262,12 +264,9 @@ public:
virtual void main_loop();
};
const TString& TDoc2Paf::cessionario()
const TString& TDoc2Paf::cessionario(const TDocumento& doc)
{
if (!_cessionario.ok())
_cessionario.init(LF_NDITTE, prefix().get_codditta());
const TString& piva = _cessionario.partita_IVA();
return piva.full() ? piva : _cessionario.codice_fiscale();
return doc.clifor().get(CLI_DESTIN);
}
const TString& TDoc2Paf::fattura(const TDocumento& doc)
@ -284,14 +283,17 @@ void TDoc2Paf::elabora(TDocumentoEsteso& doc)
TString8 prginv; prginv.format("%05d", ini_get_int("./paf.ini", "Main", "PRGINV") + 1);
ini_set_string("./paf.ini", "Main", "PRGINV", prginv);
const TString8 hfatt = cessionario(doc);
const TString80 bfatt = fattura(doc);
// <DatiTrassmissione>
TPaf_record paf0100f("PAF0100F");
paf0100f.set("P1KHFATT", cessionario());
paf0100f.set("P1KBFATT", fattura(doc));
paf0100f.set("P1KHFATT", hfatt);
paf0100f.set("P1KBFATT", bfatt);
paf0100f.remove();
paf0100f.set("P1PAESE", "IT");
paf0100f.set("P1CODICE", _cessionario.partita_IVA());
paf0100f.set("P1CODICE", _ditta.partita_IVA());
paf0100f.set("P1PRGINV", prginv);
paf0100f.set("P1FTRASM", "SDI10");
@ -303,33 +305,33 @@ void TDoc2Paf::elabora(TDocumentoEsteso& doc)
// <CedentePrestatore>
TPaf_record paf0200f("PAF0200F");
paf0200f.set("P2KHFATT", paf0100f.get("P1KHFATT"));
paf0200f.set("P2KBFATT", paf0100f.get("P1KBFATT"));
paf0200f.set("P2KHFATT", hfatt);
paf0200f.set("P2KBFATT", bfatt);
paf0200f.remove();
paf0200f.set("P2PAESE", paf0100f.get("P1PAESE"));
paf0200f.set("P2CODICE", _cessionario.partita_IVA());
paf0200f.set("P2FISCA", _cessionario.codice_fiscale());
if (_cessionario.fisica())
paf0200f.set("P2CODICE", _ditta.partita_IVA());
paf0200f.set("P2FISCA", _ditta.codice_fiscale());
if (_ditta.fisica())
{
paf0200f.set("P2NOME", _cessionario.nome());
paf0200f.set("P2COGN", _cessionario.cognome());
paf0200f.set("P2NOME", _ditta.nome());
paf0200f.set("P2COGN", _ditta.cognome());
}
else
{
paf0200f.set("P2DENOM", _cessionario.ragione_sociale());
paf0200f.set("P2DENOM", _ditta.ragione_sociale());
}
paf0200f.set("P2RFISC", "RF01");
// DatiSede
paf0200f.set("P2SINDI", _cessionario.indirizzo_residenza());
paf0200f.set("P2SCOMU", _cessionario.comune_residenza());
paf0200f.set("P2SPROV", _cessionario.provincia_residenza());
paf0200f.set("P2SINDI", _ditta.indirizzo_residenza());
paf0200f.set("P2SCOMU", _ditta.comune_residenza());
paf0200f.set("P2SPROV", _ditta.provincia_residenza());
paf0200f.set("P2SNAZI", paf0100f.get("P1PAESE"));
// DatiStabile
paf0200f.set("P2OINDI", _cessionario.indirizzo_residenza());
paf0200f.set("P2OCOMU", _cessionario.comune_residenza());
paf0200f.set("P2OPROV", _cessionario.provincia_residenza());
paf0200f.set("P2OINDI", _ditta.indirizzo_residenza());
paf0200f.set("P2OCOMU", _ditta.comune_residenza());
paf0200f.set("P2OPROV", _ditta.provincia_residenza());
paf0200f.set("P2ONAZI", paf0100f.get("P1PAESE"));
paf0200f.insert();
@ -345,7 +347,7 @@ void TDoc2Paf::elabora(TDocumentoEsteso& doc)
paf0400f.set("P4PAESE", paf0100f.get("P1PAESE"));
paf0400f.set("P4CODICE", cliente.partita_IVA());
paf0400f.set("P4FISCA", cliente.codice_fiscale());
if (_cessionario.fisica())
if (cliente.fisica())
{
paf0400f.set("P4NOME", cliente.nome());
paf0400f.set("P4COGN", cliente.cognome());
@ -489,9 +491,9 @@ void TDoc2Paf::main_loop()
{
const char* title = TR("Fatture Pubblica Amministrazione");
TArray_sheet sht(-1, 3, 78, -3,
title, HR("@1|Anno|Cod.|Numero|Cliente|Ragione Sociale@50"));
title, HR("@1|Anno|Cod.|Numero|Destinatario|Cliente|Ragione Sociale@50"));
TISAM_recordset clifo_pa("USE 20 SELECT ALLEG=7\nTO TIPOCF=C");
TISAM_recordset clifo_pa("USE 20 SELECT PADESTIN!=''\nTO TIPOCF=C");
const TRecnotype n = clifo_pa.items();
if (n > 0)
{
@ -512,6 +514,7 @@ void TDoc2Paf::main_loop()
row->add(doc_pa.get(DOC_ANNO).as_int(), 1);
row->add(doc_pa.get(DOC_CODNUM).as_string());
row->add(doc_pa.get(DOC_NDOC).as_int());
row->add(clifo_pa.get(CLI_PADESTIN).as_string());
const long codcf = doc_pa.get(DOC_CODCF).as_int();
row->add(codcf);
TString8 key; key.format("C|%ld", codcf);
@ -632,7 +635,8 @@ void TDoc2Paf::create_table(TScanner& paf, const TString& table)
bool TDoc2Paf::create()
{
TFilename n = prefix().get_studio(); // base direcotry
n.add("sql"); n.add("paf.db");
n.add("sql"); make_dir(n);
n.add("paf.db");
_db = xvt_sql_open(n, user(), "", n.path());
if (_db == NULL)
return false;
@ -654,6 +658,8 @@ bool TDoc2Paf::create()
else
return cantread_box(n);
_ditta.init(LF_NDITTE, prefix().get_codditta());
return TSkeleton_application::create();
}

7
pa/pamenu.men Normal file
View File

@ -0,0 +1,7 @@
[PAMENU_001]
Caption = "Fattura P.A."
Picture = <ve01>
Module = pa
Flags = "F"
Item_01 = "Fatture P.A.", "pa0 -0", "F"
Item_02 = "Firma Digitale", fd0 -0, "F"