Example #1
0
 public LayoutServicoLiberacao(
     Cabecalho cabecalho,
     int servicoId,
     BaseCalculo baseCalculo,
     Margem margem,
     TipoCarga tipoCarga,
     ValorCarga valorCarga,
     int reembolso,
     Moeda moeda,
     string descricaoValor,
     int tipoDocumentoId,
     int grupoAtracacaoId,
     decimal adicionalIMO,
     decimal exercito)
 {
     Cabecalho        = cabecalho;
     ServicoId        = servicoId;
     BaseCalculo      = baseCalculo;
     Margem           = margem;
     TipoCarga        = tipoCarga;
     ValorCarga       = valorCarga;
     Reembolso        = reembolso;
     Moeda            = moeda;
     DescricaoValor   = descricaoValor;
     TipoDocumentoId  = tipoDocumentoId;
     GrupoAtracacaoId = grupoAtracacaoId;
     AdicionalIMO     = adicionalIMO;
     Exercito         = exercito;
 }
Example #2
0
        public static LayoutArmazenagemMinimo NovoLayoutArmazenagemMinimo(
            int modeloId,
            int linha,
            string descricao,
            decimal valor,
            decimal valor20,
            decimal valor40,
            TipoCarga tipoCarga,
            Margem margem,
            int servicoId,
            int linhaReferencia,
            string descricaoValor,
            int limiteBls,
            bool ocultar)
        {
            var cabecalho = new Cabecalho(modeloId, linha, descricao, TipoRegistro.ARMAZENAGEM_MINIMO, ocultar);

            var valorCarga = new ValorCargaMinimo(
                valor,
                valor20,
                valor40,
                tipoCarga);

            var layoutArmazenagemMinimo = new LayoutArmazenagemMinimo(
                cabecalho,
                servicoId,
                valorCarga,
                margem,
                linhaReferencia,
                limiteBls,
                descricaoValor);

            return(layoutArmazenagemMinimo);
        }
 private void ConfigurarCanvas(Canvas canvas, Rectangle pageSize, Margem margem, Paragraph paragraph, int i)
 {
     if (margem == Margem.Esquerda)
     {
         canvas.ShowTextAligned(
             paragraph,
             0, pageSize.GetHeight() / 2,
             i,
             TextAlignment.CENTER, VerticalAlignment.TOP,
             0.5f * (float)Math.PI
             );
     }
     else if (margem == Margem.Direita)
     {
         canvas.ShowTextAligned(
             paragraph,
             pageSize.GetWidth(),
             pageSize.GetHeight() / 2,
             i,
             TextAlignment.CENTER, VerticalAlignment.BOTTOM,
             0.5f * (float)Math.PI
             );
     }
     else
     {
         throw new Exception("Valor de margem desconhecido.");
     }
 }
Example #4
0
        public async Task <IActionResult> CarimboLateral(
            [FromForm] InputFileDto inputFileDto, [FromForm] string texto, [FromForm] Margem margem,
            [FromForm] string cor, [FromForm] int?paginaInicial = null, [FromForm] int?totalPaginas = null
            )
        {
            var inputFile = await Mapper.Map <Task <InputFile> >(inputFileDto);

            var documentoAssinado = await CarimboCore.CarimboLateral(inputFile, texto, 0.01f, margem, cor, paginaInicial, totalPaginas);

            return(File(documentoAssinado, "application/octet-stream"));;
        }
