コード例 #1
0
        /// <summary>
        /// This method is used to issue credit note. - JJ
        /// </summary>
        /// <param name="SupplierReturnId">Id of SupplierReturnDetail</param>
        /// <param name="BranchId"></param>
        /// <param name="Comment"></param>
        /// <param name="CompanyId"></param>
        /// <returns>status</returns>
        public bool IssueCreditNote(int SupplierReturnId, int?BranchId, int CompanyId, string Comment)
        {
            try
            {
                var supplierReturnItem     = _supplierReturnItemContext.Fetch(x => x.SupplierReturnId == SupplierReturnId).ToList();
                var amount                 = 0M;
                var supplierReturnDetailId = 0;
                foreach (var item in supplierReturnItem)
                {
                    supplierReturnDetailId = item.SupplierReturnId;
                    amount = amount + (item.CostPrice * item.ReturnQuantity);
                }
                var creditNoteDetail = new CreditNoteDetail
                {
                    Amount            = amount,
                    BranchId          = BranchId,
                    CreatedDateTime   = DateTime.UtcNow,
                    InitiationComment = Comment,
                    InitiationDate    = DateTime.UtcNow,
                    IsCollected       = false,
                    TypeId            = _paramTypeContext.FirstOrDefault(x => x.ValueEn == StringConstants.SupplierReturnNote).Id,
                    CreditNoteNo      = CreditNoteNumberGenerator(CompanyId)
                };
                _creditNoteDetailContext.Add(creditNoteDetail);
                _creditNoteDetailContext.SaveChanges();

                foreach (var item in supplierReturnItem)
                {
                    var creditNoteItem = new CreditNoteItem
                    {
                        CostPrice       = item.CostPrice,
                        CreatedDateTime = DateTime.UtcNow,
                        CreditNoteId    = creditNoteDetail.Id,
                        ItemId          = item.ItemId,
                        Quantity        = item.ReturnQuantity,
                    };
                    _creditNoteItemContext.Add(creditNoteItem);
                    _creditNoteItemContext.SaveChanges();
                }

                var supoplierReturnCreditNote = new SupplierReturnCreditNote
                {
                    CreatedDateTime = DateTime.UtcNow,
                    CreditNoteId    = creditNoteDetail.Id,
                    SuppierReturnId = supplierReturnDetailId
                };
                _supplierReturnCreditNoteContext.Add(supoplierReturnCreditNote);
                _supplierReturnCreditNoteContext.SaveChanges();
                return(true);
            }
            catch (Exception ex)
            {
                _errorLog.LogException(ex);
                throw;
            }
        }
コード例 #2
0
 /// <summary>
 /// This method used for add credit notes item. -An
 /// </summary>
 /// <param name="creditNoteItems"></param>
 /// <returns></returns>
 public int AddCreditNotesItem(CreditNoteItem creditNoteItems)
 {
     try
     {
         _iCreditNoteItemContext.Add(creditNoteItems);
         _iCreditNoteItemContext.SaveChanges();
         return(creditNoteItems.Id);
     }
     catch (Exception ex)
     {
         _errorLog.LogException(ex);
         throw;
     }
 }