Corretta ricerca dei registri in seguito al zerofilling dell'anno
git-svn-id: svn://10.65.10.50/trunk@228 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
1d414b2abc
commit
5c70586f90
222
cg/cg2100a.uml
222
cg/cg2100a.uml
@ -1,111 +1,111 @@
|
||||
#include "cg2100.h"
|
||||
|
||||
TOOLBAR "" 0 20 0 2
|
||||
#include <toolbar.h>
|
||||
ENDPAGE
|
||||
|
||||
PAGE "OPERAZIONE DI PRIMA NOTA" -1 -1 77 8
|
||||
|
||||
GROUPBOX DLG_NULL 78 3
|
||||
BEGIN
|
||||
PROMPT 1 0 ""
|
||||
END
|
||||
|
||||
NUMBER F_CODDITTA 5
|
||||
BEGIN
|
||||
PROMPT 3 1 "Ditta "
|
||||
FLAGS "FRD"
|
||||
USE LF_NDITTE KEY 1
|
||||
CHECKTYPE REQUIRED
|
||||
INPUT CODDITTA F_CODDITTA
|
||||
DISPLAY "Codice" CODDITTA
|
||||
DISPLAY "Ragione sociale @50" RAGSOC
|
||||
OUTPUT F_RAGSOC RAGSOC
|
||||
END
|
||||
|
||||
STRING F_RAGSOC 50
|
||||
BEGIN
|
||||
PROMPT 17 1 "Ragione "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_NUMREG 6
|
||||
BEGIN
|
||||
PROMPT 1 4 "Operazione n. "
|
||||
FLAGS "R"
|
||||
FIELD LF_MOV->NUMREG
|
||||
USE LF_MOV
|
||||
INPUT NUMREG F_NUMREG
|
||||
DISPLAY "Numero@6" NUMREG
|
||||
DISPLAY "Data@10" DATAREG
|
||||
DISPLAY "Causale" CODCAUS
|
||||
DISPLAY "Documento" NUMDOC
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_NUMREG NUMREG
|
||||
KEY 1
|
||||
END
|
||||
|
||||
DATE F_DATAREG
|
||||
BEGIN
|
||||
PROMPT 1 6 "Data dell'operazione "
|
||||
CHECKTYPE REQUIRED
|
||||
FLAGS "A"
|
||||
WARNING "E' obbligatorio specificare la data dell'operazione"
|
||||
HELP "Data in cui viene registrata l'operazione"
|
||||
MESSAGE COPY,F_ANNOIVA,7,10
|
||||
END
|
||||
|
||||
NUMBER F_ANNOIVA 4
|
||||
BEGIN
|
||||
PROMPT 51 6 "Anno IVA "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
DATE F_DATACOMP
|
||||
BEGIN
|
||||
PROMPT 1 7 "Data di competenza "
|
||||
CHECKTYPE REQUIRED
|
||||
WARNING "E' obbligatorio specificare la data di competenza"
|
||||
FLAGS "A"
|
||||
END
|
||||
|
||||
NUMBER F_ANNOES 4
|
||||
BEGIN
|
||||
PROMPT 51 7 "Anno di esercizio "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_CODCAUS 3
|
||||
BEGIN
|
||||
PROMPT 1 9 "Causale "
|
||||
FLAGS "U"
|
||||
FIELD LF_MOV->CODCAUS
|
||||
USE LF_CAUSALI KEY 1
|
||||
INPUT CODCAUS F_CODCAUS
|
||||
DISPLAY "Codice" CODCAUS
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
DISPLAY "Tipo" TIPODOC
|
||||
DISPLAY "Registro" REG
|
||||
OUTPUT F_CODCAUS CODCAUS
|
||||
OUTPUT F_DESCRCAUS DESCR
|
||||
ADD RUN cg0 -4
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_DESCRCAUS 50
|
||||
BEGIN
|
||||
PROMPT 23 9 ""
|
||||
USE LF_CAUSALI KEY 2
|
||||
CHECKTYPE NORMAL
|
||||
INPUT DESCR F_DESCRCAUS
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
DISPLAY "Codice" CODCAUS
|
||||
DISPLAY "Tipo" TIPODOC
|
||||
DISPLAY "Registro" REG
|
||||
COPY OUTPUT F_CODCAUS
|
||||
ADD RUN cg0 -4
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
#include "cg2100.h"
|
||||
|
||||
TOOLBAR "" 0 20 0 2
|
||||
#include <toolbar.h>
|
||||
ENDPAGE
|
||||
|
||||
PAGE "OPERAZIONE DI PRIMA NOTA" -1 -1 77 8
|
||||
|
||||
GROUPBOX DLG_NULL 78 3
|
||||
BEGIN
|
||||
PROMPT 1 0 ""
|
||||
END
|
||||
|
||||
NUMBER F_CODDITTA 5
|
||||
BEGIN
|
||||
PROMPT 3 1 "Ditta "
|
||||
FLAGS "FRD"
|
||||
USE LF_NDITTE KEY 1
|
||||
CHECKTYPE REQUIRED
|
||||
INPUT CODDITTA F_CODDITTA
|
||||
DISPLAY "Codice" CODDITTA
|
||||
DISPLAY "Ragione sociale @50" RAGSOC
|
||||
OUTPUT F_RAGSOC RAGSOC
|
||||
END
|
||||
|
||||
STRING F_RAGSOC 50
|
||||
BEGIN
|
||||
PROMPT 17 1 "Ragione "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_NUMREG 6
|
||||
BEGIN
|
||||
PROMPT 1 4 "Operazione n. "
|
||||
FLAGS "R"
|
||||
FIELD LF_MOV->NUMREG
|
||||
USE LF_MOV
|
||||
INPUT NUMREG F_NUMREG
|
||||
DISPLAY "Numero@6" NUMREG
|
||||
DISPLAY "Data@10" DATAREG
|
||||
DISPLAY "Causale" CODCAUS
|
||||
DISPLAY "Documento" NUMDOC
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_NUMREG NUMREG
|
||||
KEY 1
|
||||
END
|
||||
|
||||
DATE F_DATAREG
|
||||
BEGIN
|
||||
PROMPT 1 6 "Data dell'operazione "
|
||||
CHECKTYPE REQUIRED
|
||||
FLAGS "A"
|
||||
WARNING "E' obbligatorio specificare la data dell'operazione"
|
||||
HELP "Data in cui viene registrata l'operazione"
|
||||
MESSAGE COPY,F_ANNOIVA,7,10
|
||||
END
|
||||
|
||||
NUMBER F_ANNOIVA 4
|
||||
BEGIN
|
||||
PROMPT 51 6 "Anno IVA "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
DATE F_DATACOMP
|
||||
BEGIN
|
||||
PROMPT 1 7 "Data di competenza "
|
||||
CHECKTYPE REQUIRED
|
||||
WARNING "E' obbligatorio specificare la data di competenza"
|
||||
FLAGS "A"
|
||||
END
|
||||
|
||||
NUMBER F_ANNOES 4
|
||||
BEGIN
|
||||
PROMPT 51 7 "Anno di esercizio "
|
||||
FLAGS "DRZ"
|
||||
END
|
||||
|
||||
STRING F_CODCAUS 3
|
||||
BEGIN
|
||||
PROMPT 1 9 "Causale "
|
||||
FLAGS "U"
|
||||
FIELD LF_MOV->CODCAUS
|
||||
USE LF_CAUSALI KEY 1
|
||||
INPUT CODCAUS F_CODCAUS
|
||||
DISPLAY "Codice" CODCAUS
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
DISPLAY "Tipo" TIPODOC
|
||||
DISPLAY "Registro" REG
|
||||
OUTPUT F_CODCAUS CODCAUS
|
||||
OUTPUT F_DESCRCAUS DESCR
|
||||
ADD RUN cg0 -4
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_DESCRCAUS 50
|
||||
BEGIN
|
||||
PROMPT 23 9 ""
|
||||
USE LF_CAUSALI KEY 2
|
||||
CHECKTYPE NORMAL
|
||||
INPUT DESCR F_DESCRCAUS
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
DISPLAY "Codice" CODCAUS
|
||||
DISPLAY "Tipo" TIPODOC
|
||||
DISPLAY "Registro" REG
|
||||
COPY OUTPUT F_CODCAUS
|
||||
ADD RUN cg0 -4
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
@ -55,7 +55,7 @@ NUMBER F_ANNOES 4
|
||||
BEGIN
|
||||
PROMPT 57 4 "Esercizio "
|
||||
FIELD ANNOES
|
||||
FLAGS "D"
|
||||
FLAGS "DRZ"
|
||||
END
|
||||
|
||||
DATE F_DATADOC
|
||||
|
@ -95,7 +95,7 @@ NUMBER F_ANNOES 4
|
||||
BEGIN
|
||||
PROMPT 32 4 "Anno esercizio "
|
||||
FIELD LF_MOV->ANNOES
|
||||
FLAGS "DG"
|
||||
FLAGS "DGRZ"
|
||||
MESSAGE COPY,H_ANNOES
|
||||
END
|
||||
|
||||
@ -202,7 +202,7 @@ BEGIN
|
||||
PROMPT 51 9 "Riepilogo fino al n. "
|
||||
FIELD LF_MOV->UPROTIVA
|
||||
NUM_EXPR (#F_RIEPILOGO==0)||(#F_RIEPILOGO>=#F_PROTIVA)
|
||||
WARNING "Il riepilogo non puo' essere inferiore al protocollo IVA"
|
||||
WARNING "Inserire un riepilogo non inferiore al protocollo IVA"
|
||||
END
|
||||
|
||||
STRING F_CLIFO 1
|
||||
@ -504,7 +504,7 @@ END
|
||||
NUMBER H_ANNOES 4
|
||||
BEGIN
|
||||
PROMPT 61 1 "Esercizio "
|
||||
FLAGS "D"
|
||||
FLAGS "DRZ"
|
||||
END
|
||||
|
||||
STRING H_CODCAUS 3
|
||||
|
@ -20,7 +20,8 @@ int date2esc(const TDate& d, int* prevesc)
|
||||
{
|
||||
const TDate ia(esc.get("D0")); // Data inizio esercizio
|
||||
const TDate fa(esc.get("D1")); // Data fine esercizio
|
||||
const anno = esc.get_int("CODTAB");
|
||||
TString16 sanno(esc.get_int("CODTAB")); sanno.cut(4);
|
||||
const int anno = atoi(sanno);
|
||||
if (d >= ia && d <= fa)
|
||||
return anno;
|
||||
if (prevesc) *prevesc = anno;
|
||||
|
@ -427,18 +427,22 @@ real TPrimanota_application::calcola_saldo() const
|
||||
// Certified 90%
|
||||
bool TPrimanota_application::cg_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
if (k == K_ENTER)
|
||||
if ((k == K_TAB && !f.mask().is_running()) || k == K_ENTER)
|
||||
{
|
||||
TSheet_field& cg = app().cgs();
|
||||
real saldo = app().calcola_saldo();
|
||||
if (saldo != ZERO)
|
||||
const real saldo = app().calcola_saldo();
|
||||
|
||||
if (k == K_ENTER)
|
||||
{
|
||||
const char* ss = saldo.string(".");
|
||||
return f.error_box("Il movimento e' sbilanciato di %s lire.", ss);
|
||||
}
|
||||
else
|
||||
if (app().get_cgs_imp(0).valore() == ZERO)
|
||||
return f.error_box("Il movimento non ha una prima riga contabile valida!");
|
||||
if (saldo != ZERO)
|
||||
{
|
||||
const char* ss = saldo.string(".");
|
||||
return f.error_box("Il movimento e' sbilanciato di %s lire.", ss);
|
||||
}
|
||||
else
|
||||
if (app().get_cgs_imp(0).valore() == ZERO)
|
||||
return f.error_box("Il movimento non ha una prima riga contabile valida!");
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
@ -712,20 +716,22 @@ bool TPrimanota_application::iva_notify(int r, KEY k)
|
||||
// Handler dello sheet di contabilita'
|
||||
// Certified 90%
|
||||
bool TPrimanota_application::iva_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
if (k != K_ENTER) return TRUE;
|
||||
|
||||
const real imp = app().calcola_imp();
|
||||
const real tot = app().totale_documento();
|
||||
|
||||
if (imp != tot)
|
||||
{
|
||||
if ((k == K_TAB && !f.mask().is_running()) || k == K_ENTER)
|
||||
{
|
||||
TString16 t(tot.string("."));
|
||||
TString16 i(imp.string("."));
|
||||
return error_box("La somma del totale documento e delle ritenute (%s) e' diverso dalla "
|
||||
"somma degli imponibili e delle imposte (%s)", (const char*)t, (const char*)i);
|
||||
}
|
||||
|
||||
const real imp = app().calcola_imp();
|
||||
const real tot = app().totale_documento();
|
||||
if (k == K_ENTER)
|
||||
{
|
||||
if (imp != tot)
|
||||
{
|
||||
TString16 t(tot.string("."));
|
||||
TString16 i(imp.string("."));
|
||||
return error_box("La somma del totale documento e delle ritenute (%s) e' diverso dalla "
|
||||
"somma degli imponibili e delle imposte (%s)", (const char*)t, (const char*)i);
|
||||
}
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -1197,6 +1203,7 @@ bool TPrimanota_application::solaiva_handler(TMask_field& f, KEY key)
|
||||
pi.setstatus(i+1);
|
||||
}
|
||||
app().fill_sheet(m);
|
||||
app().cgs().force_update();
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
|
@ -5,7 +5,6 @@
|
||||
|
||||
#include <causali.h>
|
||||
|
||||
|
||||
const char* iva2name(TipoIVA iva)
|
||||
{
|
||||
const char* i;
|
||||
@ -48,8 +47,7 @@ bool TRegistro::read(const char* cod, int year)
|
||||
TTable reg("REG");
|
||||
if (cod && *cod > ' ')
|
||||
{
|
||||
TString16 chiave;
|
||||
chiave << year << cod;
|
||||
TString16 chiave; chiave.format("%04d%s", year, cod);
|
||||
reg.put("CODTAB", chiave);
|
||||
err = reg.read();
|
||||
}
|
||||
@ -64,7 +62,15 @@ bool TRegistro::read(const char* cod, int year)
|
||||
|
||||
|
||||
int TRegistro::year() const
|
||||
{ return ok() ? atoi(_rec.get("CODTAB")) : 0; }
|
||||
{
|
||||
int anno = 0;
|
||||
if (ok())
|
||||
{
|
||||
TString16 sanno(_rec.get("CODTAB")); sanno.cut(4);
|
||||
anno = atoi(sanno);
|
||||
}
|
||||
return anno;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -120,12 +126,9 @@ bool TRegistro::read_att()
|
||||
|
||||
bool TRegistro::agenzia_viaggi()
|
||||
{
|
||||
if (iva() != iva_vendite)
|
||||
return FALSE;
|
||||
|
||||
bool av = FALSE;
|
||||
if (read_att()) av = _att.get_bool("REG74TER");
|
||||
|
||||
if (iva() == iva_vendite && read_att())
|
||||
av = _att.get_bool("REG74TER");
|
||||
return av;
|
||||
}
|
||||
|
||||
@ -176,7 +179,7 @@ bool TLibro_giornale::read(int y)
|
||||
TTable reg("REG");
|
||||
bool found = FALSE;
|
||||
|
||||
TString16 anno; anno.format("%4d", y);
|
||||
TString16 anno; anno.format("%04d", y);
|
||||
|
||||
reg.setkey(1);
|
||||
reg.put("CODTAB", anno); // Cerca il primo registro dell'anno y
|
||||
@ -197,22 +200,24 @@ bool TLibro_giornale::read(int y)
|
||||
return found;
|
||||
}
|
||||
|
||||
TDate TLibro_giornale::global_last_print() const
|
||||
{
|
||||
TTable reg("REG");
|
||||
reg.setkey(1);
|
||||
/*
|
||||
TDate TLibro_giornale::global_last_print() const
|
||||
{
|
||||
TTable reg("REG");
|
||||
reg.setkey(1);
|
||||
|
||||
TDate last(botime);
|
||||
for (int err = reg.first(); err == NOERR; err = reg.next())
|
||||
{
|
||||
if (reg.get_int("I0") == libro_giornale)
|
||||
{
|
||||
const TDate l(reg.get("D3"));
|
||||
if (l > last) last = l;
|
||||
}
|
||||
}
|
||||
return last;
|
||||
}
|
||||
TDate last(botime);
|
||||
for (int err = reg.first(); err == NOERR; err = reg.next())
|
||||
{
|
||||
if (reg.get_int("I0") == libro_giornale)
|
||||
{
|
||||
const TDate l(reg.get("D3"));
|
||||
if (l > last) last = l;
|
||||
}
|
||||
}
|
||||
return last;
|
||||
}
|
||||
*/
|
||||
|
||||
TLibro_giornale::TLibro_giornale(int y)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user