Patch level : 12.0 624
Files correlati : Commento : tp0.exe Sistemato calcolo peso per categorie conai inserite in bolla per DANIA Bisogna definire una variabile ConaiScheme = 1 nel paragrfo tp del file ditta.ini
This commit is contained in:
parent
77cad74ae9
commit
3ee3309550
@ -481,6 +481,7 @@ void TTrasferimentoPack_mask::trasferisci()
|
||||
pc.set_custrif(get(F_RIF));
|
||||
pc.set_ordrif(get(F_ORD));
|
||||
pc.activate_order_date(get_bool(F_ORDDATE));
|
||||
pc.activate_conai(ini_get_int(CONFIG_DITTA, "tp", "ConaiScheme", 0));
|
||||
pc.init(TR("Documenti di trasporto"), query_header, log);
|
||||
go_on = pc.trasferisci();
|
||||
book.add(log);
|
||||
|
@ -212,6 +212,7 @@ class TPack_ddt : public TPack_transfer
|
||||
TString _rif, _ord;
|
||||
TDate _data_limite;
|
||||
TAssoc_array _iva; // Codici IVA PACK
|
||||
int _conai;
|
||||
TCli_for _cli;
|
||||
|
||||
protected:
|
||||
@ -228,7 +229,8 @@ protected:
|
||||
const TString& get_iban(const TRectype& clifo) const;
|
||||
const TString & custrif() { return _rif; }
|
||||
const TString & ordrif() { return _ord; }
|
||||
bool order_date() { return _order_date; }
|
||||
bool order_date() { return _order_date; }
|
||||
int get_conai() { return _conai; }
|
||||
|
||||
bool save_doc(TDocumento* &doc, const int doc_code);
|
||||
|
||||
@ -246,8 +248,9 @@ public:
|
||||
void activate_extended_discount(bool on) { _extended_discount = on; }
|
||||
void set_custrif(const char * s) { _rif = s && *s ? s : "Vs. rifer.: "; }
|
||||
void set_ordrif(const char * s) { _ord = s && *s ? s : "Ns. Ordine nr. "; }
|
||||
void activate_order_date(bool on) { _order_date = on; }
|
||||
|
||||
void activate_order_date(bool on) { _order_date = on; }
|
||||
void activate_conai(int conai) { _conai = conai; }
|
||||
|
||||
TPack_ddt();
|
||||
~TPack_ddt();
|
||||
};
|
||||
|
@ -19,8 +19,10 @@ bool TArticolo_pack::set_conai(TCONAI_class cc, const TString& scat, const real&
|
||||
|
||||
TArticolo_pack::TArticolo_pack(const TRectype& anamag) : TRectype(anamag)
|
||||
{
|
||||
FOR_EACH_CONFIGURED_CONAI_CLASS(cc)
|
||||
{
|
||||
FOR_EACH_CONFIGURED_CONAI_CLASS(cc)
|
||||
set_conai(cc, EMPTY_STRING, ZERO);
|
||||
FOR_EACH_CONFIGURED_CONAI_CLASS(cc)
|
||||
{
|
||||
const TFieldref anamag_sotcat(conai_sottocat_name(cc, LF_ANAMAG), LF_ANAMAG);
|
||||
const TFieldref anamag_weight(conai_peso_name(cc, LF_ANAMAG), LF_ANAMAG);
|
||||
|
||||
@ -675,14 +677,6 @@ bool TPack_ddt::trasferisci()
|
||||
doc->put(DOC_ADDBOLLI, cfven.get(CFV_ADDBOLLI));
|
||||
doc->put(DOC_PERCSPINC, cfven.get(CFV_PERCSPINC));
|
||||
|
||||
/* Old style
|
||||
const TRectype& clifo = cache().get(LF_CLIFO, tok);
|
||||
doc->put(DOC_CODABIA, clifo.get(CLI_CODABI));
|
||||
doc->put(DOC_CODCABA, clifo.get(CLI_CODCAB));
|
||||
doc->put(DOC_IBAN, get_iban(clifo));
|
||||
*/
|
||||
|
||||
// New style 18-01-2012
|
||||
tok.cut(0);
|
||||
tok.add(tipocf); tok.add(codcf);
|
||||
tok.add("V"); tok.add(1);
|
||||
@ -818,31 +812,71 @@ bool TPack_ddt::trasferisci()
|
||||
const TRectype& cfven = cache().get(LF_CFVEN, tok);
|
||||
|
||||
// Copia tutte le sottocategorie CONAI dall'anagrafica alla riga documento
|
||||
real peso_imballo_anamag;
|
||||
int pesi_anamag = 0;
|
||||
FOR_EACH_CONFIGURED_CONAI_CLASS(cc)
|
||||
{
|
||||
const TString& cs = art.conai_subclass(cc); // Codice sottocategoria su ANAMAG
|
||||
if (cs.full()) // la presenza della sottoclasse implica anche un peso positivo
|
||||
{
|
||||
const real& weight = art.conai_weight(cc); // Peso imballo su ANAMAG
|
||||
rdoc.put(conai_sottocat_name(cc, LF_RIGHEDOC), cs);
|
||||
rdoc.put(conai_peso_name(cc, LF_RIGHEDOC), weight); // ex QTAGG1
|
||||
rdoc.put(conai_esenzione_name(cc, LF_RIGHEDOC),
|
||||
cfven.get(conai_esenzione_name(cc, LF_CFVEN))); // ex QTAGG2
|
||||
peso_imballo_anamag += weight;
|
||||
pesi_anamag++;
|
||||
}
|
||||
}
|
||||
// La sottocategoria della bolla prevale su quella anagrafica impostata sopra
|
||||
const TString4 conai_subclass = get_str("SubclassCode");
|
||||
const TCONAI_class ct = conai_str2class(conai_subclass);
|
||||
if (conai_subclass.len() == 4)
|
||||
rdoc.put(conai_sottocat_name(ct, LF_RIGHEDOC), conai_subclass);
|
||||
real peso_imballo_anamag;
|
||||
real peso_imballo_ddt;
|
||||
int pesi_anamag = 0;
|
||||
const int conai_scheme = get_conai();
|
||||
const TString4 conai_subclass = get_str("SubclassCode");
|
||||
const TCONAI_class ct = conai_str2class(conai_subclass);
|
||||
|
||||
if (conai_scheme == 1)
|
||||
{
|
||||
// La sottocategoria della bolla prevale su quella anagrafica
|
||||
if (conai_subclass.len() == 4)
|
||||
{
|
||||
rdoc.put(conai_sottocat_name(ct, LF_RIGHEDOC), conai_subclass);
|
||||
peso_imballo_ddt = real(get_real_str("WeightETUnit"));
|
||||
if (peso_imballo_ddt.is_zero())
|
||||
peso_imballo_ddt = peso_imballo_anamag;
|
||||
}
|
||||
if (conai_subclass.blank())
|
||||
{
|
||||
FOR_EACH_CONFIGURED_CONAI_CLASS(cc)
|
||||
{
|
||||
const TString& cs = art.conai_subclass(cc); // Codice sottocategoria su ANAMAG
|
||||
|
||||
if (cs.full()) // la presenza della sottoclasse implica anche un peso positivo
|
||||
{
|
||||
const real& weight = art.conai_weight(cc); // Peso imballo su ANAMAG
|
||||
|
||||
rdoc.put(conai_sottocat_name(cc, LF_RIGHEDOC), cs);
|
||||
rdoc.put(conai_peso_name(cc, LF_RIGHEDOC), weight); // ex QTAGG1
|
||||
rdoc.put(conai_esenzione_name(cc, LF_RIGHEDOC),
|
||||
cfven.get(conai_esenzione_name(cc, LF_CFVEN))); // ex QTAGG2
|
||||
peso_imballo_anamag += weight;
|
||||
pesi_anamag++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
FOR_EACH_CONFIGURED_CONAI_CLASS(cc)
|
||||
{
|
||||
const TString& cs = art.conai_subclass(cc); // Codice sottocategoria su ANAMAG
|
||||
|
||||
if (cs.full()) // la presenza della sottoclasse implica anche un peso positivo
|
||||
{
|
||||
const real& weight = art.conai_weight(cc); // Peso imballo su ANAMAG
|
||||
|
||||
rdoc.put(conai_sottocat_name(cc, LF_RIGHEDOC), cs);
|
||||
rdoc.put(conai_peso_name(cc, LF_RIGHEDOC), weight); // ex QTAGG1
|
||||
rdoc.put(conai_esenzione_name(cc, LF_RIGHEDOC),
|
||||
cfven.get(conai_esenzione_name(cc, LF_CFVEN))); // ex QTAGG2
|
||||
peso_imballo_anamag += weight;
|
||||
pesi_anamag++;
|
||||
}
|
||||
}
|
||||
// La sottocategoria della bolla prevale su quella anagrafica impostata sopra
|
||||
if (conai_subclass.len() == 4)
|
||||
{
|
||||
rdoc.put(conai_sottocat_name(ct, LF_RIGHEDOC), conai_subclass);
|
||||
peso_imballo_ddt = real(get_real_str("WeightETUnit"));
|
||||
if (peso_imballo_ddt.is_zero())
|
||||
peso_imballo_ddt = peso_imballo_anamag;
|
||||
}
|
||||
}
|
||||
|
||||
real peso_imballo_ddt = get_real_str("WeightETUnit");
|
||||
if (peso_imballo_ddt.is_zero())
|
||||
peso_imballo_ddt = peso_imballo_anamag;
|
||||
|
||||
// if (pesi_anamag > 1) // Con imballi composti da vari materiali devo riportare o riproporzionare
|
||||
// {
|
||||
@ -866,13 +900,7 @@ bool TPack_ddt::trasferisci()
|
||||
if (rdoc.get(conai_sottocat_name(cc, LF_RIGHEDOC)).full())
|
||||
rdoc.put(conai_peso_name(cc), art.conai_weight(cc));
|
||||
}
|
||||
/* }
|
||||
else
|
||||
{
|
||||
// Caso semplice della sola carta
|
||||
rdoc.put(conai_peso_name(CONAI_CARTA), peso_imballo_ddt);
|
||||
} */
|
||||
|
||||
|
||||
rdoc.put("FAMILY", get_str("FamilyCode")); // Uso campo virtuale RG1:FAMILY
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user