Patch level : 12.0 384
Files correlati : tf Commento : - Sistemata maschera tf0500 - Corretta esportazione e chiamata programma .jar tf0500 - Tolti campi non utilizzati, aggiunta profilo, sistemata maschera per tf0200 - Sistemati bug tf0200, (programma ancora non finito) git-svn-id: svn://10.65.10.50/branches/R_10_00@23768 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
54367a0d01
commit
05deed15ae
@ -45,6 +45,7 @@ const TRectype getLIA(int anno)
|
||||
TString key; key << format("%05d", prefix().firm().codice()) << anno; // %05d Crea un numero di 5 cifre partendo dal codice e mettendoci 0 davanti
|
||||
return cache().get("%LIA", key);
|
||||
}
|
||||
|
||||
// Ritorna il record valido richiesto di tabcom.VER
|
||||
const TRectype getVER(int anno, int mese)
|
||||
{
|
||||
@ -77,7 +78,7 @@ const TRectype getVER(int anno, int mese)
|
||||
return rowRet;
|
||||
}
|
||||
|
||||
// Scopiazzata brutalmente da cg4304.cpp
|
||||
// Scopiazzata brutalmente da cg4304.cpp, aggiunto controllo indetraibilità per le imposte, non devono essere prese in considerazione se indetraibili
|
||||
int calc_inc_diff(int anno, int mese, int tipoiva, real& imponibile_diff, real& imposta_diff, real& imponibile_xcas, real& imposta_xcas)
|
||||
{
|
||||
CHECKD(tipoiva == 1 || tipoiva == 2, "Bad tipo iva:", tipoiva);
|
||||
@ -102,15 +103,23 @@ int calc_inc_diff(int anno, int mese, int tipoiva, real& imponibile_diff, real&
|
||||
const int tipodiff = rec.get_int("TIPODIFF");
|
||||
switch (tipodiff)
|
||||
{
|
||||
case 1: imponibile_diff += imp; imposta_diff += iva; break;
|
||||
case 2: imponibile_xcas += imp; imposta_xcas += iva; break;
|
||||
case 1:
|
||||
imponibile_diff += imp;
|
||||
if(!rec.get_bool("INDETR"))
|
||||
imposta_diff += iva;
|
||||
break;
|
||||
case 2:
|
||||
imponibile_xcas += imp;
|
||||
if(!rec.get_bool("INDETR"))
|
||||
imposta_xcas += iva;
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
flag |= tipodiff;
|
||||
}
|
||||
}
|
||||
|
||||
if (tipoiva == 2)
|
||||
if (tipoiva == 2 && !rec.get_bool("INDETR"))
|
||||
{
|
||||
real perc_prorata;
|
||||
|
||||
@ -140,6 +149,12 @@ int calc_inc_diff(int anno, int mese, int tipoiva, real& imponibile_diff, real&
|
||||
return flag;
|
||||
}
|
||||
|
||||
int getTipoReg(int anno, TString codReg)
|
||||
{
|
||||
TString key; key << anno << codReg;
|
||||
return stoi(cache().get("REG", key, "I0"));
|
||||
}
|
||||
|
||||
/* Da errori in allocazione TArray
|
||||
const TISAM_recordset getCurIvaXCassa(TDate data_da, TDate data_a, TString codreg_att)
|
||||
{
|
||||
@ -192,14 +207,32 @@ bool ComLiqPerIva_mask::on_field_event(TOperable_field& o, TField_event e, long
|
||||
disable(F_MESE);
|
||||
enable(F_TRIMESTRE);
|
||||
}
|
||||
// Abilito i campi a schiena
|
||||
for(int i = F_SUBFORNITURE; i <= F_VEREFF; i++)
|
||||
}
|
||||
else if(e == fe_init)
|
||||
{
|
||||
// Per trovare un valore tento per 5 anni di vedere se c'è una liquidazione aperta, così da valorizzare tutta la roba
|
||||
int year = TDate(TODAY).year();
|
||||
for(int i = year; i >= year - 5; i--)
|
||||
{
|
||||
enable(i);
|
||||
if(i >= CAMPI_CON_BOOLEAN)
|
||||
TString cod = get(F_CODDITTA);
|
||||
cod << i;
|
||||
if(cache().get("%LIA", cod).empty()) continue;
|
||||
|
||||
// Trovato
|
||||
set(F_ANNO, i);
|
||||
if(cache().get("%LIA", cod, "S7") == "M")
|
||||
{
|
||||
//enable(i + 50); Anche disabilitati funzionano
|
||||
mensile = true;
|
||||
enable(F_MESE);
|
||||
disable(F_TRIMESTRE);
|
||||
}
|
||||
else
|
||||
{
|
||||
mensile = false;
|
||||
disable(F_MESE);
|
||||
enable(F_TRIMESTRE);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -226,12 +259,12 @@ bool ComLiqPerIva_mask::on_field_event(TOperable_field& o, TField_event e, long
|
||||
break;
|
||||
case DLG_EMAIL:
|
||||
// Richiamo il programma di invio
|
||||
// TExternal_application app;
|
||||
// TExternal_application app;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
if(o.dlg() >= CAMPI_CON_BOOLEAN && e == fe_modify) // Se l'utente modifica manualmente uno dei campi calcolati da Campo flaggo il DB
|
||||
if(o.dlg() >= CAMPI_CON_BOOLEAN && o.dlg() <= F_IMPNOVER && e == fe_modify) // Se l'utente modifica manualmente uno dei campi calcolati da Campo flaggo il DB
|
||||
{
|
||||
set(o.dlg() + 50, "X");
|
||||
}
|
||||
@ -254,15 +287,18 @@ bool ComLiqPerIva_mask::on_field_event(TOperable_field& o, TField_event e, long
|
||||
if((ivaes - ivadet) >= ZERO)
|
||||
{
|
||||
set(F_IVADOV, ivaes - ivadet);
|
||||
set(B_IVADOV, "X");
|
||||
set(F_IVADOVC, ZERO);
|
||||
set(B_IVADOVC, "");
|
||||
}
|
||||
else
|
||||
{
|
||||
set(F_IVADOV, ZERO);
|
||||
set(B_IVADOV, "");
|
||||
set(F_IVADOVC, (ivaes - ivadet) * -UNO);
|
||||
set(B_IVADOVC, "X");
|
||||
}
|
||||
}
|
||||
|
||||
// IVA da versare VS a credito
|
||||
case F_IVADOV :
|
||||
case F_DEBPREC :
|
||||
@ -280,14 +316,19 @@ bool ComLiqPerIva_mask::on_field_event(TOperable_field& o, TField_event e, long
|
||||
if(debito - credito >= ZERO)
|
||||
{
|
||||
set(F_IVAVER, debito - credito);
|
||||
set(B_IVAVER, "X");
|
||||
set(F_IVAVERC, ZERO);
|
||||
set(B_IVAVERC, "");
|
||||
}
|
||||
else
|
||||
{
|
||||
set(F_IVAVER, ZERO);
|
||||
set(B_IVAVER, "");
|
||||
set(F_IVAVERC, credito - debito);
|
||||
set(B_IVAVERC, "X");
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
@ -300,8 +341,8 @@ void ComLiqPerIva_mask::extractinator() // Per gli amici GTFO
|
||||
* I dati da prelevare saranno in PRM, LIM e %LIA
|
||||
* In PRM e LIM troverò le informazioni suddivise per mese, mentre in %LIA ho l'anno di liquidazione
|
||||
*/
|
||||
int start = mensile ? get_int(F_MESE) : get_int(F_TRIMESTRE) * 3;
|
||||
int end = mensile ? start : start + 3;
|
||||
int start = mensile ? get_int(F_MESE) : (((get_int(F_TRIMESTRE) - 1) * 3) + 1);
|
||||
int end = mensile ? start : start + 2;
|
||||
int anno = get_int(F_ANNO);
|
||||
|
||||
// Valori da calcolare
|
||||
@ -332,8 +373,8 @@ void ComLiqPerIva_mask::extractinator() // Per gli amici GTFO
|
||||
real ivaverc = ZERO;
|
||||
|
||||
// Costanti
|
||||
const TString codreg_att = "VEN";
|
||||
const TString codreg_pas = "ACQ";
|
||||
static const int reg_att = 1;
|
||||
static const int reg_pas = 2;
|
||||
|
||||
for(; start <= end; start++)
|
||||
{
|
||||
@ -351,6 +392,7 @@ void ComLiqPerIva_mask::extractinator() // Per gli amici GTFO
|
||||
// Controllo che la liquidazione è stata effettuata
|
||||
if(rowLim.empty())
|
||||
{
|
||||
message_box("Errore LIM");
|
||||
error_box("Attenzione non è stata calcolata la liquidazione del periodo corrente");
|
||||
return;
|
||||
}
|
||||
@ -366,97 +408,48 @@ void ComLiqPerIva_mask::extractinator() // Per gli amici GTFO
|
||||
TRectype to(rprm.curr()); to.put("COD" , "PRM");to.put("CODTAB", anno);
|
||||
|
||||
TCursor curPrm(&rprm, "", 1, &from, &to);
|
||||
|
||||
|
||||
for(curPrm = 0; curPrm.pos() < curPrm.items(); ++curPrm)
|
||||
{
|
||||
TRectype rowPrm = curPrm.curr();
|
||||
// Controllo il mese
|
||||
TString codtab = rowPrm.get("CODTAB");
|
||||
int app = stoi(rowPrm.get("CODTAB").sub(13,15));
|
||||
int app = stoi(rowPrm.get("CODTAB").sub(13,15)); // Da togliere
|
||||
if(stoi(rowPrm.get("CODTAB").sub(13,15)) != start) continue;
|
||||
|
||||
// Verifico su che registro mi trovo
|
||||
if(rowPrm.get("CODTAB").sub(10,13) == codreg_att)
|
||||
int tiporeg = getTipoReg(anno, rowPrm.get("CODTAB").sub(10,13));
|
||||
if(tiporeg == reg_att)
|
||||
{
|
||||
totopatt = totopatt + rowPrm.get_real("R0");
|
||||
}
|
||||
else if(rowPrm.get("CODTAB").sub(10,13) == codreg_pas)
|
||||
else if(tiporeg == reg_pas)
|
||||
{
|
||||
totoppas = totoppas + rowPrm.get_real("R0");
|
||||
}
|
||||
}
|
||||
|
||||
real appReal = ZERO;
|
||||
|
||||
// IVA esigibile
|
||||
TToken_string tokenPrec = rowLim.get("S0");
|
||||
tokenPrec.get(0, appReal);
|
||||
ivaes = ivaes + appReal;
|
||||
|
||||
// IVA detraibile
|
||||
appReal = ZERO; // Nel dubbio azzero
|
||||
tokenPrec.get(1, appReal);
|
||||
ivadet = ivadet + appReal;
|
||||
|
||||
// Se ha attiva l'IVA x cassa
|
||||
if(gestione_IVAxCassa(data_da))
|
||||
{
|
||||
static TRelation rreg(LF_TAB);
|
||||
TRectype fromReg(rprm.curr()); fromReg.put("COD", "REG");fromReg.put("CODTAB", anno);
|
||||
TRectype toReg(rprm.curr()); toReg.put("COD" , "REG"); toReg.put("CODTAB", anno);
|
||||
|
||||
// Questo codice è stato preso da print_IVAxCassa in cg4400.cpp
|
||||
TString query = "USE IVADIFF SELECT (BETWEEN(DATAREGP,#DAL,#AL))&&(MOV.REG=#REG)&&(STR((MESELIQ<13)&&(TIPOMOV>2)&&(MOV.TOTDOC!=0)&&(IMPOSTA!=0)&&NUM(INDETR!='X')))";
|
||||
query << "\nBY DATAREGP DATAREG NUMPRO";
|
||||
query << "\nJOIN MOV INTO NUMREG==NUMREG";
|
||||
query << "\nJOIN CLIFO TO MOV INTO TIPOCF==TIPO CODCF==CODCF";
|
||||
|
||||
TCursor curReg(&rreg, "", 1, &fromReg, &toReg);
|
||||
for(curReg = 0; curReg.pos() < curReg.items(); ++curReg)
|
||||
{
|
||||
TRectype rowReg = curReg.curr();
|
||||
|
||||
// Siamo su un registro non IVA
|
||||
int tipo_registro = rowReg.get_int("I0");
|
||||
if(tipo_registro > 2) continue;
|
||||
|
||||
TISAM_recordset id(query);
|
||||
id.set_var("#DAL", data_da);
|
||||
id.set_var("#AL", data_a);
|
||||
id.set_var("#REG", rowReg.get("CODTAB").sub(4));
|
||||
|
||||
const TRectype& rec = id.cursor()->curr();
|
||||
for (bool ok = id.move_first(); ok; ok = id.move_next())
|
||||
{
|
||||
if(tipo_registro == 1) // Vendite
|
||||
{
|
||||
totopattxc = totopattxc + rec.get_real("IMPOSTA");
|
||||
}
|
||||
else // Acquisti
|
||||
{
|
||||
totoppasxc = totoppasxc + rec.get_real("IMPOSTA");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// IVA esigibile
|
||||
TToken_string tokenPrec = rowLim.get("S0");
|
||||
tokenPrec.get(0, ivaes);
|
||||
|
||||
real imponibile_diff, imposta_diff, imponibile_xcas, imposta_xcas;
|
||||
calc_inc_diff(anno, start, 1, imponibile_diff, imposta_diff, imponibile_xcas, imposta_xcas);
|
||||
|
||||
imponibile_diff = imposta_diff = imponibile_xcas = imposta_xcas = ZERO;
|
||||
// 1 = Vendite
|
||||
calc_inc_diff(anno, start, reg_att, imponibile_diff, imposta_diff, imponibile_xcas, imposta_xcas);
|
||||
totopattxc = totopattxc + imponibile_xcas;
|
||||
ivaesxc = ivaesxc + imposta_xcas;
|
||||
ivaesdiff = ivaesdiff + imposta_xcas;
|
||||
|
||||
// IVA detraibile
|
||||
tokenPrec.get(1, ivadet);
|
||||
calc_inc_diff(anno, start, 2, imponibile_diff, imposta_diff, imponibile_xcas, imposta_xcas);
|
||||
|
||||
imponibile_diff = imposta_diff = imponibile_xcas = imposta_xcas = ZERO;
|
||||
// 2 = Acquisti
|
||||
calc_inc_diff(anno, start, reg_pas, imponibile_diff, imposta_diff, imponibile_xcas, imposta_xcas);
|
||||
totoppasxc = totoppasxc + imponibile_xcas;
|
||||
ivadetxc = ivadetxc + imposta_xcas;
|
||||
ivadetdiff = ivadetdiff + imposta_xcas;
|
||||
}
|
||||
|
||||
/** Resto *****************************************************************************************************/
|
||||
|
||||
ivaes = ivaes + rowLim.get_real("R13");
|
||||
ivadet = ivadet + rowLim.get_real("R12");
|
||||
|
||||
@ -469,9 +462,13 @@ void ComLiqPerIva_mask::extractinator() // Per gli amici GTFO
|
||||
|
||||
debprec = debprec + rowLim.get_real("S2");
|
||||
|
||||
appReal = ZERO;
|
||||
real appReal = ZERO;
|
||||
|
||||
// Credito periodo precedente
|
||||
TToken_string tokenPrec = rowLim.get("S0");
|
||||
real app1 = ZERO, app2 = ZERO;
|
||||
tokenPrec.get(0, app1);
|
||||
tokenPrec.get(1, app2);
|
||||
tokenPrec.get(2, appReal);
|
||||
creprec = creprec + appReal;
|
||||
|
||||
@ -487,6 +484,7 @@ void ComLiqPerIva_mask::extractinator() // Per gli amici GTFO
|
||||
TRectype rowVer = getVER(anno, start);
|
||||
if(rowVer.empty() || rowVer.get_real("R5") == ZERO)
|
||||
{
|
||||
message_box("Errore VER");
|
||||
error_box("Non è stata valorizzato correttamente il campo \"Periodico\" in \"Versamenti ed interessi IVA\"");
|
||||
return;
|
||||
}
|
||||
@ -547,7 +545,7 @@ void ComLiqPerIva_mask::extractinator() // Per gli amici GTFO
|
||||
set(F_VEREFF, vereff);
|
||||
|
||||
// Azzero i booleani
|
||||
for(int i = B_TOTOPATT; i <= B_VEREFF; i++)
|
||||
for(int i = B_TOTOPATT; i <= B_CRESPEC; i++)
|
||||
{
|
||||
set(i, "");
|
||||
}
|
||||
|
@ -29,8 +29,8 @@
|
||||
#define F_RETTIFICHE 129
|
||||
#define F_VARIMP 130
|
||||
#define F_RIMBORSI 131
|
||||
#define F_IMPNOVER 132
|
||||
#define F_CRESPEC 133
|
||||
#define F_CRESPEC 132
|
||||
#define F_IMPNOVER 133
|
||||
#define F_VEREFF 134
|
||||
|
||||
|
||||
@ -59,6 +59,4 @@
|
||||
#define B_RETTIFICHE 179
|
||||
#define B_VARIMP 180
|
||||
#define B_RIMBORSI 181
|
||||
#define B_IMPNOVER 182
|
||||
#define B_CRESPEC 183
|
||||
#define B_VEREFF 184
|
||||
#define B_CRESPEC 182
|
@ -35,7 +35,6 @@ BEGIN
|
||||
OUTPUT F_CODDITTA CODDITTA
|
||||
OUTPUT F_RAGSOC RAGSOC
|
||||
CHECKTYPE REQUIRED
|
||||
KEY 1
|
||||
END
|
||||
|
||||
STRING F_RAGSOC 50
|
||||
@ -72,7 +71,7 @@ END
|
||||
|
||||
NUMBER F_MESE 2
|
||||
BEGIN
|
||||
PROMPT 20 2 "Mese "
|
||||
PROMPT 24 2 "Mese "
|
||||
SHEET " |Mese@30"
|
||||
INPUT F_MESE
|
||||
OUTPUT F_MESE
|
||||
@ -94,11 +93,12 @@ BEGIN
|
||||
FLAGS ""
|
||||
KEY 1
|
||||
FIELD MESE
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
NUMBER F_TRIMESTRE 2
|
||||
BEGIN
|
||||
PROMPT 40 2 "Trimestre "
|
||||
PROMPT 50 2 "Trimestre "
|
||||
SHEET " |Trimestre@30"
|
||||
INPUT F_TRIMESTRE
|
||||
OUTPUT F_TRIMESTRE
|
||||
@ -108,30 +108,30 @@ BEGIN
|
||||
ITEM "3|Terzo"
|
||||
ITEM "4|Quarto"
|
||||
HELP "Trimestre dichiarazione, lasciare vuoto per inserirne uno nuovo"
|
||||
KEY 1
|
||||
FLAGS ""
|
||||
FIELD TRIMESTRE
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
BOOLEAN F_SUBFORNITURE
|
||||
BEGIN
|
||||
PROMPT 1 3 "Subforniture"
|
||||
FIELD SUBFOR
|
||||
FLAGS "D"
|
||||
FLAGS ""
|
||||
END
|
||||
|
||||
NUMBER F_EVECC 1
|
||||
BEGIN
|
||||
PROMPT 24 3 "Eventi eccezionali "
|
||||
FIELD EVECC
|
||||
FLAGS "D"
|
||||
FLAGS ""
|
||||
ENDPAGE
|
||||
|
||||
NUMBER F_TOTOPATT 16 2
|
||||
BEGIN
|
||||
PROMPT 1 4 "Totale op. attive "
|
||||
FIELD TOTOPATT
|
||||
FLAGS "D"
|
||||
FLAGS ""
|
||||
END
|
||||
|
||||
BOOLEAN B_TOTOPATT
|
||||
@ -145,7 +145,7 @@ NUMBER F_TOTOPATTXC 16 2
|
||||
BEGIN
|
||||
PROMPT 1 5 "Totale op. attive x c."
|
||||
FIELD TOTOPATTXC
|
||||
FLAGS "D"
|
||||
FLAGS ""
|
||||
END
|
||||
|
||||
BOOLEAN B_TOTOPATTXC
|
||||
@ -157,353 +157,341 @@ END
|
||||
|
||||
NUMBER F_TOTOPPAS 16 2
|
||||
BEGIN
|
||||
PROMPT 1 6 "Totale op. passive "
|
||||
PROMPT 50 4 "Totale op. passive "
|
||||
FIELD TOTOPPAS
|
||||
FLAGS "D"
|
||||
FLAGS ""
|
||||
END
|
||||
|
||||
BOOLEAN B_TOTOPPAS
|
||||
BEGIN
|
||||
PROMPT 45 6 ""
|
||||
PROMPT 94 4 ""
|
||||
FIELD BTOTOPPAS
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_TOTOPPASXC 16 2
|
||||
BEGIN
|
||||
PROMPT 1 7 "Totale op. passive x c."
|
||||
PROMPT 50 5 "Totale op. passive x c."
|
||||
FIELD TOTOPPASXC
|
||||
FLAGS "D"
|
||||
FLAGS ""
|
||||
END
|
||||
|
||||
BOOLEAN B_TOTOPPASXC
|
||||
BEGIN
|
||||
PROMPT 45 7 ""
|
||||
PROMPT 94 5 ""
|
||||
FIELD BTOTOPPASX
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_IVAES 16 2
|
||||
BEGIN
|
||||
PROMPT 1 8 "IVA esigibile "
|
||||
PROMPT 1 6 "IVA esigibile "
|
||||
FIELD IVAES
|
||||
FLAGS "D"
|
||||
FLAGS ""
|
||||
END
|
||||
|
||||
BOOLEAN B_IVAES
|
||||
BEGIN
|
||||
PROMPT 45 8 ""
|
||||
PROMPT 45 6 ""
|
||||
FIELD BIVAES
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_IVAESXC 16 2
|
||||
BEGIN
|
||||
PROMPT 1 9 "IVA esigibile x c. "
|
||||
PROMPT 1 7 "IVA esigibile x c. "
|
||||
FIELD IVAESXC
|
||||
FLAGS "D"
|
||||
FLAGS ""
|
||||
END
|
||||
|
||||
BOOLEAN B_IVAESXC
|
||||
BEGIN
|
||||
PROMPT 45 9 ""
|
||||
PROMPT 45 7 ""
|
||||
FIELD BIVAESXC
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_IVAESDIFF 16 2
|
||||
BEGIN
|
||||
PROMPT 1 10 "IVA esigibile diff "
|
||||
PROMPT 1 8 "IVA esigibile diff "
|
||||
FIELD IVAESDIFF
|
||||
FLAGS "D"
|
||||
FLAGS ""
|
||||
END
|
||||
|
||||
BOOLEAN B_IVAESDIFF
|
||||
BEGIN
|
||||
PROMPT 45 10 ""
|
||||
PROMPT 45 8 ""
|
||||
FIELD BIVAESDIFF
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_IVADET 16 2
|
||||
BEGIN
|
||||
PROMPT 1 11 "IVA detratta "
|
||||
PROMPT 50 6 "IVA detratta "
|
||||
FIELD IVADET
|
||||
FLAGS "D"
|
||||
FLAGS ""
|
||||
END
|
||||
|
||||
BOOLEAN B_IVADET
|
||||
BEGIN
|
||||
PROMPT 45 11 ""
|
||||
PROMPT 94 6 ""
|
||||
FIELD BIVADET
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_IVADETXC 16 2
|
||||
BEGIN
|
||||
PROMPT 1 12 "IVA detratta x c. "
|
||||
PROMPT 50 7 "IVA detratta x c. "
|
||||
FIELD IVADETXC
|
||||
FLAGS "D"
|
||||
FLAGS ""
|
||||
END
|
||||
|
||||
BOOLEAN B_IVADETXC
|
||||
BEGIN
|
||||
PROMPT 45 12 ""
|
||||
PROMPT 94 7 ""
|
||||
FIELD BIVADETXC
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_IVADETDIFF 16 2
|
||||
BEGIN
|
||||
PROMPT 1 13 "IVA detratta diff "
|
||||
PROMPT 50 8 "IVA detratta diff "
|
||||
FIELD IVADETDIFF
|
||||
FLAGS "D"
|
||||
FLAGS ""
|
||||
END
|
||||
|
||||
BOOLEAN B_IVADETDIFF
|
||||
BEGIN
|
||||
PROMPT 45 13 ""
|
||||
PROMPT 94 8 ""
|
||||
FIELD BIVADETDIF
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_IVADOV 16 2
|
||||
BEGIN
|
||||
PROMPT 1 14 "IVA dovuta "
|
||||
PROMPT 1 10 "IVA dovuta "
|
||||
FIELD IVADOV
|
||||
FLAGS "D"
|
||||
FLAGS ""
|
||||
END
|
||||
|
||||
BOOLEAN B_IVADOV
|
||||
BEGIN
|
||||
PROMPT 45 14 ""
|
||||
PROMPT 45 10 ""
|
||||
FIELD BIVADOV
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_IVADOVC 16 2
|
||||
BEGIN
|
||||
PROMPT 50 14 "o a credito"
|
||||
PROMPT 50 10 "o a credito "
|
||||
FIELD IVADOVC
|
||||
FLAGS "D"
|
||||
FLAGS ""
|
||||
END
|
||||
|
||||
BOOLEAN B_IVADOVC
|
||||
BEGIN
|
||||
PROMPT 80 14 ""
|
||||
PROMPT 94 10 ""
|
||||
FIELD BIVADOVC
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_DEBPREC 16 2
|
||||
BEGIN
|
||||
PROMPT 1 15 "Debito precedente "
|
||||
PROMPT 1 12 "Debito precedente "
|
||||
FIELD DEBPREC
|
||||
FLAGS "D"
|
||||
FLAGS ""
|
||||
END
|
||||
|
||||
BOOLEAN B_DEBPREC
|
||||
BEGIN
|
||||
PROMPT 45 15 ""
|
||||
PROMPT 45 12 ""
|
||||
FIELD BDEBPREC
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_CREPREC 16 2
|
||||
BEGIN
|
||||
PROMPT 1 16 "Credito precedente "
|
||||
PROMPT 50 12 "Credito precedente "
|
||||
FIELD CREPREC
|
||||
FLAGS "D"
|
||||
FLAGS ""
|
||||
END
|
||||
|
||||
BOOLEAN B_CREPREC
|
||||
BEGIN
|
||||
PROMPT 45 16 ""
|
||||
PROMPT 94 12 ""
|
||||
FIELD BCREPREC
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_INTLIQTRI 16 2
|
||||
BEGIN
|
||||
PROMPT 1 13 "Interessi liq. trim. "
|
||||
FIELD INTLIQTRI
|
||||
FLAGS ""
|
||||
END
|
||||
|
||||
BOOLEAN B_INTLIQTRI
|
||||
BEGIN
|
||||
PROMPT 45 13 ""
|
||||
FIELD BINTLIQTRI
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_CREAPREC 16 2
|
||||
BEGIN
|
||||
PROMPT 1 17 "Credito anno precedente"
|
||||
PROMPT 50 13 "Credito anno precedente"
|
||||
FIELD CREAPREC
|
||||
FLAGS "D"
|
||||
FLAGS ""
|
||||
END
|
||||
|
||||
BOOLEAN B_CREAPREC
|
||||
BEGIN
|
||||
PROMPT 45 17 ""
|
||||
PROMPT 94 13 ""
|
||||
FIELD BCREAPREC
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_ACCDOV 16 2
|
||||
BEGIN
|
||||
PROMPT 1 14 "Acconto dovuto "
|
||||
FIELD ACCDOV
|
||||
FLAGS ""
|
||||
END
|
||||
|
||||
BOOLEAN B_ACCDOV
|
||||
BEGIN
|
||||
PROMPT 45 14 ""
|
||||
FIELD BACCDOV
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_VEAUE 16 2
|
||||
BEGIN
|
||||
PROMPT 1 18 "Versamenti auto UE "
|
||||
PROMPT 50 14 "Versamenti auto UE "
|
||||
FIELD VEAUE
|
||||
FLAGS "D"
|
||||
FLAGS ""
|
||||
END
|
||||
|
||||
BOOLEAN B_VEAUE
|
||||
BEGIN
|
||||
PROMPT 45 18 ""
|
||||
PROMPT 94 14 ""
|
||||
FIELD BVEAUE
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_CREIMP 16 2
|
||||
BEGIN
|
||||
PROMPT 1 19 "Crediti di imposta "
|
||||
PROMPT 50 15 "Crediti di imposta "
|
||||
FIELD CREIMP
|
||||
FLAGS "D"
|
||||
FLAGS ""
|
||||
END
|
||||
|
||||
BOOLEAN B_CREIMP
|
||||
BEGIN
|
||||
PROMPT 45 19 ""
|
||||
PROMPT 94 15 ""
|
||||
FIELD BCREIMP
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_INTLIQTRI 16 2
|
||||
BEGIN
|
||||
PROMPT 1 20 "Interessi liq. trim. "
|
||||
FIELD INTLIQTRI
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
BOOLEAN B_INTLIQTRI
|
||||
BEGIN
|
||||
PROMPT 45 20 ""
|
||||
FIELD BINTLIQTRI
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_ACCDOV 16 2
|
||||
BEGIN
|
||||
PROMPT 1 21 "Acconto dovuto "
|
||||
FIELD ACCDOV
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
BOOLEAN B_ACCDOV
|
||||
BEGIN
|
||||
PROMPT 45 21 ""
|
||||
FIELD BACCDOV
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_IVAVER 16 2
|
||||
BEGIN
|
||||
PROMPT 1 22 "IVA da versare "
|
||||
FIELD IVAVER
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
BOOLEAN B_IVAVER
|
||||
BEGIN
|
||||
PROMPT 45 22 ""
|
||||
FIELD BIVAVER
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_IVAVERC 16 2
|
||||
BEGIN
|
||||
PROMPT 50 22 "o a credito"
|
||||
FIELD IVAVERC
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
BOOLEAN B_IVAVERC
|
||||
BEGIN
|
||||
PROMPT 80 22 ""
|
||||
FIELD BIVAVERC
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_RETTIFICHE 16 2
|
||||
BEGIN
|
||||
PROMPT 1 23 "Rettifiche "
|
||||
PROMPT 1 16 "Rettifiche "
|
||||
FIELD RETTIFICHE
|
||||
FLAGS "D"
|
||||
FLAGS ""
|
||||
END
|
||||
|
||||
BOOLEAN B_RETTIFICHE
|
||||
BEGIN
|
||||
PROMPT 45 23 ""
|
||||
PROMPT 45 16 ""
|
||||
FIELD BRETTIFICH
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_VARIMP 16 2
|
||||
BEGIN
|
||||
PROMPT 1 24 "Variazioni d'imposta "
|
||||
PROMPT 50 16 "Variazioni d'imposta "
|
||||
FIELD VARIMP
|
||||
FLAGS "D"
|
||||
FLAGS ""
|
||||
END
|
||||
|
||||
BOOLEAN B_VARIMP
|
||||
BEGIN
|
||||
PROMPT 45 24 ""
|
||||
PROMPT 94 16 ""
|
||||
FIELD BVARIMP
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_RIMBORSI 16 2
|
||||
BEGIN
|
||||
PROMPT 1 25 "Rimborsi "
|
||||
PROMPT 1 17 "Rimborsi "
|
||||
FIELD RIMBORSI
|
||||
FLAGS "D"
|
||||
FLAGS ""
|
||||
END
|
||||
|
||||
BOOLEAN B_RIMBORSI
|
||||
BEGIN
|
||||
PROMPT 45 25 ""
|
||||
PROMPT 45 17 ""
|
||||
FIELD BRIMBORSI
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_IMPNOVER 16 2
|
||||
BEGIN
|
||||
PROMPT 1 26 "Imposta non versata "
|
||||
FIELD IMPNOVER
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
BOOLEAN B_IMPNOVER
|
||||
BEGIN
|
||||
PROMPT 45 26 ""
|
||||
FIELD BIMPNOVER
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_CRESPEC 16 2
|
||||
BEGIN
|
||||
PROMPT 1 27 "Crediti speciali "
|
||||
PROMPT 50 17 "Crediti speciali "
|
||||
FIELD CRESPEC
|
||||
FLAGS "D"
|
||||
FLAGS ""
|
||||
END
|
||||
|
||||
BOOLEAN B_CRESPEC
|
||||
BEGIN
|
||||
PROMPT 45 27 ""
|
||||
PROMPT 94 17 ""
|
||||
FIELD BCRESPEC
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_VEREFF 16 2
|
||||
NUMBER F_IVAVER 16 2
|
||||
BEGIN
|
||||
PROMPT 1 28 "Versamenti effettuati "
|
||||
FIELD VEREFF
|
||||
PROMPT 1 19 "IVA da versare "
|
||||
FIELD IVAVER
|
||||
FLAGS ""
|
||||
END
|
||||
|
||||
BOOLEAN B_IVAVER
|
||||
BEGIN
|
||||
PROMPT 45 19 ""
|
||||
FIELD BIVAVER
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
BOOLEAN B_VEREFF
|
||||
NUMBER F_IVAVERC 16 2
|
||||
BEGIN
|
||||
PROMPT 45 28 ""
|
||||
FIELD BVEREFF
|
||||
PROMPT 50 19 "o a credito "
|
||||
FIELD IVAVERC
|
||||
FLAGS ""
|
||||
END
|
||||
|
||||
BOOLEAN B_IVAVERC
|
||||
BEGIN
|
||||
PROMPT 94 19 ""
|
||||
FIELD BIVAVERC
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
/* Campi non visualizzati ma che vengono salvati lo stesso! */
|
||||
|
||||
NUMBER F_IMPNOVER 1 1
|
||||
BEGIN
|
||||
PROMPT 50 19 "Imposta non versata"
|
||||
FIELD IMPNOVER
|
||||
FLAGS "H"
|
||||
END
|
||||
|
||||
NUMBER F_VEREFF 1 1
|
||||
BEGIN
|
||||
PROMPT 50 19 "Versamenti effettuati"
|
||||
FIELD VEREFF
|
||||
FLAGS "H"
|
||||
END
|
||||
|
||||
|
||||
ENDMASK
|
||||
|
@ -10,7 +10,7 @@
|
||||
#include <utility.h> // get_iva_sirio()
|
||||
|
||||
#define TIPO_FILE "DF"
|
||||
#define TFBASE "tf"
|
||||
#define TFBASE "ModuliSirio"
|
||||
|
||||
#define CODICE_FORNITURA "IVP17"
|
||||
|
||||
@ -56,6 +56,7 @@ class TIvaSend_msk : public TAutomask
|
||||
bool mese;
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
public:
|
||||
bool checkVariables();
|
||||
bool isMese() { return mese; }
|
||||
TIvaSend_msk() : TAutomask("tf0500a"){}
|
||||
};
|
||||
@ -123,31 +124,57 @@ bool TIvaSend_msk::on_field_event(TOperable_field& o, TField_event e, long jolly
|
||||
}
|
||||
}
|
||||
break;
|
||||
case F_DAMESE:
|
||||
if(e == fe_modify)
|
||||
set(F_AMESE, get_int(F_DAMESE)+2);
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TIvaSend_msk::checkVariables()
|
||||
{
|
||||
if(get(F_ANNO).empty())
|
||||
{
|
||||
error_box("Inserire un anno di liquidazione");
|
||||
return false;
|
||||
}
|
||||
if((mese && get(F_DAMESE).empty() && get(F_AMESE).empty()) || (!mese && get(F_DATRIMESTRE).empty() && get(F_ATRIMESTRE).empty()))
|
||||
{
|
||||
error_box("Inserisci un periodo");
|
||||
return false;
|
||||
}
|
||||
if((mese && (get_int(F_DAMESE) > get_int(F_AMESE))) || (!mese &&(get_int(F_DATRIMESTRE) > get_int(F_ATRIMESTRE))))
|
||||
{
|
||||
error_box("Date immesse non corrette");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
class TIvaSend_app : public TSkeleton_application
|
||||
{
|
||||
void generateNSend(TIvaSend_msk& msk) { generate(msk); send(); }
|
||||
void generate(TIvaSend_msk& msk);
|
||||
void generateNSend(TIvaSend_msk& msk) { generate(msk) && send(); }
|
||||
bool generate(TIvaSend_msk& msk);
|
||||
TToken_string getTestata(TIvaSend_msk& msk);
|
||||
void send();
|
||||
bool send();
|
||||
public:
|
||||
virtual void main_loop();
|
||||
};
|
||||
|
||||
void TIvaSend_app::generate(TIvaSend_msk& msk)
|
||||
|
||||
|
||||
bool TIvaSend_app::generate(TIvaSend_msk& msk)
|
||||
{
|
||||
if(!msk.checkVariables())
|
||||
return false;
|
||||
ofstream file;
|
||||
TFilename path(msk.get(F_PATH));
|
||||
|
||||
TRectype rowLim = getLim(msk.get_int(F_ANNO), msk.isMese() ? msk.get_int(F_DAMESE) : msk.get_int(F_DATRIMESTRE) * 3);
|
||||
|
||||
TRectype rowLiq = getLiq(msk.get_int(F_ANNO), msk.isMese() ? msk.get_int(F_DAMESE) : msk.get_int(F_DATRIMESTRE) * 3);
|
||||
TRectype rowLim = getLim(msk.get_int(F_ANNO), msk.isMese() ? msk.get_int(F_DAMESE) : (((msk.get_int(F_DATRIMESTRE) - 1) * 3) + 1));
|
||||
|
||||
// Decido di utilizzare I10 come numero progressivo di trasmissione
|
||||
int prog = rowLim.get_int("I10"); prog++;
|
||||
int prog = rowLim.get_int("I14"); prog++;
|
||||
|
||||
TString nomeFile; nomeFile << "IT" << getAnagDitta().get("PAIV") << TIPO_FILE << prog << ".csv";
|
||||
|
||||
@ -159,10 +186,12 @@ void TIvaSend_app::generate(TIvaSend_msk& msk)
|
||||
|
||||
TToken_string testata(getTestata(msk));
|
||||
|
||||
int start = msk.isMese() ? msk.get_int(F_DAMESE) : msk.get_int(F_DATRIMESTRE);
|
||||
int end = msk.isMese() ? msk.get_int(F_AMESE) : msk.get_int(F_ATRIMESTRE);
|
||||
int start = msk.isMese() ? msk.get_int(F_DAMESE) : (((msk.get_int(F_DATRIMESTRE) - 1) * 3) + 1);
|
||||
int end = msk.isMese() ? msk.get_int(F_AMESE) : (((msk.get_int(F_ATRIMESTRE) - 1) * 3) + 1);
|
||||
for(; start <= end; start++)
|
||||
{
|
||||
rowLim = getLim(msk.get_int(F_ANNO), start); // rowLim viene già usata sopra
|
||||
TRectype rowLiq = getLiq(msk.get_int(F_ANNO), start);
|
||||
|
||||
TToken_string riga(testata);
|
||||
if(msk.isMese())
|
||||
@ -213,8 +242,9 @@ void TIvaSend_app::generate(TIvaSend_msk& msk)
|
||||
if(rowLim.rewrite(TLocalisamfile(LF_TAB)) != NOERR)
|
||||
{
|
||||
error_box("Errore aggiornamento progressivo");
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
TToken_string TIvaSend_app::getTestata(TIvaSend_msk& msk)
|
||||
@ -245,10 +275,10 @@ TToken_string TIvaSend_app::getTestata(TIvaSend_msk& msk)
|
||||
return testata;
|
||||
}
|
||||
|
||||
void TIvaSend_app::send()
|
||||
bool TIvaSend_app::send()
|
||||
{
|
||||
TFilename tmp;
|
||||
tmp = TFBASE"\\SiaggTFCAMPO.jar";
|
||||
tmp = TFBASE"\\ModuliSirio.jar";
|
||||
tmp.make_absolute_path();
|
||||
|
||||
DIRECTORY old_dir; xvt_fsys_get_dir(&old_dir);
|
||||
@ -256,11 +286,15 @@ void TIvaSend_app::send()
|
||||
xvt_fsys_set_dir(&new_dir);
|
||||
const bool good = goto_url(tmp);
|
||||
if (good)
|
||||
xvt_sys_sleep(3000);
|
||||
{
|
||||
xvt_sys_sleep(3000);
|
||||
}
|
||||
else
|
||||
{
|
||||
error_box(FR("Impossibile eseguire Java -jar %s"), (const char*)tmp);
|
||||
}
|
||||
xvt_fsys_set_dir(&old_dir);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void TIvaSend_app::main_loop()
|
||||
|
@ -1,6 +1,7 @@
|
||||
#include "tf0500a.h"
|
||||
|
||||
TOOLBAR "topbar" 0 0 0 2
|
||||
|
||||
#include <elabar.h>
|
||||
ENDPAGE
|
||||
|
||||
@ -25,7 +26,6 @@ BEGIN
|
||||
OUTPUT F_CODDITTA CODDITTA
|
||||
OUTPUT F_RAGSOC RAGSOC
|
||||
CHECKTYPE REQUIRED
|
||||
KEY 1
|
||||
END
|
||||
|
||||
STRING F_RAGSOC 50
|
||||
@ -33,7 +33,7 @@ BEGIN
|
||||
PROMPT 20 2 ""
|
||||
USE LF_NDITTE KEY 2
|
||||
INPUT RAGSOC F_RAGSOC
|
||||
DISPLAY "Ragione Sociale@60" RAGSOC
|
||||
DISPLAY "Ragione Sociale@60" RAGSOC
|
||||
DISPLAY "Codice" CODDITTA
|
||||
COPY OUTPUT F_CODDITTA
|
||||
CHECKTYPE REQUIRED
|
||||
@ -51,7 +51,7 @@ BEGIN
|
||||
OUTPUT F_ANNO ANNO
|
||||
OUTPUT F_DAMESE MESE
|
||||
OUTPUT F_DATRIMESTRE TRIMESTRE
|
||||
CHECKTYPE REQUIRED
|
||||
OUTPUT F_ATRIMESTRE TRIMESTRE
|
||||
FLAGS ""
|
||||
WARNING "Inserire un anno di liquidazione"
|
||||
END
|
||||
@ -60,6 +60,8 @@ NUMBER F_DAMESE 2
|
||||
BEGIN
|
||||
PROMPT 20 3 "Da mese "
|
||||
SHEET " |Mese@30"
|
||||
INPUT F_DAMESE
|
||||
OUTPUT F_DAMESE
|
||||
ITEM "|"
|
||||
ITEM "1|Gennaio"
|
||||
ITEM "2|Febbraio"
|
||||
@ -82,6 +84,8 @@ NUMBER F_AMESE 2
|
||||
BEGIN
|
||||
PROMPT 40 3 "A mese "
|
||||
SHEET " |Mese@30"
|
||||
INPUT F_AMESE
|
||||
OUTPUT F_AMESE
|
||||
ITEM "|"
|
||||
ITEM "1|Gennaio"
|
||||
ITEM "2|Febbraio"
|
||||
@ -104,6 +108,8 @@ NUMBER F_DATRIMESTRE 2
|
||||
BEGIN
|
||||
PROMPT 20 4 "Da trimestre "
|
||||
SHEET " |Trimestre@30"
|
||||
INPUT F_DATRIMESTRE
|
||||
OUTPUT F_DATRIMESTRE
|
||||
ITEM "|"
|
||||
ITEM "1|Primo"
|
||||
ITEM "2|Secondo"
|
||||
@ -117,6 +123,8 @@ NUMBER F_ATRIMESTRE 2
|
||||
BEGIN
|
||||
PROMPT 40 4 "A trimestre "
|
||||
SHEET " |Trimestre@30"
|
||||
INPUT F_ATRIMESTRE
|
||||
OUTPUT F_ATRIMESTRE
|
||||
ITEM "|"
|
||||
ITEM "1|Primo"
|
||||
ITEM "2|Secondo"
|
||||
@ -126,5 +134,12 @@ BEGIN
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING DLG_PROFILE 256
|
||||
BEGIN
|
||||
PROMPT 1 -1 "Profilo "
|
||||
PSELECT
|
||||
FLAGS "H"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
ENDMASK
|
@ -1,8 +1,8 @@
|
||||
[TFMENU_001]
|
||||
Caption = "Trasferimento Fatture"
|
||||
Picture = <ve01>
|
||||
Module = tf
|
||||
Flags = "F"
|
||||
//Item_01 = "Trasferimento Fatture", "tf0 -0", "F"
|
||||
Item_02 = "Liquidazione IVA Periodica", "tf0 -1", "F"
|
||||
Item_03 = "Invio Liquidazione IVA Periodica", "tf -4", "F"
|
||||
Picture = <cg01>
|
||||
Module = 50
|
||||
Flags = ""
|
||||
//Item_01 = "Trasferimento Fatture", "tf0 -0", ""
|
||||
Item_02 = "Liquidazione IVA Periodica", "tf0 -1", ""
|
||||
Item_03 = "Invio Liquidazione IVA Periodica", "tf0 -4", ""
|
||||
|
Loading…
x
Reference in New Issue
Block a user