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(); } } }
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); }
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); } }