Beispiel #1
0
 private void Add_Click(object sender, System.Windows.RoutedEventArgs e)
 {
     if (saleBillViewModel.SaleBillDetailViewModels == null || saleBillViewModel.SaleBillDetailViewModels.Count == 0)
     {
         MessageBox.Show("Chưa có sản phẩm nào được thêm!", "Add", MessageBoxButton.OK, MessageBoxImage.Warning);
     }
     else
     {
         if (saleBillViewModel.IsValidModel())
         {
             var isSuccess = _saleBillBusiness.Add(saleBillViewModel);
             if (isSuccess)
             {
                 MessageBox.Show("Đã thêm thành công!", "Add", MessageBoxButton.OK, MessageBoxImage.Information);
                 saleBillViewModel = new SaleBillViewModel();
                 this.DataContext  = saleBillViewModel;
                 Load_DataGrid_SaleBillDetail();
             }
             else
             {
                 MessageBox.Show("Thêm không thành công!", "Add", MessageBoxButton.OK, MessageBoxImage.Error);
             }
         }
     }
 }
Beispiel #2
0
 public AddSaleBillUserControl()
 {
     saleBillViewModel = new SaleBillViewModel();
     _saleBillBusiness = new SaleBillBusiness();
     InitializeComponent();
     InitializeData();
 }
        public bool Update(SaleBillViewModel entity)
        {
            var saleBill           = entity.MapToSaleBill();
            var newSaleBillDetails = new List <SaleBillDetail>();

            foreach (var item in entity.SaleBillDetailViewModels)
            {
                var purchaseBillDetail = item.MapToSaleBillDetail();
                purchaseBillDetail.SaleBillId = saleBill.SaleBillId;
                newSaleBillDetails.Add(purchaseBillDetail);
            }
            _saleBillRepository.Update(saleBill);
            var oldSaleBillDetails = _saleBillDetailRepository.FindAll(pd => pd.SaleBillId == entity.SaleBillId);

            if (oldSaleBillDetails != null)
            {
                var deleteSaleBillDetails = oldSaleBillDetails.Where(op => !newSaleBillDetails.Any(p => p.Id == op.Id));
                var addSaleBillDetails    = newSaleBillDetails.Where(p => !oldSaleBillDetails.Any(op => op.Id == p.Id));
                var updateSaleBillDetails = newSaleBillDetails.Where(p => oldSaleBillDetails.Any(op => op.Id == p.Id));
                _saleBillDetailRepository.DeleteRange(deleteSaleBillDetails);
                _saleBillDetailRepository.AddRange(addSaleBillDetails);
                _saleBillDetailRepository.UpdateRange(updateSaleBillDetails);
            }
            return(true);
        }
 public DetailSaleBillUserControl(SaleBill saleBill)
 {
     InitializeComponent();
     this.saleBillViewModel = new SaleBillViewModel(saleBill);
     this.DataContext       = saleBillViewModel;
     Load_DataGrid_SaleBillDetail();
 }
        public bool Add(SaleBillViewModel entity)
        {
            if (entity == null)
            {
                return(false);
            }
            var saleBill = entity.MapToSaleBill();

            saleBill.SaleBillId  = IdUtilities.GenerateByTimeSpan();
            saleBill.CreatedDate = DateTime.Now;
            saleBill.StaffId     = StaffGlobal.CurrentStaff.StaffId;
            _saleBillRepository.Add(saleBill);
            foreach (var item in entity.SaleBillDetailViewModels)
            {
                var saleBillDetail = item.MapToSaleBillDetail();
                saleBillDetail.SaleBillId = saleBill.SaleBillId;
                _saleBillDetailRepository.Add(saleBillDetail);
            }
            return(true);
        }
Beispiel #6
0
        [Route("Index")] // Combines to define the route template "Home/Index"
        //[Route("/")] // Does not combine, defines the route template ""
        public async Task <IActionResult> Index()
        {
            var currentUser = await _userManager.GetUserAsync(User);

            if (currentUser == null)
            {
                return(Challenge());
            }

            var saleBill = new SaleBillViewModel
            {
                Makes     = await _billService.GetMakesAsync(),
                Car       = new CarViewModel(),
                BodyTypes = await _billService.GetBodyTypesAsync()
            };

            saleBill.Makes.Insert(0, new SelectListItem {
                Value = "0", Text = "Select"
            });

            return(View(saleBill));
        }
