#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
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)
//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 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.
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
cDestOpt := GetNewPar("PR_DESTOPT","")
//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)