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:
guy 1994-09-13 16:42:24 +00:00
parent 1d414b2abc
commit 5c70586f90
6 changed files with 176 additions and 163 deletions

View File

@ -1,111 +1,111 @@
#include "cg2100.h" #include "cg2100.h"
TOOLBAR "" 0 20 0 2 TOOLBAR "" 0 20 0 2
#include <toolbar.h> #include <toolbar.h>
ENDPAGE ENDPAGE
PAGE "OPERAZIONE DI PRIMA NOTA" -1 -1 77 8 PAGE "OPERAZIONE DI PRIMA NOTA" -1 -1 77 8
GROUPBOX DLG_NULL 78 3 GROUPBOX DLG_NULL 78 3
BEGIN BEGIN
PROMPT 1 0 "" PROMPT 1 0 ""
END END
NUMBER F_CODDITTA 5 NUMBER F_CODDITTA 5
BEGIN BEGIN
PROMPT 3 1 "Ditta " PROMPT 3 1 "Ditta "
FLAGS "FRD" FLAGS "FRD"
USE LF_NDITTE KEY 1 USE LF_NDITTE KEY 1
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
INPUT CODDITTA F_CODDITTA INPUT CODDITTA F_CODDITTA
DISPLAY "Codice" CODDITTA DISPLAY "Codice" CODDITTA
DISPLAY "Ragione sociale @50" RAGSOC DISPLAY "Ragione sociale @50" RAGSOC
OUTPUT F_RAGSOC RAGSOC OUTPUT F_RAGSOC RAGSOC
END END
STRING F_RAGSOC 50 STRING F_RAGSOC 50
BEGIN BEGIN
PROMPT 17 1 "Ragione " PROMPT 17 1 "Ragione "
FLAGS "D" FLAGS "D"
END END
NUMBER F_NUMREG 6 NUMBER F_NUMREG 6
BEGIN BEGIN
PROMPT 1 4 "Operazione n. " PROMPT 1 4 "Operazione n. "
FLAGS "R" FLAGS "R"
FIELD LF_MOV->NUMREG FIELD LF_MOV->NUMREG
USE LF_MOV USE LF_MOV
INPUT NUMREG F_NUMREG INPUT NUMREG F_NUMREG
DISPLAY "Numero@6" NUMREG DISPLAY "Numero@6" NUMREG
DISPLAY "Data@10" DATAREG DISPLAY "Data@10" DATAREG
DISPLAY "Causale" CODCAUS DISPLAY "Causale" CODCAUS
DISPLAY "Documento" NUMDOC DISPLAY "Documento" NUMDOC
DISPLAY "Descrizione@50" DESCR DISPLAY "Descrizione@50" DESCR
OUTPUT F_NUMREG NUMREG OUTPUT F_NUMREG NUMREG
KEY 1 KEY 1
END END
DATE F_DATAREG DATE F_DATAREG
BEGIN BEGIN
PROMPT 1 6 "Data dell'operazione " PROMPT 1 6 "Data dell'operazione "
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
FLAGS "A" FLAGS "A"
WARNING "E' obbligatorio specificare la data dell'operazione" WARNING "E' obbligatorio specificare la data dell'operazione"
HELP "Data in cui viene registrata l'operazione" HELP "Data in cui viene registrata l'operazione"
MESSAGE COPY,F_ANNOIVA,7,10 MESSAGE COPY,F_ANNOIVA,7,10
END END
NUMBER F_ANNOIVA 4 NUMBER F_ANNOIVA 4
BEGIN BEGIN
PROMPT 51 6 "Anno IVA " PROMPT 51 6 "Anno IVA "
FLAGS "D" FLAGS "D"
END END
DATE F_DATACOMP DATE F_DATACOMP
BEGIN BEGIN
PROMPT 1 7 "Data di competenza " PROMPT 1 7 "Data di competenza "
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
WARNING "E' obbligatorio specificare la data di competenza" WARNING "E' obbligatorio specificare la data di competenza"
FLAGS "A" FLAGS "A"
END END
NUMBER F_ANNOES 4 NUMBER F_ANNOES 4
BEGIN BEGIN
PROMPT 51 7 "Anno di esercizio " PROMPT 51 7 "Anno di esercizio "
FLAGS "D" FLAGS "DRZ"
END END
STRING F_CODCAUS 3 STRING F_CODCAUS 3
BEGIN BEGIN
PROMPT 1 9 "Causale " PROMPT 1 9 "Causale "
FLAGS "U" FLAGS "U"
FIELD LF_MOV->CODCAUS FIELD LF_MOV->CODCAUS
USE LF_CAUSALI KEY 1 USE LF_CAUSALI KEY 1
INPUT CODCAUS F_CODCAUS INPUT CODCAUS F_CODCAUS
DISPLAY "Codice" CODCAUS DISPLAY "Codice" CODCAUS
DISPLAY "Descrizione@50" DESCR DISPLAY "Descrizione@50" DESCR
DISPLAY "Tipo" TIPODOC DISPLAY "Tipo" TIPODOC
DISPLAY "Registro" REG DISPLAY "Registro" REG
OUTPUT F_CODCAUS CODCAUS OUTPUT F_CODCAUS CODCAUS
OUTPUT F_DESCRCAUS DESCR OUTPUT F_DESCRCAUS DESCR
ADD RUN cg0 -4 ADD RUN cg0 -4
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END END
STRING F_DESCRCAUS 50 STRING F_DESCRCAUS 50
BEGIN BEGIN
PROMPT 23 9 "" PROMPT 23 9 ""
USE LF_CAUSALI KEY 2 USE LF_CAUSALI KEY 2
CHECKTYPE NORMAL CHECKTYPE NORMAL
INPUT DESCR F_DESCRCAUS INPUT DESCR F_DESCRCAUS
DISPLAY "Descrizione@50" DESCR DISPLAY "Descrizione@50" DESCR
DISPLAY "Codice" CODCAUS DISPLAY "Codice" CODCAUS
DISPLAY "Tipo" TIPODOC DISPLAY "Tipo" TIPODOC
DISPLAY "Registro" REG DISPLAY "Registro" REG
COPY OUTPUT F_CODCAUS COPY OUTPUT F_CODCAUS
ADD RUN cg0 -4 ADD RUN cg0 -4
END END
ENDPAGE ENDPAGE
ENDMASK ENDMASK

