//Este Método busca los productos relacionados a la formula que contiene al insumo y les actualiza el precio despues de actualizar el precio de la formula void ActuaizarPrecioProductos(int IdFormula, double PrecioUnitarioFormula) { CNProductos Productos = new CNProductos(conexion); CNFormulas Formulas = new CNFormulas(conexion); DataTable _Productos = Productos.ConsultaPorFormula(IdFormula); foreach (DataRow row in _Productos.Rows) { double CostoDetallesProducto = Convert.ToDouble(row["CostoTotalProducto"]) - Convert.ToDouble(row["CostoUnitario"]); row["CostoUnitario"] = PrecioGranel(PrecioUnitarioFormula, Convert.ToString(row["UnidadMedida"]), Convert.ToDouble(row["Cantidad"])); row["CostoTotalProducto"] = Convert.ToDouble(row["CostoUnitario"]) + CostoDetallesProducto; Productos.Actualizar(new ProductosModel { IdProducto = Convert.ToInt32(row["IdProducto"]), IdFormula = Convert.ToInt32(row["IdFormula"]), NombreProducto = Convert.ToString(row["NombreProducto"]), Cantidad = Convert.ToDecimal(row["Cantidad"]), UnidadMedida = Convert.ToString(row["UnidadMedida"]), CostoUnitario = Convert.ToDecimal(row["CostoUnitario"]), CostoTotalProducto = Convert.ToDecimal(row["CostoTotalProducto"]), Activo = (bool)(row["Activo"]), }); } }
public int ActualizarFormula(int IdFormula, FormulasModel F) { DataTable TablaProductosOld = cnProductos.ConsultaPorFormula(IdFormula); cnFormulas.Borrar(IdFormula); int id = 0;// Convert.ToInt32(BLF.Guardar(F)); MoverProductos(id, TablaProductosOld); cnProductos.BorrarPorFormula(IdFormula); return(id); }
public void ActualizarFormulasConDivisaExtranjera(int IdUsuario, double dolar) { this.dolar = dolar; DataTable TablaFormulas = cnDetFormula.ConsultaPorMoneda(); int[] IdFormulas = new int[TablaFormulas.Rows.Count]; for (int i = 0; i < TablaFormulas.Rows.Count; i++) { bool exists = false; for (int j = 0; j < IdFormulas.Length; j++) { if (Convert.ToInt32(TablaFormulas.Rows[i]["IdFormula"].ToString()) == IdFormulas[j]) { exists = true; } } if (!exists) { IdFormulas[i] = Convert.ToInt32(TablaFormulas.Rows[i]["IdFormula"]); } } for (int i = 0; i < IdFormulas.Length; i++) { if (IdFormulas[i] != 0) { DataTable Detalles = cnDetFormula.ConsultaPorFormula(IdFormulas[i]); DataTable Formula = cnFormulas.ConsultaPorId(IdFormulas[i]); DataTable TablaProductosOld = cnProductos.ConsultaPorFormula(IdFormulas[i]); int IdFormula = Convert.ToInt32(cnFormulas.Guardar(IdUsuario, CreaObjetoFormula(Formula), Detalles)); MoverProductos(IdFormula, TablaProductosOld); cnProductos.BorrarPorFormula(IdFormulas[i]); cnFormulas.Borrar(IdFormulas[i]); for (int k = 0; k < Detalles.Rows.Count; k++) { cnDetFormula.Guardar(CreaObjetoDetalleFormula(k, IdFormula, Detalles, dolar, IdUsuario)); } } } }
void CrearNuevoPrducto(List <int> lista, int IdFormula)//Este método crea un nuevo producto si se creo una nueva formula { for (int i = 0; i < lista.Count; i++) { DataTable listaProductos = cnProductos.ConsultaPorFormula(lista[i]); for (int j = 0; j < listaProductos.Rows.Count; j++) { DataTable DetallesProductos = cnDetProducto.ConsultaDetallesPorProducto(Convert.ToInt32(listaProductos.Rows[j]["IdProducto"])); cnProductos.Borrar(Convert.ToInt32(listaProductos.Rows[j]["IdProducto"])); ProductosModel _Productos = new ProductosModel { IdProducto = Convert.ToInt32(listaProductos.Rows[j]["IdProducto"]), IdFormula = IdFormula, NombreProducto = Convert.ToString(listaProductos.Rows[j]["NombreProducto"]), Cantidad = Convert.ToDecimal(listaProductos.Rows[j]["Cantidad"]), UnidadMedida = Convert.ToString(listaProductos.Rows[j]["UnidadMedida"]), CostoUnitario = Convert.ToDecimal(CalculaPrecioUnitarioProducto(IdFormula, Convert.ToInt32(listaProductos.Rows[j]["IdProducto"]))), Activo = (bool)(listaProductos.Rows[j]["Activo"]), }; _Productos.CostoTotalProducto = _Productos.CostoUnitario + Convert.ToDecimal(PrecioDetalles); int id = Convert.ToInt32(cnProductos.Guardar(_Productos)); foreach (DataRow row in DetallesProductos.Rows) { cnDetProducto.Guardar(new DetallesProductosModel { IdDetalle = 0, IdProducto = id, IdInsumo = Convert.ToInt32(row["IdInsumo"]), CostoInsumo = Convert.ToDecimal(row["Precio"]) }); } } } }
public DataSet PrintAFormula(int[] Idformula) { DataSet dtsret = new DataSet(); #region "ConsultandoFormulas" DataTable Formula = new DataTable(); if (Idformula.Length == 1) { Formula = cnFormulas.ConsultaPorId(Idformula[0]).Copy(); } else { Formula = cnFormulas.ConsultaPorId(Idformula[0]).Copy(); for (int i = 1; i < Idformula.Length; i++) { Formula.ImportRow(cnFormulas.ConsultaPorId(Idformula[i]).Rows[0]); } } Formula.TableName = "Formula"; dtsret.Tables.Add(Formula); #endregion #region "DetallesFormulas" DataTable DetallesFormula = new DataTable(); if (Idformula.Length == 1) { DetallesFormula = cnDetFormula.ConsultaPorFormula(Idformula[0]).Copy(); } else { DetallesFormula = cnDetFormula.ConsultaPorFormula(Idformula[0]).Copy(); for (int i = 1; i < Idformula.Length; i++) { DataTable Detalles = new DataTable(); Detalles = cnDetFormula.ConsultaPorFormula(Idformula[i]).Copy(); foreach (DataRow item in Detalles.Rows) { DetallesFormula.ImportRow(item); } } } DetallesFormula.TableName = "DetallesFormula"; dtsret.Tables.Add(DetallesFormula); #endregion #region "ConsultandoProductos" DataTable ProductosTerminados = new DataTable(); if (Idformula.Length == 1) { ProductosTerminados = cnProductos.ConsultaPorFormula(Idformula[0]).Copy(); } else { ProductosTerminados = cnProductos.ConsultaPorFormula(Idformula[0]).Copy(); for (int i = 1; i < Idformula.Length; i++) { DataTable Productos = cnProductos.ConsultaPorFormula(Idformula[i]).Copy(); foreach (DataRow item in Productos.Rows) { ProductosTerminados.ImportRow(item); } } } ProductosTerminados.TableName = "ProductosTerminados"; dtsret.Tables.Add(ProductosTerminados); #endregion #region "DetallesProductos" DataTable DetallesProducto = new DataTable(); try { DetallesProducto = cnDetProducto.ConsultaDetallesPorProducto(Convert.ToInt32(ProductosTerminados.Rows[0]["IdProducto"])).Copy(); if (ProductosTerminados.Rows.Count > 1) { foreach (DataRow item in ProductosTerminados.Rows) { DataTable DetProd = new DataTable(); DetProd = cnDetProducto.ConsultaDetallesPorProducto(Convert.ToInt32(item["IdProducto"])).Copy(); foreach (DataRow item1 in DetProd.Rows) { DetallesProducto.ImportRow(item1); } } } } catch { } DetallesProducto.TableName = "DetallesProducto"; dtsret.Tables.Add(DetallesProducto); #endregion return(dtsret); }