SISTEMA FISCAL E REDE
galera fui homologar o meu sistema fiscal e o auditor da controladoria mim disse o seguinte.
o sistema fiscal em rede não pode para de funcionar, mesmo quando a rede por qualquer motivo se desconecta.
ai pensei na seguinte situação
3 ou mais caixas trabalhando.
o cadastro de produtos está no servidor nesse caso já ferrou tudo certo ?
se coloco um bd tambem local com o cadastro do produto, clientes etc.
quando a rede for estabelecida e eu atualizar o BD do servidor vai haver conflitos com o numero do PDV. pois a cada venda é incrementado um numero de pdv em uma tabela do BD do servidor.
pergunto qual procedimento adotar para trabalhar em rede com sistema fiscal ?
porque em parte está certo, o cliente que está fazendo a compra não tem nada haver com os problemas ocorridos na rede, e a loja por causa disso não pode deixar de vender.
obrigado
De TEMPO EM TEMPO, o mesmo VERIFIQUE se o SERVIDOR está na rede e transmita TODAS AS VENDAS para ele.
é lógico que, qualquer alteração de cadastro no SERVIDOR, deve haver uma rotina na aplicação para EXPORTAR e ATUALIZAR o PDV.
o grande problema é o numero do PDV , pois no servidro existe uma tabela que é incrementado o numero do PDV a cada venda efetuado pelos caixas.
se funcionar local
digamos que o ultimo cupom usado seja 11
caixa 1 emite um cupom será o 12
caxa 2 emite um cupom será 0 12 '
caxa 3 emite um cupom será 0 12 '
e por ai vai
quando voltar a rede e for feita a atualização do BD do servidor vai gerar um conflito.
antes em queda de rede o computador travava ai
eu coloquei uma função que verifica a conexão de rede, funciona legal o porem é se houver a queda da rede o caixa para, e só volta a efetuar venda após estabelecimento da rede. e mim parece que em sistema fiscal a venda tem que continuar com rede ou sem rede ou estou falando bestera ?
obrigado
Seria interessante vc esboçar a forma atual de como vc inicia e finaliza uma venda.
Os caixas(PDV) devem ter autonomia de trabalho, ou seja, não depender do servidor para nada em um processo completo de venda, isso inclui a geração do numero do cupom, até porque o ECF gera esse numero automaticamente.
Sendo assim você só precisaria enviar ao retaguarda no final da venda o CCF(Contador de Cupom Fiscal),COO(Contador de Ordem de Operação) e o nome ou numero do PDV deixando esse controle a cargo do ECF.
Tente fazer com que seu PDV execute uma venda sozinho, e SE, somente SE a rede estiver OK vc faz a carga dos dados para o retaguarda.
Citação:o grande problema é o numero do PDV , pois no servidro existe uma tabela que é incrementado o numero do PDV a cada venda efetuado pelos caixas.
De fato assim como diz até mesmo seu cliente teria problemas graves em caso de uma pane de server ou de rede ... geralmente não é bom depender tanto de um server, talvez vc poderia homologar se colocasse pre-requisitos como server-replication de forma que fosse praticamente impossÃvel uma paralização.
Mas de fato como disse nosso amigo Fox, é melhor ter um controle simplificado no PDV que permita trabalhar até em caso de pane elétrica e fazer uma consolidação no server do que foi feito, tipo chave composta ... PDV/sequencia_local
Key Key
PDV SEQ DEMAIS_CAMPOS
1 1 ...
1 2 ...
2 1 ...
3 1 ...
Venda sistema não fiscal.
No servidor tenho uma tabela tblNumeroPDV
quando o caixa finaliza a venda faço o select desta tabela e incremento em um, e assim para todos os caixa.
funciona perfeitamente porem se houver queda de rede
antes o sistema travava
agora coloquei uma função que verifica o status e o sistema espera que a rede seja estabelecida.
coloquei uma mensagem informando as provaveis causas da queda e que providencia tomar.
Agora vocÊ diz que o ECF cria o numero do PDV ??? você diz a impressora fiscal ???
estranho porque em cada caixa existe uma impressora fiscal se o número do PDV é sequencial como a impressora saberá o numero de outra impressora.
A não ser que seja adotado a solução do emerson
impressora1 cupom 1.00001
impressora2 cupom 2.00001
impressora3 cupom 3.00001
isso rodando em um BD local e no final do dia ou fechamento do caixa fazer a transferencia pro BD do servidor.
e no servidor ao cadastrar um produto alimentar o BD dos caixas.
Como esse valores você não poderá alterar, utilize ele para guardar os dados no server.
O numero do PDV sendo gerado pela impressora não ocorre de haver dois numeros iguais impressora 1 e impressora 2 ou 3 ou 4 etc. ?
A rotina da impessora que captura este numero e grava no BD ?
O numero do PDV sendo gerado pela impressora então um sistema pode ser projetado como abaixo ?
Servidor com um BD
Cliente com um BD
Servidor
Ao cadastrar produto e clientes envia para o BD Cliente
Cliente
Efetua a venda e no final do dia ou do caixa envias o movimento para o BD do serviidor
existe alguma outra coisa nas entrelinhas sobre este assunto ?
Obrigado
Infelizmente nunca trabalhei com PDV[ô]s em paralelo, até pq varejo não é minha especialidade .... mas vc com ctz já entendeu a moral da história.
Apenas uma sugestão de mudança é que fizesse toda a sincronização de dados tanto no server quanto no caixa por batch fora do expediente .... vc vai tratar muito menos concorrencia de dados no seu código além do que mesmo que a rede falhar vc teria script local que seria só levar num pendrive os dados e rodar o script no local da falha que já fica disponivel senão terá resolver rede e/ou sistema para liberar o equipamento.
Apenas sugiro pq fiz assim e já usei umas 3x e isto para 1 cx apenas.
Citação:ARNALDOCRUZ escreveu:
Fox acredito que vc conheça muito bem o assunto por isso vou te perguntar umas coisas.
O numero do PDV sendo gerado pela impressora não ocorre de haver dois numeros iguais impressora 1 e impressora 2 ou 3 ou 4 etc. ?
A rotina da impessora que captura este numero e grava no BD ?
O numero do PDV sendo gerado pela impressora então um sistema pode ser projetado como abaixo ?
Servidor com um BD
Cliente com um BD
Servidor
Ao cadastrar produto e clientes envia para o BD Cliente
Cliente
Efetua a venda e no final do dia ou do caixa envias o movimento para o BD do serviidor
existe alguma outra coisa nas entrelinhas sobre este assunto ?
Obrigado
Arnaldo,
Não sou um grande conhecedor do assunto, porém estou tbem na luta para concluir meu software.
Cada ECF possui o seu contador de cupom.
Se vc quer diferencia-los dentro de uma base de dados, vc precisa tbm ler a informação do número do caixa da impressora.
Este sim, é diferente de impressora para impressora, dentro de uma mesma loja.
Por exemplo:
ECF1, CCF 1, Caixa 1
ECF2, CCF 1, Caixa 2
ECF3, CCF 1, Caixa 3
Ou seja ,vc terá 3 CCFs com o codigo 1, sendo um para cada caixa consequentemente um para cada impressora.
Veja abaixo como seria mais ou menos.
Vale lembrar que essas informações são geradas pela própria impressora.