예제 #1
0
        public List <Facturacion> Generar(Semana oSemana)
        {
            List <Facturacion> lstFacturacion            = new List <Facturacion>();
            List <char>        lstTipoConceptoPermitidos = new List <char>();

            lstTipoConceptoPermitidos.Add('B'); //Billetes
            lstTipoConceptoPermitidos.Add('R'); //Reembolsos

            List <BSP_Ticket> lstTickets = oSemana.TicketsBSP.Where(x => lstTipoConceptoPermitidos.Contains(x.Concepto.Tipo)).OrderBy(x => x.Compania.Codigo).ThenBy(x => x.Billete).ToList();

            foreach (BSP_Ticket oBSP_Ticket in lstTickets)
            {
                BO_Ticket bo_ticket = oSemana.TicketsBO.Find(x => x.Billete == oBSP_Ticket.Billete);

                Facturacion oFacturacion = new Facturacion();

                oFacturacion.Cia           = oBSP_Ticket.Compania.Codigo;
                oFacturacion.Rg            = oBSP_Ticket.Rg == BSP_Rg.Doméstico ? "C" : "I";
                oFacturacion.Tipo          = (oBSP_Ticket.Concepto.Tipo.Equals('R') ? "R" : (oBSP_Ticket.Tipo.Contains('F') && !oBSP_Ticket.Detalle.Any(x => x.Observaciones.Trim() == "CNJ") ? "B" : "V"));
                oFacturacion.BoletoNro     = !oBSP_Ticket.Concepto.Tipo.Equals('R') ? oBSP_Ticket.Billete.ToString() : oBSP_Ticket.Detalle.Find(x => x.Observaciones.Substring(0, 2) == "RF").Observaciones.Substring(5, 10);
                oFacturacion.Moneda        = oBSP_Ticket.Moneda == Moneda.Peso ? "$" : "D";
                oFacturacion.FechaEmision  = AuditurHelpers.GetDateTimeString(oBSP_Ticket.FechaVenta);
                oFacturacion.Tarifa        = oBSP_Ticket.TarContado + oBSP_Ticket.TarCredito;
                oFacturacion.QN            = oBSP_Ticket.Detalle.Where(x => x.ISO == "QN").Sum(x => x.ImpContado + x.ImpCredito);
                oFacturacion.Impuestos     = oBSP_Ticket.Detalle.Where(x => x.ISO != "QN").Sum(x => x.ImpContado + x.ImpCredito);
                oFacturacion.IVA10         = oBSP_Ticket.IVA105;
                oFacturacion.Gravado       = Math.Round((oBSP_Ticket.IVA105 / 10.5M) * 100, 2);
                oFacturacion.Exento        = Math.Round(oFacturacion.Tarifa + oFacturacion.QN + oFacturacion.Impuestos - oFacturacion.Gravado, 2);
                oFacturacion.ComNormal     = oBSP_Ticket.ComValor;
                oFacturacion.ComOver       = oBSP_Ticket.ComOver;
                oFacturacion.IVAComisiones = oBSP_Ticket.ComIVA;
                oFacturacion.TotalFinal    = oBSP_Ticket.Total;
                oBSP_Ticket.Detalle.ForEach(x => oFacturacion.Observaciones += x.Observaciones + " ");
                oFacturacion.Observaciones = oFacturacion.Observaciones.Trim();

                if (bo_ticket != null)
                {
                    oFacturacion.Operacion = bo_ticket.Expediente;
                    oFacturacion.Factura   = bo_ticket.Factura;
                    oFacturacion.Pasajero  = bo_ticket.Pasajero;
                }

                lstFacturacion.Add(oFacturacion);
            }
            return(lstFacturacion);
        }
