예제 #1
0
        public POViewModel SearchPO(POViewModel model)
        {
            PetaPoco.Database db = null;
            var         dbConn   = DataContext.Database.Connection;
            POViewModel Details  = new POViewModel();

            try
            {
                using (DataContext)
                {
                    dbConn.Open();
                    db = new PetaPoco.Database(dbConn);
                    db.EnableAutoSelect = false;
                    Details.POList      = db.Query <PO>("exec usp_SearchPO " + "@SId,@POTenderNo,@POFileNo",
                                                        new { SId = model.SId, POTenderNo = model.POTenderNo, POFileNo = model.POFileNo }).ToList();
                    dbConn.Close();
                }
            }
            catch (Exception ex)
            {
                throw;
            }

            finally
            {
                if (dbConn != null)
                {
                    dbConn.Close();
                }
            }
            return(Details);
        }
예제 #2
0
        public ActionResult Edit(int id)
        {
            var userName = System.Web.HttpContext.Current.User.Identity.Name;
            var user     = _systemService.GetUserAndRole(0, userName);

            if (user == null)
            {
                return(RedirectToAction("Index", "Login"));
            }

            if (user.PER == 0)
            {
                return(RedirectToAction("Index", "Home"));
            }

            var item               = _service.GetByKey(id);
            var listDetail         = _service.ListConditionDetail(id, "1");
            var totalDetailRecords = listDetail.Count();
            var poGetInformation   = _service.GetPeInformation(id);

            var vatList = _systemService.GetLookUp(Constants.LuVat);

            vatList.Add(new LookUp
            {
                LookUpKey   = "0",
                LookUpValue = "0"
            });
            vatList = vatList.OrderBy(m => m.LookUpKey).ToList();
            var model = new POViewModel
            {
                Id            = item.Id,
                vPOID         = item.vPOID,
                vPOStatus     = item.vPOStatus,
                sPODate       = item.dPODate.ToString("dd/MM/yyyy"),
                sDeliveryDate = item.dDeliverDate != null?item.dDeliverDate.Value.ToString("dd/MM/yyyy") : string.Empty,
                                    vLocation         = item.vLocation,
                                    vProjectID        = item.vProjectID,
                                    vRemark           = item.vRemark,
                                    Timestamp         = item.Timestamp,
                                    UserLogin         = user,
                                    Stores            = new SelectList(this._systemService.StoreList(), "Id", "Name"),
                                    iStore            = item.iStore != null ? item.iStore.Value : 0,
                                    Projects          = new SelectList(this._systemService.ProjectList(), "Id", "vProjectID"),
                                    ProjectNames      = new SelectList(this._systemService.ProjectList(), "Id", "vProjectName"),
                                    PoTypes           = new SelectList(this._systemService.PoTypeList(), "Id", "Name"),
                                    bPOTypeID         = item.bPOTypeID,
                                    Suppliers         = new SelectList(this._systemService.SupplierList(), "Id", "Name"),
                                    bSupplierID       = item.bSupplierID,
                                    bCurrencyTypeID   = item.bCurrencyTypeID,
                                    Currencies        = new SelectList(this._systemService.CurrencyList(), "Id", "Name"),
                                    Payments          = new SelectList(this._systemService.PaymentList(), "Id", "Name"),
                                    VatList           = new SelectList(vatList, Constants.LookUpKey, Constants.LookUpValue),
                                    Payment           = item.vTermOfPayment,
                                    TotalRecords      = totalDetailRecords,
                                    PoDetailsVResults = listDetail,
                                    PoGetInformation  = poGetInformation
            };

            return(View(model));
        }
        public ActionResult SearchPO(POViewModel Model)
        {
            PDService service = new PDService();

            Model = service.SearchPO(Model);
            return(PartialView("_POGrid", Model.POList));
        }
예제 #4
0
		public MainWindow()
		{
			InitializeComponent();
			DataContext = po = new POViewModel();
            po.UserName = "******";
            po.Level = 0;
		}
예제 #5
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));
        }
