Пример #1
0
        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);
        }
Пример #3
0
        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);
        }
Пример #5
0
        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);
        }
Пример #6
0
        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;
            }
        }
Пример #7
0
        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());
        }