View File

@ -55,7 +55,7 @@ NUMBER F_ANNOES 4
BEGIN BEGIN
PROMPT 57 4 "Esercizio " PROMPT 57 4 "Esercizio "
FIELD ANNOES FIELD ANNOES
FLAGS "D" FLAGS "DRZ"
END END
DATE F_DATADOC DATE F_DATADOC

View File

@ -95,7 +95,7 @@ NUMBER F_ANNOES 4
BEGIN BEGIN
PROMPT 32 4 "Anno esercizio " PROMPT 32 4 "Anno esercizio "
FIELD LF_MOV->ANNOES FIELD LF_MOV->ANNOES
FLAGS "DG" FLAGS "DGRZ"
MESSAGE COPY,H_ANNOES MESSAGE COPY,H_ANNOES
END END
@ -202,7 +202,7 @@ BEGIN
PROMPT 51 9 "Riepilogo fino al n. " PROMPT 51 9 "Riepilogo fino al n. "
FIELD LF_MOV->UPROTIVA FIELD LF_MOV->UPROTIVA
NUM_EXPR (#F_RIEPILOGO==0)||(#F_RIEPILOGO>=#F_PROTIVA) 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 END
STRING F_CLIFO 1 STRING F_CLIFO 1
@ -504,7 +504,7 @@ END
NUMBER H_ANNOES 4 NUMBER H_ANNOES 4
BEGIN BEGIN
PROMPT 61 1 "Esercizio " PROMPT 61 1 "Esercizio "
FLAGS "D" FLAGS "DRZ"
END END
STRING H_CODCAUS 3 STRING H_CODCAUS 3

View File

@ -20,7 +20,8 @@ int date2esc(const TDate& d, int* prevesc)
{ {
const TDate ia(esc.get("D0")); // Data inizio esercizio const TDate ia(esc.get("D0")); // Data inizio esercizio
const TDate fa(esc.get("D1")); // Data fine 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) if (d >= ia && d <= fa)
return anno; return anno;
if (prevesc) *prevesc = anno; if (prevesc) *prevesc = anno;

View File

@ -427,18 +427,22 @@ real TPrimanota_application::calcola_saldo() const
// Certified 90% // Certified 90%
bool TPrimanota_application::cg_handler(TMask_field& f, KEY k) 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(); TSheet_field& cg = app().cgs();
real saldo = app().calcola_saldo(); const real saldo = app().calcola_saldo();
if (saldo != ZERO)
if (k == K_ENTER)
{ {
const char* ss = saldo.string("."); if (saldo != ZERO)
return f.error_box("Il movimento e' sbilanciato di %s lire.", ss); {
} const char* ss = saldo.string(".");
else return f.error_box("Il movimento e' sbilanciato di %s lire.", ss);
if (app().get_cgs_imp(0).valore() == ZERO) }
return f.error_box("Il movimento non ha una prima riga contabile valida!"); else
if (app().get_cgs_imp(0).valore() == ZERO)
return f.error_box("Il movimento non ha una prima riga contabile valida!");
}
} }
return TRUE; return TRUE;
} }
@ -712,20 +716,22 @@ bool TPrimanota_application::iva_notify(int r, KEY k)
// Handler dello sheet di contabilita' // Handler dello sheet di contabilita'
// Certified 90% // Certified 90%
bool TPrimanota_application::iva_handler(TMask_field& f, KEY k) bool TPrimanota_application::iva_handler(TMask_field& f, KEY k)
{ {
if (k != K_ENTER) return TRUE; if ((k == K_TAB && !f.mask().is_running()) || k == K_ENTER)
const real imp = app().calcola_imp();
const real tot = app().totale_documento();
if (imp != tot)
{ {
TString16 t(tot.string(".")); const real imp = app().calcola_imp();
TString16 i(imp.string(".")); const real tot = app().totale_documento();
return error_box("La somma del totale documento e delle ritenute (%s) e' diverso dalla " if (k == K_ENTER)
"somma degli imponibili e delle imposte (%s)", (const char*)t, (const char*)i); {
} 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; return TRUE;
} }
@ -1197,6 +1203,7 @@ bool TPrimanota_application::solaiva_handler(TMask_field& f, KEY key)
pi.setstatus(i+1); pi.setstatus(i+1);
} }
app().fill_sheet(m); app().fill_sheet(m);
app().cgs().force_update();
} }
} }
return TRUE; return TRUE;