예제 #6
0
        private JsonResult EditData(POViewModel model)
        {
            if (model.CheckCode != model.PurchaseOrder.vPOID)
            {
                if (_service.ExistedCode(model.PurchaseOrder.vPOID))
                {
                    return(Json(new { result = Constants.DuplicateCode, mRf = (Convert.ToInt32(_service.GetAutoPoCode()) + 1).ToString(CultureInfo.InvariantCulture) }));
                }
            }

            var entity = _service.GetByKey(model.PurchaseOrder.Id);

            if (!Convert.ToBase64String(model.PurchaseOrder.Timestamp).Equals(Convert.ToBase64String(entity.Timestamp)))
            {
                return(Json(new { result = Constants.DataJustChanged }));
            }

            try
            {
                var now = DateTime.Now;
                entity.vProjectID = model.PurchaseOrder.vProjectID;
                //entity.bSupplierID = model.PurchaseOrder.bSupplierID;
                entity.bPOTypeID = model.PurchaseOrder.bPOTypeID;
                //entity.bCurrencyTypeID = model.PurchaseOrder.bCurrencyTypeID;
                //entity.dPODate = model.PurchaseOrder.dPODate;
                //entity.fPOTotal = model.PurchaseOrder.fPOTotal;
                entity.vRemark              = model.PurchaseOrder.vRemark;
                entity.vPriceEval           = model.PurchaseOrder.vPriceEval;
                entity.vQuanlityEval        = model.PurchaseOrder.vQuanlityEval;
                entity.vDeliveryEval        = model.PurchaseOrder.vDeliveryEval;
                entity.vConformancyToV3Eval = model.PurchaseOrder.vConformancyToV3Eval;
                entity.vFromCC              = model.PurchaseOrder.vFromCC;
                entity.vFromContact         = model.PurchaseOrder.vFromContact;
                entity.vFromTel             = model.PurchaseOrder.vFromTel;
                entity.vFromFax             = model.PurchaseOrder.vFromFax;
                entity.vTermOfPayment       = model.PurchaseOrder.vTermOfPayment;
                entity.iExample             = model.PurchaseOrder.iExample;
                //entity.vPOStatus = model.PurchaseOrder.vPOStatus;
                entity.vLocation    = model.PurchaseOrder.vLocation;
                entity.dDeliverDate = model.PurchaseOrder.dDeliverDate;
                //entity.iStore = model.PurchaseOrder.iStore;
                entity.iPayment  = model.PurchaseOrder.iPayment;
                entity.iModified = model.LoginId;
                entity.dModified = now;
                _service.Update(entity, model.ListPoDetailData, model.LstDeleteDetailItem);

                return(Json(new { result = Constants.Success }));
            }
            catch (Exception e)
            {
                Log.Error("Update PE!", e);
                return(Json(new { result = Constants.UnSuccess }));
            }
        }
예제 #7
0
        public ActionResult LoadPeDetail(int id, string enable)
        {
            var detailList = _service.ListConditionDetail(id, enable);
            var model      = new POViewModel
            {
                PoDetailsVResults = detailList,
                TotalRecords      = detailList.Count()
            };

            return(PartialView("_PODetailPartial", model));
        }
예제 #8
0
        public PO_Summery_Report()
        {
            InitializeComponent();
            _POViewModel     = new POViewModel();
            this.DataContext = _POViewModel;

            tottax.Text = "";
            TotTax      = tottax;

            totamt.Text = "";
            TotAmt      = totamt;
        }
        // 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);
        }
        public ActionResult ManagePO(POViewModel Model)
        {
            PDService service = new PDService();

            ViewBag.Suppliers = new SelectList(AllSuppliers(), "Value", "Text");

            Model = service.SearchPO(Model);

            if (Request.IsAjaxRequest())
            {
                return(PartialView("_POGrid", Model.POList));
            }
            return(View("ManagePurchaseOrder", Model));
        }
예제 #11
0
        public POViewModel SearchPO(POViewModel model)
        {
            POViewModel Details = new POViewModel();

            try
            {
                Details = _repository.SearchPO(model);
            }

            catch (Exception ex)
            {
                throw;
            }

            return(Details);
        }
예제 #12
0
 public static void UpdatePO(this PO po, POViewModel vm)
 {
     po.Code            = vm.Code;
     po.CreatedBy       = vm.CreatedBy;
     po.CreatedDate     = vm.CreatedDate;
     po.DistrictID      = vm.DistrictID;
     po.ID              = vm.ID;
     po.MetaDescription = vm.MetaDescription;
     po.MetaKeyWord     = vm.MetaKeyWord;
     po.Name            = vm.Name;
     po.POAddress       = vm.POAddress;
     po.POMobile        = vm.POMobile;
     po.POStyle         = vm.POStyle;
     po.UpdatedBy       = vm.UpdatedBy;
     po.UpdatedDate     = vm.UpdatedDate;
     po.Status          = vm.Status;
 }
예제 #13
0
        public ActionResult LoadPo(int page, int size, int store, int potype, string po, string status, string mrf, int supplier, int project, string stockCode, string stockName, string fd, string td, string enable)
        {
            var userName     = System.Web.HttpContext.Current.User.Identity.Name;
            var xPeViewModel = _service.ListCondition(page, size, store, potype, po, status, mrf, supplier, project, stockCode, stockName, fd, td, enable);
            var totalTemp    = Convert.ToDecimal(xPeViewModel.TotalRecords) / Convert.ToDecimal(size);
            var totalPages   = Convert.ToInt32(Math.Ceiling(totalTemp));
            var model        = new POViewModel
            {
                UserLogin        = _systemService.GetUserAndRole(0, userName),
                PoGetListResults = xPeViewModel.PoGetListResults,
                TotalRecords     = xPeViewModel.TotalRecords,
                TotalPages       = totalPages,
                CurrentPage      = page,
                PageSize         = size
            };

            return(PartialView("_POPartial", model));
        }
