Exemplo n.º 1
0
        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
                }));
            }
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
 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();
     }
 }
Exemplo n.º 5
0
 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("金方子客户代码为空");
     }
 }
Exemplo n.º 6
0
        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);
        }