public async Task <ActionResult> Crear([FromBody] CrearViewModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var fechaHora = DateTime.Now; CotizacionE cotizacion = new CotizacionE { idUsuario = model.idUsuario, fechaRegistro = fechaHora, fechaActualizacion = fechaHora, idCliente = model.idCliente, idEstatus = model.idEstatus, //subtotal = model.subtotal, //iva = model.iva, total = model.total, descuento = model.descuento, aumento = model.aumento }; try { _context.Cotizaciones.Add(cotizacion); await _context.SaveChangesAsync(); var id = cotizacion.idCotizacion; foreach (var det in model.detalles) { Detalles_Cotizacion detalle = new Detalles_Cotizacion { idCotizacion = id, cantidad = det.cantidad, //unidadMedida = det.unidadMedida, //precioUnitario = det.precioUnitario, //descripcion = det.descripcion, idProducto = det.idProducto }; _context.DetallesCotizacion.Add(detalle); } await _context.SaveChangesAsync(); } catch (Exception ex) { return(BadRequest(ex)); } return(Ok()); }
public async Task <IActionResult> Actualizar([FromBody] objProyectoActualizar model) { var fechaHora = DateTime.Now; var holi = model.objcliente.idCliente; var aumento = 0; switch (model.objcliente.tipoCliente) { case "A": aumento = 10; break; case "B": aumento = 20; break; case "C": aumento = 30; break; case "D": aumento = 40; break; } var cotizacion = await _context.Cotizaciones.FirstOrDefaultAsync(c => c.idCotizacion == model.idCotizacion); if (cotizacion == null) { return(NotFound()); } cotizacion.idCliente = model.objcliente.idCliente; cotizacion.idUsuario = 3; cotizacion.idEstatus = 1; cotizacion.total = model.totalProyecto; cotizacion.moneda = model.objmoneda.moneda; cotizacion.tipoCambio = Convert.ToDecimal(model.objmoneda.tipoCambio); cotizacion.descuento = model.descuento; cotizacion.aumento = aumento; cotizacion.idPlantilla = 0; cotizacion.fechaActualizacion = fechaHora; try { await _context.SaveChangesAsync(); var id = model.idCotizacion; foreach (var serv in model.objservicios) { var idser = serv.idServicio; foreach (var cat in serv.objcategorias) { var idcat = cat.idcategoria; foreach (var pro in cat.objproductos) { var det = await _context.DetallesCotizacion.FirstOrDefaultAsync(a => a.idProducto == pro.idProducto); if (det == null) { det.idCotizacion = id; det.idProducto = pro.idProducto; det.cantidad = Convert.ToInt32(pro.cantidad); det.monto = Convert.ToDecimal(pro.monto); det.comentarios = ""; det.fechaRegistro = fechaHora; det.idServicio = idser; det.idCategoria = idcat; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { //Guardar Excepcion return(BadRequest()); } } else { Detalles_Cotizacion detalle = new Detalles_Cotizacion { idCotizacion = id, idProducto = pro.idProducto, cantidad = Convert.ToInt32(pro.cantidad), monto = Convert.ToDecimal(pro.monto), comentarios = "", fechaRegistro = fechaHora, idServicio = idser, idCategoria = idcat }; _context.DetallesCotizacion.Add(detalle); } } } } await _context.SaveChangesAsync(); } catch (Exception ex) { return(BadRequest(ex)); } return(Ok()); }
public async Task <IActionResult> Guardar([FromBody] objProyecto model) { var fechaHora = DateTime.Now; var holi = model.objcliente.idCliente; var aumento = 0; switch (model.objcliente.tipoCliente) { case "A": aumento = 10; break; case "B": aumento = 20; break; case "C": aumento = 30; break; case "D": aumento = 40; break; } CotizacionE cotizacion = new CotizacionE { idCliente = model.objcliente.idCliente, idUsuario = 3, idEstatus = 1, total = model.totalProyecto, moneda = model.objmoneda.moneda, tipoCambio = Convert.ToDecimal(model.objmoneda.tipoCambio), descuento = model.descuento, aumento = aumento, idPlantilla = 0, fechaRegistro = fechaHora, fechaActualizacion = fechaHora }; try { _context.Cotizaciones.Add(cotizacion); await _context.SaveChangesAsync(); var id = cotizacion.idCotizacion; foreach (var serv in model.objservicios) { var idser = serv.idServicio; foreach (var cat in serv.objcategorias) { var idcat = cat.idcategoria; foreach (var pro in cat.objproductos) { Detalles_Cotizacion detalle = new Detalles_Cotizacion { idCotizacion = id, idProducto = pro.idProducto, cantidad = Convert.ToInt32(pro.cantidad), monto = Convert.ToDecimal(pro.monto), comentarios = "", fechaRegistro = fechaHora, idServicio = idser, idCategoria = idcat }; _context.DetallesCotizacion.Add(detalle); } } } await _context.SaveChangesAsync(); } catch (Exception ex) { return(BadRequest(ex)); } return(Ok()); }