#include "PROTHEUS.CH"
#include "RWMAKE.CH"
#include "APWEBEX.CH"
#include "TOPCONN.CH"
#include "TBICONN.CH"
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ NotasFiscais ¦ Autor ¦ Lucilene Mendes ¦ Data ¦03.12.17 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Grid com as notas fiscais do vendedor. ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
User Function NotasFiscais()
Local cHtml
Local cLink := ""
Local cCliente := ""
Local cDataDe := ""
Local cDataAte := ""
Local cFiltDe := ""
Local cEndServ := ""
Private cColunas:= ""
Private cItens := ""
Private cTopo := ""
Private cSite := "u_PortalLogin.apw"
Private cPagina := "Notas Fiscais"
Private cTitle := ""
Private lTableTools:= .T.
Private lSidebar:= .F.
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:= ''
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)
//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()-10)
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))
cCliente:= HttpPost->cliente
Else
//Variáveis dos input dos filtros
cFiltDe:= dtoc(date()-10)
cFilAte:= dtoc(date())
//Variáveis de filtro da query
cDataDe:= dtos(date()-10)
cDataAte:= dtos(date())
cCliente:= '1'
Endif
//Filtros
cTopo:= '
'
// Busca as notas fiscais
cQry := " SELECT DISTINCT F2_FILIAL, F2_FLBASE, F2_DOC, F2_SERIE, F2_CLIENTE, F2_LOJA, A1_NREDUZ, A1_EMAIL, F2_EMISSAO, F2_VALBRUT, F2_VALFAT, F2_CHVNFE, D2_PEDIDO, F2_VEND2 VEND, F2_ESPECIE, SF2.R_E_C_N_O_ RECSF2 "
cQry += " FROM "+RetSqlName("SF2")+" SF2 "
cQry += " INNER JOIN "+RetSqlName("SA1")+" SA1 ON A1_FILIAL = '"+xFilial("SA1")+"' AND A1_COD = F2_CLIENTE AND A1_LOJA = F2_LOJA AND SA1.D_E_L_E_T_ = ' ' "
cQry += " INNER JOIN "+RetSqlName("SD2")+" SD2 ON D2_FILIAL = F2_FILIAL AND D2_DOC = F2_DOC AND D2_SERIE = F2_SERIE AND SD2.D_E_L_E_T_ = ' ' "
cQry += " WHERE " // AND F2_FILIAL = '"+xFilial("SF2")+"'
If HttpSession->Tipo = 'S' //Supervisor acessa todas as informações da sua equipe
cQry+= " F2_VEND2 in "+FormatIn(HttpSession->Equipe,"|")+" "
Else
cQry += " F2_VEND2 = '"+cVendLogin+ "' "
Endif
cQry += " AND F2_TIPO = 'N' "
cQry += " AND F2_EMISSAO between '"+cDataDe+"' and '"+cDataAte+"' "
cQry += " AND SF2.D_E_L_E_T_ = ' ' "
cQry += " ORDER BY F2_DOC, F2_EMISSAO "
If Select("QRY") > 0
QRY->(dbCloseArea())
Endif
APWExOpenQuery(ChangeQuery(cQry),'QRY',.T.)
TcSetField("QRY","F2_EMISSAO","D")
//Cabeçalho do grid
cColunas+='Filial | '
cColunas+='Tipo Operação | '
cColunas+='Nota Fiscal | '
cColunas+='Série | '
cColunas+='Emissão | '
cColunas+='Cliente | '
cColunas+='Nome | '
cColunas+='Valor | '
cColunas+='Pedido | '
If HttpSession->Tipo = 'S' //Supervisor
cColunas+='Vendedor | '
Endif
cColunas+=' | '
While QRY->(!Eof())
//Atualiza os controles do grid
cLink:= "U_ViewNF.apw?PR="+cCodLogin+"&rec="+cValtoChar(QRY->RECSF2)"
cLink+= ' onclick="window.document.location='+"'"+cLink+"&opc=view'"+';"'
cItens+=''+CRLF
cItens+=' '+QRY->F2_FILIAL+' | '
cItens+=' '+X3COMBO("C5_TIPOLUM",Posicione("SC5",1,Iif(Empty(QRY->F2_FLBASE),QRY->F2_FILIAL,QRY->F2_FLBASE)+QRY->D2_PEDIDO,"C5_TIPOLUM"))+' | '
cItens+=' '+QRY->F2_DOC+' | '
cItens+=' '+QRY->F2_SERIE+' | '
cItens+=' '+DTOC(QRY->F2_EMISSAO)+' | '
cItens+=' '+QRY->F2_CLIENTE+'/'+QRY->F2_LOJA+' | '
cItens+=' '+Alltrim(QRY->A1_NREDUZ)+' | '
cItens+=' '+Transform(QRY->F2_VALBRUT,PesqPicT("SF2","F2_VALBRUT"))+' | '
cItens+=' '+QRY->D2_PEDIDO+' | '
If HttpSession->Tipo = 'S' //Supervisor
cItens+=' '+QRY->VEND+' - '+Posicione("SA3",1,xFilial("SA3")+QRY->VEND,"A3_NREDUZ")+' | '
Endif
cItens+=' '
If !Empty(QRY->F2_CHVNFE) .and. QRY->F2_ESPECIE = "SPED"
// cItens+=' '
cItens+=' A1_EMAIL)+"'"+');">'
cItens+=' '
cItens+=' '
cItens+=' '
cItens+=' '
cItens+=' '
cItens+=' '
cItens+=' '
cItens+=' '
Endif
cItens+=' | '
cItens+='
'+CRLF
QRY->(dbSkip())
End
cItens+= montarForm("Danfe", "MailNF.apw?PR="+cCodLogin)
// cItens+= staticcall(orcamento, montarForm, "Danfe", "MailNF.apw")
//Retorna o HTML para construção da página
cHtml := H_SMSGrid()
Web Extended End
Return (cHTML)
// Montar o formulário para mandar por e-mail
static function montarForm(cTitulo, cSubm)
Local cRet:=""
cRet+= ''+CRLF
cRet+= ' '+CRLF
cRet+= '
'+CRLF
cRet+= ' '+CRLF
cRet+= ' Enviar '+cTitulo+' por e-mail
'+CRLF
cRet+= ' '+CRLF
cRet+= ' '+CRLF
cRet+= '
'+CRLF
cRet+= '
'+CRLF
cRet+= ' '+CRLF
cRet+= ' '+CRLF
cRet+= '
'+CRLF
conout(cret)
return cRet