Esempio n. 1
0
        private string GetShortName(string businessType, string refundType, string refundReason, string itemCode, string cardCode)
        {
            switch (businessType)
            {
            case "TS":
            case "AS":
                if (refundType == "N")
                {
                    return(cardCode);
                }
                else
                {
                    return(BOneCommon.GetAccountByRefundReason(refundReason));
                }

            case "CS":
            case "SP":
                return(BOneCommon.GetShortNameByItemCode(itemCode));

            case "AR":
                return(BOneCommon.GetAccountByItemCode(itemCode));

            default:
                throw new Exception($"业务类型[{businessType}]错误,无法处理。");
            }
        }
Esempio n. 2
0
        public static Result CreateJournalEntry(MergeSalesOrder salesOrder)
        {
            Result result = new Result();

            SAPbobsCOM.JournalEntries myJE = SAP.SAPCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oJournalEntries);
            myJE.ReferenceDate = salesOrder.OMSDocDate;
            myJE.UserFields.Fields.Item("U_DocType").Value      = salesOrder.DocType;
            myJE.UserFields.Fields.Item("U_BusinessType").Value = salesOrder.BusinessType;
            myJE.UserFields.Fields.Item("U_PlatformCode").Value = salesOrder.PlatformCode;
            myJE.UserFields.Fields.Item("U_CardCode").Value     = salesOrder.CardCode;
            foreach (var item in salesOrder.MergeSalesOrderItems)
            {
                Tuple <string, string> Accout = BOneCommon.GetAccountByPayMethod(salesOrder.PayMethod);
                myJE.Lines.AccountCode = Accout.Item1;
                myJE.Lines.ShortName   = Accout.Item2;
                myJE.Lines.Debit       = Convert.ToDouble(salesOrder.OrderPaied);
                myJE.Lines.UserFields.Fields.Item("U_PayMethod").Value = salesOrder.PayMethod;
                myJE.Lines.Add();

                if (salesOrder.Freight != 0)
                {
                    myJE.Lines.AccountCode = Accout.Item1;
                    myJE.Lines.ShortName   = Accout.Item2;
                    myJE.Lines.Debit       = Convert.ToDouble(salesOrder.Freight);
                    myJE.Lines.UserFields.Fields.Item("U_PayMethod").Value = salesOrder.PayMethod;
                    myJE.Lines.Add();

                    myJE.Lines.AccountCode = "224101";
                    myJE.Lines.ShortName   = "224101";
                    myJE.Lines.Credit      = Convert.ToDouble(salesOrder.Freight);
                    myJE.Lines.Add();
                }


                myJE.Lines.AccountCode = GetAccountCode(salesOrder.BusinessType, item.ItemCode);
                myJE.Lines.ShortName   = GetShortName(salesOrder.BusinessType, item.ItemCode, salesOrder.CardCode);
                myJE.Lines.Credit      = Convert.ToDouble(salesOrder.OrderPaied);
                myJE.Lines.UserFields.Fields.Item("U_ItemCode").Value = item.ItemCode;
                myJE.Lines.UserFields.Fields.Item("U_Quantity").Value = Convert.ToDouble(item.Quantity);
                myJE.Lines.UserFields.Fields.Item("U_RefDate").Value  = salesOrder.OMSDocDate;
                myJE.Lines.Add();
            }

            int rtCode = myJE.Add();

            if (rtCode != 0)
            {
                result.ResultCode = SAP.SAPCompany.GetLastErrorCode();
                result.Message    = SAP.SAPCompany.GetLastErrorDescription();
            }
            else
            {
                result.ResultCode = 0;
                result.ObjCode    = SAP.SAPCompany.GetNewObjectKey();
                result.Message    = "Create JournalEntry Successfully.";
            }
            return(result);
        }
        /// <summary>
        /// 生成采购收货单
        /// </summary>
        /// <param name="purchaseOrder"></param>
        /// <returns></returns>
        private Result CreatePurchaseOrder(PurchaseOrder purchaseOrder)
        {
            int DocEntry = default(int);

            if (BOneCommon.IsExistDocument("OPDN", purchaseOrder.OMSDocEntry, out DocEntry))
            {
                return new Result()
                       {
                           ResultCode = 0, ObjCode = DocEntry.ToString(), Message = "has been successfully created documents."
                       }
            }
            ;
            Result result = new Result();

            SAPbobsCOM.Documents myDocument = SAP.SAPCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oPurchaseDeliveryNotes);
            myDocument.CardCode = purchaseOrder.CardCode;
            myDocument.DocDate  = purchaseOrder.OMSDocDate;

            myDocument.UserFields.Fields.Item("U_OMSDocEntry").Value = purchaseOrder.OMSDocEntry;
            myDocument.UserFields.Fields.Item("U_BatchNum").Value    = purchaseOrder.BatchNum;
            myDocument.Comments = purchaseOrder.Comments;
            foreach (var item in purchaseOrder.PurchaseOrderItems)
            {
                myDocument.Lines.UserFields.Fields.Item("U_OMSDocEntry").Value = item.OMSDocEntry;

                myDocument.Lines.UserFields.Fields.Item("U_OMSLineNum").Value = item.OMSLineNum;
                myDocument.Lines.ItemCode      = item.ItemCode;
                myDocument.Lines.Quantity      = Convert.ToDouble(item.Quantity);
                myDocument.Lines.PriceAfterVAT = Convert.ToDouble(item.Price);
                var vatGroup = BOneCommon.GetVatGroupbyItemCode(item.ItemCode);
                myDocument.Lines.VatGroup = vatGroup.Item1;
                myDocument.Lines.Add();
            }
            int rt = myDocument.Add();

            if (rt != 0)
            {
                result.ResultCode = -1;
                result.Message    = SAP.SAPCompany.GetLastErrorDescription();
            }
            else
            {
                result.ResultCode = 0;
                result.ObjCode    = SAP.SAPCompany.GetNewObjectKey();
                result.Message    = "create purchaseOrder successful.";
            }
            return(result);
        }
