예제 #1
0
        // To change the status from pending to complete
        public static RequisitionWithOutstandingModel Complete
            (RequisitionWithOutstandingModel ordm, out string error)
        {
            LUSSISEntities entities = new LUSSISEntities();

            error = "";
            outstandingrequisition          req                 = new outstandingrequisition();
            RequisitionWithOutstandingModel reqoutm             = new RequisitionWithOutstandingModel();
            List <RequisitionDetailsWithOutstandingModel> reqdm = new List <RequisitionDetailsWithOutstandingModel>();

            try
            {
                // finding the db object using API model
                req = entities.outstandingrequisitions
                      .Where(x => x.requisition.reqid == ordm.Reqid)
                      .FirstOrDefault();

                if (req.requisition.status == ConRequisition.Status.OUTSTANDINGREQUISITION || req.status == ConOutstandingsRequisition.Status.DELIVERED)
                {
                    req.status             = ConOutstandingsRequisition.Status.COMPLETE;
                    req.requisition.status = ConRequisition.Status.COMPLETED;
                    entities.SaveChanges();
                    foreach (outstandingrequisitiondetail rqdm in req.outstandingrequisitiondetails)
                    {
                        reqdm.Add(new RequisitionDetailsWithOutstandingModel(req.reqid, rqdm.itemid, rqdm.item.description,
                                                                             rqdm.qty, rqdm.item.category.name, rqdm.item.uom,
                                                                             rqdm.qty));
                    }
                    reqoutm = new RequisitionWithOutstandingModel(req.reqid, req.requisition.raisedby, req.requisition.user.fullname
                                                                  , req.requisition.approvedby, req.requisition.user1.fullname, req.requisition.cpid, req.requisition.collectionpoint.cpname
                                                                  , req.requisition.deptid, req.requisition.department.deptname, req.status, req.requisition.reqdate, 999,
                                                                  "Z" + req.requisition.deptid, reqdm);
                    NotificationModel nom = new NotificationModel();
                    nom.Datetime = DateTime.Now;
                    nom.Deptid   = 11;
                    nom.Remark   = "The Outstanding Items with Requisition ID (" + req.reqid + ") is now collected";
                    nom.Role     = ConUser.Role.CLERK;
                    nom.Title    = "Outstanding Items Collected";
                    nom.NotiType = ConNotification.NotiType.OutstandingItemsCollected;
                    nom.ResID    = req.reqid;
                    nom          = NotificationRepo.CreatNotification(nom, out error);
                }
                else
                {
                    error   = "Status not Outstanding";
                    reqoutm = new RequisitionWithOutstandingModel();
                }
            }
            catch (NullReferenceException)
            {
                error = ConError.Status.NOTFOUND;
            }
            catch (Exception e)
            {
                error = e.Message;
            }
            return(reqoutm);
        }
        public IHttpActionResult CompleteOutstanding(RequisitionWithOutstandingModel outreq)
        {
            string error = "";
            RequisitionWithOutstandingModel orm = OutstandingReqRepo.Complete(outreq, out error);

            if (error != "" || orm == null)
            {
                if (error == ConError.Status.NOTFOUND)
                {
                    return(Content(HttpStatusCode.NotFound, "Outstanding Not Found"));
                }
                return(Content(HttpStatusCode.BadRequest, error));
            }
            return(Ok(orm));
        }
예제 #3
0
        public static RequisitionWithOutstandingModel GetCompletedOutstaingReqByReqID(int reqid, out string error)
        {
            LUSSISEntities entities = new LUSSISEntities();

            error = "";
            RequisitionWithOutstandingModel model = new RequisitionWithOutstandingModel();
            outstandingrequisition          req   = new outstandingrequisition();

            List <RequisitionDetailsWithOutstandingModel> reqdm = new List <RequisitionDetailsWithOutstandingModel>();

            try
            {
                req = entities.outstandingrequisitions.Where(x => x.reqid == reqid && x.status == ConOutstandingsRequisition.Status.COMPLETE).FirstOrDefault();

                foreach (outstandingrequisitiondetail rqdm in req.outstandingrequisitiondetails)
                {
                    reqdm.Add(new RequisitionDetailsWithOutstandingModel(req.reqid, rqdm.itemid, rqdm.item.description,
                                                                         rqdm.qty, rqdm.item.category.name, rqdm.item.uom,
                                                                         rqdm.qty));
                }
                model = new RequisitionWithOutstandingModel(req.reqid, req.requisition.raisedby, req.requisition.user.fullname
                                                            , req.requisition.approvedby, req.requisition.user1.fullname, req.requisition.cpid, req.requisition.collectionpoint.cpname
                                                            , req.requisition.deptid, req.requisition.department.deptname, req.status, req.requisition.reqdate, 0,
                                                            "", reqdm);
            }
            catch (NullReferenceException)
            {
                error = ConError.Status.NOTFOUND;
            }
            catch (Exception e)
            {
                error = e.Message;
            }

            return(model);
        }