예제 #2
0
        public List <SituacionBO> Generar(Semana oSemana)
        {
            List <SituacionBO> lstSituacionBO = new List <SituacionBO>();

            List <BO_Ticket> lstTickets =
                oSemana.TicketsBO
                .Where(bo => (!oSemana.TicketsBSP.Any(bsp => bo.Billete == bsp.Billete &&
                                                      bo.Compania.Codigo == bsp.Compania.Codigo))
                       ||
                       (oSemana.TicketsBSP.Any(bsp => bo.Billete == bsp.Billete &&
                                               bo.Compania.Codigo == bsp.Compania.Codigo &&
                                               bo.Tarifa != bsp.TarContado + bsp.TarCredito &&
                                               ((bo.TarContado != 0 && bsp.TarContado == 0) ||
                                                (bo.TarCredito != 0 && bsp.TarCredito == 0))
                                               ))).OrderBy(x => x.Compania.Codigo).ThenBy(x => x.Billete).ToList();

            foreach (BO_Ticket oBO_Ticket in lstTickets)
            {
                SituacionBO oSituacionBO = new SituacionBO();

                oSituacionBO.Tarifa    = oBO_Ticket.Tarifa;
                oSituacionBO.Impuestos = oBO_Ticket.Impuestos;
                oSituacionBO.IVA       = oBO_Ticket.IVA105;
                oSituacionBO.Over      = oBO_Ticket.ComOver;
                oSituacionBO.Comision  = oBO_Ticket.Comision;
                oSituacionBO.Importe   = oBO_Ticket.Total;

                if (oSituacionBO.Tarifa != 0 || oSituacionBO.Impuestos != 0 || oSituacionBO.IVA != 0 || oSituacionBO.Over != 0 || oSituacionBO.Comision != 0 || oSituacionBO.Importe != 0)
                {
                    oSituacionBO.BoletoNro     = oBO_Ticket.Billete.ToString();
                    oSituacionBO.Tr            = oBO_Ticket.Compania != null ? oBO_Ticket.Compania.Codigo : "";
                    oSituacionBO.Contado       = oBO_Ticket.TarContado;
                    oSituacionBO.Credito       = oBO_Ticket.TarCredito;
                    oSituacionBO.Moneda        = oBO_Ticket.Moneda == Moneda.Peso ? "$" : "D";
                    oSituacionBO.Fecha         = AuditurHelpers.GetDateTimeString(oBO_Ticket.Fecha);
                    oSituacionBO.Observaciones = "No figura en su BSP";
                    oSituacionBO.Factura       = oBO_Ticket.Factura;
                    oSituacionBO.Pasajero      = oBO_Ticket.Pasajero;
                    oSituacionBO.Operacion     = oBO_Ticket.Expediente;

                    lstSituacionBO.Add(oSituacionBO);
                }
            }

            return(lstSituacionBO);
        }
예제 #3
0
        public List <BSPNroOP> Generar(Semana oSemana)
        {
            List <BSPNroOP> lstBSPNroOP = new List <BSPNroOP>();
            List <char>     lstTipoConceptoPermitidos = new List <char>();

            lstTipoConceptoPermitidos.Add('B'); //Billetes
            lstTipoConceptoPermitidos.Add('R'); //Reembolsos

            List <BSP_Ticket> lstTickets = oSemana.TicketsBSP.Where(x => lstTipoConceptoPermitidos.Contains(x.Concepto.Tipo)).OrderBy(x => x.Compania.Codigo).ThenBy(x => x.Billete).ToList();

            foreach (BSP_Ticket oBSP_Ticket in lstTickets)
            {
                BO_Ticket bo_ticket = oSemana.TicketsBO.Find(x => x.Billete == oBSP_Ticket.Billete);

                BSPNroOP oBSPNroOP = new BSPNroOP();

                oBSPNroOP.Cia           = oBSP_Ticket.Compania.Codigo;
                oBSPNroOP.Rg            = oBSP_Ticket.Rg == BSP_Rg.Doméstico ? "C" : "I";
                oBSPNroOP.Tipo          = (oBSP_Ticket.Concepto.Tipo.Equals('R') ? "R" : (oBSP_Ticket.Tipo.Contains('F') && !oBSP_Ticket.Detalle.Any(x => x.Observaciones.Trim() == "CNJ") ? "B" : "V"));
                oBSPNroOP.BoletoNro     = !oBSP_Ticket.Concepto.Tipo.Equals('R') ? oBSP_Ticket.Billete.ToString() : oBSP_Ticket.Detalle.Find(x => x.Observaciones.Substring(0, 2) == "RF").Observaciones.Substring(5, 10);
                oBSPNroOP.Moneda        = oBSP_Ticket.Moneda == Moneda.Peso ? "$" : "D";
                oBSPNroOP.FechaEmision  = AuditurHelpers.GetDateTimeString(oBSP_Ticket.FechaVenta);
                oBSPNroOP.Tarifa        = oBSP_Ticket.TarContado + oBSP_Ticket.TarCredito;
                oBSPNroOP.Contado       = oBSP_Ticket.TarContado;
                oBSPNroOP.Credito       = oBSP_Ticket.TarCredito;
                oBSPNroOP.ImpContado    = oBSP_Ticket.Detalle.Sum(x => x.ImpContado);
                oBSPNroOP.ImpCredito    = oBSP_Ticket.Detalle.Sum(x => x.ImpCredito);
                oBSPNroOP.IVA10         = oBSP_Ticket.IVA105;
                oBSPNroOP.ComNormal     = oBSP_Ticket.ComValor;
                oBSPNroOP.ComOver       = oBSP_Ticket.ComOver;
                oBSPNroOP.IVAComisiones = oBSP_Ticket.ComIVA;
                oBSPNroOP.TotalFinal    = oBSP_Ticket.Total;

                if (bo_ticket != null)
                {
                    oBSPNroOP.Operacion = bo_ticket.Expediente;
                    oBSPNroOP.Factura   = bo_ticket.Factura;
                    oBSPNroOP.Pasajero  = bo_ticket.Pasajero;
                }

                lstBSPNroOP.Add(oBSPNroOP);
            }
            return(lstBSPNroOP);
        }
