diff --git a/ps/ps0713300.cpp b/ps/ps0713300.cpp index d14bc5a01..8a7f499bd 100755 --- a/ps/ps0713300.cpp +++ b/ps/ps0713300.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #include #include "ps0713lib.h" @@ -77,8 +78,6 @@ long TImporta_fatacq_app::genera_movcg() mov.put(MOV_NUMREG, numreg); mov.put(MOV_DATACOMP, _msk->get_date(F_DATAREG)); mov.put(MOV_DATAREG, _msk->get_date(F_DATAREG)); - mov.put(MOV_TIPO, 'F'); - mov.put(MOV_CODCF, _msk->get(F_CODCF)); mov.put(MOV_CODCAUS, _msk->get(F_CODCAU)); mov.write(); @@ -137,17 +136,38 @@ void TImporta_fatacq_app::genera_analitica(const long numreg, TAssoc_array& righ bool TImporta_fatacq_app::transfer(const TFilename& file, const long numreg, TAssoc_array& righean) { + TLocalisamfile mov(LF_MOV); + mov.put(MOV_NUMREG, numreg); + mov.remove(); + TVB_recset s(file, ','); TProgind pi(s.items(),"Importazione fatture in corso ...",true,true); _configfile->set_paragraph("Transaction"); //setto il paragrafo [Transaction] del file ini - _configfile->set("Action","MODIFY"); + _configfile->set("Action","INSERT"); _configfile->set("Mode","AUTO"); _configfile->set_paragraph("23"); //setto il paragrafo [23] del file ini (testata) _configfile->set(MOV_NUMREG, numreg); + _configfile->set("SOLAIVA", ""); + _configfile->set(MOV_TIPO, 'F'); + _configfile->set(MOV_CODCF, _msk->get(F_CODCF)); - int nriga = 1; + int nriga = 1; + int nrigac = 2; + real totimponibile = ZERO; + real totimposta = ZERO; + const TString16 codiva = _msk->get(F_CODIVA); + const real iva = cache().get("%IVA", codiva, "R0"); + const int anno = _msk->get_date(F_DATAREG).year(); + + TString caus = _msk->get(F_CODCAU); + + _configfile->set(MOV_CODCAUS, caus); + + TToken_string key(caus); + key.add("1"); + const TRectype& causale = cache().get(LF_RCAUSALI, key); for (bool ok = s.move_first(); ok; ok = s.move_next()) { @@ -155,13 +175,18 @@ bool TImporta_fatacq_app::transfer(const TFilename& file, const long numreg, TAs break; TString8 paragraph; - paragraph.format("%d,%d",LF_RMOVIVA,nriga++); + paragraph.format("%d,%d", LF_RMOVIVA, nriga++); _configfile->set_paragraph(paragraph); TString16 codcom = s.get(0).as_string(); if(codcom.empty()) continue; - real imp = s.get(1).as_real(); + TString16 tmp = s.get(1).as_string(); + tmp.strip("."); + tmp.replace(',', '.'); + real imp(tmp); imp.round(2); + + totimponibile += imp; TCommessa cms(codcom); TCommessa_string ankey = cms.cmsstr(); @@ -174,10 +199,38 @@ bool TImporta_fatacq_app::transfer(const TFilename& file, const long numreg, TAs else righean.add(ankey, imp); + real rimposta = imp * iva / CENTO; rimposta.round(2); + totimposta += rimposta; + + _configfile->set(RMI_ANNOES, anno); _configfile->set(RMI_IMPONIBILE, imp.string()); - _configfile->set(RMI_CODIVA, _msk->get(F_CODIVA)); + _configfile->set(RMI_CODIVA, codiva); + _configfile->set(RMI_IMPOSTA, rimposta.string()); + _configfile->set(RMI_GRUPPO, ankey.gruppo()); + _configfile->set(RMI_CONTO, ankey.conto()); + _configfile->set(RMI_SOTTOCONTO, ankey.sotco()); + _configfile->set(RMI_TIPOATT, 1); } + const real totdoc = totimponibile + totimposta; + TImporto importo(causale.get("SEZIONE")[0], totdoc); + + TString8 paragraph; + paragraph.format("%d,%d", LF_RMOV, 1); + _configfile->set_paragraph(paragraph); + _configfile->set(RMV_NUMRIG, 1); + _configfile->set(RMV_ANNOES, anno); + _configfile->set(RMV_SEZIONE, causale.get("SEZIONE")); + _configfile->set(RMV_IMPORTO, importo.valore().string()); + _configfile->set(RMV_GRUPPO, causale.get("GRUPPO")); + _configfile->set(RMV_CONTO, causale.get("CONTO")); + _configfile->set(RMV_SOTTOCONTO, _msk->get_long(F_CODCF)); + _configfile->set(RMV_TIPOC, "F"); + _configfile->set(RMV_ROWTYPE, "T"); + + _configfile->set_paragraph("23"); + _configfile->set(MOV_TOTDOC, totdoc.string()); + _configfile->set_paragraph("Transaction"); return true;