예제 #14
0
        public AddPO()
        {
            InitializeComponent();
            _POViewModel     = new POViewModel();
            this.DataContext = _POViewModel;
            //ObservableCollection<POrderModel> ListGrid1 = new ObservableCollection<POrderModel>();
            ObservableCollection <ItemModel> ListGrid1 = new ObservableCollection <ItemModel>();

            textBox2_Copy4.Text = "";
            BussRef             = textBox2_Copy4;


            textBox5.Text = "";
            ItemRef       = textBox5;

            textScr.Text = "";
            ScrRef       = textScr;

            textmail.Text = "";
            SuppEmailRef  = textmail;

            dataGrid1.ItemsSource = ListGrid1;
            ListGridRef           = dataGrid1;

            total.Text = "";
            TotRef     = total;

            totTax.Text = "";
            TotTaxRef   = totTax;

            txtqty.Text = "";
            TotalQty    = txtqty;

            textBox4.Text = "";
            SuppRef       = textBox4;

            DeliveryPo.Text = "";
            DeliveryRef     = DeliveryPo;

            txtpono.Text = "";
            PoNo         = txtpono;
        }
예제 #15
0
 public HttpResponseMessage Update(HttpRequestMessage request, POViewModel poVM)
 {
     return(CreateHttpResponse(request, () =>
     {
         HttpResponseMessage response = null;
         if (!ModelState.IsValid)
         {
             response = request.CreateResponse(HttpStatusCode.BadRequest, ModelState);
         }
         else
         {
             var dbPO = _poService.GetByID(poVM.ID);
             dbPO.UpdatePO(poVM);
             _poService.Update(dbPO);
             _poService.Save();
             var responseData = Mapper.Map <PO, POViewModel>(dbPO);
             response = request.CreateResponse(HttpStatusCode.Created, responseData);
         }
         return response;
     }));
 }
예제 #16
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));
        }
예제 #17
0
        public ActionResult Index()
        {
            var userName = System.Web.HttpContext.Current.User.Identity.Name;
            var user     = _systemService.GetUserAndRole(0, userName);

            if (user == null)
            {
                return(RedirectToAction("Index", "Login"));
            }
            if (user.PER == 0)
            {
                return(RedirectToAction("Index", "Home"));
            }
            var model = new POViewModel
            {
                UserLogin = user,
                Stores    = new SelectList(_systemService.StoreList(), "Id", "Name"),
                Projects  = new SelectList(_systemService.ProjectList(), "Id", "vProjectID"),
                PoTypes   = new SelectList(this._systemService.PoTypeList(), "Id", "Name"),
                Suppliers = new SelectList(this._systemService.SupplierList(), "Id", "Name"),
            };

            return(View(model));
        }
예제 #18
0
        private JsonResult CreateData(POViewModel model)
        {
            if (_service.ExistedCode(model.PurchaseOrder.vPOID))
            {
                return(Json(new { result = Constants.DuplicateCode, mRf = (Convert.ToInt32(_service.GetAutoPoCode())).ToString(CultureInfo.InvariantCulture) }));
            }
            try
            {
                var now = DateTime.Now;
                model.PurchaseOrder.vPOStatus = "Open";
                model.PurchaseOrder.iEnable   = true;
                model.PurchaseOrder.iCreated  = model.LoginId;
                model.PurchaseOrder.dPODate   = now;
                model.PurchaseOrder.dCreated  = now;
                _service.Insert(model.PurchaseOrder, model.ListPoDetailData);

                return(Json(new { result = Constants.Success }));
            }
            catch (Exception e)
            {
                Log.Error("Create New PE!", e);
                return(Json(new { result = Constants.UnSuccess }));
            }
        }
예제 #19
0
 public POList()
 {
     InitializeComponent();
     _POViewModel     = new POViewModel();
     this.DataContext = _POViewModel;
 }
예제 #20
0
 public JsonResult Create(POViewModel model)
 {
     return(model.V3 != true?Json(new { result = Constants.UnSuccess }) : CreateData(model));
 }
예제 #21
0
 public JsonResult Edit(POViewModel model)
 {
     return(model.V3 != true?Json(new { result = Constants.UnSuccess }) : EditData(model));
 }
예제 #22
0
 public ActionResult Index(POViewModel pomodel)
 {
     return(null);
 }
예제 #23
0
        // GET: MuaHang
        public ActionResult Index()
        {
            var b = new POViewModel();

            return(View(b));
        }
        // 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);
        }