Luiz,
A dica é boa, mas acho que faltou o contexto. Me corrija se eu estiver errado.
Esta função deverá ser chamada após o operador do caixa disparar a função de recebimento, no aplicativo, quando o registro dos itens for na modalidade "item a item". Esta modalidade é geralmente utilizada em supermercados, por causa do volume de itens a serem registrados.
A outra modalidade é
Fluxo das modalidades:
Registro item a item:
- Operador registra o primeiro item da compra;
- pdv.AbreCupom();
- _INICIO_LOOP_
- pdv.RegistraItem();
- pdv.VendeItem();
- Inicia recebimento ? quebra o loop : _INICIO_LOOP_
- pdv.SaldoAPagar += produtos.preco * pdv.QuantidadeItem
- END_LOOP
- pdv.TelaRecebimento();
- pdv.TelaRecebimento.Saldo = Daruma_FI_SaldoAPagar();
- pdv.TelaRecebimento.Msg = ( pdv.SaldoAPagar != pdv.SaldoAPagar ) ? "DIFERENÇA" : "OK" ;
Registro compra:
- _INICIO_LOOP_
- pdv.RegistraItem();
- Inicia recebimento ? quebra o loop : _INICIO_LOOP_
- pdv.SaldoAPagar += produtos.preco * pdv.QuantidadeItem
- END_LOOP
- pdv.TelaRecebimento();
//
// Neste ponto, o aplicativo espera pela confirmação do pagamento
//
- pdv.AbreCupom();
- _INICIO_LOOP_ /* processa todos os itens registrados */
- pdv.VendeItem();
- END_LOOP
Notem que a diferença está na forma como os itens são enviados para a impressora, para registro. Cada uma dessas modalidades de operação tem suas vantagens e desvantagens, e claro, cabe ao programador tomar as ações necessárias de acordo com a modalidade de operação que estiver operando.
Por exemplo, em uma loja de conveniência a probabilidade de um cupom aberto precisar ser cancelado varia de acordo com o horário e dia, e é certamente maior que em um supermercado, porém, a quantidade de cupons emitidos por check-out em um supermercado é certamente maior do que em uma conveniência.
Resumindo: chamar a função da impressora para verificar o saldo a pagar vai depender de como o check-out está operando. Se estiver operando na modalidade "registro compra", isso não será possível até que todos os itens tenham sido registrados.
Gustavo