public int RemoveRetrievalDetail(int id)
        {
            RetrievalDetail retrievalDetail = context.RetrievalDetails.Where(x => x.RetrievalId == id).First();

            context.RetrievalDetails.Remove(retrievalDetail);
            return(context.SaveChanges());
        }
        /// <summary>
        /// Submit
        /// </summary>
        /// <param name="retDetailList">RetrievalDetail List (RetID, ItemID, ActualQty)</param>
        /// <returns></returns>
        public bool submit(List <RetrievalDetail> retDetailList)
        {
            bool result = true;

            foreach (RetrievalDetail retDetail in retDetailList)
            {
                //update actual quantity of retrieval detail
                RetrievalDetail retDetailSearch = ctx.RetrievalDetail.Where(x => x.RetID == retDetail.RetID && x.ItemID == retDetail.ItemID).FirstOrDefault();
                retDetailSearch.ActualQty = retDetail.ActualQty;
            }

            //update status of retrieval to "Retrieved"
            int       retid = (int)retDetailList.First().RetID;
            Retrieval ret   = ctx.Retrieval.Where(x => x.RetID == retid).FirstOrDefault();

            ret.Status = "RETRIEVED";

            try
            {
                ctx.SaveChanges();
            }
            catch
            {
                result = false;
            }

            return(result);
        }
        //for new Retrieval Detail  --- 4
        public int UpdateRetDetRaiseSAV(int retrId, string itemCode, int qtyRetrieved, int raiseSAVQty, string reason, int storeClerkId)
        {
            try
            {
                //update qty retrieved
                RetrievalDetail rd = FindRetrDetByRetrIdAndItemCode(itemCode, retrId);
                rd.QuantityRetrieved = qtyRetrieved;
                UpdateRetrDet(rd);

                if (raiseSAVQty != 0)
                {
                    //update RetDet status
                    rd.Remark = raiseSAVQty + " " + reason;
                    UpdateRetrDet(rd);

                    //raise SAV
                    StockAdjustment stkAdjustment = new StockAdjustment();
                    stkAdjustment.ItemCode         = itemCode;
                    stkAdjustment.QuantityAdjusted = raiseSAVQty;
                    stkAdjustment.Reason           = reason;
                    stkAdjustment.DateCreated      = DateTime.Today;
                    stkAdjustment.ClerkEmployeeId  = storeClerkId;
                    if (stkAdjBz.AddAdjustment(stkAdjustment, "In Progress") == 0)
                    {
                        return(0);
                    }
                }
                return(1);
            }
            catch (Exception e)
            {
                return(0);
            }
        }
        /// <summary>
        /// Update RetrievalDetail data to RetrievalDetail Table according to the RetrievalDetail Parameter
        /// Return Constants.DB_STATUS
        /// </summary>
        /// <param name="retrievalDetail"></param>
        /// <returns></returns>
        public Constants.DB_STATUS Update(RetrievalDetail retrievalDetail)
        {
            Constants.DB_STATUS status = Constants.DB_STATUS.UNKNOWN;
            try
            {
                RetrievalDetail rDetail = inventory.RetrievalDetails.Where(rObj => rObj.Id == retrievalDetail.Id).First();
                if (!rDetail.Equals(null))
                {
                    retrieval = inventory.Retrievals.Where(r => r.Id == retrievalDetail.Retrieval.Id).First();
                    Item       item       = inventory.Items.Where(i => i.Id == retrievalDetail.Item.Id).First();
                    Department department = inventory.Departments.Where(d => d.Id == retrievalDetail.Department.Id).First();

                    rDetail.Retrieval  = retrieval;
                    rDetail.Item       = item;
                    rDetail.Department = department;
                    rDetail.NeededQty  = retrievalDetail.NeededQty;
                    rDetail.ActualQty  = retrievalDetail.ActualQty;
                    inventory.SaveChanges();
                    status = Constants.DB_STATUS.SUCCESSFULL;
                }
            }
            catch (Exception e)
            {
                status = Constants.DB_STATUS.FAILED;
            }
            return(status);
        }
        public int UpdateRetrievalDetail(RetrievalDetail retrievalDetail)
        {
            RetrievalDetail re = context.RetrievalDetails.Where(x => x.RetrievalDetailsId == retrievalDetail.RetrievalDetailsId).First();

            re.QuantityRetrieved = retrievalDetail.QuantityRetrieved;
            re.Remark            = retrievalDetail.Remark;
            return(context.SaveChanges());
        }
