コード例 #1
0
        public async Task <ActionResult <Data.Models.Sale> > PatchSale(int saleId, JsonPatchDocument <Data.Models.SaleForUpdate> patchDocument)
        {
            try
            {
                Data.Entities.Sale dbSale = await _repository.GetSaleAsync(saleId);

                if (dbSale == null)
                {
                    return(NotFound());
                }

                var updatedSale = _mapper.Map <Data.Models.SaleForUpdate>(dbSale);
                patchDocument.ApplyTo(updatedSale, ModelState);

                _mapper.Map(updatedSale, dbSale);

                if (await _repository.SaveChangesAsync())
                {
                    Data.Models.Sale savedSale = _mapper.Map <Data.Models.Sale>(await _repository.GetSaleAsync(saleId));
                    return(Ok(savedSale));
                }
                else
                {
                    return(StatusCode(StatusCodes.Status500InternalServerError, "Unable to save to database"));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, "Unable to patch sale " + ex.Message));
            }
        }
コード例 #2
0
        public async Task <ActionResult <SaleResponse> > PostSale(MHKDTO.Models.Sale input)
        {
            // Check if the sale object already exists
            var existingSaleObject = await _context.Sales
                                     .Where(s => s.Month == input.Month &&
                                            s.Year == input.Year)
                                     .FirstOrDefaultAsync();

            if (existingSaleObject != null)
            {
                return(Conflict(input));
            }

            var sale = new Data.Models.Sale
            {
                WeightNK    = input.WeightNK,
                Minimum     = input.Minimum,
                Maximum     = input.Maximum,
                Month       = input.Month,
                Year        = input.Year,
                TotalTasks  = input.TotalTasks,
                TasksOnTime = input.TasksOnTime
            };

            _context.Sales.Add(sale);
            await _context.SaveChangesAsync();

            var result = sale.MapSaleResponse();

            return(CreatedAtAction(nameof(GetSale), new{ id = result.Id },
                                   result));
        }
コード例 #3
0
        public async Task <ActionResult <Data.Models.Sale> > UpdateSale(int saleId, Data.Models.SaleForUpdate updatedSale)
        {
            try
            {
                Data.Entities.Sale dbSale = await _repository.GetSaleAsync(saleId);

                if (dbSale == null)
                {
                    return(NotFound());
                }

                _mapper.Map(updatedSale, dbSale);
                if (await _repository.SaveChangesAsync())
                {
                    Data.Models.Sale savedSale = _mapper.Map <Data.Models.Sale>(dbSale);
                    return(Ok(savedSale));
                }
                else
                {
                    return(BadRequest("Failed to update."));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, "Database exception: " + ex.Message));
            }
        }
コード例 #4
0
        public async Task <ActionResult <Data.Models.Sale> > CreateNewSale(Data.Models.SaleForCreate newSale)
        {
            Data.Entities.Sale dbNewSale = null;
            try
            {
                dbNewSale = _mapper.Map <Data.Entities.Sale>(newSale);
            }
            catch (Exception ex)
            {
                return(BadRequest("Input is in invalid format: " + ex.Message));
            }

            if (dbNewSale == null)
            {
                return(BadRequest("Input is in invalid format"));
            }

            await _repository.AddAsync <Data.Entities.Sale>(dbNewSale);

            await _repository.SaveChangesAsync();

            Data.Models.Sale addedSale = _mapper.Map <Data.Models.Sale>(dbNewSale);

            var url = _linkgenerator.GetPathByAction(HttpContext, "GetSaleBySaleId", "Sales", addedSale);

            return(this.Created(url, addedSale));
        }
