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

This commit is contained in:
guy 2015-12-21 11:23:10 +00:00
parent fe73df2a38
commit 65c9ffe1cd
4 changed files with 48 additions and 54 deletions

View File

@ -569,6 +569,9 @@ void TPA_mask::fill()
}
}
row->add(split ? "X" : " ");
const bool attach = !doc_pa.get("COLL_GOLEM").is_empty();
row->add(attach ? "X" : " ");
sht.add(row);
}
@ -910,9 +913,9 @@ bool TDoc2Paf::elabora(TDocumentoEsteso& doc)
if (_ditta.partita_IVA().full())
{
paf0200f.set("P2_FISCIVAPAESE", paese); // Sempre IT
paf0200f.set("P2_FISCIVACOD", _ditta.partita_IVA());
paf0200f.set("P2_FISCIVACOD", _ditta.partita_IVA());
}
paf0200f.set("P2_CODFISCALE", _ditta.codice_fiscale());
paf0200f.set("P2_CODFISCALE", _ditta.codice_fiscale());
if (_ditta.fisica())
{
paf0200f.set("P2_ANANOME", _ditta.nome());
@ -1429,49 +1432,27 @@ bool TDoc2Paf::elabora(TDocumentoEsteso& doc)
paf2500f.insert();
}
TToken_string allegati = doc.get("COLL_GOLEM");
TPaf_record paf2600f("PAF2600F");
paf2600f.set("PP_KEYHEADERFATT", hfatt);
paf2600f.set("PP_KEYBODYFATT", bfatt);
paf2600f.remove(); // Cancella eventuali allegati
TToken_string allegati(doc.get("COLL_GOLEM"),'\n');
if (allegati.full())
{
TFilename fzip;
fzip = prefix().get_studio();
fzip.add("sql"); fzip.add("attach");
make_dir(fzip);
TString20 code = bfatt; code.replace('/', '_');
fzip.add(code); fzip << ".zip";
long nprogr = 0; // Numero di file allegati
TFilename fname;
if (allegati.items() <= 2) // Una sola coppia (path|nome)
FOR_EACH_TOKEN(allegati, row)
{
fname = allegati.get(0);
aga_zip(fname, fzip);
}
else
{
TFilename flist; flist.tempdir(); flist.add("ziplist.txt");
ofstream list(flist);
FOR_EACH_TOKEN(allegati, str)
const TToken_string entry(row);
if (entry.get(0, fname) && fname.exist())
{
fname = str;
if (fname.exist())
list << fname << endl;
paf2600f.set("PP_KEYNPROGR", ++nprogr);
paf2600f.set("PP_NOMEATTACHMENT", fname.name());
paf2600f.set("PP_ATTACHMENT", fname);
fname.upper(); // serve estensione maiuscola
paf2600f.set("PP_FMTATTACHMENT", fname.ext());
paf2600f.insert();
}
list.close();
aga_zip_filelist(flist, fzip);
xvt_fsys_remove_file(flist);
}
TPaf_record paf2600f("PAF2600F");
paf2600f.set("PP_KEYHEADERFATT", hfatt);
paf2600f.set("PP_KEYBODYFATT", bfatt);
paf2600f.remove(); // Cancella allegati
if (fzip.exist())
{
paf2600f.set("PP_NOMEATTACHMENT", fname.name());
paf2600f.set("PP_FMTATTACHMENT", fname.ext());
paf2600f.set("PP_ATTACHMENT", fzip);
paf2600f.set("PP_COMPRESSIONE", "ZIP");
paf2600f.insert();
}
}
@ -1613,23 +1594,27 @@ void TDoc2Paf::main_loop()
_cofi = mask.get(F_COFI);
TString_array& sht = mask.sfield(F_DOCS).rows_array();
TProgress_monitor pi(sht.items(), NULL);
ndocs = 0;
FOR_EACH_ARRAY_ROW(sht, r, riga)
if (!sht.empty())
{
if (riga->starts_with("X"))
TProgress_monitor pi(sht.items(), NULL);
ndocs = 0;
FOR_EACH_ARRAY_ROW(sht, r, riga)
{
const int anno = riga->get_int(1);
const long ndoc = riga->get_long(3);
const TFixed_string codnum(riga->get(2)); // lascio sapientemente per ultima la get di una stringa
const TDoc_key key(anno, codnum, ndoc);
if (elabora(key))
ndocs++;
if (riga->starts_with("X"))
{
const int anno = riga->get_int(1);
const long ndoc = riga->get_long(3);
const TFixed_string codnum(riga->get(2)); // lascio sapientemente per ultima la get di una stringa
const TDoc_key key(anno, codnum, ndoc);
if (elabora(key))
ndocs++;
}
if (!pi.add_status(1))
break;
}
if (!pi.add_status(1))
break;
message_box(FR("Sono stati elaborati %d documenti"), ndocs);
}
message_box(FR("Sono stati elaborati %d documenti"), ndocs);
if (ndocs > 0 && show_log())
genera_xml();
}

View File

@ -14,4 +14,4 @@
#define S_RIFAMM 109
#define S_COFI 110
#define S_SPLITPAY 111
#define S_ATTACH 112

View File

@ -37,6 +37,7 @@ BEGIN
ITEM "Riferimento\nAmministrazione@20"
ITEM "Codice Fiscale@16"
ITEM "Scissione\nPagamenti@9"
ITEM "Allegati"
END
ENDPAGE
@ -110,6 +111,13 @@ BEGIN
FLAGS "D"
END
BOOLEAN S_ATTACH
BEGIN
PROMPT 1 7 "Documenti in allegato"
FLAGS "D"
END
ENDPAGE
TOOLBAR "Documento" 0 0 0 2

View File

@ -444,6 +444,7 @@ INDEX_1 = PO_KEYHEADERFATT,PO_KEYBODYFATT,PO_KEYNPROGR
PP_KEYHEADERFATT = CHAR(20)
PP_KEYBODYFATT = CHAR(20)
PP_KEYNPROGR = INTEGER
PP_NOMEATTACHMENT = CHAR(60)
PP_COMPRESSIONE = CHAR(10)
@ -453,7 +454,7 @@ PP_ATTACHMENT = CHAR(256)
PP_GESTIONE = CHAR(1)
INDEX_1 = PP_KEYHEADERFATT,PP_KEYBODYFATT
INDEX_1 = PP_KEYHEADERFATT,PP_KEYBODYFATT,PP_KEYNPROGR
[PAF2700F]
PQ_KEYHEADERFATT = CHAR(20)