Ir para conteúdo
  • Cadastre-se

Pesquisar na Comunidade

Showing results for tags '#NFCe #ECFVirtual'.

  • Search By Tags

    Digite tags separadas por vírgulas
  • Search By Author

Tipo de Conteúdo


Fóruns

  • Fórum Aberto - ACBr
    • Notícias do ACBr
    • Equipamentos testados
    • Base de Conhecimento
    • Dúvidas Gerais sobre o ACBr
    • ACBrSerial
    • ACBrSAT
    • ACBrNFe
    • ACBrDFe
    • Dúvidas sobre TEF
    • Dúvidas sobre PIX
    • ACBrMonitor PLUS
    • ACBrTXT
    • ACBrBoleto
    • ACBrDiversos
    • ACBrTCP
    • ACBrFramework
    • ACBrLIB
  • ACBr Pro
    • Dúvidas gerais
    • Duvidas Privadas
    • ACBrMonitorPLUS
    • NFe/NFCe - Nota Fiscal Eletrônica
    • DFe - Documentos Fiscais Eletrônicos
    • SAT / MFE
    • TEF
    • Boleto
    • ACBrSPED
    • ACBrTXT
    • Paf-ECF
    • Requisitos Fiscais por UF
    • ACBrLIB
  • Outros Assuntos
    • Boteco do ACBr
    • Legislação Fiscal e Tributária
    • Object Pascal - Delphi & Lazarus
    • Banco de Dados
    • Classificados
    • Dúvidas não relacionadas ao ACBr

Categorias

  • ACBr Pro
    • ACBrLib - PRO
    • ACBrMonitorPLUS - PRO
    • Utilitários - PRO
    • Dia do ACBr 1a edição
    • Dia do ACBr 2a edição
    • ACBrLib Android - Pro
  • Download Livre
    • ACBrLib - DEMO
    • ACBrMonitorPLUS - DEMO
    • Demos / Testes / Utilitários
    • Apresentações - Palestras
    • ACBrLib Android - Demo

Calendários

  • Eventos - Palestras - Webinars
  • Prazos SEFAZ
  • Calendário da Comunidade
  • ACBr Papo Pro
  • Feriados Nacionais

Find results in...

Find results that contain...


Data de Criação

  • Início

    End


Data de Atualização

  • Início

    End


Filter by number of...

Data de Registro

  • Início

    End


Grupo


Website URL

