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:
luca 2011-05-13 15:53:16 +00:00
parent e5589e9c20
commit dcba1c1e51

View File

@ -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()...