#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:= '
' cCodOpt+= '
' cCodOpt+= ' ' cCodOpt+= ' ' cCodOpt+= ' ' cCodOpt+= '
' //Num Oportunidade cCodOpt+= '
' cCodOpt+= ' ' cCodOpt+= ' ' //cCodOpt+= ' ' cCodOpt+= '
' 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:= 'AD1_CONTCL)+'" ' cContato+= Iif(!lCopy .and. !lEdit,'disabled','')+'>' //Email //cEmail:= 'AD1_EMAIL1)+'" ' //cEmail+= Iif(!lCopy .and. !lEdit,'disabled','')+'>' //Parceiro //cParceiro:= 'AD1_PARC1)+'" ' //cParceiro+= Iif(!lCopy .and. !lEdit,'disabled','')+'>' //Seleciona os estados disponíveis no combo cUF:='' //Cidade cCidade:= '' //Endereço cEndereco:= 'AD1_ENDER)+'" ' cEndereco+= Iif(!lCopy .and. !lEdit,'disabled','')+'>' //Início cInicio:= 'AD1_DTINI)+'" disabled>' //Fim cDiaIni:= cvaltochar(DateDiffDay(date(),AD1->AD1_DTINI)) cFim:= 'AD1_DTFIM)+'" ' cFim+= Iif(!lCopy .and. !lEdit,'disabled','')+' onblur="javascript:vldDtFim();">' //Regional cRegional:= '' //Vendedor cVendedor:= '' //Especificadora cEspecif:='' //Contato Especificadora cContEsp:='' //Status Homologação aStHom:= RetSx3Box(Posicione('SX3',2,'AD1_HOMOLO','X3CBox()'),,,1) cStatusHom:='' //% RT cRT:= 'AD1_COMIRT)+'" placeholder="0,00" ' cRT+= Iif(!lCopy .and. !lEdit,'disabled','')+'>' //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+= '
' cBtAddAnex+= '
' cBtAddAnex+= ' ' cBtAddAnex+= ' Anexar' cBtAddAnex+= ' ' cBtAddAnex+= '
' 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)