Bematech_FIR_FechaCupomContaDividida

 

Essa função permite fechar o cupom fiscal com formas de pagamento e permite dividir a conta por todos os clientes.

 

Parâmetros:

 

NumeroCupons: STRING com até 2 dígitos com o número de cupons em que a conta será divida. O número mínimo de cupons é 2 e o máximo é 20.

 

AcrescimoDesconto: Indica se haverá acréscimo ou desconto no cupom. "A" para acréscimo ou "D" para desconto.

 

TipoAcrescimoDesconto: Indica se o acréscimo ou desconto é por valor ou por percentual. "$" para desconto por valor ou "%" para percentual.

 

ValorAcrescimoDesconto: STRING com no máximo 14 dígitos para acréscimo ou desconto por valor e 4 dígitos para acréscimo ou desconto percentual.

 

FormaPagamento: STRING com as formas de pagamento. As formas devem ser separadas por ponto e vírgula (";") se for utilizada mais de uma, e deve ter no máximo 16 caracteres cada. Ex: Dinheiro;Cartão. É permitido a utilização de até 20 formas.

 

ValorFormaPagamento: STRING com os valores das formas de pagamento. Os valores devem ter no máximo 14 dígitos e serem separados por ponto e vírgula ";".

 

ValorPagoCliente: STRING com os valores pagos por cada cliente. Obedecem à mesma situação acima.

 

CPF: STRING com o CPF dos clientes. Os CPF's devem ter no máximo 29 caracteres e serem separados por ponto e vírgula ";".

 

Retornos da Função (INTEIRO):

 

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro Inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0 (Ack, St1 e St2)

 

Observações:

 

- O fechamento do cupom somente será executado caso a soma dos valores passados no parâmetro "ValorPagoCliente" seja exatamente igual ao total do Cupom Fiscal.

- O número de formas de pagamento e a quantidade de valores devem ser idênticos, caso contrário a dll retornará "Parâmetro Inválido".

- Se a conta deu R$ 10,00 reais e for dividida em dois clientes cada um pagando com uma forma de pagamento diferente, onde o primeiro pagará R$ 4,00 e o segundo R$ 6,00, deverá ser informado no parâmetro "FormaPagamento" as duas formas, os valores deverão ser informados no parâmetro "ValorFormaPagamento".

- Poderá ser informado uma única forma de pagamento com o valor total do Cupom Fiscal e dividí-la entre os clientes que irão pagar. Por exemplo: se a conta deu R$ 50,00 reais e todos irão pagar em Dinheiro, informe somente a forma de pagamento "Dinheiro" com o valor e em seguida faça a divisão da conta entre os clientes.

- As formas de pagamento aparecerão somente no primeiro cupom fiscal. Ao término do primeiro cupom será feita a emissão dos seguintes automaticamente.

- O cancelamento do cupom em emissão bloqueará a emissão dos demais.

- Todos os documentos fracionados terão o mesmo COO sendo que, o  que os diferencia é a informação do número da via do cupom ao lado da inscrição "CUPOM FISCAL". Exemplo: "CUPOM FISCAL 2ª VIA"

- O parâmetro CPF dessa função é opcional e é utilizado a partir do segundo cliente. Para utiliza-lo você, obrigatoriamente, deve informar o CPF para o primeiro cliente, caso contrário a dll irá ignorar o(s) CPF(s) informado(s)s e não irá imprimi-lo(s). Se você quiser usar o CPF por exemplo para o cliente dois e não quiser usar no cliente 1 você deve passar espaço em branco no parâmetro CPF da função Bematech_FIR_AbreCupomRestaurante.

 

Exemplo:

 

' Exemplo em Visual Basic

iRetorno = Bematech_FIR_FechaCupomContaDividida("3", "A", "%", "1000", "Dinheiro;Dinheiro;Cheque", "10,00;10,00;10,00", "10,00;10,00;10,00", "")

 

// Exemplo em Delphi

cQuantosCupons    := '3';

cAcresDesc        := 'A';

cTipoAcresDesc    := '%';

cValorAcresDesc   := '1000';

cFormaPgto        := 'Dinheiro;Dinheiro;Cheque';

cValorFormaPgto   := '10,00;10,00;10,00';

cValorPagoCliente := '10,00;10,00;10,00';

iRetorno := Bematech_FIR_ContaDividida( pchar( cQuantosCupons ),

                                       pchar( cAcresDesc ),

                                       pchar( cTipoAcresDesc ),

                                       pchar( cValorAcresDesc ),

                                       pchar( cFormaPgto ),

                                       pchar( cValorFormaPgto ),

                                       pchar( cValorPagoCliente ),

                                       pchar( '' ) );