Ejemplo n.º 1
0
        public async Task <ActionResult> POApprover()
        {
            var nh       = new NHibernateUserStore();
            var response = new HttpResponseMessage(HttpStatusCode.OK);

            var user = (UserModel)HttpContext.Session[Config.GetAppSetting("SessionKey")];

            //UserModel user = null;
            if (user != null)
            {
                //user = (UserModel)task.GetType().GetProperty("Result").GetValue(task);
            }
            else if (CurrentUserSession.userSecurityStampCookie != null)
            {
                user = await nh.FindByStampAsync(CurrentUserSession.userSecurityStampCookie);

                HttpContext.Session[Config.GetAppSetting("SessionKey")] = user;
                var owinAuthentication = new OwinAuthenticationService(HttpContext);
                owinAuthentication.SignIn(user);
            }
            else
            {
                return(RedirectToAction("Login", "User"));
            }
            var nhps = new NHibernatePOStore();
            var pr   = await nhps.FindPOApprovalAsync(user.employee.position);

            return(View(pr));
        }
Ejemplo n.º 2
0
        // POST api/<controller>
        public async Task <IList <POApprovalViewModel> > Post(IList <POApprovalViewModel> value)
        {
            var nh   = new NHibernateUserStore();
            var nhps = new NHibernatePOStore();
            List <POApprovalViewModel> POs = new List <POApprovalViewModel>();



            foreach (var approved in value)
            {
                var user = nh.FindByStampAsync(approved.SecurityStamp);
                if (user != null)
                {
                    var approval = await nhps.FindPOAprovalAsync(approved.Id);

                    approval.Status = approved.Status;
                    switch (approval.Status)
                    {
                    case StatusType.Approved:
                        var POApprovals = await nhps.FindPOAprovalAsync(approval.POHeader);

                        approval.ApprovedBy   = user.Result;
                        approval.DateApproved = DateTime.UtcNow;
                        foreach (var POApproval in POApprovals)
                        {
                            if (POApproval.Status == StatusType.Approved)
                            {
                                approval.POHeader.Status = StatusType.Approved;
                            }
                            else
                            {
                                approval.POHeader.Status = POApproval.Status;
                                break;
                            }
                        }
                        break;

                    case StatusType.Rejected:
                        approval.POHeader.Status = approval.Status;
                        break;

                    default:
                        break;
                    }
                    try {
                        await nhps.SaveOrUpdatePOApprovalAsync(approval);
                    } catch (Exception e) {
                    }
                    approved.RequisitionNo = approval.POHeader.RequisitionNo;
                    POs.Add(approved);
                }
            }


            return(POs);
        }
Ejemplo n.º 3
0
        public async Task <ActionResult> UpdatePO(POViewModel value)
        {
            var nhpa      = new NHibernatePOStore();
            var employees = new NHibernateCompanyStore();
            var po        = await nhpa.FindPOAByIdAsync(value.Id);

            ViewData["employees"] = await employees.GetAllEmployeeAsync();

            return(PartialView(po));
        }
Ejemplo n.º 4
0
        public async Task <ActionResult> POList(SearchItemViewModel value)
        {
            value.searchItem = value.searchItem ?? "";
            var nhpa = new NHibernatePOStore();
            IList <POHeaderModel> searchPOs = null;

            try {
                searchPOs = await nhpa.SearchPRAsync(value.searchItem);
            } catch (Exception e) {
            }
            return(PartialView(searchPOs));
        }
        // POST api/<controller>
        public async Task <long> Post(POViewModel value)
        {
            const long PurchaserHead = 6;
            var        nhpos         = new NHibernatePOStore();
            var        nhus          = new NHibernateUserStore();
            var        company       = new NHibernateCompanyStore();
            var        po            = await nhpos.FindPOAByIdAsync(value.Id);

            var user = await nhus.FindByStampAsync(value.SecurityStamp);

            foreach (var line in value.Lines)
            {
                var nhps   = new NHibernatePRStore();
                var poLine = new POLinesModel()
                {
                    Quantity    = line.Quantity,
                    UOM         = line.UOM,
                    Description = line.Description,
                    UnitPrice   = line.UnitPrice,
                    PRLine      = await nhps.GetPRLineAsync(line.PRLineId),
                    Name        = line.Name,
                    CreatedBy   = user
                };
                po.Lines.Add(poLine);
            }
            po.Status = value.Status;
            if (value.Status == StatusType.ForApproval)
            {
                var approver = new POAprovalModel()
                {
                    Approver = await company.GetPositionByIdAsync(PurchaserHead),
                    Status   = StatusType.ForApproval
                };
                po.Approvals = new List <POAprovalModel>();
                po.Approvals.Add(approver);
                var costApprover = company.FindCostApprover(po.Amount);
                if (costApprover.Result != null)
                {
                    var approver2 = new POAprovalModel()
                    {
                        Approver = costApprover.Result.Approver,
                        Status   = StatusType.ForApproval
                    };
                    po.Approvals.Add(approver2);
                }
            }
            await nhpos.SaveOrUpdatePOHeaderAsync(po);

            return(value.Id);
        }
