diff --git a/cg/cg2100a.uml b/cg/cg2100a.uml index 31428f853..d600b5201 100755 --- a/cg/cg2100a.uml +++ b/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 diff --git a/cg/cg2100b.uml b/cg/cg2100b.uml index 0fa9f8819..ca6ae0d6e 100755 --- a/cg/cg2100b.uml +++ b/cg/cg2100b.uml @@ -55,7 +55,7 @@ NUMBER F_ANNOES 4 BEGIN PROMPT 57 4 "Esercizio " FIELD ANNOES - FLAGS "D" + FLAGS "DRZ" END DATE F_DATADOC diff --git a/cg/cg2100c.uml b/cg/cg2100c.uml index 860cc59e4..115dc2e7a 100755 --- a/cg/cg2100c.uml +++ b/cg/cg2100c.uml @@ -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 diff --git a/cg/cg2101.cpp b/cg/cg2101.cpp index 4bfe2da2f..a53537420 100755 --- a/cg/cg2101.cpp +++ b/cg/cg2101.cpp @@ -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; diff --git a/cg/cg2102.cpp b/cg/cg2102.cpp index 087329664..d2d238f90 100755 --- a/cg/cg2102.cpp +++ b/cg/cg2102.cpp @@ -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; diff --git a/cg/cg2103.cpp b/cg/cg2103.cpp index 98219cd0a..5831cd03a 100755 --- a/cg/cg2103.cpp +++ b/cg/cg2103.cpp @@ -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) {