예제 #6
0
 public void DeleteRetrievalDetails(RetrievalDetail rd)
 {
     using (EntityModel en = new EntityModel())
     {
         RetrievalDetail r = en.RetrievalDetails.Where(p => p.RetrievalCode == rd.RetrievalCode && p.ItemCode == rd.ItemCode).FirstOrDefault <RetrievalDetail>();
         en.RetrievalDetails.Remove(r);
         en.SaveChanges();
     }
 }
        //Retrieval Details
        public int AddNewRetrievalDetail(int retrId, string itemCode, int qtyNeeded, int qtyRetrieved)
        {
            RetrievalDetail retrDet = new RetrievalDetail();

            retrDet.RetrievalId       = retrId;
            retrDet.ItemCode          = itemCode;
            retrDet.QuantityNeeded    = qtyNeeded;
            retrDet.QuantityRetrieved = qtyRetrieved;
            return(retrDetServ.AddRetrievalDetail(retrDet));
        }
예제 #8
0
 public int UpdateRetrivalDetails(RetrievalDetail rd)
 {
     using (EntityModel en = new EntityModel())
     {
         RetrievalDetail r = en.RetrievalDetails.Where(p => p.RetrievalCode == rd.RetrievalCode && p.ItemCode == rd.ItemCode).FirstOrDefault <RetrievalDetail>();
         r.QuantityRetrieved = rd.QuantityRetrieved;
         r.Notes             = rd.Notes;
         return(en.SaveChanges());
     }
 }
예제 #9
0
        public List <RetrievalDetail> AddRetrievalDetailToRdList(List <RetrievalDetail> rdList, string itemcode, int retrievedqty, int TotalNeeded, string Id)
        {
            RetrievalDetail rd = new RetrievalDetail();

            rd.ItemCode            = itemcode;
            rd.QuantityRetrieved   = retrievedqty;
            rd.QuantityNeeded      = TotalNeeded;
            rd.AdjustmentVoucherId = Id;
            rdList.Add(rd);
            return(rdList);
        }
 public RetrievalItem(RetrievalDetail rd, Stationery sn)
 {
     RetrievalDetailsId = rd.RetrievalDetailsId.ToString();
     ItemCode           = rd.ItemCode;
     RetrievalId        = rd.RetrievalId.ToString();
     QuantityRetrieved  = rd.QuantityRetrieved.ToString();
     QuantityNeeded     = rd.QuantityNeeded.ToString();
     Description        = sn.Description;
     QuantityInStock    = sn.QuantityInStock.ToString();
     Bin = sn.Bin.ToString();
 }
