#define FontGrande CHR(27) + CHR(33) + CHR(16) // Para Impressoras Epson
#define FontGrande18 CHR(27) + CHR(33) + CHR(18) // Para Impressoras Epson
#define FontGrandeNegrito CHR(27) + CHR(33) + CHR(17) // Para Impressoras Epson
#define FontNormal CHR(27) + CHR(33) + CHR(2) // Para Impressoras Epson
#define FontNormalNegrito CHR(27) + CHR(33) + CHR(10) // Para Impressoras Epson
#define FontPequena CHR(27) + CHR(33) + CHR(1) // Para Impressoras Epson
#define FontPequenaNegrito CHR(27) + CHR(33) + CHR(15) // Para Impressoras Epson
/*--------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------*/
Function ImprimeMesa( NumeroControle, ValorRecebido)
Local ArqImp := cPathCriaSoft + "Mesa.txt"
Local nHandle
Local cHoraSaida
Local cPermanencia
Local gPrinterName := win_PrinterGetDefault()
Local cPrinterName
If NumeroControle = 0
MyMsg("Nenhuma Mesa selecionada!")
Return .f.
Endif
If !MyDeleteArquivo( ArqImp )
MyMSG("Nao foi possivel apagar arquivo de impressao")
Return .f.
Endif
AbreDB( [A17EMP],[EMPRESA] )
Select Comanda ; DbSetOrder(4)
DbGoTop()
DbSeek( NumeroControle )
cHoraSaida := If( Empty(comanda->HorSai), Time(), comanda->HorSai )
cPermanencia := ElapTime( comanda->HorEmi, cHoraSaida )
cPermanencia := SubStr( cPermanencia,1,2 ) + "h" + SubStr( cPermanencia,4,2 ) + "min"
Select Vendedor ; DbSetOrder(1)
DbGoTop()
DbSeek( comanda->CodVed )
nTotalComissao := Round( comanda->TotCom * ( nComissao / 100 ), 2)
SET PRINT ON
SET PRINTER TO &ArqImp
SET DEVICE TO PRINTER
SET CONSOLE OFF
SetPrc(0,0)
@ PROW() + 01, 00 SAY FontGrandeNegrito + Padr(AllTrim(EMPRESA),48)
@ PROW() + 01, 00 SAY FontNormal + "Cnpj " + Trans(empresa->CGCEMP, "@R 99.999.999/9999-99" )
@ PROW() + 01, 00 SAY AllTrim(empresa->ENDERE) + ", " + AllTrim(empresa->NUMERO)
@ PROW() + 01, 00 SAY AllTrim(empresa->BAIRRO) + " - " + AllTrim(empresa->CIDADE) + "/" + empresa->ESTADO
@ PROW() + 01, 00 SAY REPLICATE("-",48)
@ PROW() + 01, 00 SAY "EXTRATO PARA SIMPLES CONFERENCIA"
@ PROW() + 01, 00 SAY Padc( " NAO EH DOCUMENTO FISCAL " ,48, "*" )
@ PROW() + 01, 00 SAY REPLICATE("-",48)
@ PROW() + 01, 00 SAY " Garcon : " + vendedor->NomRdz
@ PROW() , 30 SAY "Chegada : " + comanda->HorEmi
@ PROW() + 01, 00 SAY " Mesa : " + StrZero(comanda->CodCom,4)
@ PROW() , 30 SAY " Saida : " + cHoraSaida
@ PROW() + 01, 00 SAY " Tempo : " + cPermanencia
@ PROW() , 30 SAY "Emissao : " + hb_Dtoc(comanda->DatEmi, "DD/MM/YY")
@ PROW() + 01, 00 SAY REPLICATE("-",48)
@ PROW() + 01, 00 SAY Padc( "Numero de Controle " + StrZero(NumeroControle,6), 48)
@ PROW() + 01, 00 SAY REPLICATE("-",48)
@ PROW() + 01, 00 SAY "Descricao Qtde Preco Total"
@ PROW() + 01, 00 SAY REPLICATE("-",48) + FontPequena
SELECT DESDOcom ; DbSetOrder(1)
DbGoTop()
OrdScope( 0, NumeroControle )
OrdScope( 1, NumeroControle )
DbGoTop()
Do While !Eof()
If FlgCan = "S"
DbSkip()
Loop
Endif
@ PROW() + 1, 00 SAY SubStr( DESPRD, 1, 31 )
@ PROW() , 33 SAY QTDPRD PICT "@E 9999.999"
@ PROW() , 42 SAY "x"
@ PROW() , 46 SAY VLRUNI PICT "@E 9999.99"
@ PROW() , 55 SAY VLRITM PICT "@E 9,999.99"
DbSkip()
Enddo
OrdScope( 0, Nil )
OrdScope( 1, Nil )
@ PROW() + 01, 00 SAY FontNormal
@ PROW() , 39 SAY "------------"
@ PROW() + 01, 28 SAY "SUB-TOTAL"
If comanda->STATUS = "C"
@ PROW() , 39 SAY comanda->TotCom - comanda->VlrAcr + comanda->VlrDes PICT "@E 99,999.99"
Else
@ PROW() , 39 SAY comanda->TotCom PICT "@E 99,999.99"
Endif
@ PROW() + 01, 00 SAY FontNormalNegrito
If comanda->STATUS = "C"
@ PROW() + 01, 00 SAY FontNormal
@ PROW() + 01, 28 SAY " RECEBIDO"
@ PROW() , 39 SAY ValorRecebido PICT "@E 99,999.99"
@ PROW() + 01, 28 SAY "T R O C O"
@ PROW() , 39 SAY (ValorRecebido - comanda->TotCom) PICT "@E 99,999.99"
Endif
@ PROW() + 02, 00 SAY FontNormal + Padc( " NAO EH DOCUMENTO FISCAL " ,48, "*" )
@ PROW() + 02, 00 SAY REPLICATE("-",48)
SET CONSOLE ON
SET PRINTER OFF
SET PRINTER TO
SET DEVICE TO SCREEN
SET DATE FORMAT TO "DD/MM/YYYY"
SET RELATION TO
If !Empty(gPrinterName)
win_PrintFileRaw( gPrinterName, ArqImp, MsgCriaSoft)
Endif
Return .t.