Exemple #1
0
        private static int?GetTotalPendingAdjustmentQtyForStock(string itemNo, List <AdjustmentVoucher> aVList)
        {
            int?           qty     = 0;
            LussisEntities context = new LussisEntities();

            // If no Pending Vouchers found
            if (aVList.Count == 0)
            {
                // Return 0
                return(qty);
            }
            else
            {
                // For each Pending Voucher
                for (int i = 0; i < aVList.Count; i++)
                {
                    List <AdjustmentVoucherDetail> aVDList = aVList[i].AdjustmentVoucherDetails.ToList <AdjustmentVoucherDetail>();

                    // For each VoucherDetail
                    for (int j = 0; j < aVDList.Count; j++)
                    {
                        // Add to Qty if itemNo matches
                        AdjustmentVoucherDetail aVD = aVDList[j];
                        if (aVD.ItemNo.Equals(itemNo))
                        {
                            qty += aVD.Qty;
                        }
                    }
                }
                return(qty);
            }
        }
Exemple #2
0
        public JsonResult UpdateReason(int adjdId, string reason, int adjId)
        {
            AdjustmentVoucher adj = new AdjustmentVoucher();

            if (TempData["AdjustQty"] == null)
            {
                adj = AdjustmentVoucherService.Instance.getAdjustmentVoucherById(adjId);
            }
            else if (TempData["AdjustQty"] != null)
            {
                adj = (AdjustmentVoucher)TempData["AdjustQty"];
                TempData.Keep("AdjustQty");
            }
            if (adj.Id == adjId)
            {
                if (adj.AdjustmentVoucherDetails.Where(x => x.Id == adjdId).Count() <= 0)
                {
                    AdjustmentVoucherDetail newadjd = AdjustmentVoucherService.Instance.getAdjustmentVoucherDetailById(adjdId);
                    adj.AdjustmentVoucherDetails.Add(newadjd);
                }
                adj.AdjustmentVoucherDetails.Single(x => x.Id == adjdId).Reason = reason;

                TempData["AdjustQty"] = adj;
            }

            return(Json(true, JsonRequestBehavior.AllowGet));
        }
Exemple #3
0
        public void AutoAdjustmentsForRetrieval(int clerkEmployeeId, List <RetrievalItemDTO> retrievalList)
        {
            AdjustmentVoucher openAV = adjustmentVoucherRepo.FindOneBy(x => x.EmployeeId == clerkEmployeeId && x.Status == "Open");

            foreach (var item in retrievalList)
            {
                if (item.NeededQuantity > item.RetrievedQty) //retrieval short of needed
                {
                    if (openAV == null)                      //no open AV for this clerk
                    {
                        //open new AV
                        openAV = new AdjustmentVoucher {
                            Date = DateTime.Now, EmployeeId = clerkEmployeeId, Status = AdjustmentVoucherStatus.Open.ToString()
                        };
                        //persist in DB
                        openAV = adjustmentVoucherRepo.Create(openAV);
                    }
                    //create adjustment voucher detail
                    int adjustmentQty = item.RetrievedQty - item.NeededQuantity;
                    AdjustmentVoucherDetail newAVD = new AdjustmentVoucherDetail {
                        AdjustmentVoucherId = openAV.Id, DateTime = DateTime.Now,
                        Quantity            = adjustmentQty,
                        Reason       = AdjustmentVoucherDefaultReasons.RETRIEVAL_SHORTAGE.ToString(),
                        StationeryId = item.StationeryId
                    };
                    adjustmentVoucherDetailRepo.Create(newAVD);
                }
            }
        }
