Exemple #1
0
    public UnidadesProd Calculos(double ancho, double alto, int espesor1, int espesor2)
    {
        UnidadesProd Valores = new UnidadesProd
        {
            MetroCuad = Math.Round(((ancho / 1000) * (alto / 1000)), 2),
            MetroLi   = ((ancho / 1000) + (alto / 1000)) * 2,
            Kilos     = Math.Round((espesor1 + espesor2) * (Math.Round(((ancho / 1000) * (alto / 1000)), 2) * 5 / 2), 0),
        };



        return(Valores);
    }
Exemple #2
0
    private DataTable DetalleOtrosCli(string rutafile, string Tipodesp)
    {
        Pedido Pedido = new Pedido();



        TablaEncabezado();
        DataTable       retorno = (DataTable)ViewState["tabla"];
        DataRow         drow    = null;
        OleDbConnection cnn     = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;" +
                                                      "Data Source = " + rutafile + "; " + "Extended Properties='Excel 8.0;HDR=No';");

        Pedido.Archivo = rutafile;
        string           sql = "select * from [Sheet1$A6:N1000]";
        OleDbDataAdapter da  = new OleDbDataAdapter(sql, cnn);


        //Variables de item
        string detalleProducto;
        double Ancho;
        double Alto;
        double kg;
        double precioProd;
        double NetoItem;
        double NetoItemCDesp;
        double metroLineal;
        string modelo;

        kilosPedido = 0;
        NetoPedido  = 0;
        double Margen = iNFOcli.FactorMargen();

        try
        {
            cnn.Open();
            OleDbDataReader leerCadena = da.SelectCommand.ExecuteReader();
            while (leerCadena.HasRows)
            {
                while (leerCadena.Read())
                {
                    if (leerCadena[1] != DBNull.Value && leerCadena[2] != DBNull.Value)
                    {
                        detalleProducto = Convert.ToString(leerCadena[1]);

                        ValDiccionario InfodelDicc = Funciones.BuscaValDicc(detalleProducto);


                        if (InfodelDicc.Existe)
                        {
                            CodigoAlfakProd = InfodelDicc.CodigoAlfakProd;
                            EspCristal1     = InfodelDicc.EspCRistal1;
                            EspCristal2     = InfodelDicc.EspCRistal2;
                            EspSeparador    = InfodelDicc.EspSeparador;
                        }
                        else
                        {
                            Response.Redirect("~/Diccionario/agregar-Modelo-DVH.aspx?Producto=" + detalleProducto + "&Archivo=" + Pedido.Archivo + "&ID=" + id_temp.Value);
                        }


                        Ancho         = 0;
                        Alto          = 0;
                        kg            = 0;
                        precioProd    = 0;
                        NetoItem      = 0;
                        NetoItemCDesp = 0;
                        metroLineal   = 0;

                        Ancho = Convert.ToDouble(leerCadena[2].ToString());
                        Alto  = Convert.ToDouble(leerCadena[3].ToString());

                        CalculosProd CalProd = new CalculosProd();

                        UnidadesProd Datos = CalProd.Calculos(Ancho, Alto, EspCristal1, EspCristal2);

                        kg          = Datos.Kilos;
                        m2          = Datos.MetroCuad;
                        metroLineal = Datos.MetroLi;



                        modelo = Convert.ToString(leerCadena[0]).Trim();
                        int digitos = 22 - modelo.Length;



                        drow                     = retorno.NewRow();
                        drow["Modelo"]           = Convert.ToString(leerCadena[0]) + " - " + NombrePedido.Substring(0, digitos);
                        drow["Detalle producto"] = Convert.ToString(leerCadena[1]);
                        drow["Cantidad"]         = Convert.ToInt32(leerCadena[4]);
                        int cantidad = Convert.ToInt32(leerCadena[4]);
                        drow["Ancho"]   = Convert.ToDecimal(leerCadena[2]);
                        drow["Alto"]    = Convert.ToDecimal(leerCadena[3]);
                        drow["mt2"]     = (m2 * cantidad).ToString("0.##");
                        drow["Kilos"]   = (kg * cantidad);
                        drow["Esp c1"]  = EspCristal1;
                        drow["Esp sep"] = EspSeparador;
                        drow["Esp c2"]  = EspCristal2;
                        drow["Codigo"]  = CodigoAlfakProd;
                        kilosPedido     = kilosPedido + (Convert.ToInt32(kg) * cantidad);
                        m2Pedido        = m2Pedido + (m2 * cantidad);
                        CalculosProd Precio = new CalculosProd();
                        //traer precio unitado por producto
                        precioProd = Precio.PrecioProd(CodigoAlfakProd, Ancho, Alto);
                        //sumar proceso al precio uinitario
                        NetoItem = precioProd + Precio.PrecioProcesoDVH("Corte", m2, metroLineal, kg) + Precio.PrecioProcesoDVH("Armado", m2, metroLineal, kg);

                        //incluir Margen y cantidad
                        double factorC = iNFOcli.FactorMargen();
                        NetoItem = NetoItem * factorC * cantidad;



                        //Castigo por dimension pequeña
                        if (Ancho <= 250 || Alto <= 250)
                        {
                            NetoItem = NetoItem + 20000;
                        }
                        else
                        {
                            if (Ancho <= 350 || Alto <= 350)
                            {
                                NetoItem = NetoItem + 5000;
                            }
                        }

                        //Neto con despacho incluido

                        NetoItemCDesp = NetoItem + Precio.CostoDespacho(Tipodesp, kg);
                        NetoDespacho  = NetoDespacho + Precio.CostoDespacho(Tipodesp, kg);

                        drow["Neto"]      = Math.Round(NetoItem);
                        drow["NetoCDesp"] = Math.Round(NetoItemCDesp);
                        NetoPedido        = NetoPedido + Math.Round(NetoItem);
                        NetoPedidoCdesp   = NetoPedidoCdesp + Math.Round(NetoItemCDesp);
                        retorno.Rows.Add(drow);
                    }
                    else
                    {
                    }
                }
                leerCadena.NextResult();
            }
            leerCadena.Close();
            cnn.Close();
        }
        catch (Exception e)
        {
        }



        ViewState["tabla"] = retorno;

        return(retorno);
    }