예제 #4
0
        private Over GetOver(BSP_Ticket oBSP_Ticket, BO_Ticket oBO_Ticket)
        {
            Over oOver = new Over();

            oOver.Boleto = oBSP_Ticket != null?oBSP_Ticket.Billete.ToString() : oBO_Ticket.Billete.ToString();

            oOver.Fecha         = AuditurHelpers.GetDateTimeString(oBSP_Ticket != null ? oBSP_Ticket.FechaVenta : oBO_Ticket.Fecha);
            oOver.Tr            = oBSP_Ticket != null ? oBSP_Ticket.Compania.Codigo : oBO_Ticket.Compania.Codigo;
            oOver.Observaciones = "";

            if (oBSP_Ticket != null)
            {
                if (oBSP_Ticket.Moneda == Moneda.Peso)
                {
                    oOver.OverRecPesos = -oBSP_Ticket.ComOver;
                }
                else
                {
                    oOver.OverRecDolares = -oBSP_Ticket.ComOver;
                }
            }

            if (oBO_Ticket != null)
            {
                if (oBO_Ticket.Moneda == Moneda.Peso)
                {
                    oOver.OverPedPesos = oBO_Ticket.ComOver;
                }
                else if (oBO_Ticket.Moneda == Moneda.Dolar)
                {
                    oOver.OverPedDolares = oBO_Ticket.ComOver;
                }
                oOver.Factura   = oBO_Ticket.Factura;
                oOver.Pasajero  = oBO_Ticket.Pasajero;
                oOver.Operacion = oBO_Ticket.Expediente;
            }

            oOver.DiferenciasPesos   = oOver.OverRecPesos - oOver.OverPedPesos;
            oOver.DiferenciasDolares = oOver.OverRecDolares - oOver.OverPedDolares;

            return(oOver);
        }
예제 #5
0
        private CreditoObj GetCredito(BSP_Ticket oBSP_Ticket)
        {
            CreditoObj oCredito = new CreditoObj();

            oCredito.Nro           = oBSP_Ticket.Billete.ToString();
            oCredito.Rg            = oBSP_Ticket.Rg == BSP_Rg.Internacional ? "IC" : "CC";
            oCredito.Tr            = oBSP_Ticket.Compania.Codigo;
            oCredito.Tarifa        = oBSP_Ticket.TarContado + oBSP_Ticket.TarCredito;
            oCredito.Contado       = oBSP_Ticket.TarContado;
            oCredito.Credito       = oBSP_Ticket.TarCredito;
            oCredito.Impuestos     = oBSP_Ticket.Detalle.Sum(x => x.ImpContado + x.ImpCredito);
            oCredito.IVA           = oBSP_Ticket.IVA105;
            oCredito.Comision      = oBSP_Ticket.ComValor + oBSP_Ticket.ComOver;
            oCredito.Fecha         = AuditurHelpers.GetDateTimeString(oBSP_Ticket.FechaVenta);
            oCredito.Importe       = oBSP_Ticket.Total;
            oCredito.Moneda        = oBSP_Ticket.Moneda == Moneda.Peso ? "$" : "D";
            oCredito.Observaciones = oBSP_Ticket.Detalle[0].Observaciones.Replace("|", "\n");

            return(oCredito);
        }