Exemple #4
0
        public static void approveVoucherDetailItemsByManager(List <AdjustmentVoucherDetail> list)
        {
            UniversityStoreEntities CONTEXT = new UniversityStoreEntities();

            foreach (AdjustmentVoucherDetail detail in list)
            {
                var query = from x in CONTEXT.AdjustmentVoucherDetails
                            where x.VoucherNumber == detail.VoucherNumber && detail.ItemNumber == x.ItemNumber && x.ApprovalStatus == detail.ApprovalStatus
                            select x;

                AdjustmentVoucherDetail voucherDetailObject = query.First();
                int qnty = Convert.ToInt32(voucherDetailObject.Quantity);
                voucherDetailObject.ApprovalStatus = APPROVAL_STATUS_APPROVED;
                var q = from x in CONTEXT.Products
                        where x.ItemNumber == detail.ItemNumber
                        select x;
                Product prod = q.First <Product>();
                if (voucherDetailObject.Status == STATUS_INCREASE)
                {
                    ProductDAO.UpdateStock(prod.ItemNumber, qnty);
                }
                else
                {
                    ProductDAO.UpdateStockReduce(prod.ItemNumber, qnty);
                }

                CONTEXT.SaveChanges();
            }
        }
        public static void makeNewAdjustmentVoucher(List <MakeAdjustmentItem> adjustmentList)
        {
            AdjustmentVoucher adjustmentVoucher = new AdjustmentVoucher();

            adjustmentVoucher.DateCreated = DateTime.Now;
            EntityCollection <AdjustmentVoucherDetail> voucherDetailsCollection = new EntityCollection <AdjustmentVoucherDetail>();

            foreach (MakeAdjustmentItem item in adjustmentList)
            {
                Product p                   = ProductDAO.getSearchProductbyid(item.ItemNumber);
                double  totalPrice          = (double)p.AdjustmentVoucherPrice * item.Quantity;
                AdjustmentVoucherDetail avd = new AdjustmentVoucherDetail();
                avd.ItemNumber     = item.ItemNumber;
                avd.Status         = item.Status.Equals("Excess") ? AdjustmentVoucherEFFacade.STATUS_DECREASE : AdjustmentVoucherEFFacade.STATUS_INCREASE;
                avd.TotalPrice     = totalPrice;
                avd.Comment        = item.Comment;
                avd.ApprovalStatus = AdjustmentVoucherEFFacade.APPROVAL_STATUS_PENDING;
                avd.Quantity       = item.Quantity;

                voucherDetailsCollection.Add(avd);
            }

            adjustmentVoucher.AdjustmentVoucherDetails = voucherDetailsCollection;

            AdjustmentVoucherEFFacade.addNewAdjustVoucherWithArrayVoucherDetails(adjustmentVoucher);
        }
Exemple #6
0
        public static void DeleteAVD(int aVNo, string itemNo)
        {
            LussisEntities          context = new LussisEntities();
            AdjustmentVoucherDetail aVD     = context.AdjustmentVoucherDetails.Where(x => x.AvNo == aVNo && x.ItemNo.Equals(itemNo)).FirstOrDefault();

            context.AdjustmentVoucherDetails.Remove(aVD);
            context.SaveChanges();
        }
Exemple #7
0
        public static void UpdateAVDetailQty(int aVNo, string itemNo, int qty, string reason)
        {
            LussisEntities          context = new LussisEntities();
            AdjustmentVoucherDetail aVD     = context.AdjustmentVoucherDetails.Where(x => x.AvNo == aVNo && x.ItemNo.Equals(itemNo)).FirstOrDefault();

            aVD.Qty    = qty;
            aVD.Reason = reason;
            context.SaveChanges();
        }
        public async Task <IList <AdjustmentVocherInfo> > issueVoucher(StockAdjustSumById voc)
        {
            IList <AdjustmentVocherInfo> list = await getAllAdjustDetailLineByAdjustId(voc);

            List <AdjustmentVocherInfo> voucherResult = new List <AdjustmentVocherInfo>();

            Employee empObj = unitOfWork
                              .GetRepository <Employee>()
                              .GetAllIncludeIQueryable(filter: x => x.Id == voc.empId).FirstOrDefault();


            AdjustmentVoucher adjVoc = new AdjustmentVoucher()
            {
                StockAdjustmentId = voc.stockAdustmentId,
                EmployeeId        = voc.empId,
                Employee          = empObj,
                date = DateTime.Now
            };

            unitOfWork.GetRepository <AdjustmentVoucher>().Insert(adjVoc);
            unitOfWork.SaveChanges();


            foreach (AdjustmentVocherInfo eachInfo in list)
            {
                StockAdjustmentDetail stkDetail = unitOfWork
                                                  .GetRepository <StockAdjustmentDetail>()
                                                  .GetAllIncludeIQueryable(filter: x => x.Id == eachInfo.stockAdustmentDetailId).FirstOrDefault();

                if (stkDetail != null)
                {
                    stkDetail.Status = "Approved";
                    unitOfWork.GetRepository <StockAdjustmentDetail>().Update(stkDetail);
                    unitOfWork.SaveChanges();
                }


                AdjustmentVoucherDetail vocDetail = new AdjustmentVoucherDetail()
                {
                    adjustmentVoucherId     = adjVoc.Id,
                    StockAdjustmentDetailId = eachInfo.stockAdustmentDetailId,
                    price  = eachInfo.amount,
                    reason = eachInfo.reason,
                };
                unitOfWork.GetRepository <AdjustmentVoucherDetail>().Insert(vocDetail);
                unitOfWork.SaveChanges();

                AdjustmentVocherInfo obj = await getEachVoucherDetail(eachInfo);

                if (obj != null)
                {
                    voucherResult.Add(obj);
                }
            }

            return(voucherResult);
        }
        // create new adjustmentvoucher detail
        public void createNewAdjustmentVoucherDetail(AdjustmentVoucher adjustmentVoucher, int stationeryId, int quantity)
        {
            AdjustmentVoucherDetail aVD = new AdjustmentVoucherDetail();

            aVD.AdjustmentVoucherId = adjustmentVoucher.Id;
            aVD.StationeryId        = stationeryId;
            aVD.Quantity            = quantity;
            aVD.DateTime            = System.DateTime.Now;
            aVD = adjustmentVoucherDetailRepo.Create(aVD);
        }
