#include "PROTHEUS.CH"
#include "RWMAKE.CH"
#include "APWEBEX.CH"
#include "TOPCONN.CH"
#include "TBICONN.CH"
/*__________________________________________________________________________
�����������������������������������������������������������������������������
��+-----------------------------------------------------------------------+��
���Fun��o    � Comissoes   � Autor � Lucilene Mendes     � Data �24.02.20 ���
��+----------+------------------------------------------------------------���
���Descri��o � Grid com as comissoes do vendedor.				  		  ���
��+-----------------------------------------------------------------------+��
�����������������������������������������������������������������������������
���������������������������������������������������������������������������*/

User Function Comissoes()
Local cHtml
//Local cFiltro	:= ""
Local cDataDe	:= ""
Local cDataAte	:= ""
Local cVendedor := ""
Local nValTit	:= 0
Local nTotalCom := 0
Local v			:= 0
                      
Private cColunas:= ""
Private cItens	:= ""  
Private cTopo	:= ""  
Private cSite	:= "u_PortalLogin.apw"
Private cPagina	  := "Comiss�es"
Private cTitle	  := "" 
Private lTableTools:= .T.
Private lSidebar:= .T.
Private cCodLogin := ""
Private cVendLogin:= ""

Web Extended Init cHtml Start U_inSite()

	cVendLogin := u_GetUsrPR()
	cCodLogin  := U_SetParPR(cVendLogin)

	// TODO - Pedro 20210208 - Remover???
	If Empty(HttpSession->CodVend)
		cHtml:= '<META HTTP-EQUIV="Refresh" CONTENT="0 ; URL='+cSite+'">'	
		Return cHtml
	Else
		If !Empty(HttpSession->Superv) .and. HttpSession->Superv <> HttpSession->CodVend
			HttpSession->CodVend:= HttpSession->Superv
		Endif	
	Endif
	
	// Pega do par�metro com o Titulo do Portal
	cTitle	:= SuperGetMV("PS_TITLE", .T., "Portal SMS")
	
	// Define a funcao a ser chama no link
	cSite	:= "u_SMSPortal.apw?PR="+cCodLogin
	
	// Monta o cabe�alho para a pagina
	cHeader := U_PSHeader(cTitle, cSite) 	
	
	//Fun��o que atualiza os menus
	cMenus := U_GetMenus(AllTrim(Upper(Procname())), cVendLogin)
	 
	//Tratamento dos filtros
	If type("HttpPost->DataDe") <> "U"
		//Se vazio, usa as datas padr�o para evitar erro na query
		If Empty(HttpPost->DataDe) .or. Empty(HttpPost->DataAte)
			cDataDe:= dtos(FirstDay(date()))
			cDataAte:= dtos(LastDay(date()))
		Else
			cDataDe:= dtos(ctod(HttpPost->DataDe))
		    cDataAte:= dtos(ctod(HttpPost->DataAte))
		Endif
		//Atualiza as vari�veis no valor do filtro
		cFiltDe:= dtoc(stod(cDataDe))
		cFilAte:= dtoc(stod(cDataAte)) 
		cVendedor:= HttpPost->vendedor   
	Else
	    //Vari�veis dos input dos filtros
		cFiltDe:= dtoc(FirstDay(date()))
		cFilAte:= dtoc(LastDay(date()))
		//Vari�veis de filtro da query
		cDataDe:= dtos(FirstDay(date()))
		cDataAte:= dtos(LastDay(date()))
		//cFiltro:= '1'   //1=Pagas, 2=Vencto
	Endif
	
    //Filtros
    cTopo:= '<div class="row form-group">'
    cTopo+= '	<div class="col-sm-12">'
    cTopo+= '	<form name="formGrid" id="formGrid" method="POST" action="U_Comissoes.apw?PR='+cCodLogin+'">'
  	
  	cTopo+= '		<label class="col-md-1 control-label">De:</label>'
    cTopo+= '  		<div class="col-md-3">'
	cTopo+= '		 	<div class="input-group">'
    cTopo+= '    			<span class="input-group-addon">'
    cTopo+= '					<i class="fa fa-calendar"></i>'
    cTopo+= '			    </span>'   
    cTopo+= '				<input data-plugin-datepicker="" data-plugin-options='+"'"+'{"autoclose": "true", "language": "pt-BR",'
	cTopo+= '					"daysOfWeekDisabled": "","daysOfWeekHighlighted":"[0]"}'+"'"+' value="'+cFiltDe+'" ' 
    cTopo+= '					placeholder="__/__/____" id="datade" name="datade" class="form-control only-numbers" type="text"></input>'
    cTopo+= '			</div>'
    cTopo+= '		</div>'       
  
    cTopo+= '		<label class="col-md-1 control-label">At�:</label>'
	cTopo+= '		<div class="col-md-3">'
	cTopo+= '			<div class="input-group">'
    cTopo+= '				<span class="input-group-addon">'
    cTopo+= '					<i class="fa fa-calendar"></i>'
    cTopo+= '				</span>'   
    cTopo+= '				<input data-plugin-datepicker="" data-plugin-options='+"'"+'{"autoclose": "true", "language": "pt-BR",'
	cTopo+= '					"daysOfWeekDisabled": "","daysOfWeekHighlighted":"[0]"}'+"'"+' value="'+cFilAte+'" '
    cTopo+= '					placeholder="__/__/____" id="dataate" name="dataate" class="form-control only-numbers" type="text"></input>'
    cTopo+= '			</div>'
    cTopo+= '		</div>' 

	//Supervisor habilita o campo de vendedores
	If HttpSession->Tipo = 'S'
		cTopo+= '<div class="row form-group">'
		cTopo+= '	<div class="col-lg-4">'
		//cTopo+= '		<label class="control-label">Representante</label>'
	 	cTopo+= '		<select data-plugin-selectTwo class="form-control populate placeholder" data-plugin-options='+"'"
		cTopo+= '{ "placeholder": "Selecione um Representante", "allowClear": false }'+"'"+' name="vendedor" id="vendedor" value="'+cVendedor+'"'
		cTopo+= 'required="" aria-required="true"> '
		If !Empty(cVendedor)
			cTopo+= '				<option value="'+cVendedor+'" selected>'+cVendedor+' - '+Upper(Alltrim(Posicione("SA3",1,xFilial("SA3")+cVendedor,"A3_NOME")))+'</option>' 
		Else
			cTopo+= '				<option value=""></option>'
		Endif 
		
		aVends:= Separa(HttpSession->Representantes,"|")
		//Adiciona o supervisor
		If !Empty(HttpSession->Superv) .and. cVendedor <> HttpSession->Superv
			cTopo+='		<option value="'+Alltrim(HttpSession->CodVend)+'">'+Alltrim(HttpSession->CodVend)+' - '+HttpSession->Nome+'</option>'
		Endif
		For v:= 1 to Len(aVends)
			If Alltrim(Substr(aVends[v],1,At("-",aVends[v])-1)) <> cVendedor
				cTopo+='		<option value="'+Alltrim(Substr(aVends[v],1,At("-",aVends[v])-1))+'">'+aVends[v]+'</option>'
			Endif
		Next
		
		cTopo+= '		</select'													
		cTopo+= '	</div>'													
		cTopo+= '</div>'

	Endif

    cTopo+= '		<div class="col-md-2">'
    cTopo+= '			<button class="btn btn-primary" id="btFiltro" value="" onclick="this.value= '+"'"+'Aguarde...'+"'"+';this.disabled= '+"'"+'disabled'+"'"+';Filtro()" name="btFiltro">'
    cTopo+= '			<i class="fa fa-filter"></i> Filtrar</button>' 
    cTopo+= '		</div>' 
 
    
	
	
	// Buscar os T�tulos
	cQry := " Select E3_FILIAL, E3_VEND, E3_PREFIXO, E3_NUM, E3_PARCELA, E3_TIPO, E3_CODCLI, E3_LOJA, A1_NREDUZ, E3_EMISSAO, "
	cQry += "E3_VENCTO, E1_BAIXA, E3_DATA, E3_PEDIDO, E1_VALOR, E3_BASE, E3_PORC, E3_COMIS, E1_NUM, E3_SERIE, E3_TIPO "
	cQry += "FROM "+RetSqlName("SE3")+" SE3 "
	cQry += " INNER JOIN "+ RetSqlName("SA1")+" SA1 ON A1_FILIAL = '"+xFilial("SA1")+"' And A1_COD = E3_CODCLI "
	cQry += "  AND A1_LOJA = E3_LOJA And SA1.D_E_L_E_T_= ' ' "
	cQry += " Left Join "+ RetSqlName("SE1")+" SE1 ON E1_FILIAL = E3_FILIAL and E1_PREFIXO = E3_PREFIXO and E1_NUM = E3_NUM "
	cQry += "  and E1_PARCELA = E3_PARCELA and E1_TIPO = E3_TIPO and SE1.D_E_L_E_T_ = ' ' "
	If HttpSession->Tipo = 'S' //Supervisor acessa todas as informa��es da sua equipe
		If !Empty(cVendedor)
			cQry+= " WHERE E3_VEND = '"+cVendedor+"' "
		Else	
    		cQry+= " WHERE E3_VEND in "+FormatIn(HttpSession->Equipe,"|")+" "
		Endif	
	Else	
		cQry+= " WHERE E3_VEND ='"+cVendLogin+ "' "
	Endif
	cQry += " AND E3_EMISSAO between '"+cDataDe+"' and '"+cDataAte+"' "
	cQry += " AND SE3.D_E_L_E_T_ = ' ' "
	cQry := ChangeQuery(cQry)
	
	If Select("QRY") > 0
		QRY->(dbCloseArea())
	Endif	
	APWExOpenQuery(ChangeQuery(cQry),'QRY',.T.)
	
	TcSetField("QRY","E3_EMISSAO","D")
	TcSetField("QRY","E3_VENCTO","D")
	TcSetField("QRY","E1_BAIXA","D")
	TcSetField("QRY","E3_DATA","D")
	
	//Cabe�alho do grid
	cColunas+='<th>Filial</th>'
	cColunas+='<th>N�mero</th>'
	cColunas+='<th>Parcela</th>'
	cColunas+='<th>Tipo</th>'
	cColunas+='<th>Cliente</th>'
	cColunas+='<th>Pedido</th>'
	cColunas+='<th>Vencimento</th>'
	cColunas+='<th>Baixa</th>'
	cColunas+='<th>Valor</th>'
	cColunas+='<th>Valor Base</th>'
	cColunas+='<th>%</th>'
	cColunas+='<th>Comiss�o</th>'
	If HttpSession->Tipo = 'S' //Supervisor 
    	cColunas+='<th>Vendedor</th>'
	Endif
	    
	While QRY->(!Eof())
	
		If QRY->E3_TIPO = 'NCC'
			nValTit:= Posicione("SF1",1,QRY->E3_FILIAL+QRY->E3_NUM+QRY->E3_PREFIXO+QRY->E3_CODCLI+QRY->E3_LOJA,"F1_VALBRUT") * -1
		Elseif Empty(QRY->E1_NUM)
			nValTit:= Posicione("SF2",1,QRY->E3_FILIAL+QRY->E3_NUM+QRY->E3_SERIE+QRY->E3_CODCLI+QRY->E3_LOJA,"F2_VALFAT")
		Else
			nValTit:= QRY->E1_VALOR
		Endif	
		
		cItens+='<tr role="button" onclick="window.document.location='+"'#'"+';">'
		cItens+='	<td>'+QRY->E3_FILIAL+'</td>'
	    cItens+='	<td>'+trim(QRY->E3_PREFIXO)+'/'+QRY->E3_NUM+'</td>'
	    cItens+='	<td>'+QRY->E3_PARCELA+'</td>'
	    cItens+='	<td>'+QRY->E3_TIPO+'</td>'
	    cItens+='	<td>'+QRY->E3_CODCLI+"/"+E3_LOJA+" - "+Alltrim(QRY->A1_NREDUZ)+'</td>'
		cItens+='	<td>'+QRY->E3_PEDIDO+'</td>'
	    cItens+='	<td data-order="'+Iif(QRY->E3_TIPO = 'NCC','',dtos(QRY->E3_VENCTO))+'">'+DTOC(Iif(QRY->E3_TIPO = 'NCC',STOD(''),QRY->E3_VENCTO))+'</td>'  
	    cItens+='	<td data-order="'+dtos(QRY->E1_BAIXA)+'">'+DTOC(QRY->E1_BAIXA)+'</td>'  
	    cItens+='	<td>'+TransForm(nValTit,"@E 999,999,999.99")+'</td>'
	    cItens+='	<td>'+TransForm(QRY->E3_BASE,"@E 999,999,999.99")+'</td>'
	    cItens+='	<td>'+TransForm(QRY->E3_PORC,"@E 999.99")+'</td>'
	    cItens+='	<td>'+TransForm(QRY->E3_COMIS,"@E 999,999,999.99")+'</td>' 
	    If HttpSession->Tipo = 'S' //Supervisor
	    	cItens+='	<td>'+QRY->E3_VEND+' - '+Posicione("SA3",1,xFilial("SA3")+QRY->E3_VEND,"A3_NREDUZ")+'</td>'
	    Endif	
	    cItens+='</tr>'
	 
	    nTotalCom+= QRY->E3_COMIS
	 
		QRY->(dbSkip())
	End
	
	cTopo+= ' 		<br><br><br>'		
    cTopo+= '		<h3>'
    cTopo+= '		<label class="col-lg-6 control-label text-left">Total de Comiss�es: R$'+TransForm(nTotalCom,"@E 999,999,999.99")+'</label>'
    cTopo+= '		</h3>'

    cTopo+= '	</form>'
	cTopo+= '	</div>'
	cTopo+= '</div>'
	
	
	//Retorna o HTML para constru��o da p�gina 
	cHtml := H_SMSGrid()	
	
Web Extended End

Return (cHTML)