示例#1
0
        //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"]),
                });
            }
        }
        void MoverProductos(int IdFormula, DataTable TablaProductosOld)
        {
            for (int i = 0; i < TablaProductosOld.Rows.Count; i++)
            {
                DataTable Detalles = cnDetProducto.ConsultaDetallesPorProducto(Convert.ToInt32(TablaProductosOld.Rows[i]["IdProducto"]));

                ProductosModel Producto = new ProductosModel
                {
                    Activo             = (bool)(TablaProductosOld.Rows[i]["Activo"]),
                    Cantidad           = Convert.ToDecimal(TablaProductosOld.Rows[i]["Cantidad"].ToString()),
                    CostoTotalProducto = Convert.ToDecimal(TablaProductosOld.Rows[i]["CostoTotalProducto"].ToString()),
                    CostoUnitario      = Convert.ToDecimal(TablaProductosOld.Rows[i]["CostoUnitario"].ToString()),
                    IdFormula          = IdFormula,
                    NombreProducto     = (TablaProductosOld.Rows[i]["NombreProducto"].ToString()),
                    UnidadMedida       = (TablaProductosOld.Rows[i]["UnidadMedida"].ToString()),
                };
                int     id         = Convert.ToInt32(cnProductos.Guardar(Producto));
                decimal CostoTotal = 0;
                foreach (DataRow row in Detalles.Rows)
                {
                    DetallesProductosModel detalle = new DetallesProductosModel
                    {
                        IdDetalle   = 0,
                        IdProducto  = id,
                        IdInsumo    = Convert.ToInt32(row["IdInsumo"]),
                        CostoInsumo = Convert.ToDecimal(CalculaPrecioInsumo(Convert.ToInt32(row["IdInsumo"]))),
                    };
                    CostoTotal += detalle.CostoInsumo;
                    cnDetProducto.Guardar(detalle);
                }
                Producto.CostoTotalProducto = CostoTotal + Producto.CostoUnitario;
                Producto.IdProducto         = id;
                cnProductos.Actualizar(Producto);
            }
        }
示例#3
0
        void CreaProducto(List <int> lista) //Este metodo crea un nuevo producto si se va a modificar su lista de detalles, y ademas recupera el id del nuevo producto
        {
            for (int i = 0; i < lista.Count; i++)
            {
                DataTable      listaProductos = cnProductos.ConsultaConsultaPorId(lista[i]);
                ProductosModel _Productos     = new ProductosModel
                {
                    IdProducto         = Convert.ToInt32(listaProductos.Rows[0]["IdProducto"]),
                    IdFormula          = Convert.ToInt32(listaProductos.Rows[0]["IdFormula"]),
                    NombreProducto     = Convert.ToString(listaProductos.Rows[0]["NombreProducto"]),
                    Cantidad           = Convert.ToDecimal(listaProductos.Rows[0]["Cantidad"]),
                    UnidadMedida       = Convert.ToString(listaProductos.Rows[0]["UnidadMedida"]),
                    CostoUnitario      = Convert.ToDecimal(listaProductos.Rows[0]["CostoUnitario"]),
                    CostoTotalProducto = Convert.ToDecimal(listaProductos.Rows[0]["CostoUnitario"]),
                    Activo             = (bool)(listaProductos.Rows[0]["Activo"])
                };
                int       IdP      = Convert.ToInt32(cnProductos.Guardar(_Productos));
                DataTable Detalles = cnDetProducto.ConsultaDetallesPorProducto(Convert.ToInt32(listaProductos.Rows[0]["IdProducto"]));
                double    Precio   = 0.00;
                foreach (DataRow row in Detalles.Rows)
                {
                    if (Convert.ToInt32(row["IdInsumo"]) == IdInsumo)
                    {
                        row["IdProducto"] = IdP;
                        row["Precio"]     = PrecioInsumo;
                        Precio           += Convert.ToDouble(row["Precio"]);
                    }
                    else
                    {
                        row["IdProducto"] = IdP;
                        Precio           += Convert.ToDouble(row["Precio"]);
                    }

                    cnDetProducto.Guardar(new DetallesProductosModel
                    {
                        CostoInsumo = Convert.ToDecimal(row["Precio"]),
                        IdDetalle   = Convert.ToInt32(row["IdDetalle"]),
                        IdProducto  = Convert.ToInt32(row["IdProducto"]),
                        IdInsumo    = IdInsumo,
                    });
                }
                _Productos.IdProducto          = IdP;
                _Productos.CostoTotalProducto += Convert.ToDecimal(Precio);
                cnProductos.Actualizar(_Productos);
                cnProductos.Borrar(lista[i]);
            }
        }