Exemple #10
0
        public void DeleteAdvDetails(AdjustmentVoucherDetail avd)
        {
            AdjustmentVoucherDetail original = dbcontext.AdjustmentVoucherDetails.FirstOrDefault(m => m.Id == avd.Id);

            if (original != null)
            {
                dbcontext.AdjustmentVoucherDetails.Remove(original);
            }
            dbcontext.SaveChanges();
        }
Exemple #11
0
        private AdjustmentVoucherDetail generateVoucherDetail(AdjustmentVoucherDTO adjdDTO)
        {
            AdjustmentVoucherDetail newVoucherDetail = new AdjustmentVoucherDetail();

            newVoucherDetail.AdjustmentVoucherId = adjdDTO.adjustmentVoucher.Id;
            newVoucherDetail.StationeryId        = adjdDTO.StationeryId;
            newVoucherDetail.Quantity            = adjdDTO.Quantity;
            newVoucherDetail.Reason   = adjdDTO.Reason;
            newVoucherDetail.DateTime = DateTime.Now;
            return(newVoucherDetail);
        }
Exemple #12
0
        //public static DateTime getDate(int VoucherNo)
        //{
        //    var q2 = from x in CONTEXT.AdjustmentVouchers
        //             where x.VoucherNumber == VoucherNo
        //             select x;



        //    DateTime av =(DateTime) q2.First<AdjustmentVoucher>().DateCreated;
        //    return av;

        public static void deleteAdjustmentVoucherDetail(int voucherNo)
        {
            UniversityStoreEntities CONTEXT = new UniversityStoreEntities();
            var a = from x in CONTEXT.AdjustmentVoucherDetails
                    where x.VoucherNumber == voucherNo
                    select x;

            AdjustmentVoucherDetail d = a.First <AdjustmentVoucherDetail>();

            CONTEXT.DeleteObject(d);
            CONTEXT.SaveChanges();
        }