Example #5
0
        public static LayoutArmazenagemAllIn NovoLayoutArmazenagemAllIn(
            int modeloId,
            int linha,
            string descricao,
            decimal valorMinimo,
            decimal valor20,
            decimal valor40,
            decimal cifMinimo,
            decimal cifMaximo,
            string descricaoCif,
            int servicoId,
            BaseCalculo baseCalculo,
            int periodo,
            string descricaoPeriodo,
            Margem margem,
            Moeda moeda,
            string descricaoValor,
            int tipoDocumentoId,
            BaseCalculoExcesso baseExcesso,
            decimal valorExcesso,
            decimal adicionalPeso,
            decimal pesoLimite,
            bool proRata,
            bool ocultar)
        {
            var cabecalho = new Cabecalho(modeloId, linha, descricao, TipoRegistro.ARMAZENAMEM_ALL_IN, ocultar);

            var layoutArmazenagemAllIn = new LayoutArmazenagemAllIn(
                cabecalho,
                servicoId,
                baseCalculo,
                periodo,
                descricaoPeriodo,
                cifMinimo,
                cifMaximo,
                descricaoCif,
                margem,
                valor20,
                valor40,
                valorMinimo,
                moeda,
                descricaoValor,
                tipoDocumentoId,
                baseExcesso,
                valorExcesso,
                adicionalPeso,
                pesoLimite,
                proRata);

            return(layoutArmazenagemAllIn);
        }
Example #6
0
 public LayoutArmazenagem(
     Cabecalho cabecalho,
     int servicoId,
     BaseCalculo baseCalculo,
     int qtdeDias,
     ValorCarga valorCarga,
     decimal adicionalArmazenagem,
     decimal adicionalGRC,
     decimal minimoGRC,
     decimal adicionalIMO,
     decimal exercito,
     decimal adicionalIMOGRC,
     decimal valorANVISA,
     decimal anvisaGRC,
     int periodo,
     Moeda moeda,
     string descricaoValor,
     int tipoDocumentoId,
     BaseCalculoExcesso baseExcesso,
     Margem margem,
     decimal valorExcesso,
     decimal adicionalPeso,
     decimal pesoLimite,
     int grupoAtracacaoId,
     bool proRata)
 {
     Cabecalho            = cabecalho;
     ServicoId            = servicoId;
     BaseCalculo          = baseCalculo;
     QtdeDias             = qtdeDias;
     ValorCarga           = valorCarga;
     AdicionalArmazenagem = adicionalArmazenagem;
     AdicionalGRC         = adicionalGRC;
     MinimoGRC            = minimoGRC;
     AdicionalIMO         = adicionalIMO;
     Exercito             = exercito;
     AdicionalIMOGRC      = adicionalIMOGRC;
     ValorANVISA          = valorANVISA;
     AnvisaGRC            = anvisaGRC;
     Periodo          = periodo;
     Moeda            = moeda;
     DescricaoValor   = descricaoValor;
     TipoDocumentoId  = tipoDocumentoId;
     BaseExcesso      = baseExcesso;
     Margem           = margem;
     ValorExcesso     = valorExcesso;
     AdicionalPeso    = adicionalPeso;
     PesoLimite       = pesoLimite;
     GrupoAtracacaoId = grupoAtracacaoId;
     ProRata          = proRata;
 }
        private Paragraph CriarParagrafo(string texto, float tamanhoFonte, Margem margem, string cor, float alturaPagina, int?paginaInicial, int?totalPaginas)
        {
            PdfFont font = PdfFontFactory.CreateFont(StandardFonts.HELVETICA);

            float fontSize;
            float padding;

            DefinirParametrosParagrafo(alturaPagina, tamanhoFonte, out fontSize, out padding);

            DeviceRgb color = Hexa2Rgb(cor);

            var style = new Style();

            style.SetFont(font);
            style.SetFontSize(fontSize);
            style.SetFontColor(color);

            if (margem == Margem.Esquerda)
            {
                style.SetPaddingTop(padding);
            }
            else if (margem == Margem.Direita)
            {
                style.SetPaddingBottom(padding);
            }
            else
            {
                throw new Exception("Valor de margem desconhecido.");
            }

            if (texto.Contains("{PaginaInicial}"))
            {
                texto = texto.Replace("{PaginaInicial}", paginaInicial.ToString());
            }
            if (texto.Contains("{TotalPaginas}"))
            {
                texto = texto.Replace("{TotalPaginas}", totalPaginas.ToString());
            }

            Text text = new Text(texto);

            text.AddStyle(style);

            Paragraph paragraph = new Paragraph(text);

            paragraph.SetWidth(alturaPagina)
            .SetFixedLeading(fontSize + 1);

            return(paragraph);
        }
