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"
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

View File

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

View File

@ -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

View File

@ -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;

View File

@ -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;

View File

@ -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)
{