/// <summary> /// Metoda pro deleni /// </summary> /// <param name="formula">Vzorec</param> /// <param name="number1">Prvni cislo vzorce ktere uzivatel zada</param> /// <param name="number2">Druhe cislo vzorce ktere uzivatel zada</param> /// <returns>Vysledek po vypoctu</returns> public double Division(FormulasModel formula, double number1, double number2) { String example = number1 + "/" + number2; double result = new Expression(example).calculate(); return(result); }
public ActionResult Index() { FormulasModel rates = new FormulasModel(); rates.Rates = GetRates(); return(View(rates)); }
public int Actualizar(FormulasModel Objeto) { int res; try { using (SqlConnection con = new SqlConnection(conexion)) { using (SqlCommand cmd = new SqlCommand("spFormulasGuardar", con)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@IdFormula", SqlDbType.Int).Value = Objeto.IdFormula; cmd.Parameters.Add("@NombreFormula", SqlDbType.NVarChar).Value = Objeto.NombreFormula; cmd.Parameters.Add("@Cantidad", SqlDbType.Decimal).Value = Objeto.Cantidad; cmd.Parameters.Add("@Capacidad", SqlDbType.VarChar).Value = Objeto.Capacidad; cmd.Parameters.Add("@UnidadMedida", SqlDbType.NVarChar).Value = Objeto.UnidadMedida; cmd.Parameters.Add("@IdFamilia", SqlDbType.Int).Value = Objeto.IdFamilia; cmd.Parameters.Add("@DetalleAccion", SqlDbType.VarChar).Value = "A"; con.Open(); res = Convert.ToInt32(cmd.ExecuteScalar()); con.Close(); } } } catch (Exception ex) { throw new Exception("Error: " + ex.Message); } return(res); }
/// <summary> /// Metoda pro upravene nasobeni /// </summary> /// <param name="formula">Vzorec</param> /// <param name="number1">Prvni cislo vzorce ktere uzivatel zada</param> /// <param name="number2">Druhe cislo vzorce ktere uzivatel zada</param> /// <returns>Vysledek po vypoctu</returns> public double SpecialMultiplication(FormulasModel formula, double number1, double number2) { String example = number1 + "*" + number2 + "*" + number2; double result = new Expression(example).calculate(); return(result); }
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 int Actualizar(FormulasModel Parametro) { try { return(cdFormulas.Actualizar(Parametro)); } catch (Exception er) { throw new Exception(er.Message); } }
FormulasModel CreaObjetoFormula(DataTable Formula) { FormulasModel _Formula = new FormulasModel(); _Formula.IdFormula = 0; _Formula.NombreFormula = Formula.Rows[0]["NombreFormula"].ToString(); _Formula.Cantidad = Convert.ToDouble(Formula.Rows[0]["Cantidad"].ToString()); _Formula.Capacidad = Formula.Rows[0]["Capacidad"].ToString(); _Formula.UnidadMedida = Formula.Rows[0]["UnidadMedida"].ToString(); _Formula.IdFamilia = Convert.ToInt32(Formula.Rows[0]["IdFamilia"].ToString()); return(_Formula); }
private void btnDetalles_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (ValidaGUI()) { //AsignaGUIOjeto(); //BLL.BLLFormulas g = new BLL.BLLFormulas(BLL.Gral.gStrConexion, BLL.Gral.gStrUsuario); //string msj = g.Guardar(F); FormulasModel F = AsignaGUIOjeto2(); int IdFormula = 0;// new CNFormulas().Guardar(F); //frmDetallesFormulas frm = ; //frm.llenarCampos(txtNombre.Text, IdFormula.ToString(), cmbFamilia.Text, txtCantidad.Text + " " + cmbUnidad.Text, F.IdFamilia, F.UnidadMedida, txtCantidad.Text); new frmDetallesFormulas(IdFormula).ShowDialog(); Close(); } }
public FormulasDetail(FormulasModel formulaDetail) { InitializeComponent(); if (Device.OS == TargetPlatform.Windows) { NavigationPage.SetHasNavigationBar(this, false); } Title = formulaDetail.Name; Formula.Text = formulaDetail.Formula; FirstNameOfValue.Text = formulaDetail.FirstValue; FirstNameOfUnit.Text = formulaDetail.FirstValueUnit; SecondNameOfValue.Text = formulaDetail.SecondValue; SecondNameOfUnit.Text = formulaDetail.SecondValueUnit; formula = formulaDetail; }
public double GetResult(FormulasModel formula, double number1, double number2) { double result = 0; /// Vyber vzorce dle nazvu /// if (formula.Name.Equals("Výkon")) { result = GetPerformanceResult(formula, number1, number2); } else if (formula.Name.Equals("Rychlost")) { result = GetSpeedResult(formula, number1, number2); } else if (formula.Name.Equals("Tlak")) { result = GetSpeedResult(formula, number1, number2); } else if (formula.Name.Equals("Práce")) { result = GetWorkResult(formula, number1, number2); } else if (formula.Name.Equals("Proud")) { result = GetCurrentResult(formula, number1, number2); } else if (formula.Name.Equals("Odpor")) { result = GetResistanceResult(formula, number1, number2); } else if (formula.Name.Equals("Napětí")) { result = GetTensionResult(formula, number1, number2); } else if (formula.Name.Equals("Kmitočet")) { result = GetResistanceResult(formula, number1, number2); } else if (formula.Name.Equals("Energie")) { result = GetEnergyResult(formula, number1, number2); } return(result); }
public double GetCurrentResult(FormulasModel formula, double number1, double number2) { double result = mymath.Division(formula, number1, number2); return(result); }
public double GetWorkResult(FormulasModel formula, double number1, double number2) { double result = mymath.Multiplication(formula, number1, number2); return(result); }
public double GetEnergyResult(FormulasModel formula, double number1, double number2) { double result = mymath.SpecialMultiplication(formula, number1, number2); return(result); }
public int Guardar(int IdUser, FormulasModel Objeto, DataTable DetallesFormula) { int res; try { using (TransactionScope scope = new TransactionScope()) { res = cdFormulas.Guardar(Objeto); if (res < 1) { throw new Exception("Error al guardar datos generales de la fórmula."); } foreach (DataRow item in DetallesFormula.Rows) { cdDetFormula.Guardar(new DetallesFormulasModel { IdDetalle = Convert.ToInt32(item["IdDetalle"]), IdFormula = res, IdInsumo = Convert.ToInt32(item["IdInsumo"]), CantidadInsumo = Convert.ToDecimal(item["Cantidad"].ToString().Split(' ')[0]), UnidadMedidaInsumo = item["Cantidad"].ToString().Split(' ')[1], CostoInsumo = Convert.ToDecimal(item["Precio"]), IdUsuario = IdUser }); } if (Objeto.IdFormula > 0) { foreach (DataRow Producto in cdProductos.ConsultaGridPorFormula(Objeto.IdFormula).Rows) { decimal CostoMinimoFormula = Objeto.UnidadMedida.ToString().Equals("K") ? (Convert.ToDecimal(Objeto.CostoTotal) / (Objeto.Capacidad.ToString().ToUpper().StartsWith("K") ? ConversorUnidades.Kilos_Miligramos(Convert.ToDecimal(Objeto.Cantidad)) : Objeto.Capacidad.ToString().ToUpper().StartsWith("G") ? ConversorUnidades.Gramos_Miligramos(Convert.ToDecimal(Objeto.Cantidad)) : Convert.ToDecimal(Objeto.Cantidad))) : (Convert.ToDecimal(Objeto.CostoTotal) / (Objeto.Capacidad.ToString().ToUpper().StartsWith("L") ? ConversorUnidades.Litros_Mililitros(Convert.ToDecimal(Objeto.Cantidad)) : Convert.ToDecimal(Objeto.Cantidad))); decimal CostoGranel = CostoMinimoFormula * (Producto["UnidadMedida"].ToString().ToUpper().StartsWith("L") ? ConversorUnidades.Litros_Mililitros(Convert.ToDecimal(Producto["Cantidad"])) : Producto["UnidadMedida"].ToString().ToUpper().StartsWith("K") ? ConversorUnidades.Kilos_Miligramos(Convert.ToDecimal(Producto["Cantidad"])) : Producto["UnidadMedida"].ToString().ToUpper().StartsWith("G") ? ConversorUnidades.Gramos_Miligramos(Convert.ToDecimal(Producto["Cantidad"])) : Convert.ToDecimal(Producto["Cantidad"])); List <DetallesProductosModel> detalles = new List <DetallesProductosModel>(); foreach (DataRow detProducto in cdDetProducto.ConsultaGridPorProducto(Convert.ToInt32(Producto["IdProducto"])).Rows) { detalles.Add(new DetallesProductosModel { CostoInsumo = Convert.ToDecimal(detProducto["Precio"]), IdInsumo = Convert.ToInt32(detProducto["IdInsumo"]) }); } ProductosModel newProducto = new ProductosModel { IdFormula = res, NombreProducto = Producto["NombreProducto"].ToString(), Cantidad = Convert.ToDecimal(Producto["Cantidad"]), UnidadMedida = Producto["UnidadMedida"].ToString(), CostoUnitario = CostoGranel, CostoTotalProducto = detalles.Sum(x => x.CostoInsumo) + CostoGranel, Activo = true }; newProducto.IdProducto = cdProductos.Guardar(newProducto); detalles.ForEach(x => x.IdProducto = newProducto.IdProducto); detalles.ForEach(x => cdDetProducto.Guardar(x)); } cdProductos.BorrarPorFormula(Objeto.IdFormula); if (cdFormulas.Borrar(Objeto.IdFormula) < 1) { throw new Exception("No se han podido dar de baja " + Objeto.NombreFormula + ".\n Todos los cambios serán deshechos." + "Contacte al administrador del sistema."); } } if (Objeto.IdFamilia == 1) {//Es Insumo DataTable Insumo = cdInsumos.ConsultaGridPorNombre(Objeto.NombreFormula); if (Insumo.Rows.Count == 0) { cdInsumos.Guardar(new InsumosModel { IdFamilia = 1, IdMoneda = 1, IdProveedor = 1, NombreInsumo = Objeto.NombreFormula, NombreInterno = Objeto.NombreFormula, UnidadMedida = Objeto.UnidadMedida.Equals("L") ? Objeto.UnidadMedida : "KG", PrecioUnitario = CostoFormulaPorUnidad(Convert.ToDouble(Objeto.CostoTotal), Objeto.Cantidad, Objeto.Capacidad), TotalCompraMX = 1000 }); } else { cnInsumos.Actualizar(IdUser, new InsumosModel { IdInsumo = Convert.ToInt32(Insumo.Rows[0]["IdInsumo"]), IdFamilia = 1, IdMoneda = 1, IdProveedor = 1, NombreInsumo = Objeto.NombreFormula, NombreInterno = Objeto.NombreFormula, UnidadMedida = Objeto.UnidadMedida.Equals("L") ? Objeto.UnidadMedida : "KG", PrecioUnitario = CostoFormulaPorUnidad(Convert.ToDouble(Objeto.CostoTotal), Objeto.Cantidad, Objeto.Capacidad), TotalCompraMX = 1000 }, true, out string Msj); } } scope.Complete(); } } catch (Exception) { res = 0; } return(res); }
public bool Actualizar(int IdUsuario, InsumosModel Parametro, bool ActualizarPrecios, out string Msj, decimal PrecioDolar = 1) { try { using (TransactionScope scope = new TransactionScope()) { if (cdInsumos.Actualizar(Parametro) < 1) { throw new Exception("No se han podido actualizar los datos del insumo."); } if (ActualizarPrecios) { int IdFormula = 0; foreach (DataRow item in cdDetFormula.ConsultaGridPorInsumo(Parametro.IdInsumo).Rows) { if (Convert.ToInt32(item["IdFormula"]) != IdFormula) { IdFormula = Convert.ToInt32(item["IdFormula"]); DataTable Formula = cdFormulas.ConsultaGridIndividual(IdFormula); DataTable DetallesFormula = cdDetFormula.ConsultaGridPorFormula(IdFormula); decimal CostoTotal = 0; FormulasModel NewFormula = new FormulasModel { Cantidad = Convert.ToDouble(Formula.Rows[0]["Cantidad"]), Capacidad = Formula.Rows[0]["Capacidad"].ToString(), IdFamilia = Convert.ToInt32(Formula.Rows[0]["IdFamilia"]), NombreFormula = Formula.Rows[0]["NombreFormula"].ToString(), UnidadMedida = Formula.Rows[0]["UnidadMedida"].ToString() }; NewFormula.IdFormula = cdFormulas.Guardar(NewFormula); if (NewFormula.IdFormula < 1) { throw new Exception("No se han podido actualizar el costo de " + item["NombreFormula"].ToString() + ".\n Todos los cambios serán deshechos." + "Contacte al administrador del sistema."); } foreach (DataRow detalle in DetallesFormula.Rows) { decimal CostoInsumo = Convert.ToInt32(detalle["IdInsumo"]) != Parametro.IdInsumo ? Convert.ToDecimal(detalle["CostoInsumo"]) : ((Convert.ToDecimal(Parametro.PrecioUnitario) * PrecioDolar) * (Convert.ToDecimal(detalle["CantidadInsumo"]) * FactorMedida(detalle["UnidadMedida"].ToString(), detalle["UnidadMedidaInsumo"].ToString()))); CostoTotal += CostoInsumo; if (cdDetFormula.Guardar(new DetallesFormulasModel { IdFormula = NewFormula.IdFormula, IdInsumo = Convert.ToInt32(detalle["IdInsumo"]), CantidadInsumo = Convert.ToDecimal(detalle["CantidadInsumo"]), UnidadMedidaInsumo = detalle["UnidadMedidaInsumo"].ToString(), CostoInsumo = CostoInsumo, IdUsuario = IdUsuario }) < 1) { throw new Exception("No se han podido actualizar el costo en los detalles de " + item["NombreFormula"].ToString() + ".\n Todos los cambios serán deshechos." + "Contacte al administrador del sistema."); } } //calculo el costo de generar la unidad mas pequeña de la formula //por ejemplo, si son kg, cuanto cuesta crear un mg? // si son Litros, cuanto cuesta crear un ml? decimal CostoMinimoFormula = NewFormula.UnidadMedida.ToString().Equals("K") ? (Convert.ToDecimal(CostoTotal) / (NewFormula.Capacidad.ToString().ToUpper().StartsWith("K") ? ConversorUnidades.Kilos_Miligramos(Convert.ToDecimal(NewFormula.Cantidad)) : NewFormula.Capacidad.ToString().ToUpper().StartsWith("G") ? ConversorUnidades.Gramos_Miligramos(Convert.ToDecimal(NewFormula.Cantidad)) : Convert.ToDecimal(NewFormula.Cantidad))) : (Convert.ToDecimal(CostoTotal) / (NewFormula.Capacidad.ToString().ToUpper().StartsWith("L") ? ConversorUnidades.Litros_Mililitros(Convert.ToDecimal(NewFormula.Cantidad)) : Convert.ToDecimal(NewFormula.Cantidad))); foreach (DataRow Producto in cdProductos.ConsultaGridPorFormula(IdFormula).Rows) { decimal CostoGranel = CostoMinimoFormula * (Producto["UnidadMedida"].ToString().ToUpper().StartsWith("L") ? ConversorUnidades.Litros_Mililitros(Convert.ToDecimal(Producto["Cantidad"])) : Producto["UnidadMedida"].ToString().ToUpper().StartsWith("K") ? ConversorUnidades.Kilos_Miligramos(Convert.ToDecimal(Producto["Cantidad"])) : Producto["UnidadMedida"].ToString().ToUpper().StartsWith("G") ? ConversorUnidades.Gramos_Miligramos(Convert.ToDecimal(Producto["Cantidad"])) : Convert.ToDecimal(Producto["Cantidad"])); List <DetallesProductosModel> detalles = new List <DetallesProductosModel>(); foreach (DataRow detProducto in cdDetProducto.ConsultaGridPorProducto(Convert.ToInt32(Producto["IdProducto"])).Rows) { detalles.Add(new DetallesProductosModel { CostoInsumo = Convert.ToDecimal(detProducto["Precio"]), IdInsumo = Convert.ToInt32(detProducto["IdInsumo"]) }); } ProductosModel newProducto = new ProductosModel { IdProducto = Convert.ToInt32(Producto["IdProducto"]), IdFormula = NewFormula.IdFormula, NombreProducto = Producto["NombreProducto"].ToString(), Cantidad = Convert.ToDecimal(Producto["Cantidad"]), UnidadMedida = Producto["UnidadMedida"].ToString(), CostoUnitario = CostoGranel, CostoTotalProducto = detalles.Sum(x => x.CostoInsumo) + CostoGranel, Activo = true, IdUsuario = IdUsuario }; newProducto.IdProducto = cdProductos.Actualizar(newProducto); //detalles.ForEach(x => x.IdProducto = newProducto.IdProducto); detalles.ForEach(x => cdDetProducto.Actualizar(x)); } //cdProductos.BorrarPorFormula(IdFormula); if (cdFormulas.Borrar(IdFormula) < 1) { throw new Exception("No se han podido dar de baja " + item["NombreFormula"].ToString() + ".\n Todos los cambios serán deshechos." + "Contacte al administrador del sistema."); } foreach (DataRow itemInsumo in cdInsumos.ConsultaGridPorNombre(item["NombreFormula"].ToString()).Rows) { Actualizar(IdUsuario, new InsumosModel { IdInsumo = Convert.ToInt32(itemInsumo["IdInsumo"]), IdProveedor = Convert.ToInt32(itemInsumo["IdProveedor"]), NombreInsumo = itemInsumo["NombreInsumo"].ToString(), NombreInterno = itemInsumo["NombreInterno"].ToString(), UnidadMedida = itemInsumo["UnidadMedida"].ToString(), PrecioUnitario = Convert.ToDouble(CostoMinimoFormula * (itemInsumo["UnidadMedida"].ToString().ToUpper().StartsWith("L") ? ConversorUnidades.Litros_Mililitros(Convert.ToDecimal(NewFormula.Cantidad)) : itemInsumo["UnidadMedida"].ToString().ToUpper().StartsWith("K") ? ConversorUnidades.Kilos_Miligramos(Convert.ToDecimal(NewFormula.Cantidad)) : itemInsumo["UnidadMedida"].ToString().ToUpper().StartsWith("G") ? ConversorUnidades.Gramos_Miligramos(Convert.ToDecimal(NewFormula.Cantidad)) : Convert.ToDecimal(1))), TotalCompraMX = 10000, IdFamilia = Convert.ToInt32(itemInsumo["IdFamilia"]), IdMoneda = Convert.ToInt32(itemInsumo["IdMoneda"]), }, true, out string MsjI, PrecioDolar); } } } int IdProducto = 0; foreach (DataRow itemDetalle in cdDetProducto.ConsultaGridPorInsumo(Parametro.IdInsumo).Rows) { if (Convert.ToInt32(itemDetalle["IdProducto"]) != IdProducto) { IdProducto = Convert.ToInt32(itemDetalle["IdProducto"]); DataTable Producto = cdProductos.ConsultaGridPorId(IdProducto); if ((bool)(Producto.Rows[0]["Activo"])) { List <DetallesProductosModel> detalles = new List <DetallesProductosModel>(); foreach (DataRow detProducto in cdDetProducto.ConsultaGridPorProducto(IdProducto).Rows) { decimal CostoInsumo = Convert.ToInt32(detProducto["IdInsumo"]) != Parametro.IdInsumo ? Convert.ToDecimal(detProducto["Precio"]) : (Convert.ToDecimal(Parametro.PrecioUnitario) * PrecioDolar); detalles.Add(new DetallesProductosModel { CostoInsumo = CostoInsumo, IdDetalle = Convert.ToInt32(detProducto["IdDetalle"]), IdInsumo = Convert.ToInt32(detProducto["IdInsumo"]) }); } ProductosModel newProducto = new ProductosModel { IdProducto = Convert.ToInt32(Producto.Rows[0]["IdProducto"]), IdFormula = Convert.ToInt32(Producto.Rows[0]["IdFormula"]), NombreProducto = Producto.Rows[0]["NombreProducto"].ToString(), Cantidad = Convert.ToDecimal(Producto.Rows[0]["Cantidad"]), UnidadMedida = Producto.Rows[0]["UnidadMedida"].ToString(), CostoUnitario = Convert.ToDecimal(Producto.Rows[0]["CostoUnitario"]), CostoTotalProducto = detalles.Sum(x => x.CostoInsumo) + Convert.ToDecimal(Producto.Rows[0]["CostoUnitario"]), Activo = true, IdUsuario = IdUsuario }; newProducto.IdProducto = cdProductos.Actualizar(newProducto); //detalles.ForEach(x => x.IdProducto = newProducto.IdProducto); detalles.ForEach(x => cdDetProducto.Actualizar(x)); //if (cdProductos.BorrarPorId(IdProducto) < 1) // throw new Exception("No se ha podido dar de baja " + newProducto.NombreProducto + ".\n Todos los cambios serán deshechos." + // "Contacte al administrador del sistema."); } } } } scope.Complete(); } Msj = ""; return(true); } catch (Exception er) { Msj = (er.Message); return(false); } }
public void ActualizarP() { try { //Thread.Sleep(2000); using (TransactionScope scope = new TransactionScope()) { #region if (cdInsumos.Actualizar(Parametro) < 1) { throw new Exception("No se han podido actualizar los datos del insumo."); } if (ActualizarPrecios) { int IdFormula = 0; foreach (DataRow item in cdDetFormula.ConsultaGridPorInsumo(Parametro.IdInsumo).Rows) { if (Convert.ToInt32(item["IdFormula"]) != IdFormula) { IdFormula = Convert.ToInt32(item["IdFormula"]); cdDetFormula.Actualizar(new DetallesFormulasModel { IdDetalle = Convert.ToInt32(item[0]), IdFormula = Convert.ToInt32(item[1]), IdInsumo = Parametro.IdInsumo, CantidadInsumo = Convert.ToInt32(item["CantidadInsumo"]), UnidadMedidaInsumo = item["UnidadMedidaInsumo"].ToString(), CostoInsumo = ((Convert.ToDecimal(Parametro.PrecioUnitario) * PrecioDolar) * (Convert.ToDecimal(item["CantidadInsumo"]) * FactorMedida(item["UnidadMedida"].ToString(), item["UnidadMedidaInsumo"].ToString()))), IdUsuario = Parametro.IdUsuario }); DataTable tblFormula = cdFormulas.ConsultaGridIndividual(IdFormula); FormulasModel formula = new FormulasModel { Cantidad = Convert.ToDouble(tblFormula.Rows[0]["Cantidad"]), Capacidad = tblFormula.Rows[0]["Capacidad"].ToString(), IdFamilia = Convert.ToInt32(tblFormula.Rows[0]["IdFamilia"]), NombreFormula = tblFormula.Rows[0]["NombreFormula"].ToString(), UnidadMedida = tblFormula.Rows[0]["UnidadMedida"].ToString(), CostoTotal = Convert.ToDecimal(tblFormula.Rows[0]["CostoTotal"]), IdFormula = Convert.ToInt32(tblFormula.Rows[0]["IdFormula"]), }; //calculo el costo de generar la unidad mas pequeña de la formula //por ejemplo, si son kg, cuanto cuesta crear un mg? // si son Litros, cuanto cuesta crear un ml? decimal CostoMinimoFormula = formula.UnidadMedida.ToString().Equals("K") ? (Convert.ToDecimal(formula.CostoTotal) / (formula.Capacidad.ToString().ToUpper().StartsWith("K") ? ConversorUnidades.Kilos_Miligramos(Convert.ToDecimal(formula.Cantidad)) : formula.Capacidad.ToString().ToUpper().StartsWith("G") ? ConversorUnidades.Gramos_Miligramos(Convert.ToDecimal(formula.Cantidad)) : Convert.ToDecimal(formula.Cantidad))) : (Convert.ToDecimal(formula.CostoTotal) / (formula.Capacidad.ToString().ToUpper().StartsWith("L") ? ConversorUnidades.Litros_Mililitros(Convert.ToDecimal(formula.Cantidad)) : Convert.ToDecimal(formula.Cantidad))); foreach (DataRow Producto in cdProductos.ConsultaGridPorFormula(IdFormula).Rows) { decimal CostoGranel = CostoMinimoFormula * (Producto["UnidadMedida"].ToString().ToUpper().StartsWith("L") ? ConversorUnidades.Litros_Mililitros(Convert.ToDecimal(Producto["Cantidad"])) : Producto["UnidadMedida"].ToString().ToUpper().StartsWith("K") ? ConversorUnidades.Kilos_Miligramos(Convert.ToDecimal(Producto["Cantidad"])) : Producto["UnidadMedida"].ToString().ToUpper().StartsWith("G") ? ConversorUnidades.Gramos_Miligramos(Convert.ToDecimal(Producto["Cantidad"])) : Convert.ToDecimal(Producto["Cantidad"])); List <DetallesProductosModel> detalles = new List <DetallesProductosModel>(); foreach (DataRow detProducto in cdDetProducto.ConsultaGridPorProducto(Convert.ToInt32(Producto["IdProducto"])).Rows) { detalles.Add(new DetallesProductosModel { CostoInsumo = Convert.ToDecimal(detProducto["Precio"]), IdInsumo = Convert.ToInt32(detProducto["IdInsumo"]) }); } ProductosModel newProducto = new ProductosModel { IdProducto = Convert.ToInt32(Producto["IdProducto"]), IdFormula = formula.IdFormula, NombreProducto = Producto["NombreProducto"].ToString(), Cantidad = Convert.ToDecimal(Producto["Cantidad"]), UnidadMedida = Producto["UnidadMedida"].ToString(), CostoUnitario = CostoGranel, CostoTotalProducto = detalles.Sum(x => x.CostoInsumo) + CostoGranel, Activo = true, IdUsuario = IdUsuario }; newProducto.IdProducto = cdProductos.Actualizar(newProducto); } foreach (DataRow itemInsumo in cdInsumos.ConsultaGridPorNombre(item["NombreFormula"].ToString()).Rows) { Actualizar(IdUsuario, new InsumosModel { IdInsumo = Convert.ToInt32(itemInsumo["IdInsumo"]), IdProveedor = Convert.ToInt32(itemInsumo["IdProveedor"]), NombreInsumo = itemInsumo["NombreInsumo"].ToString(), NombreInterno = itemInsumo["NombreInterno"].ToString(), UnidadMedida = itemInsumo["UnidadMedida"].ToString(), PrecioUnitario = Convert.ToDouble(CostoMinimoFormula * (itemInsumo["UnidadMedida"].ToString().ToUpper().StartsWith("L") ? ConversorUnidades.Litros_Mililitros(Convert.ToDecimal(formula.Cantidad)) : itemInsumo["UnidadMedida"].ToString().ToUpper().StartsWith("K") ? ConversorUnidades.Kilos_Miligramos(Convert.ToDecimal(formula.Cantidad)) : itemInsumo["UnidadMedida"].ToString().ToUpper().StartsWith("G") ? ConversorUnidades.Gramos_Miligramos(Convert.ToDecimal(formula.Cantidad)) : Convert.ToDecimal(1))), TotalCompraMX = 10000, IdFamilia = Convert.ToInt32(itemInsumo["IdFamilia"]), IdMoneda = Convert.ToInt32(itemInsumo["IdMoneda"]), }, true, out string MsjI, PrecioDolar); } } } int IdProducto = 0; foreach (DataRow itemDetalle in cdDetProducto.ConsultaGridPorInsumo(Parametro.IdInsumo).Rows) { if (Convert.ToInt32(itemDetalle["IdProducto"]) != IdProducto) { IdProducto = Convert.ToInt32(itemDetalle["IdProducto"]); DataTable Producto = cdProductos.ConsultaGridPorId(IdProducto); if ((bool)(Producto.Rows[0]["Activo"])) { List <DetallesProductosModel> detalles = new List <DetallesProductosModel>(); foreach (DataRow detProducto in cdDetProducto.ConsultaGridPorProducto(IdProducto).Rows) { decimal CostoInsumo = Convert.ToInt32(detProducto["IdInsumo"]) != Parametro.IdInsumo ? Convert.ToDecimal(detProducto["Precio"]) : (Convert.ToDecimal(Parametro.PrecioUnitario) * PrecioDolar); detalles.Add(new DetallesProductosModel { CostoInsumo = CostoInsumo, IdDetalle = Convert.ToInt32(detProducto["IdDetalle"]), IdInsumo = Convert.ToInt32(detProducto["IdInsumo"]) }); } ProductosModel newProducto = new ProductosModel { IdProducto = Convert.ToInt32(Producto.Rows[0]["IdProducto"]), IdFormula = Convert.ToInt32(Producto.Rows[0]["IdFormula"]), NombreProducto = Producto.Rows[0]["NombreProducto"].ToString(), Cantidad = Convert.ToDecimal(Producto.Rows[0]["Cantidad"]), UnidadMedida = Producto.Rows[0]["UnidadMedida"].ToString(), CostoUnitario = Convert.ToDecimal(Producto.Rows[0]["CostoUnitario"]), CostoTotalProducto = detalles.Sum(x => x.CostoInsumo) + Convert.ToDecimal(Producto.Rows[0]["CostoUnitario"]), Activo = true, IdUsuario = IdUsuario }; newProducto.IdProducto = cdProductos.Actualizar(newProducto); detalles.ForEach(x => cdDetProducto.Actualizar(x)); } } } } #endregion scope.Complete(); } Msj = ""; EstadoOperacion = true; } catch (Exception er) { Msj = (er.Message); EstadoOperacion = false; //return false; } }