예제 #1
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }
            var ApplicationUserLocal = _context.ApplicationUser.FirstOrDefault(a => a.Id == _ApplicationUser.Id);

            if (ApplicationUserLocal == null)
            {
                return(NotFound());
            }
            ApplicationUserLocal.Bank         = _ApplicationUser.Bank;
            ApplicationUserLocal.City         = _ApplicationUser.City;
            ApplicationUserLocal.CompanyName  = _ApplicationUser.CompanyName;
            ApplicationUserLocal.Email        = _ApplicationUser.Email;
            ApplicationUserLocal.Name         = ApplicationUserLocal.Name;
            ApplicationUserLocal.PhoneNumber  = _ApplicationUser.PhoneNumber;
            ApplicationUserLocal.RFC          = _ApplicationUser.RFC;
            ApplicationUserLocal.SocialReason = _ApplicationUser.SocialReason;
            ApplicationUserLocal.State        = _ApplicationUser.State;
            try
            {
                await _context.SaveChangesAsync();
            }
            catch (Exception ex)
            {
            }
            return(RedirectToPage("Index"));
        }
예제 #2
0
        // To protect from overposting attacks, please enable the specific properties you want to bind to, for
        // more details see https://aka.ms/RazorPagesCRUD.
        public async Task <IActionResult> OnPostAsync()
        {
            //if (!ModelState.IsValid)
            //{
            //    return RedirectToPage("CreateQuotation", new { orderDetailsId = _QuotationTaskMaterialVM.orderDetailsId });
            //}
            var quotation = _context.Quotation
                            .Include(q => q.Tasks)
                            .ThenInclude(t => t.ListMaterial)
                            .Include(q => q.OrderDetailsModel)
                            .ThenInclude(od => od.Order)
                            .FirstOrDefault(q => q.Id == _QuotationTaskMaterialVM.QuotationModel.Id);

            if (quotation.Tasks.Count == 0)
            {
                return(RedirectToPage("CreateQuotation", new { orderDetailsId = _QuotationTaskMaterialVM.orderDetailsId }));
            }
            quotation.Description = _QuotationTaskMaterialVM.QuotationModel.Description;

            foreach (var item in quotation.Tasks)
            {
                quotation.OrderDetailsModel.Cost = +item.Cost + item.CostHandLabor;
                foreach (var item2 in item.ListMaterial)
                {
                    quotation.OrderDetailsModel.Cost = +item2.Price;
                }
            }



            _context.Quotation.Update(quotation);
            var order = _context.Order.FirstOrDefault(o => o.Id == quotation.OrderDetailsModel.Order.Id);

            order.EstadoDelPedido = SD.EstadoCotizado;
            _context.Order.Update(order);
            await _context.SaveChangesAsync();

            return(RedirectToPage("./IndexQuotation"));
        }
예제 #3
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (_ApplicationUser.Id == "")
            {
                return(NotFound());
            }

            _ApplicationUser = _context.ApplicationUser
                               .FirstOrDefault(o => o.Id == _ApplicationUser.Id);


            if (_ApplicationUser != null)
            {
                //lista de servicios del mismo usuario
                var serviciosListLocal = _context.ServiceModel
                                         .Include(s => s.ApplicationUser)
                                         .Where(s => s.ApplicationUser.Id == _ApplicationUser.Id)
                                         .ToList();
                //iterar la lista de servicios
                foreach (var item in serviciosListLocal)
                {
                    //buscar todas las ordenes de cada servicio
                    var orderDetailsLocal = _context.OrderDetails
                                            .Include(od => od.Order)
                                            .Include(od => od.Service)
                                            .ThenInclude(s => s.ApplicationUser)
                                            .Where(od => od.Service.ID == item.ID).ToList();
                    //por cada orderDetails buscar las quotation tareas y materiales
                    foreach (var item2 in orderDetailsLocal)
                    {
                        var quotationLocal = _context.Quotation
                                             .Include(q => q.OrderDetailsModel)
                                             .Include(q => q.Tasks)
                                             .ThenInclude(t => t.ListMaterial)
                                             .FirstOrDefault(q => q.OrderDetailsModel == item2);
                        //remover el order details actual
                        _context.OrderDetails.Remove(item2);
                        if (quotationLocal != null)
                        {
                            //remover el quotation actual
                            _context.Quotation.Remove(quotationLocal);
                        }
                        //buscar si la orden tiene otros orderDetails
                        var _order = _context.Order.FirstOrDefault(o => o.Id == item2.Order.Id);
                        var orderDetailsConEstaOrden = _context.OrderDetails
                                                       .Include(o => o.Order)
                                                       .Where(o => o.Order == _order).ToList();
                        //si no hay ninguna otra cotizacion en esta orden se borra
                        if (orderDetailsConEstaOrden.Count > 0)
                        {
                        }
                        else
                        {
                            //remover la orden
                            _context.Order.Remove(_order);
                        }
                    }
                    //borrar el servicio
                    var servicioLocal = _context.ServiceModel.FirstOrDefault(s => s == item);
                    _context.ServiceModel.Remove(servicioLocal);
                }

                _context.ApplicationUser.Remove(_ApplicationUser);
                await _context.SaveChangesAsync();
            }

            return(RedirectToPage("./IndexUser"));
        }