//Función para cargar los productos de la orden
        private void cargarProductos(int iIdPosOrden)
        {
            Program.iCuenta = 0;
            bool bRespuesta = false;

            ConexionBD.ConexionBD conexion = new ConexionBD.ConexionBD();

            string sQuery = "";

            sQuery += "select dbo.cv403_cab_pedidos.id_pedido, dbo.cv401_nombre_productos.nombre," + Environment.NewLine;
            sQuery += "dbo.cv403_det_pedidos.cantidad, dbo.cv403_det_pedidos.precio_unitario, " + Environment.NewLine;
            sQuery += "dbo.cv403_det_pedidos.Valor_dscto, dbo.cv403_det_pedidos.comentario " + Environment.NewLine;
            sQuery += "from dbo.cv403_cab_pedidos inner join " + Environment.NewLine;
            sQuery += "dbo.cv403_det_pedidos on dbo.cv403_cab_pedidos.id_pedido = dbo.cv403_det_pedidos.id_pedido inner join " + Environment.NewLine;
            sQuery += "dbo.cv401_nombre_productos on dbo.cv403_det_pedidos.id_producto = dbo.cv401_nombre_productos.id_producto" + Environment.NewLine;
            sQuery += "and dbo.cv401_nombre_productos.estado = 'A' " + Environment.NewLine;
            sQuery += "where dbo.cv403_cab_pedidos.id_pedido = " + iIdPosOrden + Environment.NewLine;
            sQuery += "and dbo.cv403_det_pedidos.estado = 'A' " + Environment.NewLine;
            sQuery += "order by dbo.cv403_det_pedidos.id_det_pedido ";

            DataTable dtConsulta = new DataTable();

            dtConsulta.Clear();
            bRespuesta = conexion.GFun_Lo_Busca_Registro(dtConsulta, sQuery);

            if (bRespuesta == true)
            {
                Program.iCuenta            = dtConsulta.Rows.Count;
                Program.sNombreProductos   = new string[Program.iCuenta];
                Program.sCantidadProductos = new string[Program.iCuenta];
                Program.dPreciosProductos  = new double[Program.iCuenta];

                double dbTotal1 = 0;
                double suma     = 0;

                for (int i = 0; i < Program.iCuenta; i++)
                {
                    dbTotal1 += (Convert.ToDouble(dtConsulta.Rows[i][2].ToString())
                                 * (Convert.ToDouble(dtConsulta.Rows[i][3].ToString()) - Convert.ToDouble(dtConsulta.Rows[i][4].ToString())));
                    if (i == (Program.iCuenta - 1))
                    {
                        break;
                    }

                    double precio  = Convert.ToDouble(dtConsulta.Rows[i][3].ToString());
                    string Precio1 = precio.ToString("");
                    suma += (Convert.ToDouble(dtConsulta.Rows[i][2].ToString())
                             * (Convert.ToDouble(Precio1) - Convert.ToDouble(dtConsulta.Rows[i][4].ToString())));
                }

                for (int i = 0; i < Program.iCuenta; i++)
                {
                    if ((dtConsulta.Rows[i][5].ToString() == null) || (dtConsulta.Rows[i][5].ToString() == ""))
                    {
                        Program.sNombreProductos[i] = dtConsulta.Rows[i][1].ToString();
                    }

                    else
                    {
                        Program.sNombreProductos[i] = dtConsulta.Rows[i][5].ToString();
                    }

                    double dbCantidad       = Convert.ToDouble(dtConsulta.Rows[i][2].ToString());
                    double dbPrecioUnitario = Convert.ToDouble(dtConsulta.Rows[i][3].ToString());
                    double dbDescuento      = Convert.ToDouble(dtConsulta.Rows[i][4].ToString());
                    string sCadena1;

                    if (dbCantidad < 1)
                    {
                        //sCadena1 = dbCantidad + "";//Se guarda la cantidad en tres espacios
                        sCadena1 = "1/2";//Se guarda la cantidad en tres espacios
                    }
                    else
                    {
                        sCadena1 = "" + dbCantidad;
                    }

                    string sCadena2 = "".PadRight(2, ' ');//se guarda cinco espacios
                    string sCadena3;
                    sCadena3 = Program.sNombreProductos[i].ToString();

                    string sCadena4 = dbPrecioUnitario.ToString("N2").PadLeft(5, ' ');

                    string sCadena5 = ((dbCantidad * dbPrecioUnitario)).ToString("N2");
                    //string sCadena5 = ((dbCantidad * (dbPrecioUnitario - dbDescuento))).ToString("N2");

                    if (i == (Program.iCuenta - 1))
                    {
                        sCadena5 = (Convert.ToDouble(dbTotal1.ToString("N2")) - suma).ToString("N2");
                        if (Convert.ToDouble(sCadena5) < 0)
                        {
                            sCadena5 = "0.00";
                        }
                    }

                    sCadena5 = sCadena5.PadLeft(8, ' ');

                    if (sCadena3.Length > 22)
                    {
                        sTexto = sTexto + sCadena1.PadLeft(3, ' ') + sCadena2.PadRight(2, ' ') + sCadena3.Substring(0, 20).PadRight(22, ' ') + sCadena4.PadRight(5, ' ') + sCadena5.PadLeft(8, ' ') + Environment.NewLine;
                        sTexto = sTexto + "".PadLeft(5, ' ') + sCadena3.Substring(20) + Environment.NewLine;
                    }

                    else
                    {
                        sTexto = sTexto + sCadena1.PadLeft(3, ' ') + sCadena2.PadRight(2, ' ') + sCadena3.PadRight(22, ' ') + sCadena4.PadRight(5, ' ') + sCadena5.PadLeft(8, ' ') + Environment.NewLine;
                    }

                    ////FUNCIONES PARA SABER SI HAY OBSERVACIONES DEL ITEM
                    ////sSql = "select count(*) cuenta from pos_det_pedido_detalle where id_det_pedido = " + Convert.ToInt32(dtConsulta.Rows[i].ToString()) + " and estado = 'A'";
                    //sSql = "select detalle from pos_det_pedido_detalle where id_det_pedido = " + Convert.ToInt32(dtConsulta.Rows[i][6].ToString()) + " and estado = 'A' order by id_det_pedido";
                    //dtPreferencia = new DataTable();
                    //dtPreferencia.Clear();

                    //bRespuesta = conexion.GFun_Lo_Busca_Registro(dtPreferencia, sSql);

                    //if (bRespuesta == true)
                    //{
                    //    if (dtPreferencia.Rows.Count > 0)
                    //    {
                    //        for (int j = 0; j < dtPreferencia.Rows.Count; j++)
                    //        {
                    //            sTexto = sTexto + " >>".PadRight(4, ' ') + dtPreferencia.Rows[j][0].ToString().PadRight(16, ' ') + Environment.NewLine;
                    //        }
                    //    }
                    //}

                    //else
                    //{
                    //    ok.LblMensaje.Text = "Ocurrió un problema al consultar las observaciones del item '" + dtConsulta.Rows[i][2].ToString() + ".";
                    //    ok.ShowDialog();
                    //}
                }
            }
            else
            {
                ok.LblMensaje.Text = "Ocurrió un problema al realizar la consulta.";
                ok.ShowDialog();
            }
        }
        //Función para cargar los productos de la orden
        private void cargarProductos(int iIdPosOrden)
        {
            Program.iCuenta = 0;
            bool bRespuesta = false;

            ConexionBD.ConexionBD conexion = new ConexionBD.ConexionBD();

            string sQuery = "";

            sQuery = sQuery + "SELECT CP.id_pedido, NP.nombre, DP.cantidad," + Environment.NewLine;
            sQuery = sQuery + "DP.precio_unitario, DP.valor_dscto, DP.comentario, DP.id_det_pedido," + Environment.NewLine;
            sQuery = sQuery + "CASE WHEN (C.id_pos_cortesia) IS NULL THEN 0 ELSE 1 END AS cortesia," + Environment.NewLine;
            sQuery = sQuery + "CASE WHEN (CAN.id_pos_cancelacion_productos) IS NULL THEN 0 ELSE 1 END AS cancelacion," + Environment.NewLine;
            sQuery = sQuery + "DP.valor_iva, DP.valor_otro" + Environment.NewLine;
            sQuery = sQuery + "FROM cv403_cab_pedidos CP INNER JOIN" + Environment.NewLine;
            sQuery = sQuery + "cv403_det_pedidos DP ON CP.id_pedido = DP.id_pedido" + Environment.NewLine;
            sQuery = sQuery + "and DP.estado = 'A'" + Environment.NewLine;
            sQuery = sQuery + "and CP.estado in ('A', 'N') INNER JOIN" + Environment.NewLine;
            sQuery = sQuery + "cv401_nombre_productos NP ON DP.id_producto = NP.id_producto" + Environment.NewLine;
            sQuery = sQuery + "and NP.estado = 'A' LEFT OUTER JOIN" + Environment.NewLine;
            sQuery = sQuery + "pos_cortesia C ON DP.id_det_pedido = C.id_det_pedido LEFT OUTER JOIN" + Environment.NewLine;
            sQuery = sQuery + "pos_cancelacion_productos CAN ON DP.id_det_pedido = CAN.id_det_pedido" + Environment.NewLine;
            sQuery = sQuery + "WHERE CP.id_pedido = " + iIdPosOrden + Environment.NewLine;
            sQuery = sQuery + "order by DP.id_det_pedido";

            DataTable dtConsulta = new DataTable();

            dtConsulta.Clear();
            bRespuesta = conexion.GFun_Lo_Busca_Registro(dtConsulta, sQuery);

            if (bRespuesta == true)
            {
                dbDescuento   = 0;
                dbPrecioTotal = 0;
                dbIva         = 0;
                dbServicio    = 0;

                for (int i = 0; i < dtConsulta.Rows.Count; i++)
                {
                    if (dtConsulta.Rows[i].ItemArray[5].ToString() == "")
                    {
                        sNombreProducto = dtConsulta.Rows[i].ItemArray[1].ToString();
                    }
                    else
                    {
                        sNombreProducto = dtConsulta.Rows[i].ItemArray[5].ToString();
                    }

                    dbCantidad       = Convert.ToDouble(dtConsulta.Rows[i].ItemArray[2].ToString());
                    dbPrecioUnitario = Convert.ToDouble(dtConsulta.Rows[i].ItemArray[3].ToString());

                    if (Convert.ToDouble(dtConsulta.Rows[i].ItemArray[4].ToString()) != 0)
                    {
                        dbDescuento = dbDescuento + (dbCantidad * Convert.ToDouble(dtConsulta.Rows[i].ItemArray[4].ToString()));
                    }

                    dbIva         = dbIva + (dbCantidad * Convert.ToDouble(dtConsulta.Rows[i].ItemArray[9].ToString()));
                    dbServicio    = dbServicio + (dbCantidad * Convert.ToDouble(dtConsulta.Rows[i].ItemArray[10].ToString()));
                    dbSumaPrecio  = dbCantidad * dbPrecioUnitario;
                    dbPrecioTotal = dbPrecioTotal + dbSumaPrecio;

                    if (dbCantidad < 1)
                    {
                        sCantidadProducto = "1/2";
                    }

                    else
                    {
                        sCantidadProducto = dbCantidad.ToString("N0");
                    }

                    if (sNombreProducto.Length > 20)
                    {
                        sTexto = sTexto + sNombreProducto.Substring(0, 20).PadRight(20, ' ') + sCantidadProducto.PadLeft(3, ' ') + dbPrecioUnitario.ToString("N2").PadLeft(8, ' ') + dbSumaPrecio.ToString("N2").PadLeft(9, ' ') + Environment.NewLine;
                        sTexto = sTexto + sNombreProducto.Substring(20).PadRight((sNombreProducto.Substring(21).Length + 5), ' ') + Environment.NewLine;
                    }

                    else
                    {
                        sTexto = sTexto + sNombreProducto.PadRight(20, ' ') + sCantidadProducto.PadLeft(3, ' ') + dbPrecioUnitario.ToString("N2").PadLeft(8, ' ') + dbSumaPrecio.ToString("N2").PadLeft(9, ' ') + Environment.NewLine;
                    }
                }


                //SECCION PARA MOSTRAR LOS TOTALES
                sTexto = sTexto + "========================================" + Environment.NewLine;

                //sTexto = sTexto + "----------------------------------------" + Environment.NewLine;
                sTexto = sTexto + "SUBTOTAL NETO:".PadRight(31, ' ') + dbPrecioTotal.ToString("N2").PadLeft(9, ' ') + Environment.NewLine;
                //sTexto = sTexto + ("DESCUENTO " + dtConsulta.Rows[0].ItemArray[6].ToString() + "%:").PadRight(31, ' ') + dbDescuento.ToString("N2").PadLeft(9, ' ') + Environment.NewLine;
                sTexto = sTexto + "DESCUENTO:".PadRight(31, ' ') + dbDescuento.ToString("N2").PadLeft(9, ' ') + Environment.NewLine;
                sTexto = sTexto + "".PadLeft(40, '-') + Environment.NewLine;
                sTexto = sTexto + ("SUBTOTAL " + dbPorcentajeIva.ToString("N0") + "%:").PadRight(31, ' ') + (dbPrecioTotal - dbDescuento).ToString("N2").PadLeft(9, ' ') + Environment.NewLine;
                sTexto = sTexto + ("IVA " + dbPorcentajeIva.ToString("N0") + "%:").PadRight(31, ' ') + dbIva.ToString("N2").PadLeft(9, ' ') + Environment.NewLine;
                //sTexto = sTexto + "TOTAL DE LA ORDEN:".PadRight(31, ' ') + (subtotal + iva).ToString("N2").PadLeft(9, ' ') + Environment.NewLine;

                if (dbPorcentajeServicio != 0)
                {
                    sTexto = sTexto + (dbPorcentajeServicio.ToString("N0") + "% SERVICIO").PadRight(31, ' ') + dbServicio.ToString("N2").PadLeft(9, ' ') + Environment.NewLine;
                }

                sTexto       = sTexto + "".PadLeft(40, '-') + Environment.NewLine;
                sTexto       = sTexto + "CANTIDAD DEBIDA:".PadRight(31, ' ') + (dbPrecioTotal - dbDescuento + dbIva + dbServicio).ToString("N2").PadLeft(9, ' ') + Environment.NewLine + Environment.NewLine;
                dbTotal      = dbPrecioTotal - dbDescuento + dbIva + dbServicio;
                dbTotalOrden = dbTotal;
            }

            else
            {
                ok.LblMensaje.Text = sQuery;
                ok.ShowDialog();
            }
        }
