internal class ReturnMainUIFormWebPart : UFSoft.UBF.UI.Custom.ExtendedPartBase
{
#region 字段与属性
private UFIDA.U9.SCM.PM.ReturnUI.ReturnMainUIFormWebPart _strongPart;
#endregion
public override void AfterInit(UFSoft.UBF.UI.IView.IPart Part, EventArgs args)
{
#region 获取相关强类型数据
_strongPart = Part as UFIDA.U9.SCM.PM.ReturnUI.ReturnMainUIFormWebPart;
if (_strongPart == null)
return;
//用户不等于yy12去掉插件
var UserCode = UFIDA.U9.UI.PDHelper.PDContext.Current.UserCode;
if (UserCode != "YY12")
return;
#endregion
//1、在工具栏上添加
//订单链接
IUFButton btnReceivementUrl = new UFWebButtonAdapter();
btnReceivementUrl.ID = "BtnReceivementUrl1";
btnReceivementUrl.AutoPostBack = true;
//(2)、找到工具栏控件
IUFToolbar _Toolbar = (IUFToolbar)_strongPart.FindControl("Toolbar2");
//(3)、将按钮添加到工具栏
btnReceivementUrl = UIControlBuilder.BuilderToolbarButton(_Toolbar, "True", "BtnReceivementUrl1", "True", "True", 85, 38, "8", "", true, false, "86E9489B-2EC7-7AA5-359E-1A92EB0D2219", "86E9489B-2EC7-7AA5-359E-1A92EB0D2219", "86E9489B-2EC7-7AA5-359E-1A92EB0D2219");
UIControlBuilder.SetButtonAccessKey(btnReceivementUrl);
btnReceivementUrl.UIModel = _strongPart.Model.ElementID;
btnReceivementUrl.Action = "异常退货推送";
btnReceivementUrl.Text = "异常退货推送";
((UFWebToolbarAdapter)_Toolbar).Items.Add(btnReceivementUrl as System.Web.UI.WebControls.WebControl);
//(4)、绑定按钮事件
btnReceivementUrl.Click += new EventHandler(BtnReceivementUrl_Click);
}
/// <summary>
/// 异常收货推送
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void BtnReceivementUrl_Click(object sender, EventArgs e)
{
this._strongPart.OnDataCollect(this);
this._strongPart.IsDataBinding = true;
var receivement = this._strongPart.Model.Receivement;
bool flag = ((receivement != null) ? receivement.FocusedRecord : null) == null;
if (!flag)
{
string text = "";
string text2 = "";
try
{
using (new BPForEngine())
{
bool flag2 = this._strongPart.Model.Receivement.FocusedRecord.ID > 0L;
if (flag2)
{
var focusedRecord = this._strongPart.Model.Receivement.FocusedRecord;
Receivement receivement2 = Receivement.Finder.FindByID(focusedRecord.ID);
bool flag3 = receivement2 == null;
if (flag3)
{
return;
}
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append("update PM_RcvLine set DescFlexSegments_PrivateDescSeg22 = 'True' where ID in (select PM_RcvLine.ID from PM_Receivement join PM_RcvLine on PM_RcvLine.Receivement = PM_Receivement.ID where PM_Receivement.ID = " + this._strongPart.Model.Receivement.FocusedRecord.ID.ToString() + " )");
DataAccessor.RunSQL(DataAccessor.GetConn(), stringBuilder.ToString(), null);
}
var focusedRecord2 = this._strongPart.Model.Receivement.FocusedRecord;
Receivement receivement3 = Receivement.Finder.FindByID(focusedRecord2.ID);
bool flag4 = receivement3 == null;
if (!flag4)
{
Data data = new Data();
headerData headerData = new headerData();
headerData.applicationCode = getnamexml("applicationCode");
headerData.applicationGroupCode = getnamexml("applicationGroupCode");
headerData.batchCount = getnamexml("batchCount");
DateTime d = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
headerData.batchNum = (DateTime.UtcNow - d).TotalSeconds.ToString().Replace(".", "");
headerData.externalSystemCode = getnamexml("externalSystemCode");
headerData.interfaceCode = getnamexml("RCVinterfaceCodel");
headerData.userName = getnamexml("userName");
data.header = headerData;
List<bodyData> list = new List<bodyData>();
bodyData bodyData = new bodyData();
bodyData.esTrxNum = receivement3.DocNo;
bodyData.trxYear = receivement3.ApprovedOn.ToString("yyyy"); //年
bodyData.esOuCode = receivement3.AccountOrg.Code;
bodyData.trxDate = receivement3.RcvLines[0].ConfirmDate.ToString("yyyy-MM-dd HH:mm:ss");
bodyData.sourceCode = "ERP";
List<rcvTrxLineList> list2 = new List<rcvTrxLineList>();
foreach (RcvLine rcvLine in receivement3.RcvLines)
{
bool flag5 = rcvLine.SrcSubLine != null;
if (!flag5)
{
bool flag6 = rcvLine.RcvQtyTU == 0m;
if (!flag6)
{
PurchaseOrder purchaseOrder = PurchaseOrder.Finder.FindByID(rcvLine.SrcDoc.SrcDoc.EntityID);
bool flag7 = purchaseOrder != null && string.IsNullOrWhiteSpace(purchaseOrder.DescFlexField.PrivateDescSeg16);
if (!flag7)
{
rcvTrxLineList rcvTrxLineList = new rcvTrxLineList();
rcvTrxLineList.esTrxLineNum = rcvLine.DocLineNo.ToString();
rcvTrxLineList.trxDate = rcvLine.ConfirmDate.ToString("yyyy-MM-dd HH:mm:ss");
rcvTrxLineList.trxYear = rcvLine.ConfirmDate.ToString("yyyy");
rcvTrxLineList.esTrxTypeCode = "RETURN_DIRECT";
rcvTrxLineList.quantity = rcvLine.RcvQtyTU + rcvLine.DestroyQtyTU;
bool flag8 = receivement3.DocType.Code == "M06";
if (flag8)
{
rcvTrxLineList.stockType = "CONSIGNMENT";
}
else
{
rcvTrxLineList.stockType = "OWN_STOCK";
}
rcvTrxLineList.currencyCode = receivement3.TC.ISOCode.Name;
if (!String.IsNullOrWhiteSpace(receivement3.Supplier.Supplier.DescFlexField.PrivateDescSeg19) && receivement3.Supplier.Supplier.DescFlexField.PrivateDescSeg19 == "1")
{
rcvTrxLineList.currencyCode = receivement3.AC.ISOCode.Name;
}
rcvTrxLineList.esOuCode = rcvLine.AccountOrg.Code;
rcvTrxLineList.esSupplierNum = receivement3.Supplier.Code;
bool flag9 = rcvLine.InvLot != null;
if (flag9)
{
rcvTrxLineList.attributeVarchar1 = rcvLine.InvLot.LotCode;
}
rcvTrxLineList.esFromPoNum = purchaseOrder.DescFlexField.PrivateDescSeg16;
POLine poline = POLine.Finder.FindByID(rcvLine.SrcDoc.SrcDocLine.EntityID);
bool flag10 = poline != null;
if (flag10)
{
rcvTrxLineList.esFromPoLineNum = poline.DescFlexSegments.PrivateDescSeg27;
}
rcvTrxLineList.esFromAsnNum = receivement3.DescFlexField.PrivateDescSeg6;
rcvTrxLineList.esFromAsnLineNum = rcvLine.DescFlexSegments.PrivateDescSeg16;
list2.Add(rcvTrxLineList);
}
}
}
}
bodyData.rcvTrxLineList = list2;
list.Add(bodyData);
data.body = list;
bool flag11 = bodyData.rcvTrxLineList.Count > 0;
if (flag11)
{
text2 = JsonConvert.SerializeObject(data);
text = getnamexml("RCVURL");
string text3 = DataBaseHelper.HttpPost(text, text2);
JObject jobject = JObject.Parse(text3);
string a = (string)jobject["executeResult"];
bool flag12 = a != "SUCCESS";
if (flag12)
{
throw new Exception(text3);
}
DataBaseHelper.Info("合兴插件日志", "异常退货推送", text, text2, text3);
}
}
}
}
catch (Exception ex)
{
DataBaseHelper.Info("合兴插件日志", "异常退货推送", text, text2, ex.Message);
this._strongPart.Model.ErrorMessage.Message = ex.Message;
}
}
}
/// <summary>
/// 获取xml信息
/// </summary>
/// <returns></returns>
public static string getnamexml(string code)
{
string text = "";
#region 获取XML信息
try
{
XmlDocument doc = new XmlDocument();
doc.Load("D:\\yonyou\\U9V60\\@HX_ConfigFile.xml");
XmlNode root = doc.SelectSingleNode("//connectionString");
text = (root.SelectSingleNode(code)).InnerText;
return text;
}
catch (Exception)
{
return "失败";
}
#endregion
}
}