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
This commit is contained in:
luca 2008-03-06 14:08:31 +00:00
parent 4353afaf10
commit 2bd01e238a

View File

@ -10,6 +10,7 @@
#include <reputils.h>
#include <textset.h>
#include <cfven.h>
#include <clifo.h>
#include <doc.h>
#include <rdoc.h>
@ -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);