예제 #1
0
 /// <summary>
 /// This method is used for fetching supplier purchase order bills from database. - JJ
 /// </summary>
 /// <param name="POID">ID OF PO</param>
 /// <returns>list of SPOReceivingBillAC</returns>
 public IList <SPOReceivingBillAC> GetSPOBill(int POId)
 {
     try
     {
         var poBill   = _poSupplierBillContext.Fetch(x => x.PurchaseOrderId == POId).ToList();
         var billList = new List <SPOReceivingBillAC>();
         foreach (var bill in poBill)
         {
             var spoBill = new SPOReceivingBillAC();
             spoBill.Amount               = bill.Amount;
             spoBill.BillComment          = bill.BillComment;
             spoBill.BillId               = bill.Id;
             spoBill.BillNumber           = bill.BillNumber;
             spoBill.Discount             = bill.Discount;
             spoBill.IsPaid               = bill.IsPaid;
             spoBill.IsPercentageDiscount = bill.IsPercentageDiscount;
             spoBill.IsVerified           = bill.IsVerified;
             spoBill.VerifiedDate         = bill.VerifiedDate;
             spoBill.TotalDaysLimit       = bill.TotalDaysLimit;
             billList.Add(spoBill);
         }
         return(billList);
     }
     catch (Exception ex)
     {
         _errorLog.LogException(ex);
         throw;
     }
 }
        /// <summary>
        /// This method is used for fetching supplier bill list from database. - JJ
        /// </summary>
        /// <param name="BranchId">id of BRANCH</param>
        /// <returns>list of objects of SPOReceivingBillAC</returns>
        public List <SPOReceivingBillAC> GetSupplierBillList(int?BranchId, bool isAllowForAllBranches)
        {
            var billList = new List <SPOReceivingBillAC>();
            List <POSupplierBill> spoBills;

            if (isAllowForAllBranches)
            {
                spoBills = _poSupplierBillContext.Fetch(x => !x.IsPaid && x.IsVerified && x.SupplierPurchaseOrder.IsVerified).ToList();
            }
            else
            {
                spoBills = _poSupplierBillContext.Fetch(x => !x.IsPaid && x.IsVerified && x.SupplierPurchaseOrder.IsVerified && x.SupplierPurchaseOrder.InitiationBranchId == BranchId).ToList();
            }
            bool isCash = false;

            foreach (var bill in spoBills)
            {
                if (bill.SupplierPurchaseOrder.SupplierProfile.SupplierType.ValueEn.Equals(StringConstants.Cash))
                {
                    isCash = true;
                }
                var supplierbill = new SPOReceivingBillAC
                {
                    Amount               = bill.Amount,
                    BillComment          = bill.BillComment,
                    BillId               = bill.Id,
                    BranchName           = bill.SupplierPurchaseOrder.InitiatorBranch.Name,
                    BillNumber           = bill.BillNumber,
                    Discount             = bill.Discount,
                    IsPaid               = bill.IsPaid,
                    IsPercentageDiscount = bill.IsPercentageDiscount,
                    IsVerified           = bill.IsVerified,
                    PurchaseOrderNo      = bill.SupplierPurchaseOrder.PurchaseOrderNumber,
                    SupplierId           = bill.SupplierPurchaseOrder.SupplierId,
                    SupplierName         = bill.SupplierPurchaseOrder.SupplierProfile.NameEn,
                    IsCashPO             = isCash,
                    TotalDaysLimit       = bill.TotalDaysLimit,
                    VerifiedDate         = bill.VerifiedDate,
                    SupplierType         = bill.SupplierPurchaseOrder.SupplierProfile.SupplierType.ValueEn
                };
                billList.Add(supplierbill);
            }
            return(billList);
        }
 public IHttpActionResult AddBill(SPOReceivingBillAC poSupplierBill)
 {
     try
     {
         if (HttpContext.Current.User.Identity.IsAuthenticated)
         {
             var Id = _spoReceivingContext.AddSupplierBill(poSupplierBill, poSupplierBill.PurchaseOrderId);
             return(Ok(new { Id = Id }));
         }
         else
         {
             return(BadRequest());
         }
     }
     catch (Exception ex)
     {
         _errorLog.LogException(ex);
         throw;
     }
 }
