Example #1
0
        public int GenerarVenta(EntitieVenta venta)
        {
            int idTransaccion = ControllerTransacciones.Instance.NuevaTransaccion(
                new EntitieTransaccion(
                    venta.GetIdCuenta(),
                    ControllerTipoTransacciones.Instance.GetTipoTransaccionByNombre("INGRESO").GetIdTipoTransaccion(),
                    venta.GetTotal()));

            String nombreCliente = ControllerClientes.Instance.GetClienteById(venta.GetIdCliente()).GetNombre();
            String nombreCuenta  = ControllerCuentas.Instance.GetCuentaById(venta.GetIdCuenta()).GetNombre();

            ManagerDatabase.Instance.Execute("INSERT INTO Ventas(ID_Transaccion, ID_Cuenta, ID_Cliente, Cuenta, Cliente, Total, Fecha_Hora) " +
                                             "VALUES(" + idTransaccion + ", " + venta.GetIdCuenta() + ", " + venta.GetIdCliente() + ", " +
                                             "'" + nombreCuenta + "', '" + nombreCliente + "', " +
                                             venta.GetTotal().ToString().Replace(",", ".") + ", " +
                                             "'" + venta.GetFechaHora().ToShortDateString() + "')");

            int idVenta = Convert.ToInt32(ManagerDatabase.Instance.ExecuteQuery("SELECT MAX(ID_Venta) from Ventas").Rows[0][0]);

            for (int i = 0; i < venta.GetItems().Count; i++)
            {
                venta.GetItems()[i].SetIdVenta(idVenta);
            }

            GenerarItems(venta.GetItems());
            GenerarFacturaPdf(idVenta);

            return(idVenta);
        }
Example #2
0
        public void GenerarFacturaPdf(int idVenta)
        {
            EntitieVenta venta = GetVentaById(idVenta);

            Image    factura = Properties.Resources.Factura;
            Graphics g       = Graphics.FromImage(factura);

            StringFormat formatter = new StringFormat();

            formatter.LineAlignment = StringAlignment.Center;
            formatter.Alignment     = StringAlignment.Near;

            //Dibuja en las coordenadas exactas los valores del DGV en la factura
            for (int i = 0; i < venta.GetItems().Count; i++)
            {
                formatter.Alignment = StringAlignment.Center;
                DrawOnGraphics(g,
                               ManagerFormats.Instance.IntToNumber(venta.GetItems()[i].GetCantidad()),
                               new Point(FACTURA_POS_X[0], FACTURA_STARTING_ITEM + (FACTURA_NEW_LINE_HEIGHT * (i + 1))), CANTIDAD_MAX_WIDTH, formatter, false);

                formatter.Alignment = StringAlignment.Near;
                DrawOnGraphics(g,
                               (venta.GetItems()[i].GetNombrePez().Length > 35 ?
                                venta.GetItems()[i].GetNombrePez().Substring(0, 35) + "." :
                                venta.GetItems()[i].GetNombrePez()),
                               new Point(FACTURA_POS_X[1], FACTURA_STARTING_ITEM + (FACTURA_NEW_LINE_HEIGHT * (i + 1))), DESCRIPCION_MAX_WIDTH, formatter, false);

                formatter.Alignment = StringAlignment.Center;
                DrawOnGraphics(g,
                               ManagerFormats.Instance.DecimalToMoney(venta.GetItems()[i].GetMontoUnitario(), true),
                               new Point(FACTURA_POS_X[2], FACTURA_STARTING_ITEM + (FACTURA_NEW_LINE_HEIGHT * (i + 1))), PRECIO_UNITARIO_MAX_WIDTH, formatter, false);

                DrawOnGraphics(g,
                               ManagerFormats.Instance.DecimalToMoney(venta.GetItems()[i].GetSubtotal(), true),
                               new Point(FACTURA_POS_X[3], FACTURA_STARTING_ITEM + (FACTURA_NEW_LINE_HEIGHT * (i + 1))), SUBTOTAL_MAX_WIDTH, formatter, false);
            }

            formatter.Alignment = StringAlignment.Far;
            DrawOnGraphics(g, ManagerFormats.Instance.DecimalToMoney(venta.GetTotal(), false),
                           TOTAL_POS, TOTAL_MAX_WIDTH, formatter, true);

            //Dibuja el nombre del cliente
            formatter.Alignment = StringAlignment.Near;
            DrawOnGraphics(g, "Cliente: " +
                           (venta.GetCliente().Length > 29 ? venta.GetCliente().Substring(0, 29) + "." : venta.GetCliente()),
                           CLIENTE_POS, CLIENTE_MAX_WIDTH, formatter, true);

            //Dibuja la fecha actual
            formatter.Alignment = StringAlignment.Far;
            DrawOnGraphics(g, "Fecha: " + DateTime.Today.ToShortDateString(), FECHA_POS, FECHA_MAX_WIDTH, formatter, true);
            factura.Save(ManagerNames.FACTURAS_PATH + idVenta + ".jpg");
        }