예제 #11
0
        public void UpdateRetrievalDetail(WCF_RetrievalDetail wrd, String email, String password)

        {
            if (loginService.ValidateUser(email, password))
            {
                RetrievalDetail rdCurrent = sClerkCtrl.GetProcessingRetrievalDetailByItemCode(wrd.ItemCode);
                rdCurrent.QuantityRetrieved = Int32.Parse(wrd.QuantityRetrieved);
                rdCurrent.Notes             = wrd.Notes;

                sClerkCtrl.UpdateRetrievalDetail(rdCurrent);
            }
        }
        protected void validAllocatedQty_ServerValidate(object source, ServerValidateEventArgs args)
        {
            if (source is CustomValidator && IsPostBack)
            {
                CustomValidator  validator   = (CustomValidator)source;
                ListViewItem     parentItem  = (ListViewItem)validator.Parent;
                ListView         listDetails = (ListView)parentItem.Parent.Parent;
                ListViewDataItem listItem    = (ListViewDataItem)listDetails.Parent;
                HiddenField      hfItemCode  = (HiddenField)listItem.FindControl("hfItemCode");

                List <DisbursementDetail> ddList = GetDisbursementDetailsPerItem(hfItemCode.Value);
                DisbursementDetail        dd     = ddList[listDetails.EditIndex];

                RetrievalDetail retrievalDetail = retrieval.RetrievalDetails.Where(rd => rd.ItemCode == hfItemCode.Value).FirstOrDefault();

                RequestDetail requestDetail = GetRequestDetail(dd.RequestCode, dd.ItemCode);

                int num = Convert.ToInt32(args.Value);
                //args.IsValid = num <= rd.RemainingQuant && num >= 0;
                var tbxAllocatedQty = (TextBox)parentItem.FindControl("tbxAllocatedQty");
                //cannot be less than 0;
                if (num < 0)
                {
                    args.IsValid             = false;
                    tbxAllocatedQty.CssClass = "control error";
                    validator.ErrorMessage   = "Allocated Quantity cannot be less than 0";
                }
                else if (retrievalDetail.QuantityRetrieved >= requestDetail.RemainingQuant)
                {
                    if (num > requestDetail.RemainingQuant)
                    {
                        args.IsValid             = false;
                        tbxAllocatedQty.CssClass = "control error";
                        validator.ErrorMessage   = "Allocated Quantity cannot be more than needed quantity (" + requestDetail.RemainingQuant + ")";
                    }
                }
                else if (requestDetail.RemainingQuant > retrievalDetail.QuantityRetrieved)
                {
                    if (num > retrievalDetail.QuantityRetrieved)
                    {
                        args.IsValid             = false;
                        tbxAllocatedQty.CssClass = "control error";
                        validator.ErrorMessage   = "Allocated Quantity cannot be more than retrieved quantity (" + retrievalDetail.QuantityRetrieved + ")";
                    }
                }
                else
                {
                    args.IsValid             = true;
                    tbxAllocatedQty.CssClass = "control";
                }
            }
        }
        protected string GetStatus(string itemCode)
        {
            RetrievalDetail retrDet = myBz.FindRetrDetByRetrIdAndItemCode(itemCode, retrieval.RetrievalId);

            if (retrDet.QuantityNeeded == retrDet.QuantityRetrieved)
            {
                return("Fulfilled");
            }
            else
            {
                return("Unfulfilled");
            }
        }
예제 #14
0
 public WCF_RetrievalDetail GetRetrievalDetail(string id, String email, String password)
 {
     if (loginService.ValidateUser(email, password))
     {
         Retrieval       r    = sClerkCtrl.GetCurrentRetrieval();
         RetrievalDetail item = sClerkCtrl.GetProcessingRetrievalDetailByItemCode(id);
         return(new WCF_RetrievalDetail(item.RetrievalCode, sClerkCtrl.GetStationeryByCode(item.ItemCode).Description, item.QuantityRetrieved.ToString(), item.QuantityNeeded.ToString(), item.Notes, r.Status, r.DateRetrieved == null ? "" : ((DateTime)r.DateRetrieved).ToString("dd MMM yyyy"), sClerkCtrl.GetStationeryByCode(item.ItemCode).Stock.ToString(), sClerkCtrl.GetStationeryByCode(item.ItemCode).Location, item.ItemCode));
     }
     else
     {
         return(null);
     }
 }
예제 #15
0
        public int GetMaxRetrieved(RetrievalDetail rd)
        {
            int stock = (int)stationeryDAO.GetStationery(rd.ItemCode).Stock;

            if (stock > rd.QuantityNeeded)
            {
                return((int)rd.QuantityNeeded);
            }
            else
            {
                return(stock);
            }
        }
        /// <summary>
        /// Retrieve the RetrievalDetail information  from RetrievalDetail Table according to the RetrievalDetail Parameter
        /// </summary>
        /// <param name="retrievalDetail"></param>
        /// <returns></returns>
        public RetrievalDetail GetRetrievalDetail(RetrievalDetail retrievalDetail)
        {
            try
            {
                retrievalDetail = inventory.RetrievalDetails.Where(rObj => rObj.Id == retrievalDetail.Id).First();
            }
            catch (Exception e)
            {
                retrievalDetail = null;
            }

            return(retrievalDetail);
        }
        protected String GetStatus(String itemCode)
        {
            RetrievalDetail rd = GetRetrievalDetail(itemCode);

            if (rd.QuantityNeeded > rd.QuantityRetrieved)
            {
                return("Unfulfilled");
            }
            else
            {
                return("Fulfilled");
            }
        }