Exemple #13
0
        public static void SubmitAdjustmentVoucher(string itemNo, DateTime dateIssued, int qty, string reason, int issueEmpNo)
        {
            AdjustmentVoucher       aV;
            AdjustmentVoucherDetail aVD;

            LussisEntities context = new LussisEntities();

            using (var txn = new TransactionScope())
            {
                // Create AdjustmentVoucher
                aV            = new AdjustmentVoucher();
                aV.DateIssued = dateIssued;
                aV.IssueEmpNo = issueEmpNo;
                aV.Status     = "Pending";
                context.AdjustmentVouchers.Add(aV);
                context.SaveChanges();

                // Create AdjustmentVoucherDetails
                aVD        = new AdjustmentVoucherDetail();
                aVD.AvNo   = aV.AvNo;
                aVD.ItemNo = itemNo;
                aVD.Qty    = qty;
                aVD.Reason = reason;
                context.AdjustmentVoucherDetails.Add(aVD);
                context.SaveChanges();

                txn.Complete();
            }

            // Send Email
            var supplier1Code = context.StationeryCatalogues.Where(x => x.ItemNo.Equals(itemNo)).FirstOrDefault().Supplier1;
            var unitPrice     = context.SupplyTenders.Where(x => x.ItemNo.Equals(itemNo) && x.SupplierCode.Equals(supplier1Code)).FirstOrDefault().UnitPrice;
            var price         = qty * unitPrice;

            Employee recipient;

            if (price >= 250)
            {
                recipient = context.StoreAssignments.Where(x => x.Role.Equals("Manager")).FirstOrDefault().Employee;
            }
            else
            {
                recipient = context.StoreAssignments.Where(x => x.Role.Equals("Supervisor")).FirstOrDefault().Employee;
            }

            string recipientEmail = recipient.Email;
            string emailSubject   = EmailTemplate.GenerateAdjustmentVoucherSubject();
            string emailContent   = EmailTemplate.GenerateAdjustmentVoucherEmail(recipient.EmpName, aV.AvNo);

            EmailBackend.sendEmailStep(recipientEmail, emailSubject, emailContent);
        }
        public static void approveVoucherDetailItemsByManager(List <AdjustmentVoucherDetail> list)
        {
            UniversityStoreEntities context = new UniversityStoreEntities();

            foreach (AdjustmentVoucherDetail detail in list)
            {
                var query = from x in context.AdjustmentVoucherDetails
                            where x.VoucherNumber == detail.VoucherNumber && detail.ItemNumber == x.ItemNumber && x.ApprovalStatus == detail.ApprovalStatus
                            select x;

                AdjustmentVoucherDetail voucherDetailObject = query.First();
                voucherDetailObject.ApprovalStatus = APPROVAL_STATUS_APPROVED;

                context.SaveChanges();
            }
        }
Exemple #15
0
 protected void AVNO()
 {
     using (Model1 entities = new Model1())
     {
         try
         {
             AdjustmentVoucherDetail num = entities.AdjustmentVoucherDetails.OrderByDescending(p => p.AVnumber).First <AdjustmentVoucherDetail>();
             AVnum = num.AVnumber + 1;
         }
         catch (Exception EX)
         {
             AVnum = 1;
         }
         TextBox4.Text = AVnum.ToString();
     }
 }
Exemple #16
0
 public static void AddAdjustmentVoucherDetails(int AVnumber, string ItemCode, string Description, int Qty, double Price, string Reason, string status)
 {
     using (Model1 entities = new Model1())
     {
         AdjustmentVoucherDetail AdjustmentVoucherDetail = new AdjustmentVoucherDetail
         {
             AVnumber    = AVnumber,
             ItemCode    = ItemCode,
             Description = Description,
             Qty         = Qty,
             Price       = Price,
             Reason      = Reason,
             Status      = status
         };
         entities.AdjustmentVoucherDetails.Add(AdjustmentVoucherDetail);
         entities.SaveChanges();
     }
 }
Exemple #17
0
        public JsonResult Remove(int adjdId)
        {
            AdjustmentVoucher adj = new AdjustmentVoucher();

            if (TempData["AdjustQty"] != null)
            {
                adj = (AdjustmentVoucher)TempData["AdjustQty"];
                TempData.Keep("AdjustQty");

                adj.AdjustmentVoucherDetails.Remove(adj.AdjustmentVoucherDetails.Single(x => x.Id == adjdId));

                TempData["AdjustQty"] = adj;
            }

            AdjustmentVoucherDetail adjd = AdjustmentVoucherService.Instance.getAdjustmentVoucherDetailById(adjdId);

            AdjustmentVoucherService.Instance.DeleteAdjustmentVoucherDetail(adjd);

            return(Json(true, JsonRequestBehavior.AllowGet));
        }
