예제 #1
0
        public static RequisitionWithDisbursementModel GetRequisitionWithDisbursementByReqID(int reqid, out string error)
        {
            LUSSISEntities entities = new LUSSISEntities();

            // Initializing the error variable to return only blank if there is no error
            error = "";
            RequisitionWithDisbursementModel reqm = new RequisitionWithDisbursementModel();
            requisition reqs = new requisition();

            try
            {
                reqs = entities.requisitions.Where(p => p.reqid == reqid).FirstOrDefault();
                reqm = CovertDBRequisitionDistoAPIRequisitionDiswithDetails(reqs);
            }

            // if inventory not found, will throw NOTFOUND exception
            catch (NullReferenceException)
            {
                // if there is NULL Exception error, error will be 404
                error = ConError.Status.NOTFOUND;
            }

            catch (Exception e)
            {
                // for other exceptions
                error = e.Message;
            }

            //returning the list
            return(reqm);
        }
        public static DepartmentModel GetDepartmentByReqid(int reqid, out string error)
        {
            LUSSISEntities entities = new LUSSISEntities();

            error = "";
            department      dept = new department();
            requisition     req  = new requisition();
            DepartmentModel dm   = new DepartmentModel();

            try
            {
                req  = entities.requisitions.Where(p => p.reqid == reqid).FirstOrDefault <requisition>();
                dept = req.department;
                dm   = CovertDBDepttoAPIDept(dept);
            }
            catch (NullReferenceException)
            {
                error = ConError.Status.NOTFOUND;
            }
            catch (Exception e)
            {
                error = e.Message;
            }
            return(dm);
        }
예제 #3
0
        // Convert From Auto Generated DB Model to APIModel for Requisition
        private static RequisitionModel CovertDBRequisitiontoAPIRequisition(requisition req)
        {
            RequisitionModel reqm = new RequisitionModel(req.reqid, req.raisedby, req.user.fullname
                                                         , req.approvedby, req.user1.fullname, req.cpid, req.collectionpoint.cpname
                                                         , req.deptid, req.department.deptname, req.status, req.reqdate, new List <RequisitionDetailsModel>());

            return(reqm);
        }
예제 #4
0
        //Create new Requisition with Detials
        public static RequisitionModel CreateRequisitionwithDetails(RequisitionModel reqm, List <RequisitionDetailsModel> reqd, out string error)
        {
            error = "";
            LUSSISEntities           entities = new LUSSISEntities();
            requisition              req      = new requisition();
            List <requisitiondetail> reqlist  = new List <requisitiondetail>();

            try
            {
                req.reqid      = reqm.Reqid;
                req.raisedby   = reqm.Raisedby;
                req.approvedby = reqm.Approvedby;
                req.deptid     = reqm.Depid;
                req.cpid       = reqm.Cpid;
                req.status     = ConRequisition.Status.PENDING;
                req.reqdate    = DateTime.Now;

                req = entities.requisitions.Add(req);
                entities.SaveChanges();

                foreach (RequisitionDetailsModel rdm in reqd)
                {
                    requisitiondetail rqd = new requisitiondetail
                    {
                        reqid  = req.reqid,
                        itemid = rdm.Itemid,
                        qty    = rdm.Qty
                    };
                    rqd = entities.requisitiondetails.Add(rqd);
                    entities.SaveChanges();
                    reqlist.Add(rqd);
                }

                reqm = GetRequisitionByRequisitionId(req.reqid, out error);



                NotificationModel nom = new NotificationModel();
                nom.Deptid   = DepartmentRepo.GetDepartmentByUserid(reqm.Raisedby ?? default(int), out error).Deptid;
                nom.Role     = ConUser.Role.HOD;
                nom.Title    = "Requisition Approval";
                nom.NotiType = ConNotification.NotiType.RequisitionApproval;
                nom.ResID    = reqm.Reqid;
                nom.Remark   = "A new requisition has been raised by " + reqm.Rasiedbyname + "!";
                nom          = NotificationRepo.CreatNotification(nom, out error);
            }
            catch (NullReferenceException)
            {
                error = ConError.Status.NOTFOUND;
            }
            catch (Exception e)
            {
                error = e.Message;
            }
            return(reqm);
        }
