예제 #1
0
        double CalculaPrecioUnitarioProducto(int IdFormula, int IdProducto)
        {
            #region "Calcula PrecioUnitario Formula"
            DataRow PrecioFormula       = cnFormulas.ConsultaPorId(IdFormula).Rows[0];
            double  CostoTotal          = Convert.ToDouble(PrecioFormula["CostoTotal"]);
            string  UnidadMedidaFormula = Convert.ToString(PrecioFormula["Capacidad"]);
            int     Cantidad            = Convert.ToInt32(PrecioFormula["Cantidad"]);
            double  CostoUnitario       = 0;
            switch (UnidadMedidaFormula.ToUpper())
            {
            case "LITROS":
                CostoUnitario = CostoTotal / Cantidad;
                break;

            case "MILILITROS":
                CostoUnitario = (1000 * CostoTotal) / Cantidad;
                break;

            case "KILOGRAMOS":
                CostoUnitario = CostoTotal / Cantidad;
                break;

            case "GRAMOS":
                CostoUnitario = (1000 * CostoTotal) / Cantidad;
                break;

            case "MILIGRAMOS":
                CostoUnitario = (10000 * CostoTotal) / Cantidad;
                break;
            }
            #endregion
            DataRow listaProducto = cnProductos.ConsultaConsultaPorId(IdProducto).Rows[0];
            PrecioDetalles = Convert.ToDouble(listaProducto["CostoTotalProducto"]) - Convert.ToDouble(listaProducto["CostoUnitario"]);
            string UnidadMedida     = Convert.ToString(listaProducto["UnidadMedida"]);
            double CantidadProducto = Convert.ToInt32(listaProducto["Cantidad"]);
            double PrecioProducto   = 0;
            switch (UnidadMedida.ToUpper())
            {
            case "LITROS":
                PrecioProducto = CostoUnitario * CantidadProducto;
                break;

            case "MILILITROS":
                PrecioProducto = (1000 * CostoUnitario) / CantidadProducto;
                break;

            case "KILOGRAMOS":
                PrecioProducto = CostoUnitario * CantidadProducto;
                break;

            case "GRAMOS":
                PrecioProducto = (1000 * CostoUnitario) / CantidadProducto;
                break;

            case "MILIGRAMOS":
                PrecioProducto = (10000 * CostoUnitario) / CantidadProducto;
                break;
            }
            return(PrecioProducto);
        }
예제 #2
0
        double CalculaPrecioInsumo(int IdFormula)
        {
            CNFormulas Formula      = new CNFormulas(conexion);
            DataTable  TablaFormula = Formula.ConsultaPorId(IdFormula);
            double     CostoFormula = Convert.ToDouble(TablaFormula.Rows[0]["CostoTotal"]);
            string     unidadMedida = Convert.ToString(TablaFormula.Rows[0]["Capacidad"]);
            double     Cantidad     = Convert.ToDouble(TablaFormula.Rows[0]["Cantidad"]);

            return(CalculaPrecioUnitarioFormula(unidadMedida, CostoFormula, Cantidad));
        }
예제 #3
0
        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));
                    }
                }
            }
        }
예제 #4
0
        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);
        }