public async Task GeneraRecibo(long documento, string usuario) { CobGeneralCobranza generalCobranzas = await GetGeneralCobranzaPorDocumento(documento); // CobGeneralCobranzaDto generalCobranzasDtos = new CobGeneralCobranzaDto(); CobAdjuntosCobranza Adjunto = new CobAdjuntosCobranza(); // CobAdjuntosCobranza AdjuntoJpg = new CobAdjuntosCobranza(); if (generalCobranzas != null) { ReciboDto recibo = await GeneraReciboDto(documento); Metadata geberaPdf = GeneraPdfRecibo(recibo, "_Consultado"); if (geberaPdf.IsValid) { var nombreArchivo = "RC_" + documento.ToString() + "_Consultado" + ".pdf"; await _cobAdjuntosCobranzaService.DeleteByNameFile(recibo.CobGeneralCobranzaDto.Documento, nombreArchivo); //ADJUNTAMOS EL RC/////////////////////////////// Adjunto.Documento = documento; Adjunto.IdTipoDocumento = 20; Adjunto.NombreArchivo = nombreArchivo; Adjunto.Archivo = null; Adjunto.IdUsuarioCreacion = usuario; Adjunto.FechaCreacion = DateTime.Now; Adjunto.Ruta = _paginationOptions.FolderDocumentation + "\\"; //CobAdjuntosCobranza cobranzaAdjunto = await _cobAdjuntosCobranzaService.Insert(Adjunto); await _cobAdjuntosCobranzaService.Insert(Adjunto); } } }
public async Task <ReciboDto> GetInfoRecibo(ParametersReciboDto parameters) { ReciboDto recibo = new ReciboDto(); try { GenerateResponse response = new GenerateResponse(); response = await _cuponeraRepository.ValidateRecibo(_mapper.Map <ParametersRecibo>(parameters)); if (response.P_NCODE == 0) { var ReciboResult = await _cuponeraRepository.GetInfoRecibo(_mapper.Map <ParametersRecibo>(parameters)); if (ReciboResult == null) { return(null); } recibo = _mapper.Map <ReciboDto>(ReciboResult); } else { recibo.P_NCODE = response.P_NCODE; recibo.P_SMESSAGE = response.P_SMESSAGE; } } catch (Exception ex) { _logger.LogError(ex.InnerException.ToString()); } return(recibo); }
public Metadata GeneraPdfRecibo(ReciboDto reciboDto, string sufijoFileName) { Metadata metadata = new Metadata { Message = "", IsValid = false }; try { string html = TemplateGenerator.GetHTMLStringRecibo(reciboDto); HtmlToPdf oHtmlToPdf = new HtmlToPdf(); oHtmlToPdf.Options.PdfPageOrientation = PdfPageOrientation.Landscape; oHtmlToPdf.Options.MarginLeft = 10; oHtmlToPdf.Options.MarginRight = 10; oHtmlToPdf.Options.MarginTop = 20; oHtmlToPdf.Options.MarginBottom = 20; PdfDocument oPdfDocument = oHtmlToPdf.ConvertHtmlString(html); byte[] pdf = oPdfDocument.Save(); oPdfDocument.Close(); string ruta = _paginationOptions.FolderDocumentation + "\\"; string fileName = "RC_" + reciboDto.CobGeneralCobranzaDto.Documento.ToString() + sufijoFileName + ".pdf"; //string imageFullName = @"D:\Moore\Adjuntos\ListRecibos_Report.pdf"; string imageFullName = ruta + fileName; //creo el fichero System.IO.File.WriteAllBytes(imageFullName, pdf); //CREA EL RECIBO EN FORMATO JPG //string rutaImage = _paginationOptions.FolderDocumentation + "\\"; //fileName = "RC_" + reciboDto.CobGeneralCobranzaDto.Documento.ToString() + sufijoFileName + ".jpg"; //imageFullName = rutaImage + fileName; //var converter = new HtmlConverter(); //var bytes = converter.FromHtmlString(html, 1024, ImageFormat.Jpg, 100); //System.IO.File.WriteAllBytes(imageFullName, bytes); metadata.Message = ""; metadata.IsValid = true; return(metadata); } catch (Exception e) { string message = e.InnerException.Message; metadata.Message = message; metadata.IsValid = false; return(metadata); } }
public async Task <ReciboDto> GetInfoCuponera(ParametersReciboDto parametersRecibo) { ReciboDto Cupon = null; try { var ReciboResult = await _cuponeraRepository.GetInfoCuponera(_mapper.Map <ParametersRecibo>(parametersRecibo)); if (ReciboResult == null) { return(null); } Cupon = _mapper.Map <ReciboDto>(ReciboResult); } catch (Exception ex) { _logger.LogError(ex.InnerException.ToString()); } return(Cupon); }
public List <AppService.Core.DTOs.SapEnviarSoloRetencion.Application> GeneraListSapEnviarSoloRetencion(ReciboDto reciboDto) { List <AppService.Core.DTOs.SapEnviarSoloRetencion.Application> result = new List <AppService.Core.DTOs.SapEnviarSoloRetencion.Application>(); try { foreach (CobGrabacionCobranzaDto item in reciboDto.CobGrabacionCobranzaDto) { ReciboEnviarSapDto itemContenedorresult = new ReciboEnviarSapDto(); d itemResult = new d { Id = item.Id, Transaccion = item.Transaccion, NroRecibo = (long)item.Documento, Sociedad = "1000", Cliente = reciboDto.CobGeneralCobranzaDto.IdCliente }; if (item.DocAfectaSap != null) { itemResult.DocCobroSAP = item.DocAfectaSap; } else { itemResult.DocCobroSAP = ""; } string año = reciboDto.CobGeneralCobranzaDto.FechaTransaccion.Year.ToString(); string mes = "00" + reciboDto.CobGeneralCobranzaDto.FechaTransaccion.Month.ToString(); mes = mes.Substring(mes.Length - 2, 2); string dia = reciboDto.CobGeneralCobranzaDto.FechaTransaccion.Day.ToString(); itemResult.FechaCobroReal = $"{año}-{mes}-{dia}T00:00"; año = reciboDto.CobGeneralCobranzaDto.FechaLmcxC.Year.ToString(); mes = "00" + reciboDto.CobGeneralCobranzaDto.FechaLmcxC.Month.ToString(); mes = mes.Substring(mes.Length - 2, 2); dia = reciboDto.CobGeneralCobranzaDto.FechaLmcxC.Day.ToString(); itemResult.FechaContabilizacion = $"{año}-{mes}-{dia}T00:00"; var refConvert = reciboDto.CobGeneralCobranzaDto.NumReferencia.ToString(); if (refConvert.Length >= 8) { itemResult.Referencia = refConvert.Substring(refConvert.Length - 8); } else { itemResult.Referencia = reciboDto.CobGeneralCobranzaDto.NumReferencia.ToString();; } itemResult.TextoCab = item.CuentaBancaria; itemResult.CuentaBancaria = item.CuentaBancaria; if (item.Cotizacion.Length > 0) { itemResult.TextoPos = "Doc: " + item.Documento.ToString() + " Canc: " + item.DocAfectaSap + "Cot: " + item.Cotizacion; } else { itemResult.TextoPos = "Doc: " + item.Documento.ToString() + " Canc: " + item.DocAfectaSap; } itemResult.Monto = item.Monto.ToString(); itemResult.Moneda = item.Moneda; List <RetencionesCobranza> retencionesCobranzas = new List <RetencionesCobranza>(); if (item.CobPagosRetencionesDto != null) { foreach (CobPagosRetencionesDto itemretenciones in item.CobPagosRetencionesDto) { RetencionesCobranza itemRetencionesCobranzas = new RetencionesCobranza(); AppService.Core.DTOs.SapEnviarSoloRetencion.Application itemAplication = new AppService.Core.DTOs.SapEnviarSoloRetencion.Application(); AppService.Core.DTOs.SapEnviarSoloRetencion.D itemD = new AppService.Core.DTOs.SapEnviarSoloRetencion.D(); itemRetencionesCobranzas.Id = itemretenciones.Id; itemRetencionesCobranzas.TxOrigen = itemretenciones.TxOrigen; if (itemretenciones.NroComprobante.Length >= 8) { itemRetencionesCobranzas.Referencia = itemretenciones.NroComprobante.Substring(itemretenciones.NroComprobante.Length - 8); } else { itemRetencionesCobranzas.Referencia = itemretenciones.NroComprobante; } itemRetencionesCobranzas.TextoCab = item.CuentaBancaria; if (item.Cotizacion.Length > 0) { itemRetencionesCobranzas.TextoPos = "Doc: " + item.Documento.ToString() + " Canc: " + item.DocAfectaSap + "Cot: " + item.Cotizacion; } else { itemRetencionesCobranzas.TextoPos = "Doc: " + item.Documento.ToString() + " Canc: " + item.DocAfectaSap; } itemRetencionesCobranzas.Monto = itemretenciones.Monto.ToString(); itemRetencionesCobranzas.Moneda = "VES"; SapRetenciones sapRetenciones = _sapRetencionesService.GetByTranzaccionPorcentaje(itemretenciones.IdTransaccion, (double)itemretenciones.Porcentaje); itemRetencionesCobranzas.IndRetencion = sapRetenciones.IndicadordeRetencion; if (itemretenciones.TxOrigen == "06") { itemRetencionesCobranzas.BaseRetencion = item.Iva.ToString(); } else { itemRetencionesCobranzas.BaseRetencion = item.BaseImponible.ToString(); } itemD.Id = itemRetencionesCobranzas.Id; itemD.NroRecibo = (int)itemResult.NroRecibo; itemD.Sociedad = itemResult.Sociedad; itemD.Cliente = itemResult.Cliente; itemD.TxOrigen = itemRetencionesCobranzas.TxOrigen; itemD.DocCobroSAP = itemResult.DocCobroSAP; itemD.FechaCobroReal = itemResult.FechaCobroReal; itemD.FechaContabilizacion = itemResult.FechaContabilizacion; itemD.Referencia = itemRetencionesCobranzas.Referencia; itemD.TextoCab = itemRetencionesCobranzas.TextoCab; itemD.TextoPos = itemRetencionesCobranzas.TextoPos; itemD.Monto = itemRetencionesCobranzas.Monto; itemD.Moneda = itemRetencionesCobranzas.Moneda; itemD.IndRetencion = itemRetencionesCobranzas.IndRetencion; itemD.BaseRetencion = itemRetencionesCobranzas.BaseRetencion; itemAplication.d = itemD; result.Add(itemAplication); } } //itemResult.RetencionesCobranza.Add(retencionesCobranzas); } } catch (Exception ex) { string a = ex.Message; throw; } return(result); }
public async Task <ReciboDto> GeneraReciboDto(long recibo) { ReciboDto result = new ReciboDto(); CobGeneralCobranza cobGeneralCobranza = new CobGeneralCobranza(); List <CobGrabacionCobranzas> listaCobGrabacionCobranzas = new List <CobGrabacionCobranzas>(); try { //Crea Objeto General cobranzas cobGeneralCobranza = await GetGeneralCobranzaPorDocumento(recibo); CobGeneralCobranzaDto generalCobranzasDtos = _mapper.Map <CobGeneralCobranzaDto>(cobGeneralCobranza); MtrCliente cliente = await _mtrClienteService.GetByIdAsync(generalCobranzasDtos.IdCliente); MtrVendedor vendedor = await _mtrVendedorService.GetByIdAsync(cliente.Vendedor1); generalCobranzasDtos.NombreCliente = cliente.NoRegTribut + " " + cliente.Nombre.Trim(); generalCobranzasDtos.IdCliente = generalCobranzasDtos.IdCliente.Trim(); generalCobranzasDtos.FechaTransaccionString = generalCobranzasDtos.FechaTransaccion.ToShortDateString(); generalCobranzasDtos.NombreVendedor = vendedor.Nombre; generalCobranzasDtos.vendedor = vendedor.Codigo; generalCobranzasDtos.CorreoVendedor = vendedor.EMail; generalCobranzasDtos.TelefonoVendedor = vendedor.TlfCelular; decimal decimalValue = generalCobranzasDtos.MontoTransaccion; generalCobranzasDtos.MontoTransaccionString = string.Format("{0:N}", decimalValue); // 1,234,567.00 //creamos el objeto Moneda oMoneda = new Moneda(); //primer parametro es la cantidad en string //segundo parametro es si queremos que sea mayuscula //tercer parametro la moneda MtrTipoMoneda tipoMoneda = await _mtrTipoMonedaService.GetById((long)cobGeneralCobranza.IdMtrTipoMoneda); string MonedaString = tipoMoneda.Descripcion; string resultado = oMoneda.Convertir(generalCobranzasDtos.MontoTransaccion.ToString(), true, MonedaString); generalCobranzasDtos.MontoLetras = resultado; decimal?detalleValue = generalCobranzasDtos.TotalDetalleCobrado; generalCobranzasDtos.TotalDetalleCobradoString = string.Format("{0:N}", detalleValue); generalCobranzasDtos.Status = EstatusRecibo(cobGeneralCobranza); MtrBancos banco = await _mtrBancosService.GetByCodigo(generalCobranzasDtos.IdBanco); generalCobranzasDtos.NombreBanco = banco.Nombre; CobTipoTransaccion tipoTransaccion = await _cobTipoTransaccionService.GetById(generalCobranzasDtos.IdTipoTransaccion); generalCobranzasDtos.NombreTipoTransaccion = tipoTransaccion.NombreTipoTransaccion; generalCobranzasDtos.FlagImpuesto = tipoTransaccion.FlagImpuesto; MtrTipoMoneda mtrTipoMoneda = await _mtrTipoMonedaService.GetById((long)generalCobranzasDtos.IdMtrTipoMoneda); generalCobranzasDtos.NombreTipoMoneda = mtrTipoMoneda.Descripcion; listaCobGrabacionCobranzas = _unitOfWork.CobGrabacionCobranzasRepository.GetByDocumento(recibo); listaCobGrabacionCobranzas = listaCobGrabacionCobranzas.Where(x => x.DocumentoSap == "").ToList(); List <CobGrabacionCobranzaDto> listaCobGrabacionCobranzasDto = _mapper.Map <List <CobGrabacionCobranzaDto> >(listaCobGrabacionCobranzas); foreach (CobGrabacionCobranzaDto item in listaCobGrabacionCobranzasDto) { item.CuentaBancaria = banco.CodContable; item.Moneda = mtrTipoMoneda.Descripcion; if (item.Transaccion == "RU") { item.DocAfectaMostrar = item.Cotizacion; } else { item.DocAfectaMostrar = item.DocAfectaSap; } decimalValue = (decimal)item.Monto; item.MontoMostrar = string.Format("{0:N}", decimalValue); // 1,234,567.00 CobEstadoDeCuenta cobEstadoDeCuenta = await _cobEstadoCuentaService.GetEstadoCuentaById(item.DocAfecta); if (cobEstadoDeCuenta != null) { decimalValue = (decimal)cobEstadoDeCuenta.BaseImponible; item.BaseImponible = (decimal)cobEstadoDeCuenta.BaseImponible; item.BaseImponibleMostrar = string.Format("{0:N}", decimalValue); // 1,234,567.00 decimalValue = (decimal)cobEstadoDeCuenta.Iva; item.Iva = (decimal)cobEstadoDeCuenta.Iva; item.IvaMostrar = string.Format("{0:N}", decimalValue); // 1,234,567.00 decimalValue = (decimal)cobEstadoDeCuenta.MontoOriginal; item.MontoOriginalMostrar = string.Format("{0:N}", decimalValue); // 1,234,567.00 item.FechaDocumento = cobEstadoDeCuenta.FechaDocumento; DateTime fechaDocumento = (DateTime)cobEstadoDeCuenta.FechaDocumento; item.FechaDocumentoString = fechaDocumento.ToShortDateString(); } //List<CobPagosRetencionesDto> listCobPagosRetencionesDto = new List<CobPagosRetencionesDto>(); List <CobPagosRetenciones> listCobPagosRetenciones = _unitOfWork.CobPagosRetencionesRepository.GetByIdCobranzas(item.Id); List <CobPagosRetencionesDto> listCobPagosRetencionesDto = _mapper.Map <List <CobPagosRetencionesDto> >(listCobPagosRetenciones); if (listCobPagosRetencionesDto != null && listCobPagosRetencionesDto.Count > 0) { foreach (CobPagosRetencionesDto itemRet in listCobPagosRetencionesDto) { decimalValue = itemRet.Monto; itemRet.MontoString = string.Format("{0:N}", decimalValue); // 1,234,567.00 CobTransacciones transaccion = await _cobTransaccionesService.GetById(itemRet.IdTransaccion); if (transaccion != null) { itemRet.NombreTransaccion = transaccion.NombreTransaccion; itemRet.TxOrigen = transaccion.TipoSap; } itemRet.FechaComprobanteString = itemRet.FechaComprobante.ToShortDateString(); } } item.CobPagosRetencionesDto = listCobPagosRetencionesDto; } result.CobGeneralCobranzaDto = generalCobranzasDtos; result.CobGrabacionCobranzaDto = listaCobGrabacionCobranzasDto; return(result); } catch (Exception e) { string message = e.Message; throw; } }
public static string GetHTMLStringRecibo(ReciboDto reciboDto) { var sb = new StringBuilder(); sb.Append(@" <html> <head> <style> .subheader { text-align: center; color: black; padding-bottom: 15px; } .header { text-align: center; color: black; padding-bottom: 35px; } table { width: 80%; border-collapse: collapse; } td, th { border: 1px solid gray; padding: 10px; font-size: 14px; text-align: center; } table th { background-color: gray; color: white; } </style> </head> <body>"); sb.AppendFormat(@" <div align='center'><h1>Moore de Venezuela, S.A. Rif: J-07506100-4 </h1></div> <div class='header'><h1>Recibo de Cobro: {0}</h1></div>", reciboDto.CobGeneralCobranzaDto.Documento.ToString()); sb.Append(@" <table align='center'> <tr> <th>Hemos Recibido de:</th> <th>Id Cliente</th> <th>Monto</th> <th>Fecha Recibido</th> <th>Tipo Pago</th> </tr>"); sb.AppendFormat(@"<tr> <td>{0}</td> <td>{1}</td> <td>{2}</td> <td>{3}</td> <td>{4}</td> </tr>", reciboDto.CobGeneralCobranzaDto.NombreCliente, reciboDto.CobGeneralCobranzaDto.IdCliente, reciboDto.CobGeneralCobranzaDto.NombreTipoMoneda + " " + reciboDto.CobGeneralCobranzaDto.MontoTransaccionString, reciboDto.CobGeneralCobranzaDto.FechaTransaccionString, reciboDto.CobGeneralCobranzaDto.NombreTipoTransaccion); sb.Append(@" <table align='center'> <tr> <th>La cantidad de:</th> </tr>"); sb.AppendFormat(@"<tr> <td>{0}</td> </tr>", reciboDto.CobGeneralCobranzaDto.MontoLetras); sb.Append(@" <table align='center'> <tr> <th>Cuenta Destino:</th> <th>Planilla</th> </tr>"); sb.AppendFormat(@"<tr> <td>{0}</td> <td>{1}</td> </tr>", reciboDto.CobGeneralCobranzaDto.NombreBanco, reciboDto.CobGeneralCobranzaDto.NumReferencia); sb.Append(@" <table align='center'> <tr> <th>Consultor:</th> <th>Email</th> <th>Telefono</th> </tr>"); sb.AppendFormat(@"<tr> <td>{0}</td> <td>{1}</td> <td>{2}</td> </tr>", reciboDto.CobGeneralCobranzaDto.NombreVendedor, reciboDto.CobGeneralCobranzaDto.CorreoVendedor, reciboDto.CobGeneralCobranzaDto.TelefonoVendedor); sb.Append(@" </table>"); sb.Append(@" <table align='center'> <tr> <th>Documento Afecta</th> <th>Fecha</th> <th>Base</th> <th>Iva</th> <th>Total Documento</th> <th>Monto Cobrado</th> <th>Paga</th> </tr>"); foreach (var item in reciboDto.CobGrabacionCobranzaDto) { sb.AppendFormat(@"<tr> <td>{0}</td> <td>{1}</td> <td>{2}</td> <td>{3}</td> <td>{4}</td> <td style=" + @"text-align:right;" + @">{5}</td> <td>{6}</td> </tr>", item.DocAfectaMostrar, item.FechaDocumentoString, item.BaseImponibleMostrar, item.IvaMostrar, item.MontoOriginalMostrar, item.MontoMostrar, item.PagoCorrespondeIvaString); if (item.CobPagosRetencionesDto.Count > 0) { sb.Append(@" <tr> <th>RETENCIONES</th> <th>Transacciom</th> <th>Porcentaje</th> <th>Monto</th> <th>Comprobante</th> <th>Fecha Comprobante</th> </tr>"); foreach (var itemRet in item.CobPagosRetencionesDto) { sb.AppendFormat(@"<tr> <td>{0}</td> <td>{1}</td> <td>{2}</td> <td>{3}</td> <td>{4}</td> <td>{5}</td> </tr>", "", itemRet.NombreTransaccion, itemRet.Porcentaje, itemRet.MontoString, itemRet.NroComprobante, itemRet.FechaComprobanteString); } } } sb.Append(@" </table> </body> </html>"); return(sb.ToString()); }