예제 #18
0
        private static void ProcessRequisitions(LussisEntities context, int retrievalNo)
        {
            // Get Approved Requisitions
            List <Requisition> requisitionList = GetApprovedRequisitions(context);

            if (requisitionList.Count == 0)
            {
                throw new Exception("No Requisitions to Process");
            }

            // For each Requisition
            for (int i = 0; i < requisitionList.Count; i++)
            {
                // Get RequisitionDetails
                List <RequisitionDetail> requisitionDetailList = requisitionList[i].RequisitionDetails.ToList <RequisitionDetail>();

                // For each RequisitionDetail
                for (int j = 0; j < requisitionDetailList.Count; j++)
                {
                    // Get deptCode & itemNo
                    string deptCode = requisitionDetailList[j].RequisitionInfo.EmployeeWhoIssued.DeptCode;
                    string itemNo   = requisitionDetailList[j].ItemNo;

                    // Get RetrievalDetail
                    RetrievalDetail retrievalDetail = GetRetrievalDetail(context, retrievalNo, deptCode, itemNo);

                    if (retrievalDetail != null)
                    {
                        // Update RetrievalDetail
                        retrievalDetail.Needed += requisitionDetailList[j].Qty;
                    }
                    else
                    {
                        // Create RetrievalDetail
                        retrievalDetail             = new RetrievalDetail();
                        retrievalDetail.RetrievalNo = retrievalNo;
                        retrievalDetail.DeptCode    = deptCode;
                        retrievalDetail.ItemNo      = requisitionDetailList[j].ItemNo;
                        retrievalDetail.Needed      = requisitionDetailList[j].Qty;
                        retrievalDetail.BackLogQty  = 0;
                        retrievalDetail.Actual      = 0;
                        retrievalDetail             = AddRetrievalDetail(context, retrievalDetail);
                        context.SaveChanges();
                    }
                }

                // Update Requisition Status
                requisitionList[i].Status = "Processed";
            }
            context.SaveChanges();
        }
예제 #19
0
        public string UpdateRetrievalDetails(WCFRetrievalDetail[] b)
        {
            List <RetrievalDetail> l = new List <RetrievalDetail>();

            foreach (WCFRetrievalDetail c in b)
            {
                RetrievalDetail r = new RetrievalDetail();
                r.RetrievalID       = c.RetrievalID;
                r.ItemCode          = c.ItemCode;
                r.RequestedQuantity = c.RequestedQuantity;
                r.RetrievedQuantity = c.RetrievedQuantity;
                l.Add(r);
            }
            return(Data.UpdateRetrievalDetails(l));
        }
        /// <summary>
        ///  Insert RetrievalDetail data to the RetrievalDetail Table according to the RetrievalDetail Parameter
        ///  Return Constants.DB_STATUS
        /// </summary>
        /// <param name="newRetrievalDetail"></param>
        /// <returns></returns>
        public Constants.DB_STATUS Insert(RetrievalDetail newRetrievalDetail)
        {
            Constants.DB_STATUS status = Constants.DB_STATUS.UNKNOWN;

            try
            {
                inventory.AddToRetrievalDetails(newRetrievalDetail);
                inventory.SaveChanges();
                status = Constants.DB_STATUS.SUCCESSFULL;
            }
            catch (Exception e)
            {
                status = Constants.DB_STATUS.FAILED;
            }

            return(status);
        }
        /// <summary>
        /// Save
        /// </summary>
        /// <param name="retDetailList">RetrievalDetail List (RetID, ItemID, ActualQty)</param>
        /// <returns></returns>
        public bool save(List <RetrievalDetail> retDetailList)
        {
            bool result = true;

            //update actual quantity of retrieval detail
            foreach (RetrievalDetail retDetail in retDetailList)
            {
                RetrievalDetail retDetailSearch = ctx.RetrievalDetail.Where(x => x.RetID == retDetail.RetID && x.ItemID == retDetail.ItemID).FirstOrDefault();
                retDetailSearch.ActualQty = retDetail.ActualQty;
            }

            try
            {
                ctx.SaveChanges();
            }
            catch
            {
                result = false;
            }

            return(result);
        }
