ALIAS SI_CAIXA
VARIAVEL Z_NUMCXA = RECC()
VARIAVEL z_concilia = "N"
VARIAVEL zTitulo = ''
VARIAVEL #TEXTO_FONTE
   Private zFormaPg,zFundoCx,zVenda,zQuitacoes,zSangrias,zTotInf,zRecalc,zReinform,zPgtosCxa,nRow,m_fobs, zbPrint
   Z_NUMCXA := s_cx_numfech
   
   //Set(20,"SCREEN")
   //if .not. QuickDialog("cxa_prt", "Parcial de Caixa", {{"Numero de Fechamento de Caixa:", "@Z_NUMCXA", @Z_NUMCXA, "999999", "", ""} })
   //   Return
   //endif
   //Set(20,"PRINTER")
     
   DbSelectArea('si_caixa')
   si_caixa->( DbGoto(Z_NUMCXA) )
   zTitulo := "Posicao Parcial do Fechamento "+lTrim(Str(z_numcxa,6))+ "  (Loja:"+lTrim(Str(if(fLoja=0,1,fLoja),3))+" Cxa:"+lTrim(Str(si_caixa,3)+')')
   zPgtosCxa := if(vpag_caixa=VcpDINH+VcpCHEQ+VcpCART+VcpCONV+VcpCARN,0,vpag_caixa)
   // zDifDinheiro := ViDINH - (fdinh+VDINH+VcrDINH-(VcpDINH+zPgtosCxa))

   oLst:lOutputMatricial := .t.
   oLst:AddCab( {"AplicaFormatacaoDefaultNoCabecalho"=>"nao", "style"=>"font:Helvetica-Bold#size:14", "COLS"=>"0,C"}, zTitulo)
   oLst:AddCab( {"style"=>"font:Helvetica#size:10", "COLS"=>"0,C"}, "Aberto por "+AllTrim(usu_open)+", em "+Dtoc(dataopen)+" 'as "+HoraOpen+" hs")
   oLst:AddCab( {"style"=>"font:Helvetica#size:10", "COLS"=>"0,C"}, "Posicao Parcial em "+Dtoc(s_datual)+" 'as "+time()+" hs   Situacao Atual: "+AllTrim(SITUACAO))
   
   oLst:AddCab( '_LINHA_GROSSA_' )
   oLst:AddCab( '_CABCOLS_' )
   oLst:AddCab( '_LINHA_FINA_' )

   oLst:AddCol('FormaPag;zFormaPg;P;@S9;9;;')
   oLst:AddCol('Fundo Cxa;zFundoCx;P;@e 999999.99;9;;;Direita;Some;')
   oLst:AddCol('Venda;zVenda;P;@e 999999.99;9;;;Direita;Some;')
   oLst:AddCol('Quitacoes;zQuitacoes;P;@e 999999.99;9;;;Direita;Some;')
   oLst:AddCol('Sangrias;zSangrias;P;@e 999999.99;9;;;Direita;Some;')
   oLst:AddCol('Tot.Calc;zFundoCx+zVenda+zQuitacoes-Abs(zSangrias);P;@e 999999.99;9;;;Direita;Some;')
   oLst:AddCol('Tot.Inf;"_________";P;@s9;9;;;Direita;NaoSome;')
   oLst:AddCol('Dif.Cxa;"_________";P;@s9;9;;;Direita;NaoSome;')

   zbPrint := {|p1,p2,p3,p4,p5|zFormaPg:=p1,zFundoCx:=p2,zVenda:=p3,zQuitacoes:=p4,zSangrias:=p5,oLst:PrtD('_DATACOLS_')}

   eVal(zbPrint, SxNomeFormaPag('ES'),fdinh,VDINH+VPMDINH,VcrDINH,0-(abs(VcpDINH)+abs(zPgtosCxa)-abs(vsangriaES)-abs(vsupriment)) )
   eVal(zbPrint, SxNomeFormaPag('CH'),fcheq,VCHEQ+VPMCHEQ,VcrCHEQ,0-VcpCHEQ-vsangriaCH)
   eVal(zbPrint, SxNomeFormaPag('CT'),fcart,VCART+VPMCART,VcrCART,0-VcpCART)
   eVal(zbPrint, SxNomeFormaPag('CV'),fconv,VCONV+VPMCONV,VcrCONV,0-VcpCONV)
   eVal(zbPrint, SxNomeFormaPag('CA'),fcarn,vMist+VPMCarn,VcrCARN,0-VcpCARN)
      
   oLst:PrtD('_LINHA_GROSSA_')
   oLst:SetFormatSomaCol(1, {||"*TOTAIS"}, .t. /*Alterar Descricao do Totalizador Global*/)
   oLst:PrtD({"style"=>"font:Courier-BoldOblique"}, '_SOMACOLS_GLOBAL_' )

   oLst:PrtD('_PULE_2_LINHAS_')

   oLst:xPrtD('Vda.Dinheiro.: [VDINH @E 9999999.99]  ([NVEN1 9999] Cps)      Transferencias..: [VTRANSF @E 9999999.99] ([nVen6 9999] Cps)')
   oLst:xPrtD('Vda.Cheques..: [VCHEQ @E 9999999.99]  ([NVEN2 9999] Cps)      Cancelamentos...: [VCANC @E 9999999.99] ([nCanc 9999] Cps)')
   oLst:xPrtD('Vda.Cartoes..: [VCART @E 9999999.99]  ([NVEN3 9999] Cps)      Diferenca Trocas: [VDEV @E 9999999.99] ([nDev 9999] Cps)')

   if sys_segmento="locacao"
   oLst:xPrtD('Duplicatas...: [VCONV+vMist @E 9999999.99]  ([NVEN4+NVEN5 9999] Cps)      Vendas Alteradas: [VALT @E 9999999.99] ([nAlt 9999] Cps)')
   else
   oLst:xPrtD('Vda.Convenios: [VCONV-VfPop @E 9999999.99]  ([NVEN4-nFpop 9999] Cps)      Vendas Alteradas: [VALT @E 9999999.99] ([nAlt 9999] Cps)')
   oLst:xPrtD('Vda.F Popular: [VfPop @E 9999999.99]  ([nFpop 9999] Cps)', sys_segmento="farma")
   oLst:xPrtD('Outras Formas: [vMist @E 9999999.99]  ([NVEN5 9999] Cps)')
   endif
   oLst:PrtD('')
   oLst:PrtD('Sangrias/Pagamentos Avulsos......:'+Transform(vpag_caixa+vsangriaES,'@E 9999999.99') +'  ('+str(npag_caixa,4)+' lancamentos)')
   oLst:PrtD('Suprimentos/Quitacoes/Rec.Avulsos:'+Transform(vrec_caixa+vsupriment,'@E 9999999.99') +'  ('+str(nrec_caixa,4)+' lancamentos)')
   se fieldpos('vavalpago')>0 entao oLst:PrtD('Resgates de Notas de Credito ....:'+Transform(vavalpago,'@E 9999999.99') +'  ('+str(npag_nc,4)+' lancamentos)')

   oLst:PrtD('')
   nRow := 0
   // oLst:PrtD({"style"=>"font:Helvetica-Oblique#col:40#row:(oPdf:nLinesPorPagina-6-1)"}, "")
   if len( m_fobs:=AllTrim(obs) ) > 0
      do while ++nRow <= mlCount(m_fobs, 60)
         oLst:PrtD({"style"=>"font:Courier-Oblique#size:8#col:0#row:(oPdf:pRow+1)"}, Rtrim(memoline(m_fobs,60,nRow)) )
      enddo
   endif

   DbGoBottom()
   
