public static bool guardarComponentePropiedadValor(ComponentePropiedadValor componentePropiedadValor)
        {
            bool ret = false;

            try
            {
                using (DbConnection db = new OracleContext().getConnection())
                {
                    int existe = db.ExecuteScalar <int>("SELECT COUNT(*) FROM componente_propiedad_valor WHERE componenteid=:componenteId AND componente_propiedadid=:propiedadid",
                                                        new { componenteId = componentePropiedadValor.componenteid, propiedadid = componentePropiedadValor.componentePropiedadid });

                    if (existe > 0)
                    {
                        int guardado = db.Execute("UPDATE componente_propiedad_valor SET valor_string=:valorString, valor_entero=:valorEntero, valor_decimal=:valorDecimal, " +
                                                  "valor_tiempo=:valorTiempo, usuario_creo=:usuarioCreo, usuario_actualizo=:usuarioActualizo, fecha_creacion=:fechaCreacion, fecha_actualizacion=:fechaActualizacion " +
                                                  "WHERE componenteid=:componenteid AND componente_propiedadid=:componentePropiedadid", componentePropiedadValor);

                        ret = guardado > 0 ? true : false;
                    }
                    else
                    {
                        int guardado = db.Execute("INSERT INTO componente_propiedad_valor VALUES (:componenteid, :componentePropiedadid, :valorString, :valorEntero, :valorDecimal, " +
                                                  ":valorTiempo, :usuarioCreo, :usuarioActualizo, :fechaCreacion, :fechaActualizacion)", componentePropiedadValor);

                        ret = guardado > 0 ? true : false;
                    }
                }
            }
            catch (Exception e)
            {
                CLogger.write("2", "ComponentePropiedadValorDAO.class", e);
            }
            return(ret);
        }
