Ejemplo n.º 1
0
        public void AgregarVisualizacion(VisualizacionComprobanteDto dto)
        {
            using (var ctx = new FacturaElectronicaEntities())
            {
                ArchivoAsociado aa = ctx.ArchivoAsociadoes.Where(c => c.Id == dto.ArchivoAsociadoId).FirstOrDefault();
                if (aa != null)
                {
                    VisualizacionComprobante vc = new VisualizacionComprobante()
                    {
                        ArchivoAsociadoId = aa.Id,
                        Fecha             = DateTime.Now,
                        DireccionIP       = dto.Ip
                    };
                    if (aa.EstadoArchivoAsociado.Codigo == CodigosEstadoArchivoAsociado.NoVisualizado)
                    {
                        aa.EstadoArchivoAsociado = ctx.EstadoArchivoAsociadoes.Where(e => e.Codigo == CodigosEstadoArchivoAsociado.Visualizado).First();

                        if (aa.Comprobante.Cliente.CalculaVencimientoConVisualizacionDoc && !aa.FechaDeRecepcion.HasValue)
                        {
                            DateTime fechaDeRecepcion = DateTime.Now;
                            AsociarFechaDeRecepcion(ctx, dto.ArchivoAsociadoId, fechaDeRecepcion, dto.UsuarioIdAuditoria);
                        }
                    }

                    aa.VisualizacionComprobantes.Add(vc);

                    //if (!aa.FechaVencimiento.HasValue && aa.DiasVencimiento.HasValue)
                    //{
                    //    aa.FechaVencimiento = DateTime.Now.AddDays(aa.DiasVencimiento.Value);
                    //}

                    ctx.SaveChanges();
                }
            }
        }
Ejemplo n.º 2
0
        private static ComprobanteDto ToComprobanteDto(Comprobante comprobante)
        {
            if (comprobante == null)
            {
                return(null);
            }

            ComprobanteDto dto = new ComprobanteDto();

            dto.Id                         = comprobante.Id;
            dto.CAE                        = comprobante.CAE;
            dto.ClienteId                  = comprobante.ClienteId;
            dto.ClienteNombre              = comprobante.Cliente != null ? comprobante.Cliente.RazonSocial : string.Empty;
            dto.CAEFechaVencimiento        = comprobante.CAEFechaVencimiento;
            dto.FechaDeCarga               = comprobante.FechaDeCarga;
            dto.TipoComprobanteId          = comprobante.TipoComprobanteId;
            dto.TipoComprobanteDescripcion = comprobante.TipoComprobante.Descripcion;
            dto.CbteDesde                  = comprobante.CbteDesde;
            dto.CbteHasta                  = comprobante.CbteHasta;
            dto.CbteFecha                  = comprobante.CbteFecha;
            dto.PtoVta                     = comprobante.PtoVta;
            //#TODO: logica para obtener comprobante de acuerdo al nro.
            // Recordar lo de Factura B que se puede poner un rango.
            ArchivoAsociado archivoAsociado = comprobante.ArchivoAsociadoes.FirstOrDefault();

            if (archivoAsociado != null)
            {
                dto.PathFile = comprobante.ArchivoAsociadoes.First().PathArchivo;
                VisualizacionComprobante visualizacionCbte = archivoAsociado.VisualizacionComprobantes.FirstOrDefault();
                if (visualizacionCbte != null)
                {
                    dto.DireccionIp        = visualizacionCbte.DireccionIP;
                    dto.FechaVisualizacion = visualizacionCbte.Fecha;
                }
            }

            return(dto);
        }
