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 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 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 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 elimina_righe(const TDocumento& ordc, TOrdf_cache& ca);
|
||||||
|
|
||||||
void elabora_ordini_cliente();
|
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)
|
void TCrea_ordini_srm_app::crea_ordf(const TDocumento& ordc, const long nriga, const long codfor, TOrdf_cache& ca)
|
||||||
{
|
{
|
||||||
TDocumento& ordf = ca.doc(codfor);
|
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);
|
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
|
//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)
|
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
|
//scorro le righe documento, fermandomi quando la set_paragraph fallisce
|
||||||
//dal momento che non so a priori quante sono le righe del documento
|
//dal momento che non so a priori quante sono le righe del documento
|
||||||
|
|
||||||
for(int i = 1; i <= ordc.rows(); i++)
|
for(int i = 1; i <= ordc.rows(); i++)
|
||||||
{
|
{
|
||||||
TRiga_documento& rordc = ordc[i];
|
TRiga_documento& rordc = ordc[i];
|
||||||
@ -436,6 +450,19 @@ void TCrea_ordini_srm_app::elabora_ordini_cliente()
|
|||||||
const long codfor2 = rordc.get_long(RDOC_CODAGG2); //da prendere dalla riga
|
const long codfor2 = rordc.get_long(RDOC_CODAGG2); //da prendere dalla riga
|
||||||
const int idrigac = rordc.get_int(RDOC_IDRIGA);
|
const int idrigac = rordc.get_int(RDOC_IDRIGA);
|
||||||
|
|
||||||
|
if (ordc.stato() == ' ')
|
||||||
|
{
|
||||||
|
if(cerca_orf(dadoc, idrigac, codfor1, codfor2, ordf1, ordf2))
|
||||||
|
{
|
||||||
|
if(codfor1 > 0)
|
||||||
|
elimina_ordf(ordf1, ca);
|
||||||
|
|
||||||
|
if(codfor2 > 0)
|
||||||
|
elimina_ordf(ordf2, ca);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
if(cerca_orf(dadoc, idrigac, codfor1, codfor2, ordf1, ordf2))
|
if(cerca_orf(dadoc, idrigac, codfor1, codfor2, ordf1, ordf2))
|
||||||
{
|
{
|
||||||
if(codfor1 > 0)
|
if(codfor1 > 0)
|
||||||
@ -453,6 +480,7 @@ void TCrea_ordini_srm_app::elabora_ordini_cliente()
|
|||||||
crea_ordf(ordc, i, codfor2, ca);
|
crea_ordf(ordc, i, codfor2, ca);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
elimina_righe(ordc, ca);
|
elimina_righe(ordc, ca);
|
||||||
ca.destroy();
|
ca.destroy();
|
||||||
|
@ -493,7 +493,8 @@ 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();
|
const bool ok = TRelation_application::remove();
|
||||||
if (ok)
|
if (ok)
|
||||||
edit_mask().save_father_rows();
|
edit_mask().save_father_rows();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user