public override void ImprimirExtratoCancelamento(CFe cfe, CFeCanc cFeCanc)
 {
     PreparaExtrato(ExtratoLayOut.Cancelamento, cfe);
     internalReport.RegisterData(new[] { cfe }, "CFe");
     internalReport.RegisterData(new[] { cFeCanc }, "CFeCanc");
     Print();
 }
示例#2
0
        /// <inheritdoc />
        public ConsultaSessaoResposta(string retorno, Encoding encoding) : base(retorno, encoding)
        {
            // ReSharper disable once SwitchStatementMissingSomeCases
            switch (CodigoDeRetorno)
            {
            case 6000:
                if (RetornoLst.Count < 6)
                {
                    return;
                }

                using (var stream = new MemoryStream(Convert.FromBase64String(RetornoLst[6])))
                    Venda = CFe.Load(stream, encoding);

                QRCode = $"{RetornoLst[8].OnlyNumbers()}|{RetornoLst[7]}|{RetornoLst[9]}|{RetornoLst[10]}|{RetornoLst[11]}";
                break;

            case 7000:
                if (RetornoLst.Count < 6)
                {
                    return;
                }

                using (var stream = new MemoryStream(Convert.FromBase64String(RetornoLst[6])))
                    Cancelamento = CFeCanc.Load(stream, encoding);

                QRCode = $"{RetornoLst[8].OnlyNumbers()}|{RetornoLst[7]}|{RetornoLst[9]}|{RetornoLst[10]}|{RetornoLst[11]}";
                break;
            }
        }
示例#3
0
        public dynamic Emitir()
        {
            if (DateTime.Now <= new DateTime(2018, 10, 31))
            {
                ThreadTask.IniciarThread(() => IntegradorSEFAZ.MonitorarOutput(DiretorioDoOutput));

                var xmlCFe = CFe.Serialize();

                xmlCFe = xmlCFe.Replace("nItem=\"01\"", "nItem=\"1\"").Replace("nItem=\"02\"", "nItem=\"2\"").Replace("nItem=\"03\"", "nItem=\"3\"")
                         .Replace("nItem=\"04\"", "nItem=\"4\"").Replace("nItem=\"05\"", "nItem=\"5\"").Replace("nItem=\"06\"", "nItem=\"6\"")
                         .Replace("nItem=\"07\"", "nItem=\"7\"").Replace("nItem=\"08\"", "nItem=\"8\"").Replace("nItem=\"09\"", "nItem=\"9\"");

                var id = IdSessao.Random();

                xmlCFe.Write(DiretorioDosCupons + "\\CFe_" + CodigoDaFilial + CFe.infCFe.ide.numeroCaixa + id + ".xml");

                var xmlIntegrador = xmlCFe.GerarVendaViaIntegrador(id);
                xmlIntegrador.Write(DiretorioDoInput + "\\Venda_" + CodigoDaFilial + CFe.infCFe.ide.numeroCaixa + id + ".xml");

                dynamic retorno = null;
                do
                {
                    retorno = RetornosProcessados.Where(rp => rp.Sessao == id).FirstOrDefault();
                } while (retorno == null);

                return(retorno);
            }
            else
            {
                throw new Exception("O uso da biblioteca de emissão expirou!");
            }
        }
        public override void ImprimirExtratoResumido(CFe cfe)
        {
            PreparaExtrato(ExtratoLayOut.Resumido, cfe.InfCFe.Ide.TpAmb ?? DFeTipoAmbiente.Homologacao);
            internalReport.RegisterData(new[] { cfe }, "CFe");
#if DEBUG
            internalReport.Design();
#else
            Print();
#endif
        }
示例#5
0
 /// <summary>
 ///     Initializes a new instance of the <see cref="CFeCanc" /> class.
 /// </summary>
 /// <param name="cfe">The cfe.</param>
 public CFeCanc(CFe cfe) : this()
 {
     InfCFe.ChCanc          = $"CFe{cfe.InfCFe.Id.OnlyNumbers()}";
     InfCFe.Versao          = cfe.InfCFe.Versao;
     InfCFe.Ide.CNPJ        = cfe.InfCFe.Ide.CNPJ;
     InfCFe.Ide.SignAC      = cfe.InfCFe.Ide.SignAC;
     InfCFe.Ide.NumeroCaixa = cfe.InfCFe.Ide.NumeroCaixa;
     InfCFe.Dest.CPF        = cfe.InfCFe.Dest.CPF;
     InfCFe.Dest.CNPJ       = cfe.InfCFe.Dest.CNPJ;
 }
示例#6
0
 public TesteResponse(string retorno, Encoding encoding) : base(retorno, encoding)
 {
     VendaTeste = new CFe();
     if (CodigoDeRetorno != 9000)
     {
         return;
     }
     if (RetornoLst.Count < 5)
     {
         return;
     }
     using var stream = new MemoryStream(Convert.FromBase64String(RetornoLst[5]));
     VendaTeste       = CFe.Load(stream, encoding);
 }
示例#7
0
 public void Novo()
 {
     CFe = new CFe()
     {
         InfCFe = new InfCFe()
         {
             Ide   = new Ide(),
             Emit  = new Emit(),
             Dest  = new Dest(),
             Total = new Total(),
             Pgto  = new Pgto()
         }
     };
 }
示例#8
0
        private void Principal_Load(object sender, EventArgs e)
        {
            cboModelo.DisplayMember = "Name";
            cboModelo.ValueMember   = "Name";
            cboModelo.DataSource    = GenericEnum <ImpressoraModelo> .EnumList();

            cboModelo.SelectedIndex = -1;

            txtCaminho.Text         = getCaminho();
            cboModelo.SelectedValue = getModelo();
            txtColunas.Text         = getColunas();

            _cfe = new CFeTeste().CFe();
        }