예제 #4
0
        /// <summary>
        /// This method is used for adding supplier purchase order bill. -JJ
        /// </summary>
        /// <param name="PurchaseOrderId">ID OF PO</param>
        /// <param name="POSupplierBill">object of POSupplierBill</param>
        /// <returns>status</returns>
        public int AddSupplierBill(SPOReceivingBillAC POSupplierBill, int PurchaseOrderId)
        {
            try
            {
                var  count       = 0;
                var  totalDays   = 0;
                bool isBillFound = true;
                var  bill        = new POSupplierBill();
                //edit method
                if (POSupplierBill.BillId > 0)
                {
                    bill = _poSupplierBillContext.Find(POSupplierBill.BillId);
                    if (bill != null)
                    {
                        var spo = _supplierPOContext.Find(PurchaseOrderId);
                        spo.IsReceived       = false;
                        spo.IsVerified       = false;
                        spo.ModifiedDateTime = DateTime.UtcNow;
                        _supplierPOContext.Update(spo);
                        _supplierPOContext.SaveChanges();

                        bill.Amount               = POSupplierBill.Amount;
                        bill.BillComment          = POSupplierBill.BillComment;
                        bill.BillNumber           = POSupplierBill.BillNumber;
                        bill.ModifiedDateTime     = DateTime.UtcNow;
                        bill.Discount             = POSupplierBill.Discount;
                        bill.PresentDiscount      = POSupplierBill.Discount;
                        bill.IsPaid               = POSupplierBill.IsPaid;
                        bill.IsPercentageDiscount = POSupplierBill.IsPercentageDiscount;
                        bill.IsVerified           = POSupplierBill.IsVerified;
                        bill.PurchaseOrderId      = PurchaseOrderId;
                        bill.VerifiedDate         = POSupplierBill.VerifiedDate;
                        bill.TotalDaysLimit       = POSupplierBill.TotalDaysLimit;
                        _poSupplierBillContext.Update(bill);
                        _poSupplierBillContext.SaveChanges();
                    }
                    else
                    {
                        isBillFound = false;
                    }
                }
                //add method
                else
                {
                    bill.Amount               = POSupplierBill.Amount;
                    bill.BillComment          = POSupplierBill.BillComment;
                    bill.BillNumber           = POSupplierBill.BillNumber;
                    bill.CreatedDateTime      = DateTime.UtcNow;
                    bill.Discount             = POSupplierBill.Discount;
                    bill.PresentDiscount      = POSupplierBill.Discount;
                    bill.IsPaid               = POSupplierBill.IsPaid;
                    bill.IsPercentageDiscount = POSupplierBill.IsPercentageDiscount;
                    bill.IsVerified           = POSupplierBill.IsVerified;
                    bill.PurchaseOrderId      = PurchaseOrderId;
                    bill.VerifiedDate         = POSupplierBill.VerifiedDate;
                    bill.TotalDaysLimit       = POSupplierBill.TotalDaysLimit;
                    _poSupplierBillContext.Add(bill);
                    _poSupplierBillContext.SaveChanges();
                }

                var poItems = _purchaseOrderItemContext.Fetch(x => x.PurchaseOrderId == PurchaseOrderId).ToList();
                foreach (var item in poItems)
                {
                    item.SPOReceivingStatus = SPOReceivingStatus.NotReceived;
                    item.ModifiedDateTime   = DateTime.UtcNow;
                    _purchaseOrderItemContext.Update(item);
                    _purchaseOrderItemContext.SaveChanges();
                }

                if (isBillFound && bill.TotalDaysLimit > 0 && bill.IsPercentageDiscount && POSupplierBill.Days > 0)
                {
                    totalDays = totalDays + POSupplierBill.Days;
                    count     = 1;
                }
                if (count == 0)
                {
                    var spoBill = _poSupplierBillContext.Find(bill.Id);
                    spoBill.TotalDaysLimit   = 0;
                    spoBill.ModifiedDateTime = DateTime.UtcNow;
                    _poSupplierBillContext.Update(spoBill);
                    _poSupplierBillContext.SaveChanges();
                }
                if (isBillFound)
                {
                    return(bill.Id);
                }
                else
                {
                    return(0);
                }
            }
            catch (Exception ex)
            {
                _errorLog.LogException(ex);
                throw;
            }
        }