diff --git a/ce/ce0400a.uml b/ce/ce0400a.uml index 890516f7e..0e8fac4df 100755 --- a/ce/ce0400a.uml +++ b/ce/ce0400a.uml @@ -194,7 +194,7 @@ STRING F_ELIMCESP 3 BEGIN PROMPT 2 7 "Eliminazione cespite " FIELD COAUEL - USE LF_CAUSALI SELECT ((SOSPESO=="")&&(TIPODOC=="")&&(COLLCESP=="")) + USE LF_CAUSALI SELECT ((SOSPESO!="X")&&(TIPODOC=="")&&(COLLCESP=="")) INPUT CODCAUS F_ELIMCESP DISPLAY "Codice" CODCAUS DISPLAY "Descrizione@50" DESCR @@ -222,10 +222,9 @@ STRING F_RIL_DIFF 3 BEGIN PROMPT 2 8 "Rilevazione differenze " FIELD COAUDI - USE LF_CAUSALI SELECT ((SOSPESO=="")&&(TIPODOC=="")&&(COLLCESP=="")) + COPY USE F_ELIMCESP INPUT CODCAUS F_RIL_DIFF - DISPLAY "Codice" CODCAUS - DISPLAY "Descrizione@50" DESCR + COPY DISPLAY F_ELIMCESP OUTPUT F_RIL_DIFF CODCAUS OUTPUT F_D_RIL_DIFF DESCR ADD RUN CG0 -4 @@ -236,10 +235,9 @@ END STRING F_D_RIL_DIFF 50 35 BEGIN PROMPT 40 8 "" - USE LF_CAUSALI KEY 2 + COPY USE F_D_ELIMCESP INPUT DESCR F_D_RIL_DIFF - DISPLAY "Descrizione@50" DESCR - DISPLAY "Codice" CODCAUS + COPY DISPLAY F_D_ELIMCESP COPY OUTPUT F_RIL_DIFF ADD RUN CG0 -4 CHECKTYPE REQUIRED @@ -250,10 +248,9 @@ STRING F_RIL_QUOT 3 BEGIN PROMPT 2 9 "Rilevazione quote ammortamento " FIELD COAUQU - USE LF_CAUSALI SELECT ((SOSPESO=="")&&(TIPODOC=="")&&(COLLCESP=="")) + COPY USE F_ELIMCESP INPUT CODCAUS F_RIL_QUOT - DISPLAY "Codice" CODCAUS - DISPLAY "Descrizione@50" DESCR + COPY DISPLAY F_ELIMCESP OUTPUT F_RIL_QUOT CODCAUS OUTPUT F_D_RIL_QUOT DESCR ADD RUN CG0 -4 @@ -264,10 +261,9 @@ END STRING F_D_RIL_QUOT 50 35 BEGIN PROMPT 40 9 "" - USE LF_CAUSALI KEY 2 + COPY USE F_D_ELIMCESP INPUT DESCR F_D_RIL_QUOT - DISPLAY "Descrizione@50" DESCR - DISPLAY "Codice" CODCAUS + COPY DISPLAY F_D_ELIMCESP COPY OUTPUT F_RIL_QUOT ADD RUN CG0 -4 CHECKTYPE REQUIRED @@ -278,10 +274,9 @@ STRING F_RIL_PLUS 3 BEGIN PROMPT 2 10 "Rilevazione plusvalenze " FIELD COAUPL - USE LF_CAUSALI SELECT ((SOSPESO=="")&&(TIPODOC=="")&&(COLLCESP=="")) + COPY USE F_ELIMCESP INPUT CODCAUS F_RIL_PLUS - DISPLAY "Codice" CODCAUS - DISPLAY "Descrizione@50" DESCR + COPY DISPLAY F_ELIMCESP OUTPUT F_RIL_PLUS CODCAUS OUTPUT F_D_RIL_PLUS DESCR ADD RUN CG0 -4 @@ -292,10 +287,9 @@ END STRING F_D_RIL_PLUS 50 35 BEGIN PROMPT 40 10 "" - USE LF_CAUSALI KEY 2 + COPY USE F_D_ELIMCESP INPUT DESCR F_D_RIL_PLUS - DISPLAY "Descrizione@50" DESCR - DISPLAY "Codice" CODCAUS + COPY DISPLAY F_D_ELIMCESP COPY OUTPUT F_RIL_PLUS ADD RUN CG0 -4 CHECKTYPE REQUIRED @@ -306,10 +300,9 @@ STRING F_RIL_MIN 3 BEGIN PROMPT 2 11 "Rilevazione minusvalenze " FIELD COAUM - USE LF_CAUSALI SELECT ((SOSPESO=="")&&(TIPODOC=="")&&(COLLCESP=="")) + COPY USE F_ELIMCESP INPUT CODCAUS F_RIL_MIN - DISPLAY "Codice" CODCAUS - DISPLAY "Descrizione@50" DESCR + COPY DISPLAY F_ELIMCESP OUTPUT F_RIL_MIN CODCAUS OUTPUT F_D_RIL_MIN DESCR ADD RUN CG0 -4 @@ -320,10 +313,9 @@ END STRING F_D_RIL_MIN 50 35 BEGIN PROMPT 40 11 "" - USE LF_CAUSALI KEY 2 + COPY USE F_D_ELIMCESP INPUT DESCR F_D_RIL_MIN - DISPLAY "Descrizione@50" DESCR - DISPLAY "Codice" CODCAUS + COPY DISPLAY F_D_ELIMCESP COPY OUTPUT F_RIL_MIN ADD RUN CG0 -4 CHECKTYPE REQUIRED @@ -396,7 +388,7 @@ END STRING F_SOPR_PAS_D 50 29 BEGIN PROMPT 46 15 "" - USE LF_PCON KEY 2 + USE LF_PCON KEY 2 SELECT SOTTOCONTO!="" INPUT DESCR F_SOPR_PAS_D DISPLAY "Descrizione@50" DESCR DISPLAY "Sosp." SOSPESO @@ -415,10 +407,9 @@ BEGIN PROMPT 2 16 "Differenze su quote " FIELD GRCOTDIQ FLAGS "R" - USE LF_PCON KEY 1 SELECT CONTO="" + COPY USE F_SOPR_PAS_GR INPUT GRUPPO F_DIFF_QUO_GR - DISPLAY "Gruppo" GRUPPO - DISPLAY "Descrizione@50" DESCR + COPY DISPLAY F_SOPR_PAS_GR OUTPUT F_DIFF_QUO_GR GRUPPO ADD RUN CG0 -0 CHECKTYPE REQUIRED @@ -430,12 +421,10 @@ BEGIN PROMPT 31 16 "" FIELD COCOTDIQ FLAGS "R" - USE LF_PCON KEY 1 SELECT ((CONTO!="")&&(SOTTOCONTO="")) + COPY USE F_SOPR_PAS_CO COPY INPUT F_DIFF_QUO_GR INPUT CONTO F_DIFF_QUO_CO - DISPLAY "Gruppo" GRUPPO - DISPLAY "Conto" CONTO - DISPLAY "Descrizione@50" DESCR + COPY DISPLAY F_SOPR_PAS_CO OUTPUT F_DIFF_QUO_GR GRUPPO OUTPUT F_DIFF_QUO_CO CONTO ADD RUN CG0 -0 @@ -450,14 +439,10 @@ BEGIN PROMPT 37 16 "" FIELD SOCOTDIQ FLAGS "R" - USE LF_PCON KEY 1 SELECT SOTTOCONTO!="" + COPY USE F_SOPR_PAS_SO COPY INPUT F_DIFF_QUO_CO INPUT SOTTOCONTO F_DIFF_QUO_SO - DISPLAY "Gruppo" GRUPPO - DISPLAY "Conto" CONTO - DISPLAY "Sottoconto" SOTTOCONTO - DISPLAY "Sosp." SOSPESO - DISPLAY "Descrizione@50" DESCR + COPY DISPLAY F_SOPR_PAS_SO OUTPUT F_DIFF_QUO_SO SOTTOCONTO OUTPUT F_DIFF_QUO_GR GRUPPO OUTPUT F_DIFF_QUO_CO CONTO @@ -472,11 +457,7 @@ BEGIN PROMPT 46 16 "" USE LF_PCON KEY 2 INPUT DESCR F_DIFF_QUO_D - DISPLAY "Descrizione@50" DESCR - DISPLAY "Sosp." SOSPESO - DISPLAY "Gruppo" GRUPPO - DISPLAY "Conto" CONTO - DISPLAY "Sottoconto" SOTTOCONTO + COPY DISPLAY F_SOPR_PAS_D COPY OUTPUT F_DIFF_QUO_SO ADD RUN CG0 -0 CHECKTYPE REQUIRED @@ -489,10 +470,9 @@ BEGIN PROMPT 2 17 "Differenze su fondi " FIELD GRCOTDIF FLAGS "R" - USE LF_PCON KEY 1 SELECT CONTO="" + COPY USE F_SOPR_PAS_GR INPUT GRUPPO F_DIFF_FON_GR - DISPLAY "Gruppo" GRUPPO - DISPLAY "Descrizione@50" DESCR + COPY DISPLAY F_SOPR_PAS_GR OUTPUT F_DIFF_FON_GR GRUPPO ADD RUN CG0 -0 CHECKTYPE REQUIRED @@ -504,12 +484,10 @@ BEGIN PROMPT 31 17 "" FIELD COCOTDIF FLAGS "R" - USE LF_PCON KEY 1 SELECT ((CONTO!="")&&(SOTTOCONTO="")) + COPY USE F_SOPR_PAS_CO COPY INPUT F_DIFF_FON_GR INPUT CONTO F_DIFF_FON_CO - DISPLAY "Gruppo" GRUPPO - DISPLAY "Conto" CONTO - DISPLAY "Descrizione@50" DESCR + COPY DISPLAY F_SOPR_PAS_CO OUTPUT F_DIFF_FON_GR GRUPPO OUTPUT F_DIFF_FON_CO CONTO ADD RUN CG0 -0 @@ -524,14 +502,10 @@ BEGIN PROMPT 37 17 "" FIELD SOCOTDIF FLAGS "R" - USE LF_PCON KEY 1 SELECT SOTTOCONTO!="" + COPY USE F_SOPR_PAS_SO COPY INPUT F_DIFF_FON_CO INPUT SOTTOCONTO F_DIFF_FON_SO - DISPLAY "Gruppo" GRUPPO - DISPLAY "Conto" CONTO - DISPLAY "Sottoconto" SOTTOCONTO - DISPLAY "Sosp." SOSPESO - DISPLAY "Descrizione@50" DESCR + COPY DISPLAY F_SOPR_PAS_SO OUTPUT F_DIFF_FON_SO SOTTOCONTO OUTPUT F_DIFF_FON_GR GRUPPO OUTPUT F_DIFF_FON_CO CONTO @@ -546,11 +520,7 @@ BEGIN PROMPT 46 17 "" USE LF_PCON KEY 2 INPUT DESCR F_DIFF_FON_D - DISPLAY "Descrizione@50" DESCR - DISPLAY "Sosp." SOSPESO - DISPLAY "Gruppo" GRUPPO - DISPLAY "Conto" CONTO - DISPLAY "Sottoconto" SOTTOCONTO + COPY DISPLAY F_SOPR_PAS_D COPY OUTPUT F_DIFF_FON_SO ADD RUN CG0 -0 CHECKTYPE REQUIRED @@ -563,10 +533,9 @@ BEGIN PROMPT 2 18 "Plusvalenze " FIELD GRCOTPLU FLAGS "R" - USE LF_PCON KEY 1 SELECT CONTO="" + COPY USE F_SOPR_PAS_GR INPUT GRUPPO F_PLUSVAL_GR - DISPLAY "Gruppo" GRUPPO - DISPLAY "Descrizione@50" DESCR + COPY DISPLAY F_SOPR_PAS_GR OUTPUT F_PLUSVAL_GR GRUPPO ADD RUN CG0 -0 CHECKTYPE NORMAL @@ -581,9 +550,7 @@ BEGIN USE LF_PCON KEY 1 SELECT ((CONTO!="")&&(SOTTOCONTO="")&&(INDBIL==4)) COPY INPUT F_PLUSVAL_GR INPUT CONTO F_PLUSVAL_CO - DISPLAY "Gruppo" GRUPPO - DISPLAY "Conto" CONTO - DISPLAY "Descrizione@50" DESCR + COPY DISPLAY F_SOPR_PAS_CO OUTPUT F_PLUSVAL_GR GRUPPO OUTPUT F_PLUSVAL_CO CONTO ADD RUN CG0 -0 @@ -598,15 +565,11 @@ BEGIN PROMPT 37 18 "" FIELD SOCOTPLU FLAGS "R" - USE LF_PCON KEY 1 SELECT SOTTOCONTO!="" + COPY USE F_SOPR_PAS_SO INPUT GRUPPO F_PLUSVAL_GR SELECT INPUT CONTO F_PLUSVAL_CO SELECT INPUT SOTTOCONTO F_PLUSVAL_SO - DISPLAY "Gruppo" GRUPPO - DISPLAY "Conto" CONTO - DISPLAY "Sottoconto" SOTTOCONTO - DISPLAY "Sosp." SOSPESO - DISPLAY "Descrizione@50" DESCR + COPY DISPLAY F_SOPR_PAS_SO OUTPUT F_PLUSVAL_SO SOTTOCONTO OUTPUT F_PLUSVAL_GR GRUPPO OUTPUT F_PLUSVAL_CO CONTO @@ -621,11 +584,7 @@ BEGIN PROMPT 46 18 "" USE LF_PCON KEY 2 INPUT DESCR F_PLUSVAL_D - DISPLAY "Descrizione@50" DESCR - DISPLAY "Sosp." SOSPESO - DISPLAY "Gruppo" GRUPPO - DISPLAY "Conto" CONTO - DISPLAY "Sottoconto" SOTTOCONTO + COPY DISPLAY F_SOPR_PAS_D COPY OUTPUT F_PLUSVAL_SO ADD RUN CG0 -0 CHECKTYPE NORMAL @@ -638,10 +597,9 @@ BEGIN PROMPT 2 19 "Minusvalenze " FIELD GRCOTMIN FLAGS "R" - USE LF_PCON KEY 1 SELECT CONTO="" + COPY USE F_SOPR_PAS_GR INPUT GRUPPO F_MINUSVAL_GR - DISPLAY "Gruppo" GRUPPO - DISPLAY "Descrizione@50" DESCR + COPY DISPLAY F_SOPR_PAS_GR OUTPUT F_MINUSVAL_GR GRUPPO ADD RUN CG0 -0 CHECKTYPE NORMAL @@ -656,9 +614,7 @@ BEGIN USE LF_PCON KEY 1 SELECT ((CONTO!="")&&(SOTTOCONTO="")&&(INDBIL==3)) COPY INPUT F_MINUSVAL_GR INPUT CONTO F_MINUSVAL_CO - DISPLAY "Gruppo" GRUPPO - DISPLAY "Conto" CONTO - DISPLAY "Descrizione@50" DESCR + COPY DISPLAY F_SOPR_PAS_CO OUTPUT F_MINUSVAL_GR GRUPPO OUTPUT F_MINUSVAL_CO CONTO ADD RUN CG0 -0 @@ -673,15 +629,11 @@ BEGIN PROMPT 37 19 "" FIELD SOCOTMIN FLAGS "R" - USE LF_PCON KEY 1 SELECT SOTTOCONTO!="" + COPY USE F_SOPR_PAS_SO INPUT GRUPPO F_MINUSVAL_GR SELECT INPUT CONTO F_MINUSVAL_CO SELECT INPUT SOTTOCONTO F_MINUSVAL_SO - DISPLAY "Gruppo" GRUPPO - DISPLAY "Conto" CONTO - DISPLAY "Sottoconto" SOTTOCONTO - DISPLAY "Sosp." SOSPESO - DISPLAY "Descrizione@50" DESCR + COPY DISPLAY F_SOPR_PAS_SO OUTPUT F_MINUSVAL_SO SOTTOCONTO OUTPUT F_MINUSVAL_GR GRUPPO OUTPUT F_MINUSVAL_CO CONTO @@ -696,11 +648,7 @@ BEGIN PROMPT 46 19 "" USE LF_PCON KEY 2 INPUT DESCR F_MINUSVAL_D - DISPLAY "Descrizione@50" DESCR - DISPLAY "Sosp." SOSPESO - DISPLAY "Gruppo" GRUPPO - DISPLAY "Conto" CONTO - DISPLAY "Sottoconto" SOTTOCONTO + COPY DISPLAY F_SOPR_PAS_D COPY OUTPUT F_MINUSVAL_SO ADD RUN CG0 -0 CHECKTYPE NORMAL @@ -713,10 +661,9 @@ BEGIN PROMPT 2 20 "Vendite cespiti " FIELD GRCOTVEN FLAGS "R" - USE LF_PCON KEY 1 SELECT CONTO="" + COPY USE F_SOPR_PAS_GR INPUT GRUPPO F_VEND_CESP_GR - DISPLAY "Gruppo" GRUPPO - DISPLAY "Descrizione@50" DESCR + COPY DISPLAY F_SOPR_PAS_GR OUTPUT F_VEND_CESP_GR GRUPPO ADD RUN CG0 -0 CHECKTYPE REQUIRED @@ -728,12 +675,10 @@ BEGIN PROMPT 31 20 "" FIELD COCOTVEN FLAGS "R" - USE LF_PCON KEY 1 SELECT ((CONTO!="")&&(SOTTOCONTO="")) + COPY USE F_SOPR_PAS_CO COPY INPUT F_VEND_CESP_GR INPUT CONTO F_VEND_CESP_CO - DISPLAY "Gruppo" GRUPPO - DISPLAY "Conto" CONTO - DISPLAY "Descrizione@50" DESCR + COPY DISPLAY F_SOPR_PAS_CO OUTPUT F_VEND_CESP_GR GRUPPO OUTPUT F_VEND_CESP_CO CONTO ADD RUN CG0 -0 @@ -748,14 +693,10 @@ BEGIN PROMPT 37 20 "" FIELD SOCOTVEN FLAGS "R" - USE LF_PCON SELECT SOTTOCONTO!="" + COPY USE F_SOPR_PAS_SO COPY INPUT F_VEND_CESP_CO INPUT SOTTOCONTO F_VEND_CESP_SO - DISPLAY "Gruppo" GRUPPO - DISPLAY "Conto" CONTO - DISPLAY "Sottoconto" SOTTOCONTO - DISPLAY "Descrizione@50" DESCR - DISPLAY "Sospeso" SOSPESO + COPY DISPLAY F_SOPR_PAS_SO OUTPUT F_VEND_CESP_SO SOTTOCONTO OUTPUT F_VEND_CESP_GR GRUPPO OUTPUT F_VEND_CESP_CO CONTO @@ -770,11 +711,7 @@ BEGIN PROMPT 46 20 "" USE LF_PCON KEY 2 INPUT DESCR F_VEND_CESP_D - DISPLAY "Descrizione@50" DESCR - DISPLAY "Sosp." SOSPESO - DISPLAY "Gruppo" GRUPPO - DISPLAY "Conto" CONTO - DISPLAY "Sottoconto" SOTTOCONTO + COPY DISPLAY F_SOPR_PAS_D COPY OUTPUT F_VEND_CESP_SO ADD RUN CG0 -0 CHECKTYPE REQUIRED diff --git a/ce/ce4.cpp b/ce/ce4.cpp index eeadaa261..d6eb098b6 100755 --- a/ce/ce4.cpp +++ b/ce/ce4.cpp @@ -11,6 +11,8 @@ int main(int argc,char** argv) ce4200(argc,argv); break; //calcolo cespiti per commessa case 2: ce4300(argc,argv); break; //stampa proiezione ammortamenti cespiti + case 3: + ce4400(argc,argv); break; //trasferimento movimenti cespiti in contabilita' case 0: default: ce4100(argc,argv) ; break; // inserimento cespiti per commessa } diff --git a/ce/ce4.h b/ce/ce4.h index c58ba24a4..e58408307 100755 --- a/ce/ce4.h +++ b/ce/ce4.h @@ -4,7 +4,7 @@ int ce4100(int argc, char* argv[]); int ce4200(int argc, char* argv[]); int ce4300(int argc, char* argv[]); - +int ce4400(int argc, char* argv[]); #endif // __CE4_H diff --git a/ce/ce4400.cpp b/ce/ce4400.cpp new file mode 100755 index 000000000..046cffe8b --- /dev/null +++ b/ce/ce4400.cpp @@ -0,0 +1,214 @@ +#include +#include +#include +#include + +#include "../cg/cg2101.h" + +#include "celib.h" +#include "ce2101.h" + +#include "ce4400a.h" + +#include "ammce.h" +#include "cespi.h" + +//=============================================================================================== +//maschera + +class TTrasf_mov_ce_cg_mask: public TAutomask +{ +protected: + virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); + +public: + TTrasf_mov_ce_cg_mask():TAutomask("ce4400a") { ditta_cespiti().init_mask(*this); } + +}; + +bool TTrasf_mov_ce_cg_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) +{ +/* switch (o.dlg()) + { + default: break; + }*/ + return true; +} + +//=============================================================================================== +//Struct che serve per avere ammortamenti per categoria (Codcat|Qamm_tot|Qperse_tot) +struct TSaldo_cat :public TObject +{ + TString4 _codcat; + real _qamm, _qperse; + void add(const TRectype& rec_ammce); + + TSaldo_cat(const TString& codcat) : _codcat(codcat) {} +}; + +void TSaldo_cat::add(const TRectype& rec_ammce) +{ + //valore totale degli ammortamenti del cespite di tipo qnor,qant,qacc che trova in AMMCE + const real qamm = rec_ammce.get_real(AMMCE_QNOR) + rec_ammce.get_real(AMMCE_QANT) + rec_ammce.get_real(AMMCE_QACC); + //valore totale delle qperse del cespite che trova in AMMCE + const real qperse = rec_ammce.get_real(AMMCE_QPERSE); + + _qamm += qamm; + _qperse += qperse; +} + +//=============================================================================================== +//Applicazione + +class TTrasf_mov_ce_cg : public TSkeleton_application +{ + TTrasf_mov_ce_cg_mask* _mask; + +protected: + virtual void main_loop(); + virtual bool create(); + virtual bool destroy(); + + void elabora(); + void delete_old_movs(const TDate& ini_es); + +public: + +}; + + +void TTrasf_mov_ce_cg::delete_old_movs(const TDate& ini_es) +{ + TMovimentoPN pn; + + TRectype darec(LF_MOV); + darec.put(MOV_DATAREG, ini_es); + + TString filtro; + filtro.format("(PROVVIS==\"C\")"); + + TCursor cur_mov (&pn, filtro, 2, &darec); + const long items = cur_mov.items(); + cur_mov.freeze(); + TProgind progind(items, "Eliminazione vecchi movimenti provvisori cespiti in corso...", false, true); + + for (cur_mov = 0; cur_mov.pos() < items; ++cur_mov) + { + progind.addstatus(1); + pn.read(); + pn.remove(); + } + +} + +//metodo per gestire la successione degli eventi ad alto livello +void TTrasf_mov_ce_cg::elabora() +{ + //gettiamo un po' di parametri dalla maschera + const long codes = _mask->get_long(F_ESERCIZIO); + const TDate ini_es = _mask->get_date(F_INIZIO_ES); + const TDate fine_es = _mask->get_date(F_FINE_ES); + //deve accoppare i movimenti provvisori di prima nota da inizio esercizio ad oggi? + if (_mask->get_bool(F_KILLOLD)) + delete_old_movs(ini_es); + + TDate datacalc; + //se il trasferimento e' definitivo la data di calcolo e' quella finale dell'esercizio selezionato, senno'... + //...e' quella indicata in F_DATACALC + if (_mask->get_bool(F_PROVDEF)) + datacalc = _mask->get_date(F_FINE_ES); + else + datacalc = _mask->get_date(F_DATACALC); + + //deve eseguire il calcolo degli ammortamenti? + const bool calcamm = _mask->get_bool(F_CALCAMM); + + //programma vero e proprio (calcolo ammortamenti, selezione cespiti validi, trasferimento) + TISAM_recordset cespiti("USE CESPI"); + const TRecnotype nrec = cespiti.items(); + + if (nrec > 0) //test del cazzo necessario per avere una progind + { + //Assoc_array Categoria-QammTot-QperseTot + TAssoc_array quote_per_cat; + + TProgind pi(nrec, TR("Trasferimento in corso..."), true, true); + for (int i = 0; cespiti.move_to(i); i++) + { + if (!pi.addstatus(1)) + break; + //id e categoria del cespite corrente + const TString& idcespite = cespiti.get(CESPI_IDCESPITE).as_string(); + TCespite cespite(idcespite); + const TString4 codcat = cespiti.get(CESPI_CODCAT).as_string(); + + //se richiesto calcola gli ammortamenti di tutti i cespiti; SOLO situazione FISCALE (tiposit = 1) + //la calc_amm pensa da sola a calcolare gli ammortamenti solo per i cespiti validi + if (calcamm) + cespite.calc_amm(1, datacalc, false); //calc_amm(tiposit,datalim,spesemanu) + + //controlla le quote del cespite in questione su AMMCE + TToken_string key; + key.add(idcespite); + key.add(codes); + key.add(2); //tpsaldo finale!!! + key.add(1); //tpamm fiscale!!!! + const TRectype& rec_ammce = cache().get(LF_AMMCE, key); + + TSaldo_cat* sc = (TSaldo_cat*)quote_per_cat.objptr(codcat); + //se non trova il codice categoria lo aggiunge... + if (sc == NULL) + { + sc = new TSaldo_cat(codcat); + quote_per_cat.add(codcat, sc); + } + //..e poi somma i valori comunque + sc->add(rec_ammce); + + } //for(int i=0... + } + + + //calcolati,se richiesti,gli ammortamenti, passa in rassegna AMMCE e AMMMV alla ricerca dei cespiti.. + //..da considerare per il trasferimento vero e proprio (sono quelli + +} + +bool TTrasf_mov_ce_cg::create() +{ + _mask = new TTrasf_mov_ce_cg_mask; + return TSkeleton_application::create(); +} + +bool TTrasf_mov_ce_cg::destroy() +{ + delete _mask; + return true; +} + +void TTrasf_mov_ce_cg::main_loop() +{ + KEY k = K_ENTER; + while (k != K_QUIT) + { + k = _mask->run(); + + switch (k) + { + case K_ENTER: + elabora(); + break; + + default: + break; + } + } +} + + +int ce4400(int argc, char* argv[]) +{ + TTrasf_mov_ce_cg a; + a.run(argc,argv,TR("Trasferimento movimenti cespiti in contabilita'")); + return 0; +} diff --git a/ce/ce4400a.h b/ce/ce4400a.h new file mode 100755 index 000000000..e8beb51dc --- /dev/null +++ b/ce/ce4400a.h @@ -0,0 +1,12 @@ +//definizioni campi per la maschera ce4400a.uml (trasferimento movimenti in contabilita') +#define F_DITTA 201 +#define F_RAGSOC 202 +#define F_ESERCIZIO 203 +#define F_INIZIO_ES 204 +#define F_FINE_ES 205 +#define F_PROVDEF 206 +#define F_DATACALC 207 +#define F_DATAREG 208 +#define F_DATACOMP 209 +#define F_CALCAMM 210 +#define F_KILLOLD 211 diff --git a/ce/ce4400a.uml b/ce/ce4400a.uml new file mode 100755 index 000000000..1a7bab4f5 --- /dev/null +++ b/ce/ce4400a.uml @@ -0,0 +1,125 @@ +#include "ce4400a.h" + +TOOLBAR "" 0 -3 0 2 + +BUTTON DLG_ELABORA 10 2 +BEGIN + PROMPT -13 -11 "~Elabora" + PICTURE BMP_ELABORA + MESSAGE EXIT,K_ENTER +END + +BUTTON DLG_CONFIG 10 2 +BEGIN + PROMPT -23 -11 "~Configura" + PICTURE BMP_CONFIG + MESSAGE RUN,ce0,-3 +END + +BUTTON DLG_QUIT 10 2 +BEGIN + PROMPT -33 -11 "" +END + +ENDPAGE + +PAGE "Contabilizzazione cespiti" -1 -1 0 -3 + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 1 0 "" +END + +NUMBER F_DITTA 5 +BEGIN + PROMPT 2 1 "Ditta " + FLAGS "DF" +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 26 1 "" + USE LF_NDITTE + INPUT CODDITTA F_DITTA + OUTPUT F_RAGSOC RAGSOC + CHECKTYPE NORMAL + FLAGS "D" +END + +NUMBER F_ESERCIZIO 4 +BEGIN + PROMPT 2 2 "Esercizio " + FLAGS "Z" + USE CCE + JOIN ESC ALIAS 104 INTO CODTAB==CODTAB + INPUT CODTAB F_ESERCIZIO + DISPLAY "Codice esercizio" CODTAB + DISPLAY "Inizio esercizio" 104@->D0 + DISPLAY "Fine esercizio" 104@->D1 + OUTPUT F_ESERCIZIO CODTAB + OUTPUT F_INIZIO_ES 104@->D0 + OUTPUT F_FINE_ES 104@->D1 + CHECKTYPE REQUIRED + FIELD CODES +END + +DATE F_INIZIO_ES +BEGIN + PROMPT 26 2 "Inizio " + FLAGS "D" +END + +DATE F_FINE_ES +BEGIN + PROMPT 50 2 "Fine " + FLAGS "D" +END + +GROUPBOX DLG_NULL 78 5 +BEGIN + PROMPT 1 5 "@bParametri cespiti" +END + +BOOLEAN F_PROVDEF +BEGIN + PROMPT 2 6 "Trasferimento definitivo" + MESSAGE FALSE 'X',F_CALCAMM|DISABLE,F_CALCAMM|ENABLE,F_DATACALC + MESSAGE TRUE ENABLE,F_CALCAMM|RESET,F_CALCAMM|CLEAR,F_DATACALC +END + +BOOLEAN F_CALCAMM +BEGIN + PROMPT 2 7 "Eseguire il cacolo ammortamenti prima del trasferimento" +END + +DATA F_DATACALC +BEGIN + PROMPT 2 8 "Data calcolo ammortamenti " + CHECKTYPE REQUIRED +END + +GROUPBOX DLG_NULL 78 5 +BEGIN + PROMPT 1 10 "@bParametri contabilita'" +END + +DATA F_DATAREG +BEGIN + PROMPT 2 11 "Data registrazione " + FLAGS "A" + CHECKTYPE REQUIRED +END + +DATA F_DATACOMP +BEGIN + PROMPT 2 12 "Data competenza " +END + +BOOLEAN F_KILLOLD +BEGIN + PROMPT 2 13 "Eliminare i movimenti provvisori cespiti" +END + +ENDPAGE + +ENDMASK