campo-sirio/ba/baeur05.cpp
alex 37178085ef Patch level : main 07.150
Files correlati     : nessuno
Ricompilazione Demo : [ ]
Commento            :
Riportata la versione aga 07.150 sul main trunk


git-svn-id: svn://10.65.10.50/trunk@9871 c028cbd2-c16b-5b4b-a496-9718f37d4682
2001-09-19 14:52:11 +00:00

165 lines
3.7 KiB
C++
Executable File

#include <applicat.h>
#include <automask.h>
#include <execp.h>
#include <progind.h>
#include <relation.h>
#include "baeur.h"
#include "../mg/mglib.h"
#include "../cg/cglib01.h"
#include <doc.h>
#include <rdoc.h>
///////////////////////////////////////////////////////////
// Main app
///////////////////////////////////////////////////////////
class TEuro05_app : public TEuro_app
{
protected:
virtual void main_loop();
void convert_last_mag_eser(int eser);
void convert_last_sto_eser(int eser);
public:
};
inline TEuro05_app& app() { return (TEuro05_app&)main_app(); }
///////////////////////////////////////////////////////////
// Main
///////////////////////////////////////////////////////////
void TEuro05_app::convert_last_mag_eser(int eser)
{
// Cursore su file in lire
TRelation rel(LF_MAG);
TCursor cur(&rel);
TRectype& curr = rel.curr();
curr.put("ANNOES", eser);
cur.setregion(curr, curr);
// zap_file(lf, TRUE); // Azzera file in euro
// File destinazione in euro
TEuroisamfile fileur(LF_MAG, TRUE);
TRectype& receur = fileur.curr();
receur.put("ANNOES", eser);
for (fileur.read(_isgteq); fileur.good() && eser == fileur.get_int("ANNOES"); fileur.next())
fileur.remove();
TString str;
str << "Conversione " << rel.lfile().description() << " anno " << eser << " ... ";
const long items = cur.items();
cur.freeze();
TProgind pi(items, str, FALSE, TRUE);
TString fields;
fields << "VALRIM|VALACQ|VALENT|VALVEN|VALUSC|VALORDF|VALORDF|SCARTI|VALSCARTI|";
fields << "USERVAL1|USERVAL2|USERVAL3|USERVAL4|USERVAL5|USERVAL6";
for (cur = 0L; cur.pos() < items; ++cur)
{
pi.addstatus(1);
receur = curr;
convert_import(receur, fields);
zero_import(receur, "ORDC|VALORDC|ORDF|VALORDF");
fileur.write();
}
}
void TEuro05_app::convert_last_sto_eser(int eser)
{
// Cursore su file in lire
TRelation rel(LF_STOMAG);
TCursor cur(&rel);
TRectype& curr = rel.curr();
curr.put("ANNOESRIF", eser);
cur.setregion(curr, curr);
// zap_file(lf, TRUE); // Azzera file in euro
// File destinazione in euro
TEuroisamfile fileur(LF_STOMAG, TRUE);
TRectype& receur = fileur.curr();
receur.put("ANNOESRIF", eser);
for (fileur.read(_isgteq); fileur.good() && eser == fileur.get_int("ANNOESRIF"); fileur.next())
fileur.remove();
TString str;
str << "Conversione " << rel.lfile().description() << " anno " << eser << " ... ";
const long items = cur.items();
cur.freeze();
TProgind pi(items, str, FALSE, TRUE);
const char* prices = "VALORE|ULTCOS1|ULTCOS2|COSTSTD|COSTOMEDIO|PRZLIST";
for (cur = 0L; cur.pos() < items; ++cur)
{
pi.addstatus(1);
receur = curr;
convert_import(receur, prices, TRUE);
fileur.write();
}
}
void TEuro05_app::main_loop()
{
goto_lire();
if (!set_firm())
return;
const long firm = get_firm();
if (!dbf_exists(LF_MAG, TRUE))
{
error_box("Non esistono gli archivi della ditta %ld nell'area in Euro", firm);
return;
}
TDate apertura(1,1,2002);
TFilename dati, datie;
get_aree_dati(dati, datie);
TString8 ditta;
ditta.format("%05ldA", firm);
TFilename inie = datie;
inie.add(ditta);
inie.add("prassid.ini");
bool adotta = FALSE, inizio = FALSE;
if (inie.exist())
adotta = data_adozione_euro(firm, apertura, inizio);
TEsercizi_contabili esc;
const int annoes = esc.date2prevesc(apertura);
convert_last_mag_eser(annoes);
convert_last_sto_eser(annoes);
{
TExternal_app app("baeur -6 A");
app.run(FALSE, 3);
}
}
int baeur05(int argc, char* argv[])
{
TEuro05_app ma;
ma.run(argc, argv, "Apertura magazzino");
return 0;
}