|
|
#include "util.h"
|
|
|
string getTime2()
|
|
|
{
|
|
|
stringstream ss;
|
|
|
time_t t = time(0);
|
|
|
tm* local = localtime(&t);
|
|
|
ss << local->tm_year + 1900 << '/';
|
|
|
ss << local->tm_mon + 1 << '/';
|
|
|
ss << local->tm_mday << ' ';
|
|
|
|
|
|
return ss.str();
|
|
|
}
|
|
|
|
|
|
const char* newGUID()
|
|
|
{
|
|
|
static char buf[64] = { 0 };
|
|
|
GUID guid;
|
|
|
if (S_OK == ::CoCreateGuid(&guid))
|
|
|
{
|
|
|
_snprintf(buf, sizeof(buf)
|
|
|
, "%08X-%04X-%04x-%02X%02X-%02X%02X%02X%02X%02X%02X"
|
|
|
, guid.Data1
|
|
|
, guid.Data2
|
|
|
, guid.Data3
|
|
|
, guid.Data4[0], guid.Data4[1]
|
|
|
, guid.Data4[2], guid.Data4[3], guid.Data4[4], guid.Data4[5]
|
|
|
, guid.Data4[6], guid.Data4[7]
|
|
|
);
|
|
|
}
|
|
|
return (const char*)buf;
|
|
|
|
|
|
}
|
|
|
|
|
|
int send_erp(tag_t top_line,int type,string &now,char **pref_vals, Testclass ^class1, System::String ^save_url, System::String ^check_url, vector<map<string,string>> &configs,map<string,map<string,map<string,string>>> &zl_map, System::String ^key,string creation_date,map<string,string> &stock_map)
|
|
|
{
|
|
|
printf("send_erp\n");
|
|
|
int line_cnt,rel_cnt;
|
|
|
tag_t rev, *lines,form,relation_type,*rels;
|
|
|
|
|
|
AOM_ask_value_tag(top_line, "bl_line_object", &rev);
|
|
|
GRM_find_relation_type(IMAN_master_form_rtype, &relation_type);
|
|
|
GRM_list_secondary_objects_only(rev, relation_type, &rel_cnt, &rels);
|
|
|
form = rels[0];
|
|
|
|
|
|
BOM_line_ask_child_lines(top_line, &line_cnt, &lines);
|
|
|
string item_id = get_val(top_line, "bl_item_item_id");
|
|
|
string rev_id = get_val(top_line, "bl_rev_item_revision_id");
|
|
|
string tc = get_val(top_line, "KL3_tc");
|
|
|
Document doc;
|
|
|
Document doc2;
|
|
|
doc2.SetObject();
|
|
|
doc.SetObject();
|
|
|
Document::AllocatorType &al = doc.GetAllocator();
|
|
|
Document::AllocatorType &al2 = doc2.GetAllocator();
|
|
|
|
|
|
Value data(kObjectType);
|
|
|
Value data2(kObjectType);
|
|
|
Value data_page1(kArrayType);
|
|
|
Value page1(kObjectType);
|
|
|
Value data_page2(kArrayType);
|
|
|
Value parent_val(kObjectType);
|
|
|
Value empty(kObjectType);
|
|
|
empty.AddMember("FNumber", "", al);
|
|
|
empty.AddMember("FName", "", al);
|
|
|
parent_val.AddMember("FNumber", "KL", al);
|
|
|
parent_val.AddMember("FName", "BOM", al);
|
|
|
string bill_no=item_id + rev_id;
|
|
|
page1.AddMember("FParentID", parent_val, al);
|
|
|
data2.AddMember("FBillNo", Value().SetString(bill_no.c_str(), al2), al2);
|
|
|
page1.AddMember("FBOMNumber", Value().SetString(bill_no.c_str(), al), al);
|
|
|
page1.AddMember("FVersion", Value().SetString(rev_id.c_str(), al), al);
|
|
|
page1.AddMember("FPercentErpClsID", Value().SetString(get_val(form, "kl3_item_wlsx"), al), al);
|
|
|
page1.AddMember("FAudDate", Value().SetString(now.c_str(), al), al);
|
|
|
page1.AddMember("FCheckDate", Value().SetString(creation_date.c_str(), al), al);
|
|
|
page1.AddMember("FEntertime", Value().SetString(now.c_str(), al), al);
|
|
|
Value manager(kObjectType);
|
|
|
manager.AddMember("FName", Value().SetString(pref_vals[4], al), al);
|
|
|
manager.AddMember("FNumber", Value().SetString(pref_vals[5], al), al);
|
|
|
page1.AddMember("FCheckerID", manager, al);
|
|
|
Value manager2(kObjectType);
|
|
|
manager2.AddMember("FName", Value().SetString(pref_vals[6], al), al);
|
|
|
manager2.AddMember("FNumber", Value().SetString(pref_vals[7], al), al);
|
|
|
page1.AddMember("FCheckID", manager2, al);
|
|
|
|
|
|
page1.AddMember("FStatus", 1, al);
|
|
|
Value status_val(kObjectType);
|
|
|
status_val.AddMember("FNumber", "ZT02", al);
|
|
|
status_val.AddMember("FName", "δʹ<EFBFBD><EFBFBD>", al);
|
|
|
|
|
|
page1.AddMember("FBOMUseStatus", status_val, al);
|
|
|
Value percent_id_val(kObjectType);
|
|
|
percent_id_val.AddMember("FNumber", Value().SetString(item_id.c_str(), al), al);
|
|
|
percent_id_val.AddMember("FName", Value().SetString(get_val(top_line, "bl_item_object_name"), al), al);
|
|
|
page1.AddMember("FPercentItemID", percent_id_val, al);
|
|
|
page1.AddMember("FNote",Value().SetString(get_val(form,"kl3_item_ylxx"),al),al);
|
|
|
|
|
|
page1.AddMember("FPercentItemName", Value().SetString(get_val(top_line, "bl_item_object_name"), al), al);
|
|
|
string jldwz = get_val(form, "kl3_jldwz");
|
|
|
int jldw_index = jldwz.find('/');
|
|
|
jldwz = jldw_index != -1 ? jldwz.substr(0, jldw_index) : jldwz;
|
|
|
|
|
|
if (zl_map.find(jldwz)!=zl_map.end())
|
|
|
{
|
|
|
Value jldw_val(kObjectType);
|
|
|
string temp_val = get_val(form, "kl3_item_scjldw");
|
|
|
jldw_val.AddMember("FName", Value().SetString(temp_val.c_str(), al), al);
|
|
|
jldw_val.AddMember("FNumber", Value().SetString(zl_map[jldwz][temp_val]["id"].c_str(), al), al);
|
|
|
page1.AddMember("FPercentUnitID", jldw_val, al);
|
|
|
|
|
|
//page1.AddMember("FPercentUnitID", get_jldw(get_val(form, "kl3_item_scjldw"), al, jldw_val), al);
|
|
|
}
|
|
|
page1.AddMember("FPercentItemModel", Value().SetString(get_val(form, "kl3_item_ggxh"), al), al);
|
|
|
string gylx = get_val(top_line, "bl_ItemRevision Master_kl3_item_gylxmc");
|
|
|
page1.AddMember("FRoutingName", Value().SetString(gylx.c_str(), al), al);
|
|
|
Value routing_val(kObjectType);
|
|
|
routing_val.AddMember("FName", Value().SetString(gylx.c_str(), al), al);
|
|
|
routing_val.AddMember("FNumber", Value().SetString(configs[2][gylx].c_str(), al), al);
|
|
|
|
|
|
//routing_val.AddMember("FNumber", (*configs[6])[gylx.c_str()].IsNull()?Value().SetString("",al): (*configs[6])[gylx.c_str()], al);
|
|
|
page1.AddMember("FRoutingID", routing_val, al);
|
|
|
|
|
|
Value skip_val(kObjectType);
|
|
|
if(item_id[0] == 'B' || item_id[0] == 'C')
|
|
|
{
|
|
|
skip_val.AddMember("FNumber", "N", al);
|
|
|
skip_val.AddMember("FName", "<EFBFBD><EFBFBD>", al);
|
|
|
|
|
|
}else
|
|
|
{
|
|
|
skip_val.AddMember("FNumber", "Y", al);
|
|
|
skip_val.AddMember("FName", "<EFBFBD><EFBFBD>", al);
|
|
|
}
|
|
|
page1.AddMember("FBOMSkip", skip_val, al);
|
|
|
page1.AddMember("FPercentQty", "1", al);
|
|
|
page1.AddMember("FAuxQty", "1", al);
|
|
|
page1.AddMember("FPercentAuxPropID", empty, al);
|
|
|
page1.AddMember("FNote", "", al);
|
|
|
page1.AddMember("FYield", 100, al);
|
|
|
page1.AddMember("FIsCharSourceItem", "<EFBFBD><EFBFBD>", al);
|
|
|
page1.AddMember("FTranType", 50, al);
|
|
|
page1.AddMember("FInterID", 6297, al);
|
|
|
page1.AddMember("FMultiCheckStatus", 2, al);
|
|
|
|
|
|
|
|
|
data_page1.PushBack(page1,al);
|
|
|
printf("end page1\n");
|
|
|
for (auto j = 0; j<line_cnt; j++)
|
|
|
{
|
|
|
|
|
|
Value page2(kObjectType);
|
|
|
|
|
|
page2.AddMember("FEntryID", j + 1, al);
|
|
|
AOM_ask_value_tag(lines[j], "bl_line_object", &rev);
|
|
|
GRM_list_secondary_objects_only(rev, relation_type, &rel_cnt, &rels);
|
|
|
form = rels[0];
|
|
|
string item_id2 = get_val(lines[j], "bl_item_item_id");
|
|
|
Value item_id_val(kObjectType);
|
|
|
item_id_val.AddMember("FNumber", Value().SetString(item_id2.c_str(), al), al);
|
|
|
item_id_val.AddMember("FName", Value().SetString(get_val(lines[j], "bl_item_object_name"), al), al);
|
|
|
page2.AddMember("FItemID", item_id_val, al);
|
|
|
page2.AddMember("FItemName", Value().SetString(get_val(lines[j], "bl_item_object_name"), al), al);
|
|
|
Value material_val(kObjectType);
|
|
|
material_val.AddMember("FNumber", "COM", al);
|
|
|
material_val.AddMember("FName", "<EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>", al);
|
|
|
page2.AddMember("FMaterielType", material_val, al);
|
|
|
|
|
|
string gx = get_val(lines[j], "KL3_gx");
|
|
|
|
|
|
Value oper_val(kObjectType);
|
|
|
// oper_val.AddMember("FNumber", "ZJ", al);
|
|
|
// oper_val.AddMember("FName", "ע<><D7A2><EFBFBD><EFBFBD><EFBFBD>첿<EFBFBD>ռ칤<D5BC><ECB9A4>", al);
|
|
|
oper_val.AddMember("FNumber", Value().SetString(configs[3][gx].c_str(), al), al);
|
|
|
|
|
|
// oper_val.AddMember("FNumber", (*configs[7])[gx.c_str()], al);
|
|
|
oper_val.AddMember("FName", Value().SetString(gx.c_str(), al), al);
|
|
|
|
|
|
page2.AddMember("FOperID", oper_val, al);
|
|
|
page2.AddMember("FOperSN", 10, al);
|
|
|
|
|
|
page2.AddMember("FAuxQtyScrap", Value().SetString(get_val(lines[j], "KL3_yl"), al), al);
|
|
|
Value stock_val(kObjectType);
|
|
|
string stock = get_val(lines[j], "KL3_flck");
|
|
|
printf("stock:%s\n", stock.c_str());
|
|
|
if(stock_map.find(stock)!=stock_map.end()){
|
|
|
stock_val.AddMember("FNumber", Value().SetString(stock_map[stock].c_str(), al), al);
|
|
|
stock_val.AddMember("FName", Value().SetString(stock.c_str(), al), al);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
stock_val.AddMember("FNumber", "", al);
|
|
|
stock_val.AddMember("FName", "", al);
|
|
|
|
|
|
}
|
|
|
// stock_val.AddMember("FNumber", (*configs[1])[stock.c_str()], al);
|
|
|
// stock_val.AddMember("FName", Value().SetString(stock.c_str(), al), al);
|
|
|
|
|
|
page2.AddMember("FStockID", stock_val, al);
|
|
|
|
|
|
page2.AddMember("FUseStatus", "ʹ<EFBFBD><EFBFBD>", al);
|
|
|
page2.AddMember("FBeginDay", "1900-1-1", al);
|
|
|
page2.AddMember("FEndDay", "2100-1-1", al);
|
|
|
page2.AddMember("FItemModel", Value().SetString(get_val(lines[j], "kl3_item_ggxh"), al), al);
|
|
|
page2.AddMember("FErpClsID", Value().SetString(get_val(form, "kl3_item_wlsx"), al), al);
|
|
|
|
|
|
//page2.AddMember("FErpClsID", get_wlsx(get_val(rev, "kl3_item_wlsx"), al,* configs[5]), al);
|
|
|
jldwz = get_val(form, "kl3_jldwz");
|
|
|
jldw_index = jldwz.find('/');
|
|
|
jldwz = jldw_index != -1 ? jldwz.substr(0, jldw_index) : jldwz;
|
|
|
printf("jldw:%s\n", jldwz.c_str());
|
|
|
if (zl_map.find(jldwz)!=zl_map.end())
|
|
|
{
|
|
|
printf("find\n");
|
|
|
string sc_val = get_val(form, "kl3_item_scjldw");
|
|
|
string jb_val= get_val(form, "kl3_jbjldw");
|
|
|
page2.AddMember("FBaseUnit", Value().SetString(jb_val.c_str(),al), al);
|
|
|
Value jldw_val(kObjectType);
|
|
|
jldw_val.AddMember("FName", Value().SetString(sc_val.c_str(), al), al);
|
|
|
jldw_val.AddMember("FNumber", Value().SetString(zl_map[jldwz][sc_val]["id"].c_str(), al), al);
|
|
|
printf("end 111\n");
|
|
|
page2.AddMember("FUnitID", jldw_val, al);
|
|
|
double co = 1;
|
|
|
double yl = atof(get_val(lines[j], "KL3_yl"));
|
|
|
|
|
|
if(sc_val!=jb_val)
|
|
|
{
|
|
|
double jb_co = atof(zl_map[jldwz][jb_val]["coefficient"].c_str());
|
|
|
double sc_co = atof(zl_map[jldwz][sc_val]["coefficient"].c_str());
|
|
|
printf("yl:%f jb_co:%f sc_co:%f\n", yl,jb_co,sc_co);
|
|
|
|
|
|
co = sc_co / jb_co;
|
|
|
}
|
|
|
yl *= co;
|
|
|
page2.AddMember("FQty", yl, al);
|
|
|
}
|
|
|
printf("end jldw\n");
|
|
|
page2.AddMember("FIsPrimary", "<EFBFBD><EFBFBD>", al);
|
|
|
page2.AddMember("FForbitUse", "<EFBFBD><EFBFBD>", al);
|
|
|
page2.AddMember("FSubItemType", 1, al);
|
|
|
page2.AddMember("FOffSetDay", 0, al);
|
|
|
page2.AddMember("FPercent", 100, al);
|
|
|
page2.AddMember("FHasChar", 0, al);
|
|
|
page2.AddMember("FCostPercentage", 0, al);
|
|
|
page2.AddMember("FScrap", 0, al);
|
|
|
page2.AddMember("FEntryKey", 69777, al);
|
|
|
|
|
|
page2.AddMember("FMachinePos", "", al);
|
|
|
page2.AddMember("FPositionNo", "", al);
|
|
|
page2.AddMember("FNote0", "", al);
|
|
|
page2.AddMember("FNote1", "", al);
|
|
|
page2.AddMember("FNote2", "", al);
|
|
|
page2.AddMember("FNote3", "", al);
|
|
|
page2.AddMember("FItemSize", "", al);
|
|
|
page2.AddMember("FItemSuite", "", al);
|
|
|
page2.AddMember("FAuxClassID", "", al);
|
|
|
page2.AddMember("FPDMImportDate", Value().SetNull(), al);
|
|
|
|
|
|
page2.AddMember("FDetailID", Value().SetString(newGUID(),al), al);
|
|
|
Value empty2(kObjectType);
|
|
|
empty2.AddMember("FNumber", "", al);
|
|
|
empty2.AddMember("FName", "", al);
|
|
|
page2.AddMember("FAuxPropID", empty2, al);
|
|
|
Value empty3(kObjectType);
|
|
|
empty3.AddMember("FNumber", "", al);
|
|
|
empty3.AddMember("FName", "", al);
|
|
|
page2.AddMember("FSPID", empty3, al);
|
|
|
string back = get_val(lines[j], "KL3_sfdc");
|
|
|
Value back_val(kObjectType);
|
|
|
if(back=="<EFBFBD><EFBFBD>")
|
|
|
{
|
|
|
back_val.AddMember("FNumber", "N", al);
|
|
|
back_val.AddMember("FName", "<EFBFBD><EFBFBD>", al);
|
|
|
}else
|
|
|
{
|
|
|
back_val.AddMember("FNumber", "Y", al);
|
|
|
back_val.AddMember("FName", "<EFBFBD><EFBFBD>", al);
|
|
|
}
|
|
|
|
|
|
page2.AddMember("FBackFlush", back_val, al);
|
|
|
Value ty_val(kObjectType);
|
|
|
ty_val.AddMember("FNumber", "COM", al);
|
|
|
ty_val.AddMember("FName", "ͨ<EFBFBD><EFBFBD>", al);
|
|
|
page2.AddMember("FMarshalType", ty_val, al);
|
|
|
|
|
|
|
|
|
data_page2.PushBack(page2, al);
|
|
|
|
|
|
printf("end page2");
|
|
|
// if (type)
|
|
|
// continue;
|
|
|
// if (item_id2[0] == 'B'|| item_id2[0] == 'X')
|
|
|
// {
|
|
|
// send_erp(lines[j], 1, now, pref_vals, class1, save_url,check_url,configs,zl_map,key,creation_date);
|
|
|
// }
|
|
|
}
|
|
|
|
|
|
data.AddMember("Page1", data_page1, al);
|
|
|
data.AddMember("Page2", data_page2, al);
|
|
|
doc.AddMember("Data", data, al);
|
|
|
|
|
|
StringBuffer sb;
|
|
|
Writer<StringBuffer> writer(sb);
|
|
|
doc.Accept(writer);
|
|
|
printf("data:%s\n", sb.GetString());
|
|
|
string result = ConvertToString(class1->Send(save_url, convert_to_cstring(sb.GetString()),key));
|
|
|
printf("result:%s\n", result.c_str());
|
|
|
if(result[0]=='s')
|
|
|
{
|
|
|
LOG(INFO) << result;
|
|
|
data2.AddMember("FUserName", "administrator", al2);
|
|
|
data2.AddMember("FUseDirection", "1", al2);
|
|
|
doc2.AddMember("Data", data2, al2);
|
|
|
StringBuffer sb2;
|
|
|
Writer<StringBuffer> writer2(sb2);
|
|
|
doc2.Accept(writer2);
|
|
|
printf("data2:%s\n", sb2.GetString());
|
|
|
result = ConvertToString(class1->Send(check_url, convert_to_cstring(sb2.GetString()),key));
|
|
|
printf("result2:%s\n", result.c_str());
|
|
|
|
|
|
if(result[0]=='s')
|
|
|
{
|
|
|
LOG(INFO) << result;
|
|
|
}else
|
|
|
{
|
|
|
LOG(ERROR) << result;
|
|
|
EMH_store_error_s1(EMH_severity_error, EMH_ATTR_error_base, result.c_str());
|
|
|
return 1;
|
|
|
}
|
|
|
}else
|
|
|
{
|
|
|
LOG(ERROR) << result;
|
|
|
|
|
|
EMH_store_error_s1(EMH_severity_error, EMH_ATTR_error_base, result.c_str());
|
|
|
return 1;
|
|
|
}
|
|
|
return 0;
|
|
|
|
|
|
}
|
|
|
int erp_bom(tag_t task, string key_str, string pref1, string pref2,string pref3)
|
|
|
{
|
|
|
printf("erp_bom start\n");
|
|
|
tag_t root_task, *atts, win;
|
|
|
int att_cnt;
|
|
|
EPM_ask_root_task(task, &root_task);
|
|
|
EPM_ask_attachments(root_task, EPM_target_attachment, &att_cnt, &atts);
|
|
|
int pref_cnt, pref_cnt2,pref_cnt3;
|
|
|
char **pref_vals, **pref_vals2,**pref_vals3;
|
|
|
PREF_ask_char_values(pref1.c_str(), &pref_cnt, &pref_vals);
|
|
|
PREF_ask_char_values(pref2.c_str(), &pref_cnt2, &pref_vals2);
|
|
|
PREF_ask_char_values(pref3.c_str(), &pref_cnt3, &pref_vals3);
|
|
|
|
|
|
vector<map<string,string>> configs;
|
|
|
Document doc;
|
|
|
doc.SetObject();
|
|
|
Document::AllocatorType &al = doc.GetAllocator();
|
|
|
map<string, map<string, map<string,string>>> zl_map;
|
|
|
string creation_date = getTime2();
|
|
|
map<string,string> stock_map;
|
|
|
for(auto i=0;i<pref_cnt3;i++){
|
|
|
string temp=pref_vals3[i];
|
|
|
auto index=temp.find('=');
|
|
|
if(index!=-1){
|
|
|
stock_map[temp.substr(0,index)]=temp.substr(index+1);
|
|
|
}
|
|
|
}
|
|
|
for (auto i = 0; i<pref_cnt2; i++)
|
|
|
{
|
|
|
if(i==4)
|
|
|
{
|
|
|
Document temp_doc;
|
|
|
temp_doc.Parse(pref_vals2[i]);
|
|
|
for(auto j=temp_doc.MemberBegin();j!=temp_doc.MemberEnd();j++)
|
|
|
{
|
|
|
map<string, map<string,string>> temp_map;
|
|
|
for(auto k=j->value.MemberBegin();k!=j->value.MemberEnd();k++)
|
|
|
{
|
|
|
string name = k->name.GetString();
|
|
|
map<string, string> temp_map2;
|
|
|
if(name=="id")
|
|
|
{
|
|
|
temp_map2["id"] = k->value.GetString();
|
|
|
}else
|
|
|
{
|
|
|
for(auto l=k->value.MemberBegin();l!=k->value.MemberEnd();l++)
|
|
|
{
|
|
|
temp_map2[l->name.GetString()] = l->value.GetString();
|
|
|
|
|
|
}
|
|
|
}
|
|
|
temp_map[name] = temp_map2;
|
|
|
|
|
|
}
|
|
|
zl_map[j->name.GetString()] = temp_map;
|
|
|
}
|
|
|
}
|
|
|
if(i==1||i>4)
|
|
|
{
|
|
|
Document temp_doc;
|
|
|
temp_doc.Parse(pref_vals2[i]);
|
|
|
map<string, string> temp_map;
|
|
|
for(auto j=temp_doc.MemberBegin();j!=temp_doc.MemberEnd();j++)
|
|
|
{
|
|
|
temp_map[j->name.GetString()] = j->value.GetString();
|
|
|
}
|
|
|
configs.push_back(temp_map);
|
|
|
}
|
|
|
}
|
|
|
printf("pref_cnt:%d\n", pref_cnt);
|
|
|
string ip = pref_vals[0];
|
|
|
string token_url = ip + "/K3API/Token/Create?authorityCode=" + pref_vals[1];
|
|
|
Testclass ^class1 = gcnew Testclass();
|
|
|
System::String ^key = convert_to_cstring(key_str.c_str());
|
|
|
|
|
|
string token = ConvertToString(class1->GetToken(convert_to_cstring(token_url.c_str()),key));
|
|
|
printf("token:%s\n", token.c_str());
|
|
|
string s_url = ip + "/K3API/BOM/Save?token=" + token;
|
|
|
string c_url = ip + "/K3API/BOM/CheckUse?token=" + token;
|
|
|
System::String ^save_url = convert_to_cstring(s_url.c_str());
|
|
|
System::String ^check_url = convert_to_cstring(c_url.c_str());
|
|
|
|
|
|
BOM_create_window(&win);
|
|
|
string now = getTime();
|
|
|
for (auto i = 0; i<att_cnt; i++)
|
|
|
{
|
|
|
if (isTypeOf(atts[i], "PSBOMViewRevision"))
|
|
|
{
|
|
|
int rel_cnt, line_cnt;
|
|
|
tag_t *rels, top_line, *lines, rev;
|
|
|
char *id;
|
|
|
AOM_ask_value_tags(atts[i], "release_status_list", &rel_cnt, &rels);
|
|
|
if (rel_cnt)
|
|
|
continue;
|
|
|
BOM_set_window_top_line_bvr(win, atts[i], &top_line);
|
|
|
AOM_ask_value_string(top_line, "bl_item_item_id", &id);
|
|
|
// if (id[0] != 'C')
|
|
|
// continue;
|
|
|
|
|
|
int result=send_erp(top_line, 0, now, pref_vals, class1, save_url, check_url,configs,zl_map,key,creation_date,stock_map);
|
|
|
if (result)
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
BOM_close_window(win);
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
|
|
|
int kl_erp_bom(EPM_action_message_t msg)
|
|
|
{
|
|
|
int arg_cnt = TC_number_of_arguments(msg.arguments);
|
|
|
string key, pref1, pref2,pref3;
|
|
|
for (auto i = 0; i<arg_cnt; i++)
|
|
|
{
|
|
|
char *temp_key, *temp_val;
|
|
|
ITK_ask_argument_named_value(TC_next_argument(msg.arguments), &temp_key, &temp_val);
|
|
|
if (tc_strcmp(temp_key, "key")==0)
|
|
|
{
|
|
|
key = temp_val;
|
|
|
}
|
|
|
else if (tc_strcmp(temp_key, "pref1")==0)
|
|
|
{
|
|
|
pref1 = temp_val;
|
|
|
}
|
|
|
else if (tc_strcmp(temp_key, "pref2")==0)
|
|
|
{
|
|
|
pref2 = temp_val;
|
|
|
}else if (tc_strcmp(temp_key, "pref3")==0)
|
|
|
{
|
|
|
pref3 = temp_val;
|
|
|
}
|
|
|
}
|
|
|
printf("key:%s\n", key.c_str());
|
|
|
printf("pref1:%s\n", pref1.c_str());
|
|
|
printf("pref2:%s\n", pref2.c_str());
|
|
|
printf("pref3:%s\n", pref3.c_str());
|
|
|
|
|
|
return erp_bom(msg.task, key, pref1, pref2,pref3);
|
|
|
}
|
|
|
|