Patch level : 10.0 418

Files correlati     : tp0.exe
Ricompilazione Demo : [ ]
Commento

Implementazione calcolo CONAI con un campo e le sottocategorie per ogni tipo di imballo, sulle righe documento.

Verificae che i profili personalizzati di documento e di riga continuino a funzionare.

Doceve necessita, bisogna:

per I profili documento personalizzati sostituire il campo 500 (sheet) con il campo seguente

SPREADSHEET 500
BE
PR 2 8 ""
IT "Lordo@5"
IT "Tipo riga@2"
IT "Mag. @3"
IT "Dep.@2"
IT "Codice Articolo@20"
IT "Codice\nLivello 1@9"
IT "Codice\nLivello 2@9"
IT "Codice\nLivello 3@9"
IT "Codice\nLivello 4@9"
IT "Descrizione@50"
IT "UM@2"
IT "Quantita'@11"
IT "Prezzo@18"
IT "Quantita'\nEvasa@11"
IT "Evasa@1"
IT "Tara@15"
IT "Peso Netto@15"
IT "N.Colli@7"
IT "Da evadere@1"
IT "Sconto@25"
IT "Perc.\nProvv.@5"
IT "Imp.Fisso unitario@1"
IT "Importo Fisso@18"
IT "Codice\nIVA@4"
IT "Addebito IVA@1"
IT "Aspetto beni@3"
IT "Causale\nMagazzino@12"
IT "Magazzino\nCollegato@9"
IT "Deposito\nCollegato@9"
IT "Data\nconsegna@10"
IT "Cod. Art. Mag.@20"
IT "Controllato@11"
IT "Quantita'\nagg. 1@13"
IT "Quantita'\nagg. 2@13"
IT "Quantita'\nagg. 3@13"
IT "Quantita'\nagg. 4@13"
IT "Quantita'\nagg. 5@13"
IT "Impianto@8"
IT "Linea@5"
IT "CDC 1@20"
IT "CDC 1@20"
IT "CDC 1@20"
IT "CDC 1@20"
IT "CDC 1@20"
IT "CDC 1@20"
IT "CDC 1@20"
IT "CDC 1@20"
IT "CDC 1@20"
IT "CDC 1@20"
IT "CDC 1@20"
IT "CDC 1@20"
IT "Codice aggiuntivo 1@20"
IT "Codice aggiuntivo 2@20"
IT "Detraibilità@12"
IT "Jolly@20"
IT "Jolly@20"
IT "Jolly@20"
IT "Jolly@20"
IT "Jolly@20"
IT "Jolly@20"
IT "Jolly@20"
IT "Jolly@20"
IT "Jolly@20"
IT "Jolly@20"
IT "Riduzione prezzo@18"
IT "2a Perc.\nProvv.@5"
IT "Sottocategoria\nACCIAIO@4"
IT "Peso unitario\nACCIAIO@13"
IT "Sottocategoria\nALLUMINIO@4"
IT "Peso unitario\nALLUMINIO@13"
IT "Sottocategoria\nCARTA@4"
IT "Peso unitario\nCARTA@13"
IT "Sottocategoria\nPLASTICA@4"
IT "Peso unitario\nPLASTIC...


git-svn-id: svn://10.65.10.50/trunk@19310 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2009-09-20 23:40:35 +00:00
parent dbdb890a48
commit 6db459aef4

View File

