Exemplo n.º 1
0
        public static List<odts.DetalleDeterminacion> GetAsociados(int artiId1)
        {
            List<odts.DetalleDeterminacion> lista = new List<odts.DetalleDeterminacion>();


            using (SqlConnection cn = new SqlConnection(ConfigurationSettings.AppSettings["conexionQ"]))
            {
                try
                {
                    SqlCommand cmd = new SqlCommand(@"
                                        SELECT B.ARTI_ID, B.ARTI_ID1, B.ARTI_DESCRIPCION, B.ARTI_PNT_METODOLOGIA, B.ARTI_DETERMINACIONES, B.TIPAR_ID, ISNULL(M.DEPA_ID, ISNULL(D.DEPA_ID,0)) DEPA_ID
                                        FROM ARTICULO_ASOCIADO A
                                        INNER JOIN ARTICULOS B ON B.ARTI_ID1 = A.ASOCIADO_ID1
LEFT OUTER JOIN MODELOS M ON M.ARTI_ID = B.ARTI_ID
LEFT OUTER JOIN DETERMINACION_TIAN DT ON DT.ARTI_ID = B.ARTI_ID
LEFT OUTER JOIN DETERMINACIONES D ON D.DETE_ID = DT.DETE_ID
                                        WHERE A.ARTI_ID1 = @ARTI_ID1
                    ", cn);
                    cmd.CommandType = System.Data.CommandType.Text;
                    cmd.Parameters.AddWithValue("@ARTI_ID1", artiId1);

                    cn.Open();
                    SqlDataReader reader = cmd.ExecuteReader();

                    if (reader.HasRows)
                    {
                        while (reader.Read())
                        {
                            odts.DetalleDeterminacion a = new odts.DetalleDeterminacion();
                            a.DetalleDescripcion = Utilidades.UtilsBD.DBValueToRequiredValue<string>(reader["ARTI_DESCRIPCION"]);
                            a.ArtiId1 = Utilidades.UtilsBD.DBValueToRequiredValue<int>(reader["ARTI_ID1"]);
                            a.ArtiDeterminaciones = Utilidades.UtilsBD.DBValueToRequiredValue<string>(reader["ARTI_DETERMINACIONES"]);
                            a.ArtiPNTMetodologia = Utilidades.UtilsBD.DBValueToRequiredValue<string>(reader["ARTI_PNT_METODOLOGIA"]);
                            a.DepartamentoId = Utilidades.UtilsBD.DBValueToRequiredValue<int>(reader["DEPA_ID"]);

                            lista.Add(a);
                        }
                    }

                    cn.Close();
                }
                catch (System.StackOverflowException ex)
                {
                    MessageBox.Show("Existe un bucle entre los artículos asociados" + Environment.NewLine + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Ocurrió un error al buscar los artículos asociados" + Environment.NewLine + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                }
            }

            return lista;
        }
Exemplo n.º 2
0
        // Devuelve las lineas (detalle) de un bloque
        public static List<odts.PresupuestoVentaDetalle> GetDetalleByBloque(string docuId, string presuvId, int bloqueId)
        {
            List<odts.PresupuestoVentaDetalle> lista = new List<odts.PresupuestoVentaDetalle>();

            using (SqlConnection cn = new SqlConnection(ConfigurationSettings.AppSettings["conexionQ"]))
            {
                SqlCommand cmd = new SqlCommand(
                    @"SELECT A.LIDO_ID, A.PRESUVL_LINEA, A.PRESUVL_SUBLINEA, A.ARTI_ID1, A.PRESUVL_DESCRIPCION, A.PRESUVL_CANTIDAD, A.UNID_ID, B.UNID_DESCRIPCION, A.PRESUVL_PRECIO, A.GRDE_ID, C.GRDE_DESCRIPCION, A.COMP_ID, A.ARTI_DETERMINACIONES, A.ARTI_PNT_METODOLOGIA
                    FROM PRESUPUESTOSV_LI A
                    INNER JOIN UNIDADES B ON B.UNID_ID = A.UNID_ID
                    LEFT OUTER JOIN GRUPOS_DESCUENTOS C ON C.GRDE_ID = A.GRDE_ID
                    WHERE A.DOCU_ID = @DOCU_ID AND A.PRESUV_ID = @PRESUV_ID AND A.BLOQUE_ID = @BLOQUE_ID AND A.LIDO_ID <> 'T' ", cn);

                cmd.CommandType = System.Data.CommandType.Text;
                cmd.Parameters.AddWithValue("@DOCU_ID", docuId);
                cmd.Parameters.AddWithValue("@PRESUV_ID", presuvId);
                cmd.Parameters.AddWithValue("@BLOQUE_ID", bloqueId);

                cn.Open();

                SqlDataReader reader = cmd.ExecuteReader();

                if (reader.HasRows)
                {
                    odts.DetalleModelo p = new odts.DetalleModelo();
                    while (reader.Read())
                    {
                        string tipoLinea = Utilidades.UtilsBD.DBValueToRequiredValue<string>(reader["LIDO_ID"]);

                        if (tipoLinea == "N")
                        {
                            p = new odts.DetalleModelo();
                            p.Linea = Utilidades.UtilsBD.DBValueToRequiredValue<int>(reader["PRESUVL_LINEA"]);
                            p.Sublinea = Utilidades.UtilsBD.DBValueToRequiredValue<int>(reader["PRESUVL_SUBLINEA"]);
                            p.ArtiId1 = Utilidades.UtilsBD.DBValueToRequiredValue<int>(reader["ARTI_ID1"]);
                            p.DetalleDescripcion = Utilidades.UtilsBD.DBValueToRequiredValue<string>(reader["PRESUVL_DESCRIPCION"]);
                            p.Cantidad = Utilidades.UtilsBD.DBValueToRequiredValue<decimal>(reader["PRESUVL_CANTIDAD"]);
                            p.UnidadId = Utilidades.UtilsBD.DBValueToRequiredValue<string>(reader["UNID_ID"]);
                            p.UnidadDescripcion = Utilidades.UtilsBD.DBValueToRequiredValue<string>(reader["UNID_DESCRIPCION"]);
                            p.Precio = Utilidades.UtilsBD.DBValueToRequiredValue<decimal>(reader["PRESUVL_PRECIO"]);
                            p.DescuentoId = Utilidades.UtilsBD.DBValueToOptionalValue<int>(reader["GRDE_ID"]);
                            p.DescuentoDescripcion = Utilidades.UtilsBD.DBValueToOptionalString(reader["GRDE_DESCRIPCION"]);
                            p.ComportamientoIVA = Utilidades.UtilsBD.DBValueToRequiredValue<int>(reader["COMP_ID"]);
                            p.ArtiDeterminaciones = Utilidades.UtilsBD.DBValueToOptionalString(reader["ARTI_DETERMINACIONES"]);
                            p.ArtiPNTMetodologia = Utilidades.UtilsBD.DBValueToOptionalString(reader["ARTI_PNT_METODOLOGIA"]);
                            lista.Add(p);
                        }
                        else if (tipoLinea == "N+")
                        {
                            odts.DetalleDeterminacion dd = new odts.DetalleDeterminacion();
                            dd.Linea = Utilidades.UtilsBD.DBValueToRequiredValue<int>(reader["PRESUVL_LINEA"]);
                            dd.Sublinea = Utilidades.UtilsBD.DBValueToRequiredValue<int>(reader["PRESUVL_SUBLINEA"]);
                            dd.ArtiId1 = Utilidades.UtilsBD.DBValueToRequiredValue<int>(reader["ARTI_ID1"]);
                            dd.DetalleDescripcion = Utilidades.UtilsBD.DBValueToRequiredValue<string>(reader["PRESUVL_DESCRIPCION"]);
                            dd.Cantidad = Utilidades.UtilsBD.DBValueToRequiredValue<decimal>(reader["PRESUVL_CANTIDAD"]);
                            dd.UnidadId = Utilidades.UtilsBD.DBValueToRequiredValue<string>(reader["UNID_ID"]);
                            dd.UnidadDescripcion = Utilidades.UtilsBD.DBValueToRequiredValue<string>(reader["UNID_DESCRIPCION"]);
                            dd.Precio = Utilidades.UtilsBD.DBValueToRequiredValue<decimal>(reader["PRESUVL_PRECIO"]);
                            dd.DescuentoId = Utilidades.UtilsBD.DBValueToOptionalValue<int>(reader["GRDE_ID"]);
                            dd.DescuentoDescripcion = Utilidades.UtilsBD.DBValueToOptionalString(reader["GRDE_DESCRIPCION"]);
                            dd.ComportamientoIVA = Utilidades.UtilsBD.DBValueToRequiredValue<int>(reader["COMP_ID"]);
                            dd.ArtiDeterminaciones = Utilidades.UtilsBD.DBValueToOptionalString(reader["ARTI_DETERMINACIONES"]);
                            dd.ArtiPNTMetodologia = Utilidades.UtilsBD.DBValueToOptionalString(reader["ARTI_PNT_METODOLOGIA"]);
                            //lista.Add(p);
                            p.Determinaciones.Add(dd);
                        }
                        else
                        {
                            MessageBox.Show("Tipo de línea no contemplado, coméntalo con el responsable del desarrollo");
                        }



                    }
                }
                cn.Close();

            }


            return lista;
        }