Beispiel #2
0
        public IActionResult ComponentePropiedadPorTipo(int idComponente, int idComponenteTipo)
        {
            try
            {
                List <ComponentePropiedad> compoentepropiedades = ComponentePropiedadDAO.getComponentePropiedadesPorTipoComponente(idComponenteTipo);

                List <Dictionary <String, Object> > campos = new List <Dictionary <String, Object> >();
                foreach (ComponentePropiedad componentepropiedad in compoentepropiedades)
                {
                    Dictionary <String, Object> campo = new Dictionary <String, Object>();
                    campo.Add("id", componentepropiedad.id);
                    campo.Add("nombre", componentepropiedad.nombre);
                    campo.Add("tipo", componentepropiedad.datoTipoid);
                    ComponentePropiedadValor coomponentePropiedadValor = ComponentePropiedadValorDAO.getValorPorComponenteYPropiedad(componentepropiedad.id, idComponente);
                    if (coomponentePropiedadValor != null)
                    {
                        switch (componentepropiedad.datoTipoid)
                        {
                        case 1:
                            campo.Add("valor", coomponentePropiedadValor.valorString);
                            break;

                        case 2:
                            campo.Add("valor", coomponentePropiedadValor.valorEntero);
                            break;

                        case 3:
                            campo.Add("valor", coomponentePropiedadValor.valorDecimal);
                            break;

                        case 4:
                            campo.Add("valor", coomponentePropiedadValor.valorEntero == 1 ? true : false);
                            break;

                        case 5:
                            campo.Add("valor", coomponentePropiedadValor.valorTiempo != null ? coomponentePropiedadValor.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, componentepropiedades = estructuraCamposDinamicos }));
            }
            catch (Exception e)
            {
                CLogger.write("9", "ComponentePropiedadController.class", e);
                return(BadRequest(500));
            }
        }
        public static ComponentePropiedadValor getValorPorComponenteYPropiedad(int idPropiedad, int idComponente)
        {
            ComponentePropiedadValor ret = null;

            try
            {
                using (DbConnection db = new OracleContext().getConnection())
                {
                    ret = db.QueryFirstOrDefault <ComponentePropiedadValor>("SELECT * FROM componente_propiedad_valor WHERE componenteid=:componenteId AND " +
                                                                            "componente_propiedadid=:propiedadid", new { componenteId = idComponente, propiedadid = idPropiedad });
                }
            }
            catch (Exception e)
            {
                CLogger.write("1", "ProductoPropiedadValorDAO.class", e);
            }
            return(ret);
        }
        public static bool eliminarTotalComponentePropiedadValor(ComponentePropiedadValor componentePropiedadValor)
        {
            bool ret = false;

            try
            {
                using (DbConnection db = new OracleContext().getConnection())
                {
                    int eliminado = db.Execute("DELETE FROM componente_propiedad_valor WHERE componenteid=:componenteid AND componente_propiedadid=:componentePropiedadid",
                                               new { componenteid = componentePropiedadValor.componenteid, componentePropiedadid = componentePropiedadValor.componentePropiedadid });

                    ret = eliminado > 0 ? true : false;
                }
            }
            catch (Exception e)
            {
                CLogger.write("3", "ComponentePropiedadValorDAO.class", e);
            }
            return(ret);
        }
Beispiel #5
0
        public IActionResult Componente(int id, [FromBody] dynamic value)
        {
            try
            {
                bool result = false;
                ComponenteValidator validator = new ComponenteValidator();
                ValidationResult    results   = validator.Validate(value);

                if (results.IsValid)
                {
                    Componente componente = ComponenteDAO.getComponentePorId(id, User.Identity.Name);
                    componente.nombre            = value.nombre;
                    componente.descripcion       = value.descripcion;
                    componente.componenteTipoid  = value.componenteTipoid;
                    componente.proyectoid        = value.proyectoid;
                    componente.ueunidadEjecutora = value.ueunidadEjecutora;
                    componente.ejercicio         = value.ejercicio;
                    componente.entidad           = value.entidad;
                    componente.snip                = value.snip;
                    componente.programa            = value.programa;
                    componente.subprograma         = value.subprograma;
                    componente.proyecto            = value.proyecto;
                    componente.actividad           = value.actividad;
                    componente.obra                = value.obra;
                    componente.renglon             = value.renglon;
                    componente.ubicacionGeografica = value.ubicacionGeografica;
                    componente.latitud             = value.latitud;
                    componente.longitud            = value.longitud;
                    componente.costo               = value.costo;
                    componente.acumulacionCostoid  = value.acumulacionCostoid;
                    componente.fechaInicio         = value.fechaInicio;
                    componente.fechaFin            = value.fechaFin;
                    componente.duracion            = value.duracion;
                    componente.duracionDimension   = value.duracionDimension;
                    componente.esDeSigade          = value.esDeSigade;
                    componente.inversionNueva      = value.inversionNueva;
                    componente.fechaActualizacion  = DateTime.Now;
                    componente.usuarioActualizo    = User.Identity.Name;
                    componente.fuentePrestamo      = value.fuentePrestamo;
                    componente.fuenteDonacion      = value.fuenteDonacion;
                    componente.fuenteNacional      = value.fuenteNacional;

                    DateTime fechaInicioReal;
                    DateTime.TryParse((string)value.fechaInicioReal, out fechaInicioReal);
                    componente.fechaInicioReal = fechaInicioReal;

                    DateTime fechaFinReal;
                    DateTime.TryParse((string)value.fechaFinReal, out fechaFinReal);
                    componente.fechaFinReal = fechaFinReal;

                    result = ComponenteDAO.guardarComponente(componente, true);

                    if (result)
                    {
                        String pagosPlanificados = value.pagosPlanificados;
                        if (!componente.acumulacionCostoid.Equals(2) || pagosPlanificados != null && pagosPlanificados.Length > 0)
                        {
                            List <PagoPlanificado> pagosActuales = PagoPlanificadoDAO.getPagosPlanificadosPorObjeto(componente.id, 1);
                            foreach (PagoPlanificado pagoTemp in pagosActuales)
                            {
                                PagoPlanificadoDAO.eliminarTotalPagoPlanificado(pagoTemp);
                            }
                        }

                        if (componente.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      = componente.id;
                                pagoPlanificado.objetoTipo    = 1;
                                pagoPlanificado.usuarioCreo   = User.Identity.Name;
                                pagoPlanificado.fechaCreacion = DateTime.Now;
                                pagoPlanificado.estado        = 1;
                                result = result && PagoPlanificadoDAO.Guardar(pagoPlanificado);
                            }
                        }
                    }

                    if (result)
                    {
                        List <ComponentePropiedad> componentePropiedades = ComponentePropiedadDAO.getComponentePropiedadesPorTipoComponente(componente.componenteTipoid);

                        foreach (ComponentePropiedad componentePropiedad in componentePropiedades)
                        {
                            ComponentePropiedadValor compPropVal = ComponentePropiedadValorDAO.getValorPorComponenteYPropiedad(componentePropiedad.id, componente.id);
                            result &= ComponentePropiedadValorDAO.eliminarTotalComponentePropiedadValor(compPropVal);
                        }

                        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)
                            {
                                ComponentePropiedad      componentePropiedad = ComponentePropiedadDAO.getComponentePropiedadPorId(Convert.ToInt32(data["id"]));
                                ComponentePropiedadValor valor = new ComponentePropiedadValor();
                                valor.componentes           = componente;
                                valor.componenteid          = componente.id;
                                valor.componentePropiedads  = componentePropiedad;
                                valor.componentePropiedadid = componentePropiedad.id;
                                valor.usuarioCreo           = User.Identity.Name;
                                valor.fechaCreacion         = DateTime.Now;

                                switch (componentePropiedad.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;
                                }
                                result &= ComponentePropiedadValorDAO.guardarComponentePropiedadValor(valor);
                            }
                        }
                    }

                    return(Ok(new
                    {
                        success = true,
                        id = componente.id,
                        usuarioCreo = componente.usuarioCreo,
                        usuarioActualizo = componente.usuarioActualizo,
                        fechaCreacion = componente.fechaCreacion.ToString("dd/MM/yyyy H:mm:ss"),
                        fechaActualizacion = componente.fechaActualizacion != null ? componente.fechaActualizacion.Value.ToString("dd/MM/yyyy H:mm:ss") : null
                    }));
                }
                else
                {
                    return(Ok(new { success = false }));
                }
            }
            catch (Exception e)
            {
                CLogger.write("11", "ComponenteController.class", e);
                return(BadRequest(500));
            }
        }