コード例 #1
0
ファイル: BlocoEventoBase.cs プロジェクト: leandrovip/Vip.DFe
        protected BlocoEventoBase(DanfeEventoViewModel viewModel, Estilo estilo) : base(estilo)
        {
            MainVerticalStack = new VerticalStack();
            ViewModel         = viewModel ?? throw new ArgumentNullException(nameof(viewModel));

            if (!string.IsNullOrWhiteSpace(Cabecalho))
            {
                MainVerticalStack.Add(new CabecalhoBloco(estilo, Cabecalho));
            }
        }
コード例 #2
0
        public BlocoEventoCabecalho(DanfeEventoViewModel viewModel, Estilo estilo) : base(viewModel, estilo)
        {
            var ts = new TextStack(BoundingBox)
            {
                Height = 30, AlinhamentoVertical = AlinhamentoVertical.Centro, AlinhamentoHorizontal = AlinhamentoHorizontal.Centro, LineHeightScale = 2F
            }
            .AddLine(viewModel.TituloEvento, Estilo.CriarFonteNegrito(15))
            .AddLine("Não possui valor fiscal. Simples representação do evento indicado abaixo.", Estilo.FonteCampoConteudo)
            .AddLine("CONSULTE A AUTENTICIDADE NO SITE DA SEFAZ AUTORIZADORA.", Estilo.FonteCampoConteudo);

            MainVerticalStack.Add(ts);
        }
コード例 #3
0
        public BlocoEventoCartaCorrecaoCondicao(DanfeEventoViewModel viewModel, Estilo estilo) : base(viewModel, estilo)
        {
            var condicao = new CampoMultilinha("", viewModel.CondicaoUso, estilo)
            {
                Height = AlturaCondicao
            };
            var linha = new FlexibleLine {
                Height = AlturaCondicao
            };

            linha.ComElemento(condicao).ComLargurasIguais();

            MainVerticalStack.Add(linha);
        }
コード例 #4
0
        public BlocoEventoCancelamento(DanfeEventoViewModel viewModel, Estilo estilo) : base(viewModel, estilo)
        {
            var campoJustificativa = new CampoMultilinha("", viewModel.Justificativa, estilo, AlinhamentoHorizontal.Esquerda, true)
            {
                Height = AlturaCampo
            };
            var linha = new FlexibleLine {
                Height = AlturaCampo
            }
            .ComElemento(campoJustificativa)
            .ComLargurasIguais();

            MainVerticalStack.Add(linha);
        }
コード例 #5
0
ファイル: frmPrincipal.cs プロジェクト: leandrovip/Vip.DFe
        private void btnGerarDanfeEvento_Click(object sender, EventArgs e)
        {
            const string arquivo = @"D:\35210438707682000140550010000010661360746950_110110_02-procEventoNFe.xml";

            var modelo = DanfeEventoViewModel.CriarDeArquivoXml(arquivo);

            modelo.DefinirTextoCreditos("Emitido pelo software VipERP - www.vipsolucoes.com");

            using (var danfe = new DanfeEventoService(modelo))
            {
                danfe.Gerar();
                danfe.Salvar(@"D:\danfeEventoOk.pdf");
            }

            MessageBox.Show("Danfe Gerada");
        }
コード例 #6
0
        public BlocoEventoIdentificacao(DanfeEventoViewModel viewModel, Estilo estilo) : base(viewModel, estilo)
        {
            #region Propriedades

            var chaveAcesso = DanfeHelper.FormatarChaveAcesso(viewModel.ChaveAcesso);
            var modelo      = viewModel.ChaveAcesso.Substring(20, 2);
            var serie       = viewModel.ChaveAcesso.Substring(22, 3);
            var numero      = DanfeHelper.FormatarNumeroNF(viewModel.ChaveAcesso.Substring(25, 9));
            var ano         = viewModel.ChaveAcesso.Substring(2, 2);
            var mes         = viewModel.ChaveAcesso.Substring(4, 2);

            #endregion

            var codigoBarras = new Barcode128C(viewModel.ChaveAcesso, Estilo)
            {
                Height = AlturaCodigo
            };

            var coluna = new VerticalStack();
            var linha1 = new LinhaCampos(estilo)
            {
                Height = AlturaLinhaCampo
            }
            .ComCampo("MODELO", modelo)
            .ComCampo("SÉRIE", serie)
            .ComCampo("NÚMERO", numero)
            .ComCampo("MÊS / ANO DA EMISSÃO", $"{mes} / {ano}")
            .ComLargurasIguais();

            var linha2 = new Campo("CHAVE DE ACESSO", chaveAcesso, estilo)
            {
                Height = AlturaLinhaCampo
            };

            coluna.Add(linha1, linha2);

            var fl = new FlexibleLine {
                Height = codigoBarras.Height
            }
            .ComElemento(coluna)
            .ComElemento(codigoBarras)
            .ComLargurasIguais();

            MainVerticalStack.Add(fl);
        }
