campo-sirio/src/f9/f90400.cpp
Simone Palacino a19d5c67fe Patch level : 12.0 976
Files correlati     : f90.exe
Commento            :
- Modificato pescaggio file docuemnto cartaceo dalla spotlight se esiste.
- Modificato guessing movimenti passivi per associazione automatica piu' "intelligente" con FPPRO.
- Correzione controllo annessi obligatori.
- Correzione controllo movimento collegato (per rev. charge).
- Corretto messaggio di errore generazione prospetto integrativo.
- Correzione esportazione numero documento per le vendite secondo la regola che viene utilizzata nell'invio fp dove viene fatto il leading di 0 se esiste prefisso/suffisso.
- Correzione conferma estratti e segna sul movimento che e' estratto.
2020-07-09 16:02:43 +02:00

209 lines
8.3 KiB
C++

#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<TCategorie_doc::classe_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"
);
std::set<TString> 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<TCategorie_doc::classe_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;
std::shared_ptr<TArray_sheet> 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<TArray_sheet> 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<annesso_t> 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;
}