#include "PROTHEUS.CH"
#include "RWMAKE.CH"
#include "APWEBEX.CH"
#include "TOPCONN.CH"
#include "TBICONN.CH"
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ LimiteCredito ¦ Autor ¦ Lucilene Mendes ¦ Data ¦16.07.19 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Grid com lista de clientes x vendedor p consulta de credito¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
User Function LimiteCredito()
Local cHtml
Private cColunas:= ""
Private cItens := ""
Private cTopo := ""
Private cSite := "u_PortalLogin.apw"
Private cPagina := "Clientes"
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)
//Topo da janela
//Botão incluir novo cliente
/*
cTopo:= '
'
cItens+=' '+QRY->A1_COD+' | '
cItens+=' '+QRY->A1_LOJA+' | '
cItens+=' '+Transform(QRY->A1_CGC,PesqPict("SA2","A2_CGC"))+' | '
cItens+=' '+Upper(Alltrim(QRY->A1_NOME))+' | '
cItens+=' '+Upper(Alltrim(QRY->A1_NREDUZ))+' | '
cItens+=' '+Upper(Alltrim(QRY->A1_END)+" - "+Alltrim(QRY->A1_BAIRRO))+' | '
cItens+=' '+Alltrim(QRY->A1_MUN)+' | '
cItens+=' '+Alltrim(QRY->A1_EST)+' | '
cItens+=' ('+Alltrim(QRY->A1_DDD)+')'+Alltrim(QRY->A1_TEL)+' | '
cItens+=' '+Lower(Alltrim(QRY->A1_EMAIL))+' | '
cItens+=' '+dtoc(stod(QRY->A1_PRICOM))+' | '
cItens+=' '+dtoc(stod(QRY->A1_ULTCOM))+' | '
cItens+=' '+Iif(Empty(QRY->VENCTO),"0",cValtochar(dDataBase - STOD(QRY->VENCTO)))+' | '
If HttpSession->Tipo = 'S' //Supervisor acessa todas as informações da sua equipe
cItens+=' '+QRY->A1_VEND+' - '+Posicione("SA3",1,xFilial("SA3")+QRY->A1_VEND,"A3_NREDUZ")+' | '
Endif
cItens+='
'
QRY->(dbSkip())
End
//Retorna o HTML para construção da página
cHtml := H_SMSGrid()
Web Extended End
Return (cHTML)
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ ConsLmt ¦ Autor ¦ Lucilene Mendes ¦ Data ¦ 16.07.19 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Retorna o limite do cliente ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
User Function ConsLmt()
Local cHtml:= ""
Local cCliente := Alltrim(HttpPost->cliente)
Local nLimite := 0
Local nSalPed := 0
Local nSaldo := 0
Local nPrev := 0
Local nFirme := 0
Local nAtraso := 0
Local nDias := 0
Local nTitulos := 0
Web Extended Init cHtml Start U_inSite()
//Posiciona no cliente
dbSelectArea("SA1")
SA1->(dbSeek(xFilial("SA1")+cCliente))
//Busca o limite do cliente
cQry:="Select SUM(A1_LC) A1_LC, SUM(A1_SALPEDL) A1_SALPEDL "
cQry+="From "+RetSqlName("SA1")+" SA1 "
cQry+="Where A1_COD = '"+SA1->A1_COD+"' "
cQry+="And A1_LOJA = '"+SA1->A1_LOJA+"' "
cQry+="And SA1.D_E_L_E_T_ = ' ' "
If Select("QRC") > 0
QRC->(dbCloseArea())
Endif
APWExOpenQuery(cQry,'QRC',.T.)
nLimite:= QRC->A1_LC
nSalPed:= QRC->A1_SALPEDL
//Busca valor em orçamentos
cQry:= "SELECT CJ_XTPORC, SUM(CK_VALOR) VALOR FROM "+RetSqlName("SCJ")+" SCJ "
cQry+= "INNER JOIN "+RetSqlName("SCK")+" SCK ON CK_FILIAL = CJ_FILIAL AND CK_CLIENTE = CJ_CLIENT AND CK_LOJA = CJ_LOJA AND CK_NUM = CJ_NUM "
cQry+= " AND SCK.D_E_L_E_T_ = ' ' "
cQry+= "WHERE CJ_CLIENTE = '"+SA1->A1_COD+"' AND CJ_LOJA = '"+SA1->A1_LOJA+"' "
cQry+= "AND CJ_STATUS = 'A' AND SCJ.D_E_L_E_T_ = ' ' "
cQry+= "GROUP BY CJ_XTPORC "
If Select("QRL") > 0
QRL->(dbCloseArea())
Endif
APWExOpenQuery(cQry,'QRL',.T.)
While QRL->(!Eof())
If QRL->CJ_XTPORC = '2'
nPrev+= QRL->VALOR
Else
nFirme+= QRL->VALOR
Endif
QRL->(DBSkip())
End
//Busca saldo em títulos
cQry:="SELECT SUM(E1_SALDO) SALDO "
cQry+=" FROM "+RetSqlName("SE1")+" SE1 "
cQry+=" WHERE E1_CLIENTE = '"+SA1->A1_COD+"' "
cQry+=" AND E1_LOJA = '"+SA1->A1_LOJA+"' "
cQry+=" AND E1_SALDO > 0 "
cQry+=" AND E1_TIPO not in ('NCC','RA') "
cQry+=" AND SE1.D_E_L_E_T_ = ' ' "
If Select("QRS") > 0
QRS->(dbCloseArea())
Endif
APWExOpenQuery(cQry,'QRS',.T.)
nTitulos:= QRS->SALDO
nSaldo:= nLimite - (nSalPed+nTitulos)
//Busca os titulos em atraso do cliente
nDias:= GetNewPar("AA_DIASATR",1)
cQry:= " Select SUM(E1_SALDO) ATRASO from "+RetSqlName("SE1")+" SE1 "
cQry+= " Where E1_CLIENTE = '"+SA1->A1_COD+"' "
cQry+= " And E1_LOJA = '"+SA1->A1_LOJA+"' "
cQry+= " And E1_SALDO > 0 "
cQry+= " And E1_TIPO not in ('NCC','RA') "
cQry+= " And E1_VENCREA < '"+dtos(dDataBase - nDias)+"' "
cQry+= " And D_E_L_E_T_ = ' ' "
If Select("QRA") > 0
QRA->(dbCloseArea())
Endif
TcQuery cQry New Alias "QRA"
If QRA->(!Eof())
nAtraso:= QRA->ATRASO
Endif
cHtml:= Transform(nLimite,PesqPict("SA1","A1_LC"))+'|'+Transform(nSalPed,PesqPict("SA1","A1_SALPEDL"))
cHtml+='|'+Transform(nTitulos,PesqPict("SA1","A1_SALDUP"))+'|'+Transform(nSaldo,PesqPict("SA1","A1_SALDUP"))
cHtml+='|'+dtoc(SA1->A1_VENCLC)+'|'+SA1->A1_RISCO+'|'+Transform(nSalPed,PesqPict("SA1","A1_SALPED"))
cHtml+='|'+Transform(nPrev,PesqPict("SA1","A1_SALDUP"))+'|'+Transform(nFirme,PesqPict("SA1","A1_SALDUP"))
cHtml+='|'+Transform(nAtraso,PesqPict("SA1","A1_SALDUP"))+'|'+Transform(nSalPed+nTitulos,PesqPict("SA1","A1_SALDUP"))
Web Extended End
Return (cHTML)
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ EnvMsgFin ¦ Autor ¦ Lucilene Mendes ¦ Data ¦ 14.09.22 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Envia mensagem para o financeiro ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
User Function EnvMsgFin()
Local cHtml:= ""
Local cMsg:= ""
Local cDestMail:= ""
Local cDirAnexos:= '\web\PortalSMS\upload\'+dtos(dDataBase)
Local cVend:= ""
Local cMensag:= Alltrim(HttpPost->mensagem)
Local cAnexos:= Alltrim(HttpPost->anexos)
Local nRecCli:= val(Alltrim(HttpPost->cliente))
Local aAnexos:= {}
Local i:= 0
Web Extended Init cHtml Start U_inSite()
cVend := u_GetUsrPR()
cCodLogin := U_SetParPR(cVend)
HttpSession->codVend:= cVend
cDirAnexos+= +'\'+cVend+"\"
//Verifica se possui anexos
If !Empty(cAnexos)
aAnexos:= Separa(cAnexos,"|")
For i:= 1 to Len(aAnexos)
If !Empty(aAnexos[i])
aAnexos[i]:= cDirAnexos+aAnexos[i]
Endif
Next
Endif
//Posiciona no cliente
dbSelectArea("SA1")
SA1->(dbGoto(nRecCli))
//Posiciona no vendedor
dbSelectArea("SA3")
SA3->(dbSeek(xFilial("SA3")+cVend))
cMsg:= "Mensagem enviada pelo Portal do Representante.