示例#9
0
        private void carregarXMLToolStripMenuItem_Click(object sender, EventArgs e)
        {
            logger.Info("Carregar XML CFe.");
            var file = Helpers.OpenFiles(@"CFe Xml | *.xml");

            if (file.IsEmpty())
            {
                logger.Info("Carregar XML CFe Cancelado.");
                return;
            }

            cfeAtual = CFe.Load(file);
            wbrXmlGerado.LoadXml(cfeAtual.GetXml());
            tbcXml.SelectedTab = tpgXmlGerado;
            logger.Info("XML CFe carregado com sucesso.");
        }
示例#10
0
        private void btnEnviarCFe_Click(object sender, EventArgs e)
        {
            //if (!cfeService.Ativo) ToogleInitialize();
            cfeService.Ativar();
            var ret = cfeService.EnviarDadosVenda(cfeAtual);

            if (ret.CodigoDeRetorno != 6000)
            {
                return;
            }

            cfeAtual = ret.Venda;
            var teste = cfeAtual.GetQRCode();

            webBrowser1.LoadXml(ret.Venda.GetXml());
        }
示例#11
0
        private void enviarVendaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (!acbrSat.Ativo)
            {
                ToogleInitialize();
            }
            var ret = acbrSat.EnviarDadosVenda(cfeAtual);

            if (ret.CodigoDeRetorno != 6000)
            {
                return;
            }

            cfeAtual = ret.Venda;
            wbrXmlRecebido.LoadXml(ret.Venda.GetXml());
            tbcXml.SelectedTab = tpgXmlRecebido;
        }
示例#12
0
 public Emissor(string codigoDeAtivacao, string versaoDadosEnt, string CNPJ, string signAC, string numeroDoCaixa, string codigoDaFilial = "")
 {
     CodigoDeAtivacao = codigoDeAtivacao;
     CodigoDaFilial   = codigoDaFilial;
     CFe = new CFe
     {
         infCFe = new infCFe
         {
             versaoDadosEnt = versaoDadosEnt,
             ide            = new ide
             {
                 CNPJ        = string.Format("{0:00000000000000}", Convert.ToDouble(CNPJ)),
                 signAC      = signAC,
                 numeroCaixa = string.Format("{0:000}", Convert.ToInt16(numeroDoCaixa)),
             }
         }
     };
 }
        private void PreparaExtrato(ExtratoLayOut tipo, CFe cfe)
        {
            internalReport = new Report();

            var e = new ExtratoEventArgs(tipo);

            OnGetExtrato.Raise(this, e);
            if (e.FilePath.IsEmpty() || !File.Exists(e.FilePath))
            {
                MemoryStream ms;
                switch (tipo)
                {
                case ExtratoLayOut.Completo:
                case ExtratoLayOut.Resumido:
                    ms = new MemoryStream(Properties.Resources.ExtratoSat);
                    break;

                case ExtratoLayOut.Cancelamento:
                    ms = new MemoryStream(Properties.Resources.ExtratoSatCancelamento);
                    break;

                default:
                    throw new ArgumentOutOfRangeException(nameof(tipo), tipo, null);
                }

                internalReport.Load(ms);
            }
            else
            {
                internalReport.Load(e.FilePath);
            }

            internalReport.SetParameterValue("Logo", Logo.ToByteArray());
            internalReport.SetParameterValue("IsResumido", tipo == ExtratoLayOut.Resumido);
            internalReport.SetParameterValue("IsOneLine", DescricaoUmaLinha);
            internalReport.SetParameterValue("EspacoFinal", EspacoFinal);
            internalReport.SetParameterValue("Ambiente", (int?)cfe.InfCFe.Ide.TpAmb ?? 1);

            internalReport.PrintSettings.Copies     = NumeroCopias;
            internalReport.PrintSettings.Printer    = PrinterName;
            internalReport.PrintSettings.ShowDialog = MostrarSetup;
        }
示例#14
0
        public ParseSatSend(string _dados, ConfigureSat _config)
        {
            dados = _dados.Split('\n');
            config = _config;

            //config = new ConfigureSat();

            CFe = new CFe();
            CFe.infCFe = new envCFeCFeInfCFe();            

            detList = new List<envCFeCFeInfCFeDet>();
            pgtList = new List<envCFeCFeInfCFePgtoMP>();

            LoadConfig();

            DefineDadosConfig(); //Dados Config

            SpliDados(dados); //Dados Micros

            SerializaGeral();
        }
示例#15
0
        ParseSat(string msg)
        {

            msgSat = msg.Split('|');
            if (msgSat[1].Equals("06000") == true)
            {
                if (msgSat.Length > 6)
                {
                    try
                    {
                        string string64 = Encoding.UTF8.GetString(Convert.FromBase64String(msgSat[6]));
                        XDocument doc = XDocument.Parse(string64);
                        System.Xml.Serialization.XmlSerializer reader = new System.Xml.Serialization.XmlSerializer(typeof(CFe));
                        StringReader StrRead = new StringReader(string64);

                        vendasRet = (CFe)reader.Deserialize(StrRead);
                    }
                    catch (Exception e)
                    {
                        Utils.Logger.getInstance.error(e.ToString());
                    }
                }
            }
        }
