Você está na página 1de 17

Sub ExibeRegraAprovacao()

Dim LeAprovador, AprovadoresMensagem, nIndiceLinhas


Dim rsRegraPLanta,rsRegraComp,rsRegraClass
Dim rsRegraAprov
TemRegra = False
'--------------------------------------------------------------
Session("VL_Pedido") = VL_Convert
'--------------------------------------------------------------
Mercatto.BeginTrans
If trim("" & ID_RegraW_Pedido) = "" Then
'--Seleciona todas as regras
SQL = " SELECT id_regraw, nm_regraw,id_tpRegra_Regraw, id_client
e_regraw,id_planta_regraw, "
SQL = SQL & " id_Comprador_regraw,ID_GRP_Compra_RegraW,in_ativo_
regraw "
SQL = SQL & " FROM WKF_Regra "
SQL = SQL & " WHERE in_ativo_regraw = 'S'"
SQL = SQL & " AND id_tpRegra_Regraw = 2 "
SQL = SQL & " and id_cliente_regraw = " & SESSION("ID_CLI")
SQL = SQL & " Order by id_regraw "
ExecutaConsultaSQL rsRegraAprov,SQL, 0
ContRegra = 0
ContTotalregra = 0
ContRegraAtende = 0
QuantidadeRegra = 0
'Verificacao da regra que Mais atende
Do while not rsRegraAprov.EOF
If trim("" & rsRegraAprov("id_regraw")) <> RegraAtualAte
nde Then
ContTotalregra = ContTotalregra + 1
'RegraAtual = rsRegraAprov("id_planta_regraw")
ContRegraAtual = 0
QuantidadeRegra = 0
End If
TemPlanta = False
If trim("" & rsRegraAprov("id_planta_regraw"))= "S" The
n
'==================================
'--regra Planta
'==================================
SQL = " select * "
SQL = SQL & " from WKF_PARAMETRO_REGRA "
SQL = SQL & " where id_regra_ParamRegraw = " & r
sRegraAprov("id_regraw")
SQL = SQL & " and id_tipoParametro_Paramregraw =
9 "
ExecutaConsultaSQL rsRegraPLanta,SQL, 0
Do While Not rsRegraPLanta.EOF
If clng(0 & rsRegraPLanta("VL_ParamRegra
W"))= PlantaPedido Then
ContRegraAtual = ContRegraAtual
+ 1
End If
rsRegraPLanta.MoveNext
Loop
rsRegraPLanta.Close
'==================================
TemPlanta = True
QuantidadeRegra = QuantidadeRegra + 1
End If
TemComprador = False
If trim("" & rsRegraAprov("id_Comprador_regraw")) = "S"
Then
'==================================
'--regra comrpador
'==================================
SQL = " select * "
SQL = SQL & " from WKF_PARAMETRO_REGRA "
SQL = SQL & " where id_regra_ParamRegraw = " & r
sRegraAprov("id_regraw")
SQL = SQL & " and id_tipoParametro_Paramregraw =
8 "
ExecutaConsultaSQL rsRegraComp,SQL, 0
Do While Not rsRegraComp.EOF
If lcase(Trim("" & rsRegraComp("VL_Param
RegraW")))= lcase(trim(CompradorPedido)) Then
ContRegraAtual=ContRegraAtual +
1
End If
rsRegraComp.MoveNext
Loop
rsRegraComp.Close
'==================================
TemComprador = True
QuantidadeRegra = QuantidadeRegra + 1
End If

'=====================================================
'Verificando os Grupo de Compras
'=====================================================
SQL = " select COUNT(id_tipoParametro_Paramregraw) AS TO
TAL "
SQL = SQL & " from WKF_PARAMETRO_REGRA "
SQL = SQL & " where id_regra_ParamRegraw = " & rsRegraAp
rov("id_regraw")
SQL = SQL & " and id_tipoParametro_Paramregraw = 10 "
ExecutaConsultaSQL rsRegraComp,SQL, 0
IF CLNG(0 & rsRegraComp("TOTAL")) > 0 THEN
QuantidadeRegra = QuantidadeRegra + rsRegraComp(
"TOTAL")
' SQL = " SELECT COUNT(DISTINCT ID_GRPCOMPRA_GRPC
OMPRAGRUPOM) AS TOTAL "
' SQL = SQL & " FROM ITEM_PEDIDO, ITEM_MERCATTO, G
RUPO_ITEM_MERCATTO ,GRPCOMPRA_GRUPO_ITEM,WKF_PARAMETRO_REGRA "
' SQL = SQL & " WHERE ID_ITEMM_IPEDIDO = ID_ITEMM
"
' SQL = SQL & " AND ID_GRUPOM_ITEMM = ID_GRUPOM "
' SQL = SQL & " AND ID_GRUPOM = ID_GRUPOM_GRPCOMPR
AGRUPOM "
' SQL = SQL & " AND ID_GRPCOMPRA_GRPCOMPRAGRUPOM =
VL_PARAMREGRAW "
' SQL = SQL & " AND ID_REGRA_PARAMREGRAW = " & rsR
egraAprov("id_regraw")
' SQL = SQL & " AND ID_CLI_GRPCOMPRAGRUPOM = " & S
ESSION("ID_CLI")
' SQL = SQL & " AND ID_PEDIDO_IPEDIDO = " & SESSIO
N("ID_LISTA")
SQL = " SELECT COUNT(ID_GRPCOMPRA_IREQCOMPRA) AS
TOTAL "
SQL = SQL & " FROM REQUISICAO_ITEM_PEDIDO, ITEM_
REQCOMPRA,WKF_PARAMETRO_REGRA "
SQL = SQL & " WHERE 1=1"
SQL = SQL & " AND ID_REQ_IREQCOMPRA = ID_REQ_REQ
IPEDIDO "
SQL = SQL & " AND ID_IREQCOMPRA = ID_IREQ_REQIPE
DIDO "
SQL = SQL & " AND ID_GRPCOMPRA_IREQCOMPRA = VL_P
ARAMREGRAW "
SQL = SQL & " AND ID_REGRA_PARAMREGRAW = " & rsR
egraAprov("id_regraw")
SQL = SQL & " AND ID_PEDIDO_REQIPEDIDO = " & SES
SION("ID_LISTA")
ExecutaConsultaSQL rsGrpCompraPedido, SQL,0
IF CLNG(0 & rsGrpCompraPedido("TOTAL")) > 0 THEN
'Comentado por alexandre,
'verifica se a regra atende a pelo menos
1 grupo de compra.
'IF CLNG(0 & rsGrpCompraPedido("TOTAL"))
>= CLNG(0 & rsRegraComp("TOTAL")) THEN
ContRegraAtual = ContRegraAtual
+ QuantidadeRegra
'End IF

End IF
rsGrpCompraPedido.CLOSE
End If
rsRegraComp.Close

'=====================================================
'=====================================================
'Verificando os Classificadores
'=====================================================
SQL = " select * "
SQL = SQL & " from wkf_regra_classificador "
SQL = SQL & " WHERE id_tabelaClass_regraClassw = 2 "
SQL = SQL & " AND isnull(VL_Classificador_RegraClassW,''
)<>'' "
SQL = SQL & " AND ID_Regra_RegraClassW =" & rsRegraAprov
("id_regraw")
ExecutaConsultaSQL rsClass, SQL, 0
if not rsClass.EOF Then
do While not rsClass.EOF
QuantidadeRegra = QuantidadeRegra + 1
rsClass.MoveNext
Loop
SQL = " select * "
SQL = SQL & " from wkf_regra_classificador "
SQL = SQL & " inner join tabela_classificador on
id_tab_tabClass = id_tabelaClass_regraClassw "
SQL = SQL & " and id_class_tabClass = id_classif
icador_regraClassw and id_cli_tabclass = " & SESSION("ID_CLI")
SQL = SQL & " inner join valor_classificador on
id_cli_tabclass = id_cli_vclass "
SQL = SQL & " and id_tab_vclass = id_tab_tabClas
s and id_class_vclass =id_class_tabClass "
SQL = SQL & " and vl_classificador_RegraClassw =
id_VClass "
SQL = SQL & " where id_chave1_vclass = " & Sessi
on ("ID_Lista")
SQL = SQL & " and isnull(VL_Classificador_RegraC
lassW,'')<>'' "
SQL = SQL & " AND ID_Regra_RegraClassW =" & rsRe
graAprov("id_regraw")
ExecutaConsultaSQL rsRegraClass, SQL, 0

ContClassificador = 0
if not rsRegraClass.EOF Then
Do While Not rsRegraClass.EOF
'***********************************
****************************************************
'Comentado por: Pedro Relvas/Marcio
'Data: 19/05/09
'Motivo: Estava somando novamente a
variavel QuantidadeRegra, onde ja estava sendo alimentada corretamente acima.
'QuantidadeRegra = QuantidadeReg
ra + 1
'*******************************
********************************************************
ContRegraAtual = ContRegraAtual
+ 1
ContClassificador = ContClassifi
cador + 1
rsRegraClass.MoveNext
Loop

End IF
rsClass.Close
rsRegraClass.Close
End If
'=====================================================
'Se regra atende mais itens , torna-se a regra atual
if ContRegraAtual > ContRegraAtende and ContRegraAtual >
= QuantidadeRegra then
RegraAtualAtende = rsRegraAprov("id_regraw")
Session("ID_Regra") = RegraAtualAtende
ContregraAtende = ContRegraAtual
TemRegra = True
End If
rsRegraAprov.MoveNext
Loop
rsRegraAprov.Close

if not TemRegra Then


RegraAtualAtende = 0
End If
SESSION("RegraAtualAtende") = RegraAtualAtende
Else
SESSION("RegraAtualAtende") = ID_RegraW_Pedido
RegraAtualAtende = ID_RegraW_Pedido
'Response.Write ID_RegraW_ListaReqCompra
'Response.enbd
End If
'Seelciona o nivel dos aprovadores
SelecaoNivelAprovadores

'Selecionando os aprovadores
if not RsAprov.EOF then
if not IsNull(RsAprov("NivelMax")) then
iNiv_Aprov = RsAprov("NivelMax")
SESSION("iNiv_Aprov") = iNiv_Aprov
'--------APROVADOR MASTER By MPN 15/08/2008
'-- IN_AprovadorMaster=Parametro_AprovadorMaster()
-identifica se o sistema está parametrizado
'-- ID_Usu_Substituido=AprovadorMaster_Lista_XXXX()
-identifica o aprovador que foi substituído pelo Master.
'-- flag_AprovMaster=AprovadorMaster_Lista_XXXX()
-identifica se o usuário logado está substituindo um do workflow pendente.
'-- STR_Usus_Master_Substitue=Consulta_Pendencia_Master(
) -Lista todos os aprovadores que o Master está substituindo.
'-- ID_Usu_Substituido=AprovadorMaster_Lista_Aprovado()
-Se o Usuário Logado está substituindo um aprovador que já aprovou.Retorna Usuario sub
stituido.
Parametro_AprovadorMaster
if IN_AprovadorMaster then
AprovadorMaster_Lista_SimAprov
end if

' SE Param AprovMAster ligado e se está substituindo um ap


rovador pendente no workflow ,
if IN_AprovadorMaster AND flag_AprovMaster then
Aprovador = "S"
else
'Verificando se usuario Corrente é o aprovador atu
al ou tem limite de envio.
SQL = "SELECT ID_Usu, NM_Usu, ID_Usu_Solic_Aprov
PEdido,VL_GrupoAprovW, IN_Aprov_AprovPedido "
SQL = SQL & " FROM aprovacao_Pedido "
SQL = SQL & " INNER JOIN Usuario ON ID_Usu = ID_
Usu_AprovPEdido "
SQL = SQL & " INNER JOIN Pedido on id_Pedido = i
d_Pedido_aprovPedido "
SQL = SQL & " INNER JOIN WKF_regra on ID_Cliente
_RegraW = id_comp_Pedido and id_RegraW = " & RegraAtualAtende
SQL = SQL & " INNER join WKF_Regra_Grupo on id_r
egra_regGrupo = id_Regraw "
SQL = SQL & " INNER join WKF_Grupo on id_GrupoW
= id_Grupo_regGrupo "
SQL = SQL & " INNER JOIN WKF_Grupo_Aprovacao ON
ID_grupoW_GrupoAprovW = id_GrupoW "
SQL = SQL & " WHERE ID_Pedido_AprovPedido = " &
Session("ID_Lista")
SQL = SQL & " AND ID_Usu_AprovPedido = ID_UsuApr
ov_GrupoAprovW "
SQL = SQL & " AND ID_Usu_AprovPedido = '" & Sess
ion("ID_Usu") & "' "
SQL = SQL & " AND NU_NIV_GrupoAprovW = " & iNiv_
Aprov
'SQL = SQL & " AND IN_APROV_AprovPedido = 'P'"
'Response.Write sql
ExecutaConsultaSQL LeAprovador, SQL, 0
Aprovador = "N"
'AprovouPedido = "N"
If Not (LeAprovador.EOF and LeAprovador.BOF) The
n
Aprovador = "S"
'If trim(LeAprovador("IN_Aprov_AprovPedi
do")) ="S" Then
'AprovouPedido = "S"
'End If
End If
LeAprovador.Close
end if
'--------APROVADOR MASTER By MPN 15/08/2008
'-- IN_AprovadorMaster=Parametro_AprovadorMaster()
-identifica se o sistema está parametrizado
'-- ID_Usu_Substituido=AprovadorMaster_Lista_XXXX()
-identifica o aprovador que foi substituído pelo Master.
'-- flag_AprovMaster=AprovadorMaster_Lista_XXXX()
-identifica se o usuário logado está substituindo um do workflow pendente.
'-- STR_Usus_Master_Substitue=Consulta_Pendencia_Master(
) -Lista todos os aprovadores que o Master está substituindo.
'-- AprovadorMaster_Lista_Aprovado()
-Se o Usuário Logado está substituindo um aprovador que já aprovou.
'AprovadorMaster_Lista_Aprovado
dim ID_Usuario_Subst_Master
if IN_AprovadorMaster AND flag_AprovMaster then
ID_Usuario_Subst_Master = ID_Usu_Substituido
else
ID_Usuario_Subst_Master = Session("ID_Usu")
end if
SQL = "SELECT Lower(ID_Usu) as ID_Usu, NM_Usu, VL_GrupoA
provW,IN_APROV_AprovPedido "
SQL = SQL & " FROM WKF_Grupo_Aprovacao "
SQL = SQL & " INNER JOIN USUARIO ON ID_UsuAprov_GrupoApr
ovW = ID_USU "
SQL = SQL & " INNER JOIN WKF_Grupo ON ID_grupoW_GrupoApr
ovW = id_GrupoW "
SQL = SQL & " INNER join WKF_Regra_Grupo on id_GrupoW =
id_Grupo_regGrupo "
SQL = SQL & " INNER join WKF_regra on id_regra_regGrupo
= id_Regraw "
SQL = SQL & " INNER JOIN aprovacao_Pedido on id_usu_Apro
vPedido = id_USUAprov_GrupoAprovW "
SQL = SQL & " WHERE id_RegraW = " & RegraAtualAtende
SQL = SQL & " AND ID_Cliente_RegraW =" & SESSION("ID_CLI
")
SQL = SQL & " AND ID_USU = '" & ID_Usuario_Subst_Master
& "' "
SQL = SQL & " AND ID_PEdido_APROVPedido =" & SESSION("ID
_LISTA")
ExecutaConsultaSQL LeAprovador, SQL, 0
ExibeEnviar= false
If Not LeAprovador.EOF Then
TipoAprov = LeAprovador("IN_APROV_AprovPedido")
end If
'Verifica se o ultimo aprovador esta logado
Verifica_Ultimo_Aprovador
'Se for o ultimo aprovador e a flag estiver S, ou se for
o comprador que esta logado
'A variável que contem se o aprovador logado é o ultimo é a IN
_Ultimo_Aprovador_Logado e não a
'IN_Ultimo_Aprovador.
if ((IN_Ultimo_Aprovador_Logado and PermiteEnviar and no
t Verifica_Usu_Comprador) or Verifica_Usu_Comprador and clng(ID_Status_Pedido) =
2 _
or Verifica_GrpCompra and clng(ID_Status_Pedido) = 2) t
hen 'IN_Ultimo_Aprovador and clng(ID_Status_Pedido) = 2) then
ExibeEnviar = true
end if
Else
'LIberando o botao enviar caso o comprador seja aprovador.
SQL = "SELECT ID_Usu, NM_Usu, VL_GrupoAprovW,ID_ContForn_Pedido
"
SQL = SQL & " FROM WKF_Grupo_Aprovacao "
SQL = SQL & " INNER JOIN USUARIO ON ID_UsuAprov_GrupoAprovW = ID
_USU "
SQL = SQL & " INNER JOIN WKF_Grupo ON ID_grupoW_GrupoAprovW = id
_GrupoW "
SQL = SQL & " INNER join WKF_Regra_Grupo on id_GrupoW = id_Grupo
_regGrupo "
SQL = SQL & " INNER join WKF_regra on id_regra_regGrupo = id_Reg
raw "
SQL = SQL & " INNER JOIN Pedido on id_usu_Pedido = ID_UsuAprov_G
rupoAprovW "
SQL = SQL & " WHERE id_RegraW = " & RegraAtualAtende
SQL = SQL & " AND ID_Cliente_RegraW =" & SESSION("ID_CLI")
SQL = SQL & " AND ID_USU = '" & Session("ID_Usu") & "' "
SQL = SQL & " AND ID_Pedido =" & SESSION("ID_LISTA")
ExecutaConsultaSQL LeAprovador, SQL, 0
'Response.Write sql & "<<<<<<<<----"
if Not LeAprovador.EOF Then
If ((LeAprovador("ID_ContForn_Pedido") <> "" and Verific
a_AprovContrato and not isnull(LeAprovador("ID_ContForn_Pedido"))) and ID_Statu
s_Pedido <> 3 and ID_Status_Pedido <> 1) _
OR (clng(ID_Status_Pedido) = 2 _
Or ((ID_Status_Pedido = 2 and LeAprovad
or("ID_Usu") = Session("ID_USU") _
Or ( ID_Status_Pedido = 0 _
And cdbl(0 & LeAprovador("VL_GrupoAprovW
")) >= cdbl(0 & VL_Convert) ) ) _
Or (Aprovador = "S" And cdbl(0 & LeAprov
ador("VL_GrupoAprovW")) >= cdbl(0 & VL_Convert) _
and ID_Status_Pedido = 1 ) ) ) Then
ExibeEnviar = true
End If
End If

End If
LeAprovador.Close
end If
RsAprov.Close
'Exibindo Aprovadores
SQL = "SELECT Aprov.ID_Usu, Aprov.NM_Usu , IN_Aprov_AProvPedido, Data =
CONVERT(Char(10),DT_Aprov_AprovPedido,103), "
SQL = SQL & " Hora = CONVERT(Char(5),DT_Aprov_AprovPedido,108), ID_Usu_
Solic_AprovPedido, IN_Mensagem_AprovPedido, "
SQL = SQL & " Solic.ID_Usu AS ID_Solic, Solic.NM_Usu AS NM_Solic ,IN_APR
OV_MASTER_APROVPEDIDO,"
SQL = SQL & " (Select nm_usu from usuario where id_usu=ID_USU_APROV_MAST
ER_APROVPEDIDO) as NM_USU_APROV_MASTER_APROVPEDIDO "
SQL = SQL & " FROM Aprovacao_Pedido "
SQL = SQL & " INNER JOIN Pedido ON Id_Pedido = ID_Pedido_AProvPedido "
SQL = SQL & " INNER JOIN Usuario Aprov ON Aprov.ID_Usu = ID_Usu_AprovPed
ido "
SQL = SQL & " LEFT JOIN Usuario Solic ON Solic.ID_Usu = ID_Usu_Solic_Apr
ovPedido "
SQL = SQL & " WHERE ID_Pedido_AprovPedido = " & Session("ID_Lista")
SQL = SQL & " ORDER BY DT_Aprov_AprovPedido,IN_Aprov_AProvPedido desc "

ExecutaConsultaSQL LeAprovador, SQL, 0


If Not LeAprovador.EOF Then
AprovadoresMensagem = LeAprovador.GetRows()
LeAprovador.MoveFirst
End If
%>
<table width="<%=Application("NU_Tam_Table_Html_Param")%>" border=0 clas
s="tdcolor1">
<tr>
<td align=center><h2><font color=white><%=sFormataIdioma
(Request.ServerVariables("URL"), "LBL", "lblTitWorkAprovXML", Session("strIdioma
_Usu"))%></font></H2></td>
</tr>
</table>
<table border="1" cellpadding="0" cellspacing="0" width="<%=Application(
"NU_Tam_Table_Html_Param")%>">
<tr>
<td>
<table width="100%" border="0" cellspacing="0">
<tr>
<td align=left nowrap><h3>&nbsp;</h3></td>
<td align=left nowrap><b><font face="Verdana, Ar
ial, Helvetica, sans-serif" size="1"><%=sFormataIdioma(Request.ServerVariables("
URL"), "LBL", "lblAprovadorXML", Session("strIdioma_Usu"))%></font></b></td>
<td align=center nowrap>
<%If ID_Status_Pedido <> 0 And Not (ID_Status_Pe
dido = 4 Or ID_Status_Pedido = 5) Then
If Aprovador = "S" and TipoAprov <> "P"
Then%>
<a href="javascript:Submeter('Pe
ndAprov');"><img src="/mercatto/images/botoes/tools/sinal_amarelo.gif" border=0
width="10" height="10" align="absmiddle"><b><font face="Verdana, Arial, Helvetic
a, sans-serif" size="1"><%=sFormataIdioma(Request.ServerVariables("URL"), "LBL",
"lblPendenteXML", Session("strIdioma_Usu"))%></font></b></a>
<%Else%>
<img src="/mercatto/images/botoe
s/tools/sinal_amarelo.gif" border=0 width="10" height="10" align="absmiddle"><b>
<font face="Verdana, Arial, Helvetica, sans-serif" size="1"><%=sFormataIdioma(Re
quest.ServerVariables("URL"), "LBL", "lblPendenteXML", Session("strIdioma_Usu"))
%></font></b>
<%End If
Else%>
<img src="/mercatto/images/botoes/tools/
sinal_amarelo.gif" border=0 width="10" height="10" align="absmiddle"><b><font fa
ce="Verdana, Arial, Helvetica, sans-serif" size="1"><%=sFormataIdioma(Request.Se
rverVariables("URL"), "LBL", "lblPendenteXML", Session("strIdioma_Usu"))%></font
></b>
<%End If%>
</td>
<td align=center nowrap>
<%If ID_Status_Pedido <> 0 And Not (ID_Status_Pe
dido = 4 Or ID_Status_Pedido = 5) Then
If Aprovador = "S" and TipoAprov <> "S"
Then%>
<a href="javascript:Submeter('Si
mAprov');"><img src="/mercatto/images/botoes/tools/sinal_verde.gif" border=0 wid
th="10" height="10" align="absmiddle"><b><font face="Verdana, Arial, Helvetica,
sans-serif" size="1"><%=sFormataIdioma(Request.ServerVariables("URL"), "LBL", "l
blAprovadoXML", Session("strIdioma_Usu"))%></font></b></a>
<%Else%>
<img src="/mercatto/images/botoe
s/tools/sinal_verde.gif" border=0 width="10" height="10" align="absmiddle"><b><f
ont face="Verdana, Arial, Helvetica, sans-serif" size="1"><%=sFormataIdioma(Requ
est.ServerVariables("URL"), "LBL", "lblAprovadoXML", Session("strIdioma_Usu"))%>
</font></b>
<%End If
Else%>
<img src="/mercatto/images/botoes/tools/
sinal_verde.gif" border=0 width="10" height="10" align="absmiddle"><b><font face
="Verdana, Arial, Helvetica, sans-serif" size="1"><%=sFormataIdioma(Request.Serv
erVariables("URL"), "LBL", "lblAprovadoXML", Session("strIdioma_Usu"))%></font><
/b>
<%End If%>
</td>
<td align=center nowrap>
<%
If ID_Status_Pedido <> 0 And Not (ID_Status_Ped
ido = 4 Or ID_Status_Pedido = 5) Then
If Aprovador = "S" and TipoAprov <> "R"
Then%>
<a href="javascript:Submeter('NaoAprov')
;"><img src="/mercatto/images/botoes/tools/sinal_vermelho.gif" border=0 width="1
0" height="10" align="absmiddle"><b><font face="Verdana, Arial, Helvetica, sans-
serif" size="1"><%=sFormataIdioma(Request.ServerVariables("URL"), "LBL", "lblRej
eitadoXML", Session("strIdioma_Usu"))%></font></b></a>
<%
Else%>
<img src="/mercatto/images/botoes/tools/
sinal_vermelho.gif" border=0 width="10" height="10" align="absmiddle"><b><font f
ace="Verdana, Arial, Helvetica, sans-serif" size="1"><%=sFormataIdioma(Request.S
erverVariables("URL"), "LBL", "lblRejeitadoXML", Session("strIdioma_Usu"))%></fo
nt></b>
<%
End If
Else%>
<img src="/mercatto/images/botoes/tools/
sinal_vermelho.gif" border=0 width="10" height="10" align="absmiddle"><b><font f
ace="Verdana, Arial, Helvetica, sans-serif" size="1"><%=sFormataIdioma(Request.S
erverVariables("URL"), "LBL", "lblRejeitadoXML", Session("strIdioma_Usu"))%></fo
nt></b>
<%
End If%>
</td>
<td align=center nowrap>
<%If Not (ID_Status_Pedido = 4 Or ID_Status_Pe
dido = 5) Then
iCCusto = RsPedido("ID_CCusto_Pedido")
'Seleciona o nivel dos aprovadores
SelecaoNivelAprovadores

if not IsNull(RsAprov("NivelMax")) then


iNiv_Aprov = RsAprov("NivelMax")
RsAprov.Close
'Verificando se usuario Corrente
é o aprovador atual
' SQL = " SELECT ID_Usu, NM_Usu, I
D_Usu"
SQL = " SELECT DISTINCT NU_NIV_G
rupoAprovW "
SQL = SQL & " FROM WKF_regra "
SQL = SQL & " INNER join WKF_Reg
ra_Grupo on id_regra_regGrupo = id_Regraw "
SQL = SQL & " INNER join WKF_Gru
po on id_GrupoW = id_Grupo_regGrupo "
SQL = SQL & " INNER JOIN WKF_Gru
po_Aprovacao ON ID_grupoW_GrupoAprovW = id_GrupoW "
SQL = SQL & " INNER JOIN Usuario
ON ID_Usu = ID_UsuAprov_GrupoAprovW"
SQL = SQL & " LEFT JOIN aprovaca
o_Pedido on ID_usu_aprovPedido = ID_UsuAprov_GrupoAprovW "
SQL = SQL & " and id_Pedido_apro
vPedido = " & Session("ID_Lista")
SQL = SQL & " where Id_RegraW =
" & RegraAtualAtende

'--- Aparece Link em P/ Aprovaçao


se o Usuário for o Aprovador Atual e tiver aprovado a lista
SQL = SQL & " AND ( ( ID_Usu_AP
rovPedido = '" & Session("ID_Usu") & "' "
'SQL = SQL & " AND IN_Aprov_APr
ovListaReqcompra = 'S' AND NU_NIV_GrupoAprovW = " & iNiv_Aprov & ") "
SQL = SQL & " AND IN_Aprov_APro
vPedido = 'S') "
'... Ou se Usuário estiver um nível
abaixo do Aprovador atual
SQL = SQL & " OR ( ( id_usuApro
v_GrupoAprovW = '" & Session("ID_Usu") & "'"
SQL = SQL & " AND NU_NIV_GrupoA
provW = ( "
SQL = SQL & " SELECT MAX(NU_NIV_
GrupoAprovW) "
SQL = SQL & " FROM WKF_regra "
SQL = SQL & " INNER join WKF_Reg
ra_Grupo on id_regra_regGrupo = id_Regraw "
SQL = SQL & " INNER join WKF_Gru
po on id_GrupoW = id_Grupo_regGrupo "
SQL = SQL & " INNER JOIN WKF_Gru
po_Aprovacao ON ID_grupoW_GrupoAprovW = id_GrupoW"
SQL = SQL & " WHERE id_regra_reg
Grupo = " & RegraAtualAtende
SQL = SQL & " AND NU_NIV_GrupoAp
rovW < " & iNiv_Aprov & " )) "
'--- ... ou usuário Comprador soli
citante ...
SQL = SQL & " OR ( SELECT COUNT(
*) "
SQL = SQL & " FROM Pedido "
SQL = SQL & " WHERE ID_Pedido =
" & Session("ID_Lista")
SQL = SQL & " and ID_REGRAW_Pedi
do IS NULL "
SQL = SQL & " AND ID_Usu_Pedido
= '" & Session("ID_Usu") & "') > 0 ) "
SQL = SQL & " AND ( SELECT COUNT
(*) "
SQL = SQL & " FROM WKF_Regra "
SQL = SQL & " INNER join WKF_Reg
ra_Grupo on id_regra_regGrupo = id_Regraw "
SQL = SQL & " INNER join WKF_Gru
po on id_GrupoW = id_Grupo_regGrupo "
SQL = SQL & " INNER JOIN WKF_Gru
po_Aprovacao ON ID_grupoW_GrupoAprovW = id_GrupoW "
SQL = SQL & " INNER JOIN Aprovac
ao_Pedido ON id_UsuAprov_GrupoAprovW = ID_Usu_AProvPedido "
SQL = SQL & " AND ID_Pedido_APro
vPedido = " & Session("ID_Lista")
SQL = SQL & " AND IN_Aprov_AProv
Pedido = 'P' "
SQL = SQL & " WHERE id_regra_reg
Grupo = " & RegraAtualAtende
SQL = SQL & " AND NU_NIV_GrupoAp
rovW = " & iNiv_Aprov & ") > 0 ) "

