#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."); TCategorie_doc::annesso annesso; if (preload.get_ann("GENACQ", annesso)) { } TCategorie_doc::classe_doc get_classe_doc_right{ "ACQREV", "Fattura acq. con rev. charge", "FTA", "TD01", "052", "FA" }; std::shared_ptr 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" ); std::set get_name_catdocs = preload.get_name_catdocs(); CHECK(get_name_catdocs.find("FATTACQ") != get_name_catdocs.end() && get_name_catdocs.find("FATTVEN") != get_name_catdocs.end() && get_name_catdocs.find("NOTCREDACQ") != get_name_catdocs.end() && get_name_catdocs.find("NOTDEBVEN") != get_name_catdocs.end() && get_name_catdocs.find("FATTCORR") != get_name_catdocs.end() && get_name_catdocs.find("ACQREV") != get_name_catdocs.end(), "Get catdocs failed" ); std::shared_ptr 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; std::shared_ptr annessi = catdoc.get_sheet_ann(cat_selected); CHECK(annessi->items() == 2, "TCategorie_doc::get_sheet_ann() failed: retrived %d elements instead of 2", (int)annessi->items()); std::shared_ptr sheet_catdocs = catdoc.get_sheet_catdocs(); CHECK(sheet_catdocs->items() == 6, "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) { TF9_doccart doccart; TString old_numreg; old_numreg << 95752; TFilename doc; TString_array list_annessi; vector vect_annessi; //TFilename f_doc; f_doc << "asd"; //bool annesso; //bool doc_ae = doccart.doc_already_exists(f_doc, old_numreg, annesso); bool movdoc = doccart.mov2doc(old_numreg, doc); TString msg("Error retriving filename from reg n. "); msg << old_numreg; CHECK(movdoc && TString(doc.name()) == "ve1300_F01_0000000011_0002237.pdf", (const char*)msg); old_numreg.cut(0) << 95222; // Doppio annesso bool movann = doccart.mov2listann(old_numreg, list_annessi); //CHECK(movann && list_annessi.items() == 2, "Error retriving list annessi from numreg %s", (const char*)old_numreg); bool movannvect = doccart.mov2listann_vect(old_numreg, vect_annessi); //CHECK(movannvect && vect_annessi.size() == 2, "Error retriving vector annessi from numreg %s", (const char*)old_numreg); /*TCategorie_doc::annesso annesso; annesso.catdoc = "INTEGREV"; annesso.catdocpadre = "FATTREV"; annesso.descr = "Integrazione Rev. Charge"; annesso.opcee = "RC"; annesso.obblig = true; TEstrazione::make_prosp_int_revc(96951, annesso);*/ } 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 } } TCategorie_doc::annesso annesso; if(categorie_doc().get_ann("INTREVC", annesso)) TEstrazione::make_prosp_int_revc(153480, annesso); TString s = TEstrai_mask::get_numdoc_campo_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; }