Example #8
0
 public FaixaCIF(
     int layoutId,
     decimal minimo,
     decimal maximo,
     Margem margem,
     decimal valor20,
     decimal valor40,
     string descricao)
 {
     LayoutId  = layoutId;
     Minimo    = minimo;
     Maximo    = maximo;
     Margem    = margem;
     Valor20   = valor20;
     Valor40   = valor40;
     Descricao = descricao;
 }
Example #9
0
        public static LayoutServicoLiberacao NovoLayoutServicoLiberacao(
            int modeloId,
            int linha,
            string descricao,
            decimal valor,
            decimal valor20,
            decimal valor40,
            TipoCarga tipoCarga,
            int servicoId,
            BaseCalculo baseCalculo,
            Margem margem,
            int reembolso,
            Moeda moeda,
            string descricaoValor,
            int tipoDocumentoId,
            int grupoAtracacaoId,
            decimal adicionalIMO,
            decimal exercito,
            bool ocultar)
        {
            var cabecalho = new Cabecalho(modeloId, linha, descricao, TipoRegistro.SERVICO_LIBERACAO, ocultar);

            var valorCarga = new ValorCarga(
                valor,
                valor20,
                valor40,
                tipoCarga);

            var layoutServicoLiberacao = new LayoutServicoLiberacao(
                cabecalho,
                servicoId,
                baseCalculo,
                margem,
                tipoCarga,
                valorCarga,
                reembolso,
                moeda,
                descricaoValor,
                tipoDocumentoId,
                grupoAtracacaoId,
                adicionalIMO,
                exercito);

            return(layoutServicoLiberacao);
        }
        public async Task <byte[]> CarimboLateral(InputFile inputFile, string texto, float tamanhoFonte,
                                                  Margem margem, string cor, int?paginaInicial, int?totalPaginas
                                                  )
        {
            inputFile.IsValid();

            byte[] response;
            if (!string.IsNullOrWhiteSpace(inputFile.FileUrl))
            {
                response = await CarimboLateral(inputFile.FileUrl, texto, tamanhoFonte, margem, cor, paginaInicial, totalPaginas);
            }
            else
            {
                response = CarimboLateral(inputFile.FileBytes, texto, tamanhoFonte, margem, cor, paginaInicial, totalPaginas);
            }

            return(response);
        }
Example #11
0
        public LayoutArmazenagemMinimo(
            Cabecalho cabecalho,
            int servicoId,
            ValorCargaMinimo valorCarga,
            Margem margem,
            int linhaReferencia,
            int limiteBls,
            string descricaoValor)
        {
            Cabecalho       = cabecalho;
            ServicoId       = servicoId;
            ValorCarga      = valorCarga;
            Margem          = margem;
            LinhaReferencia = linhaReferencia;
            LimiteBls       = limiteBls;
            DescricaoValor  = descricaoValor;

            FaixasBL = new List <FaixaBL>();
        }
Example #12
0
 public LayoutArmazenagemAllIn(
     Cabecalho cabecalho,
     int servicoId,
     BaseCalculo baseCalculo,
     int periodo,
     string descricaoPeriodo,
     decimal cifMinimo,
     decimal cifMaximo,
     string descricaoCif,
     Margem margem,
     decimal valor20,
     decimal valor40,
     decimal valorMinimo,
     Moeda moeda,
     string descricaoValor,
     int tipoDocumentoId,
     BaseCalculoExcesso baseExcesso,
     decimal valorExcesso,
     decimal adicionalPeso,
     decimal pesoLimite,
     bool proRata)
 {
     Cabecalho        = cabecalho;
     ServicoId        = servicoId;
     BaseCalculo      = baseCalculo;
     Periodo          = periodo;
     DescricaoPeriodo = descricaoPeriodo;
     CifMinimo        = cifMinimo;
     CifMaximo        = cifMaximo;
     DescricaoCif     = descricaoCif;
     Margem           = margem;
     Valor20          = valor20;
     Valor40          = valor40;
     ValorMinimo      = valorMinimo;
     Moeda            = moeda;
     DescricaoValor   = descricaoValor;
     TipoDocumentoId  = tipoDocumentoId;
     BaseExcesso      = baseExcesso;
     ValorExcesso     = valorExcesso;
     AdicionalPeso    = adicionalPeso;
     PesoLimite       = pesoLimite;
     ProRata          = proRata;
 }
