diff --git a/src/f9/f9lib01.cpp b/src/f9/f9lib01.cpp index 7e30389d0..fb0c08c12 100644 --- a/src/f9/f9lib01.cpp +++ b/src/f9/f9lib01.cpp @@ -269,8 +269,8 @@ bool TEstrazione::is_integr_rev(const int numreg, _Out_ TString& numreg_rev_vend const TCausale& cau = cached_causale(mov.get(MOV_CODCAUS), mov.get_int(MOV_ANNOES)); const TString4 cau_reg = cau.causale_reg_iva(); - TToken_string key(mov.get(MOV_TIPO)); key.add(mov.get_long(MOV_CODCF)); - const long codcli = cache().get(LF_CLIFO, key).get_long(CLI_CODCFASS); + //TToken_string key(mov.get(MOV_TIPO)); key.add(mov.get_long(MOV_CODCF)); + const long numdoc = mov.get_long(MOV_NUMDOC);// cache().get(LF_CLIFO, key); TString query("USE "); query << LF_MOV << " KEY 1 SELECT " << MOV_CODCAUS << "==\"" << cau_reg << "\"\nFROM " << MOV_NUMREG << "==" << numreg; @@ -282,7 +282,7 @@ bool TEstrazione::is_integr_rev(const int numreg, _Out_ TString& numreg_rev_vend TRectype& curr = (TRectype&)mov_rs.cursor()->curr(); const long movcoll_found = curr.get_long(MOV_MOVCOLL); - if ((curr.get_long(MOV_CODCF) == codcli) && ((movcoll_found == 0L) || (movcoll_found == numreg))) + if ((curr.get_long(MOV_NUMDOC) == numdoc) && ((movcoll_found == 0L) || (movcoll_found == numreg))) { movcoll = mov_rs.get(MOV_NUMREG).as_int(); curr.put(MOV_MOVCOLL, numreg); @@ -306,7 +306,7 @@ bool TEstrazione::make_prosp_int_revc(const int numreg, TCategorie_doc::annesso& mov.put(MOV_NUMREG, numreg); mov.read(); TString rev_vend = mov.get(MOV_MOVCOLL); - if(rev_vend.full() || is_integr_rev(numreg, rev_vend)) + if((rev_vend.full() || is_integr_rev(numreg, rev_vend)) && rev_vend != "0") { TF9Prospetto_integr prosp; TString acq; acq << numreg; diff --git a/src/f9/f9lib01.h b/src/f9/f9lib01.h index 558045969..4d5893f08 100644 --- a/src/f9/f9lib01.h +++ b/src/f9/f9lib01.h @@ -541,6 +541,8 @@ class TProspetto_recset final : public TSQL_recordset void precarica_tabelle(); public: + void get_sum_imponibile_imposta(const char* numreg_ven, real& s_imponibili, real& s_imposte); + TProspetto_recset(const char* numreg_acq, const char* numreg_ven); ~TProspetto_recset(); }; diff --git a/src/f9/f9lib02.cpp b/src/f9/f9lib02.cpp index ded4446d5..e2b68e9f0 100644 --- a/src/f9/f9lib02.cpp +++ b/src/f9/f9lib02.cpp @@ -287,6 +287,22 @@ void TProspetto_recset::precarica_tabelle() } } +void TProspetto_recset::get_sum_imponibile_imposta(const char* numreg_ven, real& s_imponibili, real& s_imposte) +{ + TRecord_array iva(LF_RMOVIVA, RMI_NUMRIG); + TRectype* ivafilter = new TRectype(LF_RMOVIVA); + ivafilter->put(RMI_NUMREG, numreg_ven); + iva.read(ivafilter); + s_imponibili = ZERO; + s_imposte = ZERO; + for (int i = iva.first_row(); i <= iva.rows(); ++i) + { + TRectype& r = iva[i]; + s_imponibili += r.get_real("IMPONIBILE"); + s_imposte += r.get_real("IMPOSTA"); + } +} + TProspetto_recset::TProspetto_recset(const char* numreg_acq, const char* numreg_ven) : TSQL_recordset("") { _numreg = new TString; @@ -383,19 +399,21 @@ TProspetto_recset::TProspetto_recset(const char* numreg_acq, const char* numreg_ // Calcolo dal rmoviva real s_imponibili, s_imposte; - TMovimento_contabile movimento_pn; - TBaseisamfile mov(LF_MOV); + /*TMovimento_contabile movimento_pn; + TLocalisamfile mov(LF_MOV); mov.put(MOV_NUMREG, numreg_ven); + mov.read(); if (movimento_pn.read(mov) != NOERR) bool simo = true; s_imponibili = movimento_pn.imponibile(""); - s_imposte = movimento_pn.imposta(""); + s_imposte = movimento_pn.imposta("");*/ - /*TRectype& rec = _movimento_pn->curr(); + /*TMovimentoPN _movimento_pn; + TRectype& rec = _movimento_pn.curr(); rec.put(MOV_NUMREG, numreg_ven); - if (_movimento_pn->read() != NOERR) - bool simo = true; - _movimento_pn->get_sum_imponibile_imposta(s_imponibili, s_imposte);*/ + if (_movimento_pn.read() != NOERR) + bool simo = true;*/ + get_sum_imponibile_imposta(numreg_ven, s_imponibili, s_imposte); format_string(*_totale, TString() << s_imponibili + s_imposte); format_string(*_totimponibile, s_imponibili.stringa());