diff --git a/cg/cg4300.h b/cg/cg4300.h index a7db23aa1..548d68857 100755 --- a/cg/cg4300.h +++ b/cg/cg4300.h @@ -460,6 +460,12 @@ public: void add_plafond (int month, const char* codatt, int type, real& howmuch, bool intra); + // Ritorna il parametro della liquidazione differita per la ditta corrente, cosi come + // e' scritto sui parametri liquidazione (LIA) + // Se si passa 0 (default) vede prende la ditta correntemente in corso di calcolo + // Analogamente per l'anno + bool TLiquidazione_app::is_differita(long firm = 0, int year = 0); + // ritorna l'aliquota ordinaria dal // codice IVA apposito immesso nei parametri studio real aliquota_agvia(); diff --git a/cg/cg4302.cpp b/cg/cg4302.cpp index 0a8acae54..f76e5ed55 100755 --- a/cg/cg4302.cpp +++ b/cg/cg4302.cpp @@ -758,6 +758,20 @@ real TLiquidazione_app::versamenti_IVA(int month, const char* types, bool intr) return ret; } +// Ritorna il parametro della liquidazione differita per la ditta corrente, cosi come +// e' scritto sui parametri liquidazione (LIA) +// Se si passa 0 (default) vede prende la ditta correntemente in corso di calcolo +// Analogamente per l'anno +bool TLiquidazione_app::is_differita(long firm, int year) +{ + long d = (firm == 0) ? _nditte->lfile().get_long("CODDITTA") : firm; + int y = (year == 0) ? atoi(_year) : year; + if (look_lia(d,atoi(_year))) + return _lia->get_bool("B1"); + else + return FALSE; +} + real TLiquidazione_app::aliquota_agvia() { TConfig cnf(CONFIG_STUDIO); diff --git a/cg/cg4305.cpp b/cg/cg4305.cpp index 2e9e5644f..61cf26128 100755 --- a/cg/cg4305.cpp +++ b/cg/cg4305.cpp @@ -456,10 +456,12 @@ bool TLiquidazione_app::recalc_acconto(real& inf, real& ina) real acq_intr = 0.0; bool isdifferita = FALSE; bool error = FALSE; - { - TConfig cnf(CONFIG_DITTA, "cg"); - isdifferita = cnf.get_bool("GeLiDi"); - } + // MI3262 + //{ + // TConfig cnf(CONFIG_DITTA, "cg"); + // isdifferita = cnf.get_bool("GeLiDi"); + //} + isdifferita = is_differita(); TString16 tipo_acc; // TBI rewrite from scratch diff --git a/cg/cg4900.cpp b/cg/cg4900.cpp index 3b90ee452..8ffee1c54 100755 --- a/cg/cg4900.cpp +++ b/cg/cg4900.cpp @@ -373,7 +373,9 @@ bool LiqAcc_app::video_vis() return FALSE; TConfig cnf(CONFIG_DITTA, "cg"); - bool liqdiff = cnf.get_bool("GeLiDi"); + // MI3262.. + bool liqdiff = lia.get_bool("B1");//= cnf.get_bool("GeLiDi"); + _tipo_acc = lia.get("S8"); TString16 freqviva = lia.get("S7"); TInteressi_IVA_table ver; diff --git a/cg/cg5100.cpp b/cg/cg5100.cpp index 6ccd6338b..6f7743d14 100755 --- a/cg/cg5100.cpp +++ b/cg/cg5100.cpp @@ -174,29 +174,9 @@ bool TParametri_ditta::postprocess_config(TMask& mask, TConfig& config) { check_registers(mask.get_int(FLD_ANLIIV)); mask.field(FLD_ANLIIV).set_dirty(mask.get_int(FLD_ANLIIV) != config.get_int("AnLiIv")); - if (mask.get_bool(CHK_GELIDI)) - { - TLocalisamfile ditte(LF_NDITTE); - const long ditta = get_firm(); - ditte.put("CODDITTA", ditta); - ditte.read(); - if (ditte.get("DINIZIOATT").empty()) - error_box("La gestione della liquidazione differita richiede " - "la data di inizio attivita' sull'anagrafica della ditta."); - - char freqiva = ditte.get_char("FREQVIVA"); - - TString16 key; key.format("%05ld%d", ditta, mask.get_int(FLD_ANLIIV)); - TTable lia("%LIA"); - lia.put("CODTAB", key); - if (lia.read() == NOERR) - freqiva = lia.get_char("S7"); - - if (freqiva != 'M') - error_box("La gestione della liquidazione differita richiede " - "la frequenza dei versamenti IVA mensile."); - } - + // MI3262 + // La gestione liquidazione differita e' stata spostata sui parametri liquidazione + // ovvero cg5300.cpp return TRUE; } diff --git a/cg/cg5100a.h b/cg/cg5100a.h index 06d5bb369..dd34cadd2 100755 --- a/cg/cg5100a.h +++ b/cg/cg5100a.h @@ -12,7 +12,6 @@ #define CHK_GESVAL 111 #define FLD_CODLIN 112 #define FLD_CRIVAP 113 -#define CHK_GELIDI 114 #define FLD_COCACH 115 #define FLD_COCAAP 116 #define FLD_CSBICHS 117 diff --git a/cg/cg5100a.uml b/cg/cg5100a.uml index f1dff36c5..9f925a434 100755 --- a/cg/cg5100a.uml +++ b/cg/cg5100a.uml @@ -50,14 +50,14 @@ BEGIN END -GROUPBOX DLG_NULL 76 8 +GROUPBOX DLG_NULL 76 7 BEGIN PROMPT 2 5 "Parametri contabilita'" END GROUPBOX DLG_NULL 76 6 BEGIN - PROMPT 2 13 "Parametri saldaconto" + PROMPT 2 12 "Parametri saldaconto" END BOOLEAN CHK_GSLBCN @@ -81,30 +81,23 @@ BEGIN FIELD StLgiU END -BOOLEAN CHK_GELIDI -BEGIN - PROMPT 4 9 "Gestione liquidazione differita" - HELP "Indicare se effettuare la liq. diff. ex DL 151 del 13-5-91 convertito da L. 202" - FIELD GeLiDi -END - BOOLEAN CHK_GESVEN BEGIN - PROMPT 4 10 "Gestione vendite" + PROMPT 4 9 "Gestione vendite" HELP "Indicare se e' attivata anche la gestione delle vendite" FIELD GesVen END BOOLEAN CHK_GEST74 BEGIN - PROMPT 4 11 "Gestione versamenti 4.tr per soggetti art. 74/4" + PROMPT 4 10 "Gestione versamenti 4.tr per soggetti art. 74/4" HELP "Indicare se si deve gestire il versamento del 4. trimestre per benzinai e autotrasportatori" FIELD GesT74 END BOOLEAN CHK_GESSAL BEGIN - PROMPT 4 14 "Gestione saldaconto " + PROMPT 4 13 "Gestione saldaconto " HELP "Indicare se attivare la gestione del saldaconto clienti/fornitori" MESSAGE TRUE ENABLE,CHK_GESVAL MESSAGE TRUE ENABLE,CHK_NRCLIDX @@ -124,7 +117,7 @@ END BOOLEAN CHK_GESVAL BEGIN - PROMPT 48 14 "Gestione Valuta" + PROMPT 48 13 "Gestione Valuta" HELP "Indicare se gestire i movimenti prima nota in valuta" FIELD GesVal GROUP GROUP_SALDACONTO @@ -132,7 +125,7 @@ END BOOLEAN CHK_NRCLIDX BEGIN - PROMPT 4 15 "N. Rif. allineato a destra per clienti" + PROMPT 4 14 "N. Rif. allineato a destra per clienti" HELP "Indicare se allineare a destra il num. di rif. delle partite nel saldaconto" FIELD NrCliDx GROUP GROUP_SALDACONTO @@ -140,7 +133,7 @@ END BOOLEAN CHK_NRFORDX BEGIN - PROMPT 48 15 "e per fornitori" + PROMPT 48 14 "e per fornitori" HELP "Indicare se allineare a destra il num. di rif. delle partite nel saldaconto" FIELD NrForDx GROUP GROUP_SALDACONTO @@ -148,7 +141,7 @@ END BOOLEAN CHK_DTCFPG BEGIN - PROMPT 4 16 "Dettaglio riga C/F sui pagamenti" + PROMPT 4 15 "Dettaglio riga C/F sui pagamenti" HELP "Indicare se si desidera il dettaglio riga clienti/fornitori in gestione pagamenti" FIELD DtCfPg GROUP GROUP_SALDACONTO @@ -156,7 +149,7 @@ END BOOLEAN CHK_RIFPRO BEGIN - PROMPT 4 17 "Riferimento partita con numero protocollo" + PROMPT 4 16 "Riferimento partita con numero protocollo" HELP "Indicare se si desidera il numero protocollo IVA anziche' il numero documento come riferimento partita" FIELD RifPro GROUP GROUP_SALDACONTO @@ -164,7 +157,7 @@ END STRING FLD_CODLIN 1 BEGIN - PROMPT 50 17 "Codice lingua " + PROMPT 50 16 "Codice lingua " HELP "Lingua di riferimento per rendiconti contabili" FIELD CodLin USE %LNG diff --git a/cg/cg5300.cpp b/cg/cg5300.cpp index 22755d092..3738216c9 100755 --- a/cg/cg5300.cpp +++ b/cg/cg5300.cpp @@ -28,6 +28,7 @@ class TParaliq_app : public TRelation_application protected: // Applicat virtual void on_config_change(); + static bool gelidi_handler(TMask_field& f, KEY k); protected: // Relapp virtual bool user_create(); @@ -59,6 +60,30 @@ public: virtual ~TParaliq_app() {} }; +inline TParaliq_app& app() { return (TParaliq_app&) main_app(); } + +bool TParaliq_app::gelidi_handler(TMask_field& f, KEY k) +{ + if (k==K_ENTER) + { + TLocalisamfile* ditte = app()._ditte; + TMask& m = f.mask(); + if (m.get_bool(F_GELIDI)) + { + const long ditta = m.get_long(F_CODDITTA); + ditte->put("CODDITTA", ditta); + if (ditte->read()==NOERR) + if (ditte->get("DINIZIOATT").empty()) + { + f.set(" "); + f.error_box("La gestione della liquidazione differita richiede " + "la data di inizio attivita' sull'anagrafica della ditta."); + } + } + } + return TRUE; +} + void TParaliq_app::check_registers(int year) { @@ -161,6 +186,7 @@ bool TParaliq_app::user_create() _ditte = new TLocalisamfile(LF_NDITTE); _msk = new TMask("cg5300a"); + _msk->set_handler(F_GELIDI,gelidi_handler); ((TSheet_field&)_msk->field(F_SHEET_PLA)).set_notify(sheet_action); return TRUE; } diff --git a/cg/cg5300a.h b/cg/cg5300a.h index 6665d13ef..50c0a934d 100755 --- a/cg/cg5300a.h +++ b/cg/cg5300a.h @@ -1,9 +1,10 @@ #define F_YEAR 301 #define F_CRED_PREC 302 #define F_FREQ_VERS 303 -#define F_SHEET_PLA 304 -#define F_CODDITTA 305 -#define F_RAGSOC 306 +#define F_GELIDI 304 +#define F_SHEET_PLA 305 +#define F_CODDITTA 306 +#define F_RAGSOC 307 #define F_CRED_COST 308 #define F_CODATT 101 #define F_DESATT 150 diff --git a/cg/cg5300a.uml b/cg/cg5300a.uml index c768a5e99..428010fd8 100755 --- a/cg/cg5300a.uml +++ b/cg/cg5300a.uml @@ -66,11 +66,17 @@ LIST F_FREQ_VERS 1 14 BEGIN PROMPT 4 5 "Frequenza versamenti " HELP "Indicare la frequenza dei versamenti delle liquidazioni IVA" - ITEM "M|Mensile" - ITEM "T|Trimestrale" + ITEM "M|Mensile" MESSAGE ENABLE,F_GELIDI + ITEM "T|Trimestrale" MESSAGE CLEAR,F_GELIDI FIELD S7 END +BOOLEAN F_GELIDI +BEGIN + PROMPT 45 5 "Liquidazione differita " + FIELD B1 +END + NUMBER F_CRED_PREC 15 BEGIN PROMPT 4 6 "Credito precedente "