Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/branches/R_10_00@22121 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
e5589e9c20
commit
dcba1c1e51
@ -85,13 +85,34 @@ bool TRileva_produzione_msk::elabora()
|
|||||||
const long bolla_ndoc = bolla_rec.get_long(RDOC_NDOC);
|
const long bolla_ndoc = bolla_rec.get_long(RDOC_NDOC);
|
||||||
const int bolla_nriga = bolla_rec.get_int(RDOC_NRIGA);
|
const int bolla_nriga = bolla_rec.get_int(RDOC_NRIGA);
|
||||||
#endif
|
#endif
|
||||||
|
//campi che servono per raccatare la riga della BEM
|
||||||
|
const TString& bem_codnum = bolla_rec.get(RDOC_DACODNUM);
|
||||||
|
const long bem_anno = bolla_rec.get_int(RDOC_DAANNO);
|
||||||
|
const long bem_ndoc = bolla_rec.get_long(RDOC_DANDOC);
|
||||||
|
const long bem_idriga = bolla_rec.get_int(RDOC_DAIDRIGA);
|
||||||
//servono anche lavorazione e colore (almeno uno dei due c'e' in base alla query)
|
//servono anche lavorazione e colore (almeno uno dei due c'e' in base alla query)
|
||||||
const TString& bolla_lav = bolla_rec.get(RDOC_CODCMS);
|
const TString& bolla_lav = bolla_rec.get(RDOC_CODCMS);
|
||||||
const TString& bolla_col = bolla_rec.get(RDOC_FASCMS);
|
const TString& bolla_col = bolla_rec.get(RDOC_FASCMS);
|
||||||
|
|
||||||
//adesso prende la riga documento della BEM e aggiorna i valori se deve
|
//adesso prende la riga documento della BEM e aggiorna i valori se deve
|
||||||
TRectype& bem_rec = rdoc.curr();
|
//e' costretto ad usare una query e non una read() perche' IDRIGA non appartiene alle chiavi di RDOC
|
||||||
|
TString bem_query;
|
||||||
|
bem_query << "USE RDOC";
|
||||||
|
bem_query << "\nSELECT (IDRIGA=#IDRIGA)";
|
||||||
|
bem_query << "\nFROM CODNUM=BEM ANNO=#ANNO PROVV=D NDOC=#NDOC";
|
||||||
|
bem_query << "\nTO CODNUM=BEM ANNO=#ANNO PROVV=D NDOC=#NDOC";
|
||||||
|
|
||||||
|
TISAM_recordset bem_recset(bem_query);
|
||||||
|
|
||||||
|
bem_recset.set_var("#IDRIGA", bem_idriga);
|
||||||
|
bem_recset.set_var("#ANNO", bem_anno);
|
||||||
|
bem_recset.set_var("#NDOC", bem_ndoc);
|
||||||
|
|
||||||
|
const long bem_items = bem_recset.items();
|
||||||
|
if (bem_items > 1)
|
||||||
|
return error_box("C'e' piu' di una riga della BEM %ld con IDRIGA = %ld", bem_ndoc, bem_idriga);
|
||||||
|
|
||||||
|
/*TRectype& bem_rec = rdoc.curr();
|
||||||
const TString& bem_codnum = bolla_rec.get(RDOC_DACODNUM); //se non fosse BEM sarebbe un errore!!!
|
const TString& bem_codnum = bolla_rec.get(RDOC_DACODNUM); //se non fosse BEM sarebbe un errore!!!
|
||||||
bem_rec.put(RDOC_CODNUM, bem_codnum);
|
bem_rec.put(RDOC_CODNUM, bem_codnum);
|
||||||
const int bem_anno = bolla_rec.get_int(RDOC_DAANNO);
|
const int bem_anno = bolla_rec.get_int(RDOC_DAANNO);
|
||||||
@ -100,32 +121,33 @@ bool TRileva_produzione_msk::elabora()
|
|||||||
const long bem_ndoc = bolla_rec.get_long(RDOC_DANDOC);
|
const long bem_ndoc = bolla_rec.get_long(RDOC_DANDOC);
|
||||||
bem_rec.put(RDOC_NDOC, bem_ndoc);
|
bem_rec.put(RDOC_NDOC, bem_ndoc);
|
||||||
//occhio alla riga, raga! DAIDRIGA sulla rigabolla deve essere uguale a IDRIGA sulla rigabem, NON a NRIGA che è aleatorio!
|
//occhio alla riga, raga! DAIDRIGA sulla rigabolla deve essere uguale a IDRIGA sulla rigabem, NON a NRIGA che è aleatorio!
|
||||||
const int bem_nriga = bolla_rec.get_int(RDOC_DAIDRIGA);
|
const int bem_idriga = bolla_rec.get_int(RDOC_DAIDRIGA);
|
||||||
bem_rec.put(RDOC_IDRIGA, bem_nriga);
|
bem_rec.put(RDOC_IDRIGA, bem_idriga);*/
|
||||||
|
|
||||||
if (bem_rec.read(rdoc) == NOERR)
|
//if (bem_rec.read(rdoc) == NOERR)
|
||||||
|
//{
|
||||||
|
TRectype& bem_rec = bem_recset.cursor()->curr();
|
||||||
|
const real bem_old_lav_qta = bem_rec.get_real(RDOC_QTAGG2);
|
||||||
|
const real bem_old_col_qta = bem_rec.get_real(RDOC_QTAGG1);
|
||||||
|
|
||||||
|
//solo le BEM a quantita' lavorazione e/o colore nulle possono essere aggiornate (senno' ci verrebbe del casino)
|
||||||
|
if (bolla_lav.full() && bem_old_lav_qta == ZERO) //lavorazione
|
||||||
{
|
{
|
||||||
const real bem_old_qta = bem_rec.get_real(RDOC_QTA);
|
bem_rec.put(RDOC_CODCMS, bolla_lav);
|
||||||
//solo le BEM a quantita' nulla possono essere aggiornate (senno' ci verrebbe del casino)
|
bem_rec.put(RDOC_QTAGG2, bolla_qta);
|
||||||
if (bem_old_qta == ZERO)
|
bem_rec.put(RDOC_CODAGG2, dataprod);
|
||||||
{
|
}
|
||||||
if (bolla_lav.full()) //lavorazione
|
if (bolla_col.full() && bem_old_col_qta == ZERO) //colore
|
||||||
{
|
{
|
||||||
bem_rec.put(RDOC_CODCMS, bolla_lav);
|
bem_rec.put(RDOC_FASCMS, bolla_col);
|
||||||
bem_rec.put(RDOC_QTAGG2, bolla_qta);
|
bem_rec.put(RDOC_QTAGG1, bolla_qta);
|
||||||
bem_rec.put(RDOC_CODAGG2, dataprod);
|
bem_rec.put(RDOC_DATACONS, dataprod);
|
||||||
}
|
}
|
||||||
if (bolla_col.full()) //colore
|
const int err = bem_rec.rewrite(rdoc);
|
||||||
{
|
if (err != NOERR)
|
||||||
bem_rec.put(RDOC_FASCMS, bolla_col);
|
return false;
|
||||||
bem_rec.put(RDOC_QTAGG1, bolla_qta);
|
|
||||||
bem_rec.put(RDOC_DATACONS, dataprod);
|
//} //if(bem_rec.read(rdoc)...
|
||||||
}
|
|
||||||
const int err = bem_rec.rewrite(rdoc);
|
|
||||||
if (err != NOERR)
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
} //if(bem_rec.read(rdoc)...
|
|
||||||
|
|
||||||
} // if (bolla_qta > ZERO)...
|
} // if (bolla_qta > ZERO)...
|
||||||
} //for (bool ok = recset.move_first()...
|
} //for (bool ok = recset.move_first()...
|
||||||
|
Loading…
x
Reference in New Issue
Block a user