コード例 #7
0
        public DanfeEventoService(DanfeEventoViewModel viewModel)
        {
            ViewModel = viewModel ?? throw new ArgumentNullException(nameof(viewModel));

            _file       = new File();
            Blocos      = new List <BlocoEventoBase>();
            PdfDocument = _file.Document;

            // De acordo com o item 7.7, a fonte deve ser Times New Roman ou Courier New.
            var fonteFamilia = StandardType1Font.FamilyEnum.Times;

            _fonteRegular = new StandardType1Font(PdfDocument, fonteFamilia, false, false);
            _fonteNegrito = new StandardType1Font(PdfDocument, fonteFamilia, true, false);
            _fonteItalico = new StandardType1Font(PdfDocument, fonteFamilia, false, true);

            EstiloPadrao = CriarEstilo();
            EstiloPadrao.FonteBlocoCabecalho.Tamanho = 10;

            var estiloInformacao = CriarEstilo(tFonteCampoConteudo: 12f);

            estiloInformacao.FonteBlocoCabecalho.Tamanho = 10;

            Paginas = new List <DanfeEventoPagina>();

            AdicionarBloco <BlocoEventoCabecalho>();
            AdicionarBloco <BlocoEventoIdentificacao>();
            AdicionarBloco <BlocoEventoDados>();

            switch (viewModel.TipoEvento)
            {
            case NFeTipoEvento.CartaCorrecao:
                AdicionarBloco <BlocoEventoCartaCorrecaoCondicao>();
                AdicionarBloco <BlocoEventoCartaCorrecao>(estiloInformacao);
                break;

            case NFeTipoEvento.Cancelamento:
            case NFeTipoEvento.CancelamentoST:
                AdicionarBloco <BlocoEventoCancelamento>(estiloInformacao);
                break;
            }

            AdicionarMetadata();
            _FoiGerado = false;
        }
コード例 #8
0
        public BlocoEventoDados(DanfeEventoViewModel viewModel, Estilo estilo) : base(viewModel, estilo)
        {
            var ambiente = viewModel.TipoAmbiente == 1 ? "PRODUÇÃO" : "HOMOLOGAÇÃO - SEM VALOR FISCAL";

            AdicionarLinhaCampos()
                .ComCampo("ORGÃO", viewModel.Orgao.ToString())
                .ComCampo("AMBIENTE", ambiente, AlinhamentoHorizontal.Centro)
                .ComCampo("DATA / HORA DO EVENTO", ViewModel.DataHoraEvento.FormatarDataHora(), AlinhamentoHorizontal.Centro)
                .ComLarguras(30F * Proporcao, 0, 45F * Proporcao);

            AdicionarLinhaCampos()
                .ComCampo("EVENTO", viewModel.TipoEvento.GetDFeValue())
                .ComCampo("DESCRIÇÃO DO EVENTO", viewModel.DescricaoEvento)
                .ComCampo("SEQUÊNCIA DO EVENTO", viewModel.SequenciaEvento.ToString(), AlinhamentoHorizontal.Centro)
                .ComLarguras(30F * Proporcao, 0, 45F * Proporcao);

            AdicionarLinhaCampos()
                .ComCampo("STATUS", $"{viewModel.CodigoStatus} - {viewModel.Motivo}")
                .ComCampo("PROTOCOLO", viewModel.Protocolo)
                .ComLarguras(0, 45F * Proporcao);
        }