Esempio n. 4
0
        public Result CreateOrUpdateMaterial(Material material)
        {
            Result result = new Result();

            SAPbobsCOM.Items myItem = SAP.SAPCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oItems);

            ///检查物料是否创建
            bool IsExist = myItem.GetByKey(material.ItemCode);

            myItem.ItemCode         = material.ItemCode;
            myItem.ItemName         = material.ItemName;
            myItem.SalesVATGroup    = material.VatGourpSa;
            myItem.PurchaseVATGroup = material.VatGourpPu;
            myItem.UserFields.Fields.Item("U_InitialCost").Value = Convert.ToDouble(material.InitialCost);
            myItem.UserFields.Fields.Item("U_RealCost").Value    = Convert.ToDouble(material.InitialCost);
            myItem.UserFields.Fields.Item("U_SalesPrice").Value  = Convert.ToDouble(material.SalesPrice);
            myItem.InventoryItem = DataConvertEx.GetSAPValue(material.InvntItem);
            myItem.UserFields.Fields.Item("U_Consignment").Value = material.Consignment;
            myItem.UserFields.Fields.Item("U_Vendor").Value      = material.Vendor;
            //myItem.PrchseItem = 'Y';
            //myItem.SellItem = 'Y';
            myItem.ItemsGroupCode = BOneCommon.GetItemGroupCodeByOMSGroupNum(material.OMSGroupNum);

            int ResultCode = 0;

            if (IsExist)
            {
                ResultCode = myItem.Update();
            }
            else
            {
                ResultCode = myItem.Add();
            }

            if (ResultCode != 0)
            {
                result.ResultCode = -1;
                result.ObjCode    = material.ItemCode;
                result.Message    = SAP.SAPCompany.GetLastErrorDescription();
            }
            else
            {
                result.ResultCode = 0;
                result.ObjCode    = material.ItemCode;
                result.Message    = "Saved or Updated successfully.";
            }
            return(result);
        }
