diff --git a/ca/ca0.cpp b/ca/ca0.cpp index a4c26f546..993f42365 100755 --- a/ca/ca0.cpp +++ b/ca/ca0.cpp @@ -8,7 +8,7 @@ int main(int argc, char** argv) switch (r) { // case 1: ca0200(argc,argv); break; // stampa tabelle - case 2: ca0300(argc,argv); break; // parametri configurazione Contabilita' Analitica + case 2: ca0300(argc,argv); break; // parametri configurazione Contabilità Analitica case 3: ca0400(argc,argv); break; // immissione piano dei conti case 4: ca0500(argc,argv); break; // gestione centri di costo case 5: ca0600(argc,argv); break; // gestione commesse diff --git a/ca/ca0800.cpp b/ca/ca0800.cpp index 164cb417f..d30107998 100755 --- a/ca/ca0800.cpp +++ b/ca/ca0800.cpp @@ -414,11 +414,11 @@ void TRiparti_app::write_rows() if (mf.field() != NULL) { const int idx = sheet.cid2index(mf.dlg()); - if (idx < 17) + if (idx >= 0 && idx <= 17) mf.field()->write(row->get(idx), rec); } } - if ( has_tot) + if (has_tot) diff -= rec.get_real(RRIP_RIPARTO); } if (has_tot && !_msk->get_real(F_DIFFERENZA).is_zero()) @@ -454,7 +454,7 @@ void TRiparti_app::read_rows() if (mf.field() != NULL) { const int idx = sheet.cid2index(mf.dlg()); - if (idx < 17) + if (idx >= 0 && idx <= 17) row.add(mf.field()->read(rec), idx); } } diff --git a/ca/ca0800a.uml b/ca/ca0800a.uml index 139e7b5da..2ac4f7008 100755 --- a/ca/ca0800a.uml +++ b/ca/ca0800a.uml @@ -213,13 +213,13 @@ END NUMBER F_SOMMA 15 5 BEGIN - PROMPT 26 3 "Somma " + PROMPT 27 3 "Somma " FLAGS "D" END NUMBER F_DIFFERENZA 15 5 BEGIN - PROMPT 48 3 "Differenza " + PROMPT 51 3 "Differenza " FLAGS "D" END @@ -243,11 +243,12 @@ BEGIN ITEM "Con2" ITEM "Con3" ITEM "Con4" + ITEM "Articolo@20" END -BUTTON F_GENFASI 40 2 +BUTTON F_GENFASI 60 2 BEGIN - PROMPT 0 -1 "Ripartisci la commessa di origine tra le sue fasi" + PROMPT -11 -1 "Ripartire la commessa d'origine tra le sue fasi" END ENDPAGE @@ -384,6 +385,20 @@ BEGIN GROUP 1 END +STRING 118 20 +BEGIN + PROMPT 1 16 "Articolo " + USE LF_ANAMAG + INPUT CODART 118 + DISPLAY "Codice@20" CODART + DISPLAY "Descrizione@50" DESCR + OUTPUT 118 CODART + CHECKTYPE NORMAL + ADD RUN ve2 -3 + FIELD CODART +END + + ENDPAGE TOOLBAR "topbar" 0 0 0 2 diff --git a/ca/ca2100.cpp b/ca/ca2100.cpp index ea8bdccd7..c32200422 100755 --- a/ca/ca2100.cpp +++ b/ca/ca2100.cpp @@ -1,4 +1,6 @@ #include +#include +#include #include #include @@ -8,16 +10,17 @@ #include "../cg/cglib01.h" +#include #include #include +#include "cdc.h" +#include "commesse.h" +#include "fasi.h" #include "movana.h" #include "rmovana.h" #include "rrip.h" #include "saldana.h" -#include "cdc.h" -#include "commesse.h" -#include "fasi.h" class TMovanal_msk : public TAutomask @@ -31,7 +34,6 @@ class TMovanal_msk : public TAutomask short _pcon_start; short _pcon_end; - TCache_ripartizioni _cache_rip; protected: @@ -144,15 +146,18 @@ void TMovanal_msk::show_locked_buttons() TToken_string& TMovanal_msk::get_rip_row(const TRectype& rrip) { - TSheet_field& sheet = sfield(F_RIGHE); + const bool ci = app().has_module(CIAUT); TToken_string keyrip; keyrip.add(rrip.get(RRIP_CODCOSTO)); keyrip.add(rrip.get(RRIP_CODCMS)); keyrip.add(rrip.get(RRIP_CODFASE)); keyrip.add(rrip.get(RRIP_CODCONTO)); + if (ci) + keyrip.add(rrip.get(RRIP_CODART)); TRectype rmov(LF_RMOVANA); + TSheet_field& sheet = sfield(F_RIGHE); const int totrows = sheet.items(); if (totrows > 0) { @@ -165,6 +170,8 @@ TToken_string& TMovanal_msk::get_rip_row(const TRectype& rrip) keyrow.add(rmov.get(RMOVANA_CODCMS)); keyrow.add(rmov.get(RMOVANA_CODFASE)); keyrow.add(rmov.get(RMOVANA_CODCONTO)); + if (ci) + keyrow.add(rmov.get(RMOVANA_CODART)); if (keyrow == keyrip) return sheet.row(i); // Ho trovato una riga compatibile } @@ -176,6 +183,8 @@ TToken_string& TMovanal_msk::get_rip_row(const TRectype& rrip) rmov.put(RMOVANA_CODCMS, keyrip.get()); rmov.put(RMOVANA_CODFASE, keyrip.get()); rmov.put(RMOVANA_CODCONTO, keyrip.get()); + if (ci) + rmov.put(RMOVANA_CODART, keyrip.get()); TToken_string& row = rec2row(rmov, -1); return row; } @@ -186,15 +195,14 @@ void TMovanal_msk::split_cg_row(const TRectype& row, const TAnal_ripartizioni_ba TGeneric_distrib distrib(row.get_real(RMV_IMPORTO), TCurrency::get_firm_dec()); // Calcolo tutte le percentuali da ripartire - int i; - for (i = 1; i <= rrip.rows(); i++) + for (int i = 1; i <= rrip.rows(); i++) { const real quota = rrip[i].get_real(RRIP_RIPARTO); distrib.add(quota); } TString80 desc; // Variabile di appoggio per descrizione riga - for (i = 1; i <= rrip.rows(); i++) + for (int i = 1; i <= rrip.rows(); i++) { TToken_string& riga = get_rip_row(rrip[i]); // Cerca o crea la riga cui sommare la quota TImporto impriga; row2imp(riga, impriga); // Legge l'importo della riga @@ -984,7 +992,7 @@ void TMovanal_msk::create_sheet() TConfig& ini = ca_config(); const bool fsc_req = ini.get_bool("FscRequired"); - int y = 3; + int y = 4; short dlg = S_CDC1+100; // id del primo campo da generare _cdc_start = _cdc_end = -1; _cms_start = _cms_end = -1; @@ -1044,6 +1052,14 @@ void TMovanal_msk::create_sheet() sf.delete_column(id); } } + + if (!main_app().has_module(CIAUT)) + { + hide(S_CODART); + hide(S_DESCART); + sf.delete_column(S_CODART); + sf.delete_column(S_DESCART); + } } @@ -1091,8 +1107,25 @@ void TMovanal_app::write_rows(const TMask& m) TRectype& rec = mov.new_row(); // Crea una riga nuova _msk->row2rec(i, rec); - } //FOR_EACH_SHEET... + + if (has_module(CIAUT)) + { + const TRectype& caus = cache().get(LF_CAUSALI, m.get(F_CODCAUS)); + if (caus.get_bool(CAU_MOVCGIND)) + { + TFilename n; n.tempdir(); n.add("mov_caci.ini"); + n.fremove(); + if (n.full()) // dummy test + { + TConfig cini(n, "105"); + mask2ini(m, cini); + } + TString cmd; cmd << "ci0 -6 -i" << n; + TExternal_app ci0(cmd); + ci0.run(); + } + } } void TMovanal_app::read_rows(const TMask& m) diff --git a/ca/ca2100a.h b/ca/ca2100a.h index 69c5ac70a..b7984065b 100755 --- a/ca/ca2100a.h +++ b/ca/ca2100a.h @@ -47,7 +47,9 @@ #define S_CON2 117 #define S_CON3 118 #define S_CON4 119 -#define S_CDC_ORI 120 -#define S_CMS_ORI 121 -#define S_FAS_ORI 122 -#define S_CON_ORI 123 +#define S_CODART 120 +#define S_DESCART 121 +#define S_CDC_ORI 122 +#define S_CMS_ORI 123 +#define S_FAS_ORI 124 +#define S_CON_ORI 125 diff --git a/ca/ca2100a.uml b/ca/ca2100a.uml index c58921969..22a4011d1 100755 --- a/ca/ca2100a.uml +++ b/ca/ca2100a.uml @@ -44,6 +44,7 @@ BEGIN DISPLAY "Data comp.@10" DATACOMP DISPLAY "Eser." ANNOES DISPLAY "P. nota" NUMREGCG + DISPLAY "Caus." CODCAUS DISPLAY "Descrizione@50" DESCR OUTPUT F_NUMREG NUMREG CHECKTYPE REQUIRED @@ -103,6 +104,7 @@ BEGIN INPUT CODCAUS F_CODCAUS DISPLAY "Codice" CODCAUS DISPLAY "Descrizione@50" DESCR + DISPLAY "Industriale@C" MOVCGIND OUTPUT F_CODCAUS CODCAUS OUTPUT F_DESCAUS DESCR CHECKTYPE REQUIRED @@ -118,6 +120,7 @@ BEGIN INPUT DESCR F_DESCAUS DISPLAY "Descrizione@50" DESCR DISPLAY "Codice" CODCAUS + DISPLAY "Industriale@C" MOVCGIND COPY OUTPUT F_CODCAUS CHECKTYPE REQUIRED GROUP 5 @@ -281,6 +284,8 @@ BEGIN ITEM "Con 2" ITEM "Con 3" ITEM "Con 4" + ITEM "Articolo@20" + ITEM "Descrizione@30" ITEM "Cdc.Orig." ITEM "Cms.Orig." ITEM "Fase Orig." @@ -306,7 +311,7 @@ END BUTTON DLG_USER 10 2 BEGIN - PROMPT -24 -1 "Ripartisce" + PROMPT -24 -1 "Ripartizione" PICTURE TOOL_MULTISEL END @@ -326,20 +331,44 @@ PAGE "Riga" 0 2 0 0 CURRENCY S_DARE 15 BEGIN - PROMPT 1 1 "Dare " + PROMPT 8 0 "Dare " END CURRENCY S_AVERE 15 BEGIN - PROMPT 31 1 "Avere " + PROMPT 42 0 "Avere " END STRING S_DESCR 50 BEGIN - PROMPT 1 2 "Descrizione " + PROMPT 1 1 "Descrizione " FIELD DESCR END +STRING S_CODART 20 +BEGIN + PROMPT 1 2 "Articolo " + USE LF_ANAMAG + INPUT CODART S_CODART + DISPLAY "Codice@20" CODART + DISPLAY "Descrizione@50" DESCR + OUTPUT S_CODART CODART + OUTPUT S_DESCART DESCR + CHECKTYPE NORMAL + FIELD CODART +END + +STRING S_DESCART 50 35 +BEGIN + PROMPT 38 2 "" + USE LF_ANAMAG KEY 2 + INPUT DESCR S_DESCART + DISPLAY "Descrizione@50" DESCR + DISPLAY "Codice@20" CODART + COPY OUTPUT S_CODART + CHECKTYPE NORMAL +END + STRING S_CDC1 20 BEGIN PROMPT 1 4 "Cdc 1" diff --git a/ca/f108.dir b/ca/f108.dir index b1bac6e5b..1f536cb95 100755 --- a/ca/f108.dir +++ b/ca/f108.dir @@ -1,3 +1,3 @@ 108 0 -$rmovana|0|0|233|0|Righe Movimenti di Analitica||| +$rmovana|0|0|253|0|Righe Movimenti di Analitica||| diff --git a/ca/f108.trr b/ca/f108.trr index 1b23a34b6..26d337717 100755 --- a/ca/f108.trr +++ b/ca/f108.trr @@ -1,5 +1,5 @@ 108 -16 +17 ANNOES|9|4|0|Anno di Esercizio NUMREG|3|7|0|Numero di Registrazione NUMRIG|2|3|0|Numero riga @@ -9,6 +9,7 @@ CODCCOSTO|1|20|0|Codice centro di costo CODCMS|1|20|0|Codice commessa CODFASE|1|10|0|Codice fase CODCONTO|1|20|0|Codice Conto Analitica +CODART|1|20|0|Codice Articolo Industriale DESCR|1|50|0|Descrizione IMPORTO|4|18|3|Importo della riga ROWTYPE|1|1|0|Tipo Riga diff --git a/ca/f150.dir b/ca/f150.dir index 1674e7cfe..8ce7ab0cd 100755 --- a/ca/f150.dir +++ b/ca/f150.dir @@ -1,3 +1,3 @@ 150 0 -$rrip|0|0|98|0|Archivio righe di ripartizione analitica||| +$rrip|0|0|118|0|Archivio righe di ripartizione analitica||| diff --git a/ca/f150.trr b/ca/f150.trr index 466bd7313..762cb0440 100755 --- a/ca/f150.trr +++ b/ca/f150.trr @@ -1,5 +1,5 @@ 150 -8 +9 TIPO|1|1|0|Tipo Ripartizione (nterattiva, atch) CODICE|1|8|0|Codice ripartizione NRIGA|2|3|0|Numero riga @@ -8,5 +8,6 @@ CODCMS|1|20|0|Codice commessa CODFASE|1|10|0|Codice fase CODCONTO|1|20|0|Codice Conto analitica RIPARTO|4|15|5|Ripartizione +CODART|1|20|0|Codice articolo (industriale) 1 TIPO+CODICE+NRIGA| diff --git a/ca/rmovana.h b/ca/rmovana.h index 0651ba611..8f79e7bc6 100755 --- a/ca/rmovana.h +++ b/ca/rmovana.h @@ -10,6 +10,7 @@ #define RMOVANA_CODCMS "CODCMS" #define RMOVANA_CODFASE "CODFASE" #define RMOVANA_CODCONTO "CODCONTO" +#define RMOVANA_CODART "CODART" #define RMOVANA_DESCR "DESCR" #define RMOVANA_IMPORTO "IMPORTO" #define RMOVANA_ROWTYPE "ROWTYPE" diff --git a/ca/rrip.h b/ca/rrip.h index aaa06ce52..8e0b868cb 100755 --- a/ca/rrip.h +++ b/ca/rrip.h @@ -8,6 +8,7 @@ #define RRIP_CODCMS "CODCMS" #define RRIP_CODFASE "CODFASE" #define RRIP_CODCONTO "CODCONTO" +#define RRIP_CODART "CODART" #define RRIP_RIPARTO "RIPARTO" #endif