Exemplo n.º 1
0
    //Busqueda en diccionarioclientes
    public ValDiccionario BuscaValDicc(string termino)
    {
        ValDiccionario valores = new ValDiccionario();

        ConnPlabal.Open();
        cmdPlabal = new SqlCommand("SELECT codigo,per_cri1,per_herraje,per_cri2 FROM PLABAL.dbo.e_diccionarioClientes WHERE comp_cliente='" + termino + "'", ConnPlabal);
        drPlabal  = cmdPlabal.ExecuteReader();
        drPlabal.Read();

        if (drPlabal.HasRows)
        {
            valores.Existe          = true;
            valores.CodigoAlfakProd = drPlabal[0].ToString();
            valores.EspCRistal1     = Int32.Parse(drPlabal[1].ToString());
            valores.EspCRistal2     = Int32.Parse(drPlabal[3].ToString());
            valores.EspSeparador    = Decimal.Parse(drPlabal[2].ToString());
            drPlabal.Close();
        }
        else
        {
            string termino2 = termino.Replace(" ", "");
            drPlabal.Close();
            cmdPlabal2 = new SqlCommand("SELECT codigo,per_cri1,per_herraje,per_cri2 FROM PLABAL.dbo.e_diccionarioClientes WHERE comp_cliente = '" + termino2.Trim() + "'", ConnPlabal);
            drPlabal2  = cmdPlabal2.ExecuteReader();
            drPlabal2.Read();
            if (drPlabal2.HasRows)
            {
                valores.Existe          = true;
                valores.CodigoAlfakProd = drPlabal2[0].ToString();
                valores.EspCRistal1     = Int32.Parse(drPlabal2[1].ToString());
                valores.EspCRistal2     = Int32.Parse(drPlabal2[3].ToString());
                valores.EspSeparador    = Decimal.Parse(drPlabal2[2].ToString());
                drPlabal2.Close();
            }
            else
            {
                valores.Existe          = false;
                valores.CodigoAlfakProd = "";
                valores.EspCRistal1     = 0;
                valores.EspCRistal2     = 0;
                valores.EspSeparador    = 0;
            }
        }
        ConnPlabal.Close();


        return(valores);
    }
Exemplo n.º 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);
    }