public override void ImprimirExtratoCancelamento(CFe cfe, CFeCanc cFeCanc) { PreparaExtrato(ExtratoLayOut.Cancelamento, cfe); internalReport.RegisterData(new[] { cfe }, "CFe"); internalReport.RegisterData(new[] { cFeCanc }, "CFeCanc"); Print(); }
/// <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; } }
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 }
/// <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; }
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); }
public void Novo() { CFe = new CFe() { InfCFe = new InfCFe() { Ide = new Ide(), Emit = new Emit(), Dest = new Dest(), Total = new Total(), Pgto = new Pgto() } }; }
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(); }
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."); }
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()); }
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; }
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; }
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(); }
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()); } } } }
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); }
public abstract void ImprimirExtrato(CFe cfe);
/// <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(); }
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()); }
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(); }
public abstract void ImprimirExtratoResumido(CFe cfe);
public abstract void ImprimirExtratoCancelamento(CFe cfe, CFeCanc cFeCanc);
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(); }
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(); }