예제 #22
0
        private static void ProcessBacklogs(LussisEntities context, int retrievalNo)
        {
            // Get Backlogs
            List <BackLog> backlogList = context.BackLogs.ToList <BackLog>();

            // For each Backlog
            for (int i = 0; i < backlogList.Count; i++)
            {
                // Get deptCode & itemNo
                string deptCode = backlogList[i].DeptCode;
                string itemNo   = backlogList[i].ItemNo;

                // Get RetrievalDetail
                RetrievalDetail retrievalDetail = GetRetrievalDetail(context, retrievalNo, deptCode, itemNo);

                if (retrievalDetail != null)
                {
                    // Update RetrievalDetail
                    retrievalDetail.BackLogQty += backlogList[i].BackLogQty;
                }
                else
                {
                    // Create RetrievalDetail
                    retrievalDetail             = new RetrievalDetail();
                    retrievalDetail.RetrievalNo = retrievalNo;
                    retrievalDetail.DeptCode    = deptCode;
                    retrievalDetail.ItemNo      = itemNo;
                    retrievalDetail.Needed      = 0;
                    retrievalDetail.BackLogQty  = backlogList[i].BackLogQty;
                    retrievalDetail.Actual      = 0;
                    retrievalDetail             = AddRetrievalDetail(context, retrievalDetail);
                }
            }

            context.SaveChanges();
        }
        protected void lvDetails_ItemUpdating(object sender, ListViewUpdateEventArgs e)
        {
            if (!Page.IsValid)
            {
                return;
            }

            ListView         listDetails = (ListView)sender;
            ListViewDataItem listItem    = (ListViewDataItem)listDetails.Parent;

            HiddenField hfItemCode = (HiddenField)listItem.FindControl("hfItemCode");

            List <DisbursementDetail> ddList = GetDisbursementDetailsPerItem(hfItemCode.Value);

            List <DisbursementDetail> sortedDDList = new List <DisbursementDetail>();

            foreach (DisbursementDetail dd in ddList)
            {
                DateTime dateRequested = GetRequestDateFromDD(dd);
                bool     isInserted    = false;
                for (int i = 0; i < sortedDDList.Count; i++)
                {
                    if (dateRequested < GetRequestDateFromDD(sortedDDList[i]))
                    {
                        //if earlier insert into index
                        sortedDDList.Insert(i, dd);
                        isInserted = true;
                        break;
                    }
                }
                if (!isInserted)
                {
                    sortedDDList.Add(dd);
                }
            }

            int updatedQty = Convert.ToInt32(e.NewValues["Quantity"]);

            RetrievalDetail retrievalDetail = retrieval.RetrievalDetails.Where(rd => rd.ItemCode == hfItemCode.Value).FirstOrDefault();
            int?            retrievedQty    = retrievalDetail.QuantityRetrieved;

            DisbursementDetail updatedDD = sortedDDList[e.ItemIndex];

            updatedDD.Quantity = updatedQty;
            sClerkCtrl.UpdateDisbursementDetail(updatedDD);

            retrievedQty -= updatedQty;
            sortedDDList.Remove(updatedDD);

            for (int i = 0; i < sortedDDList.Count; i++)
            {
                DisbursementDetail sortedDD      = sortedDDList[i];
                RequestDetail      requestDetail = GetRequestDetail(sortedDD.RequestCode, sortedDD.ItemCode);
                if (retrievedQty != 0)
                {
                    if (requestDetail.RemainingQuant < retrievedQty)
                    {
                        sortedDD.Quantity = requestDetail.RemainingQuant;
                        retrievedQty     -= requestDetail.RemainingQuant;
                    }
                    else
                    {
                        sortedDD.Quantity = retrievedQty;
                        retrievedQty     -= retrievedQty;
                    }
                }
                else
                {
                    sortedDD.Quantity = 0;
                }
                sClerkCtrl.UpdateDisbursementDetail(sortedDD);
            }

            listDetails.EditIndex  = -1;
            listDetails.DataSource = GetDisbursementDetailsPerItem(hfItemCode.Value);
            listDetails.DataBind();
        }
 //need a method for breakdown by Dept - do in RequisitionService
 public int AddRetrievalDetail(RetrievalDetail retrievalDetail)
 {
     context.RetrievalDetails.Add(retrievalDetail);
     return(context.SaveChanges());
 }
 /// <summary>
 /// There is no status in RetrievalTable.
 /// </summary>
 /// <param name="retrievalDetail"></param>
 /// <returns></returns>
 public Constants.DB_STATUS Delete(RetrievalDetail retrievalDetail)
 {
     throw new NotImplementedException();
 }
