diff --git a/src/cg/cg1500.cpp b/src/cg/cg1500.cpp index 5b0777a46..795df5447 100755 --- a/src/cg/cg1500.cpp +++ b/src/cg/cg1500.cpp @@ -41,18 +41,10 @@ #include "cg1.h" #include "cg1500.h" -#include "cglib.h" - +#include "cg1501.h" class TStampa_bilanci : public TPrintapp { - static bool mask_anno (TMask_field& f, KEY k); - static bool mask_datalim (TMask_field& f, KEY k); - static bool verifica_handler(TMask_field& f, KEY k); - static bool mask_dataini (TMask_field& f, KEY k); - static bool mask_bilancio(TMask_field& f, KEY k); - static bool mask_tipost (TMask_field& f, KEY k); - struct cli_for { char tipocf; @@ -180,141 +172,6 @@ public: HIDDEN inline TStampa_bilanci& app() { return (TStampa_bilanci&)main_app(); } -bool TStampa_bilanci::mask_anno(TMask_field& f, KEY k) -{ - TMask& m = f.mask(); - - if (k == K_ENTER) - { - const int tipo_stampa = m.get_int(F_STAMPA); - const int anno = m.get_int(F_ANNO); - - if (tipo_stampa == 2 && anno == 0) - return f.error_box(TR("Indicare l'anno di esercizio")); - } - if (f.running_check(k)) - { - const int tipo_stampa = m.get_int(F_STAMPA); - const int anno = m.get_int(F_ANNO); - const int bilancio = m.get_int(F_BILANCIO); - const TDate datalim = m.get_date(F_DATALIM); - TDate data; - - if (esercizi().exist(datalim)) - data = esercizio(datalim).fine(); - m.enable_page(1, bilancio != 1); - m.show(F_DATAINI, bilancio == 2 && tipo_stampa == 1); - m.show(F_QUADRATURA, bilancio == 2 && tipo_stampa == 1 && data == datalim); - } - return true; -} - -bool TStampa_bilanci::mask_bilancio(TMask_field& f, KEY k) -{ - if (k == K_SPACE) - { - TMask& m = f.mask(); - const int anno = m.get_int(F_ANNO); - const int bilancio = m.get_int(F_BILANCIO); - const int tipo_stampa = m.get_int(F_STAMPA); - const TDate datalim = m.get_date(F_DATALIM); - TDate data; - - m.enable_page(1, bilancio != 1); - if (esercizi().exist(datalim)) - data = esercizio(datalim).fine(); - m.show(F_DATAINI, bilancio == 2 && tipo_stampa == 1); - m.show(F_QUADRATURA, bilancio == 2 && tipo_stampa == 1 && data == datalim); - } - return true; -} - -bool TStampa_bilanci::mask_datalim (TMask_field& f, KEY k) -{ - if (k == K_ENTER) - { - TMask& m = f.mask(); - const int anno = m.get_int(F_ANNO); - const int bilancio = m.get_int(F_BILANCIO); - const TDate data = m.get_date(F_DATALIM); - - if (anno != 0) - { - if (data.ok()) - { - if (!esercizi().exist(data) || (esercizio(data).codice() != anno)) - return f.error_box (TR("La data limite deve appartenere all'esercizio indicato")); - } - // else - // m.field(F_DATALIM).set(esercizio(anno).fine()); - app()._annoapp = anno; - } - else //anno == 0 - { - if (!data.ok()) - return f.error_box (TR("La data limite e' obbligatoria")); - if (!esercizi().exist(data)) - return f.error_box (TR("La data limite deve appartenere ad un esercizio attivo della ditta")); - } - if (m.get_date(F_DATALIM) < m.get_date(F_DATAINI)) - return f.error_box(TR("La data limite deve essere maggiore o uguale alla data iniziale")); - } - return true; -} - -bool TStampa_bilanci::mask_dataini(TMask_field& f, KEY k) -{ - TMask& m = f.mask(); - const short id = f.dlg(); - - if (k == K_ENTER) - { - const int anno = m.get_int(F_ANNO); - int bilancio = m.get_int(F_BILANCIO); - TDate data = f.get_date(); - - if (anno != 0) - { - if (data.ok()) - { - if (!esercizi().exist(data) || (esercizio(data).codice() != anno)) - return f.error_box(TR("La data iniziale deve appartenere all'esercizio indicato")); - } - // else - // m.field(F_DATAINI).set(esercizio(anno).inizio()); - app()._annoapp = anno; - } - else //anno == 0 - { - const TDate datalim = m.get_date(F_DATALIM); - - if (!data.ok() && datalim.ok() && esercizi().exist(datalim)) - m.field(F_DATAINI).set(data = esercizio(datalim).inizio()); - if (!data.ok()) - return f.error_box(TR("La data limite e' obbligatoria")); - if (!esercizi().exist(data)) - return f.error_box(TR("La data limite deve appartenere ad un esercizio attivo della ditta")); - app()._annoapp = esercizio(data).codice(); - } - } - return true; -} - -bool TStampa_bilanci::verifica_handler(TMask_field& f, KEY k) -{ - if (k == K_SPACE) - { - TMask& m = f.mask(); - const int verifica = m.get_int(F_VERIFICA); - - m.show(F_SITUAZIONE, verifica == 3); - m.show(F_STAMPAC, verifica == 3); - m.show(F_ORDINAMENTO, verifica == 3); - m.show(F_STAMPAV, verifica != 3); - } - return true; -} - void TStampa_bilanci::scrivig_file_temp() { TIsamtempfile* tmp = NULL; @@ -570,16 +427,16 @@ real TStampa_bilanci::compensazione(bool compensa, int indbil_conto, real& sld) return saldo; } -void TStampa_bilanci::next_c() -{ - TRecnotype recnum = _pcn->recno(); - _pcn->next(); - if (_pcn->eof()) - { - scrivic_file_temp(); - scrivig_file_temp(); - } - _pcn->readat(recnum); +void TStampa_bilanci::next_c() +{ + TRecnotype recnum = _pcn->recno(); + _pcn->next(); + if (_pcn->eof()) + { + scrivic_file_temp(); + scrivig_file_temp(); + } + _pcn->readat(recnum); } bool TStampa_bilanci::bil_sez_contr() @@ -3387,18 +3244,12 @@ void TStampa_bilanci::stampa_un_bilancio(const TMask& m) bool TStampa_bilanci::set_print(int) { - #ifdef CONT_SEP - TMask m ("np0300a"); +#ifdef CONT_SEP + TBilancio_mask m("np0300a"); #else - TMask m ("cg1500a"); + TBilancio_mask m("cg1500a"); #endif - m.set_handler (F_VERIFICA, verifica_handler); - m.set_handler (F_BILANCIO, mask_bilancio); - m.set_handler (F_STAMPA, mask_bilancio); - m.set_handler (F_DATALIM, mask_datalim); - m.set_handler (F_DATAINI, mask_dataini); - m.set_handler (F_ANNO, mask_anno); m.set(F_NORMALI, "X"); while (m.run() == K_ENTER) @@ -3406,10 +3257,10 @@ bool TStampa_bilanci::set_print(int) _annoes = m.get_int(F_ANNO); _bilancio = m.get_int(F_BILANCIO); _data = m.get(F_DATASTAMPA); - _stampa_mov_prov = m.get_bool(F_NORMALI) ? 0x1 : 0; // qui - _stampa_mov_prov |= m.get_bool(F_PROVVM) ? 0x2 : 0; // qui - _stampa_mov_prov |= m.get_bool(F_PROVVB) ? 0x4 : 0; // qui - _stampa_mov_prov |= m.get_bool(F_PROVVC) ? 0x8 : 0; // qui + _stampa_mov_prov = m.get_bool(F_NORMALI) ? 0x1 : 0; + _stampa_mov_prov |= m.get_bool(F_PROVVM) ? 0x2 : 0; + _stampa_mov_prov |= m.get_bool(F_PROVVB) ? 0x4 : 0; + _stampa_mov_prov |= m.get_bool(F_PROVVC) ? 0x8 : 0; _quadratura = m.get_bool(F_QUADRATURA); _hide_clifo = m.get_bool(F_HIDE_CLIFO); _noseparator = m.get_bool(F_SEPARATOR); @@ -3742,7 +3593,17 @@ int np0300(int argc, char* argv[]) int cg1500(int argc, char* argv[]) #endif { - TStampa_bilanci a; - a.run(argc, argv, TR("Stampa bilanci")); + if (argc > 2 && toupper(argv[2][0]) == 'A') + { + TStampa_bilanci_avanzata a; + + a.run(argc, argv, TR("Stampa bilanci")); + } + else + { + TStampa_bilanci a; + + a.run(argc, argv, TR("Stampa bilanci")); + } return 0; } diff --git a/src/cg/cg1500.h b/src/cg/cg1500.h index aaa7a3557..16f0b9caf 100755 --- a/src/cg/cg1500.h +++ b/src/cg/cg1500.h @@ -35,9 +35,8 @@ #define F_PROVVM 141 #define F_PROVVB 142 #define F_PROVVC 143 -#ifdef CONT_SEP #define F_CONTSEP 144 -#endif + #define F_COMPCR 145 #endif // __CG1500_H diff --git a/src/cg/cg1500ax.uml b/src/cg/cg1500ax.uml new file mode 100644 index 000000000..27a0b878b --- /dev/null +++ b/src/cg/cg1500ax.uml @@ -0,0 +1,372 @@ +#include "cg1500.h" + +#define ALL_EXPORT +#define CLASS_NAME "cg1500a" + +TOOLBAR "topbar" 0 0 0 2 +#include +ENDPAGE + +TOOLBAR "bottombar" 0 -3 0 1 +#include +ENDPAGE + +#ifdef CONT_SEP +PAGE "Stampa bilancio Contabilità separata" -1 -1 76 16 +#else +PAGE "Stampa bilancio" -1 -1 76 16 +#endif + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 2 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_CODDITTA CODDITTA + OUTPUT F_RAGSOC RAGSOC +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 2 2 "Ragione sociale " + FLAGS "D" +END + +DATE F_DATASTAMPA +BEGIN + PROMPT 48 1 "Data stampa " + HELP "Data che verra' stampata sul bilancio" + FLAGS "A" +END + +NUMBER F_ANNO 4 +BEGIN + PROMPT 2 3 "Codice esercizio " + HELP "Esercizio di cui si vuole ottenere il bilancio" + USE ESC + INPUT CODTAB F_ANNO + DISPLAY "Codice" CODTAB + DISPLAY "Data inizio esercizio" D0 + DISPLAY "Data fine esercizio" D1 + OUTPUT F_ANNO CODTAB + FLAGS "Z" + CHECKTYPE NORMAL + WARNING "L'esercizio non esiste" + ADD RUN cg0 -5 esc +END + +RADIOBUTTON F_BILANCIO 37 +BEGIN + PROMPT 1 5 "@bTipo bilancio" + HELP "Indicare il tipo di bilancio da stampare" + ITEM "1|Bilancio a sezioni contrapposte" + MESSAGE SHOW,1@ + MESSAGE HIDE,2@|RESET,2@ + MESSAGE HIDE,F_QUADRATURA + MESSAGE CLEAR,F_QUADRATURA + ITEM "2|Bilancio di verifica" + MESSAGE SHOW,F_QUADRATURA + MESSAGE HIDE,1@|RESET,1@ + MESSAGE SHOW,2@ +END + +RADIOBUTTON F_STAMPA 28 +BEGIN + PROMPT 41 5 "@bTipo stampa" + HELP "Indicare il tipo di stampa" + ITEM "1|Per date limite" + MESSAGE SHOW,F_DATALIM + MESSAGE ENABLE,F_COMPCR + MESSAGE ENABLE,F_QUADRATURA +#ifdef CONT_SEP + MESSAGE SHOW,F_CONTSEP +#endif + ITEM "2|All'ultima immissione" + MESSAGE HIDE,F_DATALIM|RESET,F_DATALIM + MESSAGE CLEAR,F_COMPCR + MESSAGE CLEAR,F_QUADRATURA +#ifdef CONT_SEP + MESSAGE HIDE,F_CONTSEP +#endif +END + +DATE F_DATAINI +BEGIN + PROMPT 2 9 "Data iniziale " + HELP "Data dall quale iniziare la stampa" + +END + +DATE F_DATALIM +BEGIN + PROMPT 42 9 "Data limite " + HELP "Data fino alla quale si vuole la stampa" +END + +BOOLEAN F_TOTALI +BEGIN + PROMPT 33 10 "Non stampare totali per gruppo " + HELP "Indicare se non si devono stampare i totali dei gruppi" + GROUP 1 +END + +BOOLEAN F_COMPCR +BEGIN + PROMPT 66 10 "Bilancio per competenza costi/ricavi " + HELP "Bilancio per competenza costi/ricavi" + FLAGS "D" +END + +BOOLEAN F_CODICI +BEGIN + PROMPT 2 11 "Non stampare codici conti " + HELP "Indicare se non si devono stampare i codici dei conti" + GROUP 1 +END + +BOOLEAN F_SALDO +BEGIN + PROMPT 33 11 "Non stampare movimenti con saldo a zero " + HELP "Indicare se non si devono stampare i movimenti con saldo nullo" + GROUP 1 +END + +BOOLEAN F_NORMALI +BEGIN + PROMPT 2 12 "Movimenti : Normali" +END + +BOOLEAN F_PROVVM +BEGIN + PROMPT 29 12 "Provvisori : Manuali" +END + +BOOLEAN F_PROVVB +BEGIN + PROMPT 52 12 "Comp. costi/ricavi" +END + +BOOLEAN F_PROVVC +BEGIN + PROMPT 73 12 "Cespiti" +END + +BOOLEAN F_QUADRATURA +BEGIN + PROMPT 2 14 "Quadratura con Libro Giornale" +END + +#ifdef CONT_SEP +STRING F_CONTSEP 6 +BEGIN + PROMPT 2 15 "Contabilità separata " + USE &NPENT + INPUT CODTAB F_CONTSEP + DISPLAY "Codice@6" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_CONTSEP CODTAB + CHECKTYPE REQUIRED + MODULE NP +END +#endif + +ENDPAGE + +PAGE "Parametri bilancio di verifica" -1 -1 74 20 + +RADIOBUTTON F_VERIFICA 27 +BEGIN + PROMPT 2 1 "@bStampa bilancio di verifica " + HELP "Tipo di bilancio di verifica" + ITEM "1|Bilancio" MESSAGE SHOW,4@|HIDE,6@ + ITEM "2|Saldi di mastro" MESSAGE SHOW,4@|HIDE,6@ + ITEM "3|Situazione C/F" MESSAGE HIDE,4@|SHOW,6@ +END + +RADIOBUTTON F_STAMPAC 36 +BEGIN + PROMPT 34 1 "@bTipo stampa" + ITEM "1|Conti movimentati" + ITEM "2|Conti con saldo diverso da zero" + GROUP 6 + FLAGS "H" +END + +RADIOBUTTON F_STAMPAV 36 +BEGIN + PROMPT 34 1 "@bTipo stampa " + ITEM "1|Conti movimentati" + ITEM "2|Conti con saldo diverso da zero" + ITEM "3|Tutti i conti" + GROUP 4 +END + +BOOLEAN F_SEPARATOR +BEGIN + PROMPT 2 7 "Non stampare i separatori delle migliaia" + MESSAGE FALSE " 123.456.789.012",F_PICTURE + MESSAGE TRUE "1234567890123456",F_PICTURE +END + +STRING F_PICTURE 16 +BEGIN + PROMPT 50 7 "" + FLAGS "DR" +END + +BOOLEAN F_HIDE_CLIFO +BEGIN + PROMPT 2 10 "Non stampare il dettaglio dei clienti/fornitori" + GROUP 4 +END + +LIST F_SITUAZIONE 11 +BEGIN + PROMPT 2 10 "Tipo situazione " + ITEM " |Entrambi" + ITEM "C|Clienti" + ITEM "F|Fornitori" + FLAGS "H" + GROUP 6 +END + +LIST F_ORDINAMENTO 11 +BEGIN + PROMPT 2 11 "Tipo ordinamento " + ITEM "1|Per codice" + ITEM "2|Alfabetico" + FLAGS "H" + GROUP 6 +END + +GROUPBOX DLG_NULL 55 6 +BEGIN + PROMPT 2 13 "@bSelezione sui conti" +END + +NUMBER F_DA_GRUPPO 3 +BEGIN + PROMPT 3 14 "Da: Gruppo " + USE LF_PCON KEY 1 SELECT (CONTO="") + INPUT GRUPPO F_DA_GRUPPO + DISPLAY "Gruppo" GRUPPO + DISPLAY "Descrizione@50" DESCR + OUTPUT F_DA_GRUPPO GRUPPO + CHECKTYPE NORMAL +END + +NUMBER F_DA_CONTO 3 +BEGIN + PROMPT 23 14 "Conto " + USE LF_PCON KEY 1 SELECT (SOTTOCONTO="") + INPUT GRUPPO F_DA_GRUPPO + INPUT CONTO F_DA_CONTO + DISPLAY "Gruppo" GRUPPO + DISPLAY "Conto" CONTO + DISPLAY "Descrizione@50" DESCR + OUTPUT F_DA_CONTO CONTO + OUTPUT F_DA_GRUPPO GRUPPO + CHECKTYPE NORMAL +END + +NUMBER F_DA_SOTTOCONTO 6 +BEGIN + PROMPT 36 14 "Sottoconto " + USE LF_PCON + INPUT GRUPPO F_DA_GRUPPO + INPUT CONTO F_DA_CONTO + INPUT SOTTOCONTO F_DA_SOTTOCONTO + DISPLAY "Gruppo" GRUPPO + DISPLAY "Conto" CONTO + DISPLAY "Sottoconto" SOTTOCONTO + DISPLAY "Descrizione@50" DESCR + OUTPUT F_DA_SOTTOCONTO SOTTOCONTO + OUTPUT F_DA_GRUPPO GRUPPO + OUTPUT F_DA_CONTO CONTO + OUTPUT F_DA_DESCRIZIONE DESCR + CHECKTYPE NORMAL +END + +STRING F_DA_DESCRIZIONE 50 +BEGIN + PROMPT 3 15 "" + USE LF_PCON KEY 2 + INPUT DESCR F_DA_DESCRIZIONE + DISPLAY "Descrizione@50" DESCR + DISPLAY "Gruppo" GRUPPO + DISPLAY "Conto" CONTO + DISPLAY "Sottoconto" SOTTOCONTO + OUTPUT F_DA_SOTTOCONTO SOTTOCONTO + OUTPUT F_DA_CONTO CONTO + OUTPUT F_DA_GRUPPO GRUPPO + OUTPUT F_DA_DESCRIZIONE DESCR + CHECKTYPE NORMAL +END + +NUMBER F_A_GRUPPO 3 +BEGIN + PROMPT 3 16 "A: Gruppo " + USE LF_PCON KEY 1 SELECT (CONTO="") + INPUT GRUPPO F_A_GRUPPO + DISPLAY "Gruppo" GRUPPO + DISPLAY "Descrizione@50" DESCR + OUTPUT F_A_GRUPPO GRUPPO + CHECKTYPE NORMAL +END + +NUMBER F_A_CONTO 3 +BEGIN + PROMPT 23 16 "Conto " + USE LF_PCON KEY 1 SELECT (SOTTOCONTO="") + INPUT GRUPPO F_A_GRUPPO + INPUT CONTO F_A_CONTO + DISPLAY "Gruppo" GRUPPO + DISPLAY "Conto" CONTO + DISPLAY "Descrizione@50" DESCR + OUTPUT F_A_CONTO CONTO + OUTPUT F_A_GRUPPO GRUPPO + CHECKTYPE NORMAL +END + +NUMBER F_A_SOTTOCONTO 6 +BEGIN + PROMPT 36 16 "Sottoconto " + USE LF_PCON + INPUT GRUPPO F_A_GRUPPO + INPUT CONTO F_A_CONTO + INPUT SOTTOCONTO F_A_SOTTOCONTO + DISPLAY "Gruppo" GRUPPO + DISPLAY "Conto" CONTO + DISPLAY "Sottoconto" SOTTOCONTO + DISPLAY "Descrizione@50" DESCR + OUTPUT F_A_SOTTOCONTO SOTTOCONTO + OUTPUT F_A_GRUPPO GRUPPO + OUTPUT F_A_CONTO CONTO + OUTPUT F_A_DESCRIZIONE DESCR + CHECKTYPE NORMAL +END + +STRING F_A_DESCRIZIONE 50 +BEGIN + PROMPT 3 17 "" + USE LF_PCON KEY 2 + INPUT DESCR F_A_DESCRIZIONE + DISPLAY "Descrizione@50" DESCR + DISPLAY "Gruppo" GRUPPO + DISPLAY "Conto" CONTO + DISPLAY "Sottoconto" SOTTOCONTO + OUTPUT F_A_SOTTOCONTO SOTTOCONTO + OUTPUT F_A_CONTO CONTO + OUTPUT F_A_GRUPPO GRUPPO + OUTPUT F_A_DESCRIZIONE DESCR + CHECKTYPE NORMAL +END + +ENDPAGE + +ENDMASK + diff --git a/src/cg/cg1500b.rep b/src/cg/cg1500b.rep new file mode 100644 index 000000000..1ed4b5145 --- /dev/null +++ b/src/cg/cg1500b.rep @@ -0,0 +1,414 @@ + + + Stampa bilancio di verifica + + +