Aviso: Este artigo ainda é um rascunho!
Explicação e modelo de configuração de séries para o Totali Lite e Checkout.
Texto antes dos itens
O texto antes dos itens é o cabeçalho da nota, onde geralmente imprime o número da nota, natureza, dados do cliente e detalhamento das parcelas.
Modelo 1 (Dados do cliente com parcelamento)
{vendas.numnot}
{TAM(m.desnature,20)} {TAM(codnature,4)}
{cliente.nomcli} {cliente.numdoc}{vendas.datope}
{cliente.endere}{TAM(cliente.comple,12)} {cliente.codcep}
{lecidade(cliente.codcep,30,.t.)}{cliente.codddd}-{cliente.numfon} {cidade.sigest} {cliente.insest}
{nparcela[1]} {dparcela[1]} {vparcela[1]} {nparcela[4]} {dparcela[4]} {vparcela[4]} {nparcela(7)} {dparcela(7)} {vparcela(7)} {nparcela[2]} {dparcela[2]} {vparcela[2]} {nparcela[5]} {dparcela[5]} {vparcela[5]} {nparcela[8]} {dparcela[8]} {vparcela[8]} {nparcela[3]} {dparcela[3]} {vparcela[3]} {nparcela[6]} {dparcela[6]} {vparcela[6]} {nparcela[9]} {dparcela[9]} {vparcela[9]}
Itens do produto
Básico
{itens.codpro+itens.digpro)} {alltrim(TAM(itens.desmat,20))} {produto.unidad} {TAM(itens.qtdade,2)} {TAM(itens.precov,10,2)} {TAM(itens.ntotal,8,2)} {m.taxicm}
Subtotalização por situação tributaria/alíquota de ICMS
Esta configuração deverá continuar na mesma linha da configuração dos itens. Exemplo:
{iif(lGeraTotal, lf + space(36) + 'SubTotal '+iif(itens.sittri $ '060-070' , '574 ', '512 ') + 'VB.ICMS:' + str(nSubTotTt,10,2)+space( 6)+'VLR.ICMS:' + str(nSubTotIp,6,2) + 'Total:' + str(nSubTotTt,9,2)+' VB.Cont:' + str(nSubTotVc,10,2),)}
Observação dos Produtos
Esta configuração deverá continuar na mesma linha da configuração dos itens. Exemplo: {IIF(EMPTY(ITENS.OBSERV),,CHR(13)+ITENS.OBSERV)}
Texto entre produto e serviço
O texto entre produto e serviço é utilizado para configurar o desconto da nota ou outros campos. Caso a nota não tenha serviço pode ser configurado tudo no bloco ?Texto após os itens?.
Exemplo:
{SPACE(63)}{IIF(VENDAS.VLRNOT<>VENDAS.VLRLIQ, 'Desconto Promocional R$ ' +tam((vendas.vlrnot)-(vendas.vlrliq),6,2), '-')}{lf}{lf}{lf} {space(90)}031997{lf}
Itens de serviço
Básico
{TAM(itens.desmat,28)} {TAM(itens.precov,10,2)} {TAM(itens.ntotal,6,2)} {m.taxiss,2,1}
Totalizadores à direita
{iif(vartype(nserpassados)='N',tam(itens.refpro,8)+"
"+tam(itens.desmat,45)+space(25)+TRANS(itens.precov,"@R
99,999.99")+iif(nserpassados=1,space(25)+"12505","")+iif(nserpassados=m.totservico and
nserpassados<2,LF+space(119)+"5,00%","")+iif(nserpassados=2,space(31)+"5,00%","")+iif(nserpassados=m.totservico and
nserpassados<3,LF+space(118)+tam(m.vlriss,6,2),"")+iif(nserpassados=3,space(30)+tam(m.vlriss,6,2),"")+iif(nserpassados=m.totservico and
nserpassados<4,LF+space(99)+"IRRF"+space(17)+"0,00","")+iif(nserpassados=4,space(12)+"IRRF"+space(16)+"0,00","")+iif(nserpassados=m.totservico and
nserpassados<5,LF+space(115)+trans(m.basiss,"@R
99,999.99"),"")+iif(nserpassados=5,space(27)+trans(m.basiss, "@R 99,999.99"),""),"")}
Texto após os itens
Nota de Continuação
A nota de continuação é um recurso utilizado para informar mais itens do que cabem na impressão de uma página sem precisar fazer várias vendas. Para isto basta configurar o bloco ?Texto apos os itens? da seguinte forma: {iif( LTemContinuacao, '*********', tam(vendas.VlrLiq, 9, 2))}
Sem a nota de continuação ficaria assim: {tam(vendas.VlrLiq, 9, 2)}
Neste exemplo será impressa uma nota onde os valores das primeiras páginas serão substituídos por ********* e na observação será acrescentada a mensagem: "SEGUE NO PROXIMO FORMULARIO". Na última página serão impressos os valores ao invés dos asteriscos e com a mensagem "CONTINUACAO DO FORMULARIO ANTERIOR" incluída na observação. ÿ uma exigência legal a troca de todos os totais da nota por asteriscos quando for nota fiscal continuação.
Exemplo
{lf}{lf} {lf}{space(8)}{tam(ABS(basicm),8,2)}{space(15)}{tam(ABS(vlricm),6,2)}{space(53)}{TAM(ABS(vendas.vlrliq),10,2)}{lf}{lf}{space(90)}{iif(LTemContinuacao, '*********',tam(ABS(vendas.VlrLiq), 10, 2))}{lf}{lf}{lf}Sem Transport.{space(42)}1
Placa:{TAM(VENDAS.PLACAS,8)}{OBS(1,17)}{space(2)}-{space(2)}KM:{vendas.qtd_km}{OBS(2,17)} {CLIENTE.CHAVECLI} {VENDAS.OBSERV} {vendas.origem} {Vendas.destin} {SE(NVLRSUBSTTCOM>0, 'ICMS pago por Substi.tributaria em operacao'+chr(10)+chr(13)+'anterior Decreto 41.183 de 24/09/1996', ' ')}
{space(90)}{vendas.numnot}
Variáveis
Geral
{PAEMPRESA} NOME DA EMPRESA
{PAENDERE1} ENDEREÿO
{PAENDERE2} CIDADE
{PACGCEMP} CGC
{PAFAXEMP} FAX
{PAFONEMP} FONE
{trans(vendas.horope,?@R 99:99.00?)} hora
{m.natureza} imprime codigo e descricao da natureza.
{m.codnature} imprime codigo da natureza ex: "5.12-000"
{m.desnature} imprime descricao da natureza ex: "Venda ao consumidor"
{strzero(day(VENDAS.DATOPE),2)+'/'+strzero(month(VENDAS.DATOPE),2)+'/'+str(year(VENDAS.DATOPE), 4)} imprime data com 04 casas para o ano.
{dparcela[N]} Vcto. da parcela, (onde [N] é a sequencia das parcelas).
{nparcela[N]} Número da parcela, (onde [N] é a sequencia das parcelas).
{vparcela[N]} Valor da parcela, (onde [N] é a sequencia das parcelas).
{M.TOTPARC} Total das Parcelas
{M.TOTQTD} quantidade total dos produtos vendidos.
{OBS(N,T)} Observação da venda, (onde a letra "n" é o numero da linha e a letra "t" é o numero de caracteres.
{OBS(N,T,PRODUTO.OBSERV) Observacao do produto, (onde a letra "n" é o nr.
da linha e a letra "t" é o numero de caracteres.
{M.MSGDES} Mensagem de desconto
{ M.VLRDES} Valor de desconto
{ M.PERDES} Percentual de desconto.
{ M.EXTEN1} Valor por extenso (linha1)
{ M.EXTEN2} Valor por extenso (linha2)
{ M.EXTEN3} Valor por extenso (linha3)
{LECIDADE(CLIENTE.CODCEP,2,.T.,.T.)} Estado do endereço do cliente
{M.TOTPRO}Valor total dos produtos menos os serviços.
{ M.VLRICM} Valor do ICMS
{ M.TAXICM} Percentual do ICMS
{ M.VLRIPI} Valor do IPI
{ M.TAXIPI} Percentual do IPI
{ M.VLRISS} Valor do ISS
{ M.TAXISS} Percentual do ISS
{ M.ISSITE} Valor do ISS do Item
{ M.ICMITE} Valor do ICM do Item
{ M.IPIITE} Valor do IPI do Item { M.BASICM} Base de cálculo do ICM
{ M.BASISS} Base de cálculo do ISS
{ M.BASIPI} Base de cálculo do IPI
{LECIDADE(CLIENTE.CODCEP,30,.T.)} Cidade do cliente
{PuNomCla4[NomeCLASSE(@PuLetCla4,PRODUTO.CLASS4)]} Imprime as classes dos produtos neste caso a Classe 4.
{tam(vendas.vlrnot,12,2)} Valor da Nota
{tam(vendas.vlrliq,12,2)} Valor Liquido
{tam(vendas.descon,6,2)} Desc/Acres %
{trans((vendas.vlrnot*vendas.descon)/100,"@R 999,999,999.99")} Desc/Acres R$
{tam((100*vendas.vlrliq/vendas.vlrnot)-100,6,2)}% DESCONTO/ACRESCIMO
{VENDAS.DESCON*ITENS.PRECOV/100} ? Valor de desconto por item.
{vendedor.codusu}{vendedor.digusu} Código e dígito do vendedor
{VENDEDOR.NOMUSU} Nome do vendedor
{plano.codpgt}{plano.digpgt} Código e Dígito do Plano
{plano.despgt} Descricao do Plano
{Caixa(1,10)} Forma de Recebimento e Valor
{M.nBaseRedICM} Base de cálculo reduzida de ICMS {M.nVlrRedIcm} Valor do Icms reduzido
{movtos.vlrmov} = Impressão das casas decimais corretas no Totali CheckOut
Para imprimir no Layout da Nota Fiscal se é entrada ou Saída = {iif(m.QualItem= 'TUDO' and NEGATIVO, 'Entrada', iif(m.Qualitem='TUDO' and POSITIVO, 'Saida',
iif(m.Qualitem='+', 'SAIDA', 'ENTRADA')))}
{aBasICMS[n]} = Base ICMS
{aVlrICMS[n]} = Valor ICMS
{aPerICMS[n]} = Percentual ICMS
{aSitICMS[n]} = Situação Tributária ICMS
A letra ?n? destas 4 variáveis podem variar de 1 a 10, semelhante ao uso do nparcela[]. Caso tenha algum produto ISENTO na venda estará fixo na posição 10.
Frete
{paespecie} = Espécie
{vendas.FR_FOR} = Código da transportadora. As demais colunas: endereço,... deve ser pegos do cadastro de fornecedores.
{vendas.FR_E_D} = Frete por conta 1 -Emitente, 2 - Destinatário
{vendas.FR_CON} = Numero do conhecimento
{vendas.FR_VOL} = Numero de volumes
{vendas.FR_PLA} = Placa
{vendas.FR_UFP} = UF da placa
{vendas.FR_DAT} = Data de saída
{vendas.FR_BRU} = Peso Bruto
{vendas.FR_LIQ} = Peso líquido
{vendas.FR_FRE} = Valor do frete
{vendas.FR_SEG} = Valor do seguro
{vendas.FR_MAR} = Marca
Observação da Reimpressão de CF em NF
A observação da nota no caso de reimpressão de CF é definida pela variável {M.PUOBSERV}. Nesta observação será listado todos dos cupons que fazem parte da nota através da mensagem: ?NF emitida a partir do(s) Cupom(ns) Fiscal(is)...?. O comprimento desta observação é controlado pela variável PaTmPuObserv que é configurada somente pela manutenção, conforme exemplo abaixo: PatmPuObserv = 100 =Queda(?N?)
Consultar de domínios em qualquer tabela
Através da função ConsultaTabela é possível buscar qualquer domínio relacionado com uma tabela principal.
a) Para consultar a classe de um produto:
Ex: ConsultaTabela( PRODUTO.CLASS3, 'CLASS3', ?TABELAS?, ?LETRA?)
b) Descrição do Boleto:
Ex: ConsultaTabela(VENDAS.COBRAN, 'DESCOB', 'TABELAS', 'LETRA')
c) Localizar nome de Vendedor
{ConsultaTabela(VENDAS.CODVEN, 'NOMUSU', 'USUARIO', 'CODUSU')}
Várias naturezas na mesma venda
A função NaturezasHParts permite que seja impressa todas as naturezas na venda no cabeçalho da nota. Pode-se pegar qualquer informação das tabelas (I)tens, (P)roduto, (G)rade, (T3)abelas-Class3 e (T4)abelas-Class4 usando a letra entre parênteses para se referir a tabela. A fórmula não pode ultrapassar 256 caracteres.
Exemplo de fórmula:
{NaturezasHParts('iif(i.sittri="060","SUBS","NORMAL")+nvl(t4.class4,"00")+nvl(t3.class3,"00")','/')}
Dados da Empresa
Estas variáveis são importadas do Totali Commerce. (Disponível no Commerce 4.0c ou superior):
{PaNtNOMFIL} = Nome da Filial
{PaNtENDERE} = Endereço
{PaNtCOMPLE} = Complemento
{PaNtCODCEP} = CEP
{PaNtCODLOG} = Complemento do CEP
{PaNtNUMFON} = Telefone
{PaNtCODDDD} = Código DDD
{PaNtNOMCID} = Cidade
{PaUfLoja} = Estado
{PaNtINSEST} = Inscrição Estadual
{PaNtNUMDOC} = CNPJ
{PaNtRAZSOC} = Razão social da filial
Dados para postos de combustíveis
Variáveis utilizadas para Postos de Combustíveis:
{vendas.qtd_km} = Km digitado na venda;
{vendas.placas} = Placa digitada na venda;
{vendas.codmot} = Código do Motorista da transportadora;
{vendas.origem} = Origem informada logo após a digitação da Placa;
{vendas.destin} = Destino informado logo após a digitação da Placa;
{vendas.msgtra} = Mensagem da Transportadora informada logo após a digitação da Placa.