示例#16
0
        private void GerarCFe()
        {
            logger.Info("Gerando CFe");

            var totalGeral = 0M;

            cfeAtual = acbrSat.NewCFe();
            cfeAtual.InfCFe.Ide.NumeroCaixa = 1;
            cfeAtual.InfCFe.Dest.CPF        = "";
            cfeAtual.InfCFe.Dest.Nome       = "CONSUMIDOR";
            cfeAtual.InfCFe.Entrega.XLgr    = "logradouro";
            cfeAtual.InfCFe.Entrega.Nro     = "112233";
            cfeAtual.InfCFe.Entrega.XCpl    = "complemento";
            cfeAtual.InfCFe.Entrega.XBairro = "bairro";
            cfeAtual.InfCFe.Entrega.XMun    = "municipio";
            cfeAtual.InfCFe.Entrega.UF      = "MS";
            for (var i = 0; i < 3; i++)
            {
                var det = cfeAtual.InfCFe.Det.AddNew();
                det.NItem         = 1 + i;
                det.Prod.CProd    = $"ACBR{det.NItem:000}";
                det.Prod.CEAN     = "6291041500213";
                det.Prod.XProd    = "Assinatura SAC";
                det.Prod.NCM      = "99";
                det.Prod.CFOP     = "5120";
                det.Prod.UCom     = "UN";
                det.Prod.QCom     = 1;
                det.Prod.VUnCom   = 120.00M;
                det.Prod.IndRegra = IndRegra.Truncamento;
                det.Prod.VDesc    = i != 1 ? 1 : 0;

                var obs = new ProdObsFisco();
                obs.XCampoDet = "campo";
                obs.XTextoDet = "texto";
                det.Prod.ObsFiscoDet.Add(obs);

                var totalItem = det.Prod.QCom * det.Prod.VUnCom;
                totalGeral            += totalItem;
                det.Imposto.VItem12741 = totalItem * 0.12M;

                det.Imposto.Imposto = new ImpostoIcms
                {
                    Icms = new ImpostoIcms00
                    {
                        Orig  = OrigemMercadoria.Nacional,
                        Cst   = "00",
                        PIcms = 18
                    }
                };

                det.Imposto.Pis.Pis = new ImpostoPisAliq
                {
                    Cst  = "01",
                    VBc  = totalItem,
                    PPis = 0.0065M
                };

                det.Imposto.Cofins.Cofins = new ImpostoCofinsAliq
                {
                    Cst     = "01",
                    VBc     = totalItem,
                    PCofins = 0.0065M
                };

                det.InfAdProd = "Informacoes adicionais";
            }

            cfeAtual.InfCFe.Total.DescAcrEntr.VDescSubtot = 2;
            cfeAtual.InfCFe.Total.VCFeLei12741            = 1.23M;

            var pgto1 = cfeAtual.InfCFe.Pagto.Pagamentos.AddNew();

            pgto1.CMp   = CodigoMP.CartaodeCredito;
            pgto1.VMp   = totalGeral / 2;
            pgto1.CAdmC = 999;

            var pgto2 = cfeAtual.InfCFe.Pagto.Pagamentos.AddNew();

            pgto2.CMp = CodigoMP.Dinheiro;
            pgto2.VMp = totalGeral / 2 + 10;

            cfeAtual.InfCFe.InfAdic.InfCpl = "Acesse www.projetoacbr.com.br para obter mais;informações sobre o componente ACBrSAT;" +
                                             "Precisa de um PAF-ECF homologado?;Conheça o DJPDV - www.djpdv.com.br";

            wbrXmlGerado.LoadXml(cfeAtual.GetXml());
            tbcXml.SelectedTab = tpgXmlGerado;
            logger.Info("CFe gerado com sucesso !");
        }
 public override void ImprimirExtratoCancelamento(CFe cfe, CFeCanc cFeCanc)
 {
     ImprimirExtratoCancelamento(cFeCanc, cfe.InfCFe.Ide.TpAmb ?? DFeTipoAmbiente.Homologacao);
 }
示例#18
0
 public abstract void ImprimirExtrato(CFe cfe);
示例#19
0
        /// <summary>
        ///     Inicializa uma nova instancia da classe <see cref="VendaResponse" />.
        /// </summary>
        public VendaResponse(string retorno, Encoding encoding) : base(retorno, encoding)
        {
            if (CodigoDeRetorno != 6000 || RetornoLst.Count < 6)
            {
                return;
            }
            using (var stream = new MemoryStream(Convert.FromBase64String(RetornoLst[6]))) Venda = CFe.Load(stream, encoding);
            if (RetornoLst.Count > 8)
            {
                ChaveConsulta = RetornoLst[8];
            }

            #region Comments

            //O QRCode é montado a partir dos valores retornados pelo SAT

            //Posições dos campos de retorno
            //numeroSessao, EEEEE, CCCC, mensagem, cod, mensagemSEFAZ, base64, timeStamp, chaveConsulta, valorTotalCFe, CPFCNPJValue, assinaturaQRCOD

            //Cadeia para o QRCode
            //chaveConsulta|timeStamp|valorTotal|CPFCNPJValue|assinaturaQRCODE

            #endregion Comments

            QRCode = $"{RetornoLst[8].OnlyNumbers()}|{RetornoLst[7]}|{RetornoLst[9]}|{RetornoLst[10]}|{RetornoLst[11]}";
        }
 public override void ImprimirExtratoResumido(CFe cfe)
 {
     PrepararImpressao(ExtratoLayOut.Resumido, cfe.InfCFe.Ide.TpAmb ?? DFeTipoAmbiente.Homologacao);
     internalReport.RegisterData(new[] { cfe }, "CFe");
     Imprimir();
 }
