'
//Retorna o HTML para construção da página
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 cNomeArqTemp
local cNewDir
local cDirAnexos
local i
local aArquivos
cNewDir := "\dirdoc\co"+cEmpAnt+"\shared\"
cDirAnexos:="\web\PortalSMS\upload\"+dtos(date())+"\"+cVendLogin
//Verifica se possui anexos
aAnexos := DIRECTORY(cDirAnexos+"\*.*")
aArquivos:= Separa(cAnexos,"|") //Arquivos vindos da função
For i:= 1 to Len(aAnexos)
If !Empty(aAnexos[i,1])
//renomeia com o código do documento no início
If aScan(aArquivos,{|x|Upper(STRTRAN(U_NoAcMI(x)," ","_"))==aAnexos[i][1]}) > 0
FRename(cDirAnexos+aAnexos[i,1], cNewDir+aAnexos[i,1])
DbSelectArea("AD1")
AD1->(DbSetOrder(1))
If AD1->(DbSeek(xFilial('AD1')+cNumOportunidade))
cProxObj := SOMA1(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())
EndIf
DbSelectArea("AC9")
AC9->(DbSetOrder(1))
If ! AC9->(DbSeek(xFilial('AC9') + cProxObj + cNumOportunidade))
Reclock("AC9", .T.)
AC9->AC9_FILIAL := xFilial('AC9')
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
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()
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)