From 6dc48175f812fd46c248bc1ebe92a085764f278d Mon Sep 17 00:00:00 2001 From: guy Date: Tue, 4 Dec 2012 16:46:19 +0000 Subject: [PATCH] Supporto per IVAXCASSA in fatturazione Aggiunta dotazione iniziale oltre che odierna e temporanea in Genrazione Documenti di trasporto git-svn-id: svn://10.65.10.50/branches/R_10_00@22765 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- lv/lv2500.cpp | 58 +++++++++++++++++++++++++++------------------------ lv/lv3100.cpp | 28 ++++++++++++++++--------- 2 files changed, 49 insertions(+), 37 deletions(-) diff --git a/lv/lv2500.cpp b/lv/lv2500.cpp index c3a431339..0190635f0 100755 --- a/lv/lv2500.cpp +++ b/lv/lv2500.cpp @@ -1,7 +1,5 @@ -#include -#include #include -#include +#include #include #include @@ -10,17 +8,15 @@ #include "../pr/agenti.h" #include "../pr/percprov.h" -#include "clifo.h" #include "../cg/cfban.h" +#include "../cg/cglib03.h" + +#include "clifo.h" #include "comuni.h" #include "cfven.h" #include "lvcondv.h" #include "lvrcondv.h" -#include "doc.h" -#include "rdoc.h" -#include "../db/dblib.h" -#include "../mg/mglib.h" #include "../ve/ve6200.h" #include "../ve/ve6200a.h" @@ -183,7 +179,6 @@ bool TFatturazione_lavanderie::doc_raggruppabili(const TDocumento& doc_in, const if (doc_in.ha_riga_esenzione() != doc_out.ha_riga_esenzione()) return false; bool ok = true; - TString campo; //scorro tutti i campi contenuti nella TToken_string //se sto controllando i campi CODABI e CODCAB, allora il controllo @@ -197,7 +192,7 @@ bool TFatturazione_lavanderie::doc_raggruppabili(const TDocumento& doc_in, const } else { - campo = doc_in.get(c); + const TString& campo = doc_in.get(c); ok &= campo == doc_out.get(c); } } @@ -245,24 +240,21 @@ void TFatturazione_lavanderie::pre_process_input(TLista_documenti& doc_in) TDocumento& doc = doc_in[id]; const int rows = doc.physical_rows(); + TString str_real; for (int i = 1; i <= rows; i++) { - TRiga_documento & row = doc[i]; - TString str_real = row.get(RDOC_QTAREALE); - + TRiga_documento& row = doc[i]; + str_real = row.get(RDOC_QTAREALE); if (str_real.full()) { - real qta_real(decode(str_real)); - + const real qta_real(decode(str_real)); row.put(RDOC_QTA, qta_real); row.zero(RDOC_QTAREALE); } str_real = row.get(RDOC_QTARITREALE); - if (str_real.full()) { - real qta_real(decode(str_real)); - + const real qta_real(decode(str_real)); row.put(RDOC_QTAGG1, qta_real); row.zero(RDOC_QTARITREALE); } @@ -515,10 +507,11 @@ int TFatturazione_lavanderie::write_fatt_ragg(const bool solotot) //e/o eliminare quelle inutili e/o aggiungere quelle per il ciclaggio su 2 linee void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_documenti& doc_in) { - bool use_indsp = ini_get_bool(CONFIG_DITTA, "mg", "MOV_INDSPED"); - //scorro tutti i documenti di output generati precedentemente - - for (int id = 0; id < doc_out.items(); id++) + const bool use_indsp = ini_get_bool(CONFIG_DITTA, "mg", "MOV_INDSPED"); + const bool riftest = ini_get_bool(CONFIG_DITTA, "lv", "RifTest"); + + //scorro tutti i documenti di output generati precedentemente + for (int id = 0; id < doc_out.items(); id++) { //instanzio il documento e recupero le variabili di interesse per recuperare //il contratto del cliente in questione @@ -532,22 +525,33 @@ void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_do bool fixdotin = false; bool elcons = contr.get_bool(LVCONDV_ELCONS); bool rifbol = contr.get_bool(LVCONDV_RIFBOL); - bool riftest = ini_get_bool(CONFIG_DITTA, "lv", "RifTest"); - bool liqdiff = doc.clifor().get_int(CLI_ALLEG) == 7 && doc.clifor().vendite().get_bool(CFV_FATTSOSP); + + const int alleg = doc.clifor().get_int(CLI_ALLEG); + const bool liqdiff = alleg == 7 && doc.clifor().vendite().get_bool(CFV_FATTSOSP); real consvconv; real impvconv; TAssoc_array nolo_computed; + doc.zero(DOC_LIQDIFF); + doc.zero(DOC_IVAXCASSA); if (liqdiff) + { doc.put(DOC_LIQDIFF, "X"); + } else - doc.zero(DOC_LIQDIFF); + { + if ((alleg < 5 || alleg == 7) && doc.clifor().get(CLI_PAIV).full() && + gestione_IVAxCassa(doc.get_date(DOC_DATADOC))) + { + doc.put(DOC_IVAXCASSA, "X"); + } + } if (doc.physical_rows() > 0 && doc[1].is_descrizione()) { if (elcons) { TRiga_documento& rout = doc[1]; - rout.put(RDOC_DESCR, "COME DA ELENCO CONSEGNE"); + rout.put(RDOC_DESCR, TR("COME DA ELENCO CONSEGNE")); rout.put(RDOC_DESCLUNGA, false); rout.put(RDOC_DESCEST, ""); } @@ -1454,7 +1458,7 @@ void TFatturazione_lavanderie::campi_raggruppamento_righe(TToken_string& campi_r if (riga_uguale(2)) { const int tipoprezzo = ini_get_int(CONFIG_DITTA, "lv", "TipoPr"); - if(tipoprezzo == 0) + if (tipoprezzo == 0) campi_riga.add(RDOC_SCONTO); else campi_riga.add(RDOC_PREZZO"|"RDOC_SCONTO); diff --git a/lv/lv3100.cpp b/lv/lv3100.cpp index 327a541eb..aa2bf7518 100755 --- a/lv/lv3100.cpp +++ b/lv/lv3100.cpp @@ -543,9 +543,6 @@ bool TGestione_bolle_msk::lv_bolla_handler(TMask_field& f, KEY k) } //gestione campi dotazione odierna e dotazione temporanea - if(codart.left(1) == "N") - int cazzone = 1; - TArticolo_lavanderie& artrec = cached_article_laundry(codart, 'C', codcf, indsped); //fisso l'anno esercizio TEsercizi_contabili& esc = esercizi(); @@ -553,19 +550,25 @@ bool TGestione_bolle_msk::lv_bolla_handler(TMask_field& f, KEY k) //estraggo il record corrispondente su LF_CLIFOGIAC const TRecmag_lavanderie& reclav = artrec.find_rec(last_esc); - real dotod = reclav.get_real(CLIFOGIAC_DOTOD); - real dotmp = reclav.get_real(CLIFOGIAC_DOTTM); - - if(reclav.empty()) + real dotod, dotmp, dotin; + if (reclav.empty()) { TArticolo_lavanderie& artrec1 = cached_article_laundry(codart, 'C', codcf, 0); const TRecmag_lavanderie& reclav1 = artrec1.find_rec(last_esc); dotod = reclav1.get_real(CLIFOGIAC_DOTOD); dotmp = reclav1.get_real(CLIFOGIAC_DOTTM); + dotin = reclav1.get_real(CLIFOGIAC_DOTIN); + } + else + { + dotod = reclav.get_real(CLIFOGIAC_DOTOD); + dotmp = reclav.get_real(CLIFOGIAC_DOTTM); + dotin = reclav.get_real(CLIFOGIAC_DOTIN); } rdoc.put("DOTOD", dotod); rdoc.put("DOTMP", dotmp); + rdoc.put("DOTIN", dotin); //elaborazione per il prezzo: o lo prendo dalle righe contratto, o dall'anagrafica magazzino const TString& sconto = rcont.get(LVRCONDV_SCONTPERC).as_string(); @@ -586,7 +589,6 @@ bool TGestione_bolle_msk::lv_bolla_handler(TMask_field& f, KEY k) for (int i = 1; i <= righe; i++) { TRiga_documento& r = doc[i]; - doc[i].autoload(sheet); sheet.check_row(i - 1, 0x3); } @@ -645,7 +647,7 @@ bool TGestione_bolle_msk::lv_ritirato_handler(TMask_field& f, KEY k) real dotod = magcli.get_long(CLIFOGIAC_DOTOD); //segnalazione Tassan mail 05/04/2011 ore 17:08 if (ritirato > dotod && f.dirty() && dotin > 0 && dotod > 0) //accordi da Tassan in data 06/04/2011 - warning_box(TR("ATTENZIONE: stai ritirando un quantitativo maggiore della dotazione!")); + warning_box(TR("ATTENZIONE: si sta ritirando un quantitativo maggiore della dotazione!")); TDocumento& doc = dmask.doc(); @@ -768,10 +770,13 @@ bool TGestione_bolle_msk::lv_codart_handler(TMask_field& f, KEY k) const TRecmag_lavanderie& reclav = artrec.find_rec(last_esc); const real dotod = reclav.get_real(CLIFOGIAC_DOTOD); - const real dotmp = reclav.get_real(CLIFOGIAC_DOTTM); + // const real dotmp = reclav.get_real(CLIFOGIAC_DOTTM); + const real dotin = reclav.get_real(CLIFOGIAC_DOTIN); rdoc.put("DOTOD", dotod); msk.set(FR_JOLLY1, dotod); + + rdoc.put("DOTIN", dotin); } if (rdoc.get(RDOC_CODAGG1).empty()) @@ -1470,6 +1475,8 @@ int TGestione_bolle_app::read(TMask& m) TDocumento& d = mask.doc(); _giac.reset(d); + + // A che cavolo serve? FOR_EACH_DOC_ROW_BACK(d, r, row) { TRiga_documento& rdoc = (TRiga_documento&)*row; @@ -1477,6 +1484,7 @@ int TGestione_bolle_app::read(TMask& m) //real dotod = _giac.giac_att(rdoc, true); //real dotmp = _giac.giac_att(rdoc, false); } + mask.doc2mask(); mask.reset_autoselect(); }