Patch level :10.0 952

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :
0001767: IMIN - dichiarazione conai
Descrizione i dati sono ftp:\\www.aga.it\ilaria\datieimin.zip.

società 2 per il cliente 200384, con esenzione conai al 100%, la fattura 740 del 30-11-10 viene considerato come conai da versare (vedi allegato 6.1) l'intero imponibile della fattura.


git-svn-id: svn://10.65.10.50/branches/R_10_00@21776 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2011-03-11 15:38:03 +00:00
parent e0be8dc3ec
commit ea36c4b0a6
2 changed files with 48 additions and 35 deletions

View File

@ -75,7 +75,29 @@ public:
TDichiarazione_CONAI_csv_recordset::TDichiarazione_CONAI_csv_recordset()
: TCSV_recordset("CSV(,)\n")
{}
{
//crea le colonne e ci mette l'intestazione! Nella prima versione sulla 3.2..
//..invece inseriva a posteriori un record con le intestazioni poichè non..
//..esisteva la create column con il nome della column!
create_column("CODNUM");
create_column("ANNO");
create_column("NDOC");
create_column("DATADOC");
create_column("CODCLI");
create_column("COFICLI");
create_column("CODART");
create_column("NRIGA");
create_column("CLASSE");
create_column("SOTTOCL");
create_column("PREZZO");
create_column("UM");
create_column("CONAI A");
create_column("CONAI B");
create_column("CONAI BxC");
create_column("CONAI A+B");
create_column("INDETDOC");
create_column("INDETCLI");
}
///////////////////////////////////////////////////////////
@ -309,7 +331,10 @@ void TDichiarazione_CONAI::scrivi_csv_doc_speciale(TDocumento& doc, TDichiarazio
//..in precedenza non deve fare nulla!)
real qta_assoggettata_conai = qta_tot_conai;
if (rdoc_perc_conai >= CENTO) // Guy: Mi pare strano gestire solo il caso 100%
//segnalazione Sirio 1767: nelle righe fatte a mano, se la % di esenzione sul cliente è 100% -> la qta_assoggettata_conai..
//..viene azzerata; questo perchè la rdoc_perc_conai può non essere modificabile a mano (ponendola = 100) se il verig non..
//..è personalizzato
if (rdoc_perc_conai >= CENTO || cfven_perc_conai >= CENTO) // Guy: Mi pare strano gestire solo il caso 100%
qta_assoggettata_conai = ZERO;
csv.set(13, TVariant(qta_assoggettata_conai));
@ -348,6 +373,13 @@ void TDichiarazione_CONAI::scrivi_csv(const TRectype& prima_riga, TDichiarazione
const TCli_for& clifo = doc.clifor();
const bool addconai = clifo.vendite().get_bool(CFV_ADDCONAI);
#ifdef DBG
//check del cliente e del documento
const long cazzo_codclifo = clifo.codice();
if (cazzo_codclifo == 200348 && numdoc == 740)
const int cazzone = 1;
#endif
//se il cliente non c'entra con il conai e' inutile perdere tempo!
if (addconai)
{
@ -544,11 +576,11 @@ void TDichiarazione_CONAI::elabora(const TMask& mask) const
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";
query << "USE RDOC";
query << "\nSELECT BETWEEN(33.DATADOC,#DADATA,#ADATA)&&(33.TIPODOC==#TIPODOC)&&(" << scat_fieldname <<"!=\"\")";
query << "\nJOIN DOC INTO PROVV==PROVV ANNO==ANNO CODNUM==CODNUM NDOC==NDOC";
query << "\nFROM CODNUM=#CODNUM ANNO=#ANNO PROVV=\"D\"";
query << "\nTO CODNUM=#CODNUM ANNO=#ANNO PROVV=\"D\"";
//crea il recordset principale relativo alle righe originali CONAI ed assegna subito i valori delle variabili che restano costanti al cambio..
//..numerazione/tipo: sono le date ed il codice articolo
@ -574,9 +606,9 @@ void TDichiarazione_CONAI::elabora(const TMask& mask) const
//quanti record validi ha trovato?
const long items = rdoc.items();
/*#ifdef DBG
#ifdef DBG
warning_box("Hai trovato %ld righe di %s! Ti sembrano abbastanza?", items, row->get(0));
#endif*/
#endif
//E crea pure la progind..
TProgind pi(tot_items, TR("Generazione righe..."), true, true);
@ -619,35 +651,16 @@ void TDichiarazione_CONAI::elabora(const TMask& mask) const
break;
}
#ifdef DBG
csv->save_as_text("D:/dati/imin32/cazzone.txt");
#endif
//se richiesto il file in formato excel...
if (mask.get_bool(F_EXCEL))
{
//crea la riga con le intestazioni dei campi e la mette all'inizio
csv->insert_rec(0);
//riempie i campi del primo record del csv in modo da avere l'intestazione
csv->set(0, "CODNUM");
csv->set(1, "ANNO");
csv->set(2, "NDOC");
csv->set(3, "DATADOC");
csv->set(4, "CODCLI");
csv->set(5, "COFICLI");
csv->set(6, "CODART");
csv->set(7, "NRIGA");
csv->set(8, "CLASSE");
csv->set(9, "SOTTOCL");
csv->set(10, "PREZZO");
csv->set(11, "UM");
csv->set(12, "CONAI A");
csv->set(13, "CONAI B");
csv->set(14, "CONAI BxC");
csv->set(15, "CONAI A+B");
csv->set(16, "INDETDOC");
csv->set(17, "INDETCLI");
TFilename path = mask.get(F_PATH);
path.lower();
if (path.ends_with("xls") || path.ends_with("slk"))
csv->save_as(path, fmt_html);
csv->save_as(path, fmt_unknown);
else
csv->save_as(path);

View File

@ -99,7 +99,7 @@ END
LIST F_SPECIECONAI 12
BEGIN
PROMPT 1 12 "@bSpecie CONAI da considerare"
PROMPT 1 12 "@bSpecie CONAI da considerare "
ITEM "0|Acciaio "
ITEM "1|Alluminio "
ITEM "2|Carta "
@ -110,9 +110,9 @@ BEGIN
FIELD #SPECIECONAI
END
LIST F_TIPOSTAMPA 21
LIST F_TIPOSTAMPA 19
BEGIN
PROMPT 45 12 "@bTipo stampa"
PROMPT 46 12 "@bTipo stampa "
ITEM "1|Modello 6.1"
ITEM "2|Allegato Mod. 6.1"
ITEM "3|Modello 6.3"