@ -157,13 +157,11 @@ void TDichiarazione_CONAI::scrivi_csv_doc_con_riga_generata(TDocumento& doc, con
{
const TRiga_documento& rdoc = doc[j];
//servono SOLO le righe CONAI!!!!!
const TString& codagg1 = rdoc.get(get_conai_cat_name(conai_specie));
if (codagg1 == conai_codart)
{
//quantita' totale conai (A + B) sul report
const real n = rdoc.calc_conai_qta(conai_specie);
if (n != ZERO)
{
qta_AB_conai.add(n, j); //va calcolato con il metodo apposito
//quantita' assoggettata (B) sul report
@ -177,23 +175,17 @@ void TDichiarazione_CONAI::scrivi_csv_doc_con_riga_generata(TDocumento& doc, con
const TRiga_documento& rdoc = doc[i];
//servono SOLO le righe CONAI!!!!!
const TString& codagg1 = rdoc.get(get_conai_cat_name(conai_specie));
if (codagg1 == conai_codart)
{
//se non e' stata definita la sottocategoria conai (maiali!!) va messa uguale a quella generica
TString4 codagg2 = rdoc.get(get_conai_sottocat_name(conai_specie));
if (codagg2.empty())
codagg2 = codagg1;
TString4 sottocat = rdoc.get(get_conai_sottocat_name(conai_specie));
//puo' capitare che la sottocategoria sia stata troncata alla categoria
if (codagg2 == codagg1)
codagg2 << "99";
if (sottocat.len() == 2)
sottocat << "99";
//creazione di un nuovo record da esportare
csv.new_rec("");
//riempie i campi del record del csv
//codnum-anno-ndoc-datadoc-codcli-cofi-nriga-codagg1-codagg2-prezzo-um-conai(AB)-conai(B)-conai(A)
//codnum-anno-ndoc-datadoc-codcli-cofi-nriga-codagg1-sottocat-prezzo-um-conai(AB)-conai(B)-conai(A)
//parte chiave della riga
csv.set(0, TVariant(rdoc.get(RDOC_CODNUM)));
csv.set(1, TVariant(rdoc.get(RDOC_ANNO)));
@ -205,8 +197,8 @@ void TDichiarazione_CONAI::scrivi_csv_doc_con_riga_generata(TDocumento& doc, con
csv.set(7, TVariant(rdoc.get(RDOC_NRIGA)));
//codici conai
csv.set(8, TVariant(codagg1)); //codice materiale conai (es. carta, legno...)
csv.set(9, TVariant(codagg2)); //sottocodice materiale (es. carta imballo, busta...)
csv.set(8, TVariant(sottocat.left(2))); //codice materiale conai (es. carta, legno...)
csv.set(9, TVariant(sottocat)); //sottocodice materiale (es. carta imballo, busta...)
//prezzo
const real prezzo = riga_generata.get_real(RDOC_PREZZO); //va preso dalla riga generata
@ -252,7 +244,6 @@ void TDichiarazione_CONAI::scrivi_csv_doc_con_riga_generata(TDocumento& doc, con
csv.set(17, TVariant(cfven_perc_conai));
}
}
}
//riempie recordset con le righe CONAI del documento che NON ha una riga generata CONAI;trattasi di documenti..
//..farlocchi costruiti ad arte per correggere le vaccate dei rompiscatolifici
@ -278,24 +269,17 @@ void TDichiarazione_CONAI::scrivi_csv_doc_speciale(TDocumento& doc, TDichiarazio
{
const TRiga_documento& rdoc = doc[i];
//servono SOLO le righe CONAI!!!!!
const TString& codagg1 = rdoc.get(get_conai_cat_name(conai_specie));
if (codagg1 == conai_codart)
{
//se non e' stata definita la sottocategoria conai (maiali!!) va messa uguale a quella generica
TString4 codagg2 = rdoc.get(get_conai_sottocat_name(conai_specie));
if (codagg2.empty())
codagg2 = codagg1;
TString4 sottocat = rdoc.get(get_conai_sottocat_name(conai_specie));
//puo' capitare che la sottocategoria sia stata troncata alla categoria
if (codagg2 == codagg1)
codagg2 << "99";
if (sottocat.len() == 2)
sottocat << "99";
//creazione di un nuovo record da esportare
csv.new_rec("");
//riempie i campi del record del csv
//codnum-anno-ndoc-datadoc-codcli-cofi-nriga-codagg1-codagg2-prezzo-um-conai(AB)-conai(B)-conai(A)
//codnum-anno-ndoc-datadoc-codcli-cofi-nriga-codagg1-sottocat-prezzo-um-conai(AB)-conai(B)-conai(A)
//parte chiave della riga
csv.set(0, TVariant(rdoc.get(RDOC_CODNUM)));
csv.set(1, TVariant(rdoc.get(RDOC_ANNO)));
@ -307,8 +291,8 @@ void TDichiarazione_CONAI::scrivi_csv_doc_speciale(TDocumento& doc, TDichiarazio
csv.set(7, TVariant(rdoc.get(RDOC_NRIGA)));
//codici conai
csv.set(8, TVariant(codagg1)); //codice materiale conai (es. carta, legno...)
csv.set(9, TVariant(codagg2)); //sottocodice materiale (es. carta imballo, busta...)
csv.set(8, TVariant(sottocat.left(2))); //codice materiale conai (es. carta, legno...)
csv.set(9, TVariant(sottocat)); //sottocodice materiale (es. carta imballo, busta...)
//prezzo
const real prezzo = rdoc.get_real(RDOC_PREZZO); //va preso dalla riga stessa
@ -351,7 +335,6 @@ void TDichiarazione_CONAI::scrivi_csv_doc_speciale(TDocumento& doc, TDichiarazio
csv.set(17, TVariant(cfven_perc_conai));
}
}
}
//crea il documento che contiene la riga che gli viene passata,cerca la riga generata ed in base al risultato della ricerca chiama..
@ -402,7 +385,7 @@ static int compare_csv_rows_specie(const TObject** o1, const TObject** o2)
TToken_string& s1 = *(TToken_string*)*o1;
TToken_string& s2 = *(TToken_string*)*o2;
//deve ordinare sul campo codagg2 = codice specie conai (campo 8)
//deve ordinare sul campo sottocat = codice specie conai (campo 8)
const TString& c1 = s1.get(8);
const TString& c2 = s2.get(8);
@ -560,13 +543,15 @@ 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;
TString cat_fieldname(get_conai_cat_name(conai_specie));
TString scat_fieldname(get_conai_sottocat_name(conai_specie));
if (cat_fieldname!= "CODAGG1")
cat_fieldname.insert("RG1:");
if (scat_fieldname.blank())
return;
query << "USE RDOC KEY 1\n";
query << "SELECT (BETWEEN(DOC.DATADOC,#DADATA,#ADATA))&&(DOC.TIPODOC=#TIPODOC)&&(" << cat_fieldname << "=#CODART)\n";
scat_fieldname.insert("RG1:");
query << "USE RDOC\n";
query << "SELECT BETWEEN(33.DATADOC,#DADATA,#ADATA)&&(33.TIPODOC==#TIPODOC)&&(" << scat_fieldname <<"!=\"\")\n";
query << "JOIN DOC INTO PROVV==PROVV ANNO==ANNO CODNUM==CODNUM NDOC==NDOC\n";
query << "FROM CODNUM=#CODNUM ANNO=#ANNO PROVV=\"D\"\n";
query << "TO CODNUM=#CODNUM ANNO=#ANNO PROVV=\"D\"\n";
@ -578,7 +563,7 @@ void TDichiarazione_CONAI::elabora(const TMask& mask) const
rdoc.set_var("#ANNO", TVariant((long)anno));
rdoc.set_var("#DADATA", dataini);
rdoc.set_var("#ADATA", datafin);
rdoc.set_var("#CODART", codart);
//rdoc.set_var("#CODART", codart);
//creazione del csv recordset che verra' riempito dai record del recordset rdoc
TDichiarazione_CONAI_csv_recordset* csv = new TDichiarazione_CONAI_csv_recordset;