Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/branches/R_10_00@21329 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
bb96d72185
commit
082db11138
@ -219,6 +219,7 @@ protected:
|
||||
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);
|
||||
void crea_ordf(const TDocumento& ordc, const long nriga, const long codfor, TOrdf_cache& ca);
|
||||
void elimina_ordf(const TDoc_key& adoc, TOrdf_cache& ca);
|
||||
void elimina_righe(const TDocumento& ordc, TOrdf_cache& ca);
|
||||
|
||||
void elabora_ordini_cliente();
|
||||
@ -364,10 +365,22 @@ void TCrea_ordini_srm_app::aggiorna_ordf(const TDocumento& ordc, const int nriga
|
||||
void TCrea_ordini_srm_app::crea_ordf(const TDocumento& ordc, const long nriga, const long codfor, TOrdf_cache& ca)
|
||||
{
|
||||
TDocumento& ordf = ca.doc(codfor);
|
||||
|
||||
TRiga_documento & row = ordf.new_row("05");
|
||||
TString rif;
|
||||
|
||||
ordc.tipo().riferimento(ordc, rif);
|
||||
row.put(RDOC_DESCR, rif);
|
||||
ordini_fornitore(ordc, nriga, ordf);
|
||||
}
|
||||
|
||||
//ELIMINA_ORDF: aggiorno l'ordine fornitore che esiste già in base alle modifiche fatte sull'ordine cliente attuale
|
||||
void TCrea_ordini_srm_app::elimina_ordf(const TDoc_key& adoc, TOrdf_cache& ca)
|
||||
{
|
||||
TDocumento& ordf = ca.doc(adoc);
|
||||
|
||||
ordf.remove();
|
||||
}
|
||||
|
||||
//ELIMINA_RIGHE: elimino le righe dagli ordini fornitore che non compaiono più nell'ordine cliente in esame
|
||||
void TCrea_ordini_srm_app::elimina_righe(const TDocumento& ordc, TOrdf_cache& ca)
|
||||
{
|
||||
@ -429,6 +442,7 @@ void TCrea_ordini_srm_app::elabora_ordini_cliente()
|
||||
|
||||
//scorro le righe documento, fermandomi quando la set_paragraph fallisce
|
||||
//dal momento che non so a priori quante sono le righe del documento
|
||||
|
||||
for(int i = 1; i <= ordc.rows(); i++)
|
||||
{
|
||||
TRiga_documento& rordc = ordc[i];
|
||||
@ -436,22 +450,36 @@ void TCrea_ordini_srm_app::elabora_ordini_cliente()
|
||||
const long codfor2 = rordc.get_long(RDOC_CODAGG2); //da prendere dalla riga
|
||||
const int idrigac = rordc.get_int(RDOC_IDRIGA);
|
||||
|
||||
if(cerca_orf(dadoc, idrigac, codfor1, codfor2, ordf1, ordf2))
|
||||
{
|
||||
if(codfor1 > 0)
|
||||
aggiorna_ordf(ordc, i, ordf1, ca);
|
||||
if (ordc.stato() == ' ')
|
||||
{
|
||||
if(cerca_orf(dadoc, idrigac, codfor1, codfor2, ordf1, ordf2))
|
||||
{
|
||||
if(codfor1 > 0)
|
||||
elimina_ordf(ordf1, ca);
|
||||
|
||||
if(codfor2 > 0)
|
||||
aggiorna_ordf(ordc, i, ordf2, ca);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(codfor1 > 0)
|
||||
crea_ordf(ordc, i, codfor1, ca);
|
||||
if(codfor2 > 0)
|
||||
elimina_ordf(ordf2, ca);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(cerca_orf(dadoc, idrigac, codfor1, codfor2, ordf1, ordf2))
|
||||
{
|
||||
if(codfor1 > 0)
|
||||
aggiorna_ordf(ordc, i, ordf1, ca);
|
||||
|
||||
if(codfor2 > 0)
|
||||
crea_ordf(ordc, i, codfor2, ca);
|
||||
}
|
||||
if(codfor2 > 0)
|
||||
aggiorna_ordf(ordc, i, ordf2, ca);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(codfor1 > 0)
|
||||
crea_ordf(ordc, i, codfor1, ca);
|
||||
|
||||
if(codfor2 > 0)
|
||||
crea_ordf(ordc, i, codfor2, ca);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
elimina_righe(ordc, ca);
|
||||
|
@ -491,9 +491,10 @@ int TMotore_application::rewrite( const TMask& m ) // C 90
|
||||
|
||||
bool TMotore_application::remove() // C 90
|
||||
{
|
||||
TDocumento& d = (TDocumento &) _rel->curr();
|
||||
TDocumento& d = (TDocumento &) _rel->curr();
|
||||
|
||||
do_elab(d); // serve ??????
|
||||
d.stato(' ');
|
||||
do_elab(d);
|
||||
const bool ok = TRelation_application::remove();
|
||||
if (ok)
|
||||
edit_mask().save_father_rows();
|
||||
|
Loading…
x
Reference in New Issue
Block a user