From 87ebf8ebeb8f899f503283621589bc668e813bb4 Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 21 Jun 2010 07:30:36 +0000 Subject: [PATCH] Patch level : nopatch Files correlati : Ricompilazione Demo : [ ] Commento : ATS invio fatture git-svn-id: svn://10.65.10.50/trunk@20578 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ps/ps0713100.cpp | 92 +++++++++++++++++++++++++++++++++--------------- 1 file changed, 63 insertions(+), 29 deletions(-) diff --git a/ps/ps0713100.cpp b/ps/ps0713100.cpp index e9b249ef7..2cd96b40f 100755 --- a/ps/ps0713100.cpp +++ b/ps/ps0713100.cpp @@ -135,15 +135,13 @@ void TEsporta_dativa_app::esporta_righe_iva(const TMask& m) const const TDate dadata(1, 1, adata.year() - 1); //preparo query su righe iva joinati ai mov - TString query; - query << "USE RMOVIVA " - << "SELECT ((NUM(ANSI(23.DATAREG))>=NUM(ANSI(#DADATA)))" - << "&&(NUM(ANSI(23.DATAREG))<=NUM(ANSI(#ADATA))))&&(23.INVIVA!=\"X\")&&(23.TIPO=\"F\")"; + TString query("USE RMOVIVA SELECT BETWEEN(23.DATAREG,#DADATA,#ADATA)&&(23.INVIVA!=\"X\")&&(23.TIPO=\"F\")\n"); - if (m.get_int(F_JOB) == 1) - query << "&&(CODCMS!=\"\")\n"; - else - query << "&&(CODCMS=\"\")\n"; + bool with_cms = m.get_int(F_JOB) == 1; +/* if (m.get_int(F_JOB) == 1) + query << "&&(CODCMS!=\"\")\n"; + else + query << "&&(CODCMS=\"\")\n"; */ query << "JOIN MOV INTO NUMREG==NUMREG\n" << "JOIN %IVA ALIAS 101 INTO CODTAB==CODIVA\n" @@ -165,40 +163,76 @@ void TEsporta_dativa_app::esporta_righe_iva(const TMask& m) const TDate last_data_pag; const long numreg = rmoviva.get(RMI_NUMREG).as_int(); - const real impiva = rmoviva.get(RMI_IMPONIBILE).as_real(); bool partita_chiusa = test_partita(numreg, last_data_pag); if (partita_chiusa) { //creazione di un nuovo record da esportare - csv.new_rec(""); //..e successivo riempimento TString8 codcms; codcms.cut(0); TString query_movana; query_movana << "USE MOVANA KEY 3\n" - << "FROM NUMREGCG=NUMREG\n" - << "TO NUMREGCG=NUMREG"; + << "FROM NUMREGCG=#NUMREG\n" + << "TO NUMREGCG=#NUMREG"; TISAM_recordset rec_movana(query_movana); - rec_movana.set_var("#NUMREGCG", numreg); + + rec_movana.set_var("#NUMREG", numreg); + + int items = rec_movana.items(); + if (items > 0) + { + if (with_cms) + { + csv.new_rec(""); + rec_movana.move_first(); + + const long numregca = rec_movana.get("NUMREG").as_int(); + TAnal_mov movana(numregca); - TAnal_mov movana = rec_movana.move_first(); + for(int i = 1; i <= movana.rows(); i++) + { + const TRectype& rmovana = movana.body()[i]; - for(int i = 1; i <= movana.rows(); i++) - { - const TRectype& rmovana = movana.body()[i]; - const real impana = rmovana.get_real("IMPORTO"); + codcms = rmovana.get("CODCMS"); + csv.set(0, codcms); + csv.set(1, rmoviva.get("23.CODCF")); + csv.set(2, rmoviva.get("20.RAGSOC")); + char sez = rmovana.get_char("SEZIONE"); + TImporto importo(sez, rmovana.get_real("IMPORTO")); + importo.normalize('D'); + csv.set(3, importo.valore()); + csv.set(6, rmoviva.get("23.DATADOC")); + csv.set(7, rmoviva.get("23.NUMDOC")); + csv.set(8, last_data_pag); + } + } + while (rmoviva.move_next()) + { + const long wnumreg = rmoviva.get(RMI_NUMREG).as_int(); + if (wnumreg != numreg) + { + rmoviva.move_prev(); + break; + } + } + } + else + { + const TString & codcms = rmoviva.get("CODCMS").as_string(); - if(impiva == impana) - codcms = rmovana.get("CODCMS"); - } - - csv.set(0, codcms); - csv.set(1, rmoviva.get("23.CODCF")); - csv.set(2, rmoviva.get("20.RAGSOC")); - csv.set(3, rmoviva.get(RMI_IMPONIBILE).as_real()); - csv.set(6, rmoviva.get("23.DATADOC")); - csv.set(7, rmoviva.get("23.NUMDOC")); - csv.set(8, last_data_pag); + if ((!with_cms && codcms.blank()) || + (with_cms && codcms.full())) + { + csv.new_rec(""); + csv.set(0, codcms); + csv.set(1, rmoviva.get("23.CODCF")); + csv.set(2, rmoviva.get("20.RAGSOC")); + csv.set(3, rmoviva.get(RMI_IMPONIBILE).as_real()); + csv.set(6, rmoviva.get("23.DATADOC")); + csv.set(7, rmoviva.get("23.NUMDOC")); + csv.set(8, last_data_pag); + } + } } } csv.save_as(path, fmt_text);