Example #3
0
        public EntitieVenta GetVentaById(int idVenta)
        {
            EntitieVenta venta = null;

            DataTable dt = ManagerDatabase.Instance.ExecuteQuery("SELECT * FROM Ventas WHERE ID_Venta = " + idVenta);

            if (dt.Rows.Count > 0)
            {
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    String    query = "SELECT * FROM Venta_Items WHERE ID_Venta = " + Convert.ToInt32(dt.Rows[i][0]);
                    DataTable subDt = ManagerDatabase.Instance.ExecuteQuery(query);

                    List <EntitieVentaItem> items = new List <EntitieVentaItem>();

                    for (int j = 0; j < subDt.Rows.Count; j++)
                    {
                        items.Add(new EntitieVentaItem(
                                      Convert.ToInt32(subDt.Rows[j][0]),
                                      Convert.ToInt32(subDt.Rows[j][1]),
                                      Convert.ToInt32(subDt.Rows[j][2]),
                                      subDt.Rows[j][3].ToString(),
                                      Convert.ToDecimal(subDt.Rows[j][4]),
                                      Convert.ToInt32(subDt.Rows[j][5]),
                                      Convert.ToDecimal(subDt.Rows[j][6])));
                    }

                    venta = new EntitieVenta(
                        Convert.ToInt32(dt.Rows[i][0]),
                        Convert.ToInt32(dt.Rows[i][1]),
                        Convert.ToInt32(dt.Rows[i][2]),
                        Convert.ToInt32(dt.Rows[i][3]),
                        dt.Rows[i][4].ToString(),
                        dt.Rows[i][5].ToString(),
                        Convert.ToDecimal(dt.Rows[i][6]),
                        Convert.ToDateTime(dt.Rows[i][7]),
                        items);
                }
            }

            return(venta);
        }
Example #4
0
        // |==============================METODOS Y FUNCIONES==============================|

        // |------------------------------VENTAS------------------------------|
        public List <EntitieVenta> GetVentas()
        {
            List <EntitieVenta> ventas = new List <EntitieVenta>();

            DataTable dt = ManagerDatabase.Instance.ExecuteQuery("SELECT * FROM Ventas");

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                String    query = "SELECT * FROM Venta_Items WHERE ID_Venta = " + Convert.ToInt32(dt.Rows[i][0]);
                DataTable subDt = ManagerDatabase.Instance.ExecuteQuery(query);

                List <EntitieVentaItem> items = new List <EntitieVentaItem>();

                for (int j = 0; j < dt.Rows.Count; j++)
                {
                    items.Add(new EntitieVentaItem(
                                  Convert.ToInt32(dt.Rows[i][0]),
                                  Convert.ToInt32(dt.Rows[i][1]),
                                  Convert.ToInt32(dt.Rows[i][2]),
                                  dt.Rows[i][3].ToString(),
                                  Convert.ToDecimal(dt.Rows[i][4]),
                                  Convert.ToInt32(dt.Rows[i][5]),
                                  Convert.ToDecimal(dt.Rows[i][6])));
                }

                EntitieVenta venta = new EntitieVenta(
                    Convert.ToInt32(dt.Rows[i][0]),
                    Convert.ToInt32(dt.Rows[i][1]),
                    Convert.ToInt32(dt.Rows[i][2]),
                    Convert.ToInt32(dt.Rows[i][3]),
                    dt.Rows[i][4].ToString(),
                    dt.Rows[i][5].ToString(),
                    Convert.ToDecimal(dt.Rows[i][6]),
                    Convert.ToDateTime(dt.Rows[i][7]),
                    items);

                ventas.Add(venta);
            }

            return(ventas);
        }