예제 #26
0
 public static RetrievalDetail AddRetrievalDetail(LussisEntities context, RetrievalDetail retrievalDetail)
 {
     context.RetrievalDetails.Add(retrievalDetail);
     return(retrievalDetail);
 }
예제 #27
0
        public static bool SubmitRetrieval(int retrievalNo, List <string> deptCodeList, List <string> itemNoList, List <int> actualList)
        {
            LussisEntities context          = new LussisEntities();
            DateTime       today            = DateTime.Today;
            int            daysUntilMonday  = ((int)DayOfWeek.Monday - (int)today.DayOfWeek + 7) % 7;
            DateTime       disbursementDate = today.Date.AddDays(daysUntilMonday);

            // Update RetrievalDate
            Retrieval retrieval = GetRetrieval(context, retrievalNo);

            retrieval.Date = DateTime.Now;

            // For each RetrievalDetail
            for (int i = 0; i < actualList.Count; i++)
            {
                string deptCode = deptCodeList[i];
                string itemNo   = itemNoList[i];
                int    actual   = actualList[i];

                // Update RetrievalDetail
                RetrievalDetail retrievalDetail = GetRetrievalDetail(context, retrievalNo, deptCode, itemNo);
                retrievalDetail.Actual = actual;

                // Update StationeryCatalogueCurrentyQty
                StationeryCatalogue stock = GetStock(context, itemNo);
                stock.CurrentQty -= actual;

                // Add StockTxnDetail
                StockTxnDetail txn = new StockTxnDetail();
                txn.ItemNo      = itemNo;
                txn.Date        = retrieval.Date;
                txn.AdjustQty   = -actual;
                txn.RecordedQty = stock.CurrentQty;
                txn.Remarks     = GetDepartment(context, deptCode).DeptName;
                txn             = AddStockTxn(context, txn);

                // Add Disbursement
                Disbursement disbursement = GetPendingDisbursement(context, deptCode, disbursementDate);
                if (disbursement == null)
                {
                    disbursement = new Disbursement();
                    disbursement.DisbursementNo    = int.MaxValue;
                    disbursement.DeptCode          = deptCode;
                    disbursement.DisbursementDate  = disbursementDate;
                    disbursement.RepEmpNo          = GetDepartment(context, deptCode).RepEmpNo;
                    disbursement.CollectionPointNo = GetDepartment(context, deptCode).CollectionPointNo;
                    disbursement.Pin    = new Random().Next(10000, 99999);
                    disbursement.Status = "Pending";
                    disbursement        = AddDisbursement(context, disbursement);
                }

                // Add DisbursementDetail
                DisbursementDetail disbursementDetail = new DisbursementDetail();
                disbursementDetail.DisbursementNo = disbursement.DisbursementNo;
                disbursementDetail.ItemNo         = itemNo;
                disbursementDetail.Needed         = retrievalDetail.Needed + retrievalDetail.BackLogQty;
                disbursementDetail.Promised       = actual;
                disbursementDetail.Received       = actual;
                disbursementDetail = AddDisbursementDetail(context, disbursementDetail);
            }

            context.SaveChanges();
            return(true);
        }
        public RetrievalDetail FindRetrievalDetail(string itemCode, int retrievalId)
        {
            RetrievalDetail retrievalDetail = context.RetrievalDetails.Where(x => x.ItemCode == itemCode && x.RetrievalId == retrievalId).First();

            return(retrievalDetail);
        }
 public int UpdateRetrDet(RetrievalDetail retrDet)
 {
     return(retrDetServ.UpdateRetrievalDetail(retrDet));
 }
        public RetrievalDetail FindRetrievalDetail(int id)
        {
            RetrievalDetail retrievalDetail = context.RetrievalDetails.Where(x => x.RetrievalDetailsId == id).First();

            return(retrievalDetail);
        }