Example #13
0
        public static LayoutArmazenagemCIF NovoLayoutArmazenagemCIF(
            int modeloId,
            int linha,
            string descricao,
            decimal valorCIF,
            decimal valor,
            decimal valor20,
            decimal valor40,
            TipoCarga tipoCarga,
            int servicoId,
            BaseCalculo baseCalculo,
            int qtdeDias,
            decimal adicionalArmazenagem,
            decimal adicionalGRC,
            decimal minimoGRC,
            decimal adicionalIMO,
            decimal adicionalIMOGRC,
            decimal valorANVISA,
            decimal anvisaGRC,
            int periodo,
            Moeda moeda,
            string descricaoValor,
            int tipoDocumentoId,
            BaseCalculoExcesso baseExcesso,
            Margem margem,
            decimal valorExcesso,
            decimal adicionalPeso,
            decimal pesoLimite,
            bool proRata,
            bool ocultar)
        {
            var cabecalho = new Cabecalho(modeloId, linha, descricao, TipoRegistro.ARMAZENAGEM_CIF, ocultar);

            var valorArmazenagem = new ValorCarga(
                valor,
                valor20,
                valor40,
                tipoCarga);

            var layoutArmazenagemCIF = new LayoutArmazenagemCIF(
                cabecalho,
                servicoId,
                baseCalculo,
                qtdeDias,
                valorArmazenagem,
                valorCIF,
                adicionalArmazenagem,
                adicionalGRC,
                minimoGRC,
                adicionalIMO,
                adicionalIMOGRC,
                valorANVISA,
                anvisaGRC,
                periodo,
                moeda,
                descricaoValor,
                tipoDocumentoId,
                baseExcesso,
                margem,
                valorExcesso,
                adicionalPeso,
                pesoLimite,
                proRata);

            return(layoutArmazenagemCIF);
        }
        private byte[] CarimboLateral(byte[] arquivo, string texto, float tamanhoFonte, Margem margem, string cor,
                                      int?paginaInicial, int?totalPaginas
                                      )
        {
            using MemoryStream readingStream = new MemoryStream(arquivo);
            using PdfReader pdfReader        = new PdfReader(readingStream);

            using MemoryStream writingStream = new MemoryStream();
            using PdfWriter pdfWriter        = new PdfWriter(writingStream);

            using PdfDocument pdfDocument = new PdfDocument(pdfReader, pdfWriter);

            if (paginaInicial == null)
            {
                paginaInicial = 1;
            }

            int numberOfPages = pdfDocument.GetNumberOfPages();

            if (totalPaginas == null)
            {
                totalPaginas = numberOfPages;
            }

            paginaInicial--;
            for (int i = 1; i <= numberOfPages; i++)
            {
                PdfPage page = pdfDocument.GetPage(i);
                page.SetIgnorePageRotationForContent(true);
                Rectangle pageSize  = pdfDocument.GetPage(i).GetPageSizeWithRotation();
                Rectangle rectangle = new Rectangle(0, 0, 10, pageSize.GetHeight());

                using (Canvas canvas = new Canvas(page, rectangle))
                {
                    Paragraph paragraph = CriarParagrafo(
                        texto, tamanhoFonte, margem, cor,
                        pageSize.GetHeight(), paginaInicial + i,
                        totalPaginas
                        );

                    ConfigurarCanvas(canvas, pageSize, margem, paragraph, i);

                    canvas.Close();
                }
            }

            pdfDocument.Close();

            return(writingStream.ToArray());
        }
        private async Task <byte[]> CarimboLateral(string url, string texto, float tamanhoFonte, Margem margem, string cor,
                                                   int?paginaInicial, int?totalPaginas
                                                   )
        {
            byte[] arquivo = await JsonData.GetAndReadByteArrayAsync(url);

            byte[] resposta = CarimboLateral(arquivo, texto, tamanhoFonte, margem, cor, paginaInicial, totalPaginas);
            return(resposta);
        }