#include "f90.h" #include "annessif9.h" #include "applicat.h" #include "report.h" #include "f9lib.h" #include "f90100.h" /** * \brief Some test for F9 classes */ class TF9_test_app : public TSkeleton_application { public: void main_loop() override; TF9_test_app() = default; }; void TF9_test_app::main_loop() { TLocalisamfile f(LF_F9ANNESSI); TString search_numreg; search_numreg << 95223; f.zero(); f.setkey(1); f.put(F9A_NUMREG, search_numreg); TString filename = f.get(F9A_FILENAME); TString numreg; for (f.read(_isgteq); (numreg = f.get(F9A_NUMREG)) == search_numreg; f.next()) { filename = f.get(F9A_FILENAME); numreg = f.get(F9A_NUMREG); //message_box("Filename: %s\nNumreg: %s", (const char*)filename, (const char*)numreg); CHECK(numreg == search_numreg, "This shit sucks."); CHECK(filename == "annmid.pdf" || filename == "annmid2.pdf", "YOU'RE WRONG"); } TF9_doccart d; TString_array sa; //CHECK(d.mov2listann(search_numreg, sa) && sa.items() == 2, "COSA STAI LEGGENDO??"); FOR_EACH_ARRAY_ITEM(sa, nr, file) { TString namefile = (*(TToken_string*)file).get(1); TLocalisamfile ann(LF_F9ANNESSI); ann.put(F9A_NUMREG, search_numreg); ann.put(F9A_FILENAME, namefile); CHECK(ann.read() == NOERR, "Non esiste questo numreg??"); filename = ann.get(F9A_FILENAME); TString rec; rec << filename << "\n" << ann.get(F9A_NUMREG) << "\n" << ann.get(F9A_CATDOCPAD) << "\n" << ann.get(F9A_CATDOCANN) << "\n" << ann.get(F9A_LOADDATE) << "\n" << ann.get(F9A_USER); CHECK(filename == "annmid.pdf" || filename == "annmid2.pdf", "YOU'RE WRONG"); //message_box(rec); } ///////////////////////// // Preload some cat doc. if (noyes_box("Attenzione: procedere all'eliminazione e caricamento di categorie documentali e annessi di prova?")) { TCategorie_doc preload; preload.remove_all(); preload.reload(); preload.add_categoria("FATTACQ", "FATTURE DI ACQUISTI", "FTA", "TD01", "", "FA"); preload.add_categoria("FATTVEN", "FATTURE DI VENDITA", "FTV", "TD01", "", "FV"); preload.add_categoria("NOTCREDACQ", "Nota credito di acquisto", "FTA", "TD04", "", "NC"); preload.add_categoria("NOTDEBVEN", "Nota debito di vendita", "FTV", "TD05", "", "ND"); preload.add_categoria("FATTCORR", "Fattura corrispettivi", "FTA", "TD01", "", "CR"); preload.add_categoria("ACQREV", "Fattura acq. con rev. charge", "FTA", "TD01", "052", "FA"); preload.add_annesso("FATTACQ", "GENACQ", "Annesso generico acq", "DC"); preload.add_annesso("FATTVEN", "GENVEN", "Annesso gen. ven.", "DC"); preload.add_annesso("ACQREV", "INTREVC", "Prosp. integr. rev.ch.", "RC", true); preload.add_annesso("FATTACQ", "LEASING", "Annesso leasing", "DC"); CHECK(preload.get_array_rows().items() > 0, "Errore aggiunta o caricamento categorie documentali."); TAnnesso * annesso = nullptr; if (preload.get_ann("FATTACQ","GENACQ") != nullptr) { } TClasse_doc get_classe_doc_right{ "ACQREV", "Fattura acq. con rev. charge", "FTA", "TD01", "052", "FA" }; const TClasse_doc* get_classe_doc = preload.get_classe_doc("ACQREV"); CHECK(get_classe_doc->catdoc() == get_classe_doc_right.catdoc() && get_classe_doc->descr() == get_classe_doc_right.descr() && get_classe_doc->class_sost()== get_classe_doc_right.class_sost() && get_classe_doc->caus_sost() == get_classe_doc_right.caus_sost() && get_classe_doc->causcont() == get_classe_doc_right.causcont() && get_classe_doc->tipocaus() == get_classe_doc_right.tipocaus(), "get_classe_doc failed" ); TString_array * catdocs = preload.get_name_catdocs(); CHECK(catdocs->find("FATTACQ") >= 0 && catdocs->find("FATTVEN") >= 0 && catdocs->find("NOTCREDACQ") >= 0 && catdocs->find("NOTDEBVEN") >= 0 && catdocs->find("FATTCORR") >= 0 && catdocs->find("ACQREV") >= 0, "Get catdocs failed"); const TClasse_doc* mov2cat = preload.mov2cat(95752); CHECK(mov2cat, "mov2cat failed: classe doc is null"); mov2cat = preload.mov2cat(96955); // Rev. charge causale 052 CHECK(mov2cat->causcont() == "052", "Error retriving cat.doc. from numreg for causale."); const TString cat_selected = "FATTACQ"; TCategorie_doc catdoc; TArray_sheet * annessi = catdoc.get_sheet_ann(cat_selected); CHECK(annessi->items() == 2, format(FR("TCategorie_doc::get_sheet_ann() failed: retrived %d elements instead of 2"), (int)annessi->items())); TArray_sheet * sheet_catdocs = catdoc.get_sheet_catdocs(); CHECK(sheet_catdocs->items() == 6, format(FR("TCategorie_doc::get_sheet_catdocs() failed: retrived %d elements instead of 6"), (int)sheet_catdocs->items())); TRecord_categorie rec(TRecord_categorie::catdocs); TRecord_categorie rec2(TRecord_categorie::annessi); rec.put("NAME", "FATTACQ"); rec.read(); TString name = rec.get("NAME"); TString descr = rec.get("DESCR"); TString classdo = rec.get("CLASSDOCSOS"); TString caussos = rec.get("CAUSSOS"); TString causcon = rec.get("CAUSCONT"); TString tipodoc = rec.get("TIPODOC"); CHECK(name == "FATTACQ" && descr.starts_with("FATTURE") && classdo == "FTA" && caussos == "TD01"&& causcon.blank() && tipodoc == "FA", "TRecord_categorie failed to retrieve FATTACQ"); rec2.put("CATDOC", "FATTACQ"); bool ok = rec2.read(); CHECK(ok, "TRecord_categorie (annessi) failed to retrieve annessi FATTACQ"); for (; ok; ok = rec2.next()) { TString s_catdoc = rec2.get("CATDOC"); TString s_name = rec2.get("NAME"); TString s_descr = rec2.get("DESCR"); TString s_tipoann = rec2.get("TIPOANN"); bool s_obblig = rec2.get("OBBLIG") == "X"; CHECK(s_catdoc == "FATTACQ" && s_tipoann == "DC" && !s_obblig && (s_name == "GENACQ" && s_descr.starts_with("Annesso generico") || s_name == "LEASING" && s_descr.starts_with("Annesso lea")), "TRecord_categorie (annessi) failed to retrive annessi FATTACQ"); } } if(false) { TF9Prospetto_integr prosp; if (prosp(96951, 96952)) { TFilename tmp; tmp.tempdir(); tmp.add(prosp.filename().name()); tmp.ext("pdf"); #ifndef DBG bool exp = prosp.export_pdf(tmp); #else bool exp = prosp.preview(); #endif } } TLocalisamfile clifo(LF_CLIFO); clifo.put(CLI_TIPOCF, "C"); clifo.put(CLI_CODCF, 230); int iss = clifo.read(); TString statopaiv; TString idfisc; TString paiv; TString codfisc; //TEstrazione::fill_id(clifo, statopaiv, idfisc, paiv, codfisc); TAnnesso *annesso = nullptr; TCategorie_doc categorie_doc; if(categorie_doc.get_ann("FATTACQ","INTREVC") != nullptr) TEstrazione::make_prosp_int_revc(153480, annesso); TString s = get_numdoc_exp_fp(105396); message_box("TESTS COMPLETELY SUCCESSFUL"); } int f90400(const int argc, char* argv[]) { TF9_test_app test_app; test_app.run(argc, argv, "F9 Test Application"); return 0; }