Exemple #18
0
        public ActionResult SubmitVoucher(AdjustmentVoucherDTO adjDTO)
        {
            if (Session["existinguser"] != null)
            {
                LoginDTO currentUser = (LoginDTO)Session["existinguser"];
                if (currentUser.RoleId != (int)Enums.Roles.StoreClerk)
                {
                    return(RedirectToAction("RedirectToClerkOrDepartmentView", "Login"));
                }
                if (ModelState.IsValid)
                {
                    AdjustmentVoucher updatedVoucher = AdjustmentVoucherService.Instance.getAdjustmentVoucherById(adjDTO.adjustmentVoucher.Id);
                    if (TempData["AdjustQty"] != null)
                    {
                        AdjustmentVoucher AdjustQtyDTO = (AdjustmentVoucher)TempData["AdjustQty"];
                        TempData.Keep("AdjustQty");

                        //update POdetails deliveredQty
                        foreach (var detail in AdjustQtyDTO.AdjustmentVoucherDetails)
                        {
                            AdjustmentVoucherDetail oldVoucherDetail = updatedVoucher.AdjustmentVoucherDetails.Single(x => x.Id == detail.Id);

                            oldVoucherDetail.Quantity = detail.Quantity;
                            oldVoucherDetail.Reason   = detail.Reason;

                            //AdjustmentVoucherService.Instance.UpdateAdjustmentVoucherDetail(oldVoucherDetail);
                        }
                    }
                    updatedVoucher.Status = Enum.GetName(typeof(Enums.AdjustmentVoucherStatus), Enums.AdjustmentVoucherStatus.Submitted);
                    updatedVoucher.Date   = DateTime.Now;
                    AdjustmentVoucherService.Instance.UpdateAdjustmentVoucher(updatedVoucher);
                    TempData["AdjustQty"] = null;

                    return(RedirectToAction("Index"));
                }
                return(View(adjDTO));
            }
            return(RedirectToAction("Index", "Login"));
        }
        public async Task <AdjustmentVocherInfo> getEachVoucherDetail(AdjustmentVocherInfo info)
        {
            AdjustmentVoucherDetail vocDetail = unitOfWork
                                                .GetRepository <AdjustmentVoucherDetail>()
                                                .GetAllIncludeIQueryable(filter: x => x.StockAdjustmentDetailId == info.stockAdustmentDetailId).FirstOrDefault();

            if (vocDetail != null)
            {
                Employee empObj = unitOfWork
                                  .GetRepository <Employee>()
                                  .GetAllIncludeIQueryable(filter: x => x.Id == info.empId).FirstOrDefault();


                AdjustmentVoucher voc = unitOfWork
                                        .GetRepository <AdjustmentVoucher>()
                                        .GetAllIncludeIQueryable(filter: x => x.Id == vocDetail.adjustmentVoucherId).FirstOrDefault();

                if (voc != null && empObj != null)
                {
                    AdjustmentVocherInfo obj = new AdjustmentVocherInfo()
                    {
                        vocNo = voc.Id,
                        stockAdustmentDetailId = vocDetail.Id,
                        stockAdustmentId       = voc.StockAdjustmentId,
                        empId    = voc.EmployeeId,
                        date     = voc.date,
                        reason   = vocDetail.reason,
                        empName  = empObj.name,
                        itemCode = info.itemCode,
                        quantity = info.quantity,
                        amount   = vocDetail.price
                    };
                    return(obj);
                }
            }

            return(null);
        }
        public static void approveVoucherDetailItemsBySupervisor(List <AdjustmentVoucherDetail> list)
        {
            UniversityStoreEntities context = new UniversityStoreEntities();

            foreach (AdjustmentVoucherDetail detail in list)
            {
                var query = from x in context.AdjustmentVoucherDetails
                            where x.VoucherNumber == detail.VoucherNumber && detail.ItemNumber == x.ItemNumber && x.ApprovalStatus == detail.ApprovalStatus
                            select x;

                AdjustmentVoucherDetail voucherDetailObject = query.First();
                voucherDetailObject.ApprovalStatus = APPROVAL_STATUS_APPROVED;

                context.SaveChanges();
            }

            //foreach (AdjustmentVoucherDetail detail in itemsApproved)
            //{
            //    AdjustmentVoucherDetail d = context.AdjustmentVoucherDetails.Where(x => x.VoucherNumber == detail.VoucherNumber).First();
            //    d.ApprovalStatus = APPROVAL_STATUS_APPROVED;
            //    context.SaveChanges();
            //}
        }
