Merge remote-tracking branch 'origin/R_10_00' into R_10_00
This commit is contained in:
commit
6376fddbab
3
cd/test/ba0978.txt
Normal file
3
cd/test/ba0978.txt
Normal file
@ -0,0 +1,3 @@
|
||||
bacnv.exe
|
||||
|
||||
Migliorata la funzione di correzzione delle righe documento anche per chi ha il CONAI. E' sufficiente che ci siano anche le sottocategorie vecchie nella tabella.
|
31
cd/test/ba0978a.ini
Normal file
31
cd/test/ba0978a.ini
Normal file
@ -0,0 +1,31 @@
|
||||
[Main]
|
||||
Demo=0
|
||||
|
||||
[ba0]
|
||||
File(14) = bacnv.exe|X
|
||||
Patch = 0978
|
||||
Versione = 21511200
|
||||
|
||||
[ba99]
|
||||
Kill(0) = wxmsw240.dll|x
|
||||
Kill(1) = batbsce.txt|x
|
||||
Kill(2) = bastfsc.rep|x
|
||||
Kill(3) = bastfsc.msk|x
|
||||
Kill(4) = bastcms.msk|x
|
||||
Kill(5) = bastcms.rep|x
|
||||
Kill(6) = bastuue.rep|x
|
||||
Kill(7) = bastuue.msk|x
|
||||
|
||||
[ba]
|
||||
Data = 11-07-2020
|
||||
Descrizione = Base
|
||||
Dischi = 1
|
||||
Moduli = sy
|
||||
OEM =
|
||||
Patch = 978
|
||||
PostProcess = bainst -0 BA
|
||||
PreProcess =
|
||||
Prezzo(1) =
|
||||
Prezzo(2) =
|
||||
Versione = 21511200
|
||||
|
BIN
cd/test/ba0978a1.zip
Normal file
BIN
cd/test/ba0978a1.zip
Normal file
Binary file not shown.
@ -1,15 +1,9 @@
|
||||
f9prospintegr.rep
|
||||
fpmenu.men
|
||||
f90.exe
|
||||
f90100a.msk
|
||||
f90100d.msk
|
||||
f90200a.msk
|
||||
f90100b.msk
|
||||
f90100c.msk
|
||||
sql\f90\f90100.sql
|
||||
f90300a.msk
|
||||
sql\f90\f90102.sql
|
||||
f90300b.msk
|
||||
sql\f90\f90104.sql
|
||||
|
||||
Modificato pescaggio file documento cartaceo dalla spotlight se esiste.
|
||||
Modificato pescaggio file docuemnto cartaceo dalla spotlight se esiste.
|
||||
Modificato guessing movimenti passivi per associazione automatica piu' "intelligente" con FPPRO.
|
||||
Correzione controllo annessi obligatori.
|
||||
Correzione controllo movimento collegato (per rev. charge).
|
||||
Corretto messaggio di errore generazione prospetto integrativo.
|
||||
Correzione esportazione numero documento per le vendite secondo la regola che viene utilizzata nell'invio fp dove viene fatto il leading di 0 se esiste prefisso/suffisso.
|
||||
Correzione conferma estratti e segna sul movimento che e' estratto.
|
||||
|
@ -3,23 +3,11 @@ Demo=0
|
||||
|
||||
[f90]
|
||||
File(0) = f90.exe|X
|
||||
File(1) = f90100a.msk|X
|
||||
File(2) = f90100b.msk|X
|
||||
File(3) = f90100c.msk|X
|
||||
File(4) = f90100d.msk|X
|
||||
File(5) = f90200a.msk|X
|
||||
File(6) = f90300a.msk|X
|
||||
File(7) = f90300b.msk|X
|
||||
File(8) = f9prospintegr.rep|X
|
||||
File(9) = fpmenu.men|X
|
||||
File(10) = sql\f90\f90100.sql|X
|
||||
File(11) = sql\f90\f90102.sql|X
|
||||
File(12) = sql\f90\f90104.sql|X
|
||||
Patch = 0976
|
||||
Patch = 976
|
||||
Versione = 21511200
|
||||
|
||||
[f9]
|
||||
Data = 08-07-2020
|
||||
Data = 09-07-2020
|
||||
Descrizione = Archiviazione Sostitutiva
|
||||
Dischi = 1
|
||||
Moduli = fp,cg
|
||||
|
Binary file not shown.
3
cd/test/tp0978.txt
Normal file
3
cd/test/tp0978.txt
Normal file
@ -0,0 +1,3 @@
|
||||
tp0.exe
|
||||
|
||||
Sistemata la gestione delle rettifiche CONAI
|
21
cd/test/tp0978a.ini
Normal file
21
cd/test/tp0978a.ini
Normal file
@ -0,0 +1,21 @@
|
||||
[Main]
|
||||
Demo=0
|
||||
|
||||
[tp0]
|
||||
File(0) = tp0.exe|X
|
||||
Patch = 978
|
||||
Versione = 21511200
|
||||
|
||||
[tp]
|
||||
Data = 30-06-2020
|
||||
Descrizione = Trasferimento PACK
|
||||
Dischi = 1
|
||||
Moduli = ve
|
||||
OEM =
|
||||
Patch = 978
|
||||
PostProcess =
|
||||
PreProcess =
|
||||
Prezzo(1) =
|
||||
Prezzo(2) =
|
||||
Versione = 21511200
|
||||
|
BIN
cd/test/tp0978a1.zip
Normal file
BIN
cd/test/tp0978a1.zip
Normal file
Binary file not shown.
3
cd/test/ve0978.txt
Normal file
3
cd/test/ve0978.txt
Normal file
@ -0,0 +1,3 @@
|
||||
ve0.exe
|
||||
|
||||
Se cancello tutte le righe merce o omaggio da un documento con CONAI la riga di addebito viene trasformata in una riga normale per gestire le rettifiche CONAI con copia documento
|
132
cd/test/ve0978a.ini
Normal file
132
cd/test/ve0978a.ini
Normal file
@ -0,0 +1,132 @@
|
||||
[Main]
|
||||
Demo=0
|
||||
|
||||
[ve0]
|
||||
Edit_163 = ve0 -6
|
||||
Edit_4 = ve0 -6
|
||||
Edit_5 = ve0 -6
|
||||
File(20) = ve0.exe|X
|
||||
Patch = 978
|
||||
Versione = 21511200
|
||||
|
||||
[ve99]
|
||||
Kill(0) = batbimb.msk|x
|
||||
Kill(1) = batbacr.msk|x
|
||||
Kill(2) = batbcau.msk|x
|
||||
Kill(3) = bastgmc.rep|x
|
||||
Kill(4) = batbtip.msk|x
|
||||
Kill(5) = ve7.exe|x
|
||||
Kill(6) = batbfrm.msk|x
|
||||
Kill(7) = efstbnp.msk|x
|
||||
Kill(8) = bastfrd.rep|x
|
||||
Kill(9) = batbcra.msk|x
|
||||
Kill(10) = batbums.msk|x
|
||||
Kill(11) = ve7300a.msk|x
|
||||
Kill(12) = batbnum.msk|x
|
||||
Kill(13) = bastimb.rep|x
|
||||
Kill(14) = basteld.msk|x
|
||||
Kill(15) = bastrfa.msk|x
|
||||
Kill(16) = batbprv.msk|x
|
||||
Kill(17) = bastums.rep|x
|
||||
Kill(18) = batbfid.msk|x
|
||||
Kill(19) = ve7500a.msk|x
|
||||
Kill(20) = efstbnp.rep|x
|
||||
Kill(21) = batbprs.msk|x
|
||||
Kill(22) = bastfrr.rep|x
|
||||
Kill(23) = batbctr.msk|x
|
||||
Kill(24) = basteld.rep|x
|
||||
Kill(25) = batbstd.msk|x
|
||||
Kill(26) = batbmre.msk|x
|
||||
Kill(27) = ve7200a.msk|x
|
||||
Kill(28) = batbfrr.msk|x
|
||||
Kill(29) = batbubi.msk|x
|
||||
Kill(30) = basttag.msk|x
|
||||
Kill(31) = ve7600a.msk|x
|
||||
Kill(32) = bastnum.rep|x
|
||||
Kill(33) = batbgca.msk|x
|
||||
Kill(34) = batbrfa.msk|x
|
||||
Kill(35) = ve7100a.msk|x
|
||||
Kill(36) = bastasf.rep|x
|
||||
Kill(37) = ve7300a.frm|x
|
||||
Kill(38) = bastrfa.rep|x
|
||||
Kill(39) = bastbnp.msk|x
|
||||
Kill(40) = bastgcg.msk|x
|
||||
Kill(41) = bastgca.msk|x
|
||||
Kill(42) = bastcra.msk|x
|
||||
Kill(43) = batbpro.msk|x
|
||||
Kill(44) = bastfrm.rep|x
|
||||
Kill(45) = ve7400a.msk|x
|
||||
Kill(46) = bastcaa.msk|x
|
||||
Kill(47) = batbtag.msk|x
|
||||
Kill(48) = basttag.rep|x
|
||||
Kill(49) = bastums.msk|x
|
||||
Kill(50) = bastimb.msk|x
|
||||
Kill(51) = bastcau.rep|x
|
||||
Kill(52) = batbcaa.msk|x
|
||||
Kill(53) = bastfca.msk|x
|
||||
Kill(54) = bastfrm.msk|x
|
||||
Kill(55) = baststd.msk|x
|
||||
Kill(56) = batbgmc.msk|x
|
||||
Kill(57) = batbfrd.msk|x
|
||||
Kill(58) = bastabe.msk|x
|
||||
Kill(59) = batbgsa.msk|x
|
||||
Kill(60) = batbspt.msk|x
|
||||
Kill(61) = basttri.msk|x
|
||||
Kill(62) = bastfrd.msk|x
|
||||
Kill(63) = bastnum.msk|x
|
||||
Kill(64) = basttip.rep|x
|
||||
Kill(65) = bastprs.msk|x
|
||||
Kill(66) = bastspp.msk|x
|
||||
Kill(67) = ve7400conf.ini|x
|
||||
Kill(68) = basttri.rep|x
|
||||
Kill(69) = eftbbnp.msk|x
|
||||
Kill(70) = bastrfc.rep|x
|
||||
Kill(71) = bastrfc.msk|x
|
||||
Kill(72) = batbfsa.msk|x
|
||||
Kill(73) = batbspp.msk|x
|
||||
Kill(74) = bastfca.rep|x
|
||||
Kill(75) = ve7701a.ini|x
|
||||
Kill(76) = bastctr.msk|x
|
||||
Kill(77) = bastcau.msk|x
|
||||
Kill(78) = bastabe.rep|x
|
||||
Kill(79) = batbbnp.msk|x
|
||||
Kill(80) = batbtri.msk|x
|
||||
Kill(81) = ve7700a.msk|x
|
||||
Kill(82) = bastctr.rep|x
|
||||
Kill(83) = bastasf.msk|x
|
||||
Kill(84) = baststd.rep|x
|
||||
Kill(85) = bastcaa.rep|x
|
||||
Kill(86) = batbgcg.msk|x
|
||||
Kill(87) = ve7200a.frm|x
|
||||
Kill(88) = bastubi.msk|x
|
||||
Kill(89) = bastgca.rep|x
|
||||
Kill(90) = batbabe.msk|x
|
||||
Kill(91) = basttip.msk|x
|
||||
Kill(92) = bastubi.rep|x
|
||||
Kill(93) = ve7400a.ini|x
|
||||
Kill(94) = batbasf.msk|x
|
||||
Kill(95) = batbeld.msk|x
|
||||
Kill(96) = bastgcg.rep|x
|
||||
Kill(97) = bastprs.rep|x
|
||||
Kill(98) = bastspp.rep|x
|
||||
Kill(99) = batbcld.msk|x
|
||||
Kill(100) = batbrfc.msk|x
|
||||
Kill(101) = bastgmc.msk|x
|
||||
Kill(102) = bastbnp.rep|x
|
||||
Kill(103) = bastfrr.msk|x
|
||||
Kill(104) = bastcra.rep|x
|
||||
Kill(105) = batbfca.msk|x
|
||||
|
||||
[ve]
|
||||
Data = 30-06-2020
|
||||
Descrizione = Vendite
|
||||
Dischi = 1
|
||||
Moduli = ba,cg9,pr9,mg9,sv9,in9,ef9
|
||||
OEM =
|
||||
Patch = 978
|
||||
PostProcess = bainst -0 VE
|
||||
PreProcess =
|
||||
Prezzo(1) =
|
||||
Prezzo(2) =
|
||||
Versione = 21511200
|
||||
|
BIN
cd/test/ve0978a1.zip
Normal file
BIN
cd/test/ve0978a1.zip
Normal file
Binary file not shown.
@ -2453,6 +2453,7 @@ void TConversione_archivi::update_righe_doc()
|
||||
TCursor frr(new TRelation("%FRR"));
|
||||
const int fritems = frr.items();
|
||||
TString_array formule;
|
||||
TAssoc_array tipidoc;
|
||||
|
||||
for (frr = 0L; frr.pos() < fritems; ++frr)
|
||||
formule.add(frr.curr().get("CODTAB"));
|
||||
@ -2461,7 +2462,15 @@ void TConversione_archivi::update_righe_doc()
|
||||
const TString4 tipo = r.get(RDOC_TIPORIGA);
|
||||
const TTipo_riga_documento & tiporiga = TRiga_documento::tipo(tipo);
|
||||
bool changed = false;
|
||||
TToken_string key(r.get(RDOC_PROVV));
|
||||
|
||||
key.add(r.get_int(RDOC_ANNO));
|
||||
key.add(r.get(RDOC_CODNUM));
|
||||
key.add(r.get_int(RDOC_NDOC));
|
||||
|
||||
const TString tipodoc = cache().get(LF_DOC, key, DOC_TIPODOC);
|
||||
const bool has_conai = cache().get("%TIP", tipodoc, "B6") == "X";
|
||||
|
||||
if (tiporiga.is_merce() || tiporiga.is_omaggio())
|
||||
{
|
||||
for (int j = 0; j < CONAI_CLASSES; j++)
|
||||
@ -2472,9 +2481,11 @@ void TConversione_archivi::update_righe_doc()
|
||||
r.zero(old_conai_peso[j]);
|
||||
changed = true;
|
||||
}
|
||||
const TString & sottocat = r.get(conai_sottocat_name(j + 1));
|
||||
|
||||
if (sottocat.full() && cache().get("&VESCC", sottocat).empty())
|
||||
const TString & sottocat = r.get(conai_sottocat_name(j + 1));
|
||||
const TRectype & rec_sottocat = cache().get("&VESCC", sottocat);
|
||||
|
||||
if (!has_conai && sottocat.full() && rec_sottocat.empty())
|
||||
r.zero(conai_sottocat_name(j + 1));
|
||||
if (r.get(conai_sottocat_name(j + 1)).blank() &&
|
||||
r.get(conai_peso_name(j + 1)).full())
|
||||
|
@ -99,10 +99,10 @@ protected:
|
||||
bool scrivi_csv(const TRectype& prima_riga, TDichiarazione_CONAI_csv_recordset& csv,
|
||||
const TCONAI_class conai_specie, const TString & sottoclass,
|
||||
const TString& conai_codsp, TLog_report &log) const;
|
||||
void scrivi_csv_doc_con_riga_generata(const TDocumento& doc, const int n_riga_generata,
|
||||
void scrivi_csv_doc_generata(const TDocumento& doc, const int n_riga_generata,
|
||||
TDichiarazione_CONAI_csv_recordset& csv, const TCONAI_class conai_specie,
|
||||
const TString & sottoclass, const TString& conai_codsp, TLog_report &log) const;
|
||||
void scrivi_csv_doc_rettifiche(const TDocumento& doc, TDichiarazione_CONAI_csv_recordset& csv,
|
||||
void scrivi_csv_doc_not_generata(const TDocumento& doc, TDichiarazione_CONAI_csv_recordset& csv,
|
||||
const TCONAI_class conai_specie, const TString & sottoclass,
|
||||
const TString& conai_codsp) const;
|
||||
|
||||
@ -147,7 +147,7 @@ real TDichiarazione_CONAI::clifo_conai(const TCli_for& clifo, const TCONAI_class
|
||||
}
|
||||
|
||||
//riempie recordset con le righe CONAI del documento che contiene una riga generata CONAI
|
||||
void TDichiarazione_CONAI::scrivi_csv_doc_con_riga_generata(const TDocumento& doc, const int n_riga_generata,
|
||||
void TDichiarazione_CONAI::scrivi_csv_doc_generata(const TDocumento& doc, const int n_riga_generata,
|
||||
TDichiarazione_CONAI_csv_recordset& csv,
|
||||
const TCONAI_class conai_specie, const TString & sottoclass,
|
||||
const TString& conai_codsp, TLog_report &log) const
|
||||
@ -316,7 +316,7 @@ void TDichiarazione_CONAI::scrivi_csv_doc_con_riga_generata(const TDocumento& do
|
||||
|
||||
//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
|
||||
void TDichiarazione_CONAI::scrivi_csv_doc_rettifiche(const TDocumento& doc, TDichiarazione_CONAI_csv_recordset& csv,
|
||||
void TDichiarazione_CONAI::scrivi_csv_doc_not_generata(const TDocumento& doc, TDichiarazione_CONAI_csv_recordset& csv,
|
||||
const TCONAI_class conai_specie, const TString & sottoclass,
|
||||
const TString& conai_codsp) const
|
||||
{
|
||||
@ -331,109 +331,129 @@ void TDichiarazione_CONAI::scrivi_csv_doc_rettifiche(const TDocumento& doc, TDic
|
||||
TString80 clifo_paiv;
|
||||
//cerca la percentuale di esenzione conai sul cliente (controllo
|
||||
const real cfven_perc_conai = clifo_conai(clifo, conai_specie, clifo_paiv, doc);
|
||||
bool ok = cfven_perc_conai >= CENTO;
|
||||
|
||||
const int nrighe = doc.rows();
|
||||
|
||||
//ciclo di riempimento delle righe csv;scandisce solo l'array con i valori compilati
|
||||
FOR_EACH_PHYSICAL_RDOC(doc, i, rdoc)
|
||||
if (!ok)
|
||||
{
|
||||
for (int j = 1; j <= FR_CMAX; j++)
|
||||
bool has_rettifica = false;
|
||||
|
||||
FOR_EACH_PHYSICAL_RDOC(doc, j, rdoc)
|
||||
{
|
||||
TString4 sottocat = rdoc->get(conai_sottocat_name(j));
|
||||
|
||||
if (sottocat == sottoclass)
|
||||
//c'è la riga generata con codart di tipo conai (sia automatica che manuale)?
|
||||
if (rdoc->get(RDOC_CODART) == conai_codsp && !rdoc->is_generata())
|
||||
{
|
||||
real peso;
|
||||
real prezzo;
|
||||
const TRectype& spp = cache().get("SPP", conai_codsp);
|
||||
|
||||
if (rdoc->is_merce())
|
||||
{
|
||||
prezzo = spp.get_real("R10");
|
||||
has_rettifica = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
ok |= has_rettifica;
|
||||
}
|
||||
|
||||
peso = rdoc->get_real(conai_peso_name(j));
|
||||
}
|
||||
else
|
||||
if (rdoc->is_spese() && !rdoc->is_generata() && rdoc->get(RDOC_CODART) == conai_codsp)
|
||||
if (ok)
|
||||
{
|
||||
const int nrighe = doc.rows();
|
||||
|
||||
//ciclo di riempimento delle righe csv;scandisce solo l'array con i valori compilati
|
||||
FOR_EACH_PHYSICAL_RDOC(doc, i, rdoc)
|
||||
{
|
||||
for (int j = 1; j <= FR_CMAX; j++)
|
||||
{
|
||||
TString4 sottocat = rdoc->get(conai_sottocat_name(j));
|
||||
|
||||
if (sottocat == sottoclass)
|
||||
{
|
||||
real peso;
|
||||
real prezzo;
|
||||
const TRectype& spp = cache().get("SPP", conai_codsp);
|
||||
|
||||
if (rdoc->is_merce())
|
||||
{
|
||||
peso = rdoc->get_real(RDOC_QTA);
|
||||
prezzo = rdoc->get_real(RDOC_PREZZO); //va preso dalla riga stessa
|
||||
prezzo = spp.get_real("R10");
|
||||
|
||||
peso = rdoc->get_real(conai_peso_name(j));
|
||||
}
|
||||
if (sottocat == sottoclass && (peso != ZERO))
|
||||
{
|
||||
//puo' capitare che la sottocategoria sia stata troncata alla categoria
|
||||
if (sottocat.len() == 2)
|
||||
sottocat << "99";
|
||||
else
|
||||
if (rdoc->is_spese() && !rdoc->is_generata() && rdoc->get(RDOC_CODART) == conai_codsp)
|
||||
{
|
||||
peso = rdoc->get_real(RDOC_QTA);
|
||||
prezzo = rdoc->get_real(RDOC_PREZZO); //va preso dalla riga stessa
|
||||
}
|
||||
if (sottocat == sottoclass && (peso != ZERO))
|
||||
{
|
||||
//puo' capitare che la sottocategoria sia stata troncata alla categoria
|
||||
if (sottocat.len() == 2)
|
||||
sottocat << "99";
|
||||
|
||||
//creazione di un nuovo record da esportare
|
||||
csv.new_rec("");
|
||||
//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-sottocat-prezzo-um-conai(AB)-conai(B)-conai(A)
|
||||
//parte chiave della riga
|
||||
csv.set(0, rdoc->get(RDOC_CODNUM));
|
||||
csv.set(1, TVariant(rdoc->get(RDOC_ANNO)));
|
||||
csv.set(2, TVariant(rdoc->get(RDOC_NDOC)));
|
||||
csv.set(3, TVariant(datadoc));
|
||||
csv.set(4, TVariant(clifo.codice()));
|
||||
csv.set(5, TVariant(clifo_paiv));
|
||||
csv.set(6, TVariant(rdoc->get(RDOC_CODART)));
|
||||
csv.set(7, TVariant(rdoc->get(RDOC_NRIGA)));
|
||||
//riempie i campi del record del csv
|
||||
//codnum-anno-ndoc-datadoc-codcli-cofi-nriga-codagg1-sottocat-prezzo-um-conai(AB)-conai(B)-conai(A)
|
||||
//parte chiave della riga
|
||||
csv.set(0, rdoc->get(RDOC_CODNUM));
|
||||
csv.set(1, TVariant(rdoc->get(RDOC_ANNO)));
|
||||
csv.set(2, TVariant(rdoc->get(RDOC_NDOC)));
|
||||
csv.set(3, TVariant(datadoc));
|
||||
csv.set(4, TVariant(clifo.codice()));
|
||||
csv.set(5, TVariant(clifo_paiv));
|
||||
csv.set(6, TVariant(rdoc->get(RDOC_CODART)));
|
||||
csv.set(7, TVariant(rdoc->get(RDOC_NRIGA)));
|
||||
|
||||
//codici conai
|
||||
csv.set(8, TVariant(sottocat.left(2))); //codice materiale conai (es. carta, legno...)
|
||||
csv.set(9, TVariant(sottocat)); //sottocodice materiale (es. carta imballo, busta...)
|
||||
//codici conai
|
||||
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
|
||||
csv.set(10, TVariant(prezzo));
|
||||
//prezzo
|
||||
csv.set(10, TVariant(prezzo));
|
||||
|
||||
//um conai
|
||||
const TString4 umqta = spp.get("S7"); //unita' di misura dalla tabella SPP
|
||||
csv.set(11, TVariant(umqta));
|
||||
//um conai
|
||||
const TString4 umqta = spp.get("S7"); //unita' di misura dalla tabella SPP
|
||||
csv.set(11, TVariant(umqta));
|
||||
|
||||
//quantita' totale conai (A + B) sul report (le NAC hanno segno rovesciato)
|
||||
real qta_tot_conai = rdoc->get_real(RDOC_QTA);
|
||||
const real qta_unitaria_conai = rdoc->get_real(conai_peso_name(j));
|
||||
//quantita' totale conai (A + B) sul report (le NAC hanno segno rovesciato)
|
||||
real qta_tot_conai = rdoc->get_real(RDOC_QTA);
|
||||
const real qta_unitaria_conai = rdoc->get_real(conai_peso_name(j));
|
||||
|
||||
if (qta_unitaria_conai != ZERO)
|
||||
qta_tot_conai *= qta_unitaria_conai;
|
||||
if (is_nac)
|
||||
qta_tot_conai = -qta_tot_conai;
|
||||
csv.set(15, TVariant(qta_tot_conai));
|
||||
if (qta_unitaria_conai != ZERO)
|
||||
qta_tot_conai *= qta_unitaria_conai;
|
||||
if (is_nac)
|
||||
qta_tot_conai = -qta_tot_conai;
|
||||
csv.set(15, TVariant(qta_tot_conai));
|
||||
|
||||
//percentuale di esenzione conai al 100%?
|
||||
const real rdoc_perc_conai = rdoc->get_real(conai_esenzione_name(conai_specie, LF_RIGHEDOC)); // ex QTAGG2
|
||||
//percentuale di esenzione conai al 100%?
|
||||
const real rdoc_perc_conai = rdoc->get_real(conai_esenzione_name(conai_specie, LF_RIGHEDOC)); // ex QTAGG2
|
||||
|
||||
//quantita' assoggettata (B) sul report (le NAC hanno segno rovesciato, ma avendolo gia' gia' rovesciato..
|
||||
//..in precedenza non deve fare nulla!)
|
||||
real qta_assoggettata_conai = qta_tot_conai;
|
||||
//quantita' assoggettata (B) sul report (le NAC hanno segno rovesciato, ma avendolo gia' gia' rovesciato..
|
||||
//..in precedenza non deve fare nulla!)
|
||||
real qta_assoggettata_conai = qta_tot_conai;
|
||||
|
||||
//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;
|
||||
//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));
|
||||
csv.set(13, TVariant(qta_assoggettata_conai));
|
||||
|
||||
//quantita' esente conai (A) sul report
|
||||
const real qta_esente_conai = qta_tot_conai - qta_assoggettata_conai; //deve essere sempre ZERO!
|
||||
csv.set(12, TVariant(qta_esente_conai));
|
||||
//quantita' esente conai (A) sul report
|
||||
const real qta_esente_conai = qta_tot_conai - qta_assoggettata_conai; //deve essere sempre ZERO!
|
||||
csv.set(12, TVariant(qta_esente_conai));
|
||||
|
||||
//valore totale contributo (BxC) sul report
|
||||
const real totale_contrib_conai = qta_assoggettata_conai * prezzo;
|
||||
csv.set(14, TVariant(totale_contrib_conai));
|
||||
//valore totale contributo (BxC) sul report
|
||||
const real totale_contrib_conai = qta_assoggettata_conai * prezzo;
|
||||
csv.set(14, TVariant(totale_contrib_conai));
|
||||
|
||||
//percentuale di esenzione conai
|
||||
csv.set(16, TVariant(rdoc_perc_conai));
|
||||
//percentuale di esenzione conai
|
||||
csv.set(16, TVariant(rdoc_perc_conai));
|
||||
|
||||
//percentuale di esenzione conai in cfven
|
||||
csv.set(17, TVariant(cfven_perc_conai));
|
||||
TString descr = cache().get("&VESCC", sottocat, "S2");
|
||||
//percentuale di esenzione conai in cfven
|
||||
csv.set(17, TVariant(cfven_perc_conai));
|
||||
TString descr = cache().get("&VESCC", sottocat, "S2");
|
||||
|
||||
if (descr.blank())
|
||||
descr = cache().get("&VESCC", sottocat, "S0");
|
||||
csv.set(18, descr);
|
||||
if (descr.blank())
|
||||
descr = cache().get("&VESCC", sottocat, "S0");
|
||||
csv.set(18, descr);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -454,9 +474,9 @@ bool TDichiarazione_CONAI::scrivi_csv(const TRectype& prima_riga, TDichiarazione
|
||||
|
||||
#ifdef DBG
|
||||
//check di debug
|
||||
if (numdoc == 1451)
|
||||
if (numdoc == 935L)
|
||||
const int cazzone = 1;
|
||||
if (numdoc == 5L)
|
||||
if ((numdoc == 308L) || (numdoc == 343L))
|
||||
int i = 1;
|
||||
#endif
|
||||
//documento della prima riga e quindi anche di tutte le altre righe conai
|
||||
@ -517,23 +537,9 @@ bool TDichiarazione_CONAI::scrivi_csv(const TRectype& prima_riga, TDichiarazione
|
||||
}
|
||||
}
|
||||
if (n_riga_generata > 0)
|
||||
scrivi_csv_doc_con_riga_generata(doc, n_riga_generata, csv, conai_specie, sottoclass, conai_codsp, log);
|
||||
scrivi_csv_doc_generata(doc, n_riga_generata, csv, conai_specie, sottoclass, conai_codsp, log);
|
||||
else
|
||||
{
|
||||
bool has_rettifica = false;
|
||||
|
||||
FOR_EACH_PHYSICAL_RDOC(doc, j, rdoc)
|
||||
{
|
||||
//c'è la riga generata con codart di tipo conai (sia automatica che manuale)?
|
||||
if (rdoc->get(RDOC_CODART) == conai_codsp && !rdoc->is_generata())
|
||||
{
|
||||
has_rettifica = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (has_rettifica)
|
||||
scrivi_csv_doc_rettifiche(doc, csv, conai_specie, sottoclass, conai_codsp);
|
||||
}
|
||||
scrivi_csv_doc_not_generata(doc, csv, conai_specie, sottoclass, conai_codsp);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -3073,15 +3073,18 @@ void TDocumento::update_conai()
|
||||
const TDate dataees = cfven.get(CFV_DATAECONAI);
|
||||
const bool esponi_esenti = ini_get_bool(CONFIG_DITTA, "ve", "ESPONIESENTI");
|
||||
real perc_esenz;
|
||||
const int rows = physical_rows();
|
||||
bool to_delete = false;
|
||||
|
||||
// Come prima cosa mi calcolo le qta conai
|
||||
update_conai_qta();
|
||||
|
||||
for (int i = physical_rows(); i > 0; i--)
|
||||
for (int i = 1; i <= rows; i++)
|
||||
{
|
||||
TRiga_documento& r = row(i);
|
||||
const bool tipo_conai = r.get_char("GENTIPO") == 'C';
|
||||
|
||||
|
||||
to_delete |= (!tipo_conai) && (r.is_merce() || r.is_omaggio());
|
||||
// Elimina righe generate
|
||||
if (tipo_conai)
|
||||
{
|
||||
@ -3112,9 +3115,15 @@ void TDocumento::update_conai()
|
||||
destroy_row(i, true);
|
||||
}
|
||||
else
|
||||
destroy_row(i, true);
|
||||
if (to_delete)
|
||||
destroy_row(i, true);
|
||||
conai_aggiornati.add(sottocat, sottocat);
|
||||
}
|
||||
if (!to_delete)
|
||||
{
|
||||
r.zero(RDOC_GENERATA);
|
||||
r.zero(RDOC_GENTIPO);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user