From c87ad73c8cdb6e8e01b7310c223d3fefa6425833 Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 25 Nov 2005 14:11:06 +0000 Subject: [PATCH] Patch level : 2.2 232 Files correlati : ve0.exe ve6.exe Ricompilazione Demo : [ ] Commento Bug 0000549 Non riesco a contab. un NAF con Ritenuta acc. es. 376 Faq con righe sconto non passano in analitica 374/375 git-svn-id: svn://10.65.10.50/trunk@13537 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ve/ve0100b.uml | 6 +-- ve/velib04b.cpp | 10 ++--- ve/velib04f.cpp | 107 +++++++++++++++++++++++++++++------------------- 3 files changed, 72 insertions(+), 51 deletions(-) diff --git a/ve/ve0100b.uml b/ve/ve0100b.uml index aeb17f3c1..5f73eef72 100755 --- a/ve/ve0100b.uml +++ b/ve/ve0100b.uml @@ -2,18 +2,18 @@ TOOLBAR "" 0 -2 0 2 -BUTTON DLG_OK 10 2 +BUTTON DLG_OK 12 2 BEGIN PROMPT -13 -1 "" END -BUTTON DLG_LINK 10 2 +BUTTON DLG_LINK 12 2 BEGIN PROMPT -23 -1 "Colle~ga" PICTURE BMP_LINK END -BUTTON DLG_QUIT 10 2 +BUTTON DLG_QUIT 12 2 BEGIN PROMPT -33 -1 "" END diff --git a/ve/velib04b.cpp b/ve/velib04b.cpp index 9052cc0f1..b387d4522 100755 --- a/ve/velib04b.cpp +++ b/ve/velib04b.cpp @@ -31,15 +31,11 @@ TImporto TMovimentoPN_VE::real2imp(const real& r, char row_type) CHECK(_caus,"Orgggssbb..._caus pointer is NULL!"); bool dare = false; if (row_type == 'S') - { dare = _caus->sezione_ritsoc() == 'D'; - } else { if (row_type == 'F') - { - dare = _caus->sezione_ritsoc() == 'D'; - } + dare = _caus->sezione_ritfis() == 'D'; else { dare = _caus->sezione_clifo() == 'D'; @@ -517,8 +513,8 @@ int TMovimentoPN_VE::recalc_cg_rows(const TString & descr_cr, TCausale & caus) } // Parametri da leggere all'inizio dell'elaborazione tramite load_parameters() -static TBill _sco_perc_bill, _sco_imp_bill, // Conti per gli sconti a percentuale ed importi (dalla configurazione) - _spin_billa, _spin_billv, +TBill _sco_perc_bill, _sco_imp_bill; // Conti per gli sconti a percentuale ed importi (dalla configurazione) +static TBill _spin_billa, _spin_billv, _spbo_billa, _spbo_billv; static TBill _co_cliente, // conto clifo per movimento d'anticipo _co_controp; // conto di contropartita per il movimetno d'anticipo diff --git a/ve/velib04f.cpp b/ve/velib04f.cpp index d3bc272ac..657224dd1 100755 --- a/ve/velib04f.cpp +++ b/ve/velib04f.cpp @@ -10,6 +10,7 @@ #include "../cg/cg2103.h" #include "../mg/anamag.h" +extern TBill _sco_perc_bill, _sco_imp_bill; class TCache_causali : public TCache { @@ -330,51 +331,73 @@ bool TContabilizzazione_analitica::find_conti(const TRiga_documento& riga, TStri const char tipocf = riga.doc().get_char(DOC_TIPOCF); TString80 contanal; - TBill bill; // Cerco il conto contabile - if (!search_costo_ricavo(riga, bill)) - return true; - if (!bill.is_analitico()) - return true; - if (riga.is_articolo()) - { - const TRectype& anamag = cache().get(LF_ANAMAG, riga.get(RDOC_CODARTMAG)); - bArcticleFound = !anamag.empty(); + if (riga.is_sconto()) + { + if (!_sco_perc_bill.ok()) + { + TConfig conf(CONFIG_DITTA, "ve"); + int gr = conf.get_int("SCOPRCODCON","ve",1); + int co = conf.get_int("SCOPRCODCON","ve",2); + long so = conf.get_long("SCOPRCODCON","ve",3); + + _sco_perc_bill.set(gr,co,so); + + gr = conf.get_int("SCOIMCODCON","ve",1); + co = conf.get_int("SCOIMCODCON","ve",2); + so = conf.get_long("SCOIMCODCON","ve",3); + _sco_imp_bill.set(gr,co,so); + } + if (riga.is_sconto_perc()) + bill = _sco_perc_bill; + else + bill = _sco_imp_bill; + if (!bill.is_analitico()) + return true; if (_usepdcc) contanal.format("%03d%03d%06ld", bill.gruppo(), bill.conto(), bill.sottoconto()); - else - contanal = anamag.get(tipocf == 'F' ? ANAMAG_CONTOINDA : ANAMAG_CONTOINDV); - } - else - { - const char* tabanal = NULL; - if (riga.is_spese()) - { tabanal = "SPP"; } else - if (riga.is_prestazione()) - { tabanal = "PRS"; } else - if (riga.is_risorsa()) - { tabanal = "RIS"; } else - if (riga.is_attrezzatura()) - { tabanal = "ATR"; } - if (tabanal != NULL) - { - const TRectype& spp = cache().get(tabanal, riga.get(RDOC_CODART)); - bArcticleFound = !spp.empty(); + } + else + { + if (!search_costo_ricavo(riga, bill)) + return true; + if (!bill.is_analitico()) + return true; + + if (riga.is_articolo()) + { + const TRectype& anamag = cache().get(LF_ANAMAG, riga.get(RDOC_CODARTMAG)); + bArcticleFound = !anamag.empty(); if (_usepdcc) contanal.format("%03d%03d%06ld", bill.gruppo(), bill.conto(), bill.sottoconto()); else - contanal = spp.get(tipocf == 'F' ? "S2" : "S1"); - } - } - if (!bArcticleFound) // Se l'anagrtafica non esiste va bene cosi' - return true; - -/* TBill bill; // Cerco il conto contabile - if (!search_costo_ricavo(riga, bill)) - return true; - if (!bill.is_analitico()) - return true;*/ + contanal = anamag.get(tipocf == 'F' ? ANAMAG_CONTOINDA : ANAMAG_CONTOINDV); + } + else + { + const char* tabanal = NULL; + if (riga.is_spese()) + { tabanal = "SPP"; } else + if (riga.is_prestazione()) + { tabanal = "PRS"; } else + if (riga.is_risorsa()) + { tabanal = "RIS"; } else + if (riga.is_attrezzatura()) + { tabanal = "ATR"; } + if (tabanal != NULL) + { + const TRectype& spp = cache().get(tabanal, riga.get(RDOC_CODART)); + bArcticleFound = !spp.empty(); + if (_usepdcc) + contanal.format("%03d%03d%06ld", bill.gruppo(), bill.conto(), bill.sottoconto()); + else + contanal = spp.get(tipocf == 'F' ? "S2" : "S1"); + } + } + if (!bArcticleFound) // Se l'anagrtafica non esiste va bene cosi' + return true; + } const TString80 riga_cos = riga.codice_costo(); const TString80 riga_cms = riga.codice_commessa(); @@ -520,8 +543,10 @@ bool TContabilizzazione_analitica::elabora(TDocumento& doc, long numreg_cg, TVis { const TRiga_documento& riga = doc[i]; - // salto descrizioni, sconti e omaggi - if (riga.is_descrizione() || riga.is_sconto() || riga.is_omaggio()) +// salto descrizioni, sconti e omaggi +// if (riga.is_descrizione() || riga.is_sconto() || riga.is_omaggio()) +// salto descrizioni, e omaggi + if (riga.is_descrizione() || riga.is_omaggio()) continue; // salto valori nulli @@ -532,7 +557,7 @@ bool TContabilizzazione_analitica::elabora(TDocumento& doc, long numreg_cg, TVis if (valore.is_zero()) continue; - if (tiva != iva_vendite) + if (tiva != iva_vendite && !riga.is_sconto()) { real pind = ZERO; if (tiva != nessuna_iva)