You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

777 lines
27 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#include "util.h"
#include "common_itk_util.h"
//INITIALIZE_EASYLOGGINGPP;
string Utf8ToGbk(const char *src_str) {
int len = MultiByteToWideChar(CP_UTF8, 0, src_str, -1, NULL, 0);
wchar_t* wszGBK = new wchar_t[len + 1];
memset(wszGBK, 0, len * 2 + 2);
MultiByteToWideChar(CP_UTF8, 0, src_str, -1, wszGBK, len);
len = WideCharToMultiByte(CP_ACP, 0, wszGBK, -1, NULL, 0, NULL, NULL);
char* szGBK = new char[len + 1];
memset(szGBK, 0, len + 1);
WideCharToMultiByte(CP_ACP, 0, wszGBK, -1, szGBK, len, NULL, NULL);
string strTemp(szGBK);
if (wszGBK) delete[] wszGBK;
if (szGBK) delete[] szGBK;
return strTemp;
}
string GbkToUtf8(const char *src_str) {
int len = MultiByteToWideChar(CP_ACP, 0, src_str, -1, NULL, 0);
wchar_t* wstr = new wchar_t[len + 1];
memset(wstr, 0, len + 1);
MultiByteToWideChar(CP_ACP, 0, src_str, -1, wstr, len);
len = WideCharToMultiByte(CP_UTF8, 0, wstr, -1, NULL, 0, NULL, NULL);
char* str = new char[len + 1];
memset(str, 0, len + 1);
WideCharToMultiByte(CP_UTF8, 0, wstr, -1, str, len, NULL, NULL);
string strTemp = str;
if (wstr) delete[] wstr;
if (str) delete[] str;
return strTemp;
}
void Split(string strArg, string spliter, vector<string> &ans)
{
ans.clear();
size_t index0 = 0;
string one_arg;
if (strArg.find_first_not_of(' ') == string::npos)
strArg = "";
while (strArg.size() > 0)
{
index0 = strArg.find_first_of(spliter);
if (index0 != string::npos)
{
one_arg = strArg.substr(0, index0);
strArg = strArg.substr(index0 + 1);
ans.push_back(one_arg);
}
else
{
ans.push_back(strArg);
break;
}
}
}
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;
printf("kl_erp_save1\n");
CreateLogFile("C:\\logs\\testLog.log");
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,doc8,doc9;
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);
vec.push_back(&doc8);
vec.push_back(&doc9);
printf("kl_erp_save2\n");
for (auto i = 0; i<pref_cnt2; i++)
{
printf("pref2:%d\n", i);
vec[i]->Parse(pref_vals2[i]);
configs.push_back(vec[i]);
}
printf("kl_erp_save3\n");
string ip = pref_vals[0];
string token_url = ip + "/K3API/Token/Create?authorityCode=" + pref_vals[1];
printf("kl_erp_save4\n");
Testclass ^class1 = gcnew Testclass();
System::String ^key = convert_to_cstring(key_str.c_str());
printf("kl_erp_save5\n");
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)
{
printf("<EFBFBD><EFBFBD>ʼִ<EFBFBD><EFBFBD><EFBFBD>޸Ĵ<EFBFBD><EFBFBD><EFBFBD>\n");
char* neima;
AOM_UIF_ask_value(atts[i], "kl3_jhy", &neima);
printf("<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ֵΪ%s\n",&neima);
int pref_cnt = 0;
char ** pref_vals = NULL;
//<2F><>ȡ<EFBFBD><C8A1>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>ֵ
PREF_ask_char_values("kl3_jhy_config", &pref_cnt, &pref_vals);
printf("<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>%d<><64>",&pref_cnt);
if(pref_cnt>0){
for(int i=0; i<pref_cnt; i++) {
printf("0");
char *str = pref_vals[i];
// <20><>str<74><72>һЩ<D2BB><D0A9><EFBFBD><EFBFBD>
printf("1");
// <20><><EFBFBD><EFBFBD>val<61><6C><EFBFBD>߼<EFBFBD>
vector<string> ans;
printf("2");
Split(str,"-",ans);
printf("3");
if(ans.size()>0){
if(strcmp(neima,ans[0].c_str())==0){
printf("<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
neima = const_cast<char*>(ans[1].c_str());
printf("<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ֵΪ%s\n",neima); // <20><><EFBFBD><EFBFBD>neima<6D><61>char*<2A><><EFBFBD>͵<EFBFBD>ָ<EFBFBD><EFBFBD><EBA3AC>Ӧ<EFBFBD><D3A6>ʹ<EFBFBD><CAB9>%s<><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
data.AddMember("FPlanner", Value().SetString(neima, al), al);
break;
}
}
printf("û<EFBFBD>л<EFBFBD>ȡ<EFBFBD><EFBFBD>\n");
}
printf("<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ֵΪ%s\n",neima);
}
printf("10");
printf("<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>ֵ");
//int num = atoi(neima);
if(neima == nullptr || strlen(neima) == 0) {
// neimaΪ<61>ջ<EFBFBD><D5BB><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>Ϊ<EFBFBD><CEAA>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>");
} else {
}
//data.AddMember("F_131", Value().SetString(get_val(atts[i], "kl3_clfl"), al), al);
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_pcs"), al), al);//kl3_bzyf
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);
data.AddMember("F_146", Value().SetString(get_val(atts[i], "kl3_cpdl"), al), al);
data.AddMember("F_147", Value().SetString(get_val(atts[i], "kl3_cpxl"), al), al);
data.AddMember("F_148", Value().SetString(get_val(atts[i], "kl3_pplx"), al), al);
data.AddMember("F_150", Value().SetString(get_val(atts[i], "kl3_qclx"), al), al);
data.AddMember("F_152", Value().SetString(get_val(atts[i], "kl3_qcbw"), al), al);
data.AddMember("F_151", Value().SetString(get_val(atts[i], "kl3_lccx_ihs"), al), al);
data.AddMember("F_153", Value().SetString(get_val(atts[i], "kl3_kflx"), al), al);
data.AddMember("F_149", Value().SetString(get_val(atts[i], "kl3_kfzt"), al), al);
data.AddMember("F_156", Value().SetString(get_val(atts[i], "kl3_bz1"), al), al);
data.AddMember("F_157", Value().SetString(get_val(atts[i], "kl3_bz2"), 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)
{
printf("<EFBFBD><EFBFBD>ʼִ<EFBFBD><EFBFBD><EFBFBD>޸Ĵ<EFBFBD><EFBFBD><EFBFBD>\n");
char* neima;
AOM_UIF_ask_value(atts[i], "kl3_jhy", &neima);
printf("<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ֵΪ%s\n",&neima);
int pref_cnt = 0;
char ** pref_vals = NULL;
//<2F><>ȡ<EFBFBD><C8A1>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>ֵ
PREF_ask_char_values("kl3_jhy_config", &pref_cnt, &pref_vals);
printf("<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>%d<><64>",&pref_cnt);
if(pref_cnt>0){
for(int i=0; i<pref_cnt; i++) {
printf("0");
char *str = pref_vals[i];
// <20><>str<74><72>һЩ<D2BB><D0A9><EFBFBD><EFBFBD>
printf("1");
// <20><><EFBFBD><EFBFBD>val<61><6C><EFBFBD>߼<EFBFBD>
vector<string> ans;
printf("2");
Split(str,"-",ans);
printf("3");
if (ans.size() > 0) {
if (strcmp(neima, ans[0].c_str()) == 0) {
printf("<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
neima = const_cast<char*>(ans[1].c_str());
printf("<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ֵΪ%s\n", neima); // <20><><EFBFBD><EFBFBD>neima<6D><61>char*<2A><><EFBFBD>͵<EFBFBD>ָ<EFBFBD><EFBFBD><EBA3AC>Ӧ<EFBFBD><D3A6>ʹ<EFBFBD><CAB9>%s<><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
data.AddMember("FPlanner", Value().SetString(neima, al), al);
break;
}
}
printf("û<EFBFBD>л<EFBFBD>ȡ<EFBFBD><EFBFBD>\n");
}
}else{
neima = "";
}
printf("10");
printf("<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>ֵ");
//int num = atoi(neima);
//data.AddMember("F_131", Value().SetString(get_val(atts[i], "kl3_clfl"), al), al);
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("FPlanner",Value().SetString("", al) , al);
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_pcs"), al), al);//kl3_bzyf
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);
data.AddMember("F_146", Value().SetString(get_val(atts[i], "kl3_cpdl"), al), al);
data.AddMember("F_147", Value().SetString(get_val(atts[i], "kl3_cpxl"), al), al);
data.AddMember("F_148", Value().SetString(get_val(atts[i], "kl3_pplx"), al), al);
data.AddMember("F_150", Value().SetString(get_val(atts[i], "kl3_qclx"), al), al);
data.AddMember("F_152", Value().SetString(get_val(atts[i], "kl3_qcbw"), al), al);
data.AddMember("F_151", Value().SetString(get_val(atts[i], "kl3_lccx_ihs"), al), al);
data.AddMember("F_153", Value().SetString(get_val(atts[i], "kl3_kflx"), al), al);
data.AddMember("F_149", Value().SetString(get_val(atts[i], "kl3_kfzt"), al), al);
data.AddMember("F_156", Value().SetString(get_val(atts[i], "kl3_bz1"), al), al);
data.AddMember("F_157", Value().SetString(get_val(atts[i], "kl3_bz2"), 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));
char *txtfile = "";
if(result[0]=='s')
{
//LOG(INFO) << result;
WriteLog("INFO", result.c_str());
printf("result<EFBFBD><EFBFBD>%s\n", result.c_str());
}else
{
POM_AM__set_application_bypass(false);
//LOG(ERROR) << result;
WriteLog("ERROR", result.c_str());
CloseLog();
printf("result(ERROR)<29><>%s\n", result.c_str());
EMH_store_error_s1(EMH_severity_error, EMH_ATTR_error_base, result.c_str());
return 1;
}
printf("result:%s\n", result.c_str());
}
CloseLog();
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);
}