/// <summary> /// Metodo que permite obtener el listado de todos los objetos Compra /// </summary> /// <returns></returns> public ComprasProveedorCollection getComprasProveedor() { SqlCommand cmd = new SqlCommand("PACK_COMPRAS_PROVEEDOR.PR_COMPRAS_PROVEEDOR_C", getConexion()); cmd.CommandType = CommandType.StoredProcedure; try { SqlDataReader dr = cmd.ExecuteReader(); ComprasProveedorCollection lsComprasProveedor = new ComprasProveedorCollection(); CompraProveedor objCompraProveedor = null; while (dr.Read()) { //Apartamos el valor de idCompra de la Compra actual, para luego utilizarla como referencia int idCompra = dr.GetInt16(0); //Creamos un objeto Compra sin DetalleCompra objCompraProveedor = new CompraProveedor( idCompra, DBHelper.getProveedorPorID(dr.GetInt16(1)), dr.GetDateTime(2)); //Seteamos el DetalleCompra objCompraProveedor.LsDetalles = DBHelper.getDetallesCompraProveedor(idCompra); } cmd.Connection.Close(); return(lsComprasProveedor); } catch (Exception e) { cmd.Connection.Close(); throw e; } }
/// <summary> /// Metodo que permite obtener el objeto CompraProveedor especificado en el parametro de entrada /// </summary> /// <param name="idCompra"></param> /// <returns></returns> public CompraProveedor getCompraProveedorPorID(int idCompra) { SqlCommand cmd = new SqlCommand("PACK_COMPRAS_PROVEEDOR.PR_COMPRAS_PROVEEDOR_POR_ID", getConexion()); cmd.CommandType = CommandType.StoredProcedure; try { cmd.Parameters.AddWithValue("@p_id_compra", idCompra); SqlDataReader dr = cmd.ExecuteReader(); CompraProveedor objCompraProveedor = null; if (dr.Read()) { //Creamos CompraProveedor sin Detalle objCompraProveedor = new CompraProveedor( dr.GetInt16(0), DBHelper.getProveedorPorID(dr.GetInt16(1)), dr.GetDateTime(2)); //Obtenemos el DetalleCompra objCompraProveedor.LsDetalles = DBHelper.getDetallesCompraProveedor(idCompra); } cmd.Connection.Close(); return(objCompraProveedor); } catch (Exception e) { cmd.Connection.Close(); throw e; } }
/// <summary> /// Metodo que permite insertar el objeto CompraProveedor especificado, con su coleccion de objetos DetalleCompraProveedor /// </summary> /// <param name="compraProveedor"></param> /// <returns></returns> public int insertarCompraProveedor(CompraProveedor compraProveedor) { SqlCommand cmd = new SqlCommand("PACK_COMPRAS_PROVEEDOR.PR_COMPRAS_PROVEEDOR_A", getConexion()); cmd.CommandType = CommandType.StoredProcedure; try { SqlParameter paramId = new SqlParameter("@p_id_compra_proveedor", SqlDbType.Int, 4); paramId.Direction = ParameterDirection.Output; cmd.Parameters.AddWithValue("@p_id_proveedor", compraProveedor.Proveedor.IdProveedor); cmd.Parameters.AddWithValue("@p_fecha", compraProveedor.Fecha); //Abrimos una transaccion para almacenar tanto el objeto CompraProveedor como sus DetallesCompraProveedor cmd.Connection.BeginTransaction(); //Almacenamos el objeto CompraProveedor sin Detalle cmd.ExecuteNonQuery(); //Almacenamos los objetos DetalleCompraProveedor DetalleCompraProveedorDAL detalleCompraProveedorDAL = new DetalleCompraProveedorDAL(); detalleCompraProveedorDAL.insertarDetallesCompraProveedor(compraProveedor); cmd.Transaction.Commit(); cmd.Connection.Close(); return(Convert.ToInt16(paramId)); } catch (Exception e) { cmd.Transaction.Rollback(); cmd.Connection.Close(); throw e; } }
/// <summary> /// Metodo que permite insertar una coleccion de objetos DetalleCompraProveedor de una CompraProveedor especificada en el parametro de entrada /// </summary> /// <param name="compraProveedor"></param> /// <returns>Valor Int con la cantidad de objetos DetalleCompraProveedor insertados en la Base de Datos</returns> public int insertarDetallesCompraProveedor(CompraProveedor compraProveedor) { SqlCommand cmd = new SqlCommand("PACK_DETALLES_COMPRA_PROVEEDOR.PR_DETALLES_COMPRA_PROVEEDOR_A", getConexion()); cmd.CommandType = CommandType.StoredProcedure; int cantidadDetallesInsertados = 0; try { cmd.Connection.BeginTransaction(); foreach (DetalleCompraProveedor itemDetalle in compraProveedor.LsDetalles) { cmd.Parameters.AddWithValue("@p_id_compra", compraProveedor.IdCompra); cmd.Parameters.AddWithValue("@p_id_insumo", itemDetalle.Insumo.IdInsumo); cmd.Parameters.AddWithValue("@p_cantidad", itemDetalle.Cantidad); cmd.Parameters.AddWithValue("@p_precio_unitario", itemDetalle.PrecioUnitario); cmd.ExecuteNonQuery(); cantidadDetallesInsertados++; cmd.Parameters.Clear(); } cmd.Transaction.Commit(); cmd.Connection.Close(); return(cantidadDetallesInsertados); } catch (Exception e) { cmd.Transaction.Rollback(); cmd.Connection.Close(); throw e; } }