#FIM_TEXTO_FONTE
VARIAVEL #TEXTO_FONTE
   Private zCmdsDurante,zCrNome,zCrObs,zComplemento
 
   si_caixa->( DbGoto(Z_NUMCXA) )
   ABRA('0NOIDX',r_siga,'cxa_movp', 'cxa_mov')
   xDbCopyTo('mem:_cxa', '_cxa', {||si_numfech=Z_NUMCXA})
   cxa_mov->(DbCloseArea())
   ABRA('0NOIDX','','mem:_cxa',  'cxa_mov', 'mem:_cxa', 'cr_tip_dup+fobs+str(fCartao,3)')
   ABRA('0NOIDX',r_siga,'sccrcli',  'sccrcli')
   ABRA('0NOIDX',r_siga,'sccpfor',  'sccpfor')
   ABRA('0NOIDX',r_siga,'cp_divis', 'cp_divis')
   
   oLst:EvalLineBlocks('DETALHE', '_ENDPAGE_')
   oLst:ResetCols()
   oLst:ZeraSomaCols(.t. /*Zerar totalizadores globais*/) 

   oLst:AddCab( {"AplicaFormatacaoDefaultNoCabecalho"=>"nao", "style"=>"font:Helvetica-Bold#size:14", "COLS"=>"0,C"}, zTitulo)
   oLst:AddCab( {"style"=>"font:Helvetica-Bold#size:12", "COLS"=>"0,C"}, "Retiradas, Sangrias ou Pagamentos Avulsos")
   oLst:AddCab( '_LINHA_GROSSA_' )
   oLst:AddCab( '_CABCOLS_' )
   oLst:AddCab( '_LINHA_FINA_' )

   oLst:AddCol('Dt Emis;fDataEmi;D;99.99.9999;10;;')
   oLst:AddCol('Hora;fHora;C;99:99;5;;')
   oLst:AddCol('Oper;fobs;P;@s12;12;;;;naoSome;')
   oLst:AddCol('Valor;if(left(fobs,8)="SANGRIA ",0-cr_valor,cr_valor);P;@e 999999.99;9;;;Direita;Some;')
   oLst:AddCol('fp;cr_tip_dup;C;XX;2;;')

   oLst:AddCol('Cod;fCli;N;999999;6;;;Direita;naoSome;')
   oLst:AddCol('Nome;zCrNome;P;@S25;25;;;;naoSome;')
   oLst:AddCol('Complemento;zComplemento;P;@S35;35;;;;NaoSome;')
   oLst:AddCol('Dv;cp_divisao;N;999;3;;;Direita;naoSome;')
   oLst:AddCol('Crt;fCartao;N;999;3;;;Direita;naoSome;')
   oLst:AddCol('Bco;fBanco;N;999;3;;;Direita;naoSome;')

   oLst:SetFormatSomaCol(3, {||"*SUBTOTAL"}, .f. /*Alterar Descricao do Totalizador Parcial*/)
   oLst:AddGroup( { "KEY"=>{||cr_tip_dup} } )
   oLst:AddGroup( { "HEADER"=>{ {"style"=>"font:Helvetica-BoldOblique"}, {|| "TRANSACOES EM "+SxNomeFormaPag(cr_tip_dup)} } })
   oLst:AddGroup( { "FOOTER"=>{ {"style"=>"font:Courier-BoldOblique"}, '_SOMACOLS_' } } )
   oLst:AddGroup( { "FOOTER"=>{ {||oLst:ZeraSomaCols(),'_LINHA_FINA_'} } } )

   BLOCO_TXT zCmdsDurante
      if '/'+AllTrim(fobs)+'/'='/RETIRADA/'
         zCrNome := sccpfor->( DbGoto(cxa_mov->fCli), if(empty(cp_fantasi),cp_nome,cp_fantasi) )
         zComplemento := Left(cp_divis->(DbGoto(cxa_mov->cp_divisao),Left(Desc,1)+SUBSTR(Lower(Desc),2) ),15) 
         zComplemento := if(empty(zComplemento),"",zComplemento+" ") + cr_obs
      else 
         zCrNome := sccrcli->( DbGoto(cxa_mov->fCli),if(empty(cr_fantasi),cr_nome,cr_fantasi) )
         zComplemento := "Controle: "+cr_num_ped + " Venc:"+Dtoc(fBomPara) + if("/"+AllTrim(fobs)+"/"="/VENDA/",""," Lqd:"+Dtoc(cr_dt_lqd))
      endif
   FIM_BLOCO_TXT

   cxa_mov->(DbGoTop(), oLst:DbEval(zCmdsDurante, {|| si_numfech=Z_NUMCXA }) )

   oLst:lFecharGruposAbertos := .t.
   oLst:EvalLineBlocks('DETALHE', '_LINHA_GROSSA_')
   // oLst:EvalLineBlocks('DETALHE', {"style"=>"font:Courier-BoldOblique"}, '_SOMACOLS_GLOBAL_' )

   DbCloseAll()
   DbDrop('mem:_cxa')

#FIM_TEXTO_FONTE