View File

@ -5,7 +5,6 @@
#include <causali.h> #include <causali.h>
const char* iva2name(TipoIVA iva) const char* iva2name(TipoIVA iva)
{ {
const char* i; const char* i;
@ -48,8 +47,7 @@ bool TRegistro::read(const char* cod, int year)
TTable reg("REG"); TTable reg("REG");
if (cod && *cod > ' ') if (cod && *cod > ' ')
{ {
TString16 chiave; TString16 chiave; chiave.format("%04d%s", year, cod);
chiave << year << cod;
reg.put("CODTAB", chiave); reg.put("CODTAB", chiave);
err = reg.read(); err = reg.read();
} }
@ -64,7 +62,15 @@ bool TRegistro::read(const char* cod, int year)
int TRegistro::year() const 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() bool TRegistro::agenzia_viaggi()
{ {
if (iva() != iva_vendite)
return FALSE;
bool av = 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; return av;
} }
@ -176,7 +179,7 @@ bool TLibro_giornale::read(int y)
TTable reg("REG"); TTable reg("REG");
bool found = FALSE; bool found = FALSE;
TString16 anno; anno.format("%4d", y); TString16 anno; anno.format("%04d", y);
reg.setkey(1); reg.setkey(1);
reg.put("CODTAB", anno); // Cerca il primo registro dell'anno y reg.put("CODTAB", anno); // Cerca il primo registro dell'anno y
@ -197,22 +200,24 @@ bool TLibro_giornale::read(int y)
return found; return found;
} }
TDate TLibro_giornale::global_last_print() const /*
{ TDate TLibro_giornale::global_last_print() const
TTable reg("REG"); {
reg.setkey(1); TTable reg("REG");
reg.setkey(1);
TDate last(botime); TDate last(botime);
for (int err = reg.first(); err == NOERR; err = reg.next()) for (int err = reg.first(); err == NOERR; err = reg.next())
{ {
if (reg.get_int("I0") == libro_giornale) if (reg.get_int("I0") == libro_giornale)
{ {
const TDate l(reg.get("D3")); const TDate l(reg.get("D3"));
if (l > last) last = l; if (l > last) last = l;
} }
} }
return last; return last;
} }
*/
TLibro_giornale::TLibro_giornale(int y) TLibro_giornale::TLibro_giornale(int y)
{ {