コード例 #5
0
        protected void btnSave_Click(object sender, EventArgs e)
        {
            foreach (GridViewRow row in GridView1.Rows)
            {
                var saleId = 0;
                var sales  = new Data.Models.Sale();

                var hdnSaleId = (HiddenField)row.FindControl("hdnSaleId");
                if (hdnSaleId != null && !string.IsNullOrEmpty(hdnSaleId.Value))
                {
                    saleId = Convert.ToInt32(hdnSaleId.Value);
                }

                if (saleId > 0)
                {
                    sales = _db.Sales.Find(saleId);
                }
                else
                {
                    sales.ProductId   = Convert.ToInt32(GridView1.DataKeys[row.RowIndex].Value.ToString());
                    sales.PartnerId   = PartnerId;
                    sales.QuarterYear = Quater;
                }

                var txtM1 = (TextBox)row.FindControl("txtM1");
                if (txtM1 != null)
                {
                    sales.M1 = Convert.ToInt32(txtM1.Text);
                }

                var txtM2 = (TextBox)row.FindControl("txtM2");
                if (txtM2 != null)
                {
                    sales.M2 = Convert.ToInt32(txtM2.Text);
                }

                var txtM3 = (TextBox)row.FindControl("txtM3");
                if (txtM3 != null)
                {
                    sales.M3 = Convert.ToInt32(txtM3.Text);
                }


                if (saleId > 0)
                {
                    sales.ModifiedDate            = System.DateTime.Now;
                    sales.ModifiedUser            = SessionData.Current.UserId;
                    _db.Entry <Sale>(sales).State = EntityState.Modified;
                }
                else
                {
                    sales.CreatedDate = System.DateTime.Now;
                    sales.CreatedUser = SessionData.Current.UserId;
                    _db.Sales.Add(sales);
                }
                _db.SaveChanges();

                FillGridView();
            }
        }
コード例 #6
0
        private void FillGridView()
        {
            var qtr        = Quater;
            var partnerId  = PartnerId;
            var SaleVMList = new List <SalesViewModel>();
            var products   = _db.Products.OrderBy(p => p.SortOrder);

            foreach (var product in products)
            {
                var sales = _db.Sales.FirstOrDefault(t => t.PartnerId == partnerId && t.QuarterYear == qtr && t.ProductId == product.ProductId);

                if (sales == null)
                {
                    sales = new Data.Models.Sale();
                }

                var SaleVM = new SalesViewModel
                {
                    SaleId             = sales.SaleId,
                    M1                 = sales.M1,
                    M2                 = sales.M2,
                    M3                 = sales.M3,
                    PartnerId          = sales.PartnerId,
                    ProductCategory    = product.ProductCategory,
                    ProductDescription = product.ProductDescription,
                    ProductId          = product.ProductId,
                    QuarterYear        = sales.QuarterYear
                };

                var prevQtr      = Utility.QuarterHelper.GetPrevQuarter(Quater);
                var prevQtrSales = _db.Sales.Where(t => t.PartnerId == PartnerId && t.ProductId == product.ProductId && t.QuarterYear == prevQtr.QuarterYear).ToList();
                if (prevQtrSales.Any())
                {
                    SaleVM.PrevQtr = prevQtrSales.Sum(t => t.M1 + t.M2 + t.M3);
                }

                SaleVMList.Add(SaleVM);
            }
            GridView1.DataSource = SaleVMList;
            GridView1.DataBind();
            GridView1.UseAccessibleHeader    = true;
            GridView1.HeaderRow.TableSection = TableRowSection.TableHeader;
        }