Exemple #21
0
        public ActionResult Create(AdjustmentVoucherDTO adjDTO)
        {
            if (Session["existinguser"] != null)
            {
                LoginDTO currentUser = (LoginDTO)Session["existinguser"];
                if (currentUser.RoleId != (int)Enums.Roles.StoreClerk)
                {
                    return(RedirectToAction("RedirectToClerkOrDepartmentView", "Login"));
                }
                if (ModelState.IsValid)
                {
                    int clerkId = currentUser.EmployeeId;
                    adjDTO.adjustmentVoucher = new AdjustmentVoucher();

                    AdjustmentVoucher existVoucher = AdjustmentVoucherService.Instance.getOpenAdjustmentVoucherByClerk(clerkId);
                    if (existVoucher != null)
                    {
                        adjDTO.adjustmentVoucher.Id = existVoucher.Id;
                    }
                    else
                    {
                        AdjustmentVoucher newVoucher = this.generateVoucher(adjDTO);
                        AdjustmentVoucherService.Instance.CreateAdjustmentVoucher(newVoucher);
                        adjDTO.adjustmentVoucher.Id = newVoucher.Id;
                    }
                    AdjustmentVoucherDetail newVoucherDetail = this.generateVoucherDetail(adjDTO);
                    AdjustmentVoucherService.Instance.CreateAdjustmentVoucherDetail(newVoucherDetail);

                    adjDTO.adjustmentVoucher = AdjustmentVoucherService.Instance.getAdjustmentVoucherById(adjDTO.adjustmentVoucher.Id);
                    //return RedirectToAction("Index");
                }

                adjDTO.Stationeries = StationeryService.Instance.GetAllStationeries();
                return(RedirectToAction("Detail", "AdjustmentVoucher", new { @adjId = adjDTO.adjustmentVoucher.Id }));
            }
            return(RedirectToAction("Index", "Login"));
        }
        /**added by lee
         * */
        public static void makeNewAdjustmentVoucher(AdjustmentItemWCF[] adjustmentList)
        {
            AdjustmentVoucher adjustmentVoucher = new AdjustmentVoucher();

            adjustmentVoucher.DateCreated = DateTime.Now;
            EntityCollection <AdjustmentVoucherDetail> voucherDetailsCollection = new EntityCollection <AdjustmentVoucherDetail>();

            foreach (AdjustmentItemWCF item in adjustmentList)
            {
                AdjustmentVoucherDetail avd = new AdjustmentVoucherDetail();
                avd.ItemNumber     = item.ItemNumber;
                avd.Status         = item.Status.Equals("reduce") ? AdjustmentVoucherEFFacade.STATUS_DECREASE : AdjustmentVoucherEFFacade.STATUS_INCREASE;
                avd.TotalPrice     = item.TotalPrice;
                avd.Comment        = item.Comment;
                avd.ApprovalStatus = AdjustmentVoucherEFFacade.APPROVAL_STATUS_PENDING;
                avd.Quantity       = item.Quantity;

                voucherDetailsCollection.Add(avd);
            }

            adjustmentVoucher.AdjustmentVoucherDetails = voucherDetailsCollection;

            AdjustmentVoucherEFFacade.addNewAdjustVoucherWithArrayVoucherDetails(adjustmentVoucher);
        }
Exemple #23
0
 public void AddAdvDetail(AdjustmentVoucherDetail avd)
 {
     dbcontext.AdjustmentVoucherDetails.Add(avd);
     dbcontext.SaveChanges();
 }
Exemple #24
0
 public void CreateAdjustmentVoucherDetail(AdjustmentVoucherDetail adjdetail)
 {
     adjustmentVoucherDetailRepo.Create(adjdetail);
 }
Exemple #25
0
 public void UpdateAdjustmentVoucherDetail(AdjustmentVoucherDetail adjdetail)
 {
     adjustmentVoucherDetailRepo.Update(adjdetail);
 }
Exemple #26
0
 public void DeleteAdjustmentVoucherDetail(AdjustmentVoucherDetail adjdetail)
 {
     adjustmentVoucherDetailRepo.Delete(adjdetail);
 }