Пример #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);
        }
Пример #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");
        }