ALIAS SE_PROD
INDEX SEIP_N PDESC

COMANDO ANTES #TEXTO_FONTE
   Private oQbe, Z_NP:=0, znDias:=180, znDiasEst:=180, zQtdUnids:=1
   
   oQbe:=oQbe():New('_prods')

   oQbe:AddLine( {"1;3;Listar Produtos com mais de Quantos DIAS de estoque ?", "@znDiasEst",  @znDiasEst,  "9999", "", "" } ) 
   oQbe:AddLine( {"2;3;Listar Produtos com mais de Quantos DIAS sem Vendas ?", "@znDias",  @znDias,  "9999", "", "" } ) 
   oQbe:AddLine( {"3;3;Listar apenas Saldos com mais de quantas unidades   ?", "@zQtdUnids", @zQtdUnids, "99999", "", "" } ) 
   oQbe:AddFiltro("5;3;Grupo de Preco:", {||pGPreco}    ,, 'se_gpre;qbe_psegpre',   {'Todos ','Alguns '} ,,, 'm_QbepGPreco')
   oQbe:AddFiltro("6;3;SubDivisoes...:", {||pDivisao}   ,, 'se_subd;qbe_psesubd',   {'Todas ','Algumas'} ,,, 'm_QbepDivisao')
   oQbe:AddFiltro("7;3;Classes Volume:", {||pAbcFisica} ,, 'se_gabcg;qbe_psegabcg', {'Todas ','Algumas '} ,,, 'm_QbepAbcFisica')
   oQbe:AddFiltro("8;3;Classes Valor.:", {||pAbcVenda}  ,, 'se_gabcf;qbe_psegabcf', {'Todas ','Algumas'})
   oQbe:AddFiltro("9;3;Fabricantes...:", {||pPrincforn} ,, 'sccpfab;qbe_psccpfab',  {'Todos ','Alguns '} ,,, 'm_QbePfFor')
       oQbe:AddFiltro( "9;30;", {||pPrincforn} ,,,{'psq_brow','psq_brow();sccpfab;psccpfab;N;N;',0,'999999',"empty(m_QbePfForGet)"} ,,, 'm_PfFor')
   oQbe:AddFiltro("10;3;Descricoes....:", {||pDesc},    'Todas ')
   oQbe:AddFiltro("11;3;Referencias...:", {||pRefFab},  'Todas ')

   if .not. oQbe:QuickDialog("Qbe_PrBal04", "65;11;Produtos com mais de X dias de Estoque")
      Return .f.
   endif

   dbSelectArea('se_prod')
   oLst:cAlias_DataCols := '_prdbal'
   oLst:cAliasMaster := '_prdbal'
   
   oLst:lPortrait := .t.
   oLst:lGeraDbTmp := .f.
   oLst:lOutputFr3 := .f.
   oLst:lOutputPdf := .t.
   
   // oLst:lOutputFr3 := .t.

   oLst:Cab1( "Produtos com Baixo Giro ou Sem Vendas" )
   oLst:AddCab( "" )
   oLst:Cab4(oQbe:ExpressaoDeFiltragemParaImprimir, Dtoc(s_datual)+" as "+left(time(),5)+"hs")
   oLst:Cab4( "Produtos com "+if(znDiasEst>0,"mais de "+lTrim(Str(znDiasEst,10))+" dias de Estoque","")+if(znDiasEst>0.and.znDias>0," ou ","")+if(znDias>0,"mais de "+lTrim(Str(znDias,10))+" dias sem Vendas","") )
  
   oLst:AddCab( '_LINHA_FINA_' )
   oLst:AddCab( '_CABCOLS_' )
   oLst:AddCab( '_LINHA_GROSSA_' )

   oLst:AddCol('Codigo;pCod;N;999999;6;;')
   oLst:AddCol('Descricao;pDesc;C;@s35;35;;') 
   oLst:AddCol('UND;pUnidade;C;@S5;5;;') 
   oLst:AddCol('gp;pgPreco;C;XX;2;;') 
   oLst:AddCol('f;pabcfisica;C;X;1;;') 
   oLst:AddCol('Saldo;pEatual;N;@e 99999,999.99;12;;') 
   oLst:AddCol('Pr.Venda;pVluVenda;N;@e 99,999.99;9;;;Direita;NaoSome;') 

   oLst:AddCol('DataVnda;pdatavend;D;99.99.9999;10;;;Direita;NaoSome;') 
   oLst:AddCol('DiasUltV;if(Day(pDataVend)>0,s_datual-pDataVend,"");P;9999;8;;;Direita;NaoSome;') 
   oLst:AddCol('DiasUltC;if(Day(pdatacomp)>0,s_datual-pDataComp,"");P;9999;8;;;Direita;NaoSome;') 

   // oLst:AddCol('CF;pCategoria;C;@S5;5;;') 
   // oLst:AddCol('Tp;ptipoitem;P;!!;2;S;')
   // oLst:AddCol('Finalidade;Efd_TipoItem();P;@S13;13;N;')

   oLst:AddRodape( '_LINHA_FINA_', "", {|| "Pagina "+Str(++pag,4)+" / ####"} )
   debugalert('1')

   se_prod->( dbgotop(),  oLst:DbEval( {||++z_np}, {|| ((znDiasEst*PEMINCL>0 .and. pEatual>=znDiasEst*PEMINCL) .or. (S_dATUAL-PDATAVEND)>=znDias.and.peAtual>=zQtdUnids.and. .not. ( Day(pdatavend)=0.and.Day(pdatacomp)>0.and.(s_datual-pdatacomp<znDias) )) .and. oQbe:Filtro_ok()} ) )

   oLst:PrtD( '_LINHA_GROSSA_' )
   oLst:PrtD( 'Produtos Listados: '+Transform(z_np,'@E 999,999') )
   // oLst:PrtD( 'Valor Total: '+Transform(z_np,'@E 999,999') )

   debugalert('3')

#FIM_TEXTO_FONTE
