#include "PROTHEUS.CH"
#include "RWMAKE.CH"
#include "APWEBEX.CH"
#include "TOPCONN.CH"
#include "TBICONN.CH"
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ Pedidos ¦ Autor ¦ Lucilene Mendes ¦ Data ¦02.05.24 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Grid com os pedidos do cliente. ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
User Function Pedidos()
Local cHtml
Local cLink := ""
Local cLinkTot := ""
Local cEmpresa := ""
Local cDataDe := ""
Local cDataAte := ""
Local cFiltDe := ""
Local cFilAte := ""
Local cEndServ := ""
// Local cStatus := ""
Local aEmpresas := {}
Local aFiliais := {}
Local _nI := 0
Private cColunas:= ""
Private cItens := ""
Private cTopo := ""
Private cFooter := ""
Private cSite := "u_PortalLogin.apw"
Private cPagina := "Pedidos"
Private cTitle := ""
Private lTableTools:= .T.
Private lSidebar:= .F.
Private cCodLogin := ""
Private cLoginGet := ""
Web Extended Init cHtml Start U_inSite()
cVendLogin := u_GetUsrPR()
cCodLogin := U_SetParPR(cVendLogin)
If Empty(HttpSession->CodVend)
cHtml:= ''
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())), cLoginGet)
//Atualiza variáveis
cEndServ := GetMv('MV_WFBRWSR')
//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(date()-30)
cDataAte:= dtos(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))
cEmpresa:= HttpPost->filempresa
Else
//Variáveis dos input dos filtros
cFiltDe:= dtoc(date()-30)
cFilAte:= dtoc(date())
//Variáveis de filtro da query
cDataDe:= dtos(date()-30)
cDataAte:= dtos(date())
Endif
//Filtros
cTopo:= '
'
// Busca as notas fiscais
cQry := " SELECT DISTINCT C5_FILIAL, C5_NUM, C5_CLIENTE, C5_LOJACLI, A1_NREDUZ, A1_EMAIL, C5_EMISSAO, C5_VEND1 VEND, SUM(C6_VALOR) VALOR, C5_NOTA, C5_SERIE, SC5.R_E_C_N_O_ RECSC5, "
cQry += " CASE "
cQry += " WHEN C5_LIBEROK = '' AND C5_NOTA = '' AND C5_BLQ = '' AND SC5.R_E_C_D_E_L_ = 0 THEN 'ABERTO' "
cQry += " WHEN C5_LIBEROK <> '' AND C5_NOTA = '' AND C5_BLQ = '' AND SC5.R_E_C_D_E_L_ = 0 THEN 'LIBERADO' "
cQry += " WHEN C5_BLQ = '1' AND SC5.R_E_C_D_E_L_ = 0 THEN 'BLOQUEADO POR REGRA' "
cQry += " WHEN C5_BLQ = '2' AND SC5.R_E_C_D_E_L_ = 0 THEN 'BLOQUEADO' " //BLOQUEADO POR VERBA
cQry += " WHEN C5_NOTA <> '' AND SC5.R_E_C_D_E_L_ = 0 THEN 'FATURADO' "
cQry += " WHEN SC5.R_E_C_D_E_L_ <> 0 THEN 'CANCELADO' "
cQry += " ELSE 'ABERTO' "
cQry += " END AS C5_STATUS "
cQry += " FROM "+RetSqlName("SC5")+" SC5 "
cQry += " INNER JOIN "+RetSqlName("SA1")+" SA1 ON A1_FILIAL = '"+xFilial("SA1")+"' AND SA1.A1_COD = SC5.C5_CLIENTE AND SA1.A1_LOJA = SC5.C5_LOJACLI AND SA1.D_E_L_E_T_ = ' ' "
cQry += " INNER JOIN "+RetSqlName("SC6")+" SC6 ON C6_FILIAL = C5_FILIAL AND C6_NUM = C5_NUM AND SC6.D_E_L_E_T_ = ' ' "
cQry += " WHERE " // AND C5_FILIAL = '"+xFilial("SF2")+"'
cQry += " C5_CLIENTE = A1_COD AND C5_LOJACLI = A1_LOJA "
If !Empty(cEmpresa)
cQry += " AND SUBSTRING(C5_FILIAL,1,2) = '"+cEmpresa+"' "
Endif
cQry += " AND C5_TIPO = 'N' "
cQry += " AND C5_EMISSAO between '"+cDataDe+"' and '"+cDataAte+"' "
cQry += " AND SC5.D_E_L_E_T_ = ' ' "
cQry += " GROUP BY C5_FILIAL, C5_NUM, C5_CLIENTE, C5_LOJACLI, A1_NREDUZ, A1_EMAIL, C5_EMISSAO, C5_VEND1, C5_NOTA, C5_SERIE, C5_LIBEROK, C5_BLQ, C5_STATUS, SC5.R_E_C_N_O_, SC5.R_E_C_D_E_L_ "
cQry += " ORDER BY C5_NUM, C5_EMISSAO "
If Select("QRY") > 0
QRY->(dbCloseArea())
Endif
APWExOpenQuery(ChangeQuery(cQry),'QRY',.T.)
TcSetField("QRY","C5_EMISSAO","D")
//Cabeçalho do grid
cColunas+='Empresa | '
cColunas+='Pedido | '
cColunas+='Emissão | '
cColunas+='Cliente | '
cColunas+='Nome Fantasia | '
cColunas+='Valor | '
cColunas+='Nota Fiscal | '
cColunas+='Série | '
cColunas+='Status | '
// If HttpSession->Tipo = 'S' //Supervisor
// cColunas+='Vendedor | '
// Endif
aStatus:= StrTokArr(Posicione('SX3',2,'C5_STATUS','X3CBox()'),";")
While QRY->(!Eof())
cLink:= "U_MntPed.apw?PR="+cCodLogin+"&rec="+cValtoChar(QRY->RECSC5)"
cLinkTot:='onclick="window.document.location='+"'"+cLink+"&opc=view'"+';"'
cItens+=''+CRLF
cItens+=' '+QRY->C5_FILIAL+' | '
cItens+=' '+QRY->C5_NUM+' | '
cItens+=' '+DTOC(QRY->C5_EMISSAO)+' | '
cItens+=' '+QRY->C5_CLIENTE+'/'+QRY->C5_LOJACLI+' | '
cItens+=' '+Alltrim(QRY->A1_NREDUZ)+' | '
cItens+=' '+Transform(QRY->VALOR,PesqPicT("SF2","F2_VALMERC"))+' | '
cItens+=' '+QRY->C5_NOTA+' | '
cItens+=' '+QRY->C5_SERIE+' | '
// nPosStatus:= aScan(aStatus,{|x| Left(x,2)== QRY->C5_STATUS})
// If nPosStatus > 0
// cStatus:= Substr(aStatus[nPosStatus],4)
// Else
// cStatus:= ""
// Endif
// cItens+=' '+cStatus+' | '
cItens+=' '+QRY->C5_STATUS+' | '
cItens+=' '
// If cStatus = "00" .or. cStatus = ""
cItens+=' '
cItens+=' '
// Endif
cItens+=' | '
// If QRY->C5_STATUS = "A"
// cItens+=' '
// cItens+=' '
// EndIf
cItens+='
'+CRLF
QRY->(dbSkip())
End
//Retorna o HTML para construção da página
cHtml := H_SMSGrid()
Web Extended End
Return (cHTML)