From c3fe50ea3309c356271099437169bb27198bd241 Mon Sep 17 00:00:00 2001 From: luca Date: Fri, 24 Jul 2009 14:44:11 +0000 Subject: [PATCH] Patch level : Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/trunk@19135 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ps/pg0068100.cpp | 37 +++++++++++++++++-------- ps/pg0068100a.h | 4 +++ ps/pg0068100a.uml | 70 ++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 98 insertions(+), 13 deletions(-) diff --git a/ps/pg0068100.cpp b/ps/pg0068100.cpp index 7d4302fad..6c46bb7bf 100755 --- a/ps/pg0068100.cpp +++ b/ps/pg0068100.cpp @@ -153,6 +153,7 @@ class TContabilizzazione_analitica_costi : public TContabilizzazione_analitica TString4 _codcaus; bool _costi; TCausale * _caus; + const TElabollazione_HK_mask* _msk; public: virtual bool elabora(TDocumento& doc, long numreg_cg, TViswin* viswin, bool can_write, TAnal_mov& mov, @@ -160,10 +161,12 @@ public: virtual const TCausale& doc2caus(const TDocumento& doc); - TContabilizzazione_analitica_costi(const TString& codcaus, const char* cod = NULL, bool costi = true) - : TContabilizzazione_analitica(cod), _codcaus(codcaus), _costi(costi), _caus(NULL) {} - TContabilizzazione_analitica_costi(const TString& codcaus, const TRectype& rec, bool costi = true) - : TContabilizzazione_analitica(rec), _codcaus(codcaus), _costi(costi), _caus(NULL) {} + TContabilizzazione_analitica_costi(const TString& codcaus, const TElabollazione_HK_mask* msk, const char* cod = NULL, bool costi = true) + : TContabilizzazione_analitica(cod), _codcaus(codcaus), _msk(msk), _costi(costi), + _caus(NULL) {} + TContabilizzazione_analitica_costi(const TString& codcaus, const TElabollazione_HK_mask* msk, const TRectype& rec, bool costi = true) + : TContabilizzazione_analitica(rec), _codcaus(codcaus), _msk(msk), _costi(costi), + _caus(NULL) {} virtual ~TContabilizzazione_analitica_costi() {} }; @@ -261,7 +264,7 @@ bool TContabilizzazione_analitica_costi::elabora(TDocumento& doc, long numreg_cg bool pareggio = false; // salto descrizioni, e omaggi - if (riga.is_descrizione() || riga.is_omaggio()) + if (riga.is_descrizione()) continue; // salto valori nulli @@ -333,6 +336,16 @@ bool TContabilizzazione_analitica_costi::elabora(TDocumento& doc, long numreg_cg TString_array conti; const char tipomov = mov.get_char(MOVANA_TIPOMOV); const bool ok = find_conti(riga, conti, annoes, riclassifica_fdr_fde, tipomov, pareggio); + if (riga.is_omaggio()) + { + const int gruppo = _msk->get_int(F_GRUPPO); + const int conto = _msk->get_int(F_CONTO); + const long sottoconto = _msk->get_int(F_SOTTOCONTO); + TString conto_omaggio; + conto_omaggio.format("%03d%03d%06ld", gruppo, conto, sottoconto); + TToken_string& riga_conti = conti.row(0); + riga_conti.add(conto_omaggio, 0); + } if (!ok) { if (viswin != NULL) @@ -352,7 +365,7 @@ bool TContabilizzazione_analitica_costi::elabora(TDocumento& doc, long numreg_cg FOR_EACH_ARRAY_ROW(conti, i, row) { TRectype& rmov = mov.new_row(); - rmov.put(RMOVANA_ANNOES, annoes); + rmov.put(RMOVANA_ANNOES, annoes); rmov.put(RMOVANA_CODCONTO, row->get(0)); rmov.put(RMOVANA_CODCCOSTO,row->get()); rmov.put(RMOVANA_CODCMS, row->get()); @@ -401,10 +414,10 @@ bool TContabilizzazione_analitica_costi::elabora(TDocumento& doc, long numreg_cg class TContabilizzazione_analitica_provvigioni : public TContabilizzazione_analitica_costi { public: - TContabilizzazione_analitica_provvigioni(const TString& codcaus, const char* cod = NULL) - : TContabilizzazione_analitica_costi(codcaus, cod, false) {} - TContabilizzazione_analitica_provvigioni(const TString& codcaus, const TRectype& rec) - : TContabilizzazione_analitica_costi(codcaus, rec, false) {} + TContabilizzazione_analitica_provvigioni(const TString& codcaus, const TElabollazione_HK_mask* msk, const char* cod = NULL) + : TContabilizzazione_analitica_costi(codcaus, msk, cod, false) {} + TContabilizzazione_analitica_provvigioni(const TString& codcaus, const TElabollazione_HK_mask* msk, const TRectype& rec) + : TContabilizzazione_analitica_costi(codcaus, msk, rec, false) {} virtual ~TContabilizzazione_analitica_provvigioni() {} }; @@ -512,14 +525,14 @@ void TElabollazione_HK_app::contabilize() } //E finalmente fa l'agognata elaborazione!!!!! TString16 elaborazione_costi = _msk->get(F_ELAB_COSTI); - TContabilizzazione_analitica_costi contanal_costi(_msk->get(F_CAUS_COSTI), elaborazione_costi); + TContabilizzazione_analitica_costi contanal_costi(_msk->get(F_CAUS_COSTI), _msk, elaborazione_costi); contanal_costi.TContabilizzazione_analitica::elabora(lista_in, lista_out, data_reg); if (contanal_costi.processed_docs() > 0L) message_box(FR("Totale documenti di costo contabilizzati: %ld"), contanal_costi.processed_docs()); TString16 elaborazione_provv = _msk->get(F_ELAB_PROVV); - TContabilizzazione_analitica_provvigioni contanal_provv(_msk->get(F_CAUS_PROVV), elaborazione_provv); + TContabilizzazione_analitica_provvigioni contanal_provv(_msk->get(F_CAUS_PROVV), _msk, elaborazione_provv); contanal_provv.TContabilizzazione_analitica::elabora(lista_in, lista_out, data_reg); if (contanal_provv.processed_docs() > 0L) diff --git a/ps/pg0068100a.h b/ps/pg0068100a.h index 2efa5e6fb..3481594e6 100755 --- a/ps/pg0068100a.h +++ b/ps/pg0068100a.h @@ -13,3 +13,7 @@ #define F_CAUS_PROVV 111 #define F_CAUS_PROVV_DESCR 112 #define F_AUTO_DATA_REG 113 +#define F_GRUPPO 114 +#define F_CONTO 115 +#define F_SOTTOCONTO 116 +#define F_DESC 117 diff --git a/ps/pg0068100a.uml b/ps/pg0068100a.uml index f26822480..f0a122155 100755 --- a/ps/pg0068100a.uml +++ b/ps/pg0068100a.uml @@ -87,7 +87,7 @@ BEGIN VALIDATE DATE_CMP_FUNC >= F_DATA_INI END -GROUPBOX DLG_NULL 77 6 +GROUPBOX DLG_NULL 77 8 BEGIN PROMPT 1 7 "@bParametri movimenti generati" END @@ -157,6 +157,74 @@ BEGIN CHECKTYPE REQUIRED END +TEXT -1 +BEGIN + PROMPT 2 11 "@bConto omaggi" +END + +NUMBER F_GRUPPO 3 +BEGIN + PROMPT 3 12 "" + FLAGS "R" + USE LF_PCON SELECT CONTO="" + INPUT GRUPPO F_GRUPPO + DISPLAY "Gruppo" GRUPPO + DISPLAY "Descrizione@50" DESCR + OUTPUT F_GRUPPO GRUPPO + CHECKTYPE REQUIRED +END + +NUMBER F_CONTO 3 +BEGIN + PROMPT 9 12 "" + FLAGS "R" + USE LF_PCON SELECT ((CONTO!="")&&(SOTTOCONTO="")) + COPY INPUT F_GRUPPO + INPUT CONTO F_CONTO + DISPLAY "Gruppo" GRUPPO + DISPLAY "Conto" CONTO + DISPLAY "Descrizione@50" DESCR + OUTPUT F_GRUPPO GRUPPO + OUTPUT F_CONTO CONTO + CHECKTYPE NORMAL + VALIDATE REQIF_FUNC 1 F_SOTTOCONTO + WARNING "Manca il conto" +END + +NUMBER F_SOTTOCONTO 6 +BEGIN + PROMPT 15 12 "" + USE LF_PCON SELECT SOTTOCONTO!="" + COPY INPUT F_CONTO + INPUT SOTTOCONTO F_SOTTOCONTO + DISPLAY "Gruppo" GRUPPO + DISPLAY "Conto" CONTO + DISPLAY "Sottoconto" SOTTOCONTO + DISPLAY "Sosp." SOSPESO + DISPLAY "Descrizione@50" DESCR + OUTPUT F_SOTTOCONTO SOTTOCONTO + OUTPUT F_GRUPPO GRUPPO + OUTPUT F_CONTO CONTO + OUTPUT F_DESC DESCR + CHECKTYPE NORMAL +END + +STRING F_DESC 50 +BEGIN + PROMPT 24 12 "" + USE LF_PCON KEY 2 + INPUT DESCR F_DESC + DISPLAY "Descrizione@50" DESCR + DISPLAY "Sosp." SOSPESO + DISPLAY "Gruppo" GRUPPO + DISPLAY "Conto" CONTO + DISPLAY "Sottoconto" SOTTOCONTO + COPY OUTPUT F_SOTTOCONTO + CHECKTYPE REQUIRED + HELP "Descrizione del gruppo o del conto o del sottoconto" + WARNING "Descrizione mancante" +END + /*BOOL F_AUTO_DATA_REG BEGIN PROMPT 2 11 "Usare data documento come data registrazione"