Patch level :

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :



Creazione ordini fornitore SRM


git-svn-id: svn://10.65.10.50/branches/R_10_00@21395 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2011-01-04 17:19:02 +00:00
parent 58fc178f85
commit df65bcc048

View File

@ -141,6 +141,19 @@ TObject* TOrdf_cache::key2obj(const char* key)
doc->put(DOC_CODCF, codcf);
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
{
@ -207,9 +220,9 @@ protected:
virtual void main_loop();
const real cerca_prezzo(const char* codart, const long codcf);
const real cerca_prezzo(const char* codart, const TDocumento & ordf);
const bool cerca_orf(TDoc_key& dadoc, const long daidriga, const long codfor, TDoc_key& ordf);
void aggiorna_righe(TDocumento& ordf, const TDocumento& ordc, TRiga_documento& rordc, TRiga_documento& rordf, int idrigac);
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);
@ -224,24 +237,16 @@ public:
};
//CERCA_PREZZO: cerco il prezzo di un articolo per un dato fornitore
const real TCrea_ordini_srm_app::cerca_prezzo(const char* codart, const long codcf)
const real TCrea_ordini_srm_app::cerca_prezzo(const char* codart, const TDocumento & ordf)
{
TToken_string key;
//gestione CFVEN
key.add('F'); //tipocf
key.add(codcf); //codcf
const TRectype& cfven = cache().get(LF_CFVEN, key);
const TString8 codlist = cfven.get(CFV_CODLIST);
const TString8 catven = cfven.get(CFV_CATVEN);
key.cut(0);
//gestione RCONDV - Contratti
key.add('C'); //tipo
key.add(""); //categoria di vendita
key.add('F'); //tipocf
key.add(codcf); //codcf
key.add(1); //codice contratto
key.add(ordf.get(DOC_CODCF)); //codcf
key.add("001"); //codice contratto
key.add('A'); //<A>rticolo
key.add(codart); //codice articolo
@ -252,10 +257,10 @@ const real TCrea_ordini_srm_app::cerca_prezzo(const char* codart, const long cod
key.cut(0);
//gestione RCONDV - Listini
key.add('L'); //tipo
key.add(catven); //categoria di vendita
key.add(ordf.get(DOC_CATVEN)); //categoria di vendita
key.add(""); //tipocf
key.add(""); //codcf
key.add(codlist); //codice listino
key.add(ordf.get(DOC_CODLIST)); //codice listino
key.add('A'); //<A>rticolo
key.add(codart); //codice articolo
@ -269,6 +274,7 @@ const real TCrea_ordini_srm_app::cerca_prezzo(const char* codart, const long cod
}
}
return prezzo;
}
@ -308,10 +314,10 @@ const bool TCrea_ordini_srm_app::cerca_orf(TDoc_key& dadoc, const long daidriga,
}
//AGGIORNA_RIGHE: riempie le righe dell'ordine fornitore con i dati corretti
void TCrea_ordini_srm_app::aggiorna_righe(TDocumento& ordf, const TDocumento& ordc, TRiga_documento& rordc, TRiga_documento& rordf, int idrigac)
void TCrea_ordini_srm_app::aggiorna_righe(TDocumento& ordf, const TDocumento& ordc, const TRiga_documento& rordc, TRiga_documento& rordf, int idrigac)
{
ordf.copy_data(rordf, rordc);
rordf.put(RDOC_PREZZO, cerca_prezzo(rordf.get(RDOC_CODART), ordf.get_long(DOC_CODCF)).string());
rordf.put(RDOC_PREZZO, cerca_prezzo(rordf.get(RDOC_CODART), ordf));
rordf.zero(RDOC_CODAGG1);
rordf.zero(RDOC_CODAGG2);
rordf.zero(RDOC_PERCPROV);
@ -327,7 +333,7 @@ void TCrea_ordini_srm_app::aggiorna_righe(TDocumento& ordf, const TDocumento& or
//ORDINI_FORNITORE: genera effettivamente gli ordini fornitore
void TCrea_ordini_srm_app::ordini_fornitore(const TDocumento& ordc, const int nriga, TDocumento& ordf)
{
TRiga_documento rordc = ordc[nriga];
const TRiga_documento & rordc = ordc[nriga];
const int idrigac = rordc.get_int(RDOC_IDRIGA);
bool trovato = false;