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")); }
// 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")); }
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")); }