예제 #5
0
        //create the requisition
        public static RequisitionModel CreateRequisition(RequisitionModel req, out string error)
        {
            error = "";
            bool           RaisedByTempHOD = true;
            LUSSISEntities entities        = new LUSSISEntities();
            requisition    reqn            = new requisition();

            try
            {
                reqn.raisedby   = req.Raisedby;
                reqn.approvedby = req.Approvedby;
                if (req.Approvedby == null || req.Approvedby == 0)
                {
                    reqn.approvedby = req.Raisedby;
                    RaisedByTempHOD = false;
                }
                reqn.deptid  = req.Depid;
                reqn.cpid    = req.Cpid;
                reqn.status  = ConRequisition.Status.PENDING;
                reqn.reqdate = DateTime.Now;
                reqn         = entities.requisitions.Add(reqn);
                entities.SaveChanges();
                req = GetRequisitionByRequisitionId(reqn.reqid, out error);

                if (!RaisedByTempHOD)
                {
                    NotificationModel nom = new NotificationModel();
                    nom.Deptid   = DepartmentRepo.GetDepartmentByUserid(reqn.raisedby ?? default(int), out error).Deptid;
                    nom.Role     = ConUser.Role.HOD;
                    nom.Title    = "Requisition Approval";
                    nom.NotiType = ConNotification.NotiType.RequisitionApproval;
                    nom.ResID    = reqn.reqid;
                    nom.Remark   = "A new requisition has been raised by " + req.Rasiedbyname + "!";
                    nom          = NotificationRepo.CreatNotification(nom, out error);
                }
                else
                {
                    req.Status = ConRequisition.Status.APPROVED;
                    req        = UpdateRequisition(req, out error);
                }
            }
            catch (NullReferenceException)
            {
                error = ConError.Status.NOTFOUND;
            }
            catch (Exception e)
            {
                error = e.Message;
            }
            return(req);
        }
예제 #6
0
 public void addRequisition(User u, List<ShoppingItem> sclist)
 {
     requisition re = new requisition();
     re.departmentId = u.DepartmentId;
     re.userId = u.UserId;
     re.rejectReason = null;
     re.status_dept = "Pending";
     re.requestDate = DateTime.Now;
     luse.requisitions.Add(re);
     luse.SaveChanges();
     for (int i = 0; i < sclist.Count; i++) {
         requsiiton_item reItem = new requsiiton_item();
         reItem.requisitionId = re.requisitionId;
         reItem.itemId = sclist[i].ItemId;
         reItem.requestQty = sclist[i].Amount;
         luse.requsiiton_item.Add(reItem);
         luse.SaveChanges();
     }
     checkItemAvailable(re.requisitionId);
 }
예제 #7
0
        public void addRequisition(User u, List <ShoppingItem> sclist)
        {
            requisition re = new requisition();

            re.departmentId = u.DepartmentId;
            re.userId       = u.UserId;
            re.rejectReason = null;
            re.status_dept  = "Pending";
            re.requestDate  = DateTime.Now;
            luse.requisitions.Add(re);
            luse.SaveChanges();
            for (int i = 0; i < sclist.Count; i++)
            {
                requsiiton_item reItem = new requsiiton_item();
                reItem.requisitionId = re.requisitionId;
                reItem.itemId        = sclist[i].ItemId;
                reItem.requestQty    = sclist[i].Amount;
                luse.requsiiton_item.Add(reItem);
                luse.SaveChanges();
            }
            checkItemAvailable(re.requisitionId);
        }
