Files correlati : Ricompilazione Demo : [ ] Commento : RIportata la verione 3.2 1167 git-svn-id: svn://10.65.10.50/trunk@16733 c028cbd2-c16b-5b4b-a496-9718f37d4682
184 lines
3.9 KiB
C++
Executable File
184 lines
3.9 KiB
C++
Executable File
#include <applicat.h>
|
|
#include <automask.h>
|
|
#include <execp.h>
|
|
#include <filetext.h>
|
|
#include <progind.h>
|
|
#include <printer.h>
|
|
#include <reprint.h>
|
|
#include <reputils.h>
|
|
#include <sort.h>
|
|
#include <utility.h>
|
|
|
|
#include "co0.h"
|
|
#include "co0900a.h"
|
|
|
|
#include "clifo.h"
|
|
#include "comuni.h"
|
|
#include "doc.h"
|
|
#include "rdoc.h"
|
|
|
|
#include "..\cg\cglib01.h"
|
|
#include "..\ve\velib.h"
|
|
|
|
// TAutomask
|
|
|
|
class TAggiornaPrezzi_mask : public TAutomask
|
|
{
|
|
protected:
|
|
bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
|
public:
|
|
TAggiornaPrezzi_mask();
|
|
virtual ~TAggiornaPrezzi_mask() {};
|
|
};
|
|
|
|
TAggiornaPrezzi_mask::TAggiornaPrezzi_mask() :TAutomask ("co0900a")
|
|
{
|
|
}
|
|
|
|
bool TAggiornaPrezzi_mask::on_field_event(TOperable_field& f, TField_event e, long jolly)
|
|
{
|
|
return TRUE;
|
|
}
|
|
|
|
|
|
HIDDEN bool browse_file_handler(TMask_field& f, KEY k)
|
|
{
|
|
if (k == K_F9)
|
|
{
|
|
FILE_SPEC fs; memset(&fs, 0, sizeof(FILE_SPEC));
|
|
strcpy(fs.type, "");
|
|
strcpy(fs.name, f.get());
|
|
xvt_fsys_get_default_dir(&fs.dir);
|
|
xvt_fsys_save_dir();
|
|
if (xvt_dm_post_file_open(&fs, TR("Selezione file")) == FL_OK)
|
|
{
|
|
TFilename n;
|
|
xvt_fsys_convert_dir_to_str(&fs.dir, n.get_buffer(n.size()), n.size());
|
|
n.add(fs.name);
|
|
f.set(n);
|
|
}
|
|
xvt_fsys_restore_dir();
|
|
f.set_focus();
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
|
|
// TSkeleton_application
|
|
|
|
class TAggiornaPrezzi : public TSkeleton_application
|
|
{
|
|
TAggiornaPrezzi_mask* _msk;
|
|
TRelation* _rel;
|
|
TCursor* _cur;
|
|
TProgind* _prog;
|
|
|
|
public:
|
|
virtual bool create();
|
|
virtual bool destroy();
|
|
virtual void main_loop();
|
|
TAggiornaPrezzi() {}
|
|
};
|
|
|
|
TAggiornaPrezzi& app() { return (TAggiornaPrezzi&) main_app(); }
|
|
|
|
bool TAggiornaPrezzi::create()
|
|
{
|
|
open_files(LF_CLIFO, 0);
|
|
_msk = new TAggiornaPrezzi_mask();
|
|
return TSkeleton_application::create ();
|
|
}
|
|
|
|
bool TAggiornaPrezzi::destroy()
|
|
{
|
|
delete _msk;
|
|
return TApplication::destroy();
|
|
}
|
|
|
|
void TAggiornaPrezzi::main_loop()
|
|
{
|
|
// TConfig configfile("co0900.ini");
|
|
|
|
if (_msk->run() == K_ENTER)
|
|
{
|
|
TLog_report log("Errori generazione documenti pianificazione");
|
|
bool errors = false;
|
|
|
|
TRelation rel_doc(LF_DOC);
|
|
TRectype darec(LF_DOC), arec(LF_DOC);
|
|
const TDate dadata = _msk->get_date(F_DATAINI);
|
|
const TDate adata = _msk->get_date(F_DATAFIN);
|
|
const int anno = dadata.year();
|
|
const TString8 codnum = _msk->get(F_CODNUM);
|
|
const TString8 codmer = _msk->get(F_CODMER);
|
|
const TString80 codart = _msk->get(F_CODART);
|
|
const real prezzo = _msk->get_real(F_PREZZO);
|
|
|
|
darec.put(DOC_DATADOC, dadata);
|
|
darec.put(DOC_PROVV, "D");
|
|
darec.put(DOC_ANNO, anno);
|
|
darec.put(DOC_CODNUM, codnum);
|
|
|
|
arec.put(DOC_DATADOC, adata);
|
|
arec.put(DOC_PROVV, "D");
|
|
arec.put(DOC_ANNO, anno);
|
|
arec.put(DOC_CODNUM, codnum);
|
|
|
|
TString filtro;
|
|
filtro << "CODNUM='" << codnum << "'";
|
|
TCursor cur_doc (&rel_doc, filtro, 3, &darec, &arec);
|
|
const long items = cur_doc.items();
|
|
TProgind progind(items, "Aggiornamento prezzi in corso...", false, true);
|
|
|
|
for (cur_doc = 0; cur_doc.pos() < items; ++cur_doc)
|
|
{
|
|
TDocumento doc(cur_doc.curr());
|
|
|
|
if (codmer == doc.get("MERCATO"))
|
|
{
|
|
bool rewrite = false;
|
|
|
|
progind.addstatus(1);
|
|
for (int i = 1; i <= doc.rows(); i++)
|
|
{
|
|
TRiga_documento& row = doc[i];
|
|
const TString80 codice(row.get(RDOC_CODART));
|
|
|
|
if (row.is_articolo() && codice == codart)
|
|
{
|
|
rewrite = true;
|
|
row.put(RDOC_PREZZO, prezzo);
|
|
}
|
|
}
|
|
if (rewrite)
|
|
{
|
|
int err = doc.rewrite();
|
|
if (err != NOERR)
|
|
{
|
|
TString errore;
|
|
errore.format("Errore %d nell'aggiornamento del documento %ld", err, doc.get_long(DOC_NDOC));
|
|
log.log(2, errore);
|
|
errors = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (errors)
|
|
{
|
|
TReport_book buc;
|
|
buc.add(log);
|
|
buc.preview();
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
int co0900(int argc, char* argv[])
|
|
{
|
|
TAggiornaPrezzi main_app;
|
|
main_app.run(argc, argv, TR("Aggiornamento prezzi"));
|
|
return TRUE;
|
|
}
|
|
|