Painel de líderes
Conteúdo popular
Showing content with the highest reputation on 31-10-2014 em Posts
-
Foi liberado o acesso as Consultas Públicas de Cupons Fiscais Eletrônicos gerados pelo SAT. https://satsp.fazenda.sp.gov.br/COMSAT/Public/ConsultaPublicaCfe.aspx Desta maneira os cupons podem ser consultados pela internet através do preenchimento do campo disponível com a Chave do cupom. O envio dos cupons pelo SAT já está integrado com a Nota Fiscal Paulista. Sendo assim não é mais necessário aguardar a operação Redef do estabelecimento para que os consumidores possam consultar os créditos pela utilização do CPF no cupom. Vale lembrar que também temos a consulta feita por aplicativo Android disponibilizado para celulares, que foi assunto de outro tópico. É mais um avanço do projeto SAT que logo estará sendo utilizado amplamente no estado de SP.4 pontos
-
Boa tarde a todos, É com grande satisfação que comunico o inicio da publicação de Manuais e Notas Técnicas referentes aos Componentes ACBr. Inicialmente encontra disponível apenas a Nota Técnica 2014/001 que se refere a nomenclatura dos arquivos XML e PDF dos componentes ACBrNFe, ACBrCTe e ACBrMDFe. Alguns desses arquivos vão sofrer alterações nos nomes, por favor baixe e leiam a NT. Convido a todos que ajudam no desenvolvimento, bem como os que utilizam os componentes, a escreverem manuais sobre os mesmos. Podemos dividir o manual em 4 partes: 1. apresentação do componente, qual é a sua finalidade; 2. como configura-lo; 3. quais são as suas funcionalidades; 4. dicas de como usa-lo. Quero ver o nome de vocês na tabela de controle de versões dos manuais.2 pontos
-
Acabei de subir para o SVN modificações para compatibilizar o ACBrECF, usando o modelo "ecfBematech", com o comando de "Venda de Item Completo" da Bematech... A modificação também permitirá aos novos modelos "ECFs Virtuais", um novo método que permite a passagem mais completa de parâmetros... Isso não agrega muito valor para quem usa os componentes, pois temos o evento "QuandoVenderItem", que já permitia informar os dados adicionais... Mas será ótimo para quem usa o ACBrMonitor (assim que o mesmo for adaptado para suportar o método VendeItemEx) A assinatura do método ficou ligeiramente diferente da sugerida pela DLL da Bematech. Tentei manter os parâmetros compatíveis com o VendeItem já existente no ACBrECF, e reorganizei em grupos os parâmetros novos. Segue abaixo uma descrição do método, com algumas explicações em cada parâmetro... Procedure VendeItemEx( Codigo, Descricao : String; AliquotaICMS : String; Qtd : Double ; ValorUnitario : Double; ValorDescontoAcrescimo : Double = 0; Unidade : String = 'UN'; TipoDescontoAcrescimo : String = '%'; DescontoAcrescimo : String = 'D'; CodDepartamento: Integer = -1; EAN13: String = ''; // Código Barras do Produto (GTIN-13) CasasDecimaisQtde: Integer = 0; // Se 0 assume o valor de DecimaisQtd CasasDecimaisValor: Integer = 0; // Se 0 assume o valor de DecimaisPreco ArredondaTrunca: Char = 'A'; // Se diferente de 'A' ou 'T' assume o valor de "Arredonda" NCM: String = ''; // Código da Nomenclatura Comum do MERCOSUL CFOP: String = ''; // Código Fiscal de Operações e Prestações InformacaoAdicional: String = '';// Texto Livro, até 500 caracteres TotalDosTributos: Double = 0; // Valor da lei "De olho no Imposto) OrigemProduto: Integer = 0; // 0–Nacional; 1–Estrangeira Import.direta; 2–Estrangeira–Mercado interno CST_ICMS: String = ''; // ICMS: Código de Situação Tributária ModalidadeBCICMS: Integer = 0; // ICMS: Modalidade Base de Calculo: 0 – Margem do valor agregado (%) // 1 – Pauta (Valor) // 2 – Preço tabelado máx. (Valor) // 3 – Valor da operação PercentualReducaoBCICMS: Double = 0; // ICMS: CSOSN: String = ''; // Simples Nacional: Código de Situação da Operação ValorBaseCalculoSN: Double = 0; // Simples Nacional: Base de Calculo ValorICMSRetidoSN: Double = 0; // Simples Nacional: Valor Retido para ICMS AliquotaCalculoCreditoSN: Double = 0;// Simples Nacional: ValorCreditoICMSSN: Double = 0; // Simples Nacional: ItemListaServico: String = ''; // Serviço apenas: código do serviço prestado: lista de serviços anexa à Lei Complementar nº 116, CodigoISS: String = ''; // Serviço apenas: Código do Imposto Sobre Serviço NaturezaOperacaoISS: String = '';// Serviço apenas: com os seguintes valores possíveis: '00' até '08', IndicadorIncentivoFiscalISS: Integer = 1; // Serviço apenas: para indicar se o estado é participante ou não da (Lei do Incentivo Fiscal – ISS), valores: 1 (participante) ou 2 (não participante) CodigoIBGE: String = ''; // Serviço apenas: Código do município ModalidadeBCICMSST: Integer = 0; // ICMS ST: Modalidade Base de Calculo, 0 – Preço tabelado ou máximo sugerido // Substituição Tributária 1 – Lista negativa (valor) // 2 – Lista positiva (valor) // 3 – Lista neutra (valor) // 4 – Margem do valor agregado (%) // 5 – Pauta (valor) PercentualMargemICMSST: Double = 0; // ICMS ST: PercentualReducaoBCICMSST: Double = 0; // ICMS ST: ValorReducaoBCICMSST: Double = 0; // ICMS ST: AliquotaICMSST: Double = 0; // ICMS ST: ValorICMSST: Double = 0; // ICMS ST: ValorICMSDesonerado: Double = 0; MotivoDesoneracaoICMS: Integer = 9); // 3 – Uso na agropecuária; 9 – Outros; 12 – Órgão de fomento e desenvolvimento agropecuário Informações sobre a plataforma Fiscal da Bematech em: http://www.bematech.com.br/PlataformaFiscal1 ponto
-
Boa tarde meus "amigos" rs Quando carrego o componente de CTe que possui mais de um documento anterior e mando visualizar ele pega apenas o primeiro documento anterior e repete no restante, se estiver errado me corrija, eu fiz o seguinte para dar certo o que eu entendi que foi colocado os [i, ii, iii] errado, eu queria saber se posso fazer isso que vai estar tudo tranquilo, belezinha Unit ACBrCTeDACTEFRDM procedure TdmACBrCTeFR.CarregaDocumentoAnterior; // Adicionado por NCC - 04/04/2014 for i := 0 to CTe.infCTeNorm.docAnt.emiDocAnt.Count - 1 do begin with CTe.infCTeNorm.docAnt.emiDocAnt.Items do begin {$ELSE} // for i := 0 to CTe.infCTeNorm.emiDocAnt.Count - 1 do // begin // with CTe.infCTeNorm.emiDocAnt.Items do // begin {$ENDIF} for ii := 0 to idDocAnt.Count - 1 do begin for iii := 0 to idDocAnt.Items[ii].idDocAntPap.Count-1 do begin with idDocAnt.Items[ii].idDocAntPap.Items[iii] do begin Append; FieldByName('CNPJCPF').AsString:=CNPJCPF; FieldByName('xNome').AsString:=xNome; FieldByName('UF').AsString:=UF; case tpDoc of daCTRC: FieldByName('Tipo').AsString:='CTRC'; daCTAC: FieldByName('Tipo').AsString:='CTAC'; daACT: FieldByName('Tipo').AsString:='ACT'; daNF7: FieldByName('Tipo').AsString:='NF 7'; daNF27: FieldByName('Tipo').AsString:='NF 27'; daCAN: FieldByName('Tipo').AsString:='CAN'; daCTMC: FieldByName('Tipo').AsString:='CTMC'; daATRE: FieldByName('Tipo').AsString:='ATRE'; daDTA: FieldByName('Tipo').AsString:='DTA'; daCAI: FieldByName('Tipo').AsString:='CAI'; daCCPI: FieldByName('Tipo').AsString:='CCPI'; daCA: FieldByName('Tipo').AsString:='CA'; daTIF: FieldByName('Tipo').AsString:='TIF'; daOutros: FieldByName('Tipo').AsString:='OUTROS'; end; //TEste Toan // FieldByName('Serie').AsString:=idDocAnt.Items.idDocAntPap.Items[ii].serie; // FieldByName('nDoc').AsString:=intToStr(idDocAnt.Items.idDocAntPap.Items[ii].nDoc); // FieldByName('dEmi').AsString:=FormatDateTime('dd/mm/yyyy',idDocAnt.Items.idDocAntPap.Items[ii].dEmi); FieldByName('Serie').AsString:=idDocAnt.Items[ii].idDocAntPap.Items[iii].serie; FieldByName('nDoc').AsString:=intToStr(idDocAnt.Items[ii].idDocAntPap.Items[iii].nDoc); FieldByName('dEmi').AsString:=FormatDateTime('dd/mm/yyyy',idDocAnt.Items[ii].idDocAntPap.Items[iii].dEmi); end; post;1 ponto
-
Na unit pcteCTeR.pas aproximadamente na linha 940 onde se importa as informações do vale pedágio, favor incluir a linha: CTe.infCTeNorm.rodo.valePed[i01].vValePed := Leitor.rCampo(tcDe2, 'vValePed');1 ponto
-
Acho que realmente isso não foi previsto... (chamar o NCN para o TEF dedicado) Seria necessário ajustar o componente para remover a transação da lista de pendentes... (não deve ser difícil)1 ponto
-
A ideia é realmente fazer uma nova instalação. Queira: verificar se seus arquivos fontes do ACBr estão atualizados, sem conflitos ou alterações. Na dúvida, apague o que tem e faça o download via SVN novamente. Verifique que não há outra cópia deste código no computador. Remova todas as referências ao ACBr na IDE. Siga todos os passos do seguinte tópico1 ponto
-
Depois de quebrar a cabeça, consegui mostrar o DANFE no meu Preview personalizado sem alterar os fontes do ACBR, não gosto de alterar os fontes, pois aí quando atualizo, vira bagunça e lá vem os bugs. Adicionei a seguinte procedure no formulario que contém o ACBRDANFE: procedure TNfe.PreviewPersonalizado(ReportSystem: TRvSystem; OverrideMode: TOverrideMode; var OverrideForm: TForm); begin Case OverrideMode Of omCreate: Begin OverrideForm := TFrmVisualizarImpressao.Create(Application.MainForm); OverrideForm.Caption := ReportSystem.TitlePreview; OverrideForm.Width := ReportSystem.SystemPreview.FormWidth; OverrideForm.Height := ReportSystem.SystemPreview.FormHeight; OverrideForm.WindowState := ReportSystem.SystemPreview.FormState; ReportSystem.SystemSetups:= ReportSystem.SystemSetups - [ssAllowSetup]; (OverrideForm As TFrmVisualizarImpressao).RvSystem1 := ReportSystem; End; omShow: Begin ReportSystem.SystemPreview.InitPreview((OverrideForm As TFrmVisualizarImpressao).RvRenderPreview1); If Assigned(ReportSystem.OnPreviewSetup) Then Begin ReportSystem.OnPreviewSetup((OverrideForm As TFrmVisualizarImpressao).RvRenderPreview1); End; { if } //(OverrideForm As TFrmVisualizarImpressao).FileName := ReportSystem.SystemFiler.Filename; (OverrideForm As TFrmVisualizarImpressao).Stream.LoadFromStream(ReportSystem.SystemFiler.Stream); //(OverrideForm As TFrmVisualizarImpressao).CarregaRvSystem; (OverrideForm As TFrmVisualizarImpressao).RvRenderPreview1.ZoomFactor:=150; (* *) If soPreviewModal In ReportSystem.SystemOptions Then Begin OverrideForm.ShowModal; End Else Begin OverrideForm.Show; End; { else } End; omWait: Begin If Not (soPreviewModal In ReportSystem.SystemOptions) Then Begin // Wait for close Repeat Sleep(250); Application.ProcessMessages; Until Not OverrideForm.Visible; End; { if } End; omFree: Begin If (ReportSystem.SystemFiler.StreamMode In [smTempFile, smFile]) Then Begin (OverrideForm As TFrmVisualizarImpressao).RvRenderPreview1.NDRStream.Free; (OverrideForm As TFrmVisualizarImpressao).RvRenderPreview1.NDRStream := Nil; End; { if } FreeAndNil(OverrideForm); End; End; { case } end; Depois de configurar o componente ACBRNFE, adicionei a seguinte linha: Danfe.dmDanfe.RvSystem1.OverridePreview:= RelPreviewPersonalizado; Segue em anexo o fonte do meu Preview personalizado para que quiser ter uma ideia. Não está pronto ainda, mas já dá pra ter uma noção de como funciona. uVisualizarImpressao.pas1 ponto
-
experimente popular os dados via código que fica até mais eficiente. É assim que faço e não tem erro.1 ponto
-
A questão é o driver... se o Windows imprimiu a página de testes, então qualquer gerador de relatório deve funcionar...1 ponto
-
1 ponto
-
Criei as seguintes Interfaces no projeto: IACBrECF e IACBrDevice E fiz com que as classes implementassem essas Interfaces: public class ACBrECF : ACBrComponent, IACBrECF public class ACBrDevice : ACBrComposedComponent, IACBrDevice Desta maneira foi possível mockar a ACBrECF e a ACBrDevice, como por exemplo no código abaixo: var acbrDeviceMock = new Mock<IACBrDevice>(); var acbrECFMock = new Mock<IACBrECF>(); acbrECFMock.SetupGet(mock => mock.Device).Returns(acbrDeviceMock.Object); acbrECFMock.Setup(mock => mock.EmLinha(1)).Returns(true); acbrECFMock.Setup(mock => mock.GrandeTotal).Returns(0m); acbrECFMock.Setup(mock => mock.IdentificaPAF(It.IsAny<string>(), It.IsAny<string>())).Verifiable(); A princípio a implementação destas Interfaces não deve quebrar nenhum código existente para quem utiliza o ACBrNFeFramework.Net. Não realizei testes muito avançados e ainda não tenho grande conhecimento no projeto, mas com essas duas Interfaces já foi possível notar a melhora na testabilidade. O ideal seria que todas as classes públicas do projeto tivessem Interfaces também. O que acham?1 ponto
-
O componente foi atualizado, bem como o demo demonstrando os novos campos, basta atualizar e testar. Aproveitei e adicionei as tabelas de todos os estados ao repositorio SVN também, as tabelas se encontram no diretório: "<ACBr>\Exemplos\ACBrIBPTax\tabela\"1 ponto
