public static bool guardarProductoPropiedadValor(ProductoPropiedadValor productoPropiedadValor) { bool ret = false; try { using (DbConnection db = new OracleContext().getConnection()) { int existe = db.ExecuteScalar <int>("SELECT COUNT(*) FROM producto_propiedad_valor WHERE producto_propiedadid=:productoPropiedadId AND productoid=:productoId", new { productoPropiedadId = productoPropiedadValor.productoid, productoId = productoPropiedadValor.productoid }); if (existe > 0) { int guardado = db.Execute("UPDATE producto_propiedad_valor SET valor_entero=:valorEntero, valor_string=:valorString, valor_decimal=:valorDecimal, " + "valor_tiempo=:valorTiempo, usuario_creo=:usuarioCreo, usuario_actualizo=:usuarioActualizo, fecha_creacion=:fechaCreacion, fecha_actualizacion=:fechaActualizacion, " + "estado=:estado WHERE producto_propiedadid=:productoPropiedadid AND productoid=:productoid", productoPropiedadValor); ret = guardado > 0 ? true : false; } else { int guardado = db.Execute("INSERT INTO producto_propiedad_valor VALUES (:productoPropiedadid, :productoid, :valorEntero, :valorString, " + ":valorDecimal, :valorTiempo, :usuarioCreo, :usuarioActualizo, :fechaCreacion, :fechaActualizacion, :estado)", productoPropiedadValor); ret = guardado > 0 ? true : false; } } } catch (Exception e) { CLogger.write("2", "ProductoPropiedadValorDAO.class", e); } return(ret); }
public IActionResult ProductoPropiedadPorTipo(int idproducto, int idproductotipo) { try { List <ProductoPropiedad> productoPropiedades = ProductoPropiedadDAO.getProductoPropiedadesPorTipo(idproductotipo); List <Dictionary <String, Object> > campos = new List <Dictionary <String, Object> >(); foreach (ProductoPropiedad productoPropiedad in productoPropiedades) { Dictionary <String, Object> campo = new Dictionary <String, Object>(); campo.Add("id", productoPropiedad.id); campo.Add("nombre", productoPropiedad.nombre); campo.Add("tipo", productoPropiedad.datoTipoid); ProductoPropiedadValor productoPropiedadValor = ProductoPropiedadValorDAO.getValorPorProductoYPropiedad(productoPropiedad.id, idproducto); if (productoPropiedadValor != null) { switch (productoPropiedad.datoTipoid) { case 1: campo.Add("valor", productoPropiedadValor.valorString); break; case 2: campo.Add("valor", productoPropiedadValor.valorEntero); break; case 3: campo.Add("valor", productoPropiedadValor.valorDecimal); break; case 4: campo.Add("valor", productoPropiedadValor.valorEntero == 1 ? true : false); break; case 5: campo.Add("valor", productoPropiedadValor.valorTiempo != null ? productoPropiedadValor.valorTiempo.Value.ToString("dd/MM/yyyy H:mm:ss") : null); break; } } else { campo.Add("valor", ""); } campos.Add(campo); } List <object> estructuraCamposDinamicos = CFormaDinamica.convertirEstructura(campos); return(Ok(new { success = true, productopropiedades = estructuraCamposDinamicos })); } catch (Exception e) { CLogger.write("6", "ProductoPropiedadController.class", e); return(BadRequest(500)); } }
/* * static class EstructuraPojo { * Integer propiedadid; * Integer productoid; * * Integer valorEntero; * String valorString; * BigDecimal valorDecimal; * Date valorTiempo; * * String estado; * } * class stdatadinamico { * String id; * String tipo; * String label; * String valor; * }*/ public static ProductoPropiedadValor getProductoPropiedadValor(int propiedadId, int productoId) { ProductoPropiedadValor ret = null; try { using (DbConnection db = new OracleContext().getConnection()) { ret = db.QueryFirstOrDefault <ProductoPropiedadValor>("SELECT * FROM producto_propiedad_valor WHERE producto_propiedadid=:productoPropiedadId AND productoid=:productoId", new { productoPropiedadId = propiedadId, productoId = productoId }); } } catch (Exception e) { CLogger.write("1", "ProductoPropiedadValorDAO.class", e); } return(ret); }
public static ProductoPropiedadValor getValorPorProductoYPropiedad(int idPropiedad, int idProducto) { ProductoPropiedadValor ret = null; try { using (DbConnection db = new OracleContext().getConnection()) { ret = db.QueryFirstOrDefault <ProductoPropiedadValor>("SELECT * FROM producto_propiedad_valor " + "WHERE productoid=:idProducto AND producto_propiedadid=:propiedadid", new { idProducto = idProducto, propiedadid = idPropiedad }); } } catch (Exception e) { CLogger.write("10", "ProductoPropiedadValorDAO.class", e); } return(ret); }
public IActionResult Producto(int id, [FromBody] dynamic value) { try { ProductoValidator validator = new ProductoValidator(); ValidationResult results = validator.Validate(value); if (results.IsValid) { bool ret = false; Producto producto = ProductoDAO.getProductoPorId(id); producto.nombre = value.nombre; producto.descripcion = value.descripcion; producto.componenteid = value.componenteid; producto.subcomponenteid = value.subcomponenteid; producto.productoTipoid = value.productoTipoid; producto.ueunidadEjecutora = value.ueunidadEjecutora; producto.entidad = value.entidad; producto.ejercicio = value.ejercicio; producto.snip = value.snip; producto.programa = value.programa; producto.subprograma = value.subprograma; producto.proyecto = value.proyecto; producto.obra = value.obra; producto.renglon = value.renglon; producto.ubicacionGeografica = value.ubicacionGeografica; producto.actividad = value.actividad; producto.latitud = value.latitud; producto.longitud = value.longitud; producto.peso = value.peso; producto.costo = value.costo; producto.acumulacionCostoid = value.acumulacionCostoid; producto.fechaInicio = value.fechaInicio; DateTime fechaFin; DateTime.TryParse((string)value.fechaFin, out fechaFin); producto.fechaFin = fechaFin; DateTime fechaInicioReal; DateTime.TryParse((string)value.fechaInicioReal, out fechaInicioReal); producto.fechaInicioReal = fechaInicioReal; DateTime fechaFinReal; DateTime.TryParse((string)value.fechaFinReal, out fechaFinReal); producto.fechaFinReal = fechaFinReal; producto.duracion = value.duracion; producto.duracionDimension = value.duracionDimension; producto.inversionNueva = value.inversionNueva; producto.acumulacionCostoid = value.acumulacionCostoid; producto.usuarioActualizo = User.Identity.Name; producto.fechaActualizacion = DateTime.Now; ret = ProductoDAO.guardarProducto(producto, true); if (ret) { String pagosPlanificados = value.pagosPlanificados; if (!producto.acumulacionCostoid.Equals(2) || pagosPlanificados != null && pagosPlanificados.Length > 0) { List <PagoPlanificado> pagosActuales = PagoPlanificadoDAO.getPagosPlanificadosPorObjeto(producto.id, 3); foreach (PagoPlanificado pagoTemp in pagosActuales) { PagoPlanificadoDAO.eliminarTotalPagoPlanificado(pagoTemp); } } if (producto.acumulacionCostoid.Equals(2) && pagosPlanificados != null && pagosPlanificados.Length > 0) { JArray pagosArreglo = JArray.Parse((string)value.pagosPlanificados); for (int i = 0; i < pagosArreglo.Count; i++) { JObject objeto = (JObject)pagosArreglo[i]; DateTime fechaPago = objeto["fechaPago"] != null?Convert.ToDateTime(objeto["fechaPago"].ToString()) : default(DateTime); decimal monto = objeto["pago"] != null?Convert.ToDecimal(objeto["pago"].ToString()) : default(decimal); PagoPlanificado pagoPlanificado = new PagoPlanificado(); pagoPlanificado.fechaPago = fechaPago; pagoPlanificado.pago = monto; pagoPlanificado.objetoId = producto.id; pagoPlanificado.objetoTipo = 3; pagoPlanificado.usuarioCreo = User.Identity.Name; pagoPlanificado.fechaCreacion = DateTime.Now; pagoPlanificado.estado = 1; ret = ret && PagoPlanificadoDAO.Guardar(pagoPlanificado); } } } if (ret) { List <ProductoPropiedad> productoPropiedades = ProductoPropiedadDAO.getProductoPropiedadesPorTipo(producto.productoTipoid); foreach (ProductoPropiedad productoPropiedad in productoPropiedades) { ProductoPropiedadValor productoPropVal = ProductoPropiedadValorDAO.getValorPorProdcutoYPropiedad(productoPropiedad.id, producto.id); if (productoPropVal != null) { ret = ret && ProductoPropiedadValorDAO.eliminarProductoPropiedadValor(productoPropVal.productoPropiedadid, productoPropVal.productoid); } } JArray datosDinamicos = JArray.Parse((string)value.camposDinamicos); for (int i = 0; i < datosDinamicos.Count; i++) { JObject data = (JObject)datosDinamicos[i]; if (data["valor"] != null && data["valor"].ToString().Length > 0 && data["valor"].ToString().CompareTo("null") != 0) { ProductoPropiedad productoPropiedad = ProductoPropiedadDAO.getProductoPropiedad(Convert.ToInt32(data["id"])); ProductoPropiedadValor valor = new ProductoPropiedadValor(); valor.productos = producto; valor.productoid = producto.id; valor.productoPropiedads = productoPropiedad; valor.productoPropiedadid = productoPropiedad.id; valor.usuarioCreo = User.Identity.Name; valor.fechaCreacion = DateTime.Now; switch (productoPropiedad.datoTipoid) { case 1: valor.valorString = data["valor"].ToString(); break; case 2: valor.valorEntero = Convert.ToInt32(data["valor"].ToString()); break; case 3: valor.valorDecimal = Convert.ToDecimal(data["valor"].ToString()); break; case 4: valor.valorEntero = data["valor"].ToString() == "true" ? 1 : 0; break; case 5: valor.valorTiempo = Convert.ToDateTime(data["valor_f"].ToString()); break; } ret = (ret && ProductoPropiedadValorDAO.guardarProductoPropiedadValor(valor)); } } } return(Ok(new { success = ret, id = producto.id, usuarioCreo = producto.usuarioCreo, usuarioActualizo = producto.usuarioActualizo, fechaCreacion = producto.fechaCreacion.ToString("dd/MM/yyyy H:mm:ss"), fechaActualizacion = producto.fechaActualizacion != null ? producto.fechaActualizacion.Value.ToString("dd/MM/yyyy H:mm:ss") : null })); } else { return(Ok(new { success = false })); } } catch (Exception e) { CLogger.write("3", "ProductoController.class", e); return(BadRequest(500)); } }