Encontrado 1 registro

  1. Esses dias, adaptando meu PDV para NFC-e verifiquei o componente ACBrECFVirtualNFCe que mais uma vez adiantou bastante nosso trabalho. Precisei fazer umas pequenas alterações nele para fazer funcionar Desconto e Acréscimo por item, Acréscimo e Desconto no total e todas as possíveis combinações dessas ações. Minha equipe de suporte está fazendo todos os testes e gostaria de compartilhar o código caso vocês queiram adicionar. Tive um problema também para emitir o DANFEESCPOS por estar usando um "ecf virtual emulado" na porta, verifiquei uma solução no fórum () mas não sei se é definitivo. Seguem as alterações, de acordo com a classe observe os métodos. Os arquivos seguem anexos. procedure TACBrECFVirtualNFCeClass.SubtotalizaCupomVirtual( DescontoAcrescimo: Double; MensagemRodape: AnsiString); var I: Integer; TotalNF, TotalItem, Desc, TotalDesc, Dif: Double; bDesconto: Boolean; begin SomaTotais; with fsACBrNFCe do begin bDesconto := DescontoAcrescimo < 0; //Rateio do Desconto/Acrescimo por item - Ideia Tecnologia TotalNF := fsvProd; with NotasFiscais.Items[0].NFe do begin TotalDesc := 0; for I := 0 to Det.Count-1 do begin TotalItem := Det.Items.Prod.vProd; Desc := RoundABNT((Abs(DescontoAcrescimo)/TotalNF)*TotalItem ,2); //Rateado (Desconto ou Acrescimo) if bDesconto then Det.Items.Prod.vDesc := Det.Items.Prod.vDesc + Desc else Det.Items.Prod.vOutro := Det.Items.Prod.vOutro + Desc; TotalDesc := TotalDesc + Desc; end; if (TotalDesc <> Abs(DescontoAcrescimo)) then begin //Se houve diferença pelo arredondamento, acerta no último item Dif := Abs(DescontoAcrescimo) - TotalDesc; if bDesconto then Det.Items[Det.Count-1].Prod.vDesc := Det.Items[Det.Count-1].Prod.vDesc + Dif else Det.Items[Det.Count-1].Prod.vOutro := Det.Items[Det.Count-1].Prod.vDesc + Dif; end; end; if DescontoAcrescimo > 0 then NotasFiscais.Items[0].NFe.Total.ICMSTot.vOutro := NotasFiscais.Items[0].NFe.Total.ICMSTot.vOutro + Abs(DescontoAcrescimo) else NotasFiscais.Items[0].NFe.Total.ICMSTot.vDesc := NotasFiscais.Items[0].NFe.Total.ICMSTot.vDesc + Abs(DescontoAcrescimo); NotasFiscais.Items[0].NFe.InfAdic.infCpl := MensagemRodape; end; end; procedure TACBrECFVirtualPrinterClass.DescontoAcrescimoItemAnteriorVirtual( ValorDescontoAcrescimo: Double; DescontoAcrescimo, TipoDescontoAcrescimo: String; NumItem: Integer); begin ZeraBuffer; if DescontoAcrescimo = 'D' then fsBuffer.Add( 'DESCONTO NO ITEM: '+IntToStrZero(NumItem,3)) else fsBuffer.Add( 'ACRESCIMO NO ITEM: '+IntToStrZero(NumItem,3)); ImprimeBuffer; end; procedure TACBrECFVirtualClass.DescontoAcrescimoItemAnterior( ValorDescontoAcrescimo: Double; DescontoAcrescimo, TipoDescontoAcrescimo: String; NumItem: Integer); var ValorReal, Perc: Double; begin if Estado <> estVenda then raise EACBrECFERRO.create(ACBrStr('O Estado nao é "VENDA"')) ; if fpItensCupom.Count = 0 then raise EACBrECFERRO.create(ACBrStr('Nenhum Item foi vendido ainda')) ; if (NumItem < 1) or (NumItem > fpItensCupom.Count) then raise EACBrECFERRO.create(ACBrStr('Item ('+IntToStrZero(NumItem,3)+') fora da Faixa.')) ; if fpItensCupom[NumItem-1].DescAcres <> 0 then raise EACBrECFERRO.create(ACBrStr('Item ('+IntToStrZero(NumItem,3)+') já tem desconto/acréscimo')) ; try DescontoAcrescimoItemAnteriorVirtual(ValorDescontoAcrescimo, DescontoAcrescimo, TipoDescontoAcrescimo, NumItem); with fpItensCupom[NumItem-1] do begin if TipoDescontoAcrescimo = '%' then begin Perc := ValorDescontoAcrescimo ; ValorReal := RoundTo(Subtotal * (ValorDescontoAcrescimo / 100), -3) ; end else begin ValorReal := ValorDescontoAcrescimo; Perc := RoundTo( (ValorReal / Subtotal) * 100, -2) ; end ; if DescontoAcrescimo = 'D' then begin fpSubTotal := fpSubTotal - ValorDescontoAcrescimo; DescAcres := ValorReal * (-1); end else begin fpSubTotal := fpSubTotal + ValorDescontoAcrescimo; DescAcres := ValorReal; end; with fpAliquotas[ PosAliq ] do begin Total := Total + ValorReal; BaseICMS := BaseICMS + ValorReal; if BaseICMS < 0 then BaseICMS := 0; end ; end ; GravaArqINI; except LeArqINI ; raise; end ; end; Att., Edgard Sampaio ACBrECFVirtualNFCe.pas ACBrECFVirtual.pas ACBrECFVirtualPrinter.pas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...