예제 #8
0
 public void createRequisition_PyaePyae(string requisitionId, DateTime date, string userId, string departmentId, string rejectReason, string status, DataTable requisitionDetails)
 {
     requisitionEntity = new requisition();
     requisitionEntity.requisitionId = requisitionId;
     requisitionEntity.date = date;
     requisitionEntity.userId = userId;
     requisitionEntity.departmentId = departmentId;
     requisitionEntity.rejectreason = rejectReason;
     requisitionEntity.status = status;
     ctx.requisitions.Add(requisitionEntity);
     ctx.SaveChanges();
     foreach (DataRow dr in requisitionDetails.Rows)
     {
         reqDetailEntity = new requisitionDetail();
         reqDetailEntity.requisitionId = (dr["requisitionId"]).ToString();
         reqDetailEntity.itemId = (dr["itemId"]).ToString();
         reqDetailEntity.requestedQty = Convert.ToInt32(dr["quantity"]);
         reqDetailEntity.deliveredQty = 0;
         ctx.requisitionDetails.Add(reqDetailEntity);
         ctx.SaveChanges();
     }
 }
예제 #9
0
        // to get the Requisition by the RequisitionId
        public static RequisitionModel GetRequisitionByRequisitionId(int reqid, out string error)
        {
            LUSSISEntities entities = new LUSSISEntities();

            error = "";

            requisition      requisition = new requisition();
            RequisitionModel reqm        = new RequisitionModel();

            try
            {
                requisition = entities.requisitions.Where(p => p.reqid == reqid).FirstOrDefault <requisition>();
                reqm        = CovertDBRequisitiontoAPIRequisitionwithDetails(requisition);
            }
            catch (NullReferenceException)
            {
                error = ConError.Status.NOTFOUND;
            }
            catch (Exception e)
            {
                error = e.Message;
            }
            return(reqm);
        }
