campo-sirio/ve/ve0100b.cpp
angelo 5f80dd5869 Modifiche per gestione stati:
esegue la write/rewrite di TDocumento, per aggiornare
 anche il magazzino.


git-svn-id: svn://10.65.10.50/trunk@5026 c028cbd2-c16b-5b4b-a496-9718f37d4682
1997-08-02 08:47:57 +00:00

36 lines
916 B
C++
Executable File

#include <rectypes.h>
#include <relation.h>
#include <recarray.h>
#include <tabutil.h>
#include "ve0100b.h"
int numerazione_definitiva(TDocumento& doc, const int final_status)
{
if (doc.get("PROVV") == "D")
{
doc.put("STATO",final_status); // Se e' gia' in definitiva aggiorna solo lo stato
return doc.rewrite();
}
// Scrive il nuovo documento con lo stato, numero e flag di definitiva
int err = NOERR;
TDocumento bak_doc;
bak_doc = doc; // Setta il flag di nuovo documento
bak_doc.put("STATO",final_status);
bak_doc.put("PROVV","D");
bak_doc.put("NDOC",-1L);
const int pr = bak_doc.physical_rows();
for (int i=1;i<=pr;i++)
bak_doc[i].put("PROVV","D");
err = bak_doc.write(); // Esegue automagicamente rinumerazione di testata e righe nel caso di reinsert
if (err != NOERR)
return err;
// Cancella il vecchio documento
err = doc.remove();
return err;
}