diff --git a/src/cg/cg0200.cpp b/src/cg/cg0200.cpp index f4e9fa150..830d0c596 100755 --- a/src/cg/cg0200.cpp +++ b/src/cg/cg0200.cpp @@ -65,7 +65,7 @@ protected: virtual void ini2mask(TConfig& ini, TMask&m, bool query); virtual void mask2ini(const TMask& m, TConfig& ini); - TSheet_field& indsp_sheet() const; + TSheet_field& indsp_sheet() const; TString_array& field_sheet(short id) const; void reset_sheet(); void indsp_pack(); @@ -213,7 +213,7 @@ HIDDEN bool no_dup_iva(TMask_field& f, KEY key) const bool only_one_paiv = ini_get_bool(CONFIG_DITTA, "cg", "OnlyOnePaIV"); TRectype from(LF_CLIFO); TString8 stato = m.get(F_STATOPAIV); - + if (stato.blank()) stato = "IT"; from.put(CLI_TIPOCF, m.get(F_TIPOCF)); @@ -332,7 +332,7 @@ HIDDEN bool paiv_handler(TMask_field& f, KEY key) const TMask& m = f.mask(); if (!m.query_mode() && f.final_check(key)) - return f.validate(key) && no_dup_iva(f, key) && almeno_cf_o_pi(f); + return f.validate(key) && no_dup_iva(f, key) && almeno_cf_o_pi(f); return true; } @@ -1000,7 +1000,7 @@ int TClifo_application::read(TMask& m) row = contact.get("SECOND"); row << "|||" << contact.get("DATA"); s.check_row(c); - } + } } TToken_string key; @@ -1037,7 +1037,27 @@ int TClifo_application::read(TMask& m) void TClifo_application::ini2mask(TConfig& ini, TMask& m, bool query) { - TRelation_application::ini2mask(ini, m, query); + TString istat = ini.get_int("CODISTATCF"); + + if (istat.full()) + { + const TRectype & com = cache().get(LF_COMUNI, istat); + + ini.set(CLI_STATOCF, com.get(COM_STATO)); + ini.set(CLI_COMCF, com.get(COM_COM)); + } + + istat = ini.get_int("CODISTATNASC"); + + if (istat.full()) + { + const TRectype & com = cache().get(LF_COMUNI, istat); + + ini.set(CLI_STATONASC, com.get(COM_STATO)); + ini.set(CLI_COMNASC, com.get(COM_COM)); + } + + TRelation_application::ini2mask(ini, m, query); int i; if (!query) @@ -1054,7 +1074,7 @@ void TClifo_application::ini2mask(TConfig& ini, TMask& m, bool query) if (_gesven) { TToken_string riga(240); - TString16 para; + TString16 para; for (i = 0; ; i++) { para.format("%d,%d", LF_INDSP, i+1); @@ -1077,29 +1097,29 @@ void TClifo_application::ini2mask(TConfig& ini, TMask& m, bool query) riga.add(ini.get(IND_FAX)); riga.add(ini.get(IND_IVARID)); - TString16 key; - key << ini.get(IND_STATO); - key << '|' << ini.get(IND_COM); - const TRectype & com = cache().get(LF_COMUNI, key); + TString16 key; + key << ini.get(IND_STATO); + key << '|' << ini.get(IND_COM); + const TRectype & com = cache().get(LF_COMUNI, key); riga.add(com.get(COM_DENCOM)); riga.add(ini.get(IND_INDIR2)); riga.add(ini.get(IND_CODIND)); indsp_sheet().row(i)=riga; - - // Load the sheets of CODINDDOC, CODINDSP, CODINDEFF. - riga.cut(0); - riga.add(ini.get(IND_CODIND)); - riga.add(ini.get(IND_RAGSOC)); - riga.add(ini.get(IND_INDIR)); - riga.add(ini.get(IND_CIV)); - riga.add(ini.get(IND_LOCALITA)); - field_sheet(F_CODINDDOC).add(riga); - field_sheet(F_CODINDSP).add(riga); - field_sheet(F_CODINDEFF).add(riga); + + // Load the sheets of CODINDDOC, CODINDSP, CODINDEFF. + riga.cut(0); + riga.add(ini.get(IND_CODIND)); + riga.add(ini.get(IND_RAGSOC)); + riga.add(ini.get(IND_INDIR)); + riga.add(ini.get(IND_CIV)); + riga.add(ini.get(IND_LOCALITA)); + field_sheet(F_CODINDDOC).add(riga); + field_sheet(F_CODINDSP).add(riga); + field_sheet(F_CODINDEFF).add(riga); + } } - } - TString p; + TString p; p << LF_CFBAN << ",V"; TSheet_field & ns_sh = m.sfield(F_BANA); @@ -1294,7 +1314,7 @@ TString_array& TClifo_application::field_sheet(short id) const TSheet_field& TClifo_application::indsp_sheet() const { TSheet_field& o_sheet=_msk->sfield(F_SHEET_G_VEN); - return o_sheet; + return o_sheet; } void TClifo_application::reset_sheet() @@ -1366,13 +1386,13 @@ void TClifo_application::common_f(const TMask& m) const char tipocf = m.get(F_TIPOCF)[0]; const long codcf = m.get_long(F_CODCF); - _rel->destroy_rows(); - indsp_pack(); + _rel->destroy_rows(); + indsp_pack(); TArray& rows=indsp_sheet().rows_array(); int n_items = rows.items(); for (int i = 0; i < n_items; i++) - { + { TToken_string& row=(TToken_string&)rows[i]; TRectype& rec=_rel->indirizzo(i); row.restart(); @@ -1413,14 +1433,14 @@ void TClifo_application::common_f(const TMask& m) data.cut(0); const char* d = NULL; while ((d = row->get())) - { + { if (*d > ' ') data.add(d); - } + } rec.put("DATA", data); - } } - + } + TToken_string key; key.add(m.get(F_TIPOCF)); key.add(m.get(F_CODCF)); @@ -1614,8 +1634,8 @@ bool TClifo_application::user_create() // initvar e arrmask _msk->set_handler(LST_TIPO_RFSO, rfso_handler); _msk->set_handler(F_STATOCF, stato_handler); _msk->set_handler(F_PADESTIN, coddest_handler); - - TSheet_field & ns_sh = _msk->sfield(F_BANA); + + TSheet_field & ns_sh = _msk->sfield(F_BANA); ns_sh.set_notify(ban_notify); @@ -1630,7 +1650,7 @@ bool TClifo_application::user_create() // initvar e arrmask pnae.set_notify(effetti_notify); - _savenew = !ini_get_bool(CONFIG_STUDIO, "cg", "Cg02SN"); + _savenew = !ini_get_bool(CONFIG_STUDIO, "cg", "Cg02SN"); return true; } diff --git a/src/cg/cg0700.cpp b/src/cg/cg0700.cpp index 2516e90fc..7a26a9d03 100755 --- a/src/cg/cg0700.cpp +++ b/src/cg/cg0700.cpp @@ -4,6 +4,8 @@ #include "cg0.h" #include "cg0700a.h" +#include +#include #include #include #include @@ -70,6 +72,7 @@ class TOccasionali_app : public TRelation_application bool user_destroy(); virtual TMask* _get_mask(int mode) {return _msk;} virtual bool changing_mask(int mode) {return FALSE;} + void ini2mask(TConfig& ini, TMask& m, bool query); public: // @cmember Disabilita la verifica del modulo : essendo una anagrafica, va sempre abilitata @@ -96,6 +99,32 @@ bool TOccasionali_app::user_destroy() return true; } +void TOccasionali_app::ini2mask(TConfig& ini, TMask& m, bool query) +{ + TString istat = ini.get_int(COM_CODISTAT); + + if (istat.full()) + { + const TRectype & com = cache().get(LF_COMUNI, istat); + + ini.set(OCC_STATO, com.get(COM_STATO)); + ini.set(OCC_COM, com.get(COM_COM)); + } + + istat = ini.get_int("CODISTATNASC"); + + if (istat.full()) + { + const TRectype & com = cache().get(LF_COMUNI, istat); + + ini.set(OCC_STATONASC, com.get(COM_STATO)); + ini.set(OCC_COMNASC, com.get(COM_COM)); + } + + TRelation_application::ini2mask(ini, m, query); +} + + int cg0700(int argc, char* argv[]) { TOccasionali_app a ; diff --git a/src/cg/cg0700a.h b/src/cg/cg0700a.h index 60e4babc6..429372ee3 100755 --- a/src/cg/cg0700a.h +++ b/src/cg/cg0700a.h @@ -28,3 +28,10 @@ #define O_TEL2 125 #define O_PTEL3 126 #define O_TEL3 127 +#define O_TIPOPERS 128 +#define O_ALLEG 129 +#define O_PADESTIN 130 +#define O_PFAX 131 +#define O_FAX 132 + +#include diff --git a/src/cg/cg0700a.uml b/src/cg/cg0700a.uml index 9488512bc..6c30536b8 100755 --- a/src/cg/cg0700a.uml +++ b/src/cg/cg0700a.uml @@ -24,7 +24,7 @@ BEGIN DISPLAY "Ragione Sociale@50" RAGSOC OUTPUT O_CODICE CFPI OUTPUT O_RAGSOC RAGSOC - FIELD CFPI + FIELD OCC_CFPI VALIDATE NOT_EMPTY_FUNC KEY 1 END @@ -32,7 +32,7 @@ END STRING O_RAGSOC 50 BEGIN PROMPT 2 2 "Ragione sociale " - FIELD RAGSOC + FIELD OCC_RAGSOC USE LF_OCCAS KEY 2 INPUT RAGSOC O_RAGSOC DISPLAY "Ragione Sociale@50" RAGSOC @@ -46,7 +46,7 @@ END STRING O_COFI 16 BEGIN PROMPT 2 3 "Codice fiscale " - FIELD COFI + FIELD OCC_COFI FLAGS "U" VALIDATE XTZCF_FUNC O_STATONAS O_SESSO O_DATANAS O_COMUNENAS END @@ -54,7 +54,7 @@ END STRING O_STATOPAIV 2 BEGIN PROMPT 37 3 "Partita IVA " - FIELD STATOPAIV + FIELD OCC_STATOPAIV HELP "Codice ISO dello stato" FLAGS "U" USE %SCE @@ -68,7 +68,7 @@ END STRING O_PAIV 12 BEGIN PROMPT 56 3 "" - FIELD PAIV + FIELD OCC_PAIV VALIDATE PI_FUNC O_STATOPAIV END @@ -80,20 +80,20 @@ END STRING O_INDIRIZZO 40 BEGIN PROMPT 2 6 "Indirizzo " - FIELD INDIR + FIELD OCC_INDIR END STRING O_NUMERO 6 BEGIN PROMPT 55 6 "Numero " - FIELD CIV + FIELD OCC_CIV END STRING O_STATO 3 BEGIN PROMPT 2 7 "Stato " HELP "Stato di residenza della persona" - FIELD STATO + FIELD OCC_STATO FLAGS "U" USE %STA INPUT CODTAB O_STATO @@ -106,7 +106,7 @@ END STRING O_COMUNE 4 BEGIN PROMPT 15 7 "Comune " - FIELD COM + FIELD OCC_COM FLAGS "U" USE LF_COMUNI INPUT STATO O_STATO @@ -140,7 +140,7 @@ END STRING O_LOCALITA 35 BEGIN PROMPT 2 8 "Localita' " - FIELD LOCALITA + FIELD OCC_LOCALITA HELP "Localita' del recapito" END @@ -148,7 +148,7 @@ NUMBER O_CAP 5 BEGIN PROMPT 56 8 "C.A.P. " HELP "CAP della residenza della persona" - FIELD CAP + FIELD OCC_CAP FLAGS "ZF" END @@ -162,19 +162,19 @@ BEGIN PROMPT 2 11 "Sesso " ITEM "M|Maschio" ITEM "F|Femmina" - FIELD SESSO + FIELD OCC_SESSO END DATE O_DATANAS BEGIN PROMPT 23 11 "Data " - FIELD DNASC + FIELD OCC_DNASC END STRING O_STATONAS 3 BEGIN PROMPT 41 11 "Stato " - FIELD STATONASC + FIELD OCC_STATONASC FLAGS "U" COPY USE O_STATO INPUT CODTAB O_STATONAS @@ -186,7 +186,7 @@ END STRING O_COMUNENAS 4 BEGIN PROMPT 57 11 "Comune " - FIELD COMNASC + FIELD OCC_COMNASC FLAGS "U" COPY USE O_COMUNE INPUT STATO O_STATONAS @@ -209,97 +209,152 @@ END STRING O_REFERENTE 50 BEGIN -PROMPT 2 14 "Referente " -FIELD REFERENTE + PROMPT 2 14 "Referente " + FIELD OCC_REFERENTE +END + +LIST O_TIPOPERS 1 12 +BEGIN + PROMPT 2 15 "Tipo persona " + FIELD OCC_TIPOPERS + HELP "Tipo anagrafico del cliente/fornitore" + ITEM "F|Fisica" + ITEM "G|Giuridica" +END + +STRING O_ALLEG 1 +BEGIN + PROMPT 30 15 "Tipo " + FIELD OCC_ALLEG + SHEET "Codice|Descrizione@50" + HELP "Codice per l'inserimento negli allegati IVA" + INPUT O_ALLEG + ITEM " |Valido per allegato IVA" + ITEM "1|Non valido per allegato IVA" + ITEM "2|Occasionale" + ITEM "3|Documenti riepilogativi" + ITEM "4|Codice fiscale già inserito" + ITEM "5|Estero CEE" + ITEM "6|Privato" + ITEM "7|Ente pubblico" + ITEM "8|Fallimento/proc.concorsuale" + ITEM "9|Estero NON CEE" + ITEM "C|Scheda carburante" + ITEM "G|Gruppo IVA" + OUTPUT O_ALLEG +END + +STRING O_PADESTIN 7 +BEGIN + PROMPT 40 15 "Destinatario " + MODULES PA,FP + HELP "Codice ufficio dell destinatario della fattura elettronica" + FIELD OCC_PADESTIN END TEXT DLG_NULL BEGIN - PROMPT 2 15 "E-Mail" + PROMPT 2 16 "E-Mail" END STRING O_MAIL 50 25 BEGIN - PROMPT 2 16 "Normale " - FIELD MAIL + PROMPT 2 17 "Normale " + FIELD OCC_MAIL END BOOLEAN O_BYMAIL BEGIN - PROMPT 40 16 "Consenso spedizione doc tramite email" - FIELD BYMAIL + PROMPT 40 17 "Consenso spedizione doc tramite email" + FIELD OCC_BYMAIL MESSAGE FALSE CLEAR,O_DOCMAIL MESSAGE TRUE ENABLE,O_DOCMAIL END STRING O_DOCMAIL 50 25 BEGIN - PROMPT 2 17 "Documenti " - FIELD DOCMAIL + PROMPT 2 18 "Documenti " + FIELD OCC_DOCMAIL CHECKTYPE REQUIRED END STRING O_PEC 80 45 BEGIN - PROMPT 2 18 "Pec " - FIELD PEC + PROMPT 2 19 "Pec " + FIELD OCC_PEC END STRING O_PTEL 5 BEGIN - PROMPT 2 19 "Telefono " - FIELD PTEL + PROMPT 2 20 "Telefono " + FIELD OCC_PTEL HELP "Prefisso telefonico primo recapito" END STRING O_TEL 20 15 BEGIN - PROMPT 18 19 "/" - FIELD TEL + PROMPT 18 20 "/" + FIELD OCC_TEL HELP "Numero telefonico primo recapito" END STRING O_PTEL2 5 BEGIN - PROMPT 11 20 " " - FIELD PTEL2 + PROMPT 11 21 " " + FIELD OCC_PTEL2 HELP "Prefisso telefonico secondo recapito" END STRING O_TEL2 20 15 BEGIN -PROMPT 18 20 "/" -FIELD TEL2 +PROMPT 18 21 "/" +FIELD OCC_TEL2 HELP "Numero telefonico secondo recapito" END STRING O_PTEL3 5 BEGIN - PROMPT 11 21 " " - FIELD PTEL3 + PROMPT 11 22 " " + FIELD OCC_PTEL3 HELP "Prefisso telefonico terzo recapito" END STRING O_TEL3 20 15 BEGIN - PROMPT 18 21 "/" - FIELD TEL3 + PROMPT 18 22 "/" + FIELD OCC_TEL3 HELP "Numero telefonico terzo recapito" END + +STRING O_PFAX 5 +BEGIN + PROMPT 2 23 "FAX " + FIELD OCC_PFAX + HELP "Prefisso telefonico fax" +END + +STRING O_FAX 23 15 +BEGIN + PROMPT 18 23 "/" + FIELD OCC_FAX + HELP "Numero telefonico fax" +END + STRING DLG_NULL 50 32 BEGIN PROMPT 1 -1 "Ultimo aggiornamento " FLAGS "D" - FIELD UTENTE + FIELD OCC_UTENTE END DATE DLG_NULL BEGIN PROMPT 60 -1 "" FLAGS "D" - FIELD DATAAGG + FIELD OCC_DATAAGG END + ENDPAGE ENDMASK