Ejemplo n.º 6
0
        // POST api/<controller>
        public async Task <IList <POHeaderModel> > Post(IList <PrLinesViewModel> value)
        {
            List <POHeaderModel> POs   = new List <POHeaderModel>();
            NHibernatePRStore    nhprs = new NHibernatePRStore();
            NHibernatePOStore    nhpos = new NHibernatePOStore();

            foreach (var line in value)
            {
                var prLine = await nhprs.GetPRLineAsync(line.Id);

                var searchPOs = await nhpos.FindPoWithSameSupplierAsync(prLine);

                if (searchPOs.Count > 0)
                {
                    if (POs.Count > 0)
                    {
                        foreach (var po in searchPOs)
                        {
                            po.PoNumber = po.RequisitionNo;
                            var AlreadyExists = POs.Contains(po);
                            if (AlreadyExists == false)
                            {
                                POs.Add(po);
                            }
                        }
                    }
                    else
                    {
                        foreach (var po in searchPOs)
                        {
                            po.PoNumber = po.RequisitionNo;
                            POs.Add(po);
                        }
                    }
                }
            }

            return(POs);
        }
Ejemplo n.º 7
0
        public async Task <ActionResult> AddingLinesToPo(POViewModel value)
        {
            var nhpa      = new NHibernatePOStore();
            var nhpr      = new NHibernatePRStore();
            var employees = new NHibernateCompanyStore();
            var po        = await nhpa.FindPOAByIdAsync(value.Id);

            List <PRLinesModel> prlines = new List <PRLinesModel>();

            foreach (var line in value.Lines)
            {
                var prline = await nhpr.GetPRLineAsync(line.PRLineId);

                if (prline != null)
                {
                    prlines.Add(prline);
                }
            }
            ViewData["prlines"]   = prlines;
            ViewData["employees"] = await employees.GetAllEmployeeAsync();

            return(PartialView(po));
        }
        // POST api/<controller>
        public async Task <string> Post(POViewModel value)
        {
            const long PurchaserHead = 6;
            var        nhss          = new NHibernateISupplierStore();
            var        nhcs          = new NHibernateCompanyStore();
            var        nhpos         = new NHibernatePOStore();
            var        nhus          = new NHibernateUserStore();
            var        company       = new NHibernateCompanyStore();
            var        requierDate   = value.RequiredDate < DateTime.UtcNow ? DateTime.UtcNow.AddDays(6) : value.RequiredDate;
            var        user          = await nhus.FindByStampAsync(value.SecurityStamp);

            var requestor = await nhcs.GetEmployeeAsync(value.RequestorId);

            var po = await nhpos.FindPOAByIdAsync(value.Id);

            if (po == null)
            {
                po = new POHeaderModel()
                {
                    Supplier       = await nhss.FindSupplierByIdAsync(value.SupplierId),
                    PaymentTerm    = value.PaymentTerm,
                    Requestor      = requestor,
                    DeliveryAdress = value.DeliveryAdress,
                    Status         = value.Status,
                    RequiredDate   = requierDate,
                    NoteToBuyer    = value.NoteToBuyer,
                    CreatedBy      = user,
                    Amount         = value.Amount,
                    CRC            = requestor.Team.CRC,
                    Lines          = new List <POLinesModel>()
                };
                foreach (var line in value.Lines)
                {
                    var nhps   = new NHibernatePRStore();
                    var poLine = new POLinesModel()
                    {
                        Quantity    = line.Quantity,
                        UOM         = line.UOM,
                        Description = line.Description,
                        UnitPrice   = line.UnitPrice,
                        PRLine      = await nhps.GetPRLineAsync(line.PRLineId),
                        Name        = line.Name,
                        CreatedBy   = user
                    };
                    po.Lines.Add(poLine);
                }
            }
            else
            {
                po.Requestor = await nhcs.GetEmployeeAsync(value.RequestorId);

                po.DeliveryAdress = value.DeliveryAdress;
                po.Amount         = value.Amount;
                for (var i = 0; i < po.Lines.Count; i++)
                {
                    var found = false;
                    var id    = po.Lines.ElementAt(i).Id;
                    foreach (var line in value.Lines)
                    {
                        if (line.Id == id)
                        {
                            found = true;
                            po.Lines.ElementAt(i).Quantity    = line.Quantity;
                            po.Lines.ElementAt(i).UOM         = line.UOM;
                            po.Lines.ElementAt(i).Description = line.Description;
                            po.Lines.ElementAt(i).UnitPrice   = line.UnitPrice;
                            break;
                        }
                    }
                    if (found == false)
                    {
                        po.Lines.ElementAt(i).DeleteTime = DateTime.UtcNow;
                    }
                }
            }
            if (value.Status == StatusType.ForApproval)
            {
                var approver = new POAprovalModel()
                {
                    Approver = await company.GetPositionByIdAsync(PurchaserHead),
                    Status   = StatusType.ForApproval
                };
                po.Approvals = new List <POAprovalModel>();
                po.Approvals.Add(approver);
                var costApprover = company.FindCostApprover(po.Amount);
                if (costApprover.Result != null)
                {
                    var approver2 = new POAprovalModel()
                    {
                        Approver = costApprover.Result.Approver,
                        Status   = StatusType.ForApproval
                    };
                    po.Approvals.Add(approver2);
                }
            }

            try {
                await nhpos.SaveOrUpdatePOHeaderAsync(po);
            } catch (Exception e) {
            }
            return(po.RequisitionNo);
        }