public List <Articulos> obtieneArticulos(long almacenId) { List <Modelos.Articulos> result = new List <Modelos.Articulos>(); Modelos.Articulos ent; string sql = "SELECT ca.CLAVE_ARTICULO, a.articulo_id, a.NOMBRE, a.ESTATUS, a.COSTO_ULTIMA_COMPRA, " + "cc.almacen_id, cc.EXISTENCIA, cc.VALOR_TOTAL " + "from articulos a " + "left join CAPAS_COSTOS cc on (a.ARTICULO_ID = cc.ARTICULO_ID) " + "left join claves_articulos ca on (a.articulo_id = ca.ARTICULO_ID) " + "WHERE A.ESTATUS = 'A' AND CA.ROL_CLAVE_ART_ID = 17 and cc.almacen_Id = @almacenId " + "ORDER BY A.NOMBRE"; // define conexion con la cadena de conexion using (var conn = this._conexionFB.getConexionFB()) { // abre la conexion conn.Open(); using (var cmd = new FbCommand()) { cmd.Connection = conn; cmd.Parameters.AddWithValue("@almacenId", almacenId); ManejoSql_FB res = Utilerias.EjecutaSQL(sql, cmd); if (res.ok) { if (res.reader.HasRows) { while (res.reader.Read()) { ent = new Modelos.Articulos(); ent.articuloId = Convert.ToInt64(res.reader["ARTICULO_ID"]); ent.cvearticulo = Convert.ToString(res.reader["CLAVE_ARTICULO"]); ent.articulo = Convert.ToString(res.reader["NOMBRE"]); ent.estatus = Convert.ToString(res.reader["ESTATUS"]); // lista if (res.reader["EXISTENCIA"] is DBNull) { ent.costo = 0; } else { if (res.reader["VALOR_TOTAL"] is DBNull) { ent.costo = 0; } else { decimal costo = 0; decimal exis = Convert.ToDecimal(res.reader["EXISTENCIA"]); decimal valT = Convert.ToDecimal(res.reader["VALOR_TOTAL"]); if (valT == 0) { ent.costo = costo; } else { costo = valT / exis; ent.costo = Math.Round(costo, 2); } } } result.Add(ent); } } } else { throw new Exception(res.numErr + ": " + res.descErr); } // cerrar el reader res.reader.Close(); } } return(result); }
// guarda bitacora de cambios de precios public void guardaBitacora(List <Articulos> anteriores, List <Articulos> seleccionados, long resultado) { int rows = 0; MySqlTransaction trans; using (var conn = this._conexionMySQL.getConexionMySQL()) { conn.Open(); using (var cmd = new MySqlCommand()) { trans = conn.BeginTransaction(); try { cmd.Connection = conn; cmd.Transaction = trans; // inserta los articulos string sqlDet = "INSERT INTO bitacora_det (id_bitacora, clave, prec_lista, prec_minimo, prec_mayoreo, prec_filial, prec_imss, medio_mayoreo) " + "VALUES (@idBit, @clave, @precLista, @precMinimo, @precMayo, @precFilial, @precImss, @medioMayo)"; Modelos.Articulos ant; foreach (Modelos.Articulos art in seleccionados) { ant = new Modelos.Articulos(); ant = anteriores.Where(w => w.clave.Equals(art.clave)).FirstOrDefault(); // define parametros cmd.Parameters.AddWithValue("@idBit", resultado); cmd.Parameters.AddWithValue("@clave", art.clave); cmd.Parameters.AddWithValue("@precLista", ant.precLista != art.precLista ? ("A:" + ant.precLista + " => N:" + art.precLista) : "-"); cmd.Parameters.AddWithValue("@precMinimo", ant.precMinimo != art.precMinimo ? ("A:" + ant.precMinimo + " => N:" + art.precMinimo) : "-"); cmd.Parameters.AddWithValue("@precMayo", ant.precMayoreo != art.precMayoreo ? ("A:" + ant.precMayoreo + " => N:" + art.precMayoreo) : "-"); cmd.Parameters.AddWithValue("@precFilial", ant.precFilial != art.precFilial ? ("A:" + ant.precFilial + " => N:" + art.precFilial) : "-"); cmd.Parameters.AddWithValue("@precImss", ant.precIMSS != art.precIMSS ? ("A:" + ant.precIMSS + " => N:" + art.precIMSS) : "-"); cmd.Parameters.AddWithValue("@medioMayo", ant.medioMayoreo != art.medioMayoreo ? ("A:" + ant.medioMayoreo + " => N:" + art.medioMayoreo) : "-"); ManejoSql_My res = Utilerias.EjecutaSQL(sqlDet, ref rows, cmd); if (!res.ok) { throw new Exception(res.numErr + ": " + res.descErr); } cmd.Parameters.Clear(); } trans.Commit(); } catch (Exception e) { trans.Rollback(); throw new Exception(e.Message); } } } }
// obtiene todos los articulos de microsip (FIREBIRD) public List <Articulos> obtieneArticulos(Dictionary <string, long> precEmpr) { List <Modelos.Articulos> result = new List <Modelos.Articulos>(); Modelos.Articulos ent; string sql = "SELECT CA.CLAVE_ARTICULO, A.ARTICULO_ID, A.NOMBRE, " + "LISTA.PRECIO AS LISTA, " + "MINIMO.PRECIO AS MINIMO, " + "MAYOREO.PRECIO AS MAYOREO, " + "FILIAL.PRECIO AS FILIAL, " + "IMSS.PRECIO AS IMSS, " + "MEDIO_MAYO.PRECIO AS MEDIO_MAYO " + "FROM CLAVES_ARTICULOS CA " + "LEFT JOIN ARTICULOS A ON (CA.ARTICULO_ID = A.ARTICULO_ID) " + "LEFT JOIN " + "(SELECT ARTICULO_ID, PRECIO FROM PRECIOS_ARTICULOS WHERE PRECIO_EMPRESA_ID = @idLista) LISTA " + "ON (CA.ARTICULO_ID = LISTA.ARTICULO_ID) " + "LEFT JOIN " + "(SELECT ARTICULO_ID, PRECIO FROM PRECIOS_ARTICULOS WHERE PRECIO_EMPRESA_ID = @idMinimo) MINIMO " + "ON (CA.ARTICULO_ID = MINIMO.ARTICULO_ID) " + "LEFT JOIN " + "(SELECT ARTICULO_ID, PRECIO FROM PRECIOS_ARTICULOS WHERE PRECIO_EMPRESA_ID = @idMayoreo) MAYOREO " + "ON (CA.ARTICULO_ID = MAYOREO.ARTICULO_ID) " + "LEFT JOIN " + "(SELECT ARTICULO_ID, PRECIO FROM PRECIOS_ARTICULOS WHERE PRECIO_EMPRESA_ID = @idFilial) FILIAL " + "ON (CA.ARTICULO_ID = FILIAL.ARTICULO_ID) " + "LEFT JOIN " + "(SELECT ARTICULO_ID, PRECIO FROM PRECIOS_ARTICULOS WHERE PRECIO_EMPRESA_ID = @idImss) IMSS " + "ON (CA.ARTICULO_ID = IMSS.ARTICULO_ID) " + "LEFT JOIN " + "(SELECT ARTICULO_ID, PRECIO FROM PRECIOS_ARTICULOS WHERE PRECIO_EMPRESA_ID = @idMedioMayoreo) MEDIO_MAYO " + "ON (CA.ARTICULO_ID = MEDIO_MAYO.ARTICULO_ID) " + "WHERE A.ESTATUS = 'A' AND CA.ROL_CLAVE_ART_ID = 17 " + "ORDER BY A.NOMBRE"; // define conexion con la cadena de conexion using (var conn = this._conexionFB.getConexionFB()) { // abre la conexion conn.Open(); using (var cmd = new FbCommand()) { cmd.Connection = conn; // parametros cmd.Parameters.AddWithValue("@idLista", precEmpr["precio de lista"]); cmd.Parameters.AddWithValue("@idMinimo", precEmpr["precio mínimo"]); cmd.Parameters.AddWithValue("@idMayoreo", precEmpr["prec.mayoreo"]); cmd.Parameters.AddWithValue("@idFilial", precEmpr["prec.filial"]); cmd.Parameters.AddWithValue("@idImss", precEmpr["prec.i.m.s.s."]); cmd.Parameters.AddWithValue("@idMedioMayoreo", precEmpr["medio mayoreo"]); ManejoSql_FB res = Utilerias.EjecutaSQL(sql, cmd); if (res.ok) { if (res.reader.HasRows) { while (res.reader.Read()) { ent = new Modelos.Articulos(); ent.idArticulo = Convert.ToInt64(res.reader["ARTICULO_ID"]); ent.clave = Convert.ToString(res.reader["CLAVE_ARTICULO"]); ent.articulo = Convert.ToString(res.reader["NOMBRE"]); // lista if (res.reader["LISTA"] is DBNull) { ent.precLista = null; } else { ent.precLista = Convert.ToDecimal(res.reader["LISTA"]); } // minimo if (res.reader["MINIMO"] is DBNull) { ent.precMinimo = null; } else { ent.precMinimo = Convert.ToDecimal(res.reader["MINIMO"]); } // mayoreo if (res.reader["MAYOREO"] is DBNull) { ent.precMayoreo = null; } else { ent.precMayoreo = Convert.ToDecimal(res.reader["MAYOREO"]); } // filial if (res.reader["FILIAL"] is DBNull) { ent.precFilial = null; } else { ent.precFilial = Convert.ToDecimal(res.reader["FILIAL"]); } // imss if (res.reader["IMSS"] is DBNull) { ent.precIMSS = null; } else { ent.precIMSS = Convert.ToDecimal(res.reader["IMSS"]); } // medio mayoreo if (res.reader["MEDIO_MAYO"] is DBNull) { ent.medioMayoreo = null; } else { ent.medioMayoreo = Convert.ToDecimal(res.reader["MEDIO_MAYO"]); } result.Add(ent); } } } else { throw new Exception(res.numErr + ": " + res.descErr); } // cerrar el reader res.reader.Close(); } } return(result); }
// regresa la lista de los articulos public List <Articulos> obtieneArticulos() { List <Articulos> result = new List <Articulos>(); Articulos ent; // string sql = "select idusuario, usuario from activos_usuarios where usuario = @usuario and clave = @clave"; string sql = "select id_articulo, clave, nombre, " + "prec_lista, prec_minimo, prec_mayoreo, " + "prec_filial, prec_imss, medio_mayoreo " + "from articulos"; // define conexion con la cadena de conexion using (var conn = this._conexionMySQL.getConexionMySQL()) { // abre la conexion conn.Open(); using (var cmd = new MySqlCommand()) { cmd.Connection = conn; ManejoSql_My res = Utilerias.EjecutaSQL(sql, cmd); if (res.ok) { while (res.reader.Read()) { ent = new Modelos.Articulos(); ent.idArticulo = Convert.ToInt64(res.reader["id_articulo"]); ent.articulo = Convert.ToString(res.reader["nombre"]); ent.clave = Convert.ToString(res.reader["clave"]); // lista if (res.reader["prec_lista"] is DBNull) { ent.precLista = null; } else { ent.precLista = Convert.ToDecimal(Convert.ToString(res.reader["prec_lista"]).TrimEnd(new Char[] { '0' })); //ent.precLista = Convert.ToDecimal(res.reader["prec_lista"]); } // minimo if (res.reader["prec_minimo"] is DBNull) { ent.precMinimo = null; } else { ent.precMinimo = Convert.ToDecimal(Convert.ToString(res.reader["prec_minimo"]).TrimEnd(new Char[] { '0' })); //ent.precMinimo = Convert.ToDecimal(res.reader["prec_minimo"]); } // mayoreo if (res.reader["prec_mayoreo"] is DBNull) { ent.precMayoreo = null; } else { ent.precMayoreo = Convert.ToDecimal(Convert.ToString(res.reader["prec_mayoreo"]).TrimEnd(new Char[] { '0' })); //ent.precMayoreo = Convert.ToDecimal(res.reader["prec_mayoreo"]); } // filial if (res.reader["prec_filial"] is DBNull) { ent.precFilial = null; } else { ent.precFilial = Convert.ToDecimal(Convert.ToString(res.reader["prec_filial"]).TrimEnd(new Char[] { '0' })); //ent.precFilial = Convert.ToDecimal(res.reader["prec_filial"]); } // imss if (res.reader["prec_imss"] is DBNull) { ent.precIMSS = null; } else { ent.precIMSS = Convert.ToDecimal(Convert.ToString(res.reader["prec_imss"]).TrimEnd(new Char[] { '0' })); //ent.precIMSS = Convert.ToDecimal(res.reader["prec_imss"]); } // medio mayoreo if (res.reader["medio_mayoreo"] is DBNull) { ent.medioMayoreo = null; } else { ent.medioMayoreo = Convert.ToDecimal(Convert.ToString(res.reader["medio_mayoreo"]).TrimEnd(new Char[] { '0' })); //ent.medioMayoreo = Convert.ToDecimal(res.reader["medio_mayoreo"]); } result.Add(ent); } } else { throw new Exception(res.numErr + ": " + res.descErr); } // cerrar el reader res.reader.Close(); } } return(result); }