Ir para conteúdo
  • Cadastre-se

dev botao

Exemplo acbrLIb PHP


Ver Solução Respondido por Renato Rubinho,

Recommended Posts

  • Membros Pro
Postado

- Boa tarde, Acredito ser aqui o local da postagem dessa dúvida se não for perdoem. Estou incorporando as dicas do exemplo para utilizar o acbr com PHP e tenho minha primeira dúvida. Vou criar a parte de atualização do ACBRnfe.INI. Eu já tenho alguns campos na parametrização do sistema que coincide com os campos do acbrNfe.INI então vou utilizar o meu que já está pronto, contudo aparentemente as dll´s vão ler o acbr INI, até ai tudo bem se for o caso eu movo da minha tela de parametrização para as configurações do INI. Finalmente minha dúvida começa no campo ModeloDF que aparentemente tem que ser setado com 0 ou 1, e como as rotinas de nfe e nfce são quase as mesmas pensei em enviar o modelo do documento fiscal no envio do mesmo, mas se o INI for lido pela dll eu não conseguiria passar ora 0 ou 1 para a mesma correto? Ou tem solução porque estou entendendo que terei que ter um INI para cada modelo é isso mesmo ? Ou conseguiria passar no ini do documento o modelo que estou utilizando?

Desculpe o texto longo mas tentei ser bem claro ok.

HASA

  • Consultores
Postado

Você pode salvar o ModeloDF no ini antes de enviar o documento.

$eSessao = "NFe";
$eChave = "ModeloDF";
// 0-NFe 1-NFCe
$value = "0";

$ffi->NFE_ConfigGravarValor($handle->cdata, $eSessao, $eChave, $value);

Quando carregar as configurações e chamar o método de envio, ele irá considerar a última configuração que você fez.

  • Membros Pro
Postado

Bom dia Renato, vou passar um senário simples. Imagine um Distribuidor de auto peças, vendas por telefone ( modelo antigo para simplificar ) NF-e,  e frente de caixa com com NFC-e emitindo notas com frequência, como emitiria as notas, o ideal era passar o modelo no INI do cupom ou nota não? O que estou sentido de dificuldade é alterar o ACBRNFE.INI ao emitir cada nota se estou entendo bem.

HASA

  • Consultores
Postado

Você vai precisar configurar o ini para o modelo que está emitindo, conforme o exemplo que passei.

Se estiver emitindo em sequência os NFCes, não precisa alterar a cada emissão, quando for emitir uma NFe, altere o ACBRNFE.INI, quando for voltar a emitir NFCes, altere o ACBRNFE.INI novamente.

  • Curtir 1
  • Membros Pro
Postado

Renato, acho que eu não fui claro. Veja a empresa está coletando os pedidos de venda para emissão da NF-e para envio pelos correios ( exemplo, ou outro meio de entra, motoboy ) na sobre LOJA, e a Loja ( no térreo ) está emitindo cupom fiscal, é uma característica comum as lojas imagine uma distribuidora de BEBIDAS que é depósito e loja mesmo caso.

HASA

  • Membros Pro
Postado

Em tempo: Eu tenho em sistemas offline um acbr para cada terminal de caixa e um acbr para a emissão de notas um em cada PC/NOTE, mas em nuvem será apenas 1 ponto de acesso para vários usuários, então não posso deixar o ACBRNFE.INI totalmente pré configurado como em modo local. Ora o acesso será de celular ora de note de outro estado ( caso do funcionário estar em viagem pela empresa entre outros ), ora da casa de alguém no local físico da empresa entre outras opções ok.

HASA

  • Moderadores
Postado
1 hora atrás, HASA disse:

Em tempo: Eu tenho em sistemas offline um acbr para cada terminal de caixa e um acbr para a emissão de notas um em cada PC/NOTE, mas em nuvem será apenas 1 ponto de acesso para vários usuários, então não posso deixar o ACBRNFE.INI totalmente pré configurado como em modo local. Ora o acesso será de celular ora de note de outro estado ( caso do funcionário estar em viagem pela empresa entre outros ), ora da casa de alguém no local físico da empresa entre outras opções ok.

HASA

então terá que a cada um deles fazer as chamadas e mudar o ini com os métodos da dll

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • Membros Pro
Postado

Boa tarde, não sei se estou com um medo que não existe mas... poderá acontecer de 2 enviarem as alterações 0 e 1 e uma subscrever a outra e assim uma das notas serem rejeitadas ou emitidas de forma errônea, penso que haverá milésimos de segundo entre uma requisição e outra e dar ruim, estou exagerando ?

HASA

  • Membros Pro
Postado

EM TEMPO: 2 usuários estou sendo modesto demais, tenho sistema com mas acessos que isso ao mesmo tempo para nota e cupom.

  • Consultores
  • Solution
Postado

Certo, então voltamos à sua pergunta original. 

23 horas atrás, HASA disse:

Ou tem solução porque estou entendendo que terei que ter um INI para cada modelo é isso mesmo

Você deverá usar um ini para cada modelo. 

No método Inicializar você informa o ini.


// $iniPath deverá receber o ini do respectivo modelo

$ffi->CNPJ_Inicializar(FFI::addr($handle), $iniPath, "");

 

  • Membros Pro
Postado

Acho que entendi terei o ACBrNFe.INI e o ACBrNFCe.INI chamando cada qual na ora certa. Ex:

Vou emitir nota: 

// $iniPath deverá receber o ini do respectivo modelo
$iniPath = __DIR__ . "/acbr/ACBrNFe.INI";
$ffi->CNPJ_Inicializar(FFI::addr($handle), $iniPath, "");

Vou emitir cupom:

// $iniPath deverá receber o ini do respectivo modelo
$iniPath = __DIR__ . "/acbr/ACBrNFCe.INI";
$ffi->CNPJ_Inicializar(FFI::addr($handle), $iniPath, "");

 

Ou mais ou menos isso?

HASA

 

  • Membros Pro
Postado

Certo, INI de nfce não achei, se poder informar onde localizo, pq para nfe tem no exemplo. Aproveito para perguntar se existem mais INI´s, tipo um para cada ACBRLIB, digo porque temos diversas acbrlib ok.

HASA

  • Consultores
Postado

O ini de NFe e NFCe é o mesmo, internamente é o mesmo componente.
Basta replicá-lo.

Com relação aos inis de cada Lib, ao Inicializar a lib ela cria o ini, caso ele não esteja no local indicado.

Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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...