|
|
#include "util.h"
|
|
|
|
|
|
|
|
|
|
|
|
int erp_save(tag_t task,string key_str,string pref1,string pref2)
|
|
|
{
|
|
|
|
|
|
printf("start kl_erp_save\n");
|
|
|
tag_t *atts, root_task;
|
|
|
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;
|
|
|
char **pref_vals, **pref_vals2;
|
|
|
|
|
|
PREF_ask_char_values(pref1.c_str(), &pref_cnt, &pref_vals);
|
|
|
PREF_ask_char_values(pref2.c_str(), &pref_cnt2, &pref_vals2);
|
|
|
vector<Value*> configs;
|
|
|
Document doc0, doc1, doc2, doc3, doc4, doc5,doc6,doc7;
|
|
|
vector<Document*> vec;
|
|
|
vec.push_back(&doc0);
|
|
|
vec.push_back(&doc1);
|
|
|
vec.push_back(&doc2);
|
|
|
vec.push_back(&doc3);
|
|
|
vec.push_back(&doc4);
|
|
|
vec.push_back(&doc5);
|
|
|
vec.push_back(&doc6);
|
|
|
vec.push_back(&doc7);
|
|
|
|
|
|
for (auto i = 0; i<pref_cnt2; i++)
|
|
|
{
|
|
|
vec[i]->Parse(pref_vals2[i]);
|
|
|
configs.push_back(vec[i]);
|
|
|
}
|
|
|
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/Material/Save?token=" + token;
|
|
|
string c_url = ip + "/K3API/Material/GetDetail?token=" + token;
|
|
|
System::String ^save_url = convert_to_cstring(s_url.c_str());
|
|
|
System::String ^check_url = convert_to_cstring(c_url.c_str());
|
|
|
string u_url = ip + "/K3API/Material/Update?token=" + token;
|
|
|
System::String ^update_url = convert_to_cstring(u_url.c_str());
|
|
|
|
|
|
POM_AM__set_application_bypass(true);
|
|
|
printf("att_cnt:%d\n", att_cnt);
|
|
|
for (auto i = 0; i<att_cnt; i++)
|
|
|
{
|
|
|
int type = -1;
|
|
|
if (isTypeOf(atts[i], "KL3_MaterialRevisionMaster"))
|
|
|
{
|
|
|
type = 0;
|
|
|
}
|
|
|
else if (isTypeOf(atts[i], "KL3_SemiProductRevisionMaster"))
|
|
|
{
|
|
|
type = 1;
|
|
|
}
|
|
|
else if (isTypeOf(atts[i], "KL3_ProductRevisionMaster"))
|
|
|
{
|
|
|
type = 2;
|
|
|
}
|
|
|
else if (isTypeOf(atts[i], "KL3_MouldRevisionMaster"))
|
|
|
{
|
|
|
type = 3;
|
|
|
}
|
|
|
else if (isTypeOf(atts[i], "KL3_MMaterialRevisionMaster"))
|
|
|
{
|
|
|
type = 4;
|
|
|
}
|
|
|
else if (isTypeOf(atts[i], "KL3_GJLRevisionMaster"))
|
|
|
{
|
|
|
type = 5;
|
|
|
}
|
|
|
else if (isTypeOf(atts[i], "KL3_VirtualRevisionMaster"))
|
|
|
{
|
|
|
type = 6;
|
|
|
}
|
|
|
printf("type:%d\n", type);
|
|
|
if (type == -1)
|
|
|
continue;
|
|
|
int ref_cnt, *levels;
|
|
|
tag_t *refs, rev = NULLTAG;
|
|
|
char **relations;
|
|
|
WSOM_where_referenced(atts[i], 1, &ref_cnt, &levels, &refs, &relations);
|
|
|
for (auto j = 0; j<ref_cnt; j++)
|
|
|
{
|
|
|
if (isTypeOf(refs[j], "ItemRevision"))
|
|
|
{
|
|
|
rev = refs[j];
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
Document doc,check_doc;
|
|
|
check_doc.SetObject();
|
|
|
Document::AllocatorType &check_al = check_doc.GetAllocator();
|
|
|
|
|
|
Value check_data(kObjectType);
|
|
|
check_data.AddMember("FNumber", Value().SetString(get_val(rev, "item_id"), check_al), check_al);
|
|
|
check_doc.AddMember("Data", check_data, check_al);
|
|
|
check_doc.AddMember("GetProperty", false, check_al);
|
|
|
StringBuffer check_sb;
|
|
|
Writer<StringBuffer> check_writer(check_sb);
|
|
|
bool is_update = true;
|
|
|
|
|
|
check_doc.Accept(check_writer);
|
|
|
string check_result = ConvertToString(class1->Send(check_url, convert_to_cstring(check_sb.GetString()), key));
|
|
|
printf("check_result:%s\n", check_result.c_str());
|
|
|
if(check_result[0]!='s')
|
|
|
{
|
|
|
LERROR << "check error:" << check_result;
|
|
|
printf("check error\n");
|
|
|
break;
|
|
|
}
|
|
|
if(check_result.find("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڻ<EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>з<EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD>")!=-1)
|
|
|
{
|
|
|
is_update = false;
|
|
|
}
|
|
|
doc.SetObject();
|
|
|
Document::AllocatorType &al = doc.GetAllocator();
|
|
|
Value data(kObjectType);
|
|
|
printf("is_update:%d\n", is_update);
|
|
|
if(is_update)
|
|
|
{
|
|
|
string syzt = get_val(atts[i], "kl3_syzt");
|
|
|
if (syzt == "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
|
|
continue;
|
|
|
if (type != 1 && type != 2 && type != 6)
|
|
|
{
|
|
|
data.AddMember("Fmaund", 0, al);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
Value maund(kObjectType);
|
|
|
string zldw = get_val(atts[i], "kl3_zldw");
|
|
|
maund.AddMember("FNumber", (*configs[3])[zldw.c_str()], al);
|
|
|
maund.AddMember("FName", Value().SetString(zldw.c_str(), al), al);
|
|
|
data.AddMember("Fmaund", maund, al);
|
|
|
}
|
|
|
printf("111\n");
|
|
|
|
|
|
Value manager(kObjectType);
|
|
|
manager.AddMember("FName", Value().SetString(pref_vals[2], al), al);
|
|
|
manager.AddMember("FNumber", Value().SetString(pref_vals[3], al), al);
|
|
|
data.AddMember("FDSManagerID", manager, al);
|
|
|
|
|
|
data.AddMember("FName", Value().SetString(get_val(rev, "object_name"), al), al);
|
|
|
data.AddMember("FNumber", Value().SetString(get_val(rev, "item_id"), al), al);
|
|
|
data.AddMember("FModel", Value().SetString(get_val(atts[i], "kl3_item_ggxh"), al), al);
|
|
|
// if(type<3||type>5)
|
|
|
// {
|
|
|
// data.AddMember("FKFPeriod", Value().SetString(get_val(atts[i], "kl3_bzqt"), al), al);
|
|
|
// }
|
|
|
// data.AddMember("FISKFPeriod", true, al);
|
|
|
|
|
|
data.AddMember("FFixLeadTime", (type != 1 && type != 2 && type != 6) ? (Value().SetString(get_val(atts[i], "kl3_gdtql"), al)) : Value().SetString("", al), al);
|
|
|
data.AddMember("F_132", (type<3 || type == 6) ? (Value().SetString(get_val(atts[i], "kl3_color"), al)) : Value().SetString("", al), al);
|
|
|
|
|
|
|
|
|
data.AddMember("FErpClsID", get_wlsx(get_val(atts[i], "kl3_item_wlsx"), al, *configs[5]), al);
|
|
|
|
|
|
string jldwz = get_val(atts[i], "kl3_jldwz");
|
|
|
int jldw_index = jldwz.find('/');
|
|
|
jldwz = jldw_index != -1 ? jldwz.substr(0, jldw_index) : jldwz;
|
|
|
Value &jldw_val = (*configs[4])[jldwz.c_str()];
|
|
|
if (!jldw_val.IsNull())
|
|
|
{
|
|
|
Value jldw(kObjectType);
|
|
|
jldw.AddMember("FName", Value().SetString(jldwz.c_str(), al), al);
|
|
|
jldw.AddMember("FNumber", Value().SetString(jldw_val["id"].GetString(), al), al);
|
|
|
data.AddMember("FUnitGroupID", jldw, al);
|
|
|
data.AddMember("FUnitID", get_jldw(get_val(atts[i], "kl3_jbjldw"), al, jldw_val), al);
|
|
|
data.AddMember("FOrderUnitID", get_jldw(get_val(atts[i], "kl3_cgjldw"), al, jldw_val), al);
|
|
|
data.AddMember("FSaleUnitID", get_jldw(get_val(atts[i], "kl3_xsjldw"), al, jldw_val), al);
|
|
|
data.AddMember("FProductUnitID", get_jldw(get_val(atts[i], "kl3_item_scjldw"), al, jldw_val), al);
|
|
|
data.AddMember("FStoreUnitID", get_jldw(get_val(atts[i], "kl3_kcjldw"), al, jldw_val), al);
|
|
|
}
|
|
|
printf("222\n");
|
|
|
if(type!=2){
|
|
|
data.AddMember("FLength", 0, al);
|
|
|
data.AddMember("FWidth", 0, al);
|
|
|
data.AddMember("FHeight", 0, al);
|
|
|
data.AddMember("FSize", 0, al);
|
|
|
}else{
|
|
|
int int_val;
|
|
|
double db_val;
|
|
|
char *ch_val;
|
|
|
AOM_ask_value_int(atts[i],"kl3_chang",&int_val);
|
|
|
db_val=(double)int_val/1000;
|
|
|
data.AddMember("FLength", db_val, al);
|
|
|
AOM_ask_value_int(atts[i],"kl3_kuan",&int_val);
|
|
|
db_val=(double)int_val/1000;
|
|
|
data.AddMember("FWidth", db_val, al);
|
|
|
AOM_ask_value_int(atts[i],"kl3_gao",&int_val);
|
|
|
db_val=(double)int_val/1000;
|
|
|
data.AddMember("FHeight", db_val, al);
|
|
|
AOM_ask_value_string(atts[i],"kl3_dxtj",&ch_val);
|
|
|
db_val=atof(ch_val);
|
|
|
data.AddMember("FSize", db_val, al);
|
|
|
}
|
|
|
switch (type)
|
|
|
{
|
|
|
case 0:
|
|
|
// data.AddMember("FDefaultLoc", 651, al);
|
|
|
// break;
|
|
|
case 1:
|
|
|
case 2:
|
|
|
data.AddMember("FDefaultLoc", (*configs[1])[get_val(atts[i], "kl3_mrck")], al);
|
|
|
|
|
|
break;
|
|
|
case 3:
|
|
|
case 5:
|
|
|
data.AddMember("FDefaultLoc", 666, al);
|
|
|
break;
|
|
|
case 4:
|
|
|
data.AddMember("FDefaultLoc", 667, al);
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
if (type == 0)
|
|
|
{
|
|
|
data.AddMember("FSecInv", Value().SetString(get_val(atts[i], "kl3_aqkcsl"), al), al);
|
|
|
data.AddMember("FQtyMin", Value().SetString(get_val(atts[i], "kl3_zxdhl"), al), al);
|
|
|
data.AddMember("FBatchAppendQty", Value().SetString(get_val(atts[i], "kl3_plzl"), al), al);
|
|
|
data.AddMember("F_112", Value().SetString(get_val(atts[i], "kl3_brand"), al), al);
|
|
|
data.AddMember("F_106", Value().SetString(get_val(atts[i], "kl3_dxsl"), al), al);
|
|
|
data.AddMember("F_131", Value().SetString(get_val(atts[i], "kl3_clfl"), al), al);
|
|
|
|
|
|
}
|
|
|
if (type == 0)
|
|
|
{
|
|
|
string inspect = get_val(atts[i], "kl3_cgjyfs");
|
|
|
int inspect_val = 353;
|
|
|
if (inspect == "ȫ<EFBFBD><EFBFBD>")
|
|
|
{
|
|
|
inspect_val = 351;
|
|
|
}
|
|
|
else if (inspect == "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
|
|
{
|
|
|
inspect_val = 352;
|
|
|
}else if (inspect == "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
|
|
{
|
|
|
inspect_val = 353;
|
|
|
}
|
|
|
data.AddMember("FInspectionLevel", inspect_val, al);
|
|
|
|
|
|
}
|
|
|
if(type==1||type==2||type==6)
|
|
|
{
|
|
|
string ly_val = get_val(atts[i], "kl3_ly");
|
|
|
Value source_val(kObjectType);
|
|
|
|
|
|
if(ly_val=="ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>첿")
|
|
|
{
|
|
|
source_val.AddMember("FName", "ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>첿", al);
|
|
|
source_val.AddMember("FNumber", "13", al);
|
|
|
}else if(ly_val=="<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>첿")
|
|
|
{
|
|
|
source_val.AddMember("FName", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>첿", al);
|
|
|
source_val.AddMember("FNumber", "14", al);
|
|
|
}else
|
|
|
{
|
|
|
source_val.AddMember("FName", "", al);
|
|
|
source_val.AddMember("FNumber", "", al);
|
|
|
}
|
|
|
data.AddMember("FSource", source_val, al);
|
|
|
|
|
|
}
|
|
|
if (type == 2)
|
|
|
{
|
|
|
Value type_id(kObjectType);
|
|
|
string wlfl = get_val(atts[i], "kl3_wlfl");
|
|
|
type_id.AddMember("FID", (*configs[0])[wlfl.c_str()], al);
|
|
|
type_id.AddMember("FName", Value().SetString(wlfl.c_str(), al), al);
|
|
|
data.AddMember("FTypeID", type_id, al);
|
|
|
data.AddMember("F_112", Value().SetString(get_val(atts[i], "kl3_brand"), al), al);
|
|
|
data.AddMember("F_109", Value().SetString(get_val(atts[i], "kl3_bzsj"), al), al);
|
|
|
data.AddMember("F_118", Value().SetString(get_val(atts[i], "kl3_bzyf"), al), al);
|
|
|
data.AddMember("F_113", Value().SetString(get_val(atts[i], "kl3_cx"), al), al);
|
|
|
data.AddMember("F_114", Value().SetString(get_val(atts[i], "kl3_lcrq"), al), al);
|
|
|
data.AddMember("F_104", Value().SetString(get_val(atts[i], "kl3_ncl"), al), al);
|
|
|
data.AddMember("F_105", Value().SetString(get_val(atts[i], "kl3_yl"), al), al);
|
|
|
data.AddMember("F_119", Value().SetString(get_val(atts[i], "kl3_sm"), al), al);
|
|
|
data.AddMember("F_106", Value().SetString(get_val(atts[i], "kl3_dxsl"), al), al);
|
|
|
data.AddMember("F_133", Value().SetString(get_val(atts[i], "kl3_OTSdhrq"), al), al);
|
|
|
data.AddMember("F_134", Value().SetString(get_val(atts[i], "kl3_zjcmc"), al), al);
|
|
|
data.AddMember("F_135", Value().SetString(get_val(atts[i], "kl3_lccxmc"), al), al);
|
|
|
string s = "<EFBFBD><EFBFBD>";
|
|
|
data.AddMember("F_136", s== get_val(atts[i], "kl3_sfyz")?1:0, al);
|
|
|
data.AddMember("F_138", s == get_val(atts[i], "kl3_sfsbz") ? 1 : 0, al);
|
|
|
data.AddMember("F_139", Value().SetString(get_val(atts[i], "kl3_cpzt"), al), al);
|
|
|
data.AddMember("F_142", Value().SetString(get_val(atts[i], "kl3_MOQ"), al), al);
|
|
|
data.AddMember("F_143", Value().SetString(get_val(atts[i], "kl3_ydcgzq"), al), al);
|
|
|
data.AddMember("F_144", Value().SetString(get_val(atts[i], "kl3_dxzl"), al), al);
|
|
|
|
|
|
}
|
|
|
if (type == 4)
|
|
|
{
|
|
|
data.AddMember("FSecInv", Value().SetString(get_val(atts[i], "kl3_aqkc"), al), al);
|
|
|
data.AddMember("FLowLimit", Value().SetString(get_val(atts[i], "kl3_zdkc"), al), al);
|
|
|
data.AddMember("FHighLimit", Value().SetString(get_val(atts[i], "kl3_zgkc"), al), al);
|
|
|
}
|
|
|
Value data2(kObjectType);
|
|
|
data2.AddMember("FNumber", Value().SetString(get_val(rev, "item_id"), al), al);
|
|
|
data2.AddMember("Data", data, al);
|
|
|
doc.AddMember("Data", data2, al);
|
|
|
}else
|
|
|
{
|
|
|
|
|
|
data.AddMember("Fdeleted", 0, al);
|
|
|
data.AddMember("FTrack", 76, al);
|
|
|
data.AddMember("FDefaultReadyLoc", 664, al);
|
|
|
data.AddMember("FCostProject", 57, al);
|
|
|
data.AddMember("FPlanMode", 14036, al);
|
|
|
data.AddMember("FOrderTrategy", 331, al);
|
|
|
data.AddMember("FCtrlType", 14039, al);
|
|
|
data.AddMember("FBeforeExpire", 0, al);
|
|
|
data.AddMember("FSOChkMde", 352, al);
|
|
|
data.AddMember("FWthDrwChkMde", 352, al);
|
|
|
data.AddMember("FOtherChkMde", 352, al);
|
|
|
data.AddMember("FQtyDecimal", 8, al);
|
|
|
data.AddMember("FUseState", 341, al);
|
|
|
data.AddMember("FGrossWeight", 0, al);
|
|
|
data.AddMember("FNetWeight", 0, al);
|
|
|
|
|
|
if(type==1)
|
|
|
{
|
|
|
data.AddMember("FPriceDecimal", 10, al);
|
|
|
}else if(type==2)
|
|
|
{
|
|
|
data.AddMember("FPriceDecimal", 6, al);
|
|
|
|
|
|
}else
|
|
|
{
|
|
|
data.AddMember("FPriceDecimal", 4, al);
|
|
|
|
|
|
}
|
|
|
|
|
|
if(type==1||type==2||type==6)
|
|
|
{
|
|
|
string ly_val = get_val(atts[i], "kl3_ly");
|
|
|
Value source_val(kObjectType);
|
|
|
|
|
|
if(ly_val=="ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>첿")
|
|
|
{
|
|
|
source_val.AddMember("FName", "ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>첿", al);
|
|
|
source_val.AddMember("FNumber", "13", al);
|
|
|
}else if(ly_val=="<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>첿")
|
|
|
{
|
|
|
source_val.AddMember("FName", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>첿", al);
|
|
|
source_val.AddMember("FNumber", "14", al);
|
|
|
}else
|
|
|
{
|
|
|
source_val.AddMember("FName", "", al);
|
|
|
source_val.AddMember("FNumber", "", al);
|
|
|
}
|
|
|
data.AddMember("FSource", source_val, al);
|
|
|
|
|
|
}
|
|
|
printf("111\n");
|
|
|
if (type != 1 && type != 2 && type != 6)
|
|
|
{
|
|
|
data.AddMember("Fmaund", 0, al);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
Value maund(kObjectType);
|
|
|
string zldw = get_val(atts[i], "kl3_zldw");
|
|
|
maund.AddMember("FNumber", (*configs[3])[zldw.c_str()], al);
|
|
|
maund.AddMember("FName", Value().SetString(zldw.c_str(), al), al);
|
|
|
data.AddMember("Fmaund", maund, al);
|
|
|
}
|
|
|
if(type!=2){
|
|
|
data.AddMember("FLength", 0, al);
|
|
|
data.AddMember("FWidth", 0, al);
|
|
|
data.AddMember("FHeight", 0, al);
|
|
|
data.AddMember("FSize", 0, al);
|
|
|
}else{
|
|
|
int int_val;
|
|
|
double db_val;
|
|
|
char *ch_val;
|
|
|
AOM_ask_value_int(atts[i],"kl3_chang",&int_val);
|
|
|
db_val=(double)int_val/1000;
|
|
|
data.AddMember("FLength", db_val, al);
|
|
|
AOM_ask_value_int(atts[i],"kl3_kuan",&int_val);
|
|
|
db_val=(double)int_val/1000;
|
|
|
data.AddMember("FWidth", db_val, al);
|
|
|
AOM_ask_value_int(atts[i],"kl3_gao",&int_val);
|
|
|
db_val=(double)int_val/1000;
|
|
|
data.AddMember("FHeight", db_val, al);
|
|
|
AOM_ask_value_string(atts[i],"kl3_dxtj",&ch_val);
|
|
|
db_val=atof(ch_val);
|
|
|
data.AddMember("FSize", db_val, al);
|
|
|
}
|
|
|
|
|
|
data.AddMember("FLenDecimal", 0, al);
|
|
|
data.AddMember("FCubageDecimal", 0, al);
|
|
|
data.AddMember("FWeightDecimal", 0, al);
|
|
|
Value manager(kObjectType);
|
|
|
manager.AddMember("FName", Value().SetString(pref_vals[2], al), al);
|
|
|
manager.AddMember("FNumber", Value().SetString(pref_vals[3], al), al);
|
|
|
data.AddMember("FDSManagerID", manager, al);
|
|
|
|
|
|
data.AddMember("FName", Value().SetString(get_val(rev, "object_name"), al), al);
|
|
|
data.AddMember("FNumber", Value().SetString(get_val(rev, "item_id"), al), al);
|
|
|
data.AddMember("FModel", Value().SetString(get_val(atts[i], "kl3_item_ggxh"), al), al);
|
|
|
|
|
|
data.AddMember("FPlanTrategy", type<3 ? 321 : 324, al);
|
|
|
if (type == 0)
|
|
|
{
|
|
|
string inspect = get_val(atts[i], "kl3_cgjyfs");
|
|
|
int inspect_val = 353;
|
|
|
if (inspect == "ȫ<EFBFBD><EFBFBD>")
|
|
|
{
|
|
|
inspect_val = 351;
|
|
|
}
|
|
|
else if (inspect == "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
|
|
{
|
|
|
inspect_val = 352;
|
|
|
}else if (inspect == "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
|
|
{
|
|
|
inspect_val = 353;
|
|
|
}
|
|
|
data.AddMember("FInspectionLevel", inspect_val, al);
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
data.AddMember("FInspectionLevel", type<2 ? 353 : 352, al);
|
|
|
|
|
|
}
|
|
|
|
|
|
data.AddMember("FProChkMde", type<1 ? 353 : 352, al);
|
|
|
|
|
|
data.AddMember("FWWChkMde", type<1 ? 353 : 352, al);
|
|
|
|
|
|
data.AddMember("FStkChkMde", type<5 ? 353 : 352, al);
|
|
|
data.AddMember("FBatchManager", type<3 ? 1 : 0, al);
|
|
|
|
|
|
data.AddMember("FISKFPeriod", (type<3 || type>5) ? 1 : 0, al);
|
|
|
|
|
|
data.AddMember("FKFPeriod", (type<3 || type>5) ? (Value().SetString(get_val(atts[i], "kl3_bzqt"), al)) : Value().SetString("", al), al);
|
|
|
data.AddMember("FFixLeadTime", (type != 1 && type != 2 && type != 6) ? (Value().SetString(get_val(atts[i], "kl3_gdtql"), al)) : Value().SetString("", al), al);
|
|
|
data.AddMember("F_132", (type<3 || type == 6) ? (Value().SetString(get_val(atts[i], "kl3_color"), al)) : Value().SetString("", al), al);
|
|
|
|
|
|
data.AddMember("FErpClsID", get_wlsx(get_val(atts[i], "kl3_item_wlsx"), al, *configs[5]), al);
|
|
|
printf("222\n");
|
|
|
|
|
|
string jldwz = get_val(atts[i], "kl3_jldwz");
|
|
|
int jldw_index = jldwz.find('/');
|
|
|
jldwz = jldw_index != -1 ? jldwz.substr(0, jldw_index) : jldwz;
|
|
|
Value &jldw_val = (*configs[4])[jldwz.c_str()];
|
|
|
if (!jldw_val.IsNull())
|
|
|
{
|
|
|
|
|
|
Value jldw(kObjectType);
|
|
|
jldw.AddMember("FName", Value().SetString(jldwz.c_str(), al), al);
|
|
|
jldw.AddMember("FNumber", Value().SetString(jldw_val["id"].GetString(), al), al);
|
|
|
data.AddMember("FUnitGroupID", jldw, al);
|
|
|
data.AddMember("FUnitID", get_jldw(get_val(atts[i], "kl3_jbjldw"), al, jldw_val), al);
|
|
|
data.AddMember("FOrderUnitID", get_jldw(get_val(atts[i], "kl3_cgjldw"), al, jldw_val), al);
|
|
|
data.AddMember("FSaleUnitID", get_jldw(get_val(atts[i], "kl3_xsjldw"), al, jldw_val), al);
|
|
|
data.AddMember("FProductUnitID", get_jldw(get_val(atts[i], "kl3_item_scjldw"), al, jldw_val), al);
|
|
|
data.AddMember("FStoreUnitID", get_jldw(get_val(atts[i], "kl3_kcjldw"), al, jldw_val), al);
|
|
|
}
|
|
|
|
|
|
string item_id = get_val(rev, "item_id");
|
|
|
item_id = item_id.substr(0, 3);
|
|
|
|
|
|
data.AddMember("FAcctID", get_acct(item_id, al, 0, *configs[2]), al);
|
|
|
data.AddMember("FSaleAcctID", get_acct(item_id, al, 1, *configs[2]), al);
|
|
|
data.AddMember("FCostAcctID", get_acct(item_id, al, 2, *configs[2]), al);
|
|
|
|
|
|
printf("333\n");
|
|
|
|
|
|
switch (type)
|
|
|
{
|
|
|
case 0:
|
|
|
// data.AddMember("FDefaultLoc", 651, al);
|
|
|
// break;
|
|
|
case 1:
|
|
|
case 2:
|
|
|
data.AddMember("FDefaultLoc", (*configs[1])[get_val(atts[i], "kl3_mrck")], al);
|
|
|
break;
|
|
|
case 3:
|
|
|
case 5:
|
|
|
data.AddMember("FDefaultLoc", 666, al);
|
|
|
break;
|
|
|
case 4:
|
|
|
data.AddMember("FDefaultLoc", 667, al);
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
if (type == 0)
|
|
|
{
|
|
|
data.AddMember("FSecInv", Value().SetString(get_val(atts[i], "kl3_aqkcsl"), al), al);
|
|
|
data.AddMember("FQtyMin", Value().SetString(get_val(atts[i], "kl3_zxdhl"), al), al);
|
|
|
data.AddMember("FBatchAppendQty", Value().SetString(get_val(atts[i], "kl3_plzl"), al), al);
|
|
|
data.AddMember("F_112", Value().SetString(get_val(atts[i], "kl3_brand"), al), al);
|
|
|
data.AddMember("F_106", Value().SetString(get_val(atts[i], "kl3_dxsl"), al), al);
|
|
|
data.AddMember("F_131", Value().SetString(get_val(atts[i], "kl3_clfl"), al), al);
|
|
|
data.AddMember("FStockTime", 1, al);
|
|
|
|
|
|
}
|
|
|
if (type == 2)
|
|
|
{
|
|
|
Value type_id(kObjectType);
|
|
|
string wlfl = get_val(atts[i], "kl3_wlfl");
|
|
|
type_id.AddMember("FID", (*configs[0])[wlfl.c_str()], al);
|
|
|
type_id.AddMember("FName", Value().SetString(wlfl.c_str(), al), al);
|
|
|
|
|
|
data.AddMember("FTypeID", type_id, al);
|
|
|
data.AddMember("F_112", Value().SetString(get_val(atts[i], "kl3_brand"), al), al);
|
|
|
data.AddMember("F_109", Value().SetString(get_val(atts[i], "kl3_bzsj"), al), al);
|
|
|
data.AddMember("F_118", Value().SetString(get_val(atts[i], "kl3_bzyf"), al), al);
|
|
|
data.AddMember("F_113", Value().SetString(get_val(atts[i], "kl3_cx"), al), al);
|
|
|
data.AddMember("F_114", Value().SetString(get_val(atts[i], "kl3_lcrq"), al), al);
|
|
|
data.AddMember("F_104", Value().SetString(get_val(atts[i], "kl3_ncl"), al), al);
|
|
|
data.AddMember("F_105", Value().SetString(get_val(atts[i], "kl3_yl"), al), al);
|
|
|
data.AddMember("F_119", Value().SetString(get_val(atts[i], "kl3_sm"), al), al);
|
|
|
data.AddMember("F_106", Value().SetString(get_val(atts[i], "kl3_dxsl"), al), al);
|
|
|
data.AddMember("F_133", Value().SetString(get_val(atts[i], "kl3_OTSdhrq"), al), al);
|
|
|
data.AddMember("F_134", Value().SetString(get_val(atts[i], "kl3_zjcmc"), al), al);
|
|
|
data.AddMember("F_135", Value().SetString(get_val(atts[i], "kl3_lccxmc"), al), al);
|
|
|
string s="<EFBFBD><EFBFBD>";
|
|
|
data.AddMember("F_136", s== get_val(atts[i], "kl3_sfyz")?1:0, al);
|
|
|
data.AddMember("F_138", s == get_val(atts[i], "kl3_sfsbz") ? 1 : 0, al);
|
|
|
//data.AddMember("F_136", 0, al);
|
|
|
//data.AddMember("F_138", 0, al);
|
|
|
data.AddMember("F_139", Value().SetString(get_val(atts[i], "kl3_cpzt"), al), al);
|
|
|
data.AddMember("F_142", Value().SetString(get_val(atts[i], "kl3_MOQ"), al), al);
|
|
|
data.AddMember("F_143", Value().SetString(get_val(atts[i], "kl3_ydcgzq"), al), al);
|
|
|
data.AddMember("F_144", Value().SetString(get_val(atts[i], "kl3_dxzl"), al), al);
|
|
|
|
|
|
}
|
|
|
if (type == 4)
|
|
|
{
|
|
|
data.AddMember("FSecInv", Value().SetString(get_val(atts[i], "kl3_aqkc"), al), al);
|
|
|
data.AddMember("FLowLimit", Value().SetString(get_val(atts[i], "kl3_zdkc"), al), al);
|
|
|
data.AddMember("FHighLimit", Value().SetString(get_val(atts[i], "kl3_zgkc"), al), 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(is_update?update_url:save_url, convert_to_cstring(sb.GetString()),key));
|
|
|
if(result[0]=='s')
|
|
|
{
|
|
|
LOG(INFO) << result;
|
|
|
}else
|
|
|
{
|
|
|
POM_AM__set_application_bypass(false);
|
|
|
|
|
|
LOG(ERROR) << result;
|
|
|
EMH_store_error_s1(EMH_severity_error, EMH_ATTR_error_base, result.c_str());
|
|
|
|
|
|
return 1;
|
|
|
}
|
|
|
printf("result:%s\n", result.c_str());
|
|
|
}
|
|
|
POM_AM__set_application_bypass(false);
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
|
int kl_erp_save(EPM_action_message_t msg)
|
|
|
{
|
|
|
|
|
|
int arg_cnt = TC_number_of_arguments(msg.arguments);
|
|
|
string key, pref1, pref2;
|
|
|
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);
|
|
|
printf("temp_key:%s\n", temp_key);
|
|
|
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;
|
|
|
}
|
|
|
}
|
|
|
printf("key:%s\n", key.c_str());
|
|
|
printf("pref1:%s\n", pref1.c_str());
|
|
|
printf("pref2:%s\n", pref2.c_str());
|
|
|
|
|
|
return erp_save(msg.task,key,pref1,pref2);
|
|
|
|
|
|
} |