Patch level : 12.0 no-patch
Files correlati : ps6362.exe (ps Major) Commento : - Importazione articoli con ricerca codice interno major. - Esportazione bolle con condice articolo COD_PMS (flexform).
This commit is contained in:
parent
8dfc4b9a9f
commit
6c5012c9ab
@ -6,6 +6,7 @@
|
||||
#include "date.h"
|
||||
#include "progind.h"
|
||||
#include "velib.h"
|
||||
#include "sqlset.h"
|
||||
|
||||
#define CHECK_CONDXML_OR_RETURNFALSE(cond, msg) { \
|
||||
TString str; \
|
||||
@ -275,6 +276,16 @@ bool TFlexform_xml_ordini::convert() const
|
||||
return false;
|
||||
}
|
||||
|
||||
TString TFlexform_xml_ordini::flexart2codart(const TString& cod_art_flexform)
|
||||
{
|
||||
TSQL_recordset sql("");
|
||||
TString query; query << "SELECT * FROM ANAMAG WHERE COD_PMS = '" << cod_art_flexform << "'";
|
||||
sql.set(query);
|
||||
if(sql.items() == 1)
|
||||
return sql.get(sql.find_column("CODART")).as_string();
|
||||
return "";
|
||||
}
|
||||
|
||||
bool TFlexform_xml_ordini::create_doc()
|
||||
{
|
||||
const shared_ptr<TXML_element> esa_import = _importer._imported[1];
|
||||
@ -320,9 +331,11 @@ bool TFlexform_xml_ordini::create_doc()
|
||||
const TString& dat_evas_riga = datarow_r.get_val_child("dat_evas_riga");
|
||||
const TString& des_campo_libero6 = datarow_r.get_val_child("des_campo_libero6");
|
||||
|
||||
TString cod_art_major = flexart2codart(cod_art);
|
||||
|
||||
TRiga_documento& d_row = doc.new_row(ind_tiporiga == "D" ? "05" : "01");
|
||||
if (ind_tiporiga != "D")
|
||||
d_row.put(RDOC_CODART, cod_art); // todo: codice articolo da mandarlo a cercare nell'altro campo
|
||||
d_row.put(RDOC_CODART, !cod_art_major.empty() ? cod_art_major : cod_art);
|
||||
d_row.put(RDOC_DESCR, des_articolo_riga);
|
||||
d_row.put(RDOC_QTA, qta_merce);
|
||||
d_row.put("DATA_EVASIONE_RIGA", dat_evas_riga); // RG1 -> DATA_EVASIONE_RIGA
|
||||
|
@ -209,6 +209,8 @@ public:
|
||||
bool convert() const;
|
||||
bool create_doc();
|
||||
|
||||
static TString flexart2codart(const TString& string);
|
||||
|
||||
TFlexform_xml_ordini(const char* xml_name = "", const char* codnum = "", int codcli_flex = 12);
|
||||
};
|
||||
|
||||
|
@ -9,7 +9,7 @@ int main(int argc, char** argv)
|
||||
switch (r)
|
||||
{
|
||||
default:
|
||||
case 0: rt = ps6362100(argc, argv); break; // Esportrazione Major-Flexform
|
||||
case 0: rt = ps6362100(argc, argv); break; // Import/Export Major-Flexform
|
||||
}
|
||||
return rt;
|
||||
}
|
@ -151,7 +151,7 @@ void TMajor_export_mask::load_all()
|
||||
// Main Program
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
class TMajor_export_app : public TSkeleton_application
|
||||
class TMajor_flexform_boll_app : public TSkeleton_application
|
||||
{
|
||||
TString _fld_dest;
|
||||
|
||||
@ -163,16 +163,16 @@ class TMajor_export_app : public TSkeleton_application
|
||||
void main_loop() override;
|
||||
|
||||
public:
|
||||
TMajor_export_app() = default;
|
||||
TMajor_flexform_boll_app() = default;
|
||||
};
|
||||
|
||||
bool TMajor_export_app::create()
|
||||
bool TMajor_flexform_boll_app::create()
|
||||
{
|
||||
open_files(LF_DOC, LF_RIGHEDOC);
|
||||
return TSkeleton_application::create();
|
||||
}
|
||||
|
||||
TFilename TMajor_export_app::check_name_file(const TString& dir, const bool sub_fld, const int from, const int to, bool ddt)
|
||||
TFilename TMajor_flexform_boll_app::check_name_file(const TString& dir, const bool sub_fld, const int from, const int to, bool ddt)
|
||||
{
|
||||
TString cartella = dir; cartella << "/";
|
||||
if (sub_fld)
|
||||
@ -206,7 +206,7 @@ TFilename TMajor_export_app::check_name_file(const TString& dir, const bool sub_
|
||||
return xml;
|
||||
}
|
||||
|
||||
TString TMajor_export_app::get_riferimento_flexform(const TSQL_recordset& righe_doc)
|
||||
TString TMajor_flexform_boll_app::get_riferimento_flexform(const TSQL_recordset& righe_doc)
|
||||
{
|
||||
const TString& rg1 = righe_doc.get(3).as_string();
|
||||
const TToken_string t(rg1, char(0xB6)); // Simbolo paragrafo ¶
|
||||
@ -227,7 +227,7 @@ TString TMajor_export_app::get_riferimento_flexform(const TSQL_recordset& righe_
|
||||
return "";
|
||||
}
|
||||
|
||||
bool TMajor_export_app::export_ddt(TMask& msk)
|
||||
bool TMajor_flexform_boll_app::export_ddt(TMask& msk)
|
||||
{
|
||||
const TString& dir = msk.get(F_FLDDEST);
|
||||
const bool sub_fld = msk.get_bool(F_SUBFLD);
|
||||
@ -257,21 +257,23 @@ bool TMajor_export_app::export_ddt(TMask& msk)
|
||||
xml_ddts.set_testata(day.string(), n_doc);
|
||||
// Righe documento
|
||||
TString query_righe;
|
||||
query_righe << "SELECT CODART, DESCR, QTA, RG1, DESCLUNGA, DESCEST\n"
|
||||
"FROM rdoc\nWHERE CODNUM = '" << codnum << "' AND ANNO = " << year << " AND PROVV = 'D' AND NDOC=" << n_doc;
|
||||
query_righe << "SELECT rdoc.CODART, rdoc.DESCR, rdoc.QTA, rdoc.RG1, rdoc.DESCLUNGA, rdoc.DESCEST, COD_PMS\n"
|
||||
"FROM rdoc\n"
|
||||
"JOIN anamag ON rdoc.CODART = anamag.CODART\n"
|
||||
"WHERE CODNUM = '" << codnum << "' AND ANNO = " << year << " AND PROVV = 'D' AND NDOC=" << n_doc;
|
||||
TSQL_recordset righe_doc(query_righe);
|
||||
for (bool ok_r = righe_doc.move_first(); ok_r; ok_r = righe_doc.move_next())
|
||||
{
|
||||
shared_ptr<TDDT_riga_xml> riga = xml_ddts.new_row();
|
||||
|
||||
const TString& cod_art = righe_doc.get(0).as_string(); // todo: usa il cod.art. di flexform non quello di campo (vedi terza colonna nell'anteprima)
|
||||
const TString& cod_art_flexform = righe_doc.get(6).as_string();
|
||||
TString descr = righe_doc.get(1).as_string();
|
||||
const TString& qta = righe_doc.get(2).as_string();
|
||||
const TString& desccampolibero6 = get_riferimento_flexform(righe_doc); // get(3) RG1
|
||||
if (righe_doc.get(4).as_bool())
|
||||
descr << righe_doc.get(5).as_string();
|
||||
|
||||
riga->set_datarow("C", cod_art, descr, qta, desccampolibero6);
|
||||
riga->set_datarow("C", cod_art_flexform, descr, qta, desccampolibero6);
|
||||
xml_ddts.add_row(riga);
|
||||
}
|
||||
}
|
||||
@ -281,7 +283,7 @@ bool TMajor_export_app::export_ddt(TMask& msk)
|
||||
return ok;
|
||||
}
|
||||
|
||||
bool TMajor_export_app::import_ordini(TMask& msk)
|
||||
bool TMajor_flexform_boll_app::import_ordini(TMask& msk)
|
||||
{
|
||||
bool ok = false;
|
||||
const TString& dir_in = msk.get(F_FLDSOURCE);
|
||||
@ -323,7 +325,7 @@ bool TMajor_export_app::import_ordini(TMask& msk)
|
||||
return ok;
|
||||
}
|
||||
|
||||
void TMajor_export_app::main_loop()
|
||||
void TMajor_flexform_boll_app::main_loop()
|
||||
{
|
||||
TMajor_export_mask msk;
|
||||
while (msk.run() == K_ENTER)
|
||||
@ -351,7 +353,7 @@ void TMajor_export_app::main_loop()
|
||||
|
||||
int ps6362100(const int argc, char* argv[])
|
||||
{
|
||||
TMajor_export_app pe;
|
||||
pe.run(argc, argv, TR("Esportazione Major-Flexform"));
|
||||
TMajor_flexform_boll_app pe;
|
||||
pe.run(argc, argv, TR("Import/Export Major-Flexform"));
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user