Example #5
0
        public List <EntitieVenta> GetVentas(int idVenta, String cliente, DateTime desde, DateTime hasta)
        {
            List <EntitieVenta> ventas = new List <EntitieVenta>();

            String query = "SELECT * " +
                           "FROM Ventas V " +
                           "LEFT JOIN Clientes C ON V.ID_Cliente = C.ID_Cliente ";

            Boolean whereAdded = false;

            if (idVenta > 0)
            {
                query     += "WHERE V.ID_Venta = " + idVenta + " ";
                whereAdded = true;
            }

            if (!cliente.Equals(String.Empty))
            {
                if (whereAdded)
                {
                    query += "AND V.Cliente LIKE '%" + cliente + "%' ";
                }
                else
                {
                    query     += "WHERE V.Cliente LIKE '%" + cliente + "%' ";
                    whereAdded = true;
                }
            }

            if (desde != null)
            {
                if (whereAdded)
                {
                    query += "AND Fecha_Hora >= '" + desde.ToShortDateString() + "' ";
                }
                else
                {
                    query     += "WHERE Fecha_Hora >= '" + desde.ToShortDateString() + "' ";
                    whereAdded = true;
                }
            }

            if (hasta != null)
            {
                if (whereAdded)
                {
                    query += "AND Fecha_Hora <= '" + hasta.ToShortDateString() + "' ";
                }
                else
                {
                    query     += "WHERE Fecha_Hora <= '" + hasta.ToShortDateString() + "' ";
                    whereAdded = true;
                }
            }

            DataTable dt = ManagerDatabase.Instance.ExecuteQuery(query);

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                query = "SELECT * FROM Venta_Items WHERE ID_Venta = " + Convert.ToInt32(dt.Rows[i][0]);
                DataTable subDt = ManagerDatabase.Instance.ExecuteQuery(query);

                List <EntitieVentaItem> items = new List <EntitieVentaItem>();

                for (int j = 0; j < subDt.Rows.Count; j++)
                {
                    items.Add(new EntitieVentaItem(
                                  Convert.ToInt32(subDt.Rows[j][0]),
                                  Convert.ToInt32(subDt.Rows[j][1]),
                                  Convert.ToInt32(subDt.Rows[j][2]),
                                  subDt.Rows[j][3].ToString(),
                                  Convert.ToDecimal(subDt.Rows[j][4]),
                                  Convert.ToInt32(subDt.Rows[j][5]),
                                  Convert.ToDecimal(subDt.Rows[j][6])));
                }

                EntitieVenta venta = new EntitieVenta(
                    Convert.ToInt32(dt.Rows[i][0]),
                    Convert.ToInt32(dt.Rows[i][1]),
                    Convert.ToInt32(dt.Rows[i][2]),
                    Convert.ToInt32(dt.Rows[i][3]),
                    dt.Rows[i][4].ToString(),
                    dt.Rows[i][5].ToString(),
                    Convert.ToDecimal(dt.Rows[i][6]),
                    Convert.ToDateTime(dt.Rows[i][7]),
                    items);

                ventas.Add(venta);
            }

            return(ventas);
        }