コード例 #7
0
        private List <PlanPerformanceViewModel> GetData(int partnerId, string quarter)
        {
            var SaleVMList            = new List <SalesViewModel>();
            var PlanPerformanceVMList = new List <PlanPerformanceViewModel>();

            var products = _db.Products.OrderBy(p => p.SortOrder);

            foreach (var product in products)
            {
                var sales = _db.Sales.FirstOrDefault(t => t.PartnerId == partnerId && t.QuarterYear == quarter && t.ProductId == product.ProductId);

                if (sales == null)
                {
                    sales = new Data.Models.Sale();
                }

                var currentYear = quarter.Split(' ')[1];

                var previousYear = (Convert.ToInt32(currentYear) - 1).ToString();

                var currentYearData = _db.Sales.Where(t => t.PartnerId == partnerId && t.ProductId == product.ProductId && t.QuarterYear.Contains(currentYear)).ToList();

                var previousYearData = _db.Sales.Where(t => t.PartnerId == partnerId && t.ProductId == product.ProductId && t.QuarterYear.Contains(previousYear)).ToList();

                var SaleVM = new SalesViewModel
                {
                    SaleId             = sales.SaleId,
                    M1                 = sales.M1,
                    M2                 = sales.M2,
                    M3                 = sales.M3,
                    PartnerId          = sales.PartnerId,
                    ProductCategory    = product.ProductCategory,
                    ProductDescription = product.ProductDescription,
                    ProductId          = product.ProductId,
                    QuarterYear        = sales.QuarterYear
                };


                var     cquater1      = currentYearData.FirstOrDefault(t => t.QuarterYear == ("Q1 " + currentYear));
                decimal cquater1Sales = 0;
                if (cquater1 != null)
                {
                    cquater1Sales = cquater1.M1 + cquater1.M2 + cquater1.M3;
                }
                var cquater2 = currentYearData.FirstOrDefault(t => t.QuarterYear == ("Q2 " + currentYear));

                decimal cquater2Sales = 0;
                if (cquater2 != null)
                {
                    cquater2Sales = cquater2.M1 + cquater2.M2 + cquater2.M3;
                }
                var cquater3 = currentYearData.FirstOrDefault(t => t.QuarterYear == ("Q3 " + currentYear));

                decimal cquater3Sales = 0;
                if (cquater3 != null)
                {
                    cquater3Sales = cquater3.M1 + cquater3.M2 + cquater3.M3;
                }
                var cquater4 = currentYearData.FirstOrDefault(t => t.QuarterYear == ("Q4 " + currentYear));

                decimal cquater4Sales = 0;
                if (cquater4 != null)
                {
                    cquater4Sales = cquater4.M1 + cquater4.M2 + cquater4.M3;
                }

                var     pquater1      = previousYearData.FirstOrDefault(t => t.QuarterYear == ("Q1 " + previousYear));
                decimal pquater1Sales = 0;
                if (pquater1 != null)
                {
                    pquater1Sales = pquater1.M1 + pquater1.M2 + pquater1.M3;
                }

                var     pquater2      = previousYearData.FirstOrDefault(t => t.QuarterYear == ("Q2 " + previousYear));
                decimal pquater2Sales = 0;
                if (pquater2 != null)
                {
                    pquater2Sales = pquater2.M1 + pquater2.M2 + pquater2.M3;
                }

                var     pquater3      = previousYearData.FirstOrDefault(t => t.QuarterYear == ("Q3 " + previousYear));
                decimal pquater3Sales = 0;
                if (pquater3 != null)
                {
                    pquater3Sales = pquater3.M1 + pquater3.M2 + pquater3.M3;
                }

                var     pquater4      = previousYearData.FirstOrDefault(t => t.QuarterYear == ("Q4 " + previousYear));
                decimal pquater4Sales = 0;
                if (pquater4 != null)
                {
                    pquater4Sales = pquater4.M1 + pquater4.M2 + pquater4.M3;
                }

                var PerformanceVM = new PlanPerformanceViewModel
                {
                    SaleId             = sales.SaleId,
                    M1                 = sales.M1,
                    M2                 = sales.M2,
                    M3                 = sales.M3,
                    PartnerId          = sales.PartnerId,
                    ProductCategory    = product.ProductCategory,
                    ProductDescription = product.ProductDescription,
                    ProductId          = product.ProductId,
                    CQ1                = cquater1Sales,
                    CQ2                = cquater2Sales,
                    CQ3                = cquater3Sales,
                    CQ4                = cquater4Sales,
                    PQ1                = pquater1Sales,
                    PQ2                = pquater2Sales,
                    PQ3                = pquater3Sales,
                    PQ4                = pquater4Sales
                };


                var prevQtr      = Utility.QuarterHelper.GetPrevQuarter(quarter);
                var prevQtrSales = _db.Sales.Where(t => t.PartnerId == partnerId && t.ProductId == product.ProductId && t.QuarterYear == prevQtr.QuarterYear).ToList();
                if (prevQtrSales.Any())
                {
                    SaleVM.PrevQtr        = prevQtrSales.Sum(t => t.M1 + t.M2 + t.M3);
                    PerformanceVM.PrevQtr = prevQtrSales.Sum(t => t.M1 + t.M2 + t.M3);
                }

                SaleVMList.Add(SaleVM);

                PlanPerformanceVMList.Add(PerformanceVM);
            }

            return(PlanPerformanceVMList);
        }