From 2bd01e238a6acbd00e7e569d81a861c0af570082 Mon Sep 17 00:00:00 2001 From: luca Date: Thu, 6 Mar 2008 14:08:31 +0000 Subject: [PATCH] Patch level :10.0 / 4.0 Files correlati : Ricompilazione Demo : [ ] Commento :dichiarazione conai in transito git-svn-id: svn://10.65.10.50/trunk@16267 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- tp/tp0900.cpp | 65 ++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 57 insertions(+), 8 deletions(-) diff --git a/tp/tp0900.cpp b/tp/tp0900.cpp index 7a6ddc793..2102c89bf 100755 --- a/tp/tp0900.cpp +++ b/tp/tp0900.cpp @@ -10,6 +10,7 @@ #include #include +#include #include #include #include @@ -99,6 +100,7 @@ class TDichiarazione_CONAI : public TSkeleton_application { protected: + real clifo_conai(const long clifo_cod, const int conai_specie) const; void elabora(const TMask& mask) const; void scrivi_csv(const TRectype& prima_riga, TDichiarazione_CONAI_csv_recordset& csv, const int conai_specie, const TString& conai_codart) const; @@ -114,6 +116,40 @@ public: }; +real TDichiarazione_CONAI::clifo_conai(const long clifo_cod, const int conai_specie) const +{ + TToken_string cfven_key; + cfven_key.add("C"); + cfven_key.add(clifo_cod); + const TRectype& cfven_rec = cache().get(LF_CFVEN, cfven_key); + real cfven_perc_conai = ZERO; + + switch (conai_specie) + { + case 0: + cfven_perc_conai = cfven_rec.get_real(CFV_ESACC); + break; + case 1: + cfven_perc_conai = cfven_rec.get_real(CFV_ESALL); + break; + case 2: + cfven_perc_conai = cfven_rec.get_real(CFV_ESCAR); + break; + case 3: + cfven_perc_conai = cfven_rec.get_real(CFV_ESPLA); + break; + case 4: + cfven_perc_conai = cfven_rec.get_real(CFV_ESLEG); + break; + case 5: + cfven_perc_conai = cfven_rec.get_real(CFV_ESVET); + break; + default: + break; + } + return cfven_perc_conai; +} + //riempie recordset con le righe CONAI del documento che contiene una riga generata CONAI void TDichiarazione_CONAI::scrivi_csv_doc_con_riga_generata(TDocumento& doc, const int n_riga_generata, TDichiarazione_CONAI_csv_recordset& csv, const int conai_specie) const @@ -138,6 +174,8 @@ void TDichiarazione_CONAI::scrivi_csv_doc_con_riga_generata(TDocumento& doc, con TString16 clifo_cofi = clifo.get(CLI_COFI); if (clifo_cofi.empty()) clifo_cofi = clifo.get(CLI_PAIV); + //cerca la percentuale di esenzione conai sul cliente (controllo) + const real cfven_perc_conai = clifo_conai(clifo_cod, conai_specie); const int nrighe = doc.rows(); @@ -231,6 +269,12 @@ void TDichiarazione_CONAI::scrivi_csv_doc_con_riga_generata(TDocumento& doc, con //valore totale contributo (BxC) sul report const TCurrency totale_contrib_conai = qta_assoggettata_conai * prezzo; csv.set(14, TVariant(totale_contrib_conai.get_num())); + + //percentuale di esenzione conai in qtagg2 + csv.set(16, TVariant(perc)); + + //percentuale di esenzione conai in cfven + csv.set(17, TVariant(cfven_perc_conai)); } } } @@ -252,6 +296,8 @@ void TDichiarazione_CONAI::scrivi_csv_doc_speciale(TDocumento& doc, TDichiarazio TString16 clifo_cofi = clifo.get(CLI_COFI); if (clifo_cofi.empty()) clifo_cofi = clifo.get(CLI_PAIV); + //cerca la percentuale di esenzione conai sul cliente (controllo) + const real cfven_perc_conai = clifo_conai(clifo_cod, conai_specie); const int nrighe = doc.rows(); @@ -326,6 +372,12 @@ void TDichiarazione_CONAI::scrivi_csv_doc_speciale(TDocumento& doc, TDichiarazio //valore totale contributo (BxC) sul report const TCurrency totale_contrib_conai = qta_assoggettata_conai * prezzo; csv.set(14, TVariant(totale_contrib_conai.get_num())); + + //percentuale di esenzione conai in qtagg2 + csv.set(16, TVariant(perc)); + + //percentuale di esenzione conai in cfven + csv.set(17, TVariant(cfven_perc_conai)); } } } @@ -445,13 +497,13 @@ void TDichiarazione_CONAI::elabora(const TMask& mask) const } //Adesso tocca al codice articolo in base alla specie CONAI - const int specie_conai = mask.get_int(F_SPECIECONAI); + const int conai_specie = mask.get_int(F_SPECIECONAI); TConfig ditta_ini(CONFIG_DITTA, "ve"); TVariant codart; TString nome_report; //report di tipo 6.1 scelto in base alla specie conai - switch (specie_conai) + switch (conai_specie) { case 0: codart = ditta_ini.get("CODACC"); //acciaio @@ -493,11 +545,6 @@ void TDichiarazione_CONAI::elabora(const TMask& mask) const //cerca le righe con numerazione e tipo indicate nello sheet;prende sia le righe che generano CONAI (per avere il codice conai,.. //..le quantita' etc) e le righe generate da CONAI (per avere i prezzi) TString query; -/* query << "USE RDOC KEY 5\n"; - query << "SELECT (NUM(ANSI(33.DATADOC))>=NUM(ANSI(#DADATA)))&&(NUM(ANSI(33.DATADOC))<=NUM(ANSI(#ADATA)))&&(33.TIPODOC=#TIPODOC)&&(GENERATA=\"X\")\n"; - query << "JOIN DOC INTO PROVV==PROVV ANNO==ANNO CODNUM==CODNUM NDOC==NDOC\n"; - query << "FROM CODART=#CODART ANNO=#ANNO CODNUM=#CODNUM PROVV=\"D\"\n"; - query << "TO CODART=#CODART ANNO=#ANNO CODNUM=#CODNUM PROVV=\"D\"\n";*/ query << "USE RDOC KEY 1\n"; query << "SELECT (NUM(ANSI(33.DATADOC))>=NUM(ANSI(#DADATA)))&&(NUM(ANSI(33.DATADOC))<=NUM(ANSI(#ADATA)))&&(33.TIPODOC=#TIPODOC)&&(CODAGG1=#CODART)\n"; @@ -547,7 +594,7 @@ void TDichiarazione_CONAI::elabora(const TMask& mask) const const long ndoc = rdoc.get(RDOC_NDOC).as_int(); if (ndoc != last_ndoc) { - scrivi_csv(rdoc.cursor()->curr(), *csv, specie_conai, codart.as_string()); + scrivi_csv(rdoc.cursor()->curr(), *csv, conai_specie, codart.as_string()); last_ndoc = ndoc; } @@ -586,6 +633,8 @@ void TDichiarazione_CONAI::elabora(const TMask& mask) const csv->set(13, "CONAI B"); csv->set(14, "CONAI BxC"); csv->set(15, "CONAI A+B"); + csv->set(16, "INDETDOC"); + csv->set(17, "INDETCLI"); const TString path = mask.get(F_PATH); csv->save_as(path, fmt_text);