#include "PROTHEUS.CH"
#include "RWMAKE.CH"
#include "APWEBEX.CH"
#include "TOPCONN.CH"
#include "TBICONN.CH"
#DEFINE SMSDEBUG
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ MntOpt ¦ Autor ¦ Lucilene Mendes ¦ Data ¦28.08.17 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Manutenção de Oportunidade de Venda. ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
User Function MntOpt()
Local cHtml
Local nOpc := 0
Local nRecAD1 := 0
Local F := 0
local i
Private aAnTemp := {}
Private cFilVen := ""
Private cCodLogin := ""
Private cVendLogin := ""
Private cVendedor := ""
Private cSite := "u_PortalLogin.apw"
Private cPagina := "Homologação"
Private cTitle := "Portal SMS"
Private cMenus := ""
Private cAnexos := ""
Private cDirOpt := "anexosPortal\oportunidade\"
Private cDirPortal := ""
Private cEndServ := "" // Endereço do servidor da pagina de Portal
Private cItensHid := ""
Private cBotoes := ""
Private cBtAddAnex := ""
Private cCodOpt := ""
Private cDescri := ""
Private cComplem := ""
Private cCliente := ""
Private cContato := ""
Private cEmail := ""
Private cParceiro := ""
Private cUF := ""
Private cCidade := ""
Private cEndereco := ""
Private cRegional := ""
Private cInicio := ""
Private cFim := ""
Private cNotas := ""
Private cStatus := ""
Private cEspecif := ""
Private cContEsp := ""
Private cStatusHom := ""
Private cRT := ""
Private cSegmento := ""
Private cNivel := ""
Private cEncer := ""
Private cMotivo := ""
Private cOptMun := ""
Private lNewOpt := .F.
Private lEdit := .F.
Private lCopy := .F.
Private aStatus := {}
Private aStHom := {}
Private aSegmen := {}
Private aNivel := {}
Private aAnexos := {}
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())), cVendLogin)
//Atualiza as variáveis
cEndServ := GetMv('MV_WFBRWSR')
cCodVend := cVendLogin
cNomeVend:= HttpSession->Nome
cOpcao := HttpGet->opc
if !empty(HttpGet->rec)
nRecAD1 := val(HttpGet->rec)
EndIf
lEdit := .F.
lDele := .F.
Do Case
Case cOpcao == "view"
nOpc:= 2
cPagina += " - Visualizar"
Case cOpcao == "edit"
nOpc:= 4
cPagina += " - Alterar"
lEdit := .T.
Case cOpcao == "dele"
nOpc:= 5
cPagina += " - Excluir"
lDele := .T.
Case cOpcao == "copy"
nOpc = 3
cPagina += " - Copiar"
lEdit := .T.
lCopy := .T.
EndCase
//Posiciona no Orçamento
If !Empty(nRecAD1)
dbSelectArea("AD1")
AD1->(dbGoTo(nRecAD1))
//Troca de filial
u_PTChgFil(AD1->AD1_FILIAL)
dbSelectArea("AD1")
AD1->(dbGoTo(nRecAD1))
dbSelectArea("SA1")
SA1->(DbSetOrder(1))
SA1->(dbgotop())
SA1->(dbSeek(xFilial("SA1")+AD1->AD1_CODCLI+AD1->AD1_LOJCLI))
Endif
//Filial
cCodOpt:= '
'
cDescri:= 'AD1_DESCRI)+'" '
cDescri+= Iif(!lCopy .and. !lEdit,'disabled','')+'>'
//cComplem:= 'AD1_DESCOP)+'" '
//cComplem+= Iif(!lCopy .and. !lEdit,'disabled','')+'>'
//Cliente
cCliente:=''
HttpSession->Cliente:= AD1->AD1_CODCLI+AD1->AD1_LOJCLI
//Contato
cContato:= ''
//Email
//cEmail:= ''
//Parceiro
//cParceiro:= ''
//Seleciona os estados disponíveis no combo
cUF:=''
//Cidade
cCidade:= ''
//Endereço
cEndereco:= ''
//Início
cInicio:= ''
//Fim
cDiaIni:= cvaltochar(DateDiffDay(date(),AD1->AD1_DTINI))
cFim:= ''
//Regional
cRegional:= ''
//Vendedor
cVendedor:= ''
//Especificadora
cEspecif:=''
//Contato Especificadora
cContEsp:=''
//Status Homologação
aStHom:= RetSx3Box(Posicione('SX3',2,'AD1_HOMOLO','X3CBox()'),,,1)
cStatusHom:=''
//% RT
cRT:= ''
//Segmento
aSegmen:= RetSx3Box(Posicione('SX3',2,'AD1_SEGMEN','X3CBox()'),,,1)
cSegmento:=''
//Nivel
aNivel:= RetSx3Box(Posicione('SX3',2,'AD1_NIVOPO','X3CBox()'),,,1)
cNivel:=''
//Observação Notas
//cNotas:= MSMM(AD1->AD1_CODMEM)
//Status
aStatus:= RetSx3Box(Posicione('SX3',2,'AD1_STATUS','X3CBox()'),,,1)
cStatus:=''
//cEncerramento
cEncer:= ''
//Motivo Encerramento //AD1_MEMENC AD1_MTVENC
cMotivo:= ''
//Adiciona os botões da página
If lEdit
cBotoes+=''+chr(13)+chr(10)
Elseif lDele
cBotoes+=''+chr(13)+chr(10)
Endif
cBotoes+=''+chr(13)+chr(10)
//Botão para adicionar anexos
cBtAddAnex+= ''
//Retorna o HTML para construção da página
//Seleciona as opções do combo
cNewDir := "\dirdoc_fileserver\co"+cEmpAnt+"\shared\"
cQry:= " SELECT ACB_OBJETO "
cQry+= " From "+RetSqlName("AC9")+" AC9 "
cQry+= " INNER JOIN "+RetSqlName("ACB")+" ACB ON ACB_CODOBJ = AC9_CODOBJ AND ACB_FILIAL = AC9_FILIAL "
cQry+= " Where AC9_ENTIDA = 'AD1' "
cQry+= " AND ACB.R_E_C_D_E_L_ = '0' "
cQry+= " AND AC9_CODENT = '"+AD1->AD1_NROPOR+"' "
cQry+= " AND AC9.D_E_L_E_T_ = '' "
If Select("QRM") > 0
QRM->(dbCloseArea())
Endif
APWExOpenQuery(ChangeQuery(cQry),'QRM',.T.)
While QRM->(!Eof())
aAnTemp := DIRECTORY(cNewDir+ALLTRIM(QRM->ACB_OBJETO))
For i:= 1 to Len(aAnTemp)
aadd(aAnexos,aAnTemp[i])
Next
QRM->(dbSkip())
End
QRM->(dbCloseArea())
//Localiza os arquivos para download
//Arquivos
If Len(aAnexos) > 0
cAnexos:= U_GetAnexos(aAnexos,cNewDir)
Else
cAnexos := "Sem arquivos para download."
EndIf
cHtml := H_AddOpt()
Web Extended End
Return (cHTML)
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ ExcOpt ¦ Autor ¦ Lucilene Mendes ¦ Data ¦10.12.17 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Exclui a Oportunidade ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
User Function ExcOpt()
Local cHtml
Local nOpc := 5 // 3- Incluir / 4- Alterar / 5- Excluir
Local cCliente := ""
Local cLoja := ""
Local cNumOpt := ""
Local cDirErro := "\erro\"
Private aCabAD1 :={}
Private lMsErroAuto:= .F.
Private cCodLogin := ""
Private cVendLogin:= ""
Private INCLUI:= .F.
Private ALTERA:= .F.
Web Extended Init cHtml Start U_inSite()
//Verifica se não perdeu a sessão
If type("HttpSession->CodVend") = "U" .or. Empty(HttpSession->CodVend)
conout(Procname()+"("+ltrim(str(procline()))+") *** Portal "+"Sessao encerrada")
cHtml:= ''
return cHtml
Endif
cVendLogin := u_GetUsrPR()
cCodLogin := U_SetParPR(cVendLogin)
//Variáveis do cabeçalho
cCliente:= HttpPost->AD1_CODCLI
cLoja:= HttpPost->AD1_LOJCLI
cNumOpt:= HttpPost->AD1_NROPOR
//Posiciona nas tabelas
If !Empty(cCliente)
Posicione("SA1",1,xFilial("SA1")+Alltrim(cCliente+cLoja),"A1_COD")
Endif
//Posiciona no orçamento
Posicione("AD1",1,xFilial("AD1")+cNumOpt,"AD1_NROPOR")
cFilAnt:= AD1->AD1_FILIAL
//Monta o cabeçalho
aadd(aCabAD1,{"AD1_NROPOR",cNumOpt,Nil})
aadd(aCabAD1,{"AD1_CLIENTE",SA1->A1_COD,Nil})
aadd(aCabAD1,{"AD1_LOJA", SA1->A1_LOJA ,Nil})
lMsErroAuto:= .F.
//Chama execauto para inclusão da oportunidade
If Len(aCabAD1) > 0
MSExecAuto({|x,y|FATA300(x,y)},nOpc,aCabAD1)
Else
conout(Procname()+"("+ltrim(str(procline()))+") *** Portal "+"FALHA AO EXCLUIR A OPORTUNIDADE!")
lMsErroAuto:= .T.
Endif
If lMsErroAuto
If !ExistDir(cDirErro)
MakeDir(cDirErro)
Endif
cDirErro+=dtos(date())
If !ExistDir(cDirErro)
MakeDir(cDirErro)
Endif
//Grava o erro
MostraErro(cDirErro,"erro_oportunidade_"+strtran(time(),":","")+".txt")
cHtml:= "erro"
Else
AD1->(dbGoBottom())
cHtml:= AD1->AD1_NROPOR
EndIf
Web Extended End
Return (cHTML)
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ SlvOpt ¦ Autor ¦ Lucilene Mendes ¦ Data ¦17.08.17 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Gera a oportunidade. ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
*/
User Function SlvOpt()
Local cHtml
local i
Local nOpc := 3 // 3- Incluir / 4- Alterar / 5- Excluir
Local cFilAD1 := ""
Local cNumAD1 := ""
Local cDescri := ""
Local cComplem := ""
Local cCliente := ""
Local cLoja := ""
Local cContCli := ""
Local cEmail := ""
Local cParceiro := ""
Local cUF := ""
Local cCidade := ""
Local cEndereco := ""
Local dDtInicio := ""
Local dDtTermino:= ""
Local cRegional := ""
Local cVend := ""
Local cEspecif := ""
Local cContato := ""
Local nRT := ""
Local cStatusHom:= ""
Local cSegmento := ""
Local cNivel := ""
Local cNota := ""
Local cStatus := ""
Local cMotivo := ""
Local cEncerr := ""
Local cDirOpt := "\anexosPortal\oportunidade\"
Local cDirErro := "\erro\"
Local lEnvEmail := .f.
Local aArquivos := {}
Private aCabAnexo :={}
Private aCabAD1 :={}
Private lMsErroAuto:= .F.
Private cCodLogin := ""
Private cVendLogin:= ""
Private INCLUI:= .F.
Private ALTERA:= .F.
Web Extended Init cHtml Start U_inSite()
cVendLogin := u_GetUsrPR()
cCodLogin := U_SetParPR(cVendLogin)
//Verifica se não perdeu a sessão
If type("HttpSession->CodVend") = "U" .or. Empty(HttpSession->CodVend)
conout(Procname()+"("+ltrim(str(procline()))+") *** Portal "+"Sessao encerrada")
cHtml:= ''
return cHtml
Endif
nOpc:= Val(HttpPost->OPCAO)
conout("### SlvOpt ###")
conout(nOpc)
//Variáveis do cabeçalho
If nOpc = 3
cFilAD1:= "01" //HttpPost->AD1_FILIAL
cNumAD1:= GetSXENum("AD1","AD1_NROPOR") //HttpPost->AD1_NROPOR
INCLUI:= .T.
Else
cFilAD1:= HttpPost->AD1_FILIAL
cNumAD1:= HttpPost->AD1_NROPOR
ALTERA:= .T.
Endif
cDescri:= Iif(Type("HttpPost->AD1_DESCRI") <> "U",Upper(HttpPost->AD1_DESCRI),"")
cComplem:= Iif(Type("HttpPost->AD1_DESCOP") <> "U",HttpPost->AD1_DESCOP,"")
cCliente:= Left(HttpPost->AD1_CODCLI,6)
cLoja:= Right(HttpPost->AD1_CODCLI,2)
cContCli:= Iif(Type("HttpPost->AD1_CONTCL") <> "U",HttpPost->AD1_CONTCL,"")
cEmail:= Iif(Type("HttpPost->AD1_EMAIL1") <> "U",HttpPost->AD1_EMAIL1,"")
cParceiro:= Iif(Type("HttpPost->AD1_PARC1") <> "U",HttpPost->AD1_PARC1,"")
cUF:= Alltrim(Iif(Type("HttpPost->AD1_UF") <> "U",HttpPost->AD1_UF,""))
cCidade:= Iif(Type("HttpPost->AD1_CIDADE") <> "U",HttpPost->AD1_CIDADE,"")
cEndereco:= Iif(Type("HttpPost->AD1_ENDER") <> "U",Upper(HttpPost->AD1_ENDER),"")
dDtInicio := CTOD(HttpPost->AD1_DTINI)
dDtTermino := CTOD(HttpPost->AD1_DTFIM)
cRegional := Iif(Type("HttpPost->AD1_REGION") <> "U",HttpPost->AD1_REGION,"")
cVend := Iif(Type("HttpPost->AD1_VEND") <> "U",HttpPost->AD1_VEND,"")
cEspecif := Iif(Type("HttpPost->AD1_PERCEI") <> "U",HttpPost->AD1_PERCEI,"")
cContato := Iif(Type("HttpPost->AD1_CONTAT")<>"U",HttpPost->AD1_CONTAT,"")
nRT:= Val(StrTran(StrTran(HttpPost->AD1_COMIRT,'.',''),',','.'))
cStatusHom := Iif(Type("HttpPost->AD1_HOMOLO")<>"U",HttpPost->AD1_HOMOLO,"")
cSegmento:= Iif(Type("HttpPost->AD1_SEGMEN")<>"U",HttpPost->AD1_SEGMEN,"")
cNivel:= Iif(Type("HttpPost->AD1_NIVOPO")<>"U",HttpPost->AD1_NIVOPO,"")
cNota:= Iif(Type("HttpPost->AD1_MEMO")<>"U",HttpPost->AD1_MEMO,"")
cStatus:= Iif(Type("HttpPost->AD1_STATUS")<>"U",HttpPost->AD1_STATUS,"")
cEncerr:= Iif(Type("HttpPost->AD1_ENCERR")<>"U",HttpPost->AD1_ENCERR,"")
cMotivo:= Iif(Type("HttpPost->AD1_MTVENC") <> "U",HttpPost->AD1_MTVENC,"")
//Posiciona nas tabelas
If !Empty(cCliente)
Posicione("SA1",1,xFilial("SA1")+Alltrim(cCliente+cLoja),"A1_COD")
Endif
//Monta o cabeçalho
If !Empty(cNumAD1) .and. nOpc = 4// ALTERAÇÃO
AD1->(dbSetOrder(1))
if AD1->(dbSeek(cFilAD1+cNumAD1))
cFilAnt := cFilAD1
Endif
// aadd(aCabAD1,{"CJ_FILIAL",xFilial("AD1"),Nil})
aadd(aCabAD1,{"AD1_NROPOR",cNumAD1,Nil})
EndIf
aadd(aCabAD1,{"AD1_NROPOR", cNumAD1, Nil})
aadd(aCabAD1,{"AD1_DESCRI", decodeutf8(cDescri), Nil})
If !Empty(cComplem)
aadd(aCabAD1,{"AD1_DESCOP", decodeutf8(cComplem), Nil})
Endif
//aadd(aCabAD1,{"AD1_DTINI" ,dDtInicio,Nil})
If nOpc == 4
aadd(aCabAD1,{"AD1_DTFIM" ,dDtTermino,Nil})
Endif
aadd(aCabAD1,{"AD1_VEND",cVend ,Nil})
aadd(aCabAD1,{"AD1_REGION",cRegional ,Nil})
aadd(aCabAD1,{"AD1_CODCLI", SA1->A1_COD ,Nil})
aadd(aCabAD1,{"AD1_LOJCLI", SA1->A1_LOJA ,Nil})
If !Empty(cEndereco)
aadd(aCabAD1,{"AD1_ENDER" ,cEndereco,Nil})
Endif
aadd(aCabAD1,{"AD1_UF" ,cUF,Nil})
aadd(aCabAD1,{"AD1_CIDADE" ,cCidade,Nil})
If !Empty(cContCli)
aadd(aCabAD1,{"AD1_CONTCL",cContCli ,Nil})
Endif
If !Empty(cEmail)
aadd(aCabAD1,{"AD1_EMAIL1",cEmail ,Nil})
Endif
If !Empty(cParceiro)
aadd(aCabAD1,{"AD1_PARC1",cParceiro ,Nil})
Endif
If !Empty(cNota)
aadd(aCabAD1,{"AD1_MEMO",AllTrim(decodeutf8(cNota)),Nil})
Endif
If !Empty(cEspecif)
aadd(aCabAD1,{"AD1_PERCEI",cEspecif ,Nil})
Endif
If !Empty(cContato)
aadd(aCabAD1,{"AD1_CONTAT",cContato ,Nil})
Endif
aadd(aCabAD1,{"AD1_COMIRT",nRT ,Nil})
aadd(aCabAD1,{"AD1_HOMOLO",cStatusHom ,Nil})
aadd(aCabAD1,{"AD1_SEGMEN",cSegmento ,Nil})
aadd(aCabAD1,{"AD1_NIVOPO",cNivel ,Nil})
aadd(aCabAD1,{"AD1_STATUS",cStatus ,Nil})
If !Empty(cEncerr)
aadd(aCabAD1,{"AD1_ENCERR",cEncerr ,Nil})
Endif
If !Empty(cMotivo)
aadd(aCabAD1,{"AD1_MTVENC",AllTrim(decodeutf8(cMotivo)),Nil})
Endif
lMsErroAuto:= .F.
MSExecAuto({|x,y|FATA300(x,y)},nOpc,aCabAD1)
If lMsErroAuto
RollbackSx8()
If !ExistDir(cDirErro)
MakeDir(cDirErro)
Endif
cDirErro+=dtos(date())
If !ExistDir(cDirErro)
MakeDir(cDirErro)
Endif
//Grava o erro
cMsg:= MostraErro(cDirErro,"erro_oportunidade_"+strtran(time(),":","")+"_"+cFilAnt+".txt")
cDestMail:= GetNewPar("PR_DESTOPE ","lucilene@smsti.com.br")
u_MailCM("ERRO HOMOLOGACAO",{cDestMail},{},"ERRO HOMOLOGACAO NO PORTAL",cMsg,"","")
cHtml:= "erro"
Else
ConfirmSX8()
cHtml:= AD1->AD1_NROPOR
fRunProcOportunidade(CNUMAD1 ,httpPost->anexos, cVendLogin)
cDestOpt := GetNewPar("PR_DESTORC","")
//Envia e-mail informando a inclusão da oportunidade
If !Empty(cDestOpt) .and. (nOpc = 3 .or. lEnvEmail)
cMsg:= "Uma nova homologação foi gerada pelo Portal do Representante.
"
cMsg+= "Filial: "+AD1->AD1_FILIAL+"
"
cMsg+= "Número: "+AD1->AD1_NROPOR+"
"
cMsg+= "Descrição: "+AD1->AD1_DESCRI+"
"
cMsg+= "Vendedor: "+AD1->AD1_VEND+" - "+Alltrim(Posicione("SA3",1,xFilial("SA3")+AD1->AD1_VEND,"A3_NOME"))+"
"
u_MailCM("HOMOLOGACAO",{cDestOpt},{},"NOVA HOMOLOGACAO PORTAL: "+AD1->AD1_FILIAL+"/"+AD1->AD1_NROPOR,cMsg,"","")
Endif
Endif
Web Extended End
Return (cHTML)
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ SlvOpt ¦ Autor ¦ Lucilene Mendes ¦ Data ¦17.08.17 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ Gera a oportunidade. ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
Static Function fRunProcOportunidade(cNumOportunidade, cAnexos, cVendLogin)
Local cProxObj
Local cAliasAtu := "AD1"
local cNewDir
local cDirAnexos
local i
cNewDir := "\dirdoc_fileserver\co"+cEmpAnt+"\shared\"
cDirAnexos:="\web\PortalSMS\upload\"+dtos(date())+"\"+cVendLogin+"\"
//Verifica se possui anexos
aAnexos := DIRECTORY(cDirAnexos+"*.*")
For i:= 1 to Len(aAnexos)
If !Empty(aAnexos[i,1])
//renomeia com o código do documento no início
if FRename(cDirAnexos+aAnexos[i,1], cNewDir+ Upper(STRTRAN(U_NoAcMI(aAnexos[i,1])," ","_"))) == 0
DbSelectArea("AD1")
AD1->(DbSetOrder(1))
If AD1->(DbSeek(xFilial('AD1')+cNumOportunidade))
cProxObj := GetSxeNum("ACB","ACB_CODOBJ")
If ! ACB->(DbSeek(xFilial('ACB')+cProxObj))
Reclock("ACB", .T.)
ACB->ACB_FILIAL := xFilial('ACB')
ACB->ACB_CODOBJ := cProxObj
ACB->ACB_OBJETO := aAnexos[i,1]
ACB->ACB_DESCRI := aAnexos[i,1]
ACB->(MsUnlock())
ConfirmSX8()
Else
//TRATAR
EndIf
DbSelectArea("AC9")
AC9->(DbSetOrder(1))
If ! AC9->(DbSeek(xFilial('AC9') + cProxObj + cNumOportunidade))
Reclock("AC9", .T.)
AC9->AC9_FILIAL := xFilial('AC9')
AC9->AC9_FILENT := xFilial('AD1')
AC9->AC9_ENTIDA := cAliasAtu
AC9->AC9_CODENT := cNumOportunidade
AC9->AC9_CODOBJ := cProxObj
AC9->(MsUnlock())
EndIf
Else
conout("Número de Oportunidade inválido: " + cNumOportunidade, "Atenção")
EndIf
else
// tratar erro
endif
Endif
Next
Return
// Função para anexar os arquivos no Portal - Joab Rodrigues - 05/03/2012
User Function uploadfile()
Local cDrive, cDir:='', cNome, cExt
Local cDirAnx:= '\web\PortalSMS\upload\'
Local cHtml:= ""
Local nI:= 0
Private cSite := "u_PortalLogin.apw"
Private cLoginGet:= ""
Web Extended Init cHtml
cVendLogin := u_GetUsrPR()
cCodLogin := U_SetParPR(cVendLogin)
aInfo := HttpPost->aPost
if valtype(aInfo) == "A"
If !ExistDir(cDirAnx)
MakeDir(cDirAnx)
Endif
cDirAnx+=dtos(dDataBase)
If !ExistDir(cDirAnx)
MakeDir(cDirAnx)
Endif
cDirAnx+='\'+cVendLogin
If !ExistDir(cDirAnx)
MakeDir(cDirAnx)
Endif
cDirAnx+='\'
For nI := 1 to len(aInfo)
conout('POST '+str(nI,3)+' = '+aInfo[nI]+' -> '+&("HTTPPOST->"+aInfo[nI]))
SplitPath( &("HTTPPOST->"+aInfo[nI]), @cDrive, @cDir, @cNome, @cExt )
cNomeArq := STRTRAN(FWnoAccent(decodeUTF8(cNome))," ","_")
If(FRenameEx(&("HTTPPOST->"+aInfo[nI]),cDirAnx+cNomeArq+cExt)==-1)
conout(FError())
EndIf
cHtml:=cNomeArq+cExt+"|"
Next
EndIf
Web Extended End
Return cHtml
/*__________________________________________________________________________
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦Funçäo ¦ DelDoctos ¦ Autor ¦ Lucilene Mendes ¦ Data ¦ 14.09.22 ¦¦¦
¦¦+----------+------------------------------------------------------------¦¦¦
¦¦¦Descriçäo ¦ deleta os arquivos da pasta upload ¦¦¦
¦¦+-----------------------------------------------------------------------+¦¦
¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
User Function DelDoctos()
Local cHtml:= ""
Local cDirAnexos:= '\web\PortalSMS\upload\'+cvaltochar(Year(dDataBase))
Local aArqDel:= {}
Local aAnexos:= {}
Local i:= 0
Private cSite := "u_PortalLogin.apw"
Private cLoginGet:= ""
Web Extended Init cHtml Start U_inSite()
cVendLogin := u_GetUsrPR()
cDirAnexos+= +'\'+cVendLogin+"\"
aArqDel:= Separa(HttpPost->anexos,"|")
//Exclui os arquivos da pasta
aAnexos := DIRECTORY(cDirAnexos+"*.*")
For i:= 1 to Len(aAnexos)
If aScan(aArqDel,{|x|Upper(STRTRAN(U_NoAcMI(x)," ","_"))==aAnexos[i][1]}) > 0
FErase(cDirAnexos+aAnexos[i][1])
Endif
Next
Web Extended End
Return (cHTML)