#include "flexform_xml.h" #include "config.h" #include "date.h" /////////////////////////////////////////////////////////// // ELEMENTI DDT /////////////////////////////////////////////////////////// // Testata DDT void TDDT_testata_xml::set_testata(const char* data_doc, const char* num_doc) { _datarow = new TXML_element("datarow", ""); add_child(*_datarow); _dat_doc = new TXML_element("dat_doc", data_doc); _datarow->add_child(*_dat_doc); _des_num = new TXML_element("des_num_doc", num_doc); _datarow->add_child(*_des_num); } TDDT_testata_xml::~TDDT_testata_xml() { delete _datarow; delete _dat_doc; delete _des_num; } // Riga DDT void TDDT_riga_xml::set_datarow(const char* ind_tiporiga, const char* cod_art, const char* des_articolo_riga, const char* qta_merce, const char* des_campo_libero6) { const TString _cod_art = cod_art; _cod_art.left(25); const TString _desc = des_articolo_riga; _desc.left(255); const TString _libero6 = des_campo_libero6; _libero6.left(30); _datarow = new TXML_element("datarow", ""); add_child(*_datarow); _tiporiga = new TXML_element("ind_tiporiga", ind_tiporiga); _datarow->add_child(*_tiporiga); _art = new TXML_element("cod_art", (const char*)_cod_art); _datarow->add_child(*_art); _des_articolo = new TXML_element("des_articolo_riga", (const char*)_desc); _datarow->add_child(*_des_articolo); _merce = new TXML_element("qta_merce", qta_merce); _datarow->add_child(*_merce); _libero = new TXML_element("des_campo_libero6", (const char*)_libero6); _datarow->add_child(*_libero); } void TDDT_riga_xml::set_datarow(const char* ind_tiporiga, const char* cod_art, const wchar_t* des_articolo_riga, const char* qta_merce, const char* des_campo_libero6) { const TString _cod_art = cod_art; _cod_art.left(25); const TString _libero6 = des_campo_libero6; _libero6.left(30); _datarow = new TXML_element("datarow", ""); add_child(*_datarow); _tiporiga = new TXML_element("ind_tiporiga", ind_tiporiga); _datarow->add_child(*_tiporiga); _art = new TXML_element("cod_art", (const char*)_cod_art); _datarow->add_child(*_art); _des_articolo = new TXML_element("des_articolo_riga", des_articolo_riga); _datarow->add_child(*_des_articolo); _merce = new TXML_element("qta_merce", qta_merce); _datarow->add_child(*_merce); _libero = new TXML_element("des_campo_libero6", (const char*)_libero6); _datarow->add_child(*_libero); } TDDT_riga_xml::~TDDT_riga_xml() { delete _datarow; delete _tiporiga; delete _art; delete _des_articolo; delete _merce; delete _libero; } /////////////////////////////////////////////////////////// // ELEMENTI ORDINI /////////////////////////////////////////////////////////// // Testata Ordini void TOrdini_testata_xml::set_testata(const char* data_doc, const char* num_doc, const char* str) { _datarow = new TXML_element("datarow", ""); add_child(*_datarow); _dat_doc = new TXML_element("dat_doc_esterno", data_doc); _datarow->add_child(*_dat_doc); _des_num = new TXML_element("des_num_esterno", num_doc); _datarow->add_child(*_des_num); _sig_serie = new TXML_element("sig_serie_esterno", str); _datarow->add_child(*_sig_serie); } TOrdini_testata_xml::~TOrdini_testata_xml() { delete _datarow; delete _dat_doc; delete _des_num; delete _sig_serie; } // Riga Ordini void TOrdini_riga_xml::set_datarow(const char* ind_tiporiga, const char* cod_art, const char* des_articolo_riga, const char* qta_merce, const char* des_campo_libero6) { _datarow = new TXML_element("datarow", ""); add_child(*_datarow); _tiporiga = new TXML_element("ind_tiporiga", ind_tiporiga); _datarow->add_child(*_tiporiga); _art = new TXML_element("cod_art", cod_art); _datarow->add_child(*_art); _des_articolo = new TXML_element("des_articolo_riga", des_articolo_riga); _datarow->add_child(*_des_articolo); _merce = new TXML_element("qta_merce", qta_merce); _datarow->add_child(*_merce); _libero = new TXML_element("des_campo_libero6", des_campo_libero6); _datarow->add_child(*_libero); } TOrdini_riga_xml::~TOrdini_riga_xml() { delete _datarow; delete _tiporiga; delete _art; delete _des_articolo; delete _merce; delete _libero; } /////////////////////////////////////////////////////////// // Flexform xml export /////////////////////////////////////////////////////////// TFlexform_xml::TFlexform_xml(const char* xml_name) : _file_name(xml_name), _fout(nullptr) { // _esa_import.set_attributes(TConfig(CONFIG_DITTA, "Main").get("RAGSOC"), TDate(TODAY), generate_GUID(), "1"); _esa_import.set_root(); _fout = new ofstream(xml_name); } /////////////////////////////////////////////////////////// // Flexform DDT export /////////////////////////////////////////////////////////// int TFlexform_xml_ddt::add_doc() { const shared_ptr doc = make_shared("DOC_UNICO", ""); const shared_ptr test = make_shared(); _docs_unico.insert(_docs_unico.end(), doc); _docs_unico.back()->set_parent(_esa_import); _testate.insert(_testate.end(), test); _testate.back()->set_parent(*_docs_unico.back()); return _docs_unico.size(); } int TFlexform_xml_ddt::add_row(const shared_ptr& riga, const int which_doc) { int i = which_doc < 0 ? (int)_testate.size() - 1 : which_doc; if (!_testate.empty() && i < (int)_testate.size()) riga->set_parent(*_testate[i]); else i = -1; return i; } bool TFlexform_xml_ddt::print() { ofstream& out = *_fout; out << R"()" << endl; const bool ok = _esa_import.print_on_file(_fout); _fout->close(); return ok; } int TFlexform_xml_ddt::set_testata(const char* data_doc, const char* num_doc, const int which_doc) { int i = which_doc < 0 ? (int)_testate.size() - 1 : which_doc; if (!_testate.empty() && i < (int)_testate.size()) _testate[i]->set_testata(data_doc, num_doc); else i = -1; return i; } /////////////////////////////////////////////////////////// // Flexform Ordini export /////////////////////////////////////////////////////////// bool TFlexform_xml_ordini::print() { ofstream& out = *_fout; out << R"()" << endl; const bool ok = _esa_import.print_on_file(_fout); _fout->close(); return ok; } TFlexform_xml_ordini::TFlexform_xml_ordini(const char* xml_name) : TFlexform_xml(xml_name), _ordine_impegno("ORDINE_IMPEGNO", "") { _ordine_impegno.add_attribute("TipoOperazione", "Insert"); _ordine_impegno.set_parent(_esa_import); _testata.set_parent(_ordine_impegno); _fout = new ofstream(_file_name); }