Example #1
0
        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);
        }
Example #2
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);
        }