Esempio n. 5
0
        public static Result CreateInvoice(MergeSalesOrder salesOrder)
        {
            Result result = new Result();

            SAPbobsCOM.Documents myDocuments = SAP.SAPCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oInvoices);
            myDocuments.DocDate    = salesOrder.OMSDocDate;
            myDocuments.DocDueDate = salesOrder.OMSDocDate;
            myDocuments.TaxDate    = salesOrder.OMSDocDate;
            myDocuments.UserFields.Fields.Item("U_DocType").Value      = salesOrder.DocType;
            myDocuments.UserFields.Fields.Item("U_BusinessType").Value = salesOrder.BusinessType;
            myDocuments.UserFields.Fields.Item("U_PlatformCode").Value = salesOrder.PlatformCode;
            myDocuments.CardCode = salesOrder.CardCode;

            foreach (var item in salesOrder.MergeSalesOrderItems)
            {
                myDocuments.Lines.ItemCode = item.ItemCode;
                if (salesOrder.DocType == "S01")
                {
                    myDocuments.Lines.Quantity = Convert.ToDouble(item.Quantity);
                }
                else
                {
                    myDocuments.Lines.Quantity = -Convert.ToDouble(item.Quantity);
                }

                myDocuments.Lines.VatGroup      = BOneCommon.GetVatGroupbyItemCode(item.ItemCode).Item2;
                myDocuments.Lines.PriceAfterVAT = Convert.ToDouble(item.ItemPaied) / myDocuments.Lines.Quantity;

                myDocuments.Lines.Add();
            }

            int rtCode = myDocuments.Add();

            if (rtCode != 0)
            {
                result.ResultCode = -1;
                result.Message    = SAP.SAPCompany.GetLastErrorDescription();
            }
            else
            {
                result.ResultCode = 0;
                result.ObjCode    = SAP.SAPCompany.GetNewObjectKey();
                result.Message    = "Create Invoice Successfully.";
            }


            return(result);
        }
        /// <summary>
        /// 生成库存收货
        /// </summary>
        /// <param name="purchaseOrder"></param>
        /// <returns></returns>
        private Result CreateGoodsReceipts(PurchaseOrder purchaseOrder)
        {
            int DocEntry = default(int);

            if (BOneCommon.IsExistDocument("OIGN", purchaseOrder.OMSDocEntry, out DocEntry))
            {
                return new Result()
                       {
                           ResultCode = 0, ObjCode = DocEntry.ToString(), Message = "has been successfully created document."
                       }
            }
            ;
            Result result = new Result();

            SAPbobsCOM.Documents myDocument = SAP.SAPCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oInventoryGenEntry);
            myDocument.CardCode = purchaseOrder.CardCode;
            myDocument.DocDate  = purchaseOrder.OMSDocDate;
            myDocument.UserFields.Fields.Item("U_OMSDocEntry").Value  = purchaseOrder.OMSDocEntry;
            myDocument.UserFields.Fields.Item("U_BatchNum").Value     = purchaseOrder.BatchNum;
            myDocument.UserFields.Fields.Item("U_InvnTrnsType").Value = purchaseOrder.BusinessType;
            myDocument.Comments = purchaseOrder.Comments;
            foreach (var item in purchaseOrder.PurchaseOrderItems)
            {
                myDocument.Lines.UserFields.Fields.Item("U_OMSDocEntry").Value = item.OMSDocEntry;

                myDocument.Lines.UserFields.Fields.Item("U_OMSLineNum").Value = item.OMSLineNum;
                myDocument.Lines.ItemCode      = item.ItemCode;
                myDocument.Lines.Quantity      = Convert.ToDouble(item.Quantity);
                myDocument.Lines.PriceAfterVAT = Convert.ToDouble(item.Price);
                myDocument.Lines.AccountCode   = BOneCommon.GetAccCodeByBusinessType(purchaseOrder.BusinessType);
                myDocument.Lines.Add();
            }
            int rt = myDocument.Add();

            if (rt != 0)
            {
                result.ResultCode = -1;
                result.Message    = SAP.SAPCompany.GetLastErrorDescription();
            }
            else
            {
                result.ResultCode = 0;
                result.ObjCode    = SAP.SAPCompany.GetNewObjectKey();
                result.Message    = "create document successful.";
            }
            return(result);
        }
Esempio n. 7
0
        private static string GetAccountCode(string businessType, string itemCode)
        {
            switch (businessType)
            {
            case "TS":
            case "AS":
                return("112201");

            case "CS":
            case "SP":
            case "AR":
                return(BOneCommon.GetAccountByItemCode(itemCode));

            default:
                throw new Exception($"业务类型[{businessType}]错误,无法处理。");
            }
        }
