diff --git a/cg/Attic/cg1400.cpp b/cg/Attic/cg1400.cpp index b94efbc65..906e626b4 100755 --- a/cg/Attic/cg1400.cpp +++ b/cg/Attic/cg1400.cpp @@ -13,7 +13,7 @@ class TStampa_deleghe_IVA : public TApplication { - TLocalisamfile *_nditte, *_anag, *_comuni; + TRelation *_nditte; TTable* _banche; TArray_sheet* _ditte; @@ -29,7 +29,7 @@ protected: virtual bool menu(MENU_TAG); virtual void print(); - int select(bool cf); + int select(); bool print_deleghe(); void print_distinta(); @@ -42,13 +42,14 @@ bool TStampa_deleghe_IVA::create() { TApplication::create(); - _nditte = new TLocalisamfile(LF_NDITTE); - _anag = new TLocalisamfile(LF_ANAG); - _comuni = new TLocalisamfile(LF_COMUNI); + _nditte = new TRelation(LF_NDITTE); + _nditte->add(LF_ANAG, "TIPOA=TIPOA|CODANAGR=CODANAGR"); + _nditte->add(LF_COMUNI, "STATO=STATORF|COM=COMRF", 1, LF_ANAG); + _banche = new TTable("%BAN"); _ditte = new TArray_sheet(-1, -1, 0, 0, "Selezione Deleghe da stampare", - "@1|Cod.@5|Ragione Sociale@50|Importo@15|Azienda|Dipendenza"); + "@1|Cod.@5|Ragione Sociale@50|Importo@15|Azienda|Dipendenza|Concessione"); TConfig c(CONFIG_STUDIO, "cg"); _azienda = c.get("CodABI"); @@ -63,17 +64,15 @@ bool TStampa_deleghe_IVA::destroy() delete _ditte; delete _nditte; - delete _anag; - delete _comuni; delete _banche; return TApplication::destroy(); } -int TStampa_deleghe_IVA::select(bool cf) +int TStampa_deleghe_IVA::select() { - TMask m(cf ? "cg1400b" : "cg1400a"); + TMask m("cg1400a"); TConfig c(CONFIG_STUDIO, "cg"); m.set(F_ABI, _azienda); m.set(F_CAB, _dipendenza); @@ -100,36 +99,40 @@ int TStampa_deleghe_IVA::select(bool cf) } const TDate pd(m.get(F_DATA)); printer().setdate(pd); + + const int concessione = m.get_int(F_CONCESSIONE); + const long soloabi = m.get_long(F_SOLO_ABI); + const long solocab = m.get_long(F_SOLO_CAB); - TLocalisamfile nditte(LF_NDITTE); TTable deleghe("%DEL"); TString16 chiave; TToken_string d(80); _ditte->destroy(); - for (nditte.first(); !nditte.eof(); nditte.next()) + for (_nditte->first(); _nditte->good(); _nditte->next()) { - const long dit = nditte.get_long("CODDITTA"); - chiave.format("%05ld", dit); - chiave << format("%04d%02d%d", _anno, _mese, _tipo); + const int co = _nditte->lfile(LF_COMUNI).get_int("UFFCONC"); + if (concessione != 0 && concessione != co) continue; + + const long dit = _nditte->lfile().get_long("CODDITTA"); + chiave.format("%05ld%04d%02d%d", dit, _anno, _mese, _tipo); deleghe.put("CODTAB", chiave); if (deleghe.read() == NOERR && deleghe.get_bool("B0") == FALSE) // Da stampare { - d = " "; // Selezione - d.add(chiave.left(5)); // Codice ditta - d.add(nditte.get("RAGSOC")); // Ragione sociale - - const real importo(deleghe.get("R0")); - d.add(importo.string(".")); // Importo - const long az = deleghe.get_long("I0"); - d.add(format("%05ld", az)); // Azienda - const long di = deleghe.get_long("I1"); - d.add(format("%05ld", di)); // Dipendenza - - _ditte->add(d); + if ((soloabi == 0 || soloabi == az) && (solocab == 0 || solocab == di)) + { + d = " "; // Selezione + d.add(dit); // Codice ditta + d.add(_nditte->lfile().get("RAGSOC")); // Ragione sociale + d.add(deleghe.get_real("R0").string(".")); // Importo + d.add(format("%05ld", az)); // Azienda + d.add(format("%05ld", di)); // Dipendenza + d.add(format("%03d", co)); // Concessione + _ditte->add(d); + } } } @@ -149,10 +152,10 @@ int TStampa_deleghe_IVA::select(bool cf) bool TStampa_deleghe_IVA::menu(MENU_TAG mt) { - int s = 0; - while ((s = select(mt == BAR_ITEM(2))) != 0) + int s; + while ((s = select()) != 0) if (s == 1) print(); - return TRUE; + return FALSE; } void TStampa_deleghe_IVA::print() @@ -228,23 +231,15 @@ void TStampa_deleghe_IVA::print_distinta() if (_ditte->checked(i)) { const TString16 cod(_ditte->row(i).get(1)); - _nditte->put("CODDITTA", cod); + _nditte->lfile().put("CODDITTA", cod); _nditte->read(); - _anag->put("TIPOA", _nditte->get("TIPOA")); - _anag->put("CODANAGR", _nditte->get("CODANAGR")); - _anag->read(); - - _comuni->put("STATO", _anag->get("STATORF")); - _comuni->put("COM", _anag->get("COMRF")); - _comuni->read(); - - TParagraph_string dencom(_comuni->get("DENCOM"), 18); + TParagraph_string dencom(_nditte->lfile(LF_COMUNI).get("DENCOM"), 18); row.reset(); - row.put(_nditte->get("RAGSOC"), TAB_DITTA); + row.put(_nditte->lfile().get("RAGSOC"), TAB_DITTA); row.put(dencom.get(), TAB_SEDE); - row.put(_comuni->get("PROVCOM"), TAB_PROV); + row.put(_nditte->lfile(LF_COMUNI).get("PROVCOM"), TAB_PROV); TString imp(_ditte->row(i).get(3)); row.put(imp, TAB_IMPORTO); diff --git a/cg/Attic/cg1400a.uml b/cg/Attic/cg1400a.uml index bea1c923d..270847f39 100755 --- a/cg/Attic/cg1400a.uml +++ b/cg/Attic/cg1400a.uml @@ -1,100 +1,186 @@ #include "cg1400.h" -PAGE "STAMPA DELEGHE IVA" -1 -1 58 11 +PAGE "STAMPA DELEGHE IVA" -1 -1 72 16 + +GROUPBOX DLG_NULL 70 5 +BEGIN + PROMPT 1 1 "Stampa solo" +END + +NUMBER F_CONCESSIONE 3 +BEGIN + PROMPT 2 2 "Concessione " + HELP "Codice concessione cui fanno capo le ditte da gestire" + USE %UCC + FLAGS "Z" + INPUT CODTAB F_CONCESSIONE + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@30" S0 + OUTPUT F_CONCESSIONE CODTAB + OUTPUT F_DESC_CONC S0 + CHECKTYPE NORMAL +END + +STRING F_DESC_CONC 30 +BEGIN + PROMPT 24 2 "Descrizione " + USE %UCC KEY 2 + INPUT S0 F_DESC_CONC + DISPLAY "Descrizione@30" S0 + DISPLAY "Codice" CODTAB + COPY OUTPUT F_CONCESSIONE + CHECKTYPE NORMAL +END + + +NUMBER F_SOLO_ABI 5 +BEGIN + PROMPT 2 3 "Codice ABI " + HELP "Codice ABI della banca delle deleghe da stampare" + FLAGS "Z" + USE %BAN + INPUT CODTAB[1,5] F_SOLO_ABI + INPUT CODTAB[6,10] F_SOLO_CAB + DISPLAY "Azienda" CODTAB[1,5] + DISPLAY "Dipendenza" CODTAB[6,10] + DISPLAY "Denominazione@50" S0 + OUTPUT F_SOLO_ABI CODTAB[1,5] + OUTPUT F_SOLO_CAB CODTAB[6,10] + OUTPUT F_DESC_SOLO_BAN S0 + CHECKTYPE NORMAL +END + +NUMBER F_SOLO_CAB 5 +BEGIN + PROMPT 50 3 "Codice CAB " + HELP "Codice CAB della banca delle deleghe da stampare" + FLAGS "Z" + COPY ALL F_SOLO_ABI + CHECKTYPE NORMAL +END + +STRING F_DESC_SOLO_BAN 50 +BEGIN + PROMPT 2 4 "Denominazione " + USE %BAN KEY 2 + INPUT S0 F_DESC_SOLO_BAN + DISPLAY "Denominazione@50" S0 + DISPLAY "Azienda" CODTAB[1,5] + DISPLAY "Dipendenza" CODTAB[6,10] + COPY OUTPUT F_SOLO_ABI + CHECKTYPE NORMAL +END + +GROUPBOX DLG_NULL 70 4 +BEGIN + PROMPT 1 6 "Intesta deleghe a" +END NUMBER F_ABI 5 BEGIN - PROMPT 1 1 "Codice ABI " - HELP "Codice ABI della banca per la presentazione delle deleghe" + PROMPT 2 7 "Codice ABI " + HELP "Codice ABI della banca per la presentazione della delega" FLAGS "Z" - FIELD CNF_STUDIO->cg.CodABI - USE %BAN + COPY USE F_SOLO_ABI INPUT CODTAB[1,5] F_ABI INPUT CODTAB[6,10] F_CAB - DISPLAY "Azienda" CODTAB[1,5] - DISPLAY "Dipendenza" CODTAB[6,10] - DISPLAY "Nome@50" S0 + COPY DISPLAY F_SOLO_ABI OUTPUT F_ABI CODTAB[1,5] OUTPUT F_CAB CODTAB[6,10] + OUTPUT F_DESC_BAN S0 CHECKTYPE NORMAL END NUMBER F_CAB 5 BEGIN - PROMPT 22 1 "Codice CAB " + PROMPT 50 7 "Codice CAB " HELP "Codice CAB della banca per la presentazione della delega" FLAGS "Z" - FIELD CNF_STUDIO->cg.CodCAB - COPY USE F_ABI - INPUT CODTAB[1,5] F_ABI - INPUT CODTAB[6,10] F_CAB - DISPLAY "Azienda" CODTAB[1,5] - DISPLAY "Dipendenza" CODTAB[6,10] - DISPLAY "Nome@50" S0 - DISPLAY "Filiale@50" S1 - OUTPUT F_ABI CODTAB[1,5] - OUTPUT F_CAB CODTAB[6,10] + COPY ALL F_ABI CHECKTYPE NORMAL END -DATA F_DATA +STRING F_DESC_BAN 50 BEGIN - PROMPT 1 3 "Data di stampa " - HELP "Data che viene stampata sulla delega" + PROMPT 2 8 "Denominazione " + COPY USE F_DESC_SOLO_BAN + INPUT S0 F_DESC_BAN + COPY DISPLAY F_DESC_SOLO_BAN + COPY OUTPUT F_ABI + CHECKTYPE NORMAL +END + +NUMBER F_ANNO 4 +BEGIN + PROMPT 2 10 "Anno " + HELP "Anno di cui si vogliono stampare le deleghe" FLAGS "A" END -LIST F_TIPO 21 +LIST F_MESE 2 11 BEGIN - PROMPT 28 3 "Tipo " + PROMPT 18 10 "Mese " + HELP "Mese di cui si vogliono stampare le deleghe" + FLAGS "AM" + ITEM "13|Annuale" MESSAGE "2",F_TIPO +END + +LIST F_TIPO 1 24 +BEGIN + PROMPT 2 11 "Tipo " HELP "Tipo di delega da stampare" ITEM "1|Periodica" MESSAGE ENABLE,F_MESE ITEM "2|Annuale" MESSAGE "13",F_MESE|DISABLE,F_MESE ITEM "7|Acconti IVA" MESSAGE "12",F_MESE|DISABLE,F_MESE END -NUMBER F_ANNO 4 +DATA F_DATA BEGIN - PROMPT 1 5 "Anno " - HELP "Anno di cui si vuole stampare la delega" + PROMPT 2 12 "Data " + HELP "Data da stampare sulle deleghe" FLAGS "A" -END +END -LIST F_MESE 10 +NUMBER F_PROFILO 5 BEGIN - PROMPT 13 5 "Mese " - HELP "Mese di cui si vuole stampare la delega" - FLAGS "MA" - ITEM "13|Annuale" MESSAGE "2",F_TIPO -END - -BOOLEAN F_DEFINITIVA -BEGIN - PROMPT 1 7 "Stampa definitiva" + PROMPT 2 13 "Profilo " + CHECKTYPE REQUIRED END BOOLEAN F_AGGIORNA BEGIN - PROMPT 1 8 "Aggiorna codici banca sulle deleghe" + PROMPT 43 10 "Aggiorna codici banca" HELP "Scrive i codici banca sulle deleghe che non li riportano" END BOOLEAN F_DISTINTA BEGIN - PROMPT 1 9 "Stampa distinta deleghe" + PROMPT 43 11 "Stampa distinta deleghe" HELP "Stampa un riepilogo su carta normale delle deleghe stampate" END +BOOLEAN F_DEFINITIVA +BEGIN + PROMPT 43 12 "Stampa definitiva" +END + +BOOLEAN F_CONTOFIS +BEGIN + PROMPT 43 13 "Titolari Conto fiscale" + MESSAGE FALSE CLEAR,F_PROFILO + MESSAGE TRUE ENABLE,F_PROFILO +END + BUTTON DLG_SELECT 9 2 BEGIN - PROMPT 45 6 "Selezione" + PROMPT -12 -1 "Selezione" HELP "Selezione delle ditte di cui stampare le deleghe" MESSAGE EXIT,K_ENTER END BUTTON DLG_QUIT 9 2 BEGIN - PROMPT 45 8 "" + PROMPT -22 -1 "" END ENDPAGE diff --git a/cg/cg0200a.uml b/cg/cg0200a.uml index eae3c3ce8..12d049850 100755 --- a/cg/cg0200a.uml +++ b/cg/cg0200a.uml @@ -280,21 +280,6 @@ BEGIN CHECKTYPE NORMAL END -BOOLEAN F_OCCASIONALE -BEGIN - PROMPT 2 16 "Occasionale " - FIELD LF_CLIFO->OCCAS - HELP "Indicare se si tratta di un C/F occasionale" - MESSAGE TRUE "2",F_ALLEG -END - -BOOLEAN F_SOSPESO -BEGIN - PROMPT 32 16 "Sospeso " - FIELD LF_CLIFO->SOSPESO - HELP "Indicare se il C/F e' movimentato ma non piu' utilizzabile" -END - NUMBER F_ALLEG 1 BEGIN PROMPT 2 13 "Inserimento in allegato " @@ -333,6 +318,21 @@ BEGIN FLAGS "D" END +BOOLEAN F_OCCASIONALE +BEGIN + PROMPT 2 16 "Occasionale " + FIELD LF_CLIFO->OCCAS + HELP "Indicare se si tratta di un C/F occasionale" + MESSAGE TRUE "2",F_ALLEG +END + +BOOLEAN F_SOSPESO +BEGIN + PROMPT 32 16 "Sospeso " + FIELD LF_CLIFO->SOSPESO + HELP "Indicare se il C/F e' movimentato ma non piu' utilizzabile" +END + ENDPAGE PAGE "Pag. 2" -1 -1 78 19 @@ -623,7 +623,7 @@ BEGIN PROMPT 55 5 "Codice CAB " FIELD LF_CLIFO->CODCAB FLAGS "Z" -// USE %BAN +// USE %BAN COPY USE F_CODABI INPUT CODTAB[1,5] F_CODABI INPUT CODTAB[6,10] F_CODBAN diff --git a/cg/cg0500.cpp b/cg/cg0500.cpp index e2419f72e..328a2d055 100755 --- a/cg/cg0500.cpp +++ b/cg/cg0500.cpp @@ -875,13 +875,7 @@ void TCaus_app::on_config_change() _saldaconto = conf.get_bool("GesSal"); _valuta = conf.get_bool("GesVal"); - _anno_iva = (int)conf.get_long("AnLiIv"); - if (_anno_iva < 1800) - { - _anno_iva = TDate(TODAY).year(); - error_box("Nei parametri ditta manca l'anno liquidazione IVA: assumo %d", _anno_iva); - conf.set("AnLiIv", _anno_iva); - } + _anno_iva = (int)conf.get_long("AnLiIv", NULL, -1, TDate(TODAY).year()); } diff --git a/cg/cg0500a.uml b/cg/cg0500a.uml index bd17d0f63..a7c68b500 100755 --- a/cg/cg0500a.uml +++ b/cg/cg0500a.uml @@ -17,7 +17,7 @@ STRING F_COD_CAUS 3 BEGIN PROMPT 2 1 "Codice " HELP "Codice identificativo della causale" - FIELD LF_CAUSALI->CODCAUS + FIELD CODCAUS KEY 1 FLAGS "UZ" USE LF_CAUSALI @@ -40,7 +40,7 @@ END STRING F_DESCR 50 BEGIN PROMPT 16 1 "Descriz." - FIELD LF_CAUSALI->DESCR + FIELD DESCR USE LF_CAUSALI KEY 2 INPUT DESCR F_DESCR DISPLAY "Descrizione @50" DESCR @@ -63,7 +63,7 @@ STRING F_TIPO_DOC 2 BEGIN PROMPT 2 3 "Tipo documento " HELP "Tipo di documento collegato alla causale" - FIELD LF_CAUSALI->TIPODOC + FIELD TIPODOC USE %TPD INPUT CODTAB F_TIPO_DOC DISPLAY "Tipo " CODTAB @@ -96,7 +96,7 @@ STRING F_COD_REG 3 BEGIN PROMPT 2 4 "Cod. registro " HELP "Codice registro collegato alla causale" - FIELD LF_CAUSALI->REG + FIELD REG USE REG INPUT CODTAB[1,4] F_ANNOES SELECT INPUT CODTAB[5,7] F_COD_REG @@ -156,7 +156,7 @@ END LISTBOX F_TIPO_MOV_2 1 20 BEGIN PROMPT 2 5 "Tipo movimento " - FIELD LF_CAUSALI->TIPOMOV + FIELD TIPOMOV HELP "Tipo di movimento generato dalla causale" ITEM " |Nessuno" MESSAGE COPY,F_TIPO_MOV ITEM "3|Incasso/pagamento " MESSAGE COPY,F_TIPO_MOV @@ -168,7 +168,7 @@ END LISTBOX F_M_770 1 48 BEGIN PROMPT 2 6 "Collegamento Mod.770 " - FIELD LF_CAUSALI->M770 + FIELD M770 HELP "Tipo di collegamento Mod.770" ITEM " |Nessuno" ITEM "1|Ricevuta e/o pagamento fattura percipiente" @@ -240,7 +240,7 @@ END BOOLEAN F_DATA_DOC BEGIN PROMPT 2 4 "Data documento" - FIELD LF_CAUSALI->DATADOC + FIELD DATADOC HELP "Data del documento collegato con la causale" CHECKTYPE NORMAL END @@ -248,7 +248,7 @@ END BOOLEAN F_NUM_DOC BEGIN PROMPT 34 4 "Numero documento" - FIELD LF_CAUSALI->NUMDOC + FIELD NUMDOC HELP "Numero del documento collegato con la causale" CHECKTYPE NORMAL END @@ -257,7 +257,7 @@ BOOLEAN F_AUTO_FAT BEGIN PROMPT 2 6 "Autofattura art.34" HELP "Indicare se si tratta di autofattura ex art.34" - FIELD LF_CAUSALI->AUTOFATT + FIELD AUTOFATT CHECKTYPE NORMAL GROUP 2 END @@ -266,7 +266,7 @@ BOOLEAN F_ALLEGAT BEGIN PROMPT 34 6 "Doc. non va in allegati fine anno" HELP "Indicare se non inserire negli allegati IVA del documento" - FIELD LF_CAUSALI->ALLEG + FIELD ALLEG GROUP 2 END @@ -274,7 +274,7 @@ BOOLEAN F_FAT_RITARDO BEGIN PROMPT 2 8 "Fattura in ritardo" HELP "Indicare se le fatture vengono registrate al ricevimento" - FIELD LF_CAUSALI->RITFATT + FIELD RITFATT GROUP 2 END @@ -283,7 +283,7 @@ BEGIN PROMPT 34 8 "Codice causale per l'incasso immediato " HELP "Codice causale nel caso di incasso immediato" FLAGS "UZ" - FIELD LF_CAUSALI->CODCAUSIM + FIELD CODCAUSIM COPY USE F_COD_CAUS INPUT CODCAUS F_COD_CAUS_IM COPY DISPLAY F_COD_CAUS @@ -296,7 +296,7 @@ BOOLEAN F_OP_INTRACOM BEGIN PROMPT 2 10 "Operazione intracomunitaria" HELP "Indicare se gestire le fatture intracomunitarie" - FIELD LF_CAUSALI->INTRACOM + FIELD INTRACOM GROUP 2 END @@ -304,9 +304,7 @@ BOOLEAN F_VALINTRA BEGIN PROMPT 34 10 "Gestione valuta per operazioni intrac." HELP "Indicare se registrare l'importo delle fatture CEE in valute" - FIELD LF_CAUSALI->VALINTRA - MESSAGE FALSE " ",F_MOV_VALU|ENABLE,F_MOV_VALU - MESSAGE TRUE "X",F_MOV_VALU|DISABLE,F_MOV_VALU + FIELD VALINTRA GROUP 2 END @@ -314,7 +312,7 @@ BOOLEAN F_MOV_VALU BEGIN PROMPT 2 12 "Movimento in valuta" HELP "Indicare se si utilizzano gli importi in valuta" - FIELD LF_CAUSALI->MOVVAL + FIELD MOVVAL GROUP 2 END @@ -322,7 +320,7 @@ BOOLEAN F_MOV_SEZ BEGIN PROMPT 34 12 "Movimento solo sezionale" HELP "Indicare se si tratta solo di moviemto di sezione" - FIELD LF_CAUSALI->MOVSEZ + FIELD MOVSEZ FLAGS "H" END @@ -333,7 +331,7 @@ BEGIN ITEM " | " ITEM "C|Chiusura" ITEM "A|Apertura" - FIELD LF_CAUSALI->MOVAP + FIELD MOVAP FLAGS "H" END @@ -341,7 +339,7 @@ END LISTBOX F_COLL_CESP 1 40 BEGIN PROMPT 2 16 "Collegamento cespiti " - FIELD LF_CAUSALI->COLLCESP + FIELD COLLCESP HELP "Tipo di collegamento cespiti" ITEM " |Nessuno" ITEM "A|Acquisto cespite" diff --git a/cg/cg1200.cpp b/cg/cg1200.cpp index 2f6117809..1664e21d4 100755 --- a/cg/cg1200.cpp +++ b/cg/cg1200.cpp @@ -606,11 +606,12 @@ bool mask2_reset_fields(TMask_field& mf, KEY k) { if (k == K_SPACE) { - CG1200_App* a = (CG1200_App*)MainApp(); - mf.mask().field(FLD_CGB_STARTROW).set(format("%d",a->_startrow)); - mf.mask().field(FLD_CGB_STARTCOL).set(format("%d",a->_startcol)); - mf.mask().field(FLD_CGB_ROWSET).set(format("%d",a->_rows_et)); - mf.mask().field(FLD_CGB_COLSET).set(format("%d",a->_cols_et)); + CG1200_App& a = (CG1200_App&)main_app(); + TMask& m = mf.mask(); + m.set(FLD_CGB_STARTROW, a._startrow); + m.set(FLD_CGB_STARTCOL, a._startcol); + m.set(FLD_CGB_ROWSET,a._rows_et); + m.set(FLD_CGB_COLSET, a._cols_et); } return TRUE; } diff --git a/cg/cg1400.cpp b/cg/cg1400.cpp index b94efbc65..906e626b4 100755 --- a/cg/cg1400.cpp +++ b/cg/cg1400.cpp @@ -13,7 +13,7 @@ class TStampa_deleghe_IVA : public TApplication { - TLocalisamfile *_nditte, *_anag, *_comuni; + TRelation *_nditte; TTable* _banche; TArray_sheet* _ditte; @@ -29,7 +29,7 @@ protected: virtual bool menu(MENU_TAG); virtual void print(); - int select(bool cf); + int select(); bool print_deleghe(); void print_distinta(); @@ -42,13 +42,14 @@ bool TStampa_deleghe_IVA::create() { TApplication::create(); - _nditte = new TLocalisamfile(LF_NDITTE); - _anag = new TLocalisamfile(LF_ANAG); - _comuni = new TLocalisamfile(LF_COMUNI); + _nditte = new TRelation(LF_NDITTE); + _nditte->add(LF_ANAG, "TIPOA=TIPOA|CODANAGR=CODANAGR"); + _nditte->add(LF_COMUNI, "STATO=STATORF|COM=COMRF", 1, LF_ANAG); + _banche = new TTable("%BAN"); _ditte = new TArray_sheet(-1, -1, 0, 0, "Selezione Deleghe da stampare", - "@1|Cod.@5|Ragione Sociale@50|Importo@15|Azienda|Dipendenza"); + "@1|Cod.@5|Ragione Sociale@50|Importo@15|Azienda|Dipendenza|Concessione"); TConfig c(CONFIG_STUDIO, "cg"); _azienda = c.get("CodABI"); @@ -63,17 +64,15 @@ bool TStampa_deleghe_IVA::destroy() delete _ditte; delete _nditte; - delete _anag; - delete _comuni; delete _banche; return TApplication::destroy(); } -int TStampa_deleghe_IVA::select(bool cf) +int TStampa_deleghe_IVA::select() { - TMask m(cf ? "cg1400b" : "cg1400a"); + TMask m("cg1400a"); TConfig c(CONFIG_STUDIO, "cg"); m.set(F_ABI, _azienda); m.set(F_CAB, _dipendenza); @@ -100,36 +99,40 @@ int TStampa_deleghe_IVA::select(bool cf) } const TDate pd(m.get(F_DATA)); printer().setdate(pd); + + const int concessione = m.get_int(F_CONCESSIONE); + const long soloabi = m.get_long(F_SOLO_ABI); + const long solocab = m.get_long(F_SOLO_CAB); - TLocalisamfile nditte(LF_NDITTE); TTable deleghe("%DEL"); TString16 chiave; TToken_string d(80); _ditte->destroy(); - for (nditte.first(); !nditte.eof(); nditte.next()) + for (_nditte->first(); _nditte->good(); _nditte->next()) { - const long dit = nditte.get_long("CODDITTA"); - chiave.format("%05ld", dit); - chiave << format("%04d%02d%d", _anno, _mese, _tipo); + const int co = _nditte->lfile(LF_COMUNI).get_int("UFFCONC"); + if (concessione != 0 && concessione != co) continue; + + const long dit = _nditte->lfile().get_long("CODDITTA"); + chiave.format("%05ld%04d%02d%d", dit, _anno, _mese, _tipo); deleghe.put("CODTAB", chiave); if (deleghe.read() == NOERR && deleghe.get_bool("B0") == FALSE) // Da stampare { - d = " "; // Selezione - d.add(chiave.left(5)); // Codice ditta - d.add(nditte.get("RAGSOC")); // Ragione sociale - - const real importo(deleghe.get("R0")); - d.add(importo.string(".")); // Importo - const long az = deleghe.get_long("I0"); - d.add(format("%05ld", az)); // Azienda - const long di = deleghe.get_long("I1"); - d.add(format("%05ld", di)); // Dipendenza - - _ditte->add(d); + if ((soloabi == 0 || soloabi == az) && (solocab == 0 || solocab == di)) + { + d = " "; // Selezione + d.add(dit); // Codice ditta + d.add(_nditte->lfile().get("RAGSOC")); // Ragione sociale + d.add(deleghe.get_real("R0").string(".")); // Importo + d.add(format("%05ld", az)); // Azienda + d.add(format("%05ld", di)); // Dipendenza + d.add(format("%03d", co)); // Concessione + _ditte->add(d); + } } } @@ -149,10 +152,10 @@ int TStampa_deleghe_IVA::select(bool cf) bool TStampa_deleghe_IVA::menu(MENU_TAG mt) { - int s = 0; - while ((s = select(mt == BAR_ITEM(2))) != 0) + int s; + while ((s = select()) != 0) if (s == 1) print(); - return TRUE; + return FALSE; } void TStampa_deleghe_IVA::print() @@ -228,23 +231,15 @@ void TStampa_deleghe_IVA::print_distinta() if (_ditte->checked(i)) { const TString16 cod(_ditte->row(i).get(1)); - _nditte->put("CODDITTA", cod); + _nditte->lfile().put("CODDITTA", cod); _nditte->read(); - _anag->put("TIPOA", _nditte->get("TIPOA")); - _anag->put("CODANAGR", _nditte->get("CODANAGR")); - _anag->read(); - - _comuni->put("STATO", _anag->get("STATORF")); - _comuni->put("COM", _anag->get("COMRF")); - _comuni->read(); - - TParagraph_string dencom(_comuni->get("DENCOM"), 18); + TParagraph_string dencom(_nditte->lfile(LF_COMUNI).get("DENCOM"), 18); row.reset(); - row.put(_nditte->get("RAGSOC"), TAB_DITTA); + row.put(_nditte->lfile().get("RAGSOC"), TAB_DITTA); row.put(dencom.get(), TAB_SEDE); - row.put(_comuni->get("PROVCOM"), TAB_PROV); + row.put(_nditte->lfile(LF_COMUNI).get("PROVCOM"), TAB_PROV); TString imp(_ditte->row(i).get(3)); row.put(imp, TAB_IMPORTO); diff --git a/cg/cg1400a.uml b/cg/cg1400a.uml index bea1c923d..270847f39 100755 --- a/cg/cg1400a.uml +++ b/cg/cg1400a.uml @@ -1,100 +1,186 @@ #include "cg1400.h" -PAGE "STAMPA DELEGHE IVA" -1 -1 58 11 +PAGE "STAMPA DELEGHE IVA" -1 -1 72 16 + +GROUPBOX DLG_NULL 70 5 +BEGIN + PROMPT 1 1 "Stampa solo" +END + +NUMBER F_CONCESSIONE 3 +BEGIN + PROMPT 2 2 "Concessione " + HELP "Codice concessione cui fanno capo le ditte da gestire" + USE %UCC + FLAGS "Z" + INPUT CODTAB F_CONCESSIONE + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@30" S0 + OUTPUT F_CONCESSIONE CODTAB + OUTPUT F_DESC_CONC S0 + CHECKTYPE NORMAL +END + +STRING F_DESC_CONC 30 +BEGIN + PROMPT 24 2 "Descrizione " + USE %UCC KEY 2 + INPUT S0 F_DESC_CONC + DISPLAY "Descrizione@30" S0 + DISPLAY "Codice" CODTAB + COPY OUTPUT F_CONCESSIONE + CHECKTYPE NORMAL +END + + +NUMBER F_SOLO_ABI 5 +BEGIN + PROMPT 2 3 "Codice ABI " + HELP "Codice ABI della banca delle deleghe da stampare" + FLAGS "Z" + USE %BAN + INPUT CODTAB[1,5] F_SOLO_ABI + INPUT CODTAB[6,10] F_SOLO_CAB + DISPLAY "Azienda" CODTAB[1,5] + DISPLAY "Dipendenza" CODTAB[6,10] + DISPLAY "Denominazione@50" S0 + OUTPUT F_SOLO_ABI CODTAB[1,5] + OUTPUT F_SOLO_CAB CODTAB[6,10] + OUTPUT F_DESC_SOLO_BAN S0 + CHECKTYPE NORMAL +END + +NUMBER F_SOLO_CAB 5 +BEGIN + PROMPT 50 3 "Codice CAB " + HELP "Codice CAB della banca delle deleghe da stampare" + FLAGS "Z" + COPY ALL F_SOLO_ABI + CHECKTYPE NORMAL +END + +STRING F_DESC_SOLO_BAN 50 +BEGIN + PROMPT 2 4 "Denominazione " + USE %BAN KEY 2 + INPUT S0 F_DESC_SOLO_BAN + DISPLAY "Denominazione@50" S0 + DISPLAY "Azienda" CODTAB[1,5] + DISPLAY "Dipendenza" CODTAB[6,10] + COPY OUTPUT F_SOLO_ABI + CHECKTYPE NORMAL +END + +GROUPBOX DLG_NULL 70 4 +BEGIN + PROMPT 1 6 "Intesta deleghe a" +END NUMBER F_ABI 5 BEGIN - PROMPT 1 1 "Codice ABI " - HELP "Codice ABI della banca per la presentazione delle deleghe" + PROMPT 2 7 "Codice ABI " + HELP "Codice ABI della banca per la presentazione della delega" FLAGS "Z" - FIELD CNF_STUDIO->cg.CodABI - USE %BAN + COPY USE F_SOLO_ABI INPUT CODTAB[1,5] F_ABI INPUT CODTAB[6,10] F_CAB - DISPLAY "Azienda" CODTAB[1,5] - DISPLAY "Dipendenza" CODTAB[6,10] - DISPLAY "Nome@50" S0 + COPY DISPLAY F_SOLO_ABI OUTPUT F_ABI CODTAB[1,5] OUTPUT F_CAB CODTAB[6,10] + OUTPUT F_DESC_BAN S0 CHECKTYPE NORMAL END NUMBER F_CAB 5 BEGIN - PROMPT 22 1 "Codice CAB " + PROMPT 50 7 "Codice CAB " HELP "Codice CAB della banca per la presentazione della delega" FLAGS "Z" - FIELD CNF_STUDIO->cg.CodCAB - COPY USE F_ABI - INPUT CODTAB[1,5] F_ABI - INPUT CODTAB[6,10] F_CAB - DISPLAY "Azienda" CODTAB[1,5] - DISPLAY "Dipendenza" CODTAB[6,10] - DISPLAY "Nome@50" S0 - DISPLAY "Filiale@50" S1 - OUTPUT F_ABI CODTAB[1,5] - OUTPUT F_CAB CODTAB[6,10] + COPY ALL F_ABI CHECKTYPE NORMAL END -DATA F_DATA +STRING F_DESC_BAN 50 BEGIN - PROMPT 1 3 "Data di stampa " - HELP "Data che viene stampata sulla delega" + PROMPT 2 8 "Denominazione " + COPY USE F_DESC_SOLO_BAN + INPUT S0 F_DESC_BAN + COPY DISPLAY F_DESC_SOLO_BAN + COPY OUTPUT F_ABI + CHECKTYPE NORMAL +END + +NUMBER F_ANNO 4 +BEGIN + PROMPT 2 10 "Anno " + HELP "Anno di cui si vogliono stampare le deleghe" FLAGS "A" END -LIST F_TIPO 21 +LIST F_MESE 2 11 BEGIN - PROMPT 28 3 "Tipo " + PROMPT 18 10 "Mese " + HELP "Mese di cui si vogliono stampare le deleghe" + FLAGS "AM" + ITEM "13|Annuale" MESSAGE "2",F_TIPO +END + +LIST F_TIPO 1 24 +BEGIN + PROMPT 2 11 "Tipo " HELP "Tipo di delega da stampare" ITEM "1|Periodica" MESSAGE ENABLE,F_MESE ITEM "2|Annuale" MESSAGE "13",F_MESE|DISABLE,F_MESE ITEM "7|Acconti IVA" MESSAGE "12",F_MESE|DISABLE,F_MESE END -NUMBER F_ANNO 4 +DATA F_DATA BEGIN - PROMPT 1 5 "Anno " - HELP "Anno di cui si vuole stampare la delega" + PROMPT 2 12 "Data " + HELP "Data da stampare sulle deleghe" FLAGS "A" -END +END -LIST F_MESE 10 +NUMBER F_PROFILO 5 BEGIN - PROMPT 13 5 "Mese " - HELP "Mese di cui si vuole stampare la delega" - FLAGS "MA" - ITEM "13|Annuale" MESSAGE "2",F_TIPO -END - -BOOLEAN F_DEFINITIVA -BEGIN - PROMPT 1 7 "Stampa definitiva" + PROMPT 2 13 "Profilo " + CHECKTYPE REQUIRED END BOOLEAN F_AGGIORNA BEGIN - PROMPT 1 8 "Aggiorna codici banca sulle deleghe" + PROMPT 43 10 "Aggiorna codici banca" HELP "Scrive i codici banca sulle deleghe che non li riportano" END BOOLEAN F_DISTINTA BEGIN - PROMPT 1 9 "Stampa distinta deleghe" + PROMPT 43 11 "Stampa distinta deleghe" HELP "Stampa un riepilogo su carta normale delle deleghe stampate" END +BOOLEAN F_DEFINITIVA +BEGIN + PROMPT 43 12 "Stampa definitiva" +END + +BOOLEAN F_CONTOFIS +BEGIN + PROMPT 43 13 "Titolari Conto fiscale" + MESSAGE FALSE CLEAR,F_PROFILO + MESSAGE TRUE ENABLE,F_PROFILO +END + BUTTON DLG_SELECT 9 2 BEGIN - PROMPT 45 6 "Selezione" + PROMPT -12 -1 "Selezione" HELP "Selezione delle ditte di cui stampare le deleghe" MESSAGE EXIT,K_ENTER END BUTTON DLG_QUIT 9 2 BEGIN - PROMPT 45 8 "" + PROMPT -22 -1 "" END ENDPAGE diff --git a/cg/cg1600.cpp b/cg/cg1600.cpp index a0156059e..8648f1c47 100755 --- a/cg/cg1600.cpp +++ b/cg/cg1600.cpp @@ -1,15 +1,11 @@ +#include +#include #include #include -#include -#include +#include +#include #include #include -#include -#include -#include -#include -#include -#include #include #include @@ -467,7 +463,6 @@ bool data_limite (TMask_field& f, KEY key) int tipobil,tipostampa; TDate datalim; TDate in="", fin=""; - // CG1600_application * a = (CG1600_application*) MainApp(); tipobil = m.get_int(F_TIPOBIL); tipostampa = m.get_int(F_TIPOSTAMPA); @@ -4972,4 +4967,3 @@ int cg1600 (int argc, char* argv[]) } - diff --git a/cg/cg2100.cpp b/cg/cg2100.cpp index b620199d9..0eee4e00b 100755 --- a/cg/cg2100.cpp +++ b/cg/cg2100.cpp @@ -45,11 +45,14 @@ TMask* TPrimanota_application::load_mask(int n) m->set_handler(F_CODCAUS, caus_query_handler); m->set_handler(F_DATAREG, datareg_handler); m->set_handler(F_DATACOMP, datacomp_handler); + + TConfig c(CONFIG_STUDIO, "cg"); + + // Scelta primo campo col focus + _firstfocus = c.get_bool("PoCuDr") ? F_DATAREG : F_CODCAUS; + m->first_focus(_firstfocus); - TConfig c(CONFIG_STUDIO, "cg"); - const bool dr = c.get_bool("PoCuDr"); // Scelta primo campo col focus - m->first_focus(dr ? F_DATAREG : F_CODCAUS); - + // Registra e inserisci immediatamente un nuovo movimento _savenew = !c.get_bool("Cg21SN"); } break; @@ -85,6 +88,7 @@ TMask* TPrimanota_application::load_mask(int n) _iva_showed = FALSE; case 1: { + m->first_focus(_firstfocus); m->set_handler(F_DATAREG, datareg_handler); m->set_handler(F_DATACOMP, datacomp_handler); m->set_handler(F_DESCR, descr_handler); @@ -237,11 +241,22 @@ bool TPrimanota_application::read_caus(const char* cod, int year) if (tc.tipo() > ' ' && tc.ok()) { - TBill clifo(0, 0, tc.sottoconto(), tc.tipo()); - clifo.descrizione(); + const TBill clifo(0, 0, tc.sottoconto(), tc.tipo()); if (clifo.conto() != 0) tc = clifo; } + + int err = 0; + if (tc.descrizione() == "Sconosciuto") err = 1; else + if (tc.sospeso()) err = 2; + + if (err) + { + error_box("Il conto %03d %03d %06ld della causale e' ", + tc.gruppo(), tc.conto(), tc.sottoconto(), + err == 1 ? "sconosciuto" : "sospeso"); + continue; + } const char sezione = rcaus->get_char(RCA_SEZIONE); const TImporto zero('D', ZERO); @@ -444,7 +459,9 @@ void TPrimanota_application::init_insert_mode(TMask& m) if (iva() != nessuna_iva) occas_mask().reset(); - init_mask(m); + init_mask(m); + if (causale().reg().agenzia_viaggi()) + m.set(F_DATA74TER, m.get(F_DATAREG)); _saldi.reset(); // Inizializza saldi } diff --git a/cg/cg2100c.uml b/cg/cg2100c.uml index f5cf76c5a..f861dd143 100755 --- a/cg/cg2100c.uml +++ b/cg/cg2100c.uml @@ -66,7 +66,7 @@ BEGIN PROMPT 1 3 "Data operazione " HELP "Data in cui viene registrata l'operazione" FIELD LF_MOV->DATAREG - MESSAGE COPY,H_DATAREG|COPY,F_DATA74TER|COPY,F_ANNOIVA,7,10 + MESSAGE COPY,H_DATAREG|COPY,F_ANNOIVA,7,10 END DATE F_DATACOMP @@ -228,7 +228,7 @@ END NUMBER F_CLIENTE 6 BEGIN PROMPT 1 10 "Cliente " - HELP "Codice del cliente del documento" + HELP "Codice del cliente" FIELD LF_MOV->CODCF GROUP 1 USE LF_CLIFO KEY 1 @@ -237,6 +237,7 @@ BEGIN DISPLAY "Codice" CODCF DISPLAY "Ragione Sociale@50" RAGSOC DISPLAY "Partita IVA@12" PAIV + DISPLAY "Sospeso" SOSPESO OUTPUT F_CLIFO TIPOCF OUTPUT F_CLIENTE CODCF OUTPUT F_RAGSOCCLIENTE RAGSOC @@ -258,7 +259,7 @@ END NUMBER F_FORNITORE 6 BEGIN PROMPT 1 10 "Fornitore " - HELP "Codice del fornitore del documento" + HELP "Codice del fornitore" FIELD LF_MOV->CODCF GROUP 2 USE LF_CLIFO KEY 1 @@ -267,6 +268,7 @@ BEGIN DISPLAY "Codice" CODCF DISPLAY "Ragione Sociale@50" RAGSOC DISPLAY "Partita IVA@12" PAIV + DISPLAY "Sospeso" SOSPESO OUTPUT F_CLIFO TIPOCF OUTPUT F_FORNITORE CODCF OUTPUT F_RAGSOCFORNITORE RAGSOC @@ -288,7 +290,7 @@ END STRING F_RAGSOCFORNITORE 50 BEGIN PROMPT 25 10 "" - HELP "Ragione sociale del fornitore del documento" + HELP "Ragione sociale del fornitore" GROUP 2 USE LF_CLIFO KEY 2 INPUT TIPOCF "F" @@ -296,6 +298,7 @@ BEGIN DISPLAY "Ragione Sociale@50" RAGSOC DISPLAY "Partita IVA@12" PAIV DISPLAY "Codice" CODCF + DISPLAY "Sospeso" SOSPESO COPY OUTPUT F_FORNITORE CHECKTYPE REQUIRED ADD RUN cg0 -1 F diff --git a/cg/cg2102.h b/cg/cg2102.h index bb34e810a..dff7a87d9 100755 --- a/cg/cg2102.h +++ b/cg/cg2102.h @@ -41,6 +41,7 @@ class TPrimanota_application : public TRelation_application TipoIVA _iva; // Tipo di IVA corrente bool _ges_val, _ges_sal; // Gestione valuta e saldaconto bool _savenew; // Registra e nuovo + short _firstfocus; // First field to gain focus bool _iva_showed; // Lo sheet IVA e' gia' stato visualizzato una volta? TSaldo_agg _saldi; // Saldi da aggiornare diff --git a/cg/cg4400.cpp b/cg/cg4400.cpp index 7edc71584..a15453ed4 100755 --- a/cg/cg4400.cpp +++ b/cg/cg4400.cpp @@ -1,6 +1,5 @@ #include #include -#include #include #include #include @@ -175,14 +174,24 @@ HIDDEN int compare_fields(const TObject** o1, const TObject** o2) bool CG4400_application::stampa_totali_finali() { - TConfig conf(CONFIG_DITTA); - return conf.get_bool("StTfFr"); + static bool st = 2; + if (st == 2) + { + TConfig conf(CONFIG_DITTA); + st = conf.get_bool("StTfFr"); + } + return st; } bool CG4400_application::stampa_datareg() -{ - TConfig conf(CONFIG_STUDIO); - return conf.get_bool("NoDtRg"); +{ + static bool sd = 2; + if (sd == 2) + { + TConfig conf(CONFIG_STUDIO); + sd = !conf.get_bool("NoDtRg"); + } + return sd; } bool CG4400_application::mask_select (TMask_field& f, KEY k) @@ -2347,7 +2356,7 @@ bool CG4400_application::stampa_registri_IVA(const TMask& m) if (_selected[l]) { bool msg = TRUE; - TApplication::set_firm(_nditte->get_long("CODDITTA")); + set_firm(_nditte->get_long("CODDITTA")); TString16 y; y << _annoes; _tablia->zero(); _tablia->put("CODTAB", y); @@ -2366,7 +2375,7 @@ bool CG4400_application::stampa_registri_IVA(const TMask& m) if (_tipo_stampa == 2 || _tipo_stampa == 4) if (!controlla_mov()) { - TApplication::set_firm(__firm); + set_firm(__firm); return fatal_box("Finire di stampare registri anno precedente"); } if (!_stampa_tutti_i_registri) @@ -2593,7 +2602,6 @@ return TRUE; void CG4400_application::send_message(char tipo, const TFilename& nome, int mese) { - //const char* const app = "cg4a -2 -icon"; const char* const app = "cg4a -2"; TToken_string ss(10); //int mese ; @@ -2621,7 +2629,7 @@ void CG4400_application::send_message(char tipo, const TFilename& nome, int mese ss.add("x"); //} - TMessage liq ("cg4a -2", "RCL", ss); + TMessage liq (app, "RCL", ss); liq.send(); TExternal_app pn(app); diff --git a/cg/cg4500.cpp b/cg/cg4500.cpp index c20efd6cd..cc425757c 100755 --- a/cg/cg4500.cpp +++ b/cg/cg4500.cpp @@ -276,7 +276,7 @@ bool CG4500_application::setta() else { nditte.zero(); - nditte.put("CODDITTA", MainApp()->get_firm()); + nditte.put("CODDITTA", main_app().get_firm()); if (nditte.read() == NOERR) m.set(F_FREQUENZA, nditte.get(NDT_FREQVIVA)); } diff --git a/cg/cg4600.cpp b/cg/cg4600.cpp index dc4682b8d..bdcfb0ebc 100755 --- a/cg/cg4600.cpp +++ b/cg/cg4600.cpp @@ -66,8 +66,6 @@ public: CG4600_application() {} }; -HIDDEN CG4600_application* app() { return (CG4600_application *) MainApp(); } - bool mask_datac (TMask_field& f, KEY k) { TTable TabEs ("ESC"); diff --git a/cg/conto.cpp b/cg/conto.cpp index 97ba8d8da..7ca87bb91 100755 --- a/cg/conto.cpp +++ b/cg/conto.cpp @@ -112,18 +112,8 @@ void TBill::describe() if ((_tipo != 'C' && _tipo != 'F') || _sottoconto == 0L) { - TLocalisamfile pcon(LF_PCON, FALSE); - pcon.setkey(1); - pcon.zero(); - pcon.put("GRUPPO", _gruppo); - pcon.put("CONTO", _conto); - pcon.put("SOTTOCONTO", _sottoconto); - err = pcon.read(); - if (err == NOERR) - { - _tipo_cr = pcon.get_int("TIPOSPRIC"); - _descrizione = pcon.get("DESCR"); - } + TRectype pcon(LF_PCON); + read(pcon); } if ((_tipo == 'C' || _tipo == 'F') && _sottoconto != 0L) { @@ -136,6 +126,9 @@ void TBill::describe() if (err == NOERR) { _descrizione = clifo.get("RAGSOC"); + if (_tipo_cr < 0) _tipo_cr = 0; + _sospeso = clifo.get_bool("SOSPESO"); + const char tipoa = clifo.get_char("TIPOAPER"); if (tipoa == 'F') { @@ -149,8 +142,6 @@ void TBill::describe() _gruppo = clifo.get_int("GRUPPO"); _conto = clifo.get_int("CONTO"); } - if (_tipo_cr < 0) - _tipo_cr = 0; } } } @@ -160,7 +151,6 @@ bool TBill::read(TRectype &r) { TLocalisamfile pcon(LF_PCON, FALSE); pcon.setkey(1); - pcon.zero(); pcon.put("GRUPPO", _gruppo); pcon.put("CONTO", _conto); pcon.put("SOTTOCONTO", _sottoconto);