ExecutaConsultaSQL RsAprov, SQL,


0
'Verifica se o ultimo aprovador
esta logado
Verifica_Ultimo_Aprovador
'A variável que contem se o aprova
dor logado é o ultimo é a IN_Ultimo_Aprovador_Logado e não a
'IN_Ultimo_Aprovador.
'-------------------------------
------------------
'Modificado por Gilberto Casado.
'Adicionada uma validação status do
pedido.
'Data: 12/03/2009
'if (not RsAprov.EOF and not IN_
Ultimo_Aprovador_Logado and TipoAprov <> "P") and ID_Status_Pedido <> 3 then
'-------------------------------
------------------
if not (RsAprov.EOF and RsAprov.
BOF) and not IN_Ultimo_Aprovador_Logado and TipoAprov <> "P" then%>
<a href="javascript:Subm
eter('Para Aprovacao')"><img src="/mercatto/images/botoes/tools/sinal_cinza.gif"
border=0 width="10" height="10" align="absmiddle"><b><font face="Verdana, Arial
, Helvetica, sans-serif" size="1"><%=sFormataIdioma(Request.ServerVariables("URL
"), "LBL", "lblPAprovacaoXML", Session("strIdioma_Usu"))%></font></b></a><%
else%>
<img src="/mercatto/imag
es/botoes/tools/sinal_cinza.gif" border=0 width="10" height="10" align="absmiddl
e"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><%=sFormataIdi
oma(Request.ServerVariables("URL"), "LBL", "lblPAprovacaoXML", Session("strIdiom
a_Usu"))%></font></b>
<%end If
RsAprov.Close
elseIf RegraAtualAtende = 0 Then%>
<img src="/mercatto/images/botoe
s/tools/sinal_cinza.gif" border=0 width="10" height="10" align="absmiddle"><b><f
ont face="Verdana, Arial, Helvetica, sans-serif" size="1"><%=sFormataIdioma(Requ
est.ServerVariables("URL"), "LBL", "lblPAprovacaoXML", Session("strIdioma_Usu"))
%></font></b><%
else%>
<a href="javascript:Submeter('Pa
ra Aprovacao')"><img src="/mercatto/images/botoes/tools/sinal_cinza.gif" border=
0 width="10" height="10" align="absmiddle"><b><font face="Verdana, Arial, Helvet
ica, sans-serif" size="1"><%=sFormataIdioma(Request.ServerVariables("URL"), "LBL
", "lblPAprovacaoXML", Session("strIdioma_Usu"))%></font></b></a><%
end If
else%>
<img src="/mercatto/images/botoes/tools/
sinal_cinza.gif" border=0 width="10" height="10" align="absmiddle"><b><font face
="Verdana, Arial, Helvetica, sans-serif" size="1"><%=sFormataIdioma(Request.Serv
erVariables("URL"), "LBL", "lblPAprovacaoXML", Session("strIdioma_Usu"))%></font
></b>
<%End If%>
</td>
<td align=center nowrap>
<%If ID_Status_Pedido = 1 Then
'if IN_AprovadorMaster then
' if not LeAprovador.EOF then
'Verificando se eh o apr
ovador master que esta logado para liberar o link de MENSAGEM
' SQL = "select * from usu
ario_Master where ID_USU_USUMaster = '" & LeAprovador("NM_Solic") & "'"
' ExecutaConsultaSQL RsFla
gAprovMaster, SQL, 0
' if not RsFlagAprovMaster
.EoF then
' if RsFlagAprovMa
ster("ID_USU_APROV_MASTER_UsuMaster") = Session("ID_USU") then
' Aprovado
rMaster = true
' else
' Aprovado
rMaster = false
' end if
' else
' AprovadorMaster
= false
' end if
' else
' AprovadorMaster = false
' end if
'else
' AprovadorMaster = false
'end if
'If Aprovador = "S" or AprovadorMaster T
hen%>
<input type="hidden" name="UsuSolAprov"
value="<%=LeAprovador("ID_Usu_Solic_AprovPedido")%>">
<a name="TabAprovacao" href="javascript:
S_ExibeTela_X(TelaAprovacao,getOffsetTop(TabAprovacao))"><img src="/mercatto/ima
ges/botoes/tools/sinal_azul.gif" border=0 width="10" height="10" align="absmiddl
e"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><%=sFormataIdi
oma(Request.ServerVariables("URL"), "LBL", "lblMensagemXML", Session("strIdioma_
Usu"))%></font></b></a>
<div id="TelaAprovacao" style="position:
absolute; left:10px; top:80px; z-index:1; overflow: auto; visibility: hidden; wi
dth: 350px; height: 201px">
<table width="100%" border="0" bgcolor
="#999999" height="200">
<tr valign="top">
<td>
<table width="100%" border="0" c
ellspacing="0" cellpadding="0" height="100%" align="center" name="Borda" bgcolor
="#FFFFFF">
<tr bgcolor="#E6E6E6" va
lign="middle">
<td height="20" colspa
n=2 align=center><h2><%=sFormataIdioma(Request.ServerVariables("URL"), "LBL", "l
blEnviaMensXML", Session("strIdioma_Usu"))%></h2></td>
</tr>
<tr>
<td height="7" colspan=2 nowra
p><img src="../../../../imagens/one_pix2.gif" width="1" height="7"></td>
</tr>
<tr>
<td width="30%" Style="p
adding-left:3px"><b><%=sFormataIdioma(Request.ServerVariables("URL"), "LBL", "lb
lUsuarioXML", Session("strIdioma_Usu"))%></b></td>
<td width="70%">
<select name="Ap
rovador" size="3" multiple style="width=220">
<%
If Trim("" & LCa
se(rsPedido("ID_Usu_Pedido"))) <> Trim("" & LCase(Session("ID_Usu"))) Then%>
<option value="<
%=rsPedido("ID_Usu_Pedido")%>"><%=rsPedido("NM_Usu")%></option>
<%
End If
For nIndiceLinha
s = 0 To UBound(AprovadoresMensagem, 2)
If Trim(
"" & LCase(AprovadoresMensagem(0, nIndiceLinhas))) <> Trim("" & LCase(Session("I
D_Usu"))) And _
Trim(
"" & LCase(AprovadoresMensagem(0, nIndiceLinhas))) <> Trim("" & LCase(rsPedido("
ID_Usu_Pedido"))) Then%>
<option value="<
%=AprovadoresMensagem(0, nIndiceLinhas)%>"><%=Trim(AprovadoresMensagem(1, nIndic
eLinhas))%></option>
<%
End If
Next%>
</select>
</td>
</tr>
<tr>
<td width="30%" Style=
"padding-left:3px"><b><%=sFormataIdioma(Request.ServerVariables("URL"), "LBL", "
lblTituloXML", Session("strIdioma_Usu"))%></b></td>
<td width="70%">
<input type="tex
t" name="Titulo" size="33" maxlength="40" onKeyUp="TrocaAspa(Titulo)" onBlur="Tr
ocaAspa(Titulo)" value="<%=sFormataIdioma(Request.ServerVariables("URL"), "LBL",
"lblOrdCompXML", Session("strIdioma_Usu")) & " " & Session ("NM_Lista")%>">
</td>
</tr>
<tr>
<td width="30%" Style=
"padding-left:3px"><b><%=sFormataIdioma(Request.ServerVariables("URL"), "LBL", "
lblTextoXML", Session("strIdioma_Usu"))%></b></td>
<td width="70%">
<textarea name="Descrica
o" style="width=223px" rows="3" onKeyUp="TrocaAspa(Descricao)" onBlur="TrocaAspa
(Descricao)"></textarea>
</td>
</tr>
<tr>
<td colspan=2>
<div align="right"><font fac
e="Verdana, Arial, Helvetica, sans-serif" size="1">
<a href="javascript:documen
t.Exibe_Pedido.reset()"><img src="/mercatto/images/botoes/tools/limpar.gif" alig
n="absmiddle" border="0"><%=sFormataIdioma(Request.ServerVariables("URL"), "LBL"
, "lblBtLimparXML", Session("strIdioma_Usu"))%></a>
<a href="javasc
ript:Submeter('EnvAprov');"><img src="/mercatto/images/botoes/tools/email.gif" a
lign="absmiddle" border="0"><%=sFormataIdioma(Request.ServerVariables("URL"), "L
BL", "lblBtEnviarXML", Session("strIdioma_Usu"))%></a>
<a href="javascript://" onC
lick="S_EscondeTela(TelaAprovacao)"><img src="/mercatto/images/botoes/tools/fech
ar.gif" align="absmiddle" border="0"><%=sFormataIdioma(Request.ServerVariables("
URL"), "LBL", "lblBtFecharXML", Session("strIdioma_Usu"))%></a>&nbsp;</font>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<%Else%>
<img src="/mercatto/images/botoes/tools/
sinal_azul.gif" border=0 width="10" height="10" align="absmiddle"><b><font face=
"Verdana, Arial, Helvetica, sans-serif" size="1"><%=sFormataIdioma(Request.Serve
rVariables("URL"), "LBL", "lblMensagemXML", Session("strIdioma_Usu"))%></font></
b>
<%End If%>
</td>
<td align=center><b><font face="Verdana, Arial,
Helvetica, sans-serif" size="1"><%=sFormataIdioma(Request.ServerVariables("URL")
, "LBL", "lblDataHoraXML", Session("strIdioma_Usu"))%>&nbsp;&nbsp;</font></b></t
d>
</tr>
<%
Do While Not LeAprovador.EOF%>
<tr bgcolor="#CCCCCC">
<%if LeAprovador("IN_APROV_MASTER_APROVPEDIDO")="S" then%>
<td width=2% nowrap><h3><img src="/mercatto/images/botoes/tools/
AprovadorMaster.gif" border=0 align="absmiddle" alt="Aprovador Master: <%=LeApro
vador("NM_USU_APROV_MASTER_APROVPEDIDO")%>"></h3></td>
<%else%>
<td width=2% nowrap><h3><img src="/mercatto/images/botoes/tools/
solicitante.gif" border=0 align="absmiddle" alt="Solicitante: <%=LeAprovador("NM
_Solic")%>"></h3></td>
<%end if%>
<td width=25% nowrap><h3><%=LeAprovador("NM_Usu")%></h3>
</td>
<td width=12% align=center>
<%
If LeAprovador("IN_Aprov_AprovPedido") = "P" Or _
IsNull(LeAprovador("IN_Aprov_AprovPedido")) Then%>
<img src="/mercatto/images/botoes/tools/sinal_am
arelo.gif" border=0 align="absmiddle">
<%
End If%>
</td>
<td width=12% align=center>
<%
If LeAprovador("IN_Aprov_AprovPedido") = "S" Then%>
<img src="/mercatto/images/botoes/tools/sinal_ve
rde.gif" border=0 align="absmiddle">
<%
End If%>
</td>
<td width=12% align=center>
<%
If LeAprovador("IN_Aprov_AprovPedido") = "N" Then%>
<img src="/mercatto/images/botoes/tools/sinal_ve
rmelho.gif" border=0 align="absmiddle">
<%
End If%>
</td>
<td width=12% align=center>
<%
If LeAprovador("IN_Aprov_AprovPedido") = "P" Then%>
<img src="/mercatto/images/botoes/tools/sinal_ci
nza.gif" border=0 align="absmiddle">
<%
End If%>
</td>
<td width=12% align=center>
<%
If LeAprovador("IN_Mensagem_AprovPedido") = "S" Then%>
<img src="/mercatto/images/botoes/tools/sinal_az
ul.gif" border=0 align="absmiddle">
<%
End If%>
</td>
<td width=13% align=center>
<h3><%=Left(FormataData(LeAprovador("Data") & " " & LeAp
rovador("Hora")),16)%></h3>
</td>
</tr>
<%
LeAprovador.MoveNext
Loop%>
<tr>
<td align=center colspan=7 nowrap><font face="Verdana, A
rial, Helvetica, sans-serif" size="1">&nbsp;</font></td>
</tr>
</table>
</td>
</tr>
</table>
<br>
<%
Mercatto.CommitTrans
End Sub