#include #include #include #include #include #include "baeur.h" #include "../mg/mglib.h" #include "../cg/cglib01.h" #include #include /////////////////////////////////////////////////////////// // 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; }