Ejemplo n.º 1
0
        void FacturarVenta()
        {
            ArrayList oBltNumeros = new ArrayList();
            bool      bCredito, bPagado = false;
            decimal   dMontoEfectivo        = 0;
            decimal   dMontoOtros           = 0;
            decimal   dDevolucion           = 0;
            decimal   dMontoEfectivoNoventa = 0;
            decimal   dMontoOtrosNoVenta    = 0;
            decimal   dMontoEfectivoVenta   = 0;
            decimal   dMontoOtrosVenta      = 0;

            BO.DAL.dsDatos.DatosPagoDataTable DatosPago        = new BO.DAL.dsDatos.DatosPagoDataTable();
            BO.DAL.dsDatos.DatosPagoDataTable DatosPagoNoVenta = new BO.DAL.dsDatos.DatosPagoDataTable();
            BO.DAL.dsDatos.DatosPagoDataTable DatosPagoVenta   = new BO.DAL.dsDatos.DatosPagoDataTable();
            bCredito = cmbTipoFact.SelectedIndex == 1;
            if (!bCredito)
            {
                frmDatosPago x = new frmDatosPago(dMontoVenta + dMontoNoVenta);
                x.StartPosition = FormStartPosition.CenterParent;
                x.ShowDialog();
                dMontoEfectivo = x.MontoEfectivo;
                dMontoOtros    = x.MontoOtros;
                dDevolucion    = x.Devolucion;
                DatosPago      = x.DatosPago;
                if (x.DialogResult == System.Windows.Forms.DialogResult.OK)
                {
                    bPagado = true;
                }
                else
                {
                    return;
                }
                if (DatosPago.Rows.Count == 0)
                {
                    BO.DAL.dsDatos.DatosPagoRow oRow = DatosPago.NewDatosPagoRow();
                    oRow.Banco         = -1;
                    oRow.BancoDesc     = "";
                    oRow.Devolucion    = dDevolucion;
                    oRow.Fecha         = DateTime.Now;
                    oRow.Importe       = Convert.ToDecimal(txtMontoTotal.Text);
                    oRow.MontoEfectivo = dMontoEfectivo;
                    oRow.Numero        = 99;
                    oRow.TipoPago      = -1;
                    oRow.TipoPagoDesc  = "";
                    DatosPago.Rows.Add(oRow);
                }
            }
            else
            {
                //VALIDO  QUE EL CLIENTE TENGA BALANCE
                if (oCliente.CTE_BALANCE_DISPONIBLE - Convert.ToDecimal(txtMontoTotal.Text) < 0)
                {
                    MessageBox.Show("El balance disponible del cliente es de: " + oCliente.CTE_BALANCE_DISPONIBLE.ToString(), "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                    return;
                }
                bPagado = false;
            }
            /*Tengo que hacer doble desglose*/
            if (dMontoNoVenta > 0)
            {
                if (bCredito == false)
                {
                    RetornaDatosPagos(DatosPago, ref DatosPagoNoVenta, dMontoNoVenta, ref dMontoEfectivoNoventa, ref dMontoOtrosNoVenta);
                }

                FacturarNoVenta(DatosPagoNoVenta, bCredito, dMontoNoVenta, dMontoEfectivoNoventa, dMontoOtrosNoVenta);
            }
            if (dMontoVenta > 0)
            {
                dMontoEfectivoVenta = dMontoEfectivo - dMontoEfectivoNoventa;
                if (!bCredito)
                {
                    if (bCredito == false)
                    {
                        RetornaDatosPagos(DatosPago, ref DatosPagoVenta, dMontoVenta, ref dMontoEfectivoVenta, ref dMontoOtrosVenta);
                    }
                }
                if ((bCredito == true) || (bPagado == true))
                {
                }//Aqui tengo que ver si el cliente esta suspendido
                BultosAFacturar(ref oBltNumeros);
                BO.BO.Facturar oFact = new BO.BO.Facturar();
                if (oFact.CrearFactura(dMontoEfectivoVenta, dMontoOtrosVenta, dDevolucion, DatosPagoVenta,
                                       oCliente.CTE_ID, oCliente.CTE_TIPO_FISCAL, Parametros.Parametros.SucursalActual,
                                       Parametros.Parametros.UsuarioId, oBltNumeros,
                                       oTableCorr, dMontoVenta, bCredito))
                {//Todo anduvo bien. Entonces Imprimo y limpio la pantalla.
                    //ImprimirFactura(oFact.FacturaGenerada);
                    //BO.BO.Facturar oFact = new BO.BO.Facturar();
                    oFact.RevisarTotales(oFact.FacturaGenerada);

                    ImprimirFactura oImpFact = new ImprimirFactura();
                    oImpFact.Imprimir(oFact.FacturaGenerada, DatosPago);
                }
            }
        }
Ejemplo n.º 2
0
        private void btnFacturar_Click(object sender, EventArgs e)
        {
            bool    bCredito, bPagado = false;
            decimal dMontoEfectivo = 0;
            decimal dMontoOtros    = 0;
            decimal dDevolucion    = 0;

            BO.DAL.dsDatos.DatosPagoDataTable DatosPago = new BO.DAL.dsDatos.DatosPagoDataTable();

            if (cmbTipoFact.SelectedIndex == 1)
            {
                bCredito = true;
            }
            else
            {
                bCredito = false;
            }

            if (!bCredito)
            {
                frmDatosPago x = new frmDatosPago(Convert.ToDecimal(txtMontoTotal.Text));
                x.StartPosition = FormStartPosition.CenterParent;
                x.ShowDialog();
                dMontoEfectivo = x.MontoEfectivo;
                dMontoOtros    = x.MontoOtros;
                dDevolucion    = x.Devolucion;
                DatosPago      = x.DatosPago;
                if (x.DialogResult == System.Windows.Forms.DialogResult.OK)
                {
                    bPagado = true;
                }

                if (DatosPago.Rows.Count == 0)
                {
                    BO.DAL.dsDatos.DatosPagoRow oRow = DatosPago.NewDatosPagoRow();
                    oRow.Banco         = -1;
                    oRow.BancoDesc     = "";
                    oRow.Devolucion    = dDevolucion;
                    oRow.Fecha         = DateTime.Now;
                    oRow.Importe       = Convert.ToDecimal(txtMontoTotal.Text);
                    oRow.MontoEfectivo = dMontoEfectivo;
                    oRow.Numero        = 99;
                    oRow.TipoPago      = -1;
                    oRow.TipoPagoDesc  = "";
                    DatosPago.Rows.Add(oRow);
                }
            }
            else
            {
                bPagado = false;
            }

            if ((bCredito == true) || (bPagado == true))
            {
                if (bCredito)
                {
                    //VALIDO  QUE EL CLIENTE TENGA BALANCE
                    if (oCliente.CTE_BALANCE_DISPONIBLE - Convert.ToDecimal(txtMontoTotal.Text) < 0)
                    {
                        MessageBox.Show("El balance disponible del cliente es de: " + oCliente.CTE_BALANCE_DISPONIBLE.ToString(), "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                        return;
                    }
                }//Aqui tengo que ver si el cliente esta suspendido


                BO.BO.Facturar oFact = new BO.BO.Facturar();
                if (oFact.CrearFacturaEnvio(dMontoEfectivo, dMontoOtros, dDevolucion, DatosPago,
                                            oCliente.CTE_ID, oCliente.CTE_TIPO_FISCAL, Parametros.Parametros.SucursalActual,
                                            Parametros.Parametros.UsuarioId,
                                            oEnvio, oUnidades, Convert.ToDecimal(txtMontoTotal.Text), bCredito))
                {//Todo anduvo bien. Entonces Imprimo y limpio la pantalla.
                    //ImprimirFactura(oFact.FacturaGenerada);
                    ImprimirFactura oImpFact = new ImprimirFactura();
                    oImpFact.Imprimir(oFact.FacturaGenerada, DatosPago);


                    LimpiarPantalla();
                }
            }
        }