public List <MergeRefund> PackingRefund(List <Refund> refundList) { List <MergeRefund> mergeRefundList = new List <SAPBOneCommon.MergeRefund.MergeRefund>(); foreach (var item in refundList) { MergeRefund mergeRefund = new MergeRefund(); mergeRefund.DocEntry = item.DocEntry; mergeRefund.BusinessType = item.BusinessType; mergeRefund.CardCode = item.CardCode; mergeRefund.DocType = item.DocType; mergeRefund.Freight = item.Freight; mergeRefund.GrossRefund = item.GrossRefund; mergeRefund.OMSDocDate = item.OMSDocDate; mergeRefund.PlatformCode = item.PlatformCode; mergeRefund.RefundReason = item.RefundReason; mergeRefund.RefundType = item.RefundType; mergeRefund.PayMethod = item.PayMethod; mergeRefund.Refunds.Add(new OriginRefund() { DocEntry = item.DocEntry }); foreach (var line in item.RefundItems) { MergeRefundItem mergeRefundItem = new MergeRefundItem(); mergeRefundItem.ItemCode = line.ItemCode; mergeRefundItem.Quantity = line.Quantity; mergeRefundItem.Price = line.Price; mergeRefundItem.ItemRefund = line.ItemRefund; mergeRefund.MergeRefundItems.Add(mergeRefundItem); } mergeRefundList.Add(mergeRefund); } return(mergeRefundList); }
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); }