Patch level : 12.0 no-patch

Files correlati     : 
Commento            : Corretto errori, aggiunto filtro sulla data del pagamento

git-svn-id: svn://10.65.10.50/branches/R_10_00@23699 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
mtollari 2017-03-21 16:36:15 +00:00
parent 1041fb7d3c
commit d9a5db0f56
3 changed files with 608 additions and 578 deletions

View File

@ -78,7 +78,7 @@ void TEsportaIva_msk::createName()
{ {
//setto il campo F_NAME a un valore fisso, e cioè: "CODF_data.txt" //setto il campo F_NAME a un valore fisso, e cioè: "CODF_data.txt"
TDate adata = get_date(F_ADATA); TDate adata = get_date(F_ADATA);
TString16 name; TString name;
if(get(F_CODCF).full()) if(get(F_CODCF).full())
name << get(F_CODCF); name << get(F_CODCF);
@ -152,15 +152,16 @@ void TEsportaIva_msk::fill()
return; return;
// Preparo le date di interesse // Preparo le date di interesse
const TDate adata(get_date(F_ADATA)); bool datadoc = get_int(F_DATASEL) == 1;
const TDate dadata(get_date(F_DADATA));
// Preparo query su righe iva joinati ai mov // Preparo query su righe iva joinati ai mov
TString query("USE RMOVIVA SELECT BETWEEN(23.DATAREG,#DADATA,#ADATA)&&(23.INVIVA!=\"X\")&&(23.TIPO=\"F\")"); TString query("USE RMOVIVA SELECT ");
if(get_bool(B_FORNITORE)) if(datadoc)
{ {
query << "&&(23.CODCF=#CODCF)"; query << "BETWEEN(23.DATAREG,#DADATA,#ADATA)&&";
} }
query << "(23.INVIVA!=\"X\")&&(23.TIPO=\"F\")";
query << "\n"; query << "\n";
bool with_cms = get_int(F_JOB) == 1; bool with_cms = get_int(F_JOB) == 1;
@ -171,8 +172,11 @@ void TEsportaIva_msk::fill()
//instanzio il recordset //instanzio il recordset
TISAM_recordset rmoviva(query); TISAM_recordset rmoviva(query);
rmoviva.set_var("#DADATA", dadata); if(datadoc)
rmoviva.set_var("#ADATA", adata); {
rmoviva.set_var("#DADATA", get_date(F_DADATA));
rmoviva.set_var("#ADATA", get_date(F_ADATA));
}
if(get_bool(B_FORNITORE)) if(get_bool(B_FORNITORE))
rmoviva.set_var("#CODCF", get(F_CODCF)); rmoviva.set_var("#CODCF", get(F_CODCF));
@ -195,11 +199,11 @@ void TEsportaIva_msk::fill()
TDate last_data_pag; TDate last_data_pag;
const long numreg = rmoviva.get(RMI_NUMREG).as_int(); const long numreg = rmoviva.get(RMI_NUMREG).as_int();
TToken_string* row = new TToken_string;
bool partita_chiusa; // Da fare sempre o last_data_pag non viene valorizzato
if(!all) bool partita_chiusa = test_partita(numreg, last_data_pag, datadoc ? get_date(F_ADATA) : TDate(TODAY));
partita_chiusa = test_partita(numreg, last_data_pag, adata);
if(!datadoc && (last_data_pag < get_date(F_DADATA) || get_date(F_ADATA) < last_data_pag || !last_data_pag.ok())) continue;
if (all || (get_bool(B_PRTAPE) && !partita_chiusa) || (get_bool(B_PRTCHIU) && partita_chiusa)) if (all || (get_bool(B_PRTAPE) && !partita_chiusa) || (get_bool(B_PRTCHIU) && partita_chiusa))
{ {
@ -214,23 +218,23 @@ void TEsportaIva_msk::fill()
{ {
for(int i = 1; i <= rows; i++) for(int i = 1; i <= rows; i++)
{ {
row->cut(0); TToken_string row;
const TRectype& rmovana = movana.body()[i]; const TRectype& rmovana = movana.body()[i];
const TString80 codcms = rmovana.get("CODCMS"); const TString80 codcms = rmovana.get("CODCMS");
row->add(codcms, 0); row.add(codcms, 0);
row->add(rmoviva.get("23.CODCF").as_string()); row.add(rmoviva.get("23.CODCF").as_string());
row->add(rmoviva.get("20.RAGSOC").as_string()); row.add(rmoviva.get("20.RAGSOC").as_string());
char sez = rmovana.get_char("SEZIONE"); char sez = rmovana.get_char("SEZIONE");
TImporto importo(sez, rmovana.get_real("IMPORTO")); TImporto importo(sez, rmovana.get_real("IMPORTO"));
importo.normalize('D'); importo.normalize('D');
row->add(importo.valore()); row.add(importo.valore());
row->add(rmoviva.get("23.DATADOC").as_string()); row.add(rmoviva.get("23.DATADOC").as_string());
row->add(rmoviva.get("23.NUMDOC").as_string()); row.add(rmoviva.get("23.NUMDOC").as_string());
row->add(last_data_pag); row.add(last_data_pag);
row->add(rmoviva.get("25.GRUPPO").as_string()); row.add(rmoviva.get("25.GRUPPO").as_string());
row->add(rmoviva.get("25.CONTO").as_string()); row.add(rmoviva.get("25.CONTO").as_string());
row->add(rmoviva.get("25.SOTTOCONTO").as_string()); row.add(rmoviva.get("25.SOTTOCONTO").as_string());
strarr.add(row); strarr.add(row);
} }
while (rmoviva.move_next()) while (rmoviva.move_next())
@ -250,17 +254,17 @@ void TEsportaIva_msk::fill()
if (codcms.full()) if (codcms.full())
{ {
row->cut(0); TToken_string row;
row->add(codcms, 0); row.add(codcms, 0);
row->add(rmoviva.get("23.CODCF").as_string()); row.add(rmoviva.get("23.CODCF").as_string());
row->add(rmoviva.get("20.RAGSOC").as_string()); row.add(rmoviva.get("20.RAGSOC").as_string());
row->add(rmoviva.get(RMI_IMPONIBILE).as_real()); row.add(rmoviva.get(RMI_IMPONIBILE).as_real());
row->add(rmoviva.get("23.DATADOC").as_string()); row.add(rmoviva.get("23.DATADOC").as_string());
row->add(rmoviva.get("23.NUMDOC").as_string()); row.add(rmoviva.get("23.NUMDOC").as_string());
row->add(last_data_pag); row.add(last_data_pag);
row->add(rmoviva.get("25.GRUPPO").as_string()); row.add(rmoviva.get("25.GRUPPO").as_string());
row->add(rmoviva.get("25.CONTO").as_string()); row.add(rmoviva.get("25.CONTO").as_string());
row->add(rmoviva.get("25.SOTTOCONTO").as_string()); row.add(rmoviva.get("25.SOTTOCONTO").as_string());
strarr.add(row); strarr.add(row);
} }
} }
@ -268,17 +272,17 @@ void TEsportaIva_msk::fill()
else else
if (rmoviva.get("CODCMS").as_string().blank()) if (rmoviva.get("CODCMS").as_string().blank())
{ {
row->cut(0); TToken_string row;
row->add("", 0); row.add("", 0);
row->add(rmoviva.get("23.CODCF").as_string()); row.add(rmoviva.get("23.CODCF").as_string());
row->add(rmoviva.get("20.RAGSOC").as_string()); row.add(rmoviva.get("20.RAGSOC").as_string());
row->add(rmoviva.get(RMI_IMPONIBILE).as_real()); row.add(rmoviva.get(RMI_IMPONIBILE).as_real());
row->add(rmoviva.get("23.DATADOC").as_string()); row.add(rmoviva.get("23.DATADOC").as_string());
row->add(rmoviva.get("23.NUMDOC").as_string()); row.add(rmoviva.get("23.NUMDOC").as_string());
row->add(last_data_pag); row.add(last_data_pag);
row->add(rmoviva.get("25.GRUPPO").as_string()); row.add(rmoviva.get("25.GRUPPO").as_string());
row->add(rmoviva.get("25.CONTO").as_string()); row.add(rmoviva.get("25.CONTO").as_string());
row->add(rmoviva.get("25.SOTTOCONTO").as_string()); row.add(rmoviva.get("25.SOTTOCONTO").as_string());
strarr.add(row); strarr.add(row);
} }
} }
@ -379,11 +383,17 @@ void TEsportaIva_app::esporta_righe_iva(const TEsportaIva_msk& m) const
} }
//preparo le date di interesse //preparo le date di interesse
const TDate adata(m.get_date(F_ADATA)); bool datadoc = m.get_int(F_DATASEL) == 1;
const TDate dadata(1, 1, adata.year() - 4);
// Preparo query su righe iva joinati ai mov // Preparo query su righe iva joinati ai mov
TString query("USE RMOVIVA SELECT BETWEEN(23.DATAREG,#DADATA,#ADATA)&&(23.INVIVA!=\"X\")&&(23.TIPO=\"F\")"); TString query("USE RMOVIVA SELECT ");
if(datadoc)
{
query << "BETWEEN(23.DATAREG,#DADATA,#ADATA)&&";
}
query << "(23.INVIVA!=\"X\")&&(23.TIPO=\"F\")";
if(m.get_bool(B_FORNITORE)) if(m.get_bool(B_FORNITORE))
{ {
query << "&&(23.CODCF=#CODCF)"; query << "&&(23.CODCF=#CODCF)";
@ -391,10 +401,6 @@ void TEsportaIva_app::esporta_righe_iva(const TEsportaIva_msk& m) const
query << "\n"; query << "\n";
bool with_cms = m.get_int(F_JOB) == 1; bool with_cms = m.get_int(F_JOB) == 1;
/* if (m.get_int(F_JOB) == 1)
query << "&&(CODCMS!=\"\")\n";
else
query << "&&(CODCMS=\"\")\n"; */
query << "JOIN MOV INTO NUMREG==NUMREG\n" query << "JOIN MOV INTO NUMREG==NUMREG\n"
<< "JOIN %IVA ALIAS 101 INTO CODTAB==CODIVA\n" << "JOIN %IVA ALIAS 101 INTO CODTAB==CODIVA\n"
@ -402,8 +408,11 @@ void TEsportaIva_app::esporta_righe_iva(const TEsportaIva_msk& m) const
//instanzio il recordset //instanzio il recordset
TISAM_recordset rmoviva(query); TISAM_recordset rmoviva(query);
rmoviva.set_var("#DADATA", dadata); if(datadoc)
rmoviva.set_var("#ADATA", adata); {
rmoviva.set_var("#DADATA", m.get_date(F_DADATA));
rmoviva.set_var("#ADATA", m.get_date(F_ADATA));
}
//instanzio il csv recordset //instanzio il csv recordset
TEsportaIva_rec csv; TEsportaIva_rec csv;
@ -416,9 +425,11 @@ void TEsportaIva_app::esporta_righe_iva(const TEsportaIva_msk& m) const
TDate last_data_pag; TDate last_data_pag;
const long numreg = rmoviva.get(RMI_NUMREG).as_int(); const long numreg = rmoviva.get(RMI_NUMREG).as_int();
bool partita_chiusa;
if(!all) // Da fare sempre o last_data_pag non viene valorizzato
partita_chiusa = test_partita(numreg, last_data_pag, adata); bool partita_chiusa = test_partita(numreg, last_data_pag, datadoc ? m.get_date(F_ADATA) : TDate(TODAY));
if(!datadoc && last_data_pag < m.get_date(F_DADATA) && m.get_date(F_ADATA) < last_data_pag) continue;
if (all || (m.get_bool(B_PRTAPE) && !partita_chiusa) || (m.get_bool(B_PRTCHIU) && partita_chiusa)) if (all || (m.get_bool(B_PRTAPE) && !partita_chiusa) || (m.get_bool(B_PRTCHIU) && partita_chiusa))
{ {
@ -508,7 +519,7 @@ void TEsportaIva_app::esporta_righe_iva(const TEsportaIva_msk& m) const
TString msg; TString msg;
msg << TR("Si conferma l'esportazione definitiva dei movimenti IVA fino al ") << m.get(F_ADATA); msg << TR("Si conferma l'esportazione definitiva dei movimenti IVA fino al ") << m.get(F_ADATA);
if (m.get_bool(B_PRTCHIU) && yesno_box(msg)) if (m.get_bool(B_PRTCHIU) && yesno_box(msg))
set_inviva(rmoviva, adata); //mette il flag di "INVIVA" alla testata movimento set_inviva(rmoviva, datadoc ? m.get_date(F_ADATA) : TDate(TODAY)); //mette il flag di "INVIVA" alla testata movimento
// Salvo su file le impostazioni // Salvo su file le impostazioni
ini_set_string(CONFIG_DITTA, "Esporta_Dati_IVA", "LastSend", m.get_date(F_DADATA)); ini_set_string(CONFIG_DITTA, "Esporta_Dati_IVA", "LastSend", m.get_date(F_DADATA));

View File

@ -5,19 +5,21 @@
#define A_IMPORTO 104 #define A_IMPORTO 104
#define A_DATADOC 105 #define A_DATADOC 105
#define A_NUMDOC 106 #define A_NUMDOC 106
#define A_GRUPPO 107 #define A_DATAPAG 107
#define A_CONTO 108 #define A_GRUPPO 108
#define A_SOTTOCONTO 109 #define A_CONTO 109
#define A_SOTTOCONTO 110
#define F_PATH 201 #define F_PATH 201
#define F_NAME 202 #define F_NAME 202
#define F_DADATA 203 #define F_DADATA 203
#define F_ADATA 204 #define F_ADATA 204
#define F_JOB 205 #define F_JOB 205
#define B_FORNITORE 206 #define F_DATASEL 206
#define F_CODCF 207 #define B_FORNITORE 207
#define F_RAGSOC 208 #define F_CODCF 208
#define B_PRTAPE 209 #define F_RAGSOC 209
#define B_PRTCHIU 210 #define B_PRTAPE 210
#define B_PRTCHIU 211
#define S_RESULT 301 #define S_RESULT 301

View File

@ -58,14 +58,23 @@ BEGIN
FIELD ADATA FIELD ADATA
END END
RADIOBUTTON F_DATASEL 15
BEGIN
PROMPT 70 2 "Data doc/pag"
ITEM "1|Doc."
ITEM "2|Pag"
FLAGS "Z"
END
RADIOBUTTON F_JOB 12 RADIOBUTTON F_JOB 12
BEGIN BEGIN
PROMPT 70 2 "ID lavoro" PROMPT 90 2 "ID lavoro"
ITEM "1|SI" ITEM "1|SI"
ITEM "2|NO" ITEM "2|NO"
FLAGS "Z" FLAGS "Z"
END END
BOOLEAN B_FORNITORE BOOLEAN B_FORNITORE
BEGIN BEGIN
PROMPT 0 3 "Fornitore" PROMPT 0 3 "Fornitore"
@ -124,6 +133,7 @@ BEGIN
ITEM "Importo@10" ITEM "Importo@10"
ITEM "Data\ndocumento@10" ITEM "Data\ndocumento@10"
ITEM "Numero\ndocumento@10" ITEM "Numero\ndocumento@10"
ITEM "Data pagamento@10"
ITEM "Gruppo@5" ITEM "Gruppo@5"
ITEM "Conto@5" ITEM "Conto@5"
ITEM "Sottoconto@10" ITEM "Sottoconto@10"
@ -177,6 +187,13 @@ BEGIN
FIELD PROGR FIELD PROGR
END END
DATE A_DATAPAG
BEGIN
PROMPT 1 0 "Data pagamento documento"
FLAGS "D"
FIELD PROGR
END
NUMBER A_GRUPPO 3 NUMBER A_GRUPPO 3
BEGIN BEGIN
PROMPT 1 0 "Gruppo" PROMPT 1 0 "Gruppo"