示例#3
0
        //Función para cargar los productos de la orden
        private void cargarProductos(int iIdPosOrden)
        {
            Program.iCuenta = 0;
            bool bRespuesta = false;

            ConexionBD.ConexionBD conexion = new ConexionBD.ConexionBD();

            string sQuery = "select dbo.cv403_cab_pedidos.id_pedido, dbo.cv401_nombre_productos.nombre, dbo.cv403_det_pedidos.cantidad, dbo.cv403_det_pedidos.precio_unitario, " +
                            "dbo.cv403_det_pedidos.Valor_dscto, dbo.cv403_det_pedidos.comentario " +
                            "from dbo.cv403_cab_pedidos inner join " +
                            "dbo.cv403_det_pedidos on dbo.cv403_cab_pedidos.id_pedido = dbo.cv403_det_pedidos.id_pedido inner join " +
                            "dbo.cv401_nombre_productos on dbo.cv403_det_pedidos.id_producto = dbo.cv401_nombre_productos.id_producto and dbo.cv401_nombre_productos.estado = 'A'" +
                            "where dbo.cv403_cab_pedidos.id_pedido = " + iIdPosOrden + " and dbo.cv403_det_pedidos.estado = 'A' " +
                            "  ORDER BY dbo.cv403_det_pedidos.id_det_pedido ";

            DataTable dtConsulta = new DataTable();

            dtConsulta.Clear();
            bRespuesta = conexion.GFun_Lo_Busca_Registro(dtConsulta, sQuery);

            if (bRespuesta == true)
            {
                Program.iCuenta            = dtConsulta.Rows.Count;
                Program.sNombreProductos   = new string[Program.iCuenta];
                Program.sCantidadProductos = new string[Program.iCuenta];
                Program.dPreciosProductos  = new double[Program.iCuenta];

                double dbTotal1 = 0;
                double suma     = 0;
                for (int i = 0; i < Program.iCuenta; i++)
                {
                    dbTotal1 += (Convert.ToDouble(dtConsulta.Rows[i].ItemArray[2].ToString())
                                 * (Convert.ToDouble(dtConsulta.Rows[i].ItemArray[3].ToString()) - Convert.ToDouble(dtConsulta.Rows[i].ItemArray[4].ToString())));
                    if (i == (Program.iCuenta - 1))
                    {
                        break;
                    }

                    double precio  = Convert.ToDouble(dtConsulta.Rows[i].ItemArray[3].ToString());
                    string Precio1 = precio.ToString("");
                    suma += (Convert.ToDouble(dtConsulta.Rows[i].ItemArray[2].ToString())
                             * (Convert.ToDouble(Precio1) - Convert.ToDouble(dtConsulta.Rows[i].ItemArray[4].ToString())));
                }

                for (int i = 0; i < Program.iCuenta; i++)
                {
                    if ((dtConsulta.Rows[i].ItemArray[5].ToString() == null) || (dtConsulta.Rows[i].ItemArray[5].ToString() == ""))
                    {
                        Program.sNombreProductos[i] = dtConsulta.Rows[i].ItemArray[1].ToString();
                    }

                    else
                    {
                        Program.sNombreProductos[i] = dtConsulta.Rows[i].ItemArray[1].ToString() + "(" + dtConsulta.Rows[i].ItemArray[5].ToString() + ")";
                    }

                    double dbCantidad       = Convert.ToDouble(dtConsulta.Rows[i].ItemArray[2].ToString());
                    double dbPrecioUnitario = Convert.ToDouble(dtConsulta.Rows[i].ItemArray[3].ToString());
                    double dbDescuento      = Convert.ToDouble(dtConsulta.Rows[i].ItemArray[4].ToString());
                    string sCadena1;
                    if (dbCantidad < 1)
                    {
                        //sCadena1 = dbCantidad +"" ;//Se guarda la cantidad en tres espacios
                        sCadena1 = "1/2"; //Se guarda la cantidad en tres espacios
                    }
                    else
                    {
                        sCadena1 = dbCantidad.ToString();
                    }

                    string sCadena2 = " ";//se guarda cinco espacios
                    string sCadena3;

                    sCadena3 = Program.sNombreProductos[i].ToString();
                    //if (Program.sNombreProductos[i].Length < iAnchoDeDescripcion)
                    //{
                    //    sCadena3 =Program.sNombreProductos[i].PadRight(iAnchoDeDescripcion,' ');
                    //}
                    //else
                    //{
                    //    sCadena3 = Program.sNombreProductos[i].Substring(0, iAnchoDeDescripcion);//se guarda el nombre con 13 caractéres
                    //}

                    string sCadena4 = " ";//se guarda tres espacios


                    string sCadena5 = ((dbCantidad * (dbPrecioUnitario - dbDescuento))).ToString("N2");

                    if (i == (Program.iCuenta - 1))
                    {
                        sCadena5 = (Convert.ToDouble(dbTotal1.ToString("N2")) - suma).ToString("N2");
                        if (Convert.ToDouble(sCadena5) < 0)
                        {
                            sCadena5 = "0.00";
                        }
                    }

                    Program.sCantidadProductos[i] = dtConsulta.Rows[i].ItemArray[2].ToString();
                    Program.dPreciosProductos[i]  = Convert.ToDouble(dtConsulta.Rows[i].ItemArray[3].ToString()) - dbDescuento;

                    if (sCadena3.Length > 25)
                    {
                        sw.WriteLine(sCadena1.PadLeft(4, ' ') + sCadena2.PadRight(1, ' ') + sCadena3.Substring(0, 25).PadRight(25, ' ') + sCadena4.PadRight(1, ' ') + sCadena5.PadLeft(9, ' '));
                        sw.WriteLine(sCadena3.Substring(25).PadLeft((sCadena3.Substring(26).Length + 5), ' '));
                    }

                    else
                    {
                        sw.WriteLine(sCadena1.PadLeft(4, ' ') + sCadena2.PadRight(1, ' ') + sCadena3.PadRight(25, ' ') + sCadena4.PadRight(1, ' ') + sCadena5.PadLeft(9, ' '));
                    }

                    // texto = texto + Program.sCantidadProductos[i] + "  " + Program.sNombreProductos[i] + "      $" + ((dbCantidad * (dbPrecioUnitario - dbDescuento))).ToString("N2") +"       \n" + Environment.NewLine;
                    //sw.WriteLine(sCadena1.PadLeft(4, ' ' ) + sCadena2 + sCadena3 + sCadena4 + sCadena5);
                }
            }
            else
            {
            }
        }