Esempio n. 1
0
        bool ProcesoAnulacion(int iReciboId)
        {
            Boolean bRetorno = false;
            string  sMensaje = "";

            BO.BO.Facturar oFact = new BO.BO.Facturar();

            bRetorno = oFact.ProcesarAnulacion(iReciboId, Parametros.Parametros.UsuarioId, ref sMensaje);

            if (bRetorno == false)
            {
                MessageBox.Show(sMensaje, "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                MessageBox.Show("Anulación realizada exitosamente en el sistema", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
                //ImprimirFactura(oFact.FacturaGenerada);
                ImprimirFactura oImpFact = new ImprimirFactura();
                BO.DAL.dsDatos.DatosPagoDataTable oDatosPago = null;

                oImpFact.Imprimir(oFact.FacturaGenerada, oDatosPago);


                //LimpiarPantalla();
            }

            return(bRetorno);
        }
        public void Imprimir(int iReciboId, BO.DAL.dsDatos.DatosPagoDataTable oDatosPago, bool pbImpreso = false)
        {
            //bool bError = false;
            PrinterResponses response;

            // dsFacturaBindingSource.DataSource = CargarDataSet();
            BO.DAL.dsFactura.FACTURASDataTable dtFatura = new BO.DAL.dsFactura.FACTURASDataTable();
            // DataTable dt = new DataTable();
            dtFatura = CargarDataSetFiscal(iReciboId);
            //dt.TableName = "FACTURAS";
            BO.Models.Terminal oTerm = new BO.Models.Terminal();
            oTerm = unitOfWork.TerminalRepository.GetByID(Parametros.ParametrosSucursal.TermFiscalId);
            if (oTerm != null)
            {
                Printer oPrinter = new Printer(oTerm);
                oPrinter.SetInvoiceData(dtFatura, oDatosPago, !pbImpreso, 1);
                response = oPrinter.Print();
                if (response == PrinterResponses.Success)
                {
                    var oRecibos = unitOfWork.RecibosRepository.GetByID(iReciboId);
                    oRecibos.IMPRESO = true;
                    unitOfWork.RecibosRepository.Update(oRecibos);
                    unitOfWork.Save();
                }
                else
                {
                    MessageBox.Show(Printer.GetPrinterReturnMessage(response), "Aviso", MessageBoxButtons.OK,
                                    MessageBoxIcon.Error);
                }
            }

            //dsFacturas.Tables.Add(dt);
        }
        public void ImprimirNoVenta(int iReciboId, BO.DAL.dsDatos.DatosPagoDataTable oDatosPago, bool pbImpreso = false)
        {
            bool bError = false;

            // dsFacturaBindingSource.DataSource = CargarDataSet();
            BO.DAL.dsFactura.FACTURASDataTable dtFatura = new BO.DAL.dsFactura.FACTURASDataTable();
            // DataTable dt = new DataTable();
            dtFatura = CargarDataSetFiscal(iReciboId);
            //dt.TableName = "FACTURAS";
            BO.Models.Terminal oTerm = new BO.Models.Terminal();
            oTerm = unitOfWork.TerminalRepository.GetByID(Parametros.ParametrosSucursal.TermFiscalId);
            Printer oPrinter = new Printer(oTerm);

            oPrinter.SetInvoiceData(dtFatura, oDatosPago, !pbImpreso, 1);
            oPrinter.PrintNoFiscalReceipt();

            /* if (bError == false)
             * {
             *   var oRecibos = unitOfWork.RecibosRepository.GetByID(iReciboId);
             *   oRecibos.IMPRESO = true;
             *   unitOfWork.RecibosRepository.Update(oRecibos);
             *   unitOfWork.Save();
             * }
             * else
             * {
             *   MessageBox.Show("Ha ocurrido un error en la Impresión del recibo, favor revisar la conexión ", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Error);
             * }
             */
            //dsFacturas.Tables.Add(dt);
        }
Esempio n. 4
0
        void FacturarNoVenta(BO.DAL.dsDatos.DatosPagoDataTable DatosPago, bool bCredito, decimal dMontoNoVenta, decimal dMontoEfectivo, decimal dMontoOtros)
        {
            ArrayList oBltNumeros = new ArrayList();
            decimal   dDevolucion = 0;

            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
            BultosAFacturar(ref oBltNumeros);
            BO.BO.Facturar oFact = new BO.BO.Facturar();
            if (oFact.CrearFacturaNoVenta(dMontoEfectivo, dMontoOtros, dDevolucion, DatosPago,
                                          oCliente.CTE_ID, oCliente.CTE_TIPO_FISCAL, Parametros.Parametros.SucursalActual,
                                          Parametros.Parametros.UsuarioId, oBltNumeros,
                                          oTableCorr, dMontoNoVenta, bCredito))
            {//Todo anduvo bien. Entonces Imprimo y limpio la pantalla.
                //ImprimirFactura(oFact.FacturaGenerada);
                ImprimirFactura oImpFact = new ImprimirFactura();
                oImpFact.ImprimirNoVenta(oFact.FacturaGenerada, DatosPago);
            }
        }
Esempio n. 5
0
        void RetornaDatosPagos(BO.DAL.dsDatos.DatosPagoDataTable DatosPago, ref BO.DAL.dsDatos.DatosPagoDataTable newDatosPago, decimal dMonto, ref decimal dMontoEfectvo, ref decimal dMontoOtros)
        {
            decimal dMontoRestante = 0;

            foreach (BO.DAL.dsDatos.DatosPagoRow dr in DatosPago.OrderBy(p => p.TipoPago))
            {
                /*Pago Efect*/
                if (dr.TipoPago == -1)
                {
                    if (dr.MontoEfectivo >= dMonto)
                    {
                        dMontoEfectvo = dMonto;
                        BO.DAL.dsDatos.DatosPagoRow oNewRow = newDatosPago.NewDatosPagoRow();
                        oNewRow.MontoEfectivo = dMonto;
                        oNewRow.Importe       = dMonto;
                        oNewRow.Numero        = dr.Numero;
                        oNewRow.TipoPago      = dr.TipoPago;
                        oNewRow.TipoPagoDesc  = dr.TipoPagoDesc;
                        oNewRow.Fecha         = dr.Fecha;
                        oNewRow.Devolucion    = 0;
                        oNewRow.Banco         = dr.Banco;
                        oNewRow.BancoDesc     = dr.BancoDesc;
                        newDatosPago.Rows.Add(oNewRow);
                        break;
                    }
                    else
                    {
                        dMontoEfectvo = dr.MontoEfectivo;
                        BO.DAL.dsDatos.DatosPagoRow oNewRow = newDatosPago.NewDatosPagoRow();
                        oNewRow.MontoEfectivo = dr.MontoEfectivo;
                        oNewRow.Importe       = dr.MontoEfectivo;
                        oNewRow.Numero        = dr.Numero;
                        oNewRow.TipoPago      = dr.TipoPago;
                        oNewRow.TipoPagoDesc  = dr.TipoPagoDesc;
                        oNewRow.Fecha         = dr.Fecha;
                        oNewRow.Devolucion    = 0;
                        oNewRow.Banco         = dr.Banco;
                        oNewRow.BancoDesc     = dr.BancoDesc;
                        newDatosPago.Rows.Add(oNewRow);
                        dMontoRestante = dMonto - dr.MontoEfectivo;
                    }
                }
                else
                {
                    dMontoOtros = dMonto;
                    BO.DAL.dsDatos.DatosPagoRow oNewRow = newDatosPago.NewDatosPagoRow();
                    oNewRow.MontoEfectivo = 0;
                    oNewRow.Importe       = dMonto;
                    oNewRow.Numero        = dr.Numero;
                    oNewRow.TipoPago      = dr.TipoPago;
                    oNewRow.TipoPagoDesc  = dr.TipoPagoDesc;
                    oNewRow.Fecha         = dr.Fecha;
                    oNewRow.Devolucion    = 0;
                    oNewRow.Banco         = dr.Banco;
                    oNewRow.BancoDesc     = dr.BancoDesc;
                    newDatosPago.Rows.Add(oNewRow);
                    break;
                }
            }
        }
Esempio n. 6
0
        private void btnFacturar_Click(object sender, EventArgs e)
        {
            bool    bPagado = false;
            decimal dMontoEfectivo, dMontoOtros, dDevolucion;

            ArrayList oRecibos = new ArrayList();

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

            Facturacion.frmDatosPago x = new Facturacion.frmDatosPago(txtMontoAplicar.DecimalValue);
            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 (bPagado == true)
            {
                foreach (DataGridViewRow oRow in dgRecibos.SelectedRows)
                {
                    oRecibos.Add(oRow.Cells[0].Value);
                }

                if (oRecibos.Count > 0)
                {
                    //    RegistrarCobro(ArrayList pRecibos, int iCteId, int iUsuarioId, int iSucId, int iTipoFiscal, decimal pdMontoPagar,
                    //   decimal dMontoEfectivo, decimal dMontoOtros, decimal dDevolucion, DAL.dsDatos.DatosPagoDataTable oDatosPago)
                    BO.BO.Facturar oFact = new BO.BO.Facturar();
                    if (oFact.RegistrarCobro(oRecibos, iCteId, Parametros.Parametros.UsuarioId, Parametros.Parametros.SucursalActual, -1,
                                             txtMontoAplicar.DecimalValue, dMontoEfectivo, dMontoOtros, dDevolucion, DatosPago) == true)
                    {
                        //ImprimirFactura(oFact.FacturaGenerada);
                        Facturacion.ImprimirFactura oImpFact = new Facturacion.ImprimirFactura();

                        //Aca vamos a imprimir con el numero de omivimento de caja
                        oImpFact.ImprimirComprobate(oFact.FacturaGenerada);


                        LimpiarPantalla();


                        MessageBox.Show("Pago aplicado correctamente", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }
        }
Esempio n. 7
0
        private void reImprimirToolStripMenuItem_Click(object sender, EventArgs e)
        {
            int iReciboId = -1;

            iReciboId = Convert.ToInt32(dgDatos[0, dgDatos.CurrentCell.RowIndex].Value);

            //BO.BO.Facturar oFact = new BO.BO.Facturar();
            //oFact.RevisarTotales(iReciboId);

            // MessageBox.Show("Anulación realizada exitosamente", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
            //ImprimirFactura(oFact.FacturaGenerada);
            unitOfWork = new BO.DAL.UnitOfWork();
            var Recibos = unitOfWork.RecibosRepository.GetByID(iReciboId);

            if (Recibos != null)
            {
                BO.DAL.dsDatos.DatosPagoDataTable oPagos = new BO.DAL.dsDatos.DatosPagoDataTable();

                bool bImpreso = Recibos.IMPRESO;

                if (bImpreso == false && Recibos.ESTADO_ID != 15)
                {
                    DialogResult oResult = MessageBox.Show("Este recibo no se ha impreso fiscalmente, ¿desea imprimirlo ahora?", "Aviso", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);
                    if (oResult == System.Windows.Forms.DialogResult.No)
                    {
                        return;
                    }
                }
                else if (Recibos.ESTADO_ID == 15)
                {
                    DialogResult oResult = MessageBox.Show("Este recibo fue anulado, no es posible reimprimir", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Stop, MessageBoxDefaultButton.Button1);
                    return;
                }
                else
                {
                    DialogResult oResult = MessageBox.Show("Este recibo ya fue impreso fiscalmente, no es posible reimprimir", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Stop, MessageBoxDefaultButton.Button1);
                    return;
                }
                var PagosRecibos = unitOfWork.PagosRecibosRepository.Get(xy => xy.RECIBO_ID == iReciboId).FirstOrDefault();
                if (PagosRecibos != null)
                {
                    var pagos      = unitOfWork.PagosRepository.Get(filter: xy => xy.PAGO_ID == PagosRecibos.PAGO_ID).FirstOrDefault();
                    var DatosPagos = unitOfWork.DatosPagoRepository.Get(xy => xy.PAGO_ID == pagos.PAGO_ID);
                    foreach (var datosPago in DatosPagos)
                    {
                        BO.DAL.dsDatos.DatosPagoRow oRow = oPagos.NewDatosPagoRow();
                        oRow.Banco         = datosPago.BANCO_ID;
                        oRow.BancoDesc     = "";
                        oRow.Devolucion    = 0;
                        oRow.Fecha         = DateTime.Now;
                        oRow.Importe       = datosPago.IMPORTE;
                        oRow.MontoEfectivo = pagos.MONTO_EFECTIVO;
                        oRow.Numero        = 0;
                        oRow.TipoPago      = pagos.TIPO_ID;
                        oRow.TipoPagoDesc  = "";
                        oPagos.Rows.Add(oRow);
                    }
                    if (DatosPagos == null || DatosPagos.Any() == false)
                    {
                        BO.DAL.dsDatos.DatosPagoRow oRow = oPagos.NewDatosPagoRow();
                        oRow.Banco         = -1;
                        oRow.BancoDesc     = "";
                        oRow.Devolucion    = 0;
                        oRow.Fecha         = DateTime.Now;
                        oRow.Importe       = pagos.IMP_PAGO;
                        oRow.MontoEfectivo = pagos.MONTO_EFECTIVO;
                        oRow.Numero        = 99;
                        oRow.TipoPago      = -1;
                        oRow.TipoPagoDesc  = "";
                        oPagos.Rows.Add(oRow);
                    }
                }

                if (Recibos.TIPO_REC_ID == 62)  //No venta
                {
                    ImprimirFactura oImpFact = new ImprimirFactura();
                    oImpFact.ImprimirNoVenta(iReciboId, oPagos);
                }
                else
                {
                    ImprimirFactura oImpFact = new ImprimirFactura();
                    oImpFact.Imprimir(iReciboId, oPagos);
                }
            }
        }
Esempio n. 8
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);
                }
            }
        }
Esempio n. 9
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();
                }
            }
        }