Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : Personalizzazione SRM git-svn-id: svn://10.65.10.50/branches/R_10_00@22012 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
f4beafdeb5
commit
b852a55830
128
ps/pd0610200.cpp
128
ps/pd0610200.cpp
@ -61,18 +61,6 @@ TObject* TOrdf_cache::key2obj(const char* key)
|
||||
doc->put(DOC_DATADOC, _data);
|
||||
doc->put(DOC_DATACONS, _data);
|
||||
|
||||
TToken_string keyc;
|
||||
|
||||
//gestione CONDV - Contratti
|
||||
keyc.add('C'); //tipo
|
||||
keyc.add(""); //categoria di vendita
|
||||
keyc.add('F'); //tipocf
|
||||
keyc.add(codcf); //codcf
|
||||
keyc.add("001"); //codice contratto
|
||||
|
||||
const TRectype & contr = cache().get(LF_CONDV, keyc);
|
||||
if (!contr.empty())
|
||||
doc->put(DOC_CODCONT, "001");
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -144,8 +132,8 @@ protected:
|
||||
void aggiorna_righe(TDocumento& ordf, const TDocumento& ordc, const TRiga_documento& rordc, TRiga_documento& rordf, int idrigac);
|
||||
|
||||
void ordini_fornitore(const TDocumento& ordc, const int nriga, TDocumento& ordf);
|
||||
void aggiorna_ordf(const TDocumento& ordc, const int nriga, const TDoc_key& adoc, TOrdf_cache& ca);
|
||||
TDoc_key * crea_ordf(const TDocumento& ordc, const long nriga, const long codfor, TOrdf_cache& ca);
|
||||
void aggiorna_ordf(const TDocumento& ordc, const int nriga, const TDoc_key& adoc, TOrdf_cache& ca, bool first);
|
||||
TDoc_key * crea_ordf(const TDocumento& ordc, const long nriga, const long codfor, TOrdf_cache& ca, bool first);
|
||||
void elimina_ordf(const TDoc_key& adoc, TOrdf_cache& ca);
|
||||
void elimina_righe(const TDocumento& ordc, TOrdf_cache& ca);
|
||||
|
||||
@ -279,15 +267,64 @@ void TCrea_ordini_srm_app::ordini_fornitore(const TDocumento& ordc, const int nr
|
||||
}
|
||||
|
||||
//AGGIORNA_ORDF: aggiorno l'ordine fornitore che esiste già in base alle modifiche fatte sull'ordine cliente attuale
|
||||
void TCrea_ordini_srm_app::aggiorna_ordf(const TDocumento& ordc, const int nriga, const TDoc_key& adoc, TOrdf_cache& ca)
|
||||
void TCrea_ordini_srm_app::aggiorna_ordf(const TDocumento& ordc, const int nriga, const TDoc_key& adoc, TOrdf_cache& ca, bool first)
|
||||
{
|
||||
TDocumento& ordf = ca.doc(adoc);
|
||||
const TRiga_documento & orfrow = ordc[nriga];
|
||||
const long codcf = ordf.get_long(DOC_CODCF);
|
||||
TToken_string keyc;
|
||||
const TString8 codlist = orfrow.get(first ? "LF1" : "LF2");
|
||||
|
||||
//gestione CONDV - Listini
|
||||
if (codlist.full())
|
||||
{
|
||||
keyc.add('L'); //tipo
|
||||
keyc.add(ordf.get(DOC_CATVEN)); //categoria di vendita
|
||||
keyc.add(""); //tipocf
|
||||
keyc.add(""); //codcf
|
||||
keyc.add(codlist);
|
||||
|
||||
const TRectype& list = cache().get(LF_CONDV, keyc);
|
||||
if (!list.empty())
|
||||
ordf.put(DOC_CODCONT, codlist);
|
||||
}
|
||||
//gestione CONDV - Contratti
|
||||
TString8 codcont = orfrow.get(first ? "CF1" : "CF2");
|
||||
|
||||
if (codcont.full())
|
||||
{
|
||||
keyc.cut(0);
|
||||
keyc.add('C'); //tipo
|
||||
keyc.add(""); //categoria di vendita
|
||||
keyc.add('F'); //tipocf
|
||||
keyc.add(codcf); //codcf
|
||||
keyc.add(orfrow.get(first ? "CF1" : "CF2"));
|
||||
|
||||
const TRectype & contr = cache().get(LF_CONDV, keyc);
|
||||
if (!contr.empty())
|
||||
ordf.put(DOC_CODCONT, codcont);
|
||||
else
|
||||
codcont.cut(0);
|
||||
}
|
||||
if (codcont.full())
|
||||
{
|
||||
keyc.cut(0);
|
||||
keyc.add('C'); //tipo
|
||||
keyc.add(""); //categoria di vendita
|
||||
keyc.add('F'); //tipocf
|
||||
keyc.add(codcf); //codcf
|
||||
keyc.add("001"); //codice contratto
|
||||
|
||||
const TRectype & contr1 = cache().get(LF_CONDV, keyc);
|
||||
if (!contr1.empty())
|
||||
ordf.put(DOC_CODCONT, "001");
|
||||
}
|
||||
|
||||
ordini_fornitore(ordc, nriga, ordf);
|
||||
}
|
||||
|
||||
//CREA_ORDF: creo un nuovo ordine cliente
|
||||
TDoc_key * TCrea_ordini_srm_app::crea_ordf(const TDocumento& ordc, const long nriga, const long codfor, TOrdf_cache& ca)
|
||||
TDoc_key * TCrea_ordini_srm_app::crea_ordf(const TDocumento& ordc, const long nriga, const long codfor, TOrdf_cache& ca, bool first)
|
||||
{
|
||||
TDoc_key kordf;
|
||||
TDoc_key kdadoc(ordc.get_int(DOC_ANNO), ordc.get(DOC_CODNUM), ordc.get_long(DOC_NDOC), ordc.get_char(DOC_PROVV));
|
||||
@ -302,6 +339,57 @@ TDoc_key * TCrea_ordini_srm_app::crea_ordf(const TDocumento& ordc, const long nr
|
||||
ordf.put(DOC_FASCMS, ordc.get(RDOC_FASCMS));
|
||||
ordf.put(DOC_NUMDOCRIF, ordc.numero());
|
||||
ordf.put(DOC_DATADOCRIF, ordc.get(DOC_DATADOC));
|
||||
|
||||
const TRiga_documento & orfrow = ordc[nriga];
|
||||
const long codcf = ordf.get_long(DOC_CODCF);
|
||||
TToken_string keyc;
|
||||
const TString8 codlist = orfrow.get(first ? "LF1" : "LF2");
|
||||
|
||||
//gestione CONDV - Listini
|
||||
if (codlist.full())
|
||||
{
|
||||
keyc.add('L'); //tipo
|
||||
keyc.add(ordf.get(DOC_CATVEN)); //categoria di vendita
|
||||
keyc.add(""); //tipocf
|
||||
keyc.add(""); //codcf
|
||||
keyc.add(codlist);
|
||||
|
||||
const TRectype& list = cache().get(LF_CONDV, keyc);
|
||||
if (!list.empty())
|
||||
ordf.put(DOC_CODCONT, codlist);
|
||||
}
|
||||
//gestione CONDV - Contratti
|
||||
TString8 codcont = orfrow.get(first ? "CF1" : "CF2");
|
||||
|
||||
if (codcont.full())
|
||||
{
|
||||
keyc.cut(0);
|
||||
keyc.add('C'); //tipo
|
||||
keyc.add(""); //categoria di vendita
|
||||
keyc.add('F'); //tipocf
|
||||
keyc.add(codcf); //codcf
|
||||
keyc.add(orfrow.get(first ? "CF1" : "CF2"));
|
||||
|
||||
const TRectype & contr = cache().get(LF_CONDV, keyc);
|
||||
if (!contr.empty())
|
||||
ordf.put(DOC_CODCONT, codcont);
|
||||
else
|
||||
codcont.cut(0);
|
||||
}
|
||||
if (codcont.full())
|
||||
{
|
||||
keyc.cut(0);
|
||||
keyc.add('C'); //tipo
|
||||
keyc.add(""); //categoria di vendita
|
||||
keyc.add('F'); //tipocf
|
||||
keyc.add(codcf); //codcf
|
||||
keyc.add("001"); //codice contratto
|
||||
|
||||
const TRectype & contr1 = cache().get(LF_CONDV, keyc);
|
||||
if (!contr1.empty())
|
||||
ordf.put(DOC_CODCONT, "001");
|
||||
}
|
||||
|
||||
TRiga_documento & row = ordf.new_row("05");
|
||||
TString rif;
|
||||
|
||||
@ -421,10 +509,10 @@ void TCrea_ordini_srm_app::elabora_ordini_cliente()
|
||||
if (delete_docs)
|
||||
elimina_ordf(ordf, ca);
|
||||
else
|
||||
aggiorna_ordf(ordc, i, ordf, ca);
|
||||
aggiorna_ordf(ordc, i, ordf, ca, true);
|
||||
}
|
||||
else
|
||||
TDoc_key * ordf = crea_ordf(ordc, i, codfor1, ca);
|
||||
TDoc_key * ordf = crea_ordf(ordc, i, codfor1, ca, true);
|
||||
}
|
||||
if (codfor2 > 0)
|
||||
{
|
||||
@ -434,10 +522,10 @@ void TCrea_ordini_srm_app::elabora_ordini_cliente()
|
||||
if (delete_docs)
|
||||
elimina_ordf(ordf, ca);
|
||||
else
|
||||
aggiorna_ordf(ordc, i, ordf, ca);
|
||||
aggiorna_ordf(ordc, i, ordf, ca, false);
|
||||
}
|
||||
else
|
||||
TDoc_key * ordf = crea_ordf(ordc, i, codfor2, ca);
|
||||
TDoc_key * ordf = crea_ordf(ordc, i, codfor2, ca, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user