Beispiel #1
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;
                }
            }
        }
Beispiel #2
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);
                }
            }
        }
Beispiel #3
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);
                }
            }
        }
Beispiel #4
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();
                }
            }
        }