2020-03-05 10:44:33 +01:00
|
|
|
#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 Source=? CreationDate=? InstanceGuid=? FileVersion="1" />
|
|
|
|
_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()
|
|
|
|
{
|
2020-03-05 13:01:01 +01:00
|
|
|
const shared_ptr<TXML_element> doc = make_shared<TXML_element>("DOC_UNICO", "");
|
|
|
|
const shared_ptr<TDDT_testata_xml> test = make_shared<TDDT_testata_xml>();
|
2020-03-05 10:44:33 +01:00
|
|
|
_docs_unico.insert(_docs_unico.end(), doc);
|
|
|
|
_docs_unico.back()->set_parent(_esa_import);
|
2020-03-05 13:01:01 +01:00
|
|
|
|
2020-03-05 10:44:33 +01:00
|
|
|
_testate.insert(_testate.end(), test);
|
|
|
|
_testate.back()->set_parent(*_docs_unico.back());
|
|
|
|
return _docs_unico.size();
|
|
|
|
}
|
|
|
|
|
2020-03-10 15:15:19 +01:00
|
|
|
int TFlexform_xml_ddt::add_row(const shared_ptr<TDDT_riga_xml>& riga, const int which_doc)
|
2020-03-05 10:44:33 +01:00
|
|
|
{
|
|
|
|
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"(<?xml version="1.0" encoding="UTF-8"?>)" << 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"(<?xml version="1.0" encoding="UTF-8"?>)" << 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);
|
|
|
|
}
|