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}]错误,无法处理。"); } }
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); }
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); }
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); }
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}]错误,无法处理。"); } }
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); }
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); }