public void Notify(params object[] args) { if (args == null || args.Length == 0 || !(args[0] is UFSoft.UBF.Business.EntityEvent)) { return; } //将入口参数列表中第一个参数,转成EntityEvent,并取EntityKey存入key UFSoft.UBF.Business.BusinessEntity.EntityKey key = ((UFSoft.UBF.Business.EntityEvent)args[0]).EntityKey; //key的有效性判断 if (key == null) { return; } //转成所需实体,同时判断有效性 //UFIDA.U9.InvDoc.TransferIn.TransferIn transferIn = (UFIDA.U9.InvDoc.TransferIn.TransferIn)key.GetEntity(); UFIDA.U9.MO.Complete.CompleteRpt entity = (UFIDA.U9.MO.Complete.CompleteRpt)key.GetEntity(); if (entity == null) { return; } else { if (entity.Org.Code == "300") { try { string DocNo = entity.DocNo; string result = ""; string content = HttpMethod.PostMethod("http://192.168.30.8:9090/MXQHService/common.asmx/DoBefore", GenPara("ExecPlan", "CompleteRpt", "GetQty", "{WorkOrder:'" + entity.MO.DocNo + "'}")); MesReturnData r = Newtonsoft.Json.JsonConvert.DeserializeObject <MesReturnData>(content); int CompleteQty = 0; if (r.data.Count == 0) { CompleteQty = 0; } else { CompleteQty = r.data[0].CompleteQty; } DataParamList dp = new DataParamList(); dp.Add(DataParamFactory.Create("DocNo", entity.MO.DocNo, ParameterDirection.Input, DbType.String, 50)); dp.Add(DataParamFactory.Create("CompleteQty", CompleteQty, ParameterDirection.Input, DbType.Int32, 64)); dp.Add(DataParamFactory.CreateOutput("Result", DbType.String)); DataAccessor.RunSP("sp_Auctus_BE_MOCompleteQtyAI", dp); result = dp["Result"].Value.ToString(); if (result != "1") { throw new Exception(result); } } catch (Exception ex) { throw new Exception(ex.Message); } } } }
public void Notify(params object[] args) { if (args == null || args.Length == 0 || !(args[0] is UFSoft.UBF.Business.EntityEvent)) { return; } //将入口参数列表中第一个参数,转成EntityEvent,并取EntityKey存入key UFSoft.UBF.Business.BusinessEntity.EntityKey key = ((UFSoft.UBF.Business.EntityEvent)args[0]).EntityKey; //key的有效性判断 if (key == null) { return; } //转成所需实体,同时判断有效性 UFIDA.U9.InvDoc.MiscRcv.MiscRcvTrans miscRcv = (UFIDA.U9.InvDoc.MiscRcv.MiscRcvTrans)key.GetEntity(); if (miscRcv == null) { return; } else { if (miscRcv.Org.Code == "300") { try { //不允许“制损报废入库”弃审 if (miscRcv.MiscRcvDocType.Name.Trim() == "制损报废入库") { //单据从已核准状态到开立(弃审操作) if (miscRcv.OriginalData.Status == INVDocStatus.Approved && miscRcv.Status == INVDocStatus.Open) { //存储过程控制取消退料操作是否开启 DataParamList dpL = new DataParamList(); dpL.Add(DataParamFactory.Create("Type", "MiscRcvBtnUnDoApprove", ParameterDirection.Input, DbType.String, 50));//禁用杂收单弃审功能 dpL.Add(DataParamFactory.CreateOutput("IsOpen", DbType.String)); DataAccessor.RunSP("sp_Auctus_BEPlugin_Control", dpL); string isOpen = dpL["IsOpen"].Value.ToString(); if (isOpen == "1") { throw new Exception("此单据为" + miscRcv.MiscRcvTransLs[0].DescFlexSegments.PrivateDescSeg29 + "自动生成单据,不允许弃审!"); } } } } catch (Exception ex) { throw new Exception(ex.Message); } }//end if } }
/// <summary> /// 开发测试版 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void BtnTest_Click(object sender, EventArgs e) { DataParamList dp = new DataParamList(); dp.Add(DataParamFactory.CreateOutput("Result", DbType.String)); DataAccessor.RunSP("sp_Auctus_UI_CreatePOModifyQty", dp); string result = dp["Result"].Value.ToString(); if (result != "1") { throw new Exception(result); } }
/// <summary> /// 创建MPS变交期的委外采购变更单 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void BtnWPOModify_Click(object sender, EventArgs e) { string userName = Context.LoginUser; DataParamList dp = new DataParamList(); dp.Add(DataParamFactory.CreateInput("UserName", userName, DbType.String)); dp.Add(DataParamFactory.CreateOutput("Result", DbType.String)); DataAccessor.RunSP("sp_Auctus_UI_CreateWPOModify", dp); string result = dp["Result"].Value.ToString(); if (result != "1") { throw new Exception(result); } }
public void Notify(params object[] args) { if (args == null || args.Length == 0 || !(args[0] is UFSoft.UBF.Business.EntityEvent)) { return; } //将入口参数列表中第一个参数,转成EntityEvent,并取EntityKey存入key UFSoft.UBF.Business.BusinessEntity.EntityKey key = ((UFSoft.UBF.Business.EntityEvent)args[0]).EntityKey; //key的有效性判断 if (key == null) { return; } //转成所需实体,同时判断有效性 UFIDA.U9.PM.POChange.POModify poModify = (UFIDA.U9.PM.POChange.POModify)key.GetEntity(); if (poModify == null) { return; } else { //验证标准采购或委外采购采购数量>需求数量,且采购数量-需求数量<最小交货量(最小叫货量不为0) if (poModify.Org.Code == "300") { try { if (poModify.Status == UFIDA.U9.PM.POChange.POChangeListStatusEnum.Approved) { DataParamList dp = new DataParamList(); dp.Add(DataParamFactory.Create("DocNo", poModify.DocNo, ParameterDirection.Input, DbType.String, 50)); dp.Add(DataParamFactory.CreateOutput("Result", DbType.String)); DataAccessor.RunSP("sp_Auctus_BE_POModifyAU", dp); string result = dp["Result"].Value.ToString(); if (result != "1") { throw new Exception(result); } } } catch (Exception ex) { throw new Exception(ex.Message); } }//end if } }
public void Notify(params object[] args) { if (args == null || args.Length == 0 || !(args[0] is UFSoft.UBF.Business.EntityEvent)) { return; } //将入口参数列表中第一个参数,转成EntityEvent,并取EntityKey存入key UFSoft.UBF.Business.BusinessEntity.EntityKey key = ((UFSoft.UBF.Business.EntityEvent)args[0]).EntityKey; //key的有效性判断 if (key == null) { return; } //转成所需实体,同时判断有效性 UFIDA.U9.InvDoc.TransferIn.TransferIn transferIn = (UFIDA.U9.InvDoc.TransferIn.TransferIn)key.GetEntity(); if (transferIn == null) { return; } else { if (transferIn.Org.Code == "300") { try { if (transferIn.DocType.Name == "委外加工发料" || transferIn.DocType.Name == "委外加工退料") { string DocNo = transferIn.DocNo; string result = ""; DataParamList dp = new DataParamList(); dp.Add(DataParamFactory.Create("DocNo", transferIn.DocNo, ParameterDirection.Input, DbType.String, 50)); dp.Add(DataParamFactory.CreateOutput("Result", DbType.String)); DataAccessor.RunSP("sp_Auctus_LockTransferIn", dp); result = dp["Result"].Value.ToString(); if (result != "1") { throw new Exception(result); } } } catch (Exception ex) { throw new Exception(ex.Message); } } } }
public void Notify(params object[] args) { if (args == null || args.Length == 0 || !(args[0] is UFSoft.UBF.Business.EntityEvent)) { return; } //将入口参数列表中第一个参数,转成EntityEvent,并取EntityKey存入key UFSoft.UBF.Business.BusinessEntity.EntityKey key = ((UFSoft.UBF.Business.EntityEvent)args[0]).EntityKey; //key的有效性判断 if (key == null) { return; } //转成所需实体,同时判断有效性 UFIDA.U9.PM.PO.POLine poLine = (UFIDA.U9.PM.PO.POLine)key.GetEntity(); if (poLine == null) { return; } else { UFIDA.U9.PM.PO.PurchaseOrder po = poLine.PurchaseOrder; //委外订单短缺关闭时,若财务未核销(备料单行核销数量<>已发料数量),则不允许关闭 if (po.Org.Code == "300" && po.SubType.Value.ToString() != "-1" && poLine.Status == PODOCStatusEnum.ClosedShort) { try { DataParamList dp = new DataParamList(); dp.Add(DataParamFactory.Create("DocNo", po.DocNo, ParameterDirection.Input, DbType.String, 50)); dp.Add(DataParamFactory.CreateOutput("Result", DbType.String)); DataAccessor.RunSP("sp_Auctus_BE_PurchaseOrderAU", dp); string result = dp["Result"].Value.ToString(); if (result != "1") { throw new Exception(result); } } catch (Exception ex) { throw new Exception(ex.Message); } }//end if } }
public void Notify(params object[] args) { if (args == null || args.Length == 0 || !(args[0] is UFSoft.UBF.Business.EntityEvent)) { return; } //将入口参数列表中第一个参数,转成EntityEvent,并取EntityKey存入key UFSoft.UBF.Business.BusinessEntity.EntityKey key = ((UFSoft.UBF.Business.EntityEvent)args[0]).EntityKey; //key的有效性判断 if (key == null) { return; } //转成所需实体,同时判断有效性 UFIDA.U9.MO.Issue.IssueDoc issueDoc = (UFIDA.U9.MO.Issue.IssueDoc)key.GetEntity(); if (issueDoc == null) { return; } else { if (issueDoc.Org.Code == "300") { try { DataParamList dp = new DataParamList(); dp.Add(DataParamFactory.Create("DocNo", issueDoc.DocNo, ParameterDirection.Input, DbType.String, 50)); dp.Add(DataParamFactory.Create("BeforeConfirmDate", "", ParameterDirection.Input, DbType.String, 50)); dp.Add(DataParamFactory.Create("ConfirmDate", "", ParameterDirection.Input, DbType.String, 50)); dp.Add(DataParamFactory.CreateOutput("Result", DbType.String)); DataAccessor.RunSP("sp_Auctus_BE_MoIssueDoc", dp); string result = dp["Result"].Value.ToString(); if (result != "1") { throw new Exception(result); } } catch (Exception ex) { throw new Exception(ex.Message); } } } }
public void Notify(params object[] args) { if (args == null || args.Length == 0 || !(args[0] is UFSoft.UBF.Business.EntityEvent)) { return; } //将入口参数列表中第一个参数,转成EntityEvent,并取EntityKey存入key UFSoft.UBF.Business.BusinessEntity.EntityKey key = ((UFSoft.UBF.Business.EntityEvent)args[0]).EntityKey; //key的有效性判断 if (key == null) { return; } //转成所需实体,同时判断有效性 UFIDA.U9.SM.SO.SO so = (UFIDA.U9.SM.SO.SO)key.GetEntity(); if (so == null) { return; } else { if (so.Org.Code == "300" && so.DescFlexField.PrivateDescSeg1.Contains("PO")) { try { DataParamList dp = new DataParamList(); dp.Add(DataParamFactory.Create("SODocNo", so.DocNo, ParameterDirection.Input, DbType.String, 50)); dp.Add(DataParamFactory.Create("PoDocNo", so.DescFlexField.PrivateDescSeg1, ParameterDirection.Input, DbType.String, 50)); dp.Add(DataParamFactory.CreateOutput("Result", DbType.String)); DataAccessor.RunSP("sp_Auctus_BE_SOAI", dp); string result = dp["Result"].Value.ToString(); if (result != "0") { throw new Exception(result); } } catch (Exception ex) { throw new Exception(ex.Message); } } } }
internal List <long> LoadFlowNos(string sequenceBy, int count, long UserDefineNumber, KeyFlexFieldStru fieldStru) { List <long> list = new List <long>(); string spName = "Base_KFFLoadFlowNew"; long iD = fieldStru.ID; if (!FlexFieldFlow.Finder.IsExists("KeyFlexFieldStru=@KeyFlexFieldStru and Code=@SequenceBy", new OqlParam[] { new OqlParam(fieldStru.ID), new OqlParam(sequenceBy) })) { iD = KeyGenerator.NewValue(); } DataParamList dataParams = new DataParamList(); dataParams.Add(DataParamFactory.CreateInput("SN", iD, DbType.Int64)); dataParams.Add(DataParamFactory.CreateInput("Struc", fieldStru.ID, DbType.Int64)); dataParams.Add(DataParamFactory.CreateInput("SequenceBy", sequenceBy, DbType.String)); dataParams.Add(DataParamFactory.CreateInput("Count", count, DbType.Int32)); dataParams.Add(DataParamFactory.CreateOutput("ErrorInfo", DbType.String)); dataParams.Add(DataParamFactory.CreateInput("UserFlow", UserDefineNumber, DbType.Int64)); return(LoadFlowBySP(spName, dataParams, fieldStru, sequenceBy, count)); }
public override void AfterDo(object bp, ref object result) { UFIDA.U9.MO.MO.StartMO moBP = bp as UFIDA.U9.MO.MO.StartMO; //UFIDA.U9.MO.MO.MO mo=UFIDA.U9.MO.MO.MO.Finder.FindAll() for (int i = 0; i < moBP.StartInfoDTOs.Count; i++) { try { int mesOnlineQty = 0;//MES投入数量 if (moBP.StartInfoDTOs[i].BusinessDirection.Value == 1) { string content = HttpMethod.PostMethod("http://192.168.30.8:9090/MXQHService/common.asmx/DoBefore", GenPara("ExecPlan", "CompleteRpt", "GetQty", "{WorkOrder:'" + moBP.StartInfoDTOs[i].MOKey.GetEntity().DocNo + "'}")); MesReturnData r = Newtonsoft.Json.JsonConvert.DeserializeObject <MesReturnData>(content); if (r.data.Count == 0) { mesOnlineQty = 0; } else { mesOnlineQty = r.data[0].OnLineQty; } } DataParamList dp = new DataParamList(); dp.Add(DataParamFactory.Create("LoginUser", UFIDA.U9.Base.Context.LoginUser, ParameterDirection.Input, DbType.String, 50)); dp.Add(DataParamFactory.Create("MOID", moBP.StartInfoDTOs[i].MOKey.ID, ParameterDirection.Input, DbType.String, 50)); dp.Add(DataParamFactory.Create("Status", moBP.StartInfoDTOs[i].BusinessDirection.Value, ParameterDirection.Input, DbType.Int32, 32)); dp.Add(DataParamFactory.Create("MesCompleteQty", mesOnlineQty, ParameterDirection.Input, DbType.Int32, 32)); dp.Add(DataParamFactory.CreateOutput("Result", DbType.String)); DataAccessor.RunSP("sp_Auctus_BP_MOStartInfoAD", dp); string output = dp["Result"].Value.ToString(); if (output != "1") { throw new Exception(output); } } catch (Exception ex) { throw new Exception(ex.Message); } } }
public virtual void ProcessColumn ( ColumnInfo column, IDbCommand insertCommand, DataParamFactory parameterFactory ) { InsertSections insert = GetTableInsert(column.Table); insert.ColumnNames.Add(column.Name); insert.ParametersValueNames.Add("@" + column.Name); //TODO: add a parameter name to the column class //insert.ParametersValueNames.Add ( column.Values[0] ) ; System.Data.IDbDataParameter param; object value = DBNull.Value; if (null != column.Values && column.Values.Count != 0) { //TODO: multivalue must be stored in their own table where each value is a row //in order to support proper query value = column.Values[0]; if (null == value) { value = DBNull.Value; } } param = parameterFactory("@" + column.Name, value); Parameters.Add(param); if (null != insertCommand) { insertCommand.Parameters.Add(param); } }
public void Notify(params object[] args) { if (args == null || args.Length == 0 || !(args[0] is UFSoft.UBF.Business.EntityEvent)) { return; } //将入口参数列表中第一个参数,转成EntityEvent,并取EntityKey存入key UFSoft.UBF.Business.BusinessEntity.EntityKey key = ((UFSoft.UBF.Business.EntityEvent)args[0]).EntityKey; //key的有效性判断 if (key == null) { return; } //转成所需实体,同时判断有效性 UFIDA.U9.PM.Rcv.Receivement receivement = (UFIDA.U9.PM.Rcv.Receivement)key.GetEntity(); if (receivement == null) { return; } else { if (receivement.Org.Code == "300" && receivement.Status == UFIDA.U9.PM.Rcv.RcvStatusEnum.Opened && receivement.RcvDocType.DescFlexField.PrivateDescSeg1 != "1") { try { DataParamList dp = new DataParamList(); dp.Add(DataParamFactory.Create("DocNo", receivement.DocNo, ParameterDirection.Input, DbType.String, 50)); DataAccessor.RunSP("sp_Auctus_BE_Receivement", dp); } catch (Exception ex) { throw new Exception(ex.Message); } }//end if } }
/// <summary>获取当前记账期间.</summary> /// <returns></returns> public static long GetSOBAccountingPeriod() { string sql = @"SELECT A1.ID FROM dbo.Base_SOBAccountingPeriod A1 JOIN Base_SetofBooks A2 ON A1.SetofBooks=A2.ID WHERE A2.Org=@Org AND A1.Year=@Year AND A1.Code=@Code"; var parasUpdate = new DataParamList { DataParamFactory.CreateInput("Org", UFIDA.U9.Base.Context.LoginOrg.ID, System.Data.DbType.Int64), DataParamFactory.CreateInput("Year", DateTime.Now.Year, System.Data.DbType.Int16), DataParamFactory.CreateInput("Code", DateTime.Now.ToString("MM"), System.Data.DbType.String) }; DataAccessor.RunSQL(DatabaseManager.GetCurrentConnection(), sql, parasUpdate, out DataSet ds); if (ds != null && ds.Tables.Count != 0 && ds.Tables[0].Rows.Count != 0) { return(Convert.ToInt64(ds.Tables[0].Rows[0][0])); } return(-1); }
/// <summary> /// 查询服务信息 /// </summary> /// <param name="bpsvTypeQuery"></param> /// <returns></returns> public ReturnMessage <List <BPSVType> > QueryBPSVType(BPSVTypeQuery bpsvTypeQuery) { if (bpsvTypeQuery == null) { throw new ArgumentException("bpsvTypeQuery is null"); } if (string.IsNullOrWhiteSpace(bpsvTypeQuery.QueryStr)) { throw new ArgumentException("bpsvTypeQuery.QueryStr is empty"); } string[] arrQueryStr = bpsvTypeQuery.QueryStr.Split(' '); StringBuilder sb = new StringBuilder(); sb.Append(@"SELECT B.DisplayName, A.FullName, C.AssemblyName, C.Kind FROM UBF_MD_Class AS A LEFT JOIN UBF_MD_Class_Trl AS B ON A.Local_ID = B.Local_ID LEFT JOIN UBF_MD_Component AS C ON A.MD_Component_ID = C.ID LEFT JOIN UBF_MD_Component_Trl AS D ON C.Local_ID = D.Local_ID WHERE ( C.Kind = 'SV' OR C.Kind = 'BP' ) AND ("); StringBuilder fullNameSb = new StringBuilder(); StringBuilder displayNameSb = new StringBuilder(); fullNameSb.Append("("); displayNameSb.Append("("); bool isFirst = true; DataParamList dataParams = new DataParamList(); for (int i = 0; i < arrQueryStr.Length; i++) { string str = arrQueryStr[i]; string paramName = "param" + i; if (string.IsNullOrWhiteSpace(str)) { continue; } if (!isFirst) { fullNameSb.Append(" AND "); displayNameSb.Append(" AND "); } fullNameSb.AppendFormat("A.FullName LIKE @{0}", paramName); displayNameSb.AppendFormat("B.DisplayName LIKE @{0}", paramName); dataParams.Add(DataParamFactory.CreateInput(paramName, string.Format("%{0}%", str), DbType.String)); isFirst = false; } fullNameSb.Append(")"); displayNameSb.Append(")"); sb.Append(fullNameSb + " OR " + displayNameSb); sb.Append(")"); DataSet dataSet; DataAccessor.RunSQL(DatabaseManager.GetCurrentConnection(), sb.ToString(), dataParams, out dataSet); List <BPSVType> list = new List <BPSVType>(); if (dataSet != null && dataSet.Tables.Count > 0 && dataSet.Tables[0].Rows.Count > 0) { foreach (DataRow row in dataSet.Tables[0].Rows) { BPSVType bpsv = new BPSVType(); bpsv.DisplayName = AsString(row, "DisplayName"); bpsv.FullName = AsString(row, "FullName"); bpsv.AssemblyName = AsString(row, "AssemblyName"); bpsv.Kind = AsString(row, "Kind"); list.Add(bpsv); } } ReturnMessage <List <BPSVType> > ret = new ReturnMessage <List <BPSVType> >(); ret.Result = list; ret.IsSuccess = true; return(ret); }
/// <summary> /// 1、“制损退料单”、“返工制损退料单”退料确认后参照生产退料单信息同步创建并审核杂发单、杂收单 /// 2、控制同一需求分类号下,领料单领料数量不超过供应数量(按严格匹配的料号)(领料控制逻辑看存储过程) /// </summary> /// <param name="args"></param> public void Notify(params object[] args) { if (args == null || args.Length == 0 || !(args[0] is UFSoft.UBF.Business.EntityEvent)) { return; } //将入口参数列表中第一个参数,转成EntityEvent,并取EntityKey存入key UFSoft.UBF.Business.BusinessEntity.EntityKey key = ((UFSoft.UBF.Business.EntityEvent)args[0]).EntityKey; //key的有效性判断 if (key == null) { return; } //转成所需实体,同时判断有效性 UFIDA.U9.MO.Issue.IssueDoc issueDoc = (UFIDA.U9.MO.Issue.IssueDoc)key.GetEntity(); if (issueDoc == null) { return; } else { if (issueDoc.Org.Code == "300") { try { #region“制损退料单”、“返工制损退料单”退料确认后参照生产退料单信息同步创建并审核杂发单、杂收单 if (issueDoc.IssueDocType.Name.Trim() == "制损退料单" || issueDoc.IssueDocType.Name.Trim() == "返工制损退料单") { //单据从关闭状态到已核准状态,说明是取消退料操作 if (issueDoc.DocState == IssueTXNStateEnum.Approved && issueDoc.OriginalData.DocState == IssueTXNStateEnum.Closed) { //存储过程控制取消退料操作是否开启 DataParamList dpL = new DataParamList(); dpL.Add(DataParamFactory.Create("Type", "BtnRecedeReverse", ParameterDirection.Input, DbType.String, 50));//禁用取消退料功能 dpL.Add(DataParamFactory.CreateOutput("IsOpen", DbType.String)); DataAccessor.RunSP("sp_Auctus_BEPlugin_Control", dpL); string isOpen = dpL["IsOpen"].Value.ToString(); if (isOpen == "1")//打开控制 { UFIDA.U9.InvDoc.MiscShip.MiscShipmentL miscShipLine = UFIDA.U9.InvDoc.MiscShip.MiscShipmentL.Finder.Find("DescFlexSegments.PrivateDescSeg29='" + issueDoc.DocNo + "'"); bool flag = false; string delDocs = ""; if (miscShipLine != null) { flag = true; delDocs += miscShipLine.MiscShip.DocNo; } UFIDA.U9.InvDoc.MiscRcv.MiscRcvTransL rcvTransLine = UFIDA.U9.InvDoc.MiscRcv.MiscRcvTransL.Finder.Find("DescFlexSegments.PrivateDescSeg29='" + issueDoc.DocNo + "'"); if (rcvTransLine != null) { flag = true; delDocs += rcvTransLine.MiscRcvTrans.DocNo; } if (flag) { throw new Exception("此单已生成杂收、杂发单,不能取消。如果需要取消需删除杂发、杂收单:" + delDocs); } } } //单据从已核准状态到关闭状态,说明是退料确认操作 if (issueDoc.DocState == IssueTXNStateEnum.Closed && issueDoc.OriginalData.DocState == IssueTXNStateEnum.Approved) { //创建杂发单 #region 创建杂发杂收单 UFIDA.U9.ISV.MiscShipISV.Proxy.CommonCreateMiscShipProxy shipSv = new UFIDA.U9.ISV.MiscShipISV.Proxy.CommonCreateMiscShipProxy(); shipSv.MiscShipmentDTOList = new List <UFIDA.U9.ISV.MiscShipISV.IC_MiscShipmentDTOData>();//杂发SV参数 #region 杂发单数据 IC_MiscShipmentDTOData shipheadDto = new IC_MiscShipmentDTOData(); shipheadDto.BenefitOrg = Context.LoginOrg.ID; shipheadDto.BusinessDate = DateTime.Now; shipheadDto.MiscShipDocType = new UFIDA.U9.CBO.Pub.Controller.CommonArchiveDataDTOData(); UFIDA.U9.InvDoc.MiscShip.MiscShipDocType shipDocType = UFIDA.U9.InvDoc.MiscShip.MiscShipDocType.Finder.Find("Code='MS30129' and Org=" + Context.LoginOrg.ID.ToString());//杂发单类型 shipheadDto.MiscShipDocType.ID = shipDocType.ID; shipheadDto.MiscShipDocType.Code = shipDocType.Code; shipheadDto.MiscShipDocType.Name = shipDocType.Name; shipheadDto.Org = new UFIDA.U9.CBO.Pub.Controller.CommonArchiveDataDTOData(); shipheadDto.Org.ID = Context.LoginOrg.ID; shipheadDto.Org.Code = Context.LoginOrg.Code; shipheadDto.Org.Name = Context.LoginOrg.Name; shipheadDto.SOBAccountPeriod = new UFIDA.U9.CBO.Pub.Controller.CommonArchiveDataDTOData(); UFIDA.U9.Base.SOB.SOBAccountingPeriod sobPeriod = UFIDA.U9.Base.SOB.SOBAccountingPeriod.GetSOBAccountingPeriod(UFIDA.U9.Base.SOB.SetofBooks.Finder.Find("org='" + Context.LoginOrg.ID.ToString() + "'"), DateTime.Now); shipheadDto.SOBAccountPeriod.ID = sobPeriod.ID; shipheadDto.SOBAccountPeriod.Code = sobPeriod.Code; shipheadDto.SOBAccountPeriod.Name = sobPeriod.DisplayName; #region 杂发行数据 UFIDA.U9.MO.Issue.IssueDocLine.EntityList lines = issueDoc.IssueDocLines;//退料行数据 shipheadDto.MiscShipLs = new List <IC_MiscShipmentLDTOData>(); for (int i = 0; i < lines.Count; i++) { UFIDA.U9.MO.Issue.IssueDocLine line = lines[i]; IC_MiscShipmentLDTOData shipLineDto = new IC_MiscShipmentLDTOData(); //扩展字段中记录杂发单的来源退料单号、行号 shipLineDto.DescFlexSegments = new UFIDA.U9.Base.FlexField.DescFlexField.DescFlexSegmentsData(); shipLineDto.DescFlexSegments.PrivateDescSeg2 = line.MO.DocNo; shipLineDto.DescFlexSegments.PrivateDescSeg29 = issueDoc.DocNo; shipLineDto.DescFlexSegments.PrivateDescSeg30 = line.LineNum.ToString(); shipLineDto.ItemInfo = new UFIDA.U9.CBO.SCM.Item.ItemInfoData(); shipLineDto.ItemInfo.ItemID = line.Item.ID; shipLineDto.ItemInfo.ItemCode = line.Item.Code; shipLineDto.ItemInfo.ItemName = line.Item.Name; shipLineDto.StoreUOMQty = line.IssuedQty; //库存数量 shipLineDto.CostUOMQty = line.IssuedQty; //成本数量 shipLineDto.StoreUOM = new UFIDA.U9.CBO.Pub.Controller.CommonArchiveDataDTOData(); //库存单位 shipLineDto.StoreUOM.ID = line.StoreBaseUOM.ID; shipLineDto.StoreUOM.Code = line.StoreBaseUOM.Code; shipLineDto.StoreUOM.Name = line.StoreBaseUOM.Name; shipLineDto.Wh = new UFIDA.U9.CBO.Pub.Controller.CommonArchiveDataDTOData();//存储地点 shipLineDto.Wh.ID = line.Wh.ID; shipLineDto.Wh.Code = line.Wh.Code; shipLineDto.Wh.Name = line.Wh.Name; shipLineDto.StoreType = line.StorageType.Value;//存储类型 if (issueDoc.HandleDept != null) { shipLineDto.BenefitDept = new UFIDA.U9.CBO.Pub.Controller.CommonArchiveDataDTOData();//受益部门 shipLineDto.BenefitDept.ID = issueDoc.HandleDept.ID; shipLineDto.BenefitDept.Code = issueDoc.HandleDept.Code; shipLineDto.BenefitDept.Name = issueDoc.HandleDept.Name; } shipLineDto.BenefitPsn = new CommonArchiveDataDTOData(); if (issueDoc.HandlePerson != null) { shipLineDto.BenefitPsn.ID = issueDoc.HandlePerson.ID; shipLineDto.BenefitPsn.Code = issueDoc.HandlePerson.Code; shipLineDto.BenefitPsn.Name = issueDoc.HandlePerson.Name; } if (!string.IsNullOrEmpty(lines[i].LotNo)) { shipLineDto.LotInfo = new UFIDA.U9.CBO.SCM.PropertyTypes.LotInfoData(); shipLineDto.LotInfo.LotCode = lines[i].LotNo; //shipLineDto.LotInfo.LotMaster = new UFIDA.U9.Base.PropertyTypes.BizEntityKeyData(); //shipLineDto.LotInfo.LotMaster=lines[i].LotMaster } shipLineDto.OwnerOrg = new UFIDA.U9.CBO.Pub.Controller.CommonArchiveDataDTOData();//货主组织 shipLineDto.OwnerOrg.ID = Context.LoginOrg.ID; shipLineDto.OwnerOrg.Code = Context.LoginOrg.Code; shipLineDto.OwnerOrg.Name = Context.LoginOrg.Name; shipheadDto.MiscShipLs.Add(shipLineDto); } #endregion #endregion shipSv.MiscShipmentDTOList.Add(shipheadDto); shipSv.TargetOrgCode = Context.LoginOrg.Code; shipSv.TargetOrgName = Context.LoginOrg.Name; List <CommonArchiveDataDTOData> liShipReturn = new List <CommonArchiveDataDTOData>(); liShipReturn = shipSv.Do(); #endregion //提交杂发单 #region CommonCommitMiscShipSV UFIDA.U9.ISV.MiscShipISV.Proxy.CommonCommitMiscShipSVProxy shipCommitSV = new UFIDA.U9.ISV.MiscShipISV.Proxy.CommonCommitMiscShipSVProxy(); shipCommitSV.MiscShipmentKeyList = new List <CommonArchiveDataDTOData>(); shipCommitSV.MiscShipmentKeyList = liShipReturn; shipCommitSV.Do(); #endregion //审核杂发单 #region CommonApproveMiscShipSV UFIDA.U9.ISV.MiscShipISV.Proxy.CommonApproveMiscShipSVProxy shipApproveSV = new UFIDA.U9.ISV.MiscShipISV.Proxy.CommonApproveMiscShipSVProxy(); shipApproveSV.MiscShipmentKeyList = new List <CommonArchiveDataDTOData>(); shipApproveSV.MiscShipmentKeyList = liShipReturn; shipApproveSV.Do(); #endregion //创建杂收单,把上面创建的杂发单杂收了 #region 创建杂收单 UFIDA.U9.ISV.MiscRcvISV.Proxy.CommonCreateMiscRcvProxy rcvSV = new UFIDA.U9.ISV.MiscRcvISV.Proxy.CommonCreateMiscRcvProxy(); //杂收SV参数 rcvSV.TargetOrgCode = Context.LoginOrg.Code; rcvSV.TargetOrgName = Context.LoginOrg.Name; rcvSV.MiscRcvDTOList = new List <UFIDA.U9.ISV.MiscRcvISV.IC_MiscRcvDTOData>(); IC_MiscRcvDTOData rcvHeadDto = new IC_MiscRcvDTOData();//杂收单头 //dto.DocNo = "MR30190417999"; rcvHeadDto.MiscRcvDocType = new UFIDA.U9.CBO.Pub.Controller.CommonArchiveDataDTOData(); UFIDA.U9.InvDoc.MiscRcv.MiscRcvDocType rcvDocType = UFIDA.U9.InvDoc.MiscRcv.MiscRcvDocType.Finder.Find("Code='MR30116' and Org= " + Context.LoginOrg.ID); rcvHeadDto.MiscRcvDocType.ID = rcvDocType.ID; rcvHeadDto.MiscRcvDocType.Code = rcvDocType.Code; rcvHeadDto.MiscRcvDocType.Name = rcvDocType.Name; rcvHeadDto.BusinessDate = DateTime.Now; //业务日期 rcvHeadDto.SOBAccountPeriod = new UFIDA.U9.CBO.Pub.Controller.CommonArchiveDataDTOData(); //账期 rcvHeadDto.SOBAccountPeriod.ID = sobPeriod.ID; rcvHeadDto.SOBAccountPeriod.Code = sobPeriod.Code; rcvHeadDto.SOBAccountPeriod.Name = sobPeriod.DisplayName; rcvHeadDto.Org = new UFIDA.U9.CBO.Pub.Controller.CommonArchiveDataDTOData(); rcvHeadDto.Org.ID = Context.LoginOrg.ID;; rcvHeadDto.Org.Code = Context.LoginOrg.Code; rcvHeadDto.Org.Name = Context.LoginOrg.Name; rcvHeadDto.BenefitOrg = Context.LoginOrg.ID;//受益组织 #region 杂收行 rcvHeadDto.MiscRcvTransLs = new List <IC_MiscRcvTransLsDTOData>(); UFIDA.U9.CBO.SCM.Warehouse.Warehouse wh = UFIDA.U9.CBO.SCM.Warehouse.Warehouse.Finder.Find("Code='106' and Org=" + Context.LoginOrg.ID.ToString()); for (int i = 0; i < lines.Count; i++) { UFIDA.U9.MO.Issue.IssueDocLine line = lines[i]; IC_MiscRcvTransLsDTOData rcvLineDto = new IC_MiscRcvTransLsDTOData(); //扩展字段中记录杂发单的来源退料单号、行号 rcvLineDto.DescFlexSegments = new UFIDA.U9.Base.FlexField.DescFlexField.DescFlexSegmentsData(); rcvLineDto.DescFlexSegments.PrivateDescSeg2 = line.MO.DocNo; rcvLineDto.DescFlexSegments.PrivateDescSeg29 = issueDoc.DocNo; rcvLineDto.DescFlexSegments.PrivateDescSeg30 = line.LineNum.ToString(); rcvLineDto.ItemInfo = new UFIDA.U9.CBO.SCM.Item.ItemInfoData(); rcvLineDto.ItemInfo.ItemID = line.Item.ID; rcvLineDto.ItemInfo.ItemCode = line.Item.Code; rcvLineDto.ItemInfo.ItemName = line.Item.Name; rcvLineDto.Wh = new UFIDA.U9.CBO.Pub.Controller.CommonArchiveDataDTOData(); rcvLineDto.Wh.ID = wh.ID; rcvLineDto.Wh.Code = wh.Code; rcvLineDto.Wh.Name = wh.Name; rcvLineDto.BenefitDept = new UFIDA.U9.CBO.Pub.Controller.CommonArchiveDataDTOData(); rcvLineDto.BenefitDept.ID = issueDoc.HandleDept.ID; rcvLineDto.BenefitDept.Code = issueDoc.HandleDept.Code; rcvLineDto.BenefitDept.Name = issueDoc.HandleDept.Name; rcvLineDto.StoreUOMQty = line.IssuedQty; rcvLineDto.CostUOMQty = line.IssuedQty; rcvLineDto.CostUOM = new UFIDA.U9.CBO.Pub.Controller.CommonArchiveDataDTOData(); rcvLineDto.CostUOM.ID = line.StoreBaseUOM.ID; rcvLineDto.CostUOM.Code = line.StoreBaseUOM.Code; rcvLineDto.CostUOM.Name = line.StoreBaseUOM.Name; rcvLineDto.StoreUOM = new UFIDA.U9.CBO.Pub.Controller.CommonArchiveDataDTOData(); rcvLineDto.StoreUOM.ID = line.StoreBaseUOM.ID; rcvLineDto.StoreUOM.Code = line.StoreBaseUOM.Code; rcvLineDto.StoreUOM.Name = line.StoreBaseUOM.Name; rcvLineDto.IsZeroCost = true; //rcvLineDto.StoreUOM.ID = 1001708030115592; //rcvLineDto.StoreUOM.Code = "SL01"; //rcvLineDto.StoreUOM.Name = "PCS"; rcvLineDto.OwnerOrg = new UFIDA.U9.CBO.Pub.Controller.CommonArchiveDataDTOData(); rcvLineDto.OwnerOrg.ID = Context.LoginOrg.ID; rcvLineDto.OwnerOrg.Code = Context.LoginOrg.Code; rcvLineDto.OwnerOrg.Name = Context.LoginOrg.Name; if (!string.IsNullOrEmpty(lines[i].LotNo)) { rcvLineDto.LotInfo = new UFIDA.U9.CBO.SCM.PropertyTypes.LotInfoData(); rcvLineDto.LotInfo.LotCode = lines[i].LotNo; } rcvHeadDto.MiscRcvTransLs.Add(rcvLineDto); } #endregion rcvSV.MiscRcvDTOList.Add(rcvHeadDto); List <CommonArchiveDataDTOData> liRcvReturn = new List <CommonArchiveDataDTOData>(); liRcvReturn = rcvSV.Do();//执行创建杂收单服务 #region 提交杂收单服务 UFIDA.U9.ISV.MiscRcvISV.Proxy.CommonCommitMiscRcvProxy rcvCommitSV = new UFIDA.U9.ISV.MiscRcvISV.Proxy.CommonCommitMiscRcvProxy(); rcvCommitSV.TargetOrgCode = Context.LoginOrg.Code; rcvCommitSV.TargetOrgName = Context.LoginOrg.Name; rcvCommitSV.MiscRcvKeys = new List <CommonArchiveDataDTOData>(); rcvCommitSV.MiscRcvKeys = liRcvReturn; rcvCommitSV.Do(); #endregion #region 审核杂收单 UFIDA.U9.ISV.MiscRcvISV.Proxy.CommonApproveMiscRcvProxy rcvApproveSV = new UFIDA.U9.ISV.MiscRcvISV.Proxy.CommonApproveMiscRcvProxy(); rcvApproveSV.TargetOrgCode = Context.LoginOrg.Code; rcvApproveSV.MiscRcvKeys = new List <CommonArchiveDataDTOData>(); rcvApproveSV.MiscRcvKeys = liRcvReturn; rcvApproveSV.Do(); #endregion #endregion } } #endregion #region 领料控制 //根据更新前后时间判断订单是否已审核,若beforeConfirmDate=confirmDate表示订单已审核 string beforeConfirmDate = ""; string confirmDate = ""; if (issueDoc.OriginalData.IssueItemOn != DateTime.MinValue) { beforeConfirmDate = issueDoc.OriginalData.IssueItemOn.ToString(); } if (issueDoc.IssueItemOn != DateTime.MinValue) { confirmDate = issueDoc.IssueItemOn.ToString(); } DataParamList dp = new DataParamList(); dp.Add(DataParamFactory.Create("DocNo", issueDoc.DocNo, ParameterDirection.Input, DbType.String, 50)); dp.Add(DataParamFactory.Create("BeforeConfirmDate", beforeConfirmDate, ParameterDirection.Input, DbType.String, 50)); dp.Add(DataParamFactory.Create("ConfirmDate", confirmDate, ParameterDirection.Input, DbType.String, 50)); dp.Add(DataParamFactory.CreateOutput("Result", DbType.String)); DataAccessor.RunSP("sp_auctus_BE_MoIssueDoc", dp); string result = dp["Result"].Value.ToString(); if (result != "1") { throw new Exception(result); } #endregion #region 提交流程到OA if (issueDoc.DocType.DescFlexField.PrivateDescSeg1 == "1" && issueDoc.DocState == IssueTXNStateEnum.Approving && issueDoc.OriginalData.DocState == IssueTXNStateEnum.Opened) { PubFunction pubFun = new PubFunction(); User user = User.Finder.FindByID(Context.LoginUserID);//U9用户信息 Dictionary <string, object> dicResult = new Dictionary <string, object>(); Dictionary <string, object> dicMain = GenerateMainInfo(issueDoc, user.Code); List <Dictionary <string, object> > liDt = GenerateDtInfo(issueDoc); BaseInfo baseInfo; string workflowid = ""; if (issueDoc.IssueType == IssueTypeEnum.Issue)//发料 { workflowid = PubFunction.GetOAInfoByCode("08"); } else if (issueDoc.IssueType == IssueTypeEnum.Withdrawal)//退料 { workflowid = PubFunction.GetOAInfoByCode("09"); } string requestName = ""; if (issueDoc.IssueType == IssueTypeEnum.Issue) { requestName = "生产领料单:" + issueDoc.DocNo; } else if (issueDoc.IssueType == IssueTypeEnum.Withdrawal) { requestName = "生产退料单:" + issueDoc.DocNo; } if (issueDoc.DescFlexField.PrivateDescSeg6 == "是")//提交流程或弃审后重新提交流程 { baseInfo = Utils.GenerateOABaseInfo(user.Code, workflowid, issueDoc.ID.ToString(), 1, issueDoc.DescFlexField.PrivateDescSeg5, 1, requestName); } else//驳回后重新提交 { baseInfo = Utils.GenerateOABaseInfo(user.Code, workflowid, issueDoc.ID.ToString(), 1, "", 1, requestName); } dicResult.Add("base", baseInfo); dicResult.Add("main", dicMain); dicResult.Add("dt1", liDt); List <Dictionary <string, object> > li = new List <Dictionary <string, object> >(); li.Add(dicResult); string json = JsonHelper.GetJsonJS(li); Utils.LogError("生产领料JSON"); Utils.LogError(json); string OAFlowID = pubFun.OAService(json); //更新扩展字段:OA流程ID和是否驳回 string sql = string.Format("update mo_IssueDoc set DescFlexField_PrivateDescSeg6='否',DescFlexField_PrivateDescSeg5='{0}' where ID={1}", OAFlowID, issueDoc.ID); DataAccessor.RunSQL(DatabaseManager.GetCurrentConnection(), sql, null);//更新sql } #endregion } catch (Exception ex) { throw new Exception(ex.Message); } } } }
/// <summary> /// 试算2功能 region之外的代码都是copy的U9反编译的代码 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void TryCalc_Extend(object sender, UIActionEventArgs e) { #region Add by liufei string ids = "";//拼接请购行ID字符串 #endregion PRToPOUIModelAction prToPO = ((PRToPOUIModelAction)this.iPart.Action); prToPO.ClearErrorMessage(); //this.OnBtnTryCalcClick_DefaultImpl(sender, e); IList <IUIRecord> selectRecordFromCache = UIRuntimeHelper.Instance.GetSelectRecordFromCache(prToPO.CurrentModel.PR_PRLineList); if (selectRecordFromCache == null || selectRecordFromCache.Count == 0) { throw new Exception(PRToPOUIModelRes.NoSelectedRecord); } //this.CurrentModel.TryCalcView.Records.Clear(); prToPO.CurrentModel.TryCalcView.Records.Clear(); string text = ""; GetSupplierQuotaSVProxy getSupplierQuotaSVProxy = new GetSupplierQuotaSVProxy(); getSupplierQuotaSVProxy.QuotaReqList = new List <QuotaReqDTOData>(); int num = 1; Dictionary <long, int> dictionary = new Dictionary <long, int>(); using (IEnumerator <IUIRecord> enumerator = selectRecordFromCache.GetEnumerator()) { while (enumerator.MoveNext()) { PR_PRLineListRecord pR_PRLineListRecord = (PR_PRLineListRecord)enumerator.Current; #region Add by liufei ids += pR_PRLineListRecord.ID.ToString() + ","; #endregion if (!(pR_PRLineListRecord.ToPOQtyTU * pR_PRLineListRecord.TUToTBURate + pR_PRLineListRecord.ToPOQtyTBU <= 0m)) { if (!pR_PRLineListRecord.ItemInfo_ItemID_PurchaseInfo_IsNeedInquire || !(pR_PRLineListRecord.ItemInfo_ItemID_PurchaseInfo_InquireRule == InquireRuleEnum.EveryTime.Value)) { if ((!(pR_PRLineListRecord.ItemInfo_ItemID_PurchaseInfo_PurchaseQuotaMode == 6) && pR_PRLineListRecord.BizType != BusinessTypeEnum.PM050.Value) || !pR_PRLineListRecord.SuggestedSupplier_Supplier.HasValue || !pR_PRLineListRecord.SuggestedSupplier_Supplier.HasValue || pR_PRLineListRecord.SuggestedSupplier_Supplier.Value <= 0L) { //QuotaReqDTOData item = this.CreateQuotaReqDTOData(pR_PRLineListRecord, num); QuotaReqDTOData item = prToPO.CreateQuotaReqDTOData(pR_PRLineListRecord, num); getSupplierQuotaSVProxy.QuotaReqList.Add(item); dictionary.Add(pR_PRLineListRecord.ID, num); num++; } } } } } List <QuotaDTOData> list = getSupplierQuotaSVProxy.Do(); #region Add by liufei DataParamList dp = new DataParamList(); ids = ids.Substring(0, ids.Length - 1); dp.Add(DataParamFactory.Create("PRIDS", ids, ParameterDirection.Input, DbType.String, 8000)); dp.Add(DataParamFactory.CreateOutput("Result", DbType.String)); DataSet ds = new DataSet(); DataAccessor.RunSP("sp_Auctus_UI_GetSupplySource", dp, out ds); //按固定比例分配的料品是否存无厂商价目表、无供应商-料品交叉数据(即无MPQ) string result = dp["Result"].Value.ToString(); if (result != "0") { throw new Exception(PRToPOUIModelRes.DataError + result); } #endregion Dictionary <int, List <QuotaDTOData> > dictionary2 = new Dictionary <int, List <QuotaDTOData> >(); foreach (QuotaDTOData current in list) { if (dictionary2.ContainsKey(current.Index_1)) { dictionary2[current.Index_1].Add(current); } else { List <QuotaDTOData> list2 = new List <QuotaDTOData>(); list2.Add(current); dictionary2.Add(current.Index_1, list2); } } using (IEnumerator <IUIRecord> enumerator = selectRecordFromCache.GetEnumerator()) { while (enumerator.MoveNext()) { PR_PRLineListRecord pR_PRLineListRecord = (PR_PRLineListRecord)enumerator.Current; if (!(pR_PRLineListRecord.ToPOQtyTU * pR_PRLineListRecord.TUToTBURate + pR_PRLineListRecord.ToPOQtyTBU <= 0m)) { if (!pR_PRLineListRecord.ItemInfo_ItemID_PurchaseInfo_IsNeedInquire || !(pR_PRLineListRecord.ItemInfo_ItemID_PurchaseInfo_InquireRule == InquireRuleEnum.EveryTime.Value)) { if (text == "") { text = pR_PRLineListRecord.ID.ToString(); } else { text = text + "," + pR_PRLineListRecord.ID.ToString(); } if ((pR_PRLineListRecord.ItemInfo_ItemID_PurchaseInfo_PurchaseQuotaMode == 6 || pR_PRLineListRecord.BizType == BusinessTypeEnum.PM050.Value) && pR_PRLineListRecord.SuggestedSupplier_Supplier.HasValue && pR_PRLineListRecord.SuggestedSupplier_Supplier.HasValue && pR_PRLineListRecord.SuggestedSupplier_Supplier.Value > 0L) { //TryCalcViewRecord tryCalcViewRecord = this.CurrentModel.TryCalcView.AddNewUIRecord(); TryCalcViewRecord tryCalcViewRecord = prToPO.CurrentModel.TryCalcView.AddNewUIRecord(); tryCalcViewRecord.RFQStatus = pR_PRLineListRecord.RFQStatus; tryCalcViewRecord.RFQ_SrcDocNo = pR_PRLineListRecord.RFQInfo_SrcDocNo; tryCalcViewRecord.Currency = pR_PRLineListRecord.PR_AC; tryCalcViewRecord.LineEntityID = new long?(pR_PRLineListRecord.ID); tryCalcViewRecord.ItemCode = pR_PRLineListRecord.ItemInfo_ItemCode; tryCalcViewRecord.ItemID = pR_PRLineListRecord.ItemInfo_ItemID; tryCalcViewRecord.ItemName = pR_PRLineListRecord.ItemInfo_ItemName; tryCalcViewRecord.ItemIsDual = new bool?(pR_PRLineListRecord.ItemInfo_ItemID_IsDualQuantity); tryCalcViewRecord.PRDocLineNo = new long?((long)pR_PRLineListRecord.DocLineNo); tryCalcViewRecord.RequiredDeliveryDate = pR_PRLineListRecord.RequiredDeliveryDate; tryCalcViewRecord.Supplier = pR_PRLineListRecord.SuggestedSupplier_Supplier; tryCalcViewRecord.Supplier_Code = pR_PRLineListRecord.SuggestedSupplier_Code; tryCalcViewRecord.Supplier_Name = pR_PRLineListRecord.SuggestedSupplier_Name; tryCalcViewRecord.SPECS = pR_PRLineListRecord.ItemInfo_ItemID_SPECS; tryCalcViewRecord.DemandCode = pR_PRLineListRecord.DemandCode; if (pR_PRLineListRecord.BizType == BusinessTypeEnum.PM050.Value) { tryCalcViewRecord.ToPOQtyTBU = 0m; tryCalcViewRecord.TradeBaseUom = new long?(0L); tryCalcViewRecord.TradeBaseUom_Code = ""; tryCalcViewRecord.TradeBaseUom_Name = ""; tryCalcViewRecord.TradeBaseUOM_Round_Precision = 0; tryCalcViewRecord.TradeBaseUOM_Round_RoundType = 0; tryCalcViewRecord.TradeBaseUOM_Round_RoundValue = new int?(0); } else { tryCalcViewRecord.ToPOQtyTBU = pR_PRLineListRecord.ToPOQtyTBU; tryCalcViewRecord.TradeBaseUom = pR_PRLineListRecord.TradeBaseUOM; tryCalcViewRecord.TradeBaseUom_Code = pR_PRLineListRecord.TradeBaseUOM_Code; tryCalcViewRecord.TradeBaseUom_Name = pR_PRLineListRecord.TradeBaseUOM_Name; tryCalcViewRecord.TradeBaseUOM_Round_Precision = pR_PRLineListRecord.TradeBaseUOM_Round_Precision; tryCalcViewRecord.TradeBaseUOM_Round_RoundType = pR_PRLineListRecord.TradeBaseUOM_Round_RoundType; tryCalcViewRecord.TradeBaseUOM_Round_RoundValue = pR_PRLineListRecord.TradeBaseUOM_Round_RoundValue; } tryCalcViewRecord.ToPOQtyTU = pR_PRLineListRecord.ToPOQtyTU; tryCalcViewRecord.TradeUom = pR_PRLineListRecord.TradeUOM; tryCalcViewRecord.TradeUom_Code = pR_PRLineListRecord.TradeUOM_Code; tryCalcViewRecord.TradeUom_Name = pR_PRLineListRecord.TradeUOM_Name; tryCalcViewRecord.TradeUOM_Round_Precision = pR_PRLineListRecord.TradeUOM_Round_Precision; tryCalcViewRecord.TradeUOM_Round_RoundType = pR_PRLineListRecord.TradeUOM_Round_RoundType; tryCalcViewRecord.TradeUOM_Round_RoundValue = pR_PRLineListRecord.TradeUOM_Round_RoundValue; tryCalcViewRecord.BizType = pR_PRLineListRecord.BizType; if (pR_PRLineListRecord.ItemInfo_ItemID_ItemFormAttribute == 16) { tryCalcViewRecord.IsMisc = new bool?(true); } else { tryCalcViewRecord.IsMisc = new bool?(false); } } else { try { if (dictionary.ContainsKey(pR_PRLineListRecord.ID) && dictionary2.ContainsKey(dictionary[pR_PRLineListRecord.ID])) { List <QuotaDTOData> list2 = dictionary2[dictionary[pR_PRLineListRecord.ID]]; #region ADD By liufei //固定比例分配模式的请购单 if (pR_PRLineListRecord.ItemInfo_ItemID_PurchaseInfo_PurchaseQuotaMode == 4)//固定比例分配模式 { DataRow[] dr = ds.Tables[0].Select("PRLineID=" + pR_PRLineListRecord.ID); if (dr.Length > 0) { foreach (DataRow item in dr) { if (Convert.ToDecimal(item["ActualReq"]) == 0) { list2.Remove(list2.Where(m => m.Supplier == Convert.ToInt64(item["Supplier"]) && m.SupplySource == Convert.ToInt64(item["SupplySource"])).Select(m => m).First()); } else { for (int i = 0; i < list2.Count; i++) { if (item["Supplier"].ToString() == list2[i].Supplier.ToString() && item["SupplySource"].ToString() == list2[i].SupplySource.ToString()) { list2[i].PurNum.Amount1 = Convert.ToDecimal(item["ActualReq"]); } } } } } } #endregion foreach (QuotaDTOData current2 in list2) { if (current2.PurNum.Amount1 == 0m && current2.PurNum.Amount2 == 0m) { throw new Exception(PRToPOUIModelRes.SupQtyZeroCannotGenPO); } //TryCalcViewRecord tryCalcViewRecord = this.CurrentModel.TryCalcView.AddNewUIRecord(); TryCalcViewRecord tryCalcViewRecord = prToPO.CurrentModel.TryCalcView.AddNewUIRecord(); tryCalcViewRecord.RFQStatus = pR_PRLineListRecord.RFQStatus; tryCalcViewRecord.RFQ_SrcDocNo = pR_PRLineListRecord.RFQInfo_SrcDocNo; tryCalcViewRecord.Currency = pR_PRLineListRecord.PR_AC; tryCalcViewRecord.ItemID = pR_PRLineListRecord.ItemInfo_ItemID; tryCalcViewRecord.ItemCode = pR_PRLineListRecord.ItemInfo_ItemCode; tryCalcViewRecord.ItemName = pR_PRLineListRecord.ItemInfo_ItemName; tryCalcViewRecord.ItemIsDual = new bool?(pR_PRLineListRecord.ItemInfo_ItemID_IsDualQuantity); tryCalcViewRecord.PRDocLineNo = new long?((long)pR_PRLineListRecord.DocLineNo); tryCalcViewRecord.RequiredDeliveryDate = pR_PRLineListRecord.RequiredDeliveryDate; tryCalcViewRecord.TradeUom = pR_PRLineListRecord.TradeUOM; tryCalcViewRecord.TradeUom_Code = pR_PRLineListRecord.TradeUOM_Code; tryCalcViewRecord.TradeUom_Name = pR_PRLineListRecord.TradeUOM_Name; tryCalcViewRecord.LineEntityID = new long?(pR_PRLineListRecord.ID); tryCalcViewRecord.TradeUOM_Round_Precision = pR_PRLineListRecord.TradeUOM_Round_Precision; tryCalcViewRecord.TradeUOM_Round_RoundType = pR_PRLineListRecord.TradeUOM_Round_RoundType; tryCalcViewRecord.TradeUOM_Round_RoundValue = pR_PRLineListRecord.TradeUOM_Round_RoundValue; tryCalcViewRecord.SPECS = pR_PRLineListRecord.ItemInfo_ItemID_SPECS; tryCalcViewRecord.DemandCode = pR_PRLineListRecord.DemandCode; if (pR_PRLineListRecord.BizType == BusinessTypeEnum.PM050.Value) { tryCalcViewRecord.ToPOQtyTBU = 0m; tryCalcViewRecord.TradeBaseUom = new long?(0L); tryCalcViewRecord.TradeBaseUom_Code = ""; tryCalcViewRecord.TradeBaseUom_Name = ""; tryCalcViewRecord.TradeBaseUOM_Round_Precision = 0; tryCalcViewRecord.TradeBaseUOM_Round_RoundType = 0; tryCalcViewRecord.TradeBaseUOM_Round_RoundValue = new int?(0); if (pR_PRLineListRecord.ItemInfo_ItemID_IsDualQuantity) { tryCalcViewRecord.ToPOQtyTU = current2.PurNum.Amount1; } else { tryCalcViewRecord.ToPOQtyTU = current2.PurNum.Amount1; } } else { tryCalcViewRecord.TradeBaseUom = pR_PRLineListRecord.TradeBaseUOM; tryCalcViewRecord.TradeBaseUom_Code = pR_PRLineListRecord.TradeBaseUOM_Code; tryCalcViewRecord.TradeBaseUom_Name = pR_PRLineListRecord.TradeBaseUOM_Name; tryCalcViewRecord.TradeBaseUOM_Round_Precision = pR_PRLineListRecord.TradeBaseUOM_Round_Precision; tryCalcViewRecord.TradeBaseUOM_Round_RoundType = pR_PRLineListRecord.TradeBaseUOM_Round_RoundType; tryCalcViewRecord.TradeBaseUOM_Round_RoundValue = pR_PRLineListRecord.TradeBaseUOM_Round_RoundValue; if (pR_PRLineListRecord.ItemInfo_ItemID_IsDualQuantity) { tryCalcViewRecord.ToPOQtyTBU = current2.PurNum.Amount2; tryCalcViewRecord.ToPOQtyTU = current2.PurNum.Amount1; } else { tryCalcViewRecord.ToPOQtyTBU = 0m; tryCalcViewRecord.ToPOQtyTU = current2.PurNum.Amount1; } } tryCalcViewRecord.BizType = pR_PRLineListRecord.BizType; tryCalcViewRecord.Supplier = new long?(current2.Supplier); tryCalcViewRecord.Supplier_Code = current2.SupplierCode; tryCalcViewRecord.Supplier_Name = current2.SupplierName; } } else { //TryCalcViewRecord tryCalcViewRecord = this.CurrentModel.TryCalcView.AddNewUIRecord(); TryCalcViewRecord tryCalcViewRecord = prToPO.CurrentModel.TryCalcView.AddNewUIRecord(); tryCalcViewRecord.RFQStatus = pR_PRLineListRecord.RFQStatus; tryCalcViewRecord.RFQ_SrcDocNo = pR_PRLineListRecord.RFQInfo_SrcDocNo; tryCalcViewRecord.Currency = pR_PRLineListRecord.PR_AC; tryCalcViewRecord.LineEntityID = new long?(pR_PRLineListRecord.ID); tryCalcViewRecord.ItemCode = pR_PRLineListRecord.ItemInfo_ItemCode; tryCalcViewRecord.ItemID = pR_PRLineListRecord.ItemInfo_ItemID; tryCalcViewRecord.ItemName = pR_PRLineListRecord.ItemInfo_ItemName; tryCalcViewRecord.ItemIsDual = new bool?(pR_PRLineListRecord.ItemInfo_ItemID_IsDualQuantity); tryCalcViewRecord.PRDocLineNo = new long?((long)pR_PRLineListRecord.DocLineNo); tryCalcViewRecord.RequiredDeliveryDate = pR_PRLineListRecord.RequiredDeliveryDate; tryCalcViewRecord.SPECS = pR_PRLineListRecord.ItemInfo_ItemID_SPECS; tryCalcViewRecord.DemandCode = pR_PRLineListRecord.DemandCode; if (pR_PRLineListRecord.BizType == BusinessTypeEnum.PM050.Value) { tryCalcViewRecord.ToPOQtyTBU = 0m; tryCalcViewRecord.TradeBaseUom = new long?(0L); tryCalcViewRecord.TradeBaseUom_Code = ""; tryCalcViewRecord.TradeBaseUom_Name = ""; tryCalcViewRecord.TradeBaseUOM_Round_Precision = 0; tryCalcViewRecord.TradeBaseUOM_Round_RoundType = 0; tryCalcViewRecord.TradeBaseUOM_Round_RoundValue = new int?(0); } else { tryCalcViewRecord.TradeBaseUom = pR_PRLineListRecord.TradeBaseUOM; tryCalcViewRecord.TradeBaseUom_Code = pR_PRLineListRecord.TradeBaseUOM_Code; tryCalcViewRecord.TradeBaseUom_Name = pR_PRLineListRecord.TradeBaseUOM_Name; tryCalcViewRecord.TradeBaseUOM_Round_Precision = pR_PRLineListRecord.TradeBaseUOM_Round_Precision; tryCalcViewRecord.TradeBaseUOM_Round_RoundType = pR_PRLineListRecord.TradeBaseUOM_Round_RoundType; tryCalcViewRecord.TradeBaseUOM_Round_RoundValue = pR_PRLineListRecord.TradeBaseUOM_Round_RoundValue; tryCalcViewRecord.ToPOQtyTBU = pR_PRLineListRecord.ToPOQtyTBU; } tryCalcViewRecord.ToPOQtyTU = pR_PRLineListRecord.ToPOQtyTU; tryCalcViewRecord.TradeUom = pR_PRLineListRecord.TradeUOM; tryCalcViewRecord.TradeUom_Code = pR_PRLineListRecord.TradeUOM_Code; tryCalcViewRecord.TradeUom_Name = pR_PRLineListRecord.TradeUOM_Name; tryCalcViewRecord.TradeUOM_Round_Precision = pR_PRLineListRecord.TradeUOM_Round_Precision; tryCalcViewRecord.TradeUOM_Round_RoundType = pR_PRLineListRecord.TradeUOM_Round_RoundType; tryCalcViewRecord.TradeUOM_Round_RoundValue = pR_PRLineListRecord.TradeUOM_Round_RoundValue; tryCalcViewRecord.BizType = pR_PRLineListRecord.BizType; if (pR_PRLineListRecord.ItemInfo_ItemID_ItemFormAttribute == 16) { tryCalcViewRecord.IsMisc = new bool?(true); } else { tryCalcViewRecord.IsMisc = new bool?(false); } //this.SetErrorMsg(tryCalcViewRecord, "Supplier", string.Concat(new string[] prToPO.SetErrorMsg(tryCalcViewRecord, "Supplier", string.Concat(new string[] { PRToPOUIModelRes.LineNum1, tryCalcViewRecord.PRDocLineNo.GetValueOrDefault().ToString(), PRToPOUIModelRes.LineNum2, PRToPOUIModelRes.ItemCode, tryCalcViewRecord.ItemCode, PRToPOUIModelRes.SupplierBeNull })); } } catch (Exception ex) { throw ex; } } } } } } string partId = "b7345fdb-dab2-4b1a-b380-af6e4d2b285c"; //string parentTaskId = base.CurrentPart.TaskId.ToString(); string parentTaskId = prToPO.CurrentPart.TaskId.ToString(); string width = "810"; string height = "465"; //base.CurrentState["PRToPO_SelectedPrLineIDs"] = text; prToPO.CurrentState["PRToPO_SelectedPrLineIDs"] = text; //base.CurrentPart.ShowModalDialog(partId, PRToPOUIModelRes.TryCalc, width, height, parentTaskId, null, false, true); prToPO.CurrentPart.ShowModalDialog(partId, PRToPOUIModelRes.TryCalc, width, height, parentTaskId, null, false, true); }
public void Notify(params object[] args) { if (args == null || args.Length == 0 || !(args[0] is UFSoft.UBF.Business.EntityEvent)) { return; } //将入口参数列表中第一个参数,转成EntityEvent,并取EntityKey存入key UFSoft.UBF.Business.BusinessEntity.EntityKey key = ((UFSoft.UBF.Business.EntityEvent)args[0]).EntityKey; //key的有效性判断 if (key == null) { return; } //转成所需实体,同时判断有效性 UFIDA.U9.PM.PO.PurchaseOrder po = (UFIDA.U9.PM.PO.PurchaseOrder)key.GetEntity(); if (po == null) { return; } else { //锁WMO转WPO功能 if (po.Org.Code == "300")//po.SubType委外订单 { try { DataParamList dp = new DataParamList(); dp.Add(DataParamFactory.Create("DocNo", po.DocNo, ParameterDirection.Input, DbType.String, 50)); dp.Add(DataParamFactory.CreateOutput("Result", DbType.String)); DataAccessor.RunSP("sp_Auctus_BE_PurchaseOrderAI", dp); string result = dp["Result"].Value.ToString(); if (result != "0") { throw new Exception(result); } } catch (Exception ex) { throw new Exception(ex.Message); } } ////锁WMO转WPO功能 //if (po.Org.Code == "300" && po.SubType.Value.ToString() != "-1")//po.SubType委外订单 //{ // try // { // DataParamList dp = new DataParamList(); // dp.Add(DataParamFactory.Create("DocNo", po.DocNo, ParameterDirection.Input, DbType.String, 50)); // dp.Add(DataParamFactory.CreateOutput("Result", DbType.String)); // DataAccessor.RunSP("sp_Auctus_BE_PurchaseOrderAI", dp); // string result = dp["Result"].Value.ToString(); // if (result != "0") // { // throw new Exception(result); // } // } // catch (Exception ex) // { // throw new Exception(ex.Message); // } //} //end if ////锁WMO转WPO功能 //if (po.Org.Code == "300")//po.SubType委外订单 //{ // try // { // DataParamList dp = new DataParamList(); // dp.Add(DataParamFactory.Create("DocNo", po.DocNo, ParameterDirection.Input, DbType.String, 50)); // dp.Add(DataParamFactory.CreateOutput("Result", DbType.String)); // DataAccessor.RunSP("sp_Auctus_BE_PurchaseOrderAI", dp); // string result = dp["Result"].Value.ToString(); // if (result != "1") // { // throw new Exception(result); // } // } // catch (Exception ex) // { // throw new Exception(ex.Message); // } //}//end if } }
/// <summary> /// 试算2功能 region之外的代码都是copy的U9反编译的代码 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void TryCalc_Extend(object sender, UIActionEventArgs e) { #region Add by liufei string ids = "";//拼接请购行ID字符串 #endregion ListPRToPOUIModelAction listPRToPO = ((ListPRToPOUIModelAction)this.iPart.Action); listPRToPO.ClearErrorMessage(); listPRToPO.CalAmountAndSetRFQForCalcBtn(); IList <IUIRecord> selectRecordFromCache = UIRuntimeHelper.Instance.GetSelectRecordFromCache(listPRToPO.CurrentModel.PRLine); if (selectRecordFromCache == null || selectRecordFromCache.Count == 0) { throw new Exception(UFIDA.U9.SCM.PM.PRToPOUIModel.PRToPOUIModelRes.NoSelectedRecord); } listPRToPO.CurrentModel.TryCalcView.Records.Clear(); string text = ""; GetSupplierQuotaSVProxy getSupplierQuotaSVProxy = new GetSupplierQuotaSVProxy(); getSupplierQuotaSVProxy.QuotaReqList = new List <QuotaReqDTOData>(); int num = 1; Dictionary <long, int> dictionary = new Dictionary <long, int>(); using (IEnumerator <IUIRecord> enumerator = selectRecordFromCache.GetEnumerator()) { while (enumerator.MoveNext()) { PRLineRecord pRLineRecord = (PRLineRecord)enumerator.Current; #region Add by liufei ids += pRLineRecord.ID.ToString() + ","; #endregion if (!(pRLineRecord.ToPOQtyTU * pRLineRecord.TUToTBURate + pRLineRecord.ToPOQtyTBU <= 0m)) { if (!pRLineRecord.ItemInfo_ItemID_PurchaseInfo_IsNeedInquire || !(pRLineRecord.ItemInfo_ItemID_PurchaseInfo_InquireRule == InquireRuleEnum.EveryTime.Value)) { if ((!(pRLineRecord.ItemInfo_ItemID_PurchaseInfo_PurchaseQuotaMode == 6) && pRLineRecord.BizType != BusinessTypeEnum.PM050.Value) || !pRLineRecord.SuggestedSupplier_Supplier.HasValue || !pRLineRecord.SuggestedSupplier_Supplier.HasValue || pRLineRecord.SuggestedSupplier_Supplier.Value <= 0L) { QuotaReqDTOData quotaReqDTOData = new QuotaReqDTOData(); quotaReqDTOData.Item = new ItemInfoData(); if (pRLineRecord.BizType == BusinessTypeEnum.PM050.Value) { quotaReqDTOData.Item.ItemCode = pRLineRecord.ProcessItem_ItemCode; quotaReqDTOData.Item.ItemID = pRLineRecord.ProcessItem_ItemID.Value; quotaReqDTOData.Item.ItemName = pRLineRecord.ProcessItem_ItemName; if (pRLineRecord.ProcessItem_ItemOpt1.HasValue && pRLineRecord.ProcessItem_ItemOpt1.HasValue) { quotaReqDTOData.Item.ItemOpt1 = pRLineRecord.ProcessItem_ItemOpt1.Value; } if (pRLineRecord.ProcessItem_ItemOpt2.HasValue && pRLineRecord.ProcessItem_ItemOpt2.HasValue) { quotaReqDTOData.Item.ItemOpt2 = pRLineRecord.ProcessItem_ItemOpt2.Value; } if (pRLineRecord.ProcessItem_ItemOpt3.HasValue && pRLineRecord.ProcessItem_ItemOpt3.HasValue) { quotaReqDTOData.Item.ItemOpt3 = pRLineRecord.ProcessItem_ItemOpt3.Value; } if (pRLineRecord.ProcessItem_ItemOpt4.HasValue && pRLineRecord.ProcessItem_ItemOpt4.HasValue) { quotaReqDTOData.Item.ItemOpt4 = pRLineRecord.ProcessItem_ItemOpt4.Value; } if (pRLineRecord.ProcessItem_ItemOpt5.HasValue && pRLineRecord.ProcessItem_ItemOpt5.HasValue) { quotaReqDTOData.Item.ItemOpt5 = pRLineRecord.ProcessItem_ItemOpt5.Value; } if (pRLineRecord.ProcessItem_ItemOpt6.HasValue && pRLineRecord.ProcessItem_ItemOpt6.HasValue) { quotaReqDTOData.Item.ItemOpt6 = pRLineRecord.ProcessItem_ItemOpt6.Value; } if (pRLineRecord.ProcessItem_ItemOpt7.HasValue && pRLineRecord.ProcessItem_ItemOpt7.HasValue) { quotaReqDTOData.Item.ItemOpt7 = pRLineRecord.ProcessItem_ItemOpt7.Value; } if (pRLineRecord.ProcessItem_ItemOpt8.HasValue && pRLineRecord.ProcessItem_ItemOpt8.HasValue) { quotaReqDTOData.Item.ItemOpt8 = pRLineRecord.ProcessItem_ItemOpt8.Value; } if (pRLineRecord.ProcessItem_ItemOpt9.HasValue && pRLineRecord.ProcessItem_ItemOpt9.HasValue) { quotaReqDTOData.Item.ItemOpt9 = pRLineRecord.ProcessItem_ItemOpt9.Value; } if (pRLineRecord.ProcessItem_ItemOpt10.HasValue && pRLineRecord.ProcessItem_ItemOpt10.HasValue) { quotaReqDTOData.Item.ItemOpt10 = pRLineRecord.ProcessItem_ItemOpt10.Value; } if (pRLineRecord.ProcessItem_ItemPotency.HasValue && pRLineRecord.ProcessItem_ItemPotency.HasValue) { quotaReqDTOData.Item.ItemPotency = pRLineRecord.ProcessItem_ItemPotency.Value; } if (pRLineRecord.ProcessItem_ItemGrade.HasValue && pRLineRecord.ProcessItem_ItemGrade.HasValue) { quotaReqDTOData.Item.ItemGrade = pRLineRecord.ProcessItem_ItemGrade.Value; } if (pRLineRecord.ProcessItem_ItemVersion != null) { quotaReqDTOData.Item.ItemVersion = pRLineRecord.ProcessItem_ItemVersion; } } else { quotaReqDTOData.Item.ItemCode = pRLineRecord.ItemInfo_ItemCode; quotaReqDTOData.Item.ItemID = pRLineRecord.ItemInfo_ItemID.Value; quotaReqDTOData.Item.ItemName = pRLineRecord.ItemInfo_ItemName; if (pRLineRecord.ItemInfo_ItemOpt1.HasValue && pRLineRecord.ItemInfo_ItemOpt1.HasValue) { quotaReqDTOData.Item.ItemOpt1 = pRLineRecord.ItemInfo_ItemOpt1.Value; } if (pRLineRecord.ItemInfo_ItemOpt2.HasValue && pRLineRecord.ItemInfo_ItemOpt2.HasValue) { quotaReqDTOData.Item.ItemOpt2 = pRLineRecord.ItemInfo_ItemOpt2.Value; } if (pRLineRecord.ItemInfo_ItemOpt3.HasValue && pRLineRecord.ItemInfo_ItemOpt3.HasValue) { quotaReqDTOData.Item.ItemOpt3 = pRLineRecord.ItemInfo_ItemOpt3.Value; } if (pRLineRecord.ItemInfo_ItemOpt4.HasValue && pRLineRecord.ItemInfo_ItemOpt4.HasValue) { quotaReqDTOData.Item.ItemOpt4 = pRLineRecord.ItemInfo_ItemOpt4.Value; } if (pRLineRecord.ItemInfo_ItemOpt5.HasValue && pRLineRecord.ItemInfo_ItemOpt5.HasValue) { quotaReqDTOData.Item.ItemOpt5 = pRLineRecord.ItemInfo_ItemOpt5.Value; } if (pRLineRecord.ItemInfo_ItemOpt6.HasValue && pRLineRecord.ItemInfo_ItemOpt6.HasValue) { quotaReqDTOData.Item.ItemOpt6 = pRLineRecord.ItemInfo_ItemOpt6.Value; } if (pRLineRecord.ItemInfo_ItemOpt7.HasValue && pRLineRecord.ItemInfo_ItemOpt7.HasValue) { quotaReqDTOData.Item.ItemOpt7 = pRLineRecord.ItemInfo_ItemOpt7.Value; } if (pRLineRecord.ItemInfo_ItemOpt8.HasValue && pRLineRecord.ItemInfo_ItemOpt8.HasValue) { quotaReqDTOData.Item.ItemOpt8 = pRLineRecord.ItemInfo_ItemOpt8.Value; } if (pRLineRecord.ItemInfo_ItemOpt9.HasValue && pRLineRecord.ItemInfo_ItemOpt9.HasValue) { quotaReqDTOData.Item.ItemOpt9 = pRLineRecord.ItemInfo_ItemOpt9.Value; } if (pRLineRecord.ItemInfo_ItemOpt10.HasValue && pRLineRecord.ItemInfo_ItemOpt10.HasValue) { quotaReqDTOData.Item.ItemOpt10 = pRLineRecord.ItemInfo_ItemOpt10.Value; } if (pRLineRecord.ItemInfo_ItemPotency.HasValue && pRLineRecord.ItemInfo_ItemPotency.HasValue) { quotaReqDTOData.Item.ItemPotency = pRLineRecord.ItemInfo_ItemPotency.Value; } if (pRLineRecord.ItemInfo_ItemGrade.HasValue && pRLineRecord.ItemInfo_ItemGrade.HasValue) { quotaReqDTOData.Item.ItemGrade = pRLineRecord.ItemInfo_ItemGrade.Value; } if (pRLineRecord.ItemInfo_ItemVersion != null) { quotaReqDTOData.Item.ItemVersion = pRLineRecord.ItemInfo_ItemVersion; } } quotaReqDTOData.PurType = 3; quotaReqDTOData.ReqAmount = new DoubleQuantityData(); quotaReqDTOData.ReqAmount.Amount1 = pRLineRecord.ToPOQtyTU; quotaReqDTOData.ReqAmount.UOM1 = new UOMInfoDTOData(); if (pRLineRecord.BizType == BusinessTypeEnum.PM050.Value) { quotaReqDTOData.ReqAmount.UOM1.UOMMain = pRLineRecord.PM050Uom.Value; quotaReqDTOData.ReqAmount.UOM1.UOMSub = pRLineRecord.PM050BaseUom.Value; quotaReqDTOData.UsageQuantityType = Convert.ToInt32(pRLineRecord.ChargeBasis); quotaReqDTOData.ItemEntityKey = pRLineRecord.ProcessItem_ItemID.GetValueOrDefault(); quotaReqDTOData.PerProcessQty = pRLineRecord.RatioPerProduct.GetValueOrDefault(); quotaReqDTOData.OperationQty = new DoubleQuantityData(); quotaReqDTOData.OperationQty.UOM1 = new UOMInfoDTOData(); quotaReqDTOData.OperationQty.UOM2 = new UOMInfoDTOData(); quotaReqDTOData.OperationQty.Amount1 = pRLineRecord.PM050ForTOPOQtyTU.GetValueOrDefault(); quotaReqDTOData.OperationQty.Amount2 = pRLineRecord.PM050ForTOPOQtyTBU.GetValueOrDefault(); quotaReqDTOData.OperationQty.UOM1.UOMMain = pRLineRecord.PM050Uom.GetValueOrDefault(); quotaReqDTOData.OperationQty.UOM1.UOMSub = pRLineRecord.PM050BaseUom.GetValueOrDefault(); quotaReqDTOData.OperationQty.UOM1.Rate = pRLineRecord.TUToTBURate.GetValueOrDefault(); quotaReqDTOData.OperationQty.UOM2.UOMMain = pRLineRecord.PM050BaseUom.GetValueOrDefault(); quotaReqDTOData.OperationQty.UOM2.UOMSub = pRLineRecord.PM050BaseUom.GetValueOrDefault(); quotaReqDTOData.OperationQty.UOM2.Rate = 1m; } else { quotaReqDTOData.ReqAmount.UOM1.UOMMain = pRLineRecord.TradeUOM.Value; quotaReqDTOData.ReqAmount.UOM1.UOMSub = pRLineRecord.TradeBaseUOM.Value; } quotaReqDTOData.ReqAmount.Amount2 = pRLineRecord.ToPOQtyTBU; quotaReqDTOData.ReqAmount.UOM1.Rate = pRLineRecord.TUToTBURate.Value; quotaReqDTOData.ReqTime = pRLineRecord.RequiredDeliveryDate.Value; if (pRLineRecord.SrcDocType.HasValue && pRLineRecord.SrcDocType.GetValueOrDefault(-1) == 1) { quotaReqDTOData.VMIType = 0; } else { quotaReqDTOData.VMIType = 2; } if (pRLineRecord.ItemInfo_ItemID_ItemFormAttribute == 0) { if (pRLineRecord.SelectedResult_EntityID.HasValue) { quotaReqDTOData.BOMID = pRLineRecord.SelectedResult_EntityID.GetValueOrDefault(-1L); } } else if (pRLineRecord.BomID.HasValue) { quotaReqDTOData.BOMID = pRLineRecord.BomID.GetValueOrDefault(-1L); } if (pRLineRecord.Mfc.HasValue && pRLineRecord.Mfc.GetValueOrDefault(-1L) > 0L) { quotaReqDTOData.Mfc = pRLineRecord.Mfc.Value; } quotaReqDTOData.Index_1 = num; if (pRLineRecord.SuggestedSupplier_Supplier.HasValue && pRLineRecord.SuggestedSupplier_Supplier.HasValue && pRLineRecord.SuggestedSupplier_Supplier.Value > 0L) { quotaReqDTOData.Supplier = pRLineRecord.SuggestedSupplier_Supplier.Value; } getSupplierQuotaSVProxy.QuotaReqList.Add(quotaReqDTOData); dictionary.Add(pRLineRecord.ID, num); num++; } } } } } List <QuotaDTOData> list = getSupplierQuotaSVProxy.Do(); #region Add by liufei DataParamList dp = new DataParamList(); ids = ids.Substring(0, ids.Length - 1); dp.Add(DataParamFactory.Create("PRIDS", ids, ParameterDirection.Input, DbType.String, 50000)); dp.Add(DataParamFactory.CreateOutput("Result", DbType.String)); DataSet ds = new DataSet(); DataAccessor.RunSP("sp_Auctus_UI_GetSupplySource", dp, out ds); //按固定比例分配的料品是否存无厂商价目表、无供应商-料品交叉数据(即无MPQ) string result = dp["Result"].Value.ToString(); if (result != "0") { throw new Exception(UFIDA.U9.SCM.PM.PRToPOUIModel.PRToPOUIModelRes.DataError + result); } #endregion Dictionary <int, List <QuotaDTOData> > dictionary2 = new Dictionary <int, List <QuotaDTOData> >(); foreach (QuotaDTOData current in list) { if (dictionary2.ContainsKey(current.Index_1)) { dictionary2[current.Index_1].Add(current); } else { List <QuotaDTOData> list2 = new List <QuotaDTOData>(); list2.Add(current); dictionary2.Add(current.Index_1, list2); } } using (IEnumerator <IUIRecord> enumerator = selectRecordFromCache.GetEnumerator()) { while (enumerator.MoveNext()) { PRLineRecord pRLineRecord = (PRLineRecord)enumerator.Current; if (!(pRLineRecord.ToPOQtyTU * pRLineRecord.TUToTBURate + pRLineRecord.ToPOQtyTBU <= 0m)) { if (!pRLineRecord.ItemInfo_ItemID_PurchaseInfo_IsNeedInquire || !(pRLineRecord.ItemInfo_ItemID_PurchaseInfo_InquireRule == InquireRuleEnum.EveryTime.Value)) { if (text == "") { text = pRLineRecord.ID.ToString(); } else { text = text + "," + pRLineRecord.ID.ToString(); } if ((pRLineRecord.ItemInfo_ItemID_PurchaseInfo_PurchaseQuotaMode == 6 || pRLineRecord.BizType == BusinessTypeEnum.PM050.Value) && pRLineRecord.SuggestedSupplier_Supplier.HasValue && pRLineRecord.SuggestedSupplier_Supplier.HasValue && pRLineRecord.SuggestedSupplier_Supplier.Value > 0L) { TryCalcViewRecord tryCalcViewRecord = listPRToPO.CurrentModel.TryCalcView.AddNewUIRecord(); tryCalcViewRecord.RFQStatus = pRLineRecord.RFQStatus; tryCalcViewRecord.RFQ_SrcDocNo = pRLineRecord.RFQInfo_SrcDocNo; tryCalcViewRecord.Currency = pRLineRecord.PR_AC; tryCalcViewRecord.PRDocNo = pRLineRecord.PR_DocNo; tryCalcViewRecord.LineEntityID = new long?(pRLineRecord.ID); tryCalcViewRecord.ItemCode = pRLineRecord.ItemInfo_ItemCode; tryCalcViewRecord.ItemID = pRLineRecord.ItemInfo_ItemID; tryCalcViewRecord.ItemName = pRLineRecord.ItemInfo_ItemName; tryCalcViewRecord.ItemIsDual = new bool?(pRLineRecord.ItemInfo_ItemID_IsDualQuantity); tryCalcViewRecord.PRDocLineNo = new long?((long)pRLineRecord.DocLineNo); tryCalcViewRecord.RequiredDeliveryDate = pRLineRecord.RequiredDeliveryDate; tryCalcViewRecord.Supplier = pRLineRecord.SuggestedSupplier_Supplier; tryCalcViewRecord.Supplier_Code = pRLineRecord.SuggestedSupplier_Code; tryCalcViewRecord.Supplier_Name = pRLineRecord.SuggestedSupplier_Name; tryCalcViewRecord.DemandCode = pRLineRecord.DemandCode; tryCalcViewRecord.SPECS = pRLineRecord.ItemInfo_ItemID_SPECS; if (pRLineRecord.BizType == BusinessTypeEnum.PM050.Value) { tryCalcViewRecord.ToPOQtyTBU = 0m; tryCalcViewRecord.TradeBaseUom = new long?(0L); tryCalcViewRecord.TradeBaseUom_Code = ""; tryCalcViewRecord.TradeBaseUom_Name = ""; tryCalcViewRecord.TradeBaseUOM_Round_Precision = new int?(0); tryCalcViewRecord.TradeBaseUOM_Round_RoundType = new int?(0); tryCalcViewRecord.TradeBaseUOM_Round_RoundValue = new int?(0); } else { tryCalcViewRecord.ToPOQtyTBU = pRLineRecord.ToPOQtyTBU; tryCalcViewRecord.TradeBaseUom = pRLineRecord.TradeBaseUOM; tryCalcViewRecord.TradeBaseUom_Code = pRLineRecord.TradeBaseUOM_Code; tryCalcViewRecord.TradeBaseUom_Name = pRLineRecord.TradeBaseUOM_Name; tryCalcViewRecord.TradeBaseUOM_Round_Precision = new int?(pRLineRecord.TradeBaseUOM_Round_Precision); tryCalcViewRecord.TradeBaseUOM_Round_RoundType = new int?(pRLineRecord.TradeBaseUOM_Round_RoundType); tryCalcViewRecord.TradeBaseUOM_Round_RoundValue = pRLineRecord.TradeBaseUOM_Round_RoundValue; } tryCalcViewRecord.ToPOQtyTU = pRLineRecord.ToPOQtyTU; tryCalcViewRecord.TradeUom = pRLineRecord.TradeUOM; tryCalcViewRecord.TradeUom_Code = pRLineRecord.TradeUOM_Code; tryCalcViewRecord.TradeUom_Name = pRLineRecord.TradeUOM_Name; tryCalcViewRecord.TradeUOM_Round_Precision = new int?(pRLineRecord.TradeUOM_Round_Precision); tryCalcViewRecord.TradeUOM_Round_RoundType = new int?(pRLineRecord.TradeUOM_Round_RoundType); tryCalcViewRecord.TradeUOM_Round_RoundValue = pRLineRecord.TradeUOM_Round_RoundValue; tryCalcViewRecord.BizType = pRLineRecord.BizType; if (pRLineRecord.ItemInfo_ItemID_ItemFormAttribute == 16) { tryCalcViewRecord.IsMisc = new bool?(true); } else { tryCalcViewRecord.IsMisc = new bool?(false); } } else { try { if (dictionary.ContainsKey(pRLineRecord.ID) && dictionary2.ContainsKey(dictionary[pRLineRecord.ID])) { List <QuotaDTOData> list2 = dictionary2[dictionary[pRLineRecord.ID]]; #region ADD By liufei //固定比例分配模式的请购单 if (pRLineRecord.ItemInfo_ItemID_PurchaseInfo_PurchaseQuotaMode == 4)//固定比例分配模式 { DataRow[] dr = ds.Tables[0].Select("PRLineID=" + pRLineRecord.ID); if (dr.Length > 0) { foreach (DataRow item in dr) { if (Convert.ToDecimal(item["ActualReq"]) == 0) { list2.Remove(list2.Where(m => m.Supplier == Convert.ToInt64(item["Supplier"]) && m.SupplySource == Convert.ToInt64(item["SupplySource"])).Select(m => m).First()); } else { for (int i = 0; i < list2.Count; i++) { if (item["Supplier"].ToString() == list2[i].Supplier.ToString() && item["SupplySource"].ToString() == list2[i].SupplySource.ToString()) { list2[i].PurNum.Amount1 = Convert.ToDecimal(item["ActualReq"]); } } } } } } #endregion foreach (QuotaDTOData current2 in list2) { if (current2.PurNum.Amount1 == 0m && current2.PurNum.Amount2 == 0m) { throw new Exception(UFIDA.U9.SCM.PM.PRToPOUIModel.PRToPOUIModelRes.SupQtyZeroCannotGenPO); } TryCalcViewRecord tryCalcViewRecord = listPRToPO.CurrentModel.TryCalcView.AddNewUIRecord(); tryCalcViewRecord.RFQStatus = pRLineRecord.RFQStatus; tryCalcViewRecord.RFQ_SrcDocNo = pRLineRecord.RFQInfo_SrcDocNo; tryCalcViewRecord.Currency = pRLineRecord.PR_AC; tryCalcViewRecord.PRDocNo = pRLineRecord.PR_DocNo; tryCalcViewRecord.ItemID = pRLineRecord.ItemInfo_ItemID; tryCalcViewRecord.ItemCode = pRLineRecord.ItemInfo_ItemCode; tryCalcViewRecord.ItemName = pRLineRecord.ItemInfo_ItemName; tryCalcViewRecord.ItemIsDual = new bool?(pRLineRecord.ItemInfo_ItemID_IsDualQuantity); tryCalcViewRecord.PRDocLineNo = new long?((long)pRLineRecord.DocLineNo); tryCalcViewRecord.RequiredDeliveryDate = pRLineRecord.RequiredDeliveryDate; tryCalcViewRecord.TradeUom = pRLineRecord.TradeUOM; tryCalcViewRecord.TradeUom_Code = pRLineRecord.TradeUOM_Code; tryCalcViewRecord.TradeUom_Name = pRLineRecord.TradeUOM_Name; tryCalcViewRecord.LineEntityID = new long?(pRLineRecord.ID); tryCalcViewRecord.TradeUOM_Round_Precision = new int?(pRLineRecord.TradeUOM_Round_Precision); tryCalcViewRecord.TradeUOM_Round_RoundType = new int?(pRLineRecord.TradeUOM_Round_RoundType); tryCalcViewRecord.TradeUOM_Round_RoundValue = pRLineRecord.TradeUOM_Round_RoundValue; tryCalcViewRecord.DemandCode = pRLineRecord.DemandCode; tryCalcViewRecord.SPECS = pRLineRecord.ItemInfo_ItemID_SPECS; if (pRLineRecord.BizType == BusinessTypeEnum.PM050.Value) { tryCalcViewRecord.ToPOQtyTBU = 0m; tryCalcViewRecord.TradeBaseUom = new long?(0L); tryCalcViewRecord.TradeBaseUom_Code = ""; tryCalcViewRecord.TradeBaseUom_Name = ""; tryCalcViewRecord.TradeBaseUOM_Round_Precision = new int?(0); tryCalcViewRecord.TradeBaseUOM_Round_RoundType = new int?(0); tryCalcViewRecord.TradeBaseUOM_Round_RoundValue = new int?(0); if (pRLineRecord.ItemInfo_ItemID_IsDualQuantity) { tryCalcViewRecord.ToPOQtyTU = current2.PurNum.Amount1; } else { tryCalcViewRecord.ToPOQtyTU = current2.PurNum.Amount1; } } else { tryCalcViewRecord.TradeBaseUom = pRLineRecord.TradeBaseUOM; tryCalcViewRecord.TradeBaseUom_Code = pRLineRecord.TradeBaseUOM_Code; tryCalcViewRecord.TradeBaseUom_Name = pRLineRecord.TradeBaseUOM_Name; tryCalcViewRecord.TradeBaseUOM_Round_Precision = new int?(pRLineRecord.TradeBaseUOM_Round_Precision); tryCalcViewRecord.TradeBaseUOM_Round_RoundType = new int?(pRLineRecord.TradeBaseUOM_Round_RoundType); tryCalcViewRecord.TradeBaseUOM_Round_RoundValue = pRLineRecord.TradeBaseUOM_Round_RoundValue; if (pRLineRecord.ItemInfo_ItemID_IsDualQuantity) { tryCalcViewRecord.ToPOQtyTBU = current2.PurNum.Amount2; tryCalcViewRecord.ToPOQtyTU = current2.PurNum.Amount1; } else { tryCalcViewRecord.ToPOQtyTBU = 0m; tryCalcViewRecord.ToPOQtyTU = current2.PurNum.Amount1; } } tryCalcViewRecord.BizType = pRLineRecord.BizType; tryCalcViewRecord.Supplier = new long?(current2.Supplier); tryCalcViewRecord.Supplier_Code = current2.SupplierCode; tryCalcViewRecord.Supplier_Name = current2.SupplierName; } } else { TryCalcViewRecord tryCalcViewRecord = listPRToPO.CurrentModel.TryCalcView.AddNewUIRecord(); tryCalcViewRecord.RFQStatus = pRLineRecord.RFQStatus; tryCalcViewRecord.RFQ_SrcDocNo = pRLineRecord.RFQInfo_SrcDocNo; tryCalcViewRecord.Currency = pRLineRecord.PR_AC; tryCalcViewRecord.PRDocNo = pRLineRecord.PR_DocNo; tryCalcViewRecord.LineEntityID = new long?(pRLineRecord.ID); tryCalcViewRecord.ItemCode = pRLineRecord.ItemInfo_ItemCode; tryCalcViewRecord.ItemID = pRLineRecord.ItemInfo_ItemID; tryCalcViewRecord.ItemName = pRLineRecord.ItemInfo_ItemName; tryCalcViewRecord.ItemIsDual = new bool?(pRLineRecord.ItemInfo_ItemID_IsDualQuantity); tryCalcViewRecord.PRDocLineNo = new long?((long)pRLineRecord.DocLineNo); tryCalcViewRecord.RequiredDeliveryDate = pRLineRecord.RequiredDeliveryDate; tryCalcViewRecord.DemandCode = pRLineRecord.DemandCode; tryCalcViewRecord.SPECS = pRLineRecord.ItemInfo_ItemID_SPECS; if (pRLineRecord.BizType == BusinessTypeEnum.PM050.Value) { tryCalcViewRecord.ToPOQtyTBU = 0m; tryCalcViewRecord.TradeBaseUom = new long?(0L); tryCalcViewRecord.TradeBaseUom_Code = ""; tryCalcViewRecord.TradeBaseUom_Name = ""; tryCalcViewRecord.TradeBaseUOM_Round_Precision = new int?(0); tryCalcViewRecord.TradeBaseUOM_Round_RoundType = new int?(0); tryCalcViewRecord.TradeBaseUOM_Round_RoundValue = new int?(0); } else { tryCalcViewRecord.TradeBaseUom = pRLineRecord.TradeBaseUOM; tryCalcViewRecord.TradeBaseUom_Code = pRLineRecord.TradeBaseUOM_Code; tryCalcViewRecord.TradeBaseUom_Name = pRLineRecord.TradeBaseUOM_Name; tryCalcViewRecord.TradeBaseUOM_Round_Precision = new int?(pRLineRecord.TradeBaseUOM_Round_Precision); tryCalcViewRecord.TradeBaseUOM_Round_RoundType = new int?(pRLineRecord.TradeBaseUOM_Round_RoundType); tryCalcViewRecord.TradeBaseUOM_Round_RoundValue = pRLineRecord.TradeBaseUOM_Round_RoundValue; tryCalcViewRecord.ToPOQtyTBU = pRLineRecord.ToPOQtyTBU; } tryCalcViewRecord.ToPOQtyTU = pRLineRecord.ToPOQtyTU; tryCalcViewRecord.TradeUom = pRLineRecord.TradeUOM; tryCalcViewRecord.TradeUom_Code = pRLineRecord.TradeUOM_Code; tryCalcViewRecord.TradeUom_Name = pRLineRecord.TradeUOM_Name; tryCalcViewRecord.TradeUOM_Round_Precision = new int?(pRLineRecord.TradeUOM_Round_Precision); tryCalcViewRecord.TradeUOM_Round_RoundType = new int?(pRLineRecord.TradeUOM_Round_RoundType); tryCalcViewRecord.TradeUOM_Round_RoundValue = pRLineRecord.TradeUOM_Round_RoundValue; tryCalcViewRecord.BizType = pRLineRecord.BizType; if (pRLineRecord.ItemInfo_ItemID_ItemFormAttribute == 16) { tryCalcViewRecord.IsMisc = new bool?(true); } else { tryCalcViewRecord.IsMisc = new bool?(false); } listPRToPO.SetErrorMsg(tryCalcViewRecord, "Supplier", string.Concat(new string[] { UFIDA.U9.SCM.PM.PRToPOUIModel.PRToPOUIModelRes.LineNum1, tryCalcViewRecord.PRDocLineNo.GetValueOrDefault().ToString(), UFIDA.U9.SCM.PM.PRToPOUIModel.PRToPOUIModelRes.LineNum2, UFIDA.U9.SCM.PM.PRToPOUIModel.PRToPOUIModelRes.ItemCode, tryCalcViewRecord.ItemCode, UFIDA.U9.SCM.PM.PRToPOUIModel.PRToPOUIModelRes.SupplierBeNull })); } } catch (Exception ex) { throw ex; } } } } } } string partId = "6b00deb4-fdb4-4a1d-9848-398735643139"; string parentTaskId = listPRToPO.CurrentPart.TaskId.ToString(); string width = "810"; string height = "465"; listPRToPO.CurrentState["PRToPO_SelectedPrLineIDs"] = text; listPRToPO.CurrentPart.ShowModalDialog(partId, UFIDA.U9.SCM.PM.PRToPOUIModel.PRToPOUIModelRes.TryCalc, width, height, parentTaskId, null, false, true); }
public void Notify(params object[] args) { if (args == null || args.Length == 0 || !(args[0] is UFSoft.UBF.Business.EntityEvent)) { return; } //将入口参数列表中第一个参数,转成EntityEvent,并取EntityKey存入key UFSoft.UBF.Business.BusinessEntity.EntityKey key = ((UFSoft.UBF.Business.EntityEvent)args[0]).EntityKey; //key的有效性判断 if (key == null) { return; } //转成所需实体,同时判断有效性 //UFIDA.U9.InvDoc.TransferIn.TransferIn transferIn = (UFIDA.U9.InvDoc.TransferIn.TransferIn)key.GetEntity(); UFIDA.U9.MO.Complete.CompleteRpt entity = (UFIDA.U9.MO.Complete.CompleteRpt)key.GetEntity(); if (entity == null) { return; } else { if (entity.Org.Code == "300") { try { //校验mes是否完工足够的数量 string DocNo = entity.DocNo; string result = ""; string content = HttpMethod.PostMethod("http://192.168.30.8:9090/MXQHService/common.asmx/DoBefore", GenPara("ExecPlan", "CompleteRpt", "GetQty", "{WorkOrder:'" + entity.MO.DocNo + "'}")); MesReturnData r = Newtonsoft.Json.JsonConvert.DeserializeObject <MesReturnData>(content); int CompleteQty = 0; if (r.data.Count == 0) { CompleteQty = 0; } else { CompleteQty = r.data[0].CompleteQty; } DataParamList dp = new DataParamList(); dp.Add(DataParamFactory.Create("DocNo", entity.MO.DocNo, ParameterDirection.Input, DbType.String, 50)); dp.Add(DataParamFactory.Create("CompleteQty", CompleteQty, ParameterDirection.Input, DbType.Int32, 64)); dp.Add(DataParamFactory.CreateOutput("Result", DbType.String)); DataAccessor.RunSP("sp_Auctus_BE_MOCompleteQtyAU", dp); result = dp["Result"].Value.ToString(); if (result != "1") { throw new Exception(result); } //流程触发到OA if (entity.DocState == UFIDA.U9.MO.Enums.CompleteRptStateEnum.Approving && entity.OriginalData.DocState == UFIDA.U9.MO.Enums.CompleteRptStateEnum.Opened && entity.DocType.DescFlexField.PrivateDescSeg1 == "1") { Dictionary <string, object> dicResult = new Dictionary <string, object>(); Dictionary <string, object> dicMain = new Dictionary <string, object>(); User user = User.Finder.FindByID(Context.LoginUserID);//U9用户信息 #region OA信息 BaseInfo baseInfo; if (entity.DescFlexField.PrivateDescSeg3 == "是")//驳回后提交 { baseInfo = Auctus.Common.Utils.GenerateOABaseInfo(user.Code, PubFunction.GetOAInfoByCode("10"), entity.ID.ToString(), 1, entity.DescFlexField.PrivateDescSeg2, 1, "完工报告:" + entity.DocNo); } else//非驳回提交 { baseInfo = Auctus.Common.Utils.GenerateOABaseInfo(user.Code, PubFunction.GetOAInfoByCode("10"), entity.ID.ToString(), 1, "", 1, "完工报告:" + entity.DocNo); } #endregion dicMain = GenerateMainInfo(entity, user.Code); dicResult.Add("base", baseInfo); dicResult.Add("main", dicMain); List <Dictionary <string, object> > li = new List <Dictionary <string, object> >(); li.Add(dicResult); string json = JsonHelper.GetJsonJS(li); Utils.LogError("完工报告JSON"); Utils.LogError(json); PubFunction pubFun = new PubFunction(); string OAFlowID = pubFun.OAService(json); //更新扩展字段:OA流程ID和是否驳回 string sql = string.Format("update MO_CompleteRpt set DescFlexField_PrivateDescSeg3='否',DescFlexField_PrivateDescSeg2='{0}' where ID={1}", OAFlowID, entity.ID); DataAccessor.RunSQL(DatabaseManager.GetCurrentConnection(), sql, null);//更新sql } } catch (Exception ex) { throw new Exception(ex.Message); } } } }
public void Notify(params object[] args) { if (args == null || args.Length == 0 || !(args[0] is UFSoft.UBF.Business.EntityEvent)) { return; } //将入口参数列表中第一个参数,转成EntityEvent,并取EntityKey存入key UFSoft.UBF.Business.BusinessEntity.EntityKey key = ((UFSoft.UBF.Business.EntityEvent)args[0]).EntityKey; //key的有效性判断 if (key == null) { return; } //转成所需实体,同时判断有效性 UFIDA.U9.InvDoc.MiscShip.MiscShipment miscShip = (UFIDA.U9.InvDoc.MiscShip.MiscShipment)key.GetEntity(); if (miscShip == null) { return; } else { if (miscShip.SysState == UFSoft.UBF.PL.Engine.ObjectState.Updated) { ILogger log = LoggerManager.GetLogger(typeof(CacheManager)); //单据从开立状态->审核中(提交审核操作),调用OA接口,创建审批流 if (miscShip.OriginalData.Status == INVDocStatus.Open && miscShip.Status == INVDocStatus.Approving && miscShip.DocType.DescFlexField.PrivateDescSeg1 == "1") { //查询OA的流程ID string sql = string.Format(@"SELECT DescFlexField_PrivateDescSeg4 AS IsOAtoU9 FROM dbo.InvDoc_MiscShip WHERE ID={0}", miscShip.ID); DataSet ds = new DataSet(); DataAccessor.RunSQL(DatabaseManager.GetCurrentConnection(), sql, null, out ds); string IsOAtoU9 = ""; foreach (DataRow row in ds.Tables[0].Rows) { IsOAtoU9 = row["IsOAtoU9"].ToString(); } if (IsOAtoU9 == "1")//OA触发到U9的杂发单,不触发U9到OA { return; } List <MishShipDoc> list = new List <MishShipDoc>(); //杂发单集合 MishShipDoc doc = new MishShipDoc(); //杂发单数据 BaseInfo baseInfo = new BaseInfo(); //OA上下文数据 ValueTrans vt = new ValueTrans(); User user = User.Finder.FindByID(Context.LoginUserID); vt.value = user.Code; vt.transrule = "getUseridByWorkcode"; #region 文基础信息 baseInfo.creator = vt; baseInfo.fpkid = miscShip.ID.ToString();//单据ID //baseInfo.isnextflow = 0; //baseInfo.requestid = "1025"; //baseInfo.requestlevel = 1; baseInfo.isnextflow = 1; baseInfo.requestname = "杂发单审批-订单号:" + miscShip.DocNo; //审批流标题 baseInfo.workflowid = PubFunction.GetMiscShipWorkFlow(); //固定值,取数逻辑看文档 //baseInfo.workflowid = "1025";//固定值,取数逻辑看文档 #endregion doc.@base = baseInfo; #region 表头信息 //表头信息 MishShipHeadDto main = new MishShipHeadDto(); Value v = new Value(); if (miscShip.DescFlexField.PrivateDescSeg3 != "") { //OA弃审后,U9重新提交流程,应该走更细OA流程接口 //if (miscShip.DescFlexField.PrivateDescSeg4 == "1") //{ v.value = miscShip.DescFlexField.PrivateDescSeg3; main.gllc = v; //main.requestid = miscShip.DescFlexField.PrivateDescSeg3; //requestid不为空,则为更新流程接口 //string sql = string.Format(@"UPDATE dbo.InvDoc_MiscShip SET DescFlexField_PrivateDescSeg4='0' WHERE ID = {0}", miscShip.ID); //DataAccessor.RunSQL(DatabaseManager.GetCurrentConnection(), sql, null); //} } //申请人 vt = new ValueTrans(); vt.value = user.Code; vt.transrule = "getUseridByWorkcode"; main.sqr = vt; //申请人工号 vt = new ValueTrans(); vt.value = user.Code; vt.transrule = "getWorkcodeByU9code"; main.sqrgh = vt; //申请人部门 vt = new ValueTrans(); vt.value = user.Code; vt.transrule = "getDeptidByWorkcode"; main.ssbm = vt; //申请人岗位 vt = new ValueTrans(); vt.value = user.Code; vt.transrule = "getJobidByWorkcode"; main.sqrgw = vt; //申请人分部 vt = new ValueTrans(); vt.value = user.Code; vt.transrule = "getSubcomidByWorkcode"; main.ssgs = vt; //申请日期 v = new Value(); v.value = DateTime.Now.ToString("yyyy-MM-dd"); main.sqrq = v; //流程编号lcbh //单据类型 v = new Value(); v.value = miscShip.DocType.Code; main.djlx = v; //单号 v = new Value(); v.value = miscShip.DocNo; main.dh = v; //存储地点 if (miscShip.MiscShipLs[0].Wh != null) { v = new Value(); v.value = miscShip.MiscShipLs[0].Wh.Name; main.ccdd = v; } //受益存储地点 if (miscShip.MiscShipLs[0].BenefitWh != null) { v.value = miscShip.MiscShipLs[0].BenefitWh.Name; main.syccdd = v; } //受益人 if (miscShip.BenefitPsn != null) { v = new Value(); v.value = miscShip.BenefitPsn.Name; main.syr = v; } //受益部门 if (miscShip.MiscShipLs[0].BenefitDept != null) { v = new Value(); v.value = miscShip.MiscShipLs[0].BenefitDept.Name; main.sybm = v; } //记账时间jzsj v = new Value(); v.value = miscShip.MiscShipAccountPeriods[0].SOBAccountPeriod.DisplayName; main.jzsj = v; //供应商gys if (miscShip.MiscShipLs[0].SupplierInfo != null) { v = new Value(); v.value = miscShip.MiscShipLs[0].SupplierInfo.Name; main.gys = v; } //客户kh if (miscShip.MiscShipLs[0].CustomerInfo != null) { v = new Value(); v.value = miscShip.MiscShipLs[0].CustomerInfo.Name; main.kh = v; } //库管员 if (miscShip.WhMan != null) { v = new Value(); v.value = miscShip.WhMan.Name; //vt.transrule = ""; main.kgy = v; } //高新项目gxxm v = new Value(); v.value = miscShip.DescFlexField.PrivateDescSeg1; main.gxxm = v; //研发项目yfxm v = new Value(); v.value = miscShip.DescFlexField.PrivateDescSeg2; main.yfxm = v; //U9组织 v = new Value(); v.value = miscShip.Org.ID.ToString(); //vt.transrule = "getUseridByWorkcode"; main.u9zz1 = v; //关联流程gllc #endregion doc.main = main; #region 行信息 //行信息 List <MishShipLineDto> lines = new List <MishShipLineDto>(); foreach (MiscShipmentL item in miscShip.MiscShipLs) { MishShipLineDto l = new MishShipLineDto(); //料号 v = new Value(); v.value = item.ItemInfo.ItemCode; l.lh = v; //品名 v = new Value(); v.value = item.ItemInfo.ItemName; l.pm = v; //存储地点 v = new Value(); v.value = item.Wh.Name; l.ccdd = v; //杂发量 v = new Value(); v.value = item.CostUOMQty.ToString("0.00"); l.zfl = v; //成本cb v = new Value(); v.value = item.CostMny.ToString("f4"); l.cb = v; //批号ph if (item.LotInfo != null) { v = new Value(); v.value = item.LotInfo.LotCode; l.ph = v; } //生产订单号scddh v = new Value(); v.value = item.MoDocNo; l.scddh = v; //生产相关scxg v = new Value(); if (item.IsMFG) { v.value = "1"; } else { v.value = "0"; } l.scxg = v; //零成本 v = new Value(); if (item.IsZeroCost) { v.value = "1"; } else { v.value = "0"; } l.lcb = v; //受益人 if (item.BenefitPsn != null) { v = new Value(); v.value = item.BenefitPsn.Name; //vt.transrule = "getUseridByWorkcode"; l.syr = v; } //受益部门 if (item.BenefitDept != null) { v = new Value(); v.value = item.BenefitDept.Name; //vt.transrule = "getDeptidByWorkcode"; l.sybm = v; } //供应商gys if (item.SupplierInfo != null) { v = new Value(); v.value = item.SupplierInfo.Name; l.gys = v; } //备注 v = new Value(); v.value = item.Memo; l.bz = v; lines.Add(l); } #endregion doc.dt1 = new List <MishShipLineDto>(); doc.dt1 = lines; //添加 list.Add(doc); string json = ""; json = JsonHelper.GetJson <List <MishShipDoc> >(list); log.Error("杂发单JSON数据为:" + json); PubFunction pubFun = new PubFunction(); //调用OA接口 string OAFlowID = pubFun.OAService(json); //更新返回的流程ID string UpSQL = string.Format(@"UPDATE dbo.InvDoc_MiscShip SET DescFlexField_PrivateDescSeg3='{0}' WHERE ID = {1}", OAFlowID, miscShip.ID.ToString()); DataAccessor.RunSQL(DatabaseManager.GetCurrentConnection(), UpSQL, null); log.Error("结束调用OA审批接口"); } //单据从已核准状态到开立(弃审操作) if (miscShip.OriginalData.Status == INVDocStatus.Approved && miscShip.Status == INVDocStatus.Open) { log.Error(miscShip.DocNo + "弃审了"); //if (miscShip.DocType.DescFlexField.PrivateDescSeg1 == "1")//继承OA流程的单据类型 //{ // string UpSQL = string.Format(@"UPDATE dbo.InvDoc_MiscShip SET DescFlexField_PrivateDescSeg4='1' WHERE ID = {0}", miscShip.ID); // DataAccessor.RunSQL(DatabaseManager.GetCurrentConnection(), UpSQL, null); //} bool IsNeedCreateOA = true; try { //300组织不允许“生产制损领料”弃审 if (miscShip.Org.Code == "300" && miscShip.MiscShipDocType.Name.Trim() == "生产制损领料") { //存储过程控制取消退料操作是否开启 DataParamList dpL = new DataParamList(); dpL.Add(DataParamFactory.Create("Type", "MiscShipBtnUnDoApprove", ParameterDirection.Input, DbType.String, 50));//禁用杂收单弃审功能 dpL.Add(DataParamFactory.CreateOutput("IsOpen", DbType.String)); DataAccessor.RunSP("sp_Auctus_BEPlugin_Control", dpL); string isOpen = dpL["IsOpen"].Value.ToString(); if (isOpen == "1") { DataParamList dp = new DataParamList(); dp.Add(DataParamFactory.Create("DocNo", miscShip.DocNo, ParameterDirection.Input, DbType.String, 50));//禁用杂收单弃审功能 dp.Add(DataParamFactory.CreateOutput("Result", DbType.String)); DataAccessor.RunSP("sp_Auctus_BE_MiscShip", dp); string result = dp["Result"].Value.ToString(); if (result != "1")//存在下游杂收单 { IsNeedCreateOA = false; throw new Exception(result); } else { IsNeedCreateOA = true; } } } if (IsNeedCreateOA)//需要发起OA弃审,调用删除OA流程接口 { //TODO:调用OA弃审接口 } } catch (Exception ex) { throw new Exception(ex.Message); } }//end if else if (miscShip.OriginalData.Status == INVDocStatus.Approving && miscShip.Status == INVDocStatus.Open) { log.Error(miscShip.DocNo + "从核准中变成了开立"); } } } }