public JsonResult SubmitOrder2SAp(string orderGuid) { OM_B1InfomationDTO b1Information = UserService.UpdateSalesOrderStatusByToSAP(Cipher, orderGuid); if (b1Information.GSCode == 200 && b1Information.JFZCode == 200) { return(Json(new OrderManager.Web.Models.JsonModel { Data = string.Format("{0},{1}", b1Information.GSMessage, b1Information.JFZMessage), Code = 0, Type = "对接成功" })); } else { return(Json(new OrderManager.Web.Models.JsonModel { Data = string.Format("{0},{1}", b1Information.GSMessage, b1Information.JFZMessage), Code = -2 })); } }
public OM_B1InfomationDTO UpdateSalesOrderStatusByToSAP(string orderGuid) { OM_B1InfomationDTO b1Infomation = null; try { var salesOrder = this.GetSalesOrder(s => s.Guid == orderGuid); if (salesOrder == null) { throw new GenericException("当前订单不存在,请检查数据"); } OM_SalesOrderDataObject salesOrderDataObject = salesOrder.ToDTO(); salesOrderDataObject.SalesOrderLine = this.GetSalesOrderItemList(s => s.Order_Guid == orderGuid).ToList(); if (salesOrderDataObject.SalesOrderLine == null) { throw new GenericException("当前订单行不存在,请检查数据"); } //对接SAP实现 b1Infomation = SaveForSAP(salesOrderDataObject); if (b1Infomation.JFZStatus == OMDocStatus.Commit || b1Infomation.GSStatus == OMDocStatus.Commit) { if (b1Infomation.GSCode == 200 && b1Infomation.JFZCode == 200) { salesOrder.DocStatus = ((int)OM_DocStatusEnum.已对接).ToString(); if (DbRepository.Update(salesOrder) > 0) { LogHelper.Info("Start Update SalesOrder scuess"); return(b1Infomation); } } } } catch (Exception ex) { b1Infomation = new OM_B1InfomationDTO(); b1Infomation.IsException = true; b1Infomation.ExceptionMessage = ex.ToString(); LogHelper.Error(ex.ToString()); //throw new GenericException(ex.ToString()); } return(b1Infomation); }
public OM_B1InfomationDTO UpdateSalesOrderStatusByToSAP(string cipher, string orderGuid) { OM_B1InfomationDTO b1Information = orderManger.UpdateSalesOrderStatusByToSAP(orderGuid); if (b1Information.GSCode == 200 && b1Information.JFZCode == 200) { var user = userManager.GetUser(s => s.Guid == cipher); var order = orderManger.GetSalesOrder(s => s.Guid == orderGuid); var log = new OM_Log { CreateDatetime = DateTime.Now, Doc_View = "Order/UpdateStatus", Guid = Guid.NewGuid().ToString(), Operation = "对接订单到SAP", User_Guid = user.Guid, Message = string.Format("用户[{0}] : '{1}' 对接订单【{2}】到SAP.", user.Name, DateTime.Now, order.DocEntry) }; logManager.WriteLog(log); return(b1Information); } return(b1Information); }
public bool SaveSalesOrderDraft(OM_SalesOrderDataObject salesOrder, OM_B1InfomationDTO b1Informaion) { if (!this.Connect()) { return(false); } SAPbobsCOM.Recordset oRs = CurrentCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset); LogHelper.Info(string.Format("GSCompany via script is: select * from ODRF where ObjType='17' and Address2='{0}'", salesOrder.Guid)); oRs.DoQuery(string.Format("select * from ODRF where ObjType='17' and Address2='{0}'", salesOrder.Guid)); if (oRs.RecordCount > 0) { b1Informaion.GSCode = 200; b1Informaion.GSStatus = OMDocStatus.Commit; b1Informaion.JFZMessage = string.Format("This Order-{0}-{1} has commit to SAP", salesOrder.Guid, oRs.Fields.Item("DocEntry").Value); LogHelper.Info(string.Format("JFZCompnay Document has exist, and the DocEntry={0},DocNum={1}", oRs.Fields.Item("DocEntry").Value, oRs.Fields.Item("DocNum").Value)); return(true); } SAPbobsCOM.Documents oSaleOrder = CurrentCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oDrafts); try { oSaleOrder.Address2 = salesOrder.Guid; oSaleOrder.CardCode = salesOrder.CardCode; oSaleOrder.CardName = salesOrder.CardName; oSaleOrder.Comments = "营销远程平台对接生成"; if (salesOrder.DocDate == null) { oSaleOrder.DocDate = DateTime.Now; oSaleOrder.DocDueDate = DateTime.Now; } else if (salesOrder.DocDueDate == null) { oSaleOrder.DocDueDate = DateTime.Now; } else { oSaleOrder.DocDate = (DateTime)salesOrder.DocDate; oSaleOrder.DocDueDate = (DateTime)salesOrder.DocDueDate; } oSaleOrder.DocObjectCode = SAPbobsCOM.BoObjectTypes.oOrders; foreach (var item in salesOrder.SalesOrderLine) { oSaleOrder.Lines.ItemCode = item.ItemCode; oSaleOrder.Lines.ItemDescription = item.ItemName; oSaleOrder.Lines.Quantity = Convert.ToDouble(item.Quantity); oSaleOrder.Lines.Price = Convert.ToDouble(item.InnerPrice); oSaleOrder.Lines.Add(); } if (oSaleOrder.Add() == 0) { b1Informaion.GSCode = 200; b1Informaion.GSStatus = OMDocStatus.Commit; b1Informaion.GSMessage = (string.Format("高山药业:{0},订单号:{1}对接成功,update ", salesOrder.CardCode, salesOrder.DocEntry)); LogHelper.Info(string.Format("高山药业:{0},订单号:{1}对接成功,update ", salesOrder.CardCode, salesOrder.DocEntry)); return(true); } b1Informaion.GSCode = -1; b1Informaion.GSStatus = OMDocStatus.Unchange; b1Informaion.GSMessage = string.Format("GSSalseOrderAdd----Error Code:{0}----Error Descride:{1}", _Company.GetLastErrorCode().ToString(), _Company.GetLastErrorDescription()); LogHelper.Error(string.Format("SalseOrderAdd----Error Code:{0}----Error Descride:{1}", _Company.GetLastErrorCode().ToString(), _Company.GetLastErrorDescription())); return(false); } catch (Exception ex) { b1Informaion.GSCode = -1; b1Informaion.GSStatus = OMDocStatus.Unchange; b1Informaion.GSMessage = string.Format("SalseOrderAdd----Error Code:{0}----Error Descride:{1}", _Company.GetLastErrorCode().ToString(), _Company.GetLastErrorDescription()); LogHelper.Error(string.Format("SalseOrderAdd----Error Code:{0}----Error Descride:{1}", _Company.GetLastErrorCode().ToString(), _Company.GetLastErrorDescription())); return(false); } finally { DisConnect(); } }
public bool SaveSalesOrderDraftToJFZ(OM_SalesOrderDataObject salesOrder, OM_B1InfomationDTO b1Informaion) { if (!this.JFZConnect()) { return(false); } SAPbobsCOM.Recordset oRs = jFZCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset); oRs.DoQuery(string.Format("select * from ODRF where ObjType='17' and Address2='{0}'", salesOrder.Guid)); if (oRs.RecordCount > 0) { b1Informaion.JFZCode = 200; b1Informaion.JFZStatus = OMDocStatus.Commit; b1Informaion.JFZMessage = string.Format("This order hac commit to SAP"); LogHelper.Info(string.Format("JFZCompnay Document has exist, and the DocEntry={0},DocNum={1}", oRs.Fields.Item("DocEntry").Value, oRs.Fields.Item("DocNum").Value)); return(true); } oRs.DoQuery(string.Format("select top 1 CardCode from OCRD where CardName='{0}'", salesOrder.CardName.Trim())); if (oRs.RecordCount > 0) { SAPbobsCOM.Documents oSaleOrder = JFZCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oDrafts); try { oSaleOrder.Address = salesOrder.Guid; oSaleOrder.CardCode = oRs.Fields.Item("CardCode").Value; oSaleOrder.CardName = salesOrder.CardName; oSaleOrder.Comments = "营销远程平台对接生成"; if (salesOrder.DocDate == null) { oSaleOrder.DocDate = DateTime.Now; } else if (salesOrder.DocDueDate == null) { oSaleOrder.DocDueDate = DateTime.Now; } else { oSaleOrder.DocDate = (DateTime)salesOrder.DocDate; oSaleOrder.DocDueDate = (DateTime)salesOrder.DocDueDate; } oSaleOrder.DocObjectCode = SAPbobsCOM.BoObjectTypes.oOrders; foreach (var item in salesOrder.SalesOrderLine) { oSaleOrder.Lines.ItemCode = item.ItemCode; oSaleOrder.Lines.ItemDescription = item.ItemName; oSaleOrder.Lines.Quantity = Convert.ToDouble(item.Quantity); oSaleOrder.Lines.Price = Convert.ToDouble(item.InnerPrice); oSaleOrder.Lines.Add(); //LogHelper.Info(string.Format("the OsaleOrderLine Detail ItemCode={0},ItemName={1},Quantity={2},Price={3}", item.ItemCode.ToString(), item.ItemName, item.Quantity, item.Price)); } //LogHelper.Info(string.Format("the OsaleOrder Detail CardeCode={0},CardName={1},DocDate={2},DocDueDate={3}", oSaleOrder.CardCode.ToString(), oSaleOrder.CardName, oSaleOrder.DocDate.ToString("yyyyMMdd"), oSaleOrder.DocDueDate.ToString("yyyyMMdd"))); if (oSaleOrder.Add() == 0) { b1Informaion.JFZCode = 200; b1Informaion.JFZStatus = OMDocStatus.Commit; b1Informaion.JFZMessage = string.Format("金方子:{0},订单号:{1}对接成功", salesOrder.CardCode, salesOrder.DocEntry); LogHelper.Info(string.Format("金方子:{0},订单号:{1}对接成功", salesOrder.CardCode, salesOrder.DocEntry)); return(true); } b1Informaion.JFZCode = -1; b1Informaion.JFZStatus = OMDocStatus.Unchange; b1Informaion.JFZMessage = string.Format("SalseOrderAdd----Error Code:{0}----Error Descride:{1}", JFZCompany.GetLastErrorCode().ToString(), JFZCompany.GetLastErrorDescription()); LogHelper.Error(string.Format("SalseOrderAdd----Error Code:{0}----Error Descride:{1}", JFZCompany.GetLastErrorCode().ToString(), JFZCompany.GetLastErrorDescription())); return(false); } catch (Exception ex) { b1Informaion.JFZCode = -1; b1Informaion.JFZStatus = OMDocStatus.Unchange; b1Informaion.JFZMessage = string.Format("SalseOrderAdd----Error Code:{0}----Error Descride:{1}", JFZCompany.GetLastErrorCode().ToString(), JFZCompany.GetLastErrorDescription()); LogHelper.Error(string.Format("SalseOrderAdd----Error Code:{0}----Error Descride:{1}", JFZCompany.GetLastErrorCode().ToString(), JFZCompany.GetLastErrorDescription())); return(false); } finally { JFZDisConnect(); } } else { LogHelper.Error("金方子客户代码为空"); throw new GenericException("金方子客户代码为空"); } }
private OM_B1InfomationDTO SaveForSAP(OM_SalesOrderDataObject salesOrder) { bool gsResult = false; bool jfzResult = false; OM_B1InfomationDTO b1Informaion = new OM_B1InfomationDTO(); OM_SalesOrderDataObject GSSalesOrder = new OM_SalesOrderDataObject(); GSSalesOrder.Guid = salesOrder.Guid; GSSalesOrder.DocEntry = salesOrder.DocEntry; GSSalesOrder.CardCode = salesOrder.CardCode; GSSalesOrder.CardName = salesOrder.CardName; GSSalesOrder.DocDate = salesOrder.DocDate; GSSalesOrder.DocDueDate = salesOrder.DocDueDate; OM_SalesOrderDataObject JFZSalesOrder = new OM_SalesOrderDataObject(); JFZSalesOrder.Guid = salesOrder.Guid; JFZSalesOrder.DocEntry = salesOrder.DocEntry; JFZSalesOrder.CardCode = salesOrder.CardCode; JFZSalesOrder.CardName = salesOrder.CardName; JFZSalesOrder.DocDate = salesOrder.DocDate; JFZSalesOrder.DocDueDate = salesOrder.DocDueDate; foreach (var item in salesOrder.SalesOrderLine) { var pruduct = GetProduct(c => c.ItemCode == item.ItemCode); if (pruduct.GroupType == "0") { GSSalesOrder.SalesOrderLine.Add(item); } else { JFZSalesOrder.SalesOrderLine.Add(item); } } if (GSSalesOrder.SalesOrderLine.Count <= 0) { b1Informaion.GSCode = 200; b1Informaion.GSStatus = OMDocStatus.Unchange; b1Informaion.GSMessage = "高山药业行数据为0,不允许添加"; LogHelper.Error("GSCompany's salesline is zero"); gsResult = true; } else { gsResult = B1Company.SBOCompany.SaveSalesOrderDraft(GSSalesOrder, b1Informaion); } if (JFZSalesOrder.SalesOrderLine.Count <= 0) { b1Informaion.JFZCode = 200; b1Informaion.JFZStatus = OMDocStatus.Unchange; b1Informaion.JFZMessage = "金方子行数据为0,不允许添加"; LogHelper.Error("JFZCompany's salesline is zero"); jfzResult = true; } else { LogHelper.Info("JFZCompany' has Start"); LogHelper.Info(string.Format("JFZSalesOrder.SalesOrderLine.Count is :" + JFZSalesOrder.SalesOrderLine.Count.ToString())); jfzResult = B1Company.SBOCompany.SaveSalesOrderDraftToJFZ(JFZSalesOrder, b1Informaion); } if (gsResult & jfzResult) { B1Company.SBOCompany.Dispose(); return(b1Informaion); } return(b1Informaion); }