Esempio n. 8
0
        public Result CreateOrUpdateCustomer(BusinessPartner businessPartner)
        {
            Result result = new Result();

            SAPbobsCOM.BusinessPartners myBusinessPartner = SAP.SAPCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oBusinessPartners);

            bool isExist = myBusinessPartner.GetByKey(businessPartner.CardCode);

            myBusinessPartner.CardCode = businessPartner.CardCode;
            myBusinessPartner.CardName = businessPartner.CardName;
            myBusinessPartner.UserFields.Fields.Item("U_PlatformCode").Value = businessPartner.PlatformCode;
            myBusinessPartner.CardType  = DataConvertEx.GetCardTypeByPlatformCode(businessPartner.PlatformCode.Substring(0, 1));
            myBusinessPartner.GroupCode = BOneCommon.GetCustomerGroupCodeByPlateformCode(businessPartner.PlatformCode);
            int rtCode = 0;

            if (isExist)
            {
                rtCode = myBusinessPartner.Update();
            }
            else
            {
                rtCode = myBusinessPartner.Add();
            }

            if (rtCode != 0)
            {
                result.ResultCode = -1;
                result.ObjCode    = businessPartner.CardCode;
                result.Message    = SAP.SAPCompany.GetLastErrorDescription();
            }
            else
            {
                result.ResultCode = 0;
                result.ObjCode    = businessPartner.CardCode;
                result.Message    = "Updated or saved customer successfully.";
            }
            return(result);
        }
Esempio n. 9
0
        public Result CreateJournalEntry(MergeRefund refund)
        {
            Result result = new Result();

            SAPbobsCOM.JournalEntries JE = SAP.SAPCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oJournalEntries);
            string refundType            = BOneCommon.GetRefundReason(refund.RefundReason);

            JE.ReferenceDate = refund.OMSDocDate;
            JE.UserFields.Fields.Item("U_DocType").Value      = refund.DocType;
            JE.UserFields.Fields.Item("U_BusinessType").Value = refund.BusinessType;
            JE.UserFields.Fields.Item("U_PlatformCode").Value = refund.PlatformCode;
            JE.UserFields.Fields.Item("U_CardCode").Value     = refund.CardCode;
            JE.UserFields.Fields.Item("U_RefundReason").Value = refund.RefundReason;
            JE.UserFields.Fields.Item("U_RefundType").Value   = refund.RefundType;



            Tuple <string, string> tuple = BOneCommon.GetAccountByPayMethod(refund.PayMethod);

            JE.Lines.AccountCode = tuple.Item1;
            JE.Lines.ShortName   = tuple.Item2;
            JE.Lines.UserFields.Fields.Item("U_PayMethod").Value = refund.PayMethod;
            if (refundType == "N")
            {
                JE.Lines.Debit = Convert.ToDouble(refund.GrossRefund);
            }
            else
            {
                JE.Lines.Credit = Convert.ToDouble(refund.GrossRefund);
            }
            JE.Lines.Add();
            foreach (var item in refund.MergeRefundItems)
            {
                JE.Lines.AccountCode = GetAccountCode(refund.BusinessType, refundType, refund.RefundReason, item.ItemCode);
                JE.Lines.ShortName   = GetShortName(refund.BusinessType, refundType, refund.RefundReason, item.ItemCode, refund.CardCode);
                JE.Lines.UserFields.Fields.Item("U_ItemCode").Value = item.ItemCode;
                JE.Lines.UserFields.Fields.Item("U_Quantity").Value = item.Quantity;
                JE.Lines.UserFields.Fields.Item("U_RefDate").Value  = refund.OMSDocDate;
                if (refundType == "N")
                {
                    JE.Lines.Credit = Convert.ToDouble(item.ItemRefund);
                }
                else
                {
                    JE.Lines.Debit = Convert.ToDouble(item.ItemRefund);
                }
                JE.Lines.Add();
            }
            int rtCode = JE.Add();

            if (rtCode != 0)
            {
                result.ResultCode = -1;
                result.Message    = SAP.SAPCompany.GetLastErrorDescription();
            }
            else
            {
                result.ResultCode = 0;
                result.ObjCode    = SAP.SAPCompany.GetNewObjectKey();
                result.Message    = "create JE document successfully.";
            }

            return(result);
        }