예제 #6
0
        private Reembolso GetReembolso(BSP_Ticket oBSP_Ticket)
        {
            Reembolso oReembolso = new Reembolso();

            oReembolso.BoletoNro    = oBSP_Ticket.Detalle.Find(x => x.Observaciones.Substring(0, 2) == "RF").Observaciones.Substring(5, 10);
            oReembolso.Rg           = oBSP_Ticket.Rg == BSP_Rg.Internacional ? "IR" : "CR";
            oReembolso.Tr           = oBSP_Ticket.Compania.Codigo;
            oReembolso.Fecha        = AuditurHelpers.GetDateTimeString(oBSP_Ticket.FechaVenta);
            oReembolso.Tarifa       = (oBSP_Ticket.TarContado + oBSP_Ticket.TarCredito);
            oReembolso.Contado      = oBSP_Ticket.TarContado;
            oReembolso.Credito      = oBSP_Ticket.TarCredito;
            oReembolso.ImpContado   = oBSP_Ticket.Detalle.Where(x => !x.ISO.Equals("CP")).Sum(x => x.ImpContado);
            oReembolso.ImpCredito   = oBSP_Ticket.Detalle.Where(x => !x.ISO.Equals("CP")).Sum(x => x.ImpCredito);
            oReembolso.IVA          = oBSP_Ticket.IVA105;
            oReembolso.CC           = oBSP_Ticket.Detalle.Where(x => x.ISO.Equals("CP")).Sum(x => x.ImpContado + x.ImpCredito + x.IVA21);
            oReembolso.Comision     = (oBSP_Ticket.ComValor + oBSP_Ticket.ComIVA);
            oReembolso.Importe      = oBSP_Ticket.Total;
            oReembolso.Moneda       = oBSP_Ticket.Moneda == Moneda.Peso ? "$" : "D";
            oReembolso.ReembolsoNro = oBSP_Ticket.Billete.ToString();
            return(oReembolso);
        }
예제 #7
0
        public List <SituacionBSP> Generar(Semana oSemana)
        {
            List <SituacionBSP> lstSituacionBSP = new List <SituacionBSP>();

            List <BSP_Ticket> lstTickets = oSemana.TicketsBSP
                                           .Where(bspT => bspT.Concepto.Tipo == 'B' &&
                                                  bspT.Tipo != "VVVV" &&
                                                  !oSemana.TicketsBO.Any(boT => boT.Billete == bspT.Billete &&
                                                                         boT.Compania.Codigo == bspT.Compania.Codigo))
                                           .OrderBy(x => x.Compania.Codigo).ThenBy(x => x.Billete)
                                           .ToList();

            foreach (BSP_Ticket oBSP_Ticket in lstTickets)
            {
                SituacionBSP oSituacionBSP = new SituacionBSP();

                oSituacionBSP.Tarifa    = (oBSP_Ticket.TarContado + oBSP_Ticket.TarCredito);
                oSituacionBSP.Impuestos = (oBSP_Ticket.Detalle.Sum(x => x.ImpContado + x.ImpCredito) + oBSP_Ticket.IVA105);
                oSituacionBSP.Comision  = (oBSP_Ticket.ComValor + oBSP_Ticket.ComIVA);
                oSituacionBSP.Importe   = oBSP_Ticket.Total;

                if (oSituacionBSP.Tarifa != 0 || oSituacionBSP.Impuestos != 0 || oSituacionBSP.Comision != 0 || oSituacionBSP.Importe != 0)
                {
                    oSituacionBSP.Contado       = oBSP_Ticket.TarContado;
                    oSituacionBSP.Credito       = oBSP_Ticket.TarCredito;
                    oSituacionBSP.BoletoNro     = oBSP_Ticket.Billete.ToString();
                    oSituacionBSP.Rg            = oBSP_Ticket.Rg == BSP_Rg.Doméstico ? "CT" : "IT";
                    oSituacionBSP.Tr            = oBSP_Ticket.Compania.Codigo;
                    oSituacionBSP.Moneda        = oBSP_Ticket.Moneda == Moneda.Peso ? "$" : "D";
                    oSituacionBSP.Fecha         = AuditurHelpers.GetDateTimeString(oBSP_Ticket.FechaVenta);
                    oSituacionBSP.Observaciones = "No figura en su BO";

                    lstSituacionBSP.Add(oSituacionBSP);
                }
            }

            return(lstSituacionBSP);
        }