Beispiel #7
0
        public async Task <IActionResult> Save(SaleBillViewModel saleBillViewModel)
        {
            var currentUser = await _userManager.GetUserAsync(User);

            if (currentUser == null)
            {
                return(Challenge());
            }

            //// ------- Validation ------- //
            if (saleBillViewModel.Car.MakeId == 0)
            {
                ModelState.AddModelError("Mark", "Select Mark");
            }

            if (saleBillViewModel.Car.ModelId == 0)
            {
                ModelState.AddModelError("Model", "Select Model");
            }

            if (saleBillViewModel.Car.BodyTypeId == 0)
            {
                ModelState.AddModelError("Body Type", "Select Body Type");
            }

            if (ModelState.IsValid)
            {
                try
                {
                    var sb = await _billService.GetSaleBillAsync(saleBillViewModel.Customer.FirstName, saleBillViewModel.Customer.LastName, saleBillViewModel.Car.VIN, saleBillViewModel.Insurance.InsuranceName, currentUser);

                    if (sb == null)
                    {
                        var id = await _billService.SaveSaleBillAsync(saleBillViewModel, currentUser);

                        if (id != -1)
                        {
                            return(RedirectToAction(actionName: nameof(CreatePdf), routeValues: new { id }));
                        }
                    }
                    else
                    {
                        return(RedirectToAction(actionName: nameof(CreatePdf), routeValues: new { id = sb.Id }));
                    }
                }
                catch (Exception ex)
                {
                    _logger.LogError(ex.Message);
                }
            }
            else
            {
                var errors1 = ModelState.Where(x => x.Value.Errors.Count > 0)
                              .Select(x => new { x.Key, x.Value.Errors })
                              .ToArray();
                var errors2 = ModelState.Values
                              .SelectMany(v => v.Errors)
                              .ToArray();
            }
            // If we got this far, something failed, redisplay form
            return(View(saleBillViewModel));
        }
Beispiel #8
0
        public async Task <long> SaveSaleBillAsync(SaleBillViewModel saleBillViewModel, ApplicationUser user)
        {
            if (saleBillViewModel != null)
            {
                var saleBill = new SaleBill();

                if (saleBillViewModel.Car == null)
                {
                    return(-1);
                }

                var make = await GetMakeAsync(saleBillViewModel.Car.MakeId);

                if (make == null)
                {
                }

                var model = await GetModelAsync(make.MakeId, saleBillViewModel.Car.ModelId);

                if (model == null)
                {
                }

                var bodyType = await GetBodyTypeAsync(saleBillViewModel.Car.BodyTypeId);

                if (bodyType == null)
                {
                }

                var car = await GetCarByVinAsync(saleBillViewModel.Car.VIN);

                if (car == null)
                {
                    car = MapCar(saleBillViewModel.Car);
                    if (car == null)
                    {
                        return(-1);
                    }

                    car.MakeId     = make.MakeId;
                    car.ModelId    = model.ModelId;
                    car.BodyTypeId = bodyType.BodyTypeId;

                    var saveResult = await SaveCarAsync(car);

                    if (!saveResult)
                    {
                        return(-1);
                    }
                }

                saleBill.CarVin = car.VIN;

                if (saleBillViewModel.Customer == null)
                {
                    return(-1);
                }

                var customer = await GetCustomerAsync(saleBillViewModel.Customer.FirstName, saleBillViewModel.Customer.LastName);

                if (customer == null)
                {
                    customer = MapCustomer(saleBillViewModel.Customer);
                    var saveResult = await SaveCustomerAsync(customer);

                    if (saveResult)
                    {
                        saleBill.CustomerId = customer.Id;
                    }
                    else
                    {
                        return(-1);
                    }
                }

                if (saleBillViewModel.Insurance == null)
                {
                    return(-1);
                }

                var insurance = await GetInsuranceAsync(saleBillViewModel.Insurance.InsuranceName);

                if (insurance == null)
                {
                    insurance = MapInsurance(saleBillViewModel.Insurance);
                    var saveResult = await SaveInsuranceAsync(insurance);

                    if (saveResult)
                    {
                        saleBill.InsuranceId = insurance.Id;
                    }
                    else
                    {
                        return(-1);
                    }
                }

                if (saleBillViewModel.SaleBill == null)
                {
                    return(-1);
                }

                saleBill.AgentId     = user.Id;
                saleBill.Price       = saleBillViewModel.SaleBill.Price;
                saleBill.Tax         = saleBillViewModel.SaleBill.Tax;
                saleBill.Total       = saleBillViewModel.SaleBill.Total;
                saleBill.SalesTax    = saleBillViewModel.SaleBill.SalesTax;
                saleBill.PaymentForm = saleBillViewModel.SaleBill.PaymentForm;

                await _context.SaleBills.AddAsync(saleBill);

                if (await _context.SaveChangesAsync() == 1)
                {
                    return(saleBill.Id);
                }
            }

            return(-1);
        }