git-svn-id: svn://10.65.10.50/branches/R_10_00@22972 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
24b95de617
commit
d9bb491250
@ -8,6 +8,8 @@
|
|||||||
#include "pa0.h"
|
#include "pa0.h"
|
||||||
|
|
||||||
#include "../fe/felib.h"
|
#include "../fe/felib.h"
|
||||||
|
|
||||||
|
#include <clifo.h>
|
||||||
#include <nditte.h>
|
#include <nditte.h>
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////////
|
||||||
@ -241,14 +243,14 @@ TPaf_record::TPaf_record(const char* table) : _table(table), _key(15, ',')
|
|||||||
|
|
||||||
class TDoc2Paf : public TSkeleton_application
|
class TDoc2Paf : public TSkeleton_application
|
||||||
{
|
{
|
||||||
TAnagrafica _cessionario;
|
TAnagrafica _ditta;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int parse_line(const TString& line, TString& var, TString& val) const;
|
int parse_line(const TString& line, TString& var, TString& val) const;
|
||||||
void create_table(TScanner& paf, const TString& table);
|
void create_table(TScanner& paf, const TString& table);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
const TString& cessionario();
|
const TString& cessionario(const TDocumento& doc);
|
||||||
const TString& fattura(const TDocumento& doc);
|
const TString& fattura(const TDocumento& doc);
|
||||||
|
|
||||||
void elabora(TDocumentoEsteso& doc);
|
void elabora(TDocumentoEsteso& doc);
|
||||||
@ -262,12 +264,9 @@ public:
|
|||||||
virtual void main_loop();
|
virtual void main_loop();
|
||||||
};
|
};
|
||||||
|
|
||||||
const TString& TDoc2Paf::cessionario()
|
const TString& TDoc2Paf::cessionario(const TDocumento& doc)
|
||||||
{
|
{
|
||||||
if (!_cessionario.ok())
|
return doc.clifor().get(CLI_DESTIN);
|
||||||
_cessionario.init(LF_NDITTE, prefix().get_codditta());
|
|
||||||
const TString& piva = _cessionario.partita_IVA();
|
|
||||||
return piva.full() ? piva : _cessionario.codice_fiscale();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const TString& TDoc2Paf::fattura(const TDocumento& doc)
|
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);
|
TString8 prginv; prginv.format("%05d", ini_get_int("./paf.ini", "Main", "PRGINV") + 1);
|
||||||
ini_set_string("./paf.ini", "Main", "PRGINV", prginv);
|
ini_set_string("./paf.ini", "Main", "PRGINV", prginv);
|
||||||
|
|
||||||
|
const TString8 hfatt = cessionario(doc);
|
||||||
|
const TString80 bfatt = fattura(doc);
|
||||||
|
|
||||||
// <DatiTrassmissione>
|
// <DatiTrassmissione>
|
||||||
TPaf_record paf0100f("PAF0100F");
|
TPaf_record paf0100f("PAF0100F");
|
||||||
paf0100f.set("P1KHFATT", cessionario());
|
paf0100f.set("P1KHFATT", hfatt);
|
||||||
paf0100f.set("P1KBFATT", fattura(doc));
|
paf0100f.set("P1KBFATT", bfatt);
|
||||||
paf0100f.remove();
|
paf0100f.remove();
|
||||||
|
|
||||||
paf0100f.set("P1PAESE", "IT");
|
paf0100f.set("P1PAESE", "IT");
|
||||||
paf0100f.set("P1CODICE", _cessionario.partita_IVA());
|
paf0100f.set("P1CODICE", _ditta.partita_IVA());
|
||||||
paf0100f.set("P1PRGINV", prginv);
|
paf0100f.set("P1PRGINV", prginv);
|
||||||
paf0100f.set("P1FTRASM", "SDI10");
|
paf0100f.set("P1FTRASM", "SDI10");
|
||||||
|
|
||||||
@ -303,33 +305,33 @@ void TDoc2Paf::elabora(TDocumentoEsteso& doc)
|
|||||||
|
|
||||||
// <CedentePrestatore>
|
// <CedentePrestatore>
|
||||||
TPaf_record paf0200f("PAF0200F");
|
TPaf_record paf0200f("PAF0200F");
|
||||||
paf0200f.set("P2KHFATT", paf0100f.get("P1KHFATT"));
|
paf0200f.set("P2KHFATT", hfatt);
|
||||||
paf0200f.set("P2KBFATT", paf0100f.get("P1KBFATT"));
|
paf0200f.set("P2KBFATT", bfatt);
|
||||||
paf0200f.remove();
|
paf0200f.remove();
|
||||||
paf0200f.set("P2PAESE", paf0100f.get("P1PAESE"));
|
paf0200f.set("P2PAESE", paf0100f.get("P1PAESE"));
|
||||||
paf0200f.set("P2CODICE", _cessionario.partita_IVA());
|
paf0200f.set("P2CODICE", _ditta.partita_IVA());
|
||||||
paf0200f.set("P2FISCA", _cessionario.codice_fiscale());
|
paf0200f.set("P2FISCA", _ditta.codice_fiscale());
|
||||||
if (_cessionario.fisica())
|
if (_ditta.fisica())
|
||||||
{
|
{
|
||||||
paf0200f.set("P2NOME", _cessionario.nome());
|
paf0200f.set("P2NOME", _ditta.nome());
|
||||||
paf0200f.set("P2COGN", _cessionario.cognome());
|
paf0200f.set("P2COGN", _ditta.cognome());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
paf0200f.set("P2DENOM", _cessionario.ragione_sociale());
|
paf0200f.set("P2DENOM", _ditta.ragione_sociale());
|
||||||
}
|
}
|
||||||
paf0200f.set("P2RFISC", "RF01");
|
paf0200f.set("P2RFISC", "RF01");
|
||||||
|
|
||||||
// DatiSede
|
// DatiSede
|
||||||
paf0200f.set("P2SINDI", _cessionario.indirizzo_residenza());
|
paf0200f.set("P2SINDI", _ditta.indirizzo_residenza());
|
||||||
paf0200f.set("P2SCOMU", _cessionario.comune_residenza());
|
paf0200f.set("P2SCOMU", _ditta.comune_residenza());
|
||||||
paf0200f.set("P2SPROV", _cessionario.provincia_residenza());
|
paf0200f.set("P2SPROV", _ditta.provincia_residenza());
|
||||||
paf0200f.set("P2SNAZI", paf0100f.get("P1PAESE"));
|
paf0200f.set("P2SNAZI", paf0100f.get("P1PAESE"));
|
||||||
|
|
||||||
// DatiStabile
|
// DatiStabile
|
||||||
paf0200f.set("P2OINDI", _cessionario.indirizzo_residenza());
|
paf0200f.set("P2OINDI", _ditta.indirizzo_residenza());
|
||||||
paf0200f.set("P2OCOMU", _cessionario.comune_residenza());
|
paf0200f.set("P2OCOMU", _ditta.comune_residenza());
|
||||||
paf0200f.set("P2OPROV", _cessionario.provincia_residenza());
|
paf0200f.set("P2OPROV", _ditta.provincia_residenza());
|
||||||
paf0200f.set("P2ONAZI", paf0100f.get("P1PAESE"));
|
paf0200f.set("P2ONAZI", paf0100f.get("P1PAESE"));
|
||||||
|
|
||||||
paf0200f.insert();
|
paf0200f.insert();
|
||||||
@ -345,7 +347,7 @@ void TDoc2Paf::elabora(TDocumentoEsteso& doc)
|
|||||||
paf0400f.set("P4PAESE", paf0100f.get("P1PAESE"));
|
paf0400f.set("P4PAESE", paf0100f.get("P1PAESE"));
|
||||||
paf0400f.set("P4CODICE", cliente.partita_IVA());
|
paf0400f.set("P4CODICE", cliente.partita_IVA());
|
||||||
paf0400f.set("P4FISCA", cliente.codice_fiscale());
|
paf0400f.set("P4FISCA", cliente.codice_fiscale());
|
||||||
if (_cessionario.fisica())
|
if (cliente.fisica())
|
||||||
{
|
{
|
||||||
paf0400f.set("P4NOME", cliente.nome());
|
paf0400f.set("P4NOME", cliente.nome());
|
||||||
paf0400f.set("P4COGN", cliente.cognome());
|
paf0400f.set("P4COGN", cliente.cognome());
|
||||||
@ -489,9 +491,9 @@ void TDoc2Paf::main_loop()
|
|||||||
{
|
{
|
||||||
const char* title = TR("Fatture Pubblica Amministrazione");
|
const char* title = TR("Fatture Pubblica Amministrazione");
|
||||||
TArray_sheet sht(-1, 3, 78, -3,
|
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();
|
const TRecnotype n = clifo_pa.items();
|
||||||
if (n > 0)
|
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_ANNO).as_int(), 1);
|
||||||
row->add(doc_pa.get(DOC_CODNUM).as_string());
|
row->add(doc_pa.get(DOC_CODNUM).as_string());
|
||||||
row->add(doc_pa.get(DOC_NDOC).as_int());
|
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();
|
const long codcf = doc_pa.get(DOC_CODCF).as_int();
|
||||||
row->add(codcf);
|
row->add(codcf);
|
||||||
TString8 key; key.format("C|%ld", codcf);
|
TString8 key; key.format("C|%ld", codcf);
|
||||||
@ -632,7 +635,8 @@ void TDoc2Paf::create_table(TScanner& paf, const TString& table)
|
|||||||
bool TDoc2Paf::create()
|
bool TDoc2Paf::create()
|
||||||
{
|
{
|
||||||
TFilename n = prefix().get_studio(); // base direcotry
|
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());
|
_db = xvt_sql_open(n, user(), "", n.path());
|
||||||
if (_db == NULL)
|
if (_db == NULL)
|
||||||
return false;
|
return false;
|
||||||
@ -654,6 +658,8 @@ bool TDoc2Paf::create()
|
|||||||
else
|
else
|
||||||
return cantread_box(n);
|
return cantread_box(n);
|
||||||
|
|
||||||
|
_ditta.init(LF_NDITTE, prefix().get_codditta());
|
||||||
|
|
||||||
return TSkeleton_application::create();
|
return TSkeleton_application::create();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
7
pa/pamenu.men
Normal file
7
pa/pamenu.men
Normal 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"
|
Loading…
x
Reference in New Issue
Block a user