예제 #8
0
        public List <ControlIVA> Generar(Semana oSemana)
        {
            List <ControlIVA> lstControlIVA = new List <ControlIVA>();

            List <char> lstTipoConceptoPermitidos = new List <char>();

            lstTipoConceptoPermitidos.Add('B'); //Billetes
            lstTipoConceptoPermitidos.Add('R'); //Reembolsos

            ControlIVA oControlIVA = null;

            //List<BO_Ticket> lstTicketsCargados = new List<BO_Ticket>();

            List <BSP_Ticket> lstTickets = oSemana.TicketsBSP.Where(x => lstTipoConceptoPermitidos.Contains(x.Concepto.Tipo) && x.Rg == BSP_Rg.Doméstico).OrderBy(x => x.Compania.Codigo).ThenBy(x => x.Billete).ToList();

            foreach (BSP_Ticket oBSP_Ticket in lstTickets)
            {
                BO_Ticket bo_ticket = oSemana.TicketsBO.Find(x => x.Billete == oBSP_Ticket.Billete && x.Compania.Codigo == oBSP_Ticket.Compania.Codigo);

                oControlIVA = new ControlIVA();

                oControlIVA.TarifaBSP      = Math.Abs(oBSP_Ticket.TarContado + oBSP_Ticket.TarCredito);
                oControlIVA.IVATarifaBSP   = Math.Abs(oBSP_Ticket.IVA105);
                oControlIVA.ComisionBSP    = Math.Abs(oBSP_Ticket.ComValor + oBSP_Ticket.ComOver);
                oControlIVA.IVAComisionBSP = Math.Abs(oBSP_Ticket.ComIVA);

                if (bo_ticket != null)
                {
                    oControlIVA.TarifaBO      = Math.Abs(bo_ticket.Tarifa);
                    oControlIVA.IVATarifaBO   = Math.Abs(bo_ticket.IVA105);
                    oControlIVA.ComisionBO    = Math.Abs(bo_ticket.ComValor + bo_ticket.ComOver);
                    oControlIVA.IVAComisionBO = Math.Abs(bo_ticket.IVAComision);
                }

                oControlIVA.TarifaDif      = oControlIVA.TarifaBSP - oControlIVA.TarifaBO;
                oControlIVA.IVATarifaDif   = oControlIVA.IVATarifaBSP - oControlIVA.IVATarifaBO;
                oControlIVA.ComisionDif    = oControlIVA.ComisionBSP - oControlIVA.ComisionBO;
                oControlIVA.IVAComisionDif = oControlIVA.IVAComisionBSP - oControlIVA.IVAComisionBO;

                if (Math.Abs(oControlIVA.TarifaDif) > DiferenciaMinima || Math.Abs(oControlIVA.IVATarifaDif) > DiferenciaMinima || Math.Abs(oControlIVA.ComisionDif) > DiferenciaMinima || Math.Abs(oControlIVA.IVAComisionDif) > DiferenciaMinima)
                {
                    oControlIVA.BoletoNroBSP = oBSP_Ticket.Billete.ToString();
                    oControlIVA.RgBSP        = "C";
                    oControlIVA.TrBSP        = oBSP_Ticket.Compania.Codigo;
                    oControlIVA.Tr2BSP       = (oBSP_Ticket.Concepto.Tipo.Equals('R') ? "R" : (oBSP_Ticket.Tipo.Contains('F') && !oBSP_Ticket.Detalle.Any(x => x.Observaciones.Trim() == "CNJ") ? "B" : "V"));
                    oControlIVA.MonedaBSP    = oBSP_Ticket.Moneda == Moneda.Peso ? "$" : "D";
                    oControlIVA.FechaBSP     = AuditurHelpers.GetDateTimeString(oBSP_Ticket.FechaVenta);

                    if (bo_ticket != null)
                    {
                        oControlIVA.TrBO        = bo_ticket.Compania != null ? bo_ticket.Compania.Codigo : "";
                        oControlIVA.NroTicketBO = bo_ticket.Billete.ToString();
                        oControlIVA.Referencia  = bo_ticket.Expediente;
                        oControlIVA.Factura     = bo_ticket.Factura;
                        oControlIVA.Pasajero    = bo_ticket.Pasajero.ToString();
                    }

                    lstControlIVA.Add(oControlIVA);
                }
            }

            return(lstControlIVA);
        }