示例#21
0
        private void GerarCfe()
        {
            var totalGeral = 0M;

            cfeAtual = cfeService.NewCFe();
            cfeAtual.InfCFe.Ide.NumeroCaixa = 1;
            cfeAtual.InfCFe.Dest.CPF        = "";
            cfeAtual.InfCFe.Dest.Nome       = "CONSUMIDOR";
            cfeAtual.InfCFe.Entrega.XLgr    = "logradouro";
            cfeAtual.InfCFe.Entrega.Nro     = "112233";
            cfeAtual.InfCFe.Entrega.XCpl    = "complemento";
            cfeAtual.InfCFe.Entrega.XBairro = "bairro";
            cfeAtual.InfCFe.Entrega.XMun    = "municipio";
            cfeAtual.InfCFe.Entrega.UF      = "MS";
            for (var i = 0; i < 3; i++)
            {
                var det = cfeAtual.InfCFe.Det.AddNew();
                det.NItem         = 1 + i;
                det.Prod.CProd    = $"Vip{det.NItem:000}";
                det.Prod.CEAN     = "7894900011531";
                det.Prod.XProd    = "Coca cola";
                det.Prod.NCM      = " 22021000";
                det.Prod.CFOP     = "5102";
                det.Prod.UCom     = "UN";
                det.Prod.QCom     = 1;
                det.Prod.VUnCom   = 120.00M;
                det.Prod.IndRegra = IndRegra.Arredondamento;
                det.Prod.VDesc    = 0;

                var obs = new ProdObsFisco
                {
                    XCampoDet = "campo",
                    XTextoDet = "texto"
                };
                det.Prod.ObsFiscoDet.Add(obs);

                var totalItem = det.Prod.QCom * det.Prod.VUnCom;
                totalGeral            += totalItem;
                det.Imposto.VItem12741 = totalItem * 0.12M;

                det.Imposto.Imposto = new ImpostoIcms
                {
                    Icms = new ImpostoIcms00
                    {
                        Orig  = OrigemMercadoria.Nacional,
                        Cst   = "00",
                        PIcms = 18
                    }
                };

                det.Imposto.Pis.Pis = new ImpostoPisAliq
                {
                    Cst  = "01",
                    VBc  = totalItem,
                    PPis = 0.0065M
                };

                det.Imposto.Cofins.Cofins = new ImpostoCofinsAliq
                {
                    Cst     = "01",
                    VBc     = totalItem,
                    PCofins = 0.0065M
                };

                det.InfAdProd = "Informacoes adicionais";
            }

            cfeAtual.InfCFe.Total.DescAcrEntr.VDescSubtot = 0;
            cfeAtual.InfCFe.Total.VCFeLei12741            = 1.23M;

            var pgto1 = cfeAtual.InfCFe.Pagto.Pagamentos.AddNew();

            pgto1.CMp   = CodigoMP.CartaodeCredito;
            pgto1.VMp   = totalGeral / 2;
            pgto1.CAdmC = 999;

            var pgto2 = cfeAtual.InfCFe.Pagto.Pagamentos.AddNew();

            pgto2.CMp = CodigoMP.Dinheiro;
            pgto2.VMp = totalGeral / 2 + 10;

            cfeAtual.InfCFe.InfAdic.InfCpl = "Documento emitido pelo Vip.Sat";

            webBrowser1.LoadXml(cfeAtual.GetXml());
        }