Ejemplo n.º 3
0
        public List <ComprobanteArchivoAsociadoDto> ObtenerComprobantes(ComprobanteCriteria criteria)
        {
            using (var ctx = new FacturaElectronicaEntities())
            {
                if (criteria.FechaDeRecepcionHasta.HasValue)
                {
                    criteria.FechaDeRecepcionHasta = criteria.FechaDeRecepcionHasta.Value.Date.AddDays(1).AddSeconds(-1);
                }

                DateTime hoy = DateTime.Now.Date;
                List <ComprobanteArchivoAsociadoDto> list = (from aa in ctx.ArchivoAsociadoes
                                                             join c in ctx.Comprobantes on aa.ComprobanteId equals c.Id
                                                             where

                                                             1 == 1 &&
                                                             (!criteria.SoloDocumentosConNDias || aa.DiasVencimiento.HasValue)
                                                             // Fecha Vencimiento
                                                             && (!criteria.FechaVencDesde.HasValue || !aa.FechaVencimiento.HasValue || criteria.FechaVencDesde.Value <= aa.FechaVencimiento) &&
                                                             (!criteria.FechaVencHasta.HasValue || aa.FechaVencimiento <= criteria.FechaVencHasta.Value)
                                                             // Fecha De Carga
                                                             && (!criteria.FechaDeCargaDesde.HasValue || criteria.FechaDeCargaDesde.Value <= aa.FechaDeCarga) &&
                                                             (!criteria.FechaDeCargaHasta.HasValue || aa.FechaDeCarga <= criteria.FechaDeCargaHasta.Value)
                                                             // Fecha de Recepcion
                                                             && (!criteria.FechaDeRecepcionDesde.HasValue || criteria.FechaDeRecepcionDesde.Value <= aa.FechaDeRecepcion) &&
                                                             (!criteria.FechaDeRecepcionHasta.HasValue || aa.FechaDeRecepcion <= criteria.FechaDeRecepcionHasta.Value)
                                                             // Razon Social
                                                             && (string.IsNullOrEmpty(criteria.RazonSocial) || c.Cliente.RazonSocial.Contains(criteria.RazonSocial))
                                                             // Tipo Comprobante
                                                             && (!criteria.TipoComprobanteId.HasValue || c.TipoComprobanteId == criteria.TipoComprobanteId.Value)
                                                             // rango de vencimiento
                                                             && (!criteria.DiasDeVencimientoDesde.HasValue || criteria.DiasDeVencimientoDesde.Value <= aa.DiasVencimiento) &&
                                                             (!criteria.DiasDeVencimientoHasta.HasValue || criteria.DiasDeVencimientoHasta.Value >= aa.DiasVencimiento)
                                                             // Nro Comprobante
                                                             && (!criteria.NroComprobante.HasValue || aa.NroComprobante == criteria.NroComprobante.Value)
                                                             // Cliente Id
                                                             && (!criteria.ClienteId.HasValue || c.ClienteId == criteria.ClienteId.Value)
                                                             // Tipo Contrato
                                                             && (!criteria.TipoContratoId.HasValue || aa.TipoContratoId == criteria.TipoContratoId.Value)
                                                             // Periodo Facturacion
                                                             && (!criteria.MesFacturacion.HasValue || aa.MesFacturacion == criteria.MesFacturacion.Value) &&
                                                             (!criteria.AnioFacturacion.HasValue || aa.AnioFacturacion == criteria.AnioFacturacion.Value)
                                                             // Documentos Vencidos
                                                             && (!criteria.DocumentosVencidos || aa.FechaVencimiento < hoy)
                                                             // Documentos No Vencidos
                                                             && (!criteria.DocumentosNoVencidos || !aa.FechaVencimiento.HasValue || hoy <= aa.FechaVencimiento.Value)
                                                             // Monto Desde
                                                             && (!criteria.MontoTotalDesde.HasValue || criteria.MontoTotalDesde.Value <= aa.MontoTotal)
                                                             // Monto Hasta
                                                             && (!criteria.MontoTotalHasta.HasValue || aa.MontoTotal <= criteria.MontoTotalHasta.Value)
                                                             //Estado por Codigo
                                                             && (string.IsNullOrEmpty(criteria.Estado) || aa.EstadoArchivoAsociado.Codigo == criteria.Estado)
                                                             // Estados por Id
                                                             && (!criteria.EstadoId.HasValue || aa.EstadoArchivoAsociado.Id == criteria.EstadoId)
                                                             select new ComprobanteArchivoAsociadoDto()
                {
                    ArchivoAsociadoId = aa.Id,
                    CAE = c.CAE,
                    CAEFechaVencimiento = c.CAEFechaVencimiento,
                    ClienteId = c.ClienteId,
                    ClienteRazonSocial = c.Cliente.RazonSocial,
                    ComprobanteId = c.Id,
                    EstadoCodigo = aa.EstadoArchivoAsociado.Codigo,
                    EstadoDescripcion = aa.EstadoArchivoAsociado.Descripcion,
                    FechaDeCarga = aa.FechaDeCarga,
                    FechaVencimiento = aa.FechaVencimiento,
                    DiasVencimiento = aa.DiasVencimiento,
                    NroComprobante = aa.NroComprobante,
                    PathArchivo = aa.PathArchivo,
                    TipoComprobanteId = c.TipoComprobanteId,
                    TipoComprobanteDescripcion = c.TipoComprobante.Descripcion,
                    TipoContratoId = aa.TipoContratoId,
                    TipoContratoDescripcion = aa.TipoContratoId.HasValue ? aa.TipoContrato.Descripcion : string.Empty,
                    MontoTotal = aa.MontoTotal.HasValue ? aa.MontoTotal.Value : default(decimal?),
                    FechaDeRecepcion = aa.FechaDeRecepcion,
                    ClienteCalculaVencimientoConVisualizacion = aa.Comprobante.Cliente.CalculaVencimientoConVisualizacionDoc
                }).ToList();

                foreach (var item in list)
                {
                    VisualizacionComprobante visualizacion = ctx.VisualizacionComprobantes.Where(vc => vc.ArchivoAsociadoId == item.ArchivoAsociadoId).ToList().LastOrDefault();
                    if (visualizacion != null)
                    {
                        item.DireccionIp        = visualizacion.DireccionIP;
                        item.FechaVisualizacion = visualizacion.Fecha;
                    }
                }
                return(list);
            }
        }