예제 #10
0
        // update the Requisition
        public static RequisitionModel UpdateRequisition(RequisitionModel reqm, out string error)
        {
            error = "";
            // declare and initialize new LUSSISEntities to perform update
            LUSSISEntities entities = new LUSSISEntities();
            requisition    req      = new requisition();

            try
            {
                // finding the inventory object using Inventory API model
                req = entities.requisitions.Where(p => p.reqid == reqm.Reqid).First <requisition>();

                // transfering data from API model to DB Model
                req.reqid      = reqm.Reqid;
                req.raisedby   = reqm.Raisedby;
                req.approvedby = reqm.Approvedby;
                req.deptid     = reqm.Depid;
                req.status     = reqm.Status;
                // saving the update
                entities.SaveChanges();

                if (req.status == ConRequisition.Status.DELIVERED)
                {
                    NotificationModel nom = new NotificationModel();
                    nom.Deptid   = reqm.Depid;
                    nom.Role     = ConUser.Role.DEPARTMENTREP;
                    nom.Title    = "Ready to Collect";
                    nom.NotiType = ConNotification.NotiType.DeliveredRequisition;
                    nom.ResID    = reqm.Reqid;
                    nom.Remark   = "Requisition is now ready to collect";
                    nom          = NotificationRepo.CreatNotification(nom, out error);
                }
                else if (req.status == ConRequisition.Status.APPROVED)
                {
                    NotificationModel nom = new NotificationModel();
                    nom.Deptid   = reqm.Depid;
                    nom.Role     = ConUser.Role.EMPLOYEEREP;
                    nom.Title    = "HOD Requisition";
                    nom.NotiType = ConNotification.NotiType.HODApprovedRequistion;
                    nom.ResID    = reqm.Reqid;
                    nom.Remark   = "The new requisition has been approved by Head of Department";
                    nom          = NotificationRepo.CreatNotification(nom, out error);

                    nom.Deptid   = reqm.Depid;
                    nom.Role     = ConUser.Role.DEPARTMENTREP;
                    nom.Title    = "HOD Requisition";
                    nom.NotiType = ConNotification.NotiType.HODApprovedRequistion;
                    nom.ResID    = reqm.Reqid;
                    nom.Remark   = "The new requisition has been approved by Head of Department";
                    nom          = NotificationRepo.CreatNotification(nom, out error);

                    nom.Deptid   = 11;
                    nom.Role     = ConUser.Role.CLERK;
                    nom.Title    = "New Requisition";
                    nom.NotiType = ConNotification.NotiType.HODApprovedRequistion;
                    nom.ResID    = reqm.Reqid;
                    nom.Remark   = "The new requisition has been rasied by " + reqm.Depname;
                    nom          = NotificationRepo.CreatNotification(nom, out error);
                }
                else if (req.status == ConRequisition.Status.REQUESTPENDING)
                {
                    NotificationModel nom = new NotificationModel();
                    nom.Deptid   = reqm.Depid;
                    nom.Role     = ConUser.Role.HOD;
                    nom.Title    = "Approved Requisition";
                    nom.NotiType = ConNotification.NotiType.ClerkApprovedRequisiton;
                    nom.ResID    = reqm.Reqid;
                    nom.Remark   = "The new requisition has been approved by the store";
                    nom          = NotificationRepo.CreatNotification(nom, out error);

                    nom.Deptid   = reqm.Depid;
                    nom.Role     = ConUser.Role.TEMPHOD;
                    nom.Title    = "Approved Requisition";
                    nom.NotiType = ConNotification.NotiType.ClerkApprovedRequisiton;
                    nom.ResID    = reqm.Reqid;
                    nom.Remark   = "The new requisition has been approved by the store";
                    nom          = NotificationRepo.CreatNotification(nom, out error);
                }
                else if (req.status == ConRequisition.Status.COMPLETED || req.status == ConRequisition.Status.OUTSTANDINGREQUISITION)
                {
                    NotificationModel nom = new NotificationModel();
                    nom.Deptid   = 11;
                    nom.Role     = ConUser.Role.CLERK;
                    nom.Title    = "Items Collected";
                    nom.NotiType = ConNotification.NotiType.CollectedRequistion;
                    nom.ResID    = reqm.Reqid;
                    nom.Remark   = "The Items in Requisiton has been collected by Department Rep!";
                    nom          = NotificationRepo.CreatNotification(nom, out error);
                }
                // return the updated model
                reqm = CovertDBRequisitiontoAPIRequisition(req);
            }
            catch (NullReferenceException)
            {
                error = ConError.Status.NOTFOUND;
            }
            catch (Exception e)
            {
                error = e.Message;
            }
            return(reqm);
        }
예제 #11
0
        private static RequisitionWithDisbursementModel CovertDBRequisitionDistoAPIRequisitionDiswithDetails(requisition req)
        {
            List <RequisitionDetailsWithDisbursementModel> reqdm = new List <RequisitionDetailsWithDisbursementModel>();

            foreach (requisitiondetail rqdm in req.requisitiondetails)
            {
                try
                {
                    reqdm.Add(new RequisitionDetailsWithDisbursementModel(rqdm.reqid, rqdm.itemid, rqdm.item.description,
                                                                          rqdm.qty, rqdm.item.category.name, rqdm.item.uom,
                                                                          rqdm.requisition.disbursements.First().disbursementdetails.Where(x => x.itemid == rqdm.itemid).First().qty));
                }
                catch (Exception)
                {
                    reqdm.Add(new RequisitionDetailsWithDisbursementModel(rqdm.reqid, rqdm.itemid, rqdm.item.description, rqdm.qty, rqdm.item.category.name, rqdm.item.uom, 0));
                }
            }
            RequisitionWithDisbursementModel reqm = new RequisitionWithDisbursementModel();

            try
            {
                reqm = new RequisitionWithDisbursementModel(req.reqid, req.raisedby, req.user.fullname
                                                            , req.approvedby, req.user1.fullname, req.cpid, req.collectionpoint.cpname
                                                            , req.deptid, req.department.deptname, req.status, req.reqdate, req.disbursementlockers.First().lockerid, req.disbursementlockers.First().lockercollectionpoint.lockername, reqdm);
            }
            catch (Exception)
            {
                reqm = new RequisitionWithDisbursementModel(req.reqid, req.raisedby, req.user.fullname
                                                            , req.approvedby, req.user1.fullname, req.cpid, req.collectionpoint.cpname
                                                            , req.deptid, req.department.deptname, req.status, req.reqdate, 0, "", reqdm);
            }
            return(reqm);
        }