示例#22
0
        public override void Imprimir(string xmlcontent)
        {
            base.Imprimir(xmlcontent);

            _CFe = CFe.Load(new MemoryStream(Encoding.UTF8.GetBytes(xmlcontent)), Encoding.UTF8);

            #region Cabeçalho

            #region Logotipo
            if (Logotipo != null)
            {
                if (TipoPapel == TipoPapel.Tp80mm)
                {
                    _Printer.AlignCenter();
                }

                _Printer.Image(Logotipo);
            }
            #endregion

            #region Dados do Emitente
            if (TipoPapel == TipoPapel.Tp80mm)
            {
                _Printer.AlignCenter();
            }

            _Printer.BoldMode(PrinterModeState.On);
            _Printer.WriteLine(_CFe.InfCFe.Emit.XFant.LimitarString(ColunasNormal).RemoveAccent());

            if (TipoPapel == TipoPapel.Tp80mm)
            {
                _Printer.AlignLeft();
            }

            _Printer.BoldMode(PrinterModeState.Off);
            _Printer.WriteLine(_CFe.InfCFe.Emit.XNome.LimitarString(ColunasNormal).RemoveAccent());

            _Printer.CondensedMode(PrinterModeState.On);
            _Printer.WriteLine(GereneHelpers.TextoEsquerda_Direita($"Cnpj: {_CFe.InfCFe.Emit.CNPJ.FormatoCpfCnpj()}", $"I.E.: {_CFe.InfCFe.Emit.IE}", ColunasCondensadas));

            _Printer.Write("End.: ");
            _Printer.WriteLine($"{_CFe.InfCFe.Emit.EnderEmit.XLgr.RemoveAccent()},{_CFe.InfCFe.Emit.EnderEmit.Nro.RemoveAccent()} {_CFe.InfCFe.Emit.EnderEmit.XCpl.RemoveAccent()}");

            _Printer.Write("Bairro: ");
            _Printer.WriteLine($"{_CFe.InfCFe.Emit.EnderEmit.XBairro.RemoveAccent()} - {_CFe.InfCFe.Emit.EnderEmit.XMun.RemoveAccent()} - {_CFe.InfCFe.Emit.EnderEmit.CEP.FormatoCep()}");

            _Printer.CondensedMode(PrinterModeState.Off);
            _Printer.CondensedMode(string.Empty.PadLeft(ColunasCondensadas, '-'));
            #endregion

            #region Número do extrato
            if (TipoPapel == TipoPapel.Tp80mm)
            {
                _Printer.AlignCenter();
            }

            _Printer.BoldMode(PrinterModeState.On);
            _Printer.WriteLine($"Extrato No. {_CFe.InfCFe.Ide.NCFe:D6}");
            _Printer.WriteLine($"CUPOM FISCAL ELETRONICO SAT");
            #endregion

            #region Homologação
            if (_CFe.InfCFe.Ide.TpAmb == ACBr.Net.DFe.Core.Common.DFeTipoAmbiente.Homologacao)
            {
                _Printer.CondensedMode(string.Empty.PadLeft(ColunasCondensadas, '-'));

                if (TipoPapel == TipoPapel.Tp80mm)
                {
                    _Printer.AlignCenter();
                }

                _Printer.BoldMode(PrinterModeState.On);

                if (TipoPapel == TipoPapel.Tp80mm)
                {
                    _Printer.WriteLine("AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL");
                }
                else
                {
                    _Printer.WriteLine("AMBIENTE DE HOMOLOGACAO");
                    _Printer.WriteLine("SEM VALOR FISCAL");
                }

                _Printer.BoldMode(PrinterModeState.Off);
                _Printer.CondensedMode(string.Empty.PadLeft(ColunasCondensadas, '-'));
            }
            #endregion

            #region Documento Cancelado
            if (DocumentoCancelado)
            {
                _Printer.CondensedMode(string.Empty.PadLeft(ColunasCondensadas, '-'));

                if (TipoPapel == TipoPapel.Tp80mm)
                {
                    _Printer.AlignCenter();
                }

                _Printer.BoldMode(PrinterModeState.On);
                _Printer.WriteLine("*** DOCUMENTO CANCELADO ***");
                _Printer.BoldMode(PrinterModeState.Off);
                _Printer.CondensedMode(string.Empty.PadLeft(ColunasCondensadas, '-'));
            }
            #endregion

            #region Consumidor
            if (TipoPapel == TipoPapel.Tp80mm)
            {
                _Printer.AlignLeft();
            }

            _Printer.CondensedMode(PrinterModeState.On);
            _Printer.Write("CPF/CNPJ do Consumidor: ");
            _Printer.WriteLine(_CFe.InfCFe.Dest?.CPF.IsNotNull() == true ? _CFe.InfCFe.Dest.CPF.FormatoCpfCnpj() :
                               _CFe.InfCFe.Dest?.CNPJ.IsNotNull() == true ? _CFe.InfCFe.Dest.CNPJ.FormatoCpfCnpj() :
                               "000.000.000-00");
            _Printer.Write("Razao Social/Nome: ");
            _Printer.WriteLine((_CFe.InfCFe.Dest?.Nome ?? "CONSUMIDOR").LimitarString(ColunasCondensadas));
            _Printer.CondensedMode(PrinterModeState.Off);
            #endregion

            _Printer.CondensedMode(string.Empty.PadLeft(ColunasCondensadas, '-'));
            #endregion

            #region Detalhes
            if (TipoPapel == TipoPapel.Tp80mm)
            {
                _Printer.AlignCenter();
            }

            if (TipoPapel == TipoPapel.Tp80mm)
            {
                _Printer.BoldMode("#|COD|DESC|QTD|UN|VL UN|DESC|VL ITEM");
            }
            else
            {
                _Printer.BoldMode("COD|DESC|QTD|UN|VL UN|DESC|VL ITEM");
            }

            _Printer.CondensedMode(string.Empty.PadLeft(ColunasCondensadas, '-'));

            #region Produtos
            if (TipoPapel == TipoPapel.Tp80mm)
            {
                _Printer.AlignLeft();
            }

            _Printer.CondensedMode(PrinterModeState.On);
            foreach (var det in _CFe.InfCFe.Det)
            {
                string textoE = string.Empty;

                string codProd = det.Prod.CProd;
                if (UsarBarrasComoCodigo)
                {
                    codProd = $"{(UsarBarrasComoCodigo && det.Prod.CEAN.IsNotNull() ? det.Prod.CEAN : det.Prod.CProd).PadRight(13)}";
                }

                if (ProdutoDuasLinhas)
                {
                    textoE = $"{ det.NItem:D3} | {codProd}";
                }
                else
                {
                    textoE = $"{ det.NItem:D3} | {codProd} {det.Prod.XProd}";
                }

                string textoR = $"{det.Prod.QCom:N3} {det.Prod.UCom} x {det.Prod.VUnCom:N2} = {det.Prod.VItem:N2}";

                _Printer.WriteLine(GereneHelpers.TextoEsquerda_Direita(textoE, textoR, ColunasCondensadas));

                if (ProdutoDuasLinhas)
                {
                    _Printer.WriteLine(det.Prod.XProd.LimitarString(ColunasCondensadas));
                }

                if (det.Prod.VOutro > 0)
                {
                    _Printer.WriteLine(GereneHelpers.TextoEsquerda_Direita("Acrescimos:", det.Prod.VDesc.ToString("C2", Cultura), ColunasCondensadas));
                }

                if (det.Prod.VDesc > 0)
                {
                    _Printer.WriteLine(GereneHelpers.TextoEsquerda_Direita("Descontos:", det.Prod.VDesc.ToString("C2", Cultura), ColunasCondensadas));
                }
            }
            _Printer.CondensedMode(PrinterModeState.Off);
            _Printer.CondensedMode(string.Empty.PadLeft(ColunasCondensadas, '-'));

            #region Totais
            _Printer.BoldMode(PrinterModeState.On);
            _Printer.CondensedMode(PrinterModeState.On);

            _Printer.WriteLine(GereneHelpers.TextoEsquerda_Direita("Qtde. total de itens:", _CFe.InfCFe.Det.Count.ToString("N0", Cultura), ColunasCondensadas));

            _Printer.WriteLine(GereneHelpers.TextoEsquerda_Direita("Subtotal:", _CFe.InfCFe.Total.ICMSTot.VProd.ToString("C2", Cultura), ColunasCondensadas));

            if (_CFe.InfCFe.Total.ICMSTot.VOutro > 0)
            {
                _Printer.WriteLine(GereneHelpers.TextoEsquerda_Direita("Acrescimos:", _CFe.InfCFe.Total.ICMSTot.VOutro.ToString("C2", Cultura), ColunasCondensadas));
            }

            if (_CFe.InfCFe.Total.ICMSTot.VDesc > 0)
            {
                _Printer.WriteLine(GereneHelpers.TextoEsquerda_Direita("Descontos:", _CFe.InfCFe.Total.ICMSTot.VDesc.ToString("C2", Cultura), ColunasCondensadas));
            }

            _Printer.CondensedMode(PrinterModeState.Off);


            _Printer.BoldMode(GereneHelpers.TextoEsquerda_Direita("Valor TOTAL:", _CFe.InfCFe.Total.VCFe.ToString("C2", Cultura), ColunasNormal));

            _Printer.BoldMode(PrinterModeState.Off);
            #endregion
            #endregion

            _Printer.NewLine();
            #endregion

            #region Pagamentos
            if (TipoPapel == TipoPapel.Tp80mm)
            {
                _Printer.AlignLeft();
            }

            _Printer.CondensedMode(PrinterModeState.On);

            foreach (var _pagto in _CFe.InfCFe.Pagto.Pagamentos)
            {
                _Printer.WriteLine(GereneHelpers.TextoEsquerda_Direita(_pagto.CMp.GetDescription().RemoveAccent(), _pagto.VMp.ToString("C2", Cultura), ColunasCondensadas));
            }

            _Printer.CondensedMode(PrinterModeState.Off);

            _Printer.WriteLine(GereneHelpers.TextoEsquerda_Direita("Troco:", _CFe.InfCFe.Pagto.VTroco.ToString("C2", Cultura), ColunasNormal));
            _Printer.NewLine();
            #endregion

            #region Rodape
            #region Dados da entrega
            if (_CFe.InfCFe.Entrega != null && !_CFe.InfCFe.Entrega.XLgr.IsNull())
            {
                if (TipoPapel == TipoPapel.Tp80mm)
                {
                    _Printer.AlignCenter();
                }

                _Printer.BoldMode(PrinterModeState.On);
                _Printer.WriteLine("DADOS PARA ENTREGA");

                if (TipoPapel == TipoPapel.Tp80mm)
                {
                    _Printer.AlignLeft();
                }

                _Printer.BoldMode(PrinterModeState.Off);
                _Printer.CondensedMode(PrinterModeState.On);
                _Printer.Write("End.: ");
                _Printer.WriteLine($"{_CFe.InfCFe.Entrega.XLgr.RemoveAccent()}, {_CFe.InfCFe.Entrega.Nro.RemoveAccent()} {_CFe.InfCFe.Entrega.XCpl.RemoveAccent()}");
                _Printer.Write("Bairro: ");
                _Printer.WriteLine($"{_CFe.InfCFe.Entrega.XBairro.RemoveAccent()} - {_CFe.InfCFe.Entrega.XMun.RemoveAccent()}/{_CFe.InfCFe.Entrega.UF}");
                _Printer.CondensedMode(PrinterModeState.Off);

                _Printer.CondensedMode(string.Empty.PadLeft(ColunasCondensadas, '-'));
            }
            #endregion

            #region Observações do Fisco
            if (_CFe.InfCFe.InfAdic.ObsFisco.Any())
            {
                if (TipoPapel == TipoPapel.Tp80mm)
                {
                    _Printer.AlignLeft();
                }

                _Printer.CondensedMode(PrinterModeState.On);
                _Printer.BoldMode("Observacoes do Fisco");

                foreach (var fisco in _CFe.InfCFe.InfAdic.ObsFisco)
                {
                    string texto = $"{fisco.XCampo} - {fisco.XTexto}";

                    foreach (var txt in texto.Split(40))
                    {
                        _Printer.WriteLine(txt.RemoveAccent());
                    }
                }

                _Printer.NewLine();

                _Printer.CondensedMode(PrinterModeState.Off);
            }
            #endregion

            #region Observações do Contribuinte
            if (TipoPapel == TipoPapel.Tp80mm)
            {
                _Printer.AlignLeft();
            }

            _Printer.CondensedMode(PrinterModeState.On);
            _Printer.BoldMode("Observacoes do Contribuinte");

            if (!_CFe.InfCFe.InfAdic.InfCpl.IsNull())
            {
                foreach (var txt in _CFe.InfCFe.InfAdic.InfCpl.Split(40))
                {
                    _Printer.WriteLine(txt.RemoveAccent());
                }
            }

            _Printer.NewLine();

            _Printer.CondensedMode(PrinterModeState.Off);

            #endregion

            #region Tributos
            if (TipoPapel == TipoPapel.Tp80mm)
            {
                _Printer.AlignLeft();
            }

            _Printer.BoldMode(PrinterModeState.Off);
            _Printer.CondensedMode(PrinterModeState.On);

            _Printer.WriteLine(GereneHelpers.TextoEsquerda_Direita("Valor aproximado dos Tributos deste Cupom", _CFe.InfCFe.Total.VCFeLei12741.ToString("C2", Cultura), ColunasCondensadas));
            _Printer.WriteLine("(Conforme Lei Fed. 12.741/2012)");
            _Printer.CondensedMode(PrinterModeState.Off);

            _Printer.CondensedMode(string.Empty.PadLeft(ColunasCondensadas, '-'));
            #endregion

            #region Número do extrato
            if (TipoPapel == TipoPapel.Tp80mm)
            {
                _Printer.AlignCenter();
            }

            _Printer.WriteLine($"SAT No. {_CFe.InfCFe.Ide.NSerieSAT:D9}");
            _Printer.CondensedMode(PrinterModeState.On);
            _Printer.WriteLine($"Data e Hora {_CFe.InfCFe.Ide.DEmi:dd/MM/yyyy} {_CFe.InfCFe.Ide.HEmi:HH:mm:ss}");
            _Printer.CondensedMode(PrinterModeState.Off);
            #endregion

            #region Chave de Acesso
            if (TipoPapel == TipoPapel.Tp80mm)
            {
                _Printer.AlignCenter();
            }

            _Printer.CondensedMode(PrinterModeState.On);
            string chave = Regex.Replace(_CFe.InfCFe.Id.OnlyNumber(), ".{4}", "$0 ");

            if (TipoPapel == TipoPapel.Tp80mm)
            {
                _Printer.BoldMode(chave);
            }
            else
            {
                _Printer.BoldMode(chave.Substring(0, 24).Trim());
                _Printer.BoldMode(chave.Substring(24).Trim());
            }

            _Printer.Code128(_CFe.InfCFe.Id.OnlyNumber().Substring(0, 22));
            _Printer.Code128(_CFe.InfCFe.Id.OnlyNumber().Substring(22));

            if (TipoPapel == TipoPapel.Tp80mm)
            {
                _Printer.NewLine();
            }

            _Printer.CondensedMode(PrinterModeState.Off);
            #endregion

            #region QrCode
            if (TipoPapel == TipoPapel.Tp80mm)
            {
                _Printer.AlignCenter();
            }

            string _qrCode = $"{_CFe.InfCFe.Id.OnlyNumber()}|" +
                             $"{_CFe.InfCFe.Ide.DhEmissao:yyyyMMddHHmmss}|" +
                             $"{_CFe.InfCFe.Total.VCFe:0.00}|" +
                             $"{(_CFe.InfCFe.Dest?.CNPJ.IsNotNull() == true ? _CFe.InfCFe.Dest.CNPJ : _CFe.InfCFe.Dest.CPF)}|" +
                             $"{_CFe.InfCFe.Ide.AssinaturaQrcode}";

            if (TipoPapel == TipoPapel.Tp80mm)
            {
                _Printer.QrCode(_qrCode, QrCodeSize.Size1);
            }
            else
            {
                _Printer.QrCode(_qrCode, QrCodeSize.Size0);
            }

            if (TipoPapel == TipoPapel.Tp80mm)
            {
                _Printer.NewLine();
            }
            #endregion

            if (TipoPapel == TipoPapel.Tp80mm)
            {
                _Printer.AlignCenter();
            }

            _Printer.CondensedMode(PrinterModeState.On);

            if (TipoPapel == TipoPapel.Tp80mm)
            {
                _Printer.WriteLine("Consulte o QR Code pelo aplicativo \"De olho na nota\"");
                _Printer.WriteLine("disponível na AppStore (Apple) e PlayStore (Android)");
            }
            else
            {
                _Printer.WriteLine("Consulte o QR Code pelo aplicativo");
                _Printer.WriteLine("\"De olho na nota\" disponível na");
                _Printer.WriteLine("AppStore (Apple) e PlayStore (Android)");
            }

            _Printer.CondensedMode(PrinterModeState.Off);
            #endregion

            if (CortarPapel)
            {
                _Printer.PartialPaperCut();
            }

            _Printer.PrintDocument();
        }