예제 #12
0
        // Convert From Auto Generated DB Model to APIModel for Requsition with Requisition Details data
        private static RequisitionModel CovertDBRequisitiontoAPIRequisitionwithDetails(requisition req)
        {
            List <RequisitionDetailsModel> reqdm = new List <RequisitionDetailsModel>();

            foreach (requisitiondetail rqdm in req.requisitiondetails)
            {
                try
                {
                    reqdm.Add(new RequisitionDetailsModel(rqdm.reqid, rqdm.itemid, rqdm.item.description, rqdm.qty, rqdm.item.category.name, rqdm.item.uom, rqdm.item.inventories.First().stock));
                }
                catch (Exception)
                {
                    reqdm.Add(new RequisitionDetailsModel(rqdm.reqid, rqdm.itemid, rqdm.item.description, rqdm.qty, rqdm.item.category.name, rqdm.item.uom, 0));
                }
            }
            RequisitionModel reqm = new RequisitionModel(req.reqid, req.raisedby, req.user.fullname
                                                         , req.approvedby, req.user1.fullname, req.cpid, req.collectionpoint.cpname
                                                         , req.deptid, req.department.deptname, req.status, req.reqdate, reqdm);

            return(reqm);
        }
예제 #13
0
        public void insertRequisitionGF(Requisition re)
        {
            requisition newre = new requisition();
            newre.requisitionId = re.RequisitionId;
            newre.date = re.Date;
            newre.userId = re.UserId;
            newre.departmentId = re.DepartmentId;
            newre.rejectreason = re.RejectReason;
            newre.status = re.Status;
            ctx.requisitions.Add(newre);
            ctx.SaveChanges();
            //gaofan

            UserFacade userFacade = new UserFacade();
            List<User> userCollection = userFacade.getUsersWithRole("departmentDeputy", re.DepartmentId);
            if(userCollection.Count==0)
            {
                userCollection = userFacade.getUsersWithRole("departmentHead", re.DepartmentId);

            }

            string subject = "New Requisition Submitted.";

            string bodyStart = "<HTML>"
                          + "<HEAD>"
                          + "</HEAD>"
                          + "<BODY>"
                          + "<BR/>"
                          + "<P>Dear ";

            string body = ",</P><BR/><P>A requisition has been raised from your department.</P>";

            body = body
                + "<BR/>"
                + "<a href=\"http://10.10.1.155/SSISWebApplication/WebPages/ApproveRejectRequisition\">Click this link to view the requisition</a>"//TODO LINK
                + "<BR/>"
                + "<P>From,</P>"
                + "<P>SSIS.</P>"
                + "</BODY>"
                + "</HTML>";

            NotifyUserController notifyUserController = new NotifyUserController();

            foreach (User user in userCollection)
            {
                notifyUserController.sendEmail(user.Email, subject, bodyStart + user.UserName + body);
            }
        }
예제 #14
0
 public void updateRequisitionStatus_PyaePyae(string requisitionId, string status, string reason)
 {
     requisitionEntity = new requisition();
     requisitionEntity = (from x in ctx.requisitions
                          where x.requisitionId == requisitionId
                          select x).SingleOrDefault();
     requisitionEntity.status = status;
     requisitionEntity.rejectreason = reason;
     ctx.SaveChanges();
 }