示例#23
0
 public abstract void ImprimirExtratoResumido(CFe cfe);
示例#24
0
 public abstract void ImprimirExtratoCancelamento(CFe cfe, CFeCanc cFeCanc);
示例#25
0
 public SatPrinter()
 {
     _ACBrSat = new ACBrSat();
     _CFe     = new CFe();
     _CFeCanc = new CFeCanc();
 }
 public override void ImprimirExtratoResumido(CFe cfe)
 {
     PreparaExtrato(ExtratoLayOut.Resumido, cfe);
     internalReport.RegisterData(new[] { cfe }, "CFe");
     Print();
 }
示例#27
0
        public ParseSatReceive(string msg)
        {
            msgSat = msg.Split('|');
            if (msgSat[1].Equals("06000") == true)
            {
                if (msgSat.Length > 6)
                {
                    string string64 = Encoding.UTF8.GetString(Convert.FromBase64String(msgSat[6]));

                       string c = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" + string64;



                       
                       retSat = new CFe();
                       try
                       {
                           XDocument doc = XDocument.Parse(string64);
                           
 
                            System.Xml.Serialization.XmlSerializer reader = new System.Xml.Serialization.XmlSerializer(typeof(CFe));
                            StringReader StrRead = new StringReader(c);

                            retSat = (CFe)reader.Deserialize(StrRead);
                       }
                       catch (Exception e)
                       {
                           Utils.Logger.getInstance.error(e.ToString());
                       }
                    //

                     

                       string assQRCode = msgSat[11];

                       string nomeFantasia = retSat.infCFe.emit.xFant;


                       string razao = retSat.infCFe.emit.xNome;

                       string CNPJ = retSat.infCFe.emit.CNPJ;

                       string IE = retSat.infCFe.emit.IE;

                       string IM = retSat.infCFe.emit.IM;

                       string logradouro = retSat.infCFe.emit.enderEmit.xLgr;

                       string nro = retSat.infCFe.emit.enderEmit.nro;

                       string bairro = retSat.infCFe.emit.enderEmit.xBairro;

                       string cpl = retSat.infCFe.emit.enderEmit.xCpl;

                       string mun = retSat.infCFe.emit.enderEmit.xMun;

                       string nCFe = retSat.infCFe.ide.nCFe;

                       string destinatario = retSat.infCFe.emit.CNPJ;


                       string vImposto = retSat.infCFe.total.ICMSTot.vICMS;
                           

                       string endereco = "";
                       
                       if (logradouro != null)
                       {
                           endereco = endereco + logradouro;
                       }
                       if (nro != null)
                       {
                           endereco = endereco + " " + nro;
                       }
                       if (cpl != null)
                       {
                           endereco = endereco + " " + cpl;
                       }
                       if (bairro != null)
                       {
                           endereco = endereco + " " + bairro;
                       }
                       if (mun != null)
                       {
                           endereco = endereco + " " + mun;
                       }
                       string cabecalho = "";
                       if (nomeFantasia != null)
                       {
                           cabecalho = cabecalho + quebrarLinha(nomeFantasia, 54);
                       }
                       if (razao != null)
                       {
                           cabecalho = cabecalho + "\r\n" + quebrarLinha(razao, 54);
                       }
                       if (endereco.Length > 0)
                       {
                           cabecalho = cabecalho + "\r\n" + quebrarLinha(endereco, 54);
                       }
                       cabecalho = cabecalho + "\r\n";
                       if (CNPJ != null)
                       {
                           cabecalho = cabecalho + "CNPJ " + CNPJ;
                       }
                       if (IE != null)
                       {
                           cabecalho = cabecalho + " IE " + IE;

                       }

                       if (IM != null)
                       {
                           cabecalho = cabecalho + " IM " + IM;
                       }
                       cabecalho = cabecalho + "\r\n------------------------------------------------------";
                       cabecalho = cabecalho + "\r\nExtrato No. " + nCFe;
                       cabecalho = cabecalho + "\r\n" + centralizar("CUPOM FISCAL ELETRONICO", 54);
                       cabecalho = cabecalho + "\r\n------------------------------------------------------";
                       if (destinatario != null)
                       {
                           cabecalho = cabecalho + "\r\n" + centralizar(new StringBuilder("CPF/CNPJ do Consumidor: ").Append(destinatario).ToString(), 54);
                           cabecalho = cabecalho + "\r\n------------------------------------------------------";
                       }
                       cabecalho = cabecalho + "\r\n# |COD|DESC|QTD|UN|VL UNIT R$|ST|ALIQ|VL ITEM R$";
                       string corpo = "";

                       





                       int i = 0;



                       foreach (envCFeCFeInfCFeDet det in retSat.infCFe.det)
                       {
                           i++;
                           string atual = "";
                           string numero = i.ToString();
                           string codigo = det.prod.cProd;
                           string qtd = det.prod.qCom;
                           string descricao = det.prod.qCom;
                           string un = det.prod.uCom;
                           string vUn = det.prod.vUnCom;
                           string ST = i.ToString();
                           string ALIQ = i.ToString();
                           string valor = det.prod.vItem;

                           atual = atual + "\r\n" + numero + " " + codigo + " " + descricao + " " + qtd + " " + un + " " + vUn + " " + ST + " " + ALIQ + " " + valor;

                           corpo = corpo + quebrarLinha(atual, 54);
                       }

                    
                       

                       //}




                       string total = retSat.infCFe.total.vCFe;
                       string troco = retSat.infCFe.pgto.vTroco;

                       string nomeAdquirinte = retSat.infCFe.emit.xNome;

                       corpo = corpo + "\r\n             T O T A L    R $   " + total;
                       string din = troco == null ? total:Convert.ToString(Convert.ToDouble(total) + Convert.ToDouble(troco));
                    
                       corpo = corpo + "\r\n             Dinheiro     R $   " + din;
                       corpo = corpo + "\r\n             Troco        R $   " + (troco == null ? "0.00" : troco);
                       corpo = corpo + "\r\n------------------------------------------------------";
                       if (nomeAdquirinte != null)
                       {
                           corpo = corpo + "\r\n" + centralizar(nomeAdquirinte, 54);
                       }
                       if (vImposto != null)
                       {
                           string passString = new StringBuilder("Valor aproximado dos tributos R$: ").Append(vImposto).ToString();
                           corpo = corpo + "\r\n" + centralizar(passString, 54);
                       }
                       corpo = corpo + "\r\n" + centralizar(" Volte Sempre ", 54);
                       corpo = corpo + "\r\n------------------------------------------------------";
                       string rodape = "";

                       string data = retSat.infCFe.ide.dEmi;
                       string hora = retSat.infCFe.ide.hEmi;

                       string idCFe = retSat.infCFe.Id.Substring(3) + " ";

                       string novoidCFe = idCFe;
                       
                       data = data.Substring(6, 2) + "/" + data.Substring(4, 2) + "/" + data.Substring(0, 4);
                       hora = hora.Substring(0, 2) + ":" + hora.Substring(2, 2) + ":" + hora.Substring(4);
                       
                       rodape = rodape + "\r\n" + centralizar(new StringBuilder("Número de Serie do Equipamento: ").Append(retSat.infCFe.ide.nserieSAT).ToString(), 54);
                       rodape = rodape + "\r\n              " + data + " - " + hora;
                       rodape = rodape + "\r\n" + novoidCFe;
                       string textoImpressao = cabecalho + corpo + rodape;
                       
                        textPrint = textoImpressao;
                       
                    
                        string imprimir = completarQRCode(assQRCode);

                        QRCode = imprimir;



                       String[] linhas = quebrarString(textoImpressao, "\r\n");
                       String[][] doc2 = new String[(linhas.Length + 64) / 65][];
                       int j = 0;

                       for (int k = 0; k < doc2.Length; k++)
                       {
                           if (linhas.Length - j > 65)
                           {
                               doc2[k] = new String[65];
                           }
                           else
                           {
                               doc2[k] = new String[linhas.Length - j];
                           }
                           for (int i2 = 0; (i2 < 65) && (j < linhas.Length); j++)
                           {
                               doc2[k][i2] = linhas[j]; i2++;
                           }
                       }


                      // new PrintCFe(idCFe, completarQRCode(impressao, assQRCode)).execute(textoImpressao);





                       
                       //MessageBox.Show(doc2.ToString());

                }

            }
           

        }
 public override void ImprimirExtrato(CFe cfe)
 {
     PreparaExtrato(ExtratoLayOut.Completo, cfe.InfCFe.Ide.TpAmb ?? DFeTipoAmbiente.Homologacao);
     internalReport.RegisterData(new[] { cfe }, "CFe");
     Print();
 }