AddOpt.apl 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347
  1. #include "PROTHEUS.CH"
  2. #include "RWMAKE.CH"
  3. #include "APWEBEX.CH"
  4. #include "TOPCONN.CH"
  5. #include "TBICONN.CH"
  6. #DEFINE SMSDEBUG
  7. /*__________________________________________________________________________
  8. ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
  9. ¦¦+-----------------------------------------------------------------------+¦¦
  10. ¦¦¦Funçäo ¦ AddOpt ¦ Autor ¦ Lucilene Mendes ¦ Data ¦28.08.17 ¦¦¦
  11. ¦¦+----------+------------------------------------------------------------¦¦¦
  12. ¦¦¦Descriçäo ¦ Inclusão de Oportunidade de Venda. ¦¦¦
  13. ¦¦+-----------------------------------------------------------------------+¦¦
  14. ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
  15. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
  16. User Function AddOpt()
  17. Local cHtml
  18. Local f := 0
  19. Private cFilVen := ""
  20. Private cCodLogin := ""
  21. Private cVendLogin := ""
  22. Private cVendedor := ""
  23. Private cSite := "u_PortalLogin.apw"
  24. Private cPagina := "Homologação"
  25. Private cTitle := "Portal SMS"
  26. Private cMenus := ""
  27. Private cAnexos := ""
  28. Private cDirOpt := "\anexosPortal\oportunidade\"
  29. Private cDirPortal := ""
  30. Private cEndServ := "" // Endereço do servidor da pagina de Portal
  31. Private cItensHid := ""
  32. Private cBotoes := ""
  33. Private cBtAddAnex := ""
  34. Private cCodOpt := ""
  35. Private cDescri := ""
  36. Private cComplem := ""
  37. Private cCliente := ""
  38. Private cContato := ""
  39. Private cEmail := ""
  40. Private cParceiro := ""
  41. Private cUF := ""
  42. Private cCidade := ""
  43. Private cEndereco := ""
  44. Private cRegional := ""
  45. Private cInicio := ""
  46. Private cFim := ""
  47. Private cNotas := ""
  48. Private cStatus := ""
  49. Private cEspecif := ""
  50. Private cContEsp := ""
  51. Private cStatusHom := ""
  52. Private cRT := ""
  53. Private cSegmento := ""
  54. Private cNivel := ""
  55. Private cEncer := ""
  56. Private cMotivo := ""
  57. Private cOptMun := ""
  58. Private lNewOpt := .F.
  59. Private lEdit := .F.
  60. Private lCopy := .F.
  61. Private aStatus := {}
  62. Private aStHom := {}
  63. Private aSegmen := {}
  64. Private aNivel := {}
  65. Private aAnexos := {}
  66. Web Extended Init cHtml Start U_inSite()
  67. cVendLogin := u_GetUsrPR()
  68. cCodLogin := U_SetParPR(cVendLogin)
  69. If Empty(HttpSession->CodVend)
  70. cHtml:= '<META HTTP-EQUIV="Refresh" CONTENT="0 ; URL='+cSite+'">'
  71. Return cHtml
  72. Else
  73. If !Empty(HttpSession->Superv) .and. HttpSession->Superv <> HttpSession->CodVend
  74. HttpSession->CodVend:= HttpSession->Superv
  75. Endif
  76. Endif
  77. // Pega do parâmetro com o Titulo do Portal
  78. cTitle := SuperGetMV("PS_TITLE", .T., "Portal SMS")
  79. // Define a funcao a ser chama no link
  80. cSite := "u_SMSPortal.apw?PR="+cCodLogin
  81. // Monta o cabeçalho para a pagina
  82. cHeader := U_PSHeader(cTitle, cSite)
  83. //Função que atualiza os menus
  84. cMenus := U_GetMenus(AllTrim(Upper(Procname())), cVendLogin)
  85. //Atualiza as variáveis
  86. cEndServ := GetMv('MV_WFBRWSR')
  87. cCodVend := cVendLogin
  88. cNomeVend:= HttpSession->Nome
  89. cDescri:= '<input id="AD1_DESCRI" name="AD1_DESCRI" class="form-control text-uppercase" maxlength="'+cvaltochar(GetSX3Cache("AD1_DESCRI","X3_TAMANHO"))+'" '
  90. cDescri+= 'value="">'
  91. cDescri+= '<input type="hidden" name="OPCAO" id="OPCAO" value="3" />'
  92. //cComplem:= '<input id="AD1_DESCOP" name="AD1_DESCOP" class="form-control" maxlength="'+cvaltochar(GetSX3Cache("AD1_DESCOP","X3_TAMANHO"))+'" '
  93. //cComplem+= 'value="">'
  94. //Início
  95. cInicio:= '<input id="AD1_DTINI" name="AD1_DTINI" class="form-control" '
  96. cInicio+= ' value="'+dtoc(date())+'" disabled >'
  97. //Fim
  98. cDiaIni:= cvaltochar(DateDiffDay(date(),AD1->AD1_DTINI))
  99. dDiaFim:= date()+730
  100. cFim:= '<input data-plugin-datepicker="" data-plugin-options='+"'"+'{"startDate": "-'+cDiaIni+'d","autoclose": "true", "language": "pt-BR",'
  101. cFim+= '"daysOfWeekDisabled": "","daysOfWeekHighlighted":"[0]"}'+"'"+' '
  102. cFim+= 'id="AD1_DTFIM" name="AD1_DTFIM" class="form-control only-numbers" type="text" '
  103. cFim+= ' value="'+dtoc(dDiaFim)+'" '
  104. cFim+= ' onblur="javascript:vldDtFim();" disabled>'
  105. //Cliente
  106. cCliente:='<select data-plugin-selectTwo class="form-control populate placeholder" data-plugin-options='+"'"
  107. cCliente+='{ "placeholder": "Selecione um Cliente", "allowClear": false }'+"'"+' name="AD1_CODCLI" id="AD1_CODCLI" '
  108. cCliente+=' >' // disabled
  109. cCliente+=' <option value="00795800">007958/00 - '+Alltrim(Posicione("SA1",1,xFilial("SA1")+'00795800',"A1_NOME"))+'</option>'
  110. cCliente+='</select>'
  111. //Contato
  112. cContato:= '<input id="AD1_CONTCL" name="AD1_CONTCL" class="form-control text-uppercase" maxlength="'+cvaltochar(GetSX3Cache("AD1_CONTCL","X3_TAMANHO"))+'" '
  113. cContato+= ' value="EM CONCORRENCIA">'
  114. //Email
  115. //cEmail:= '<input id="AD1_EMAIL1" name="AD1_EMAIL1" class="form-control" maxlength="'+cvaltochar(GetSX3Cache("AD1_EMAIL1","X3_TAMANHO"))+'" '
  116. //cEmail+= ' value="">'
  117. //Parceiro
  118. //cParceiro:= '<input id="AD1_PARC1" name="AD1_PARC1" class="form-control text-uppercase" maxlength="'+cvaltochar(GetSX3Cache("AD1_PARC1","X3_TAMANHO"))+'" '
  119. //cParceiro+= ' value="">'
  120. //Seleciona os estados disponíveis no combo
  121. cUF:='<select data-plugin-selectTwo class="form-control populate placeholder mb-md" data-plugin-options='+"'" '
  122. cUF+='{ "placeholder": "Selecione...", "allowClear": false }'+"'"+' name="AD1_UF" id="AD1_UF" '
  123. cUF+='required="" aria-required="true" onchange="javascript:SetCidade();">'
  124. cUF+=' <option value=""></option>'
  125. //Seleciona as opções do combo
  126. cQry:= " Select X5_CHAVE, X5_DESCRI "
  127. cQry+= " From "+RetSqlName("SX5")+" SX5 "
  128. cQry+= " Where X5_FILIAL = '"+xFilial("SX5")+"' "
  129. cQry+= " And X5_TABELA = '12' "
  130. cQry+= " And SX5.D_E_L_E_T_ = ' ' "
  131. If Select("QRP") > 0
  132. QRP->(dbCloseArea())
  133. Endif
  134. TcQuery cqry New Alias "QRP"
  135. While QRP->(!Eof())
  136. cUF+=' <option value="'+QRP->X5_CHAVE+'"'+Iif(Alltrim(QRP->X5_CHAVE) == AllTrim(AD1->AD1_UF),'selected','')+'>'+Alltrim(QRP->X5_CHAVE)+" - "+Alltrim(QRP->X5_DESCRI)+'</option>'
  137. QRP->(dbSkip())
  138. End
  139. QRP->(dbCloseArea())
  140. cUF+='</select>'
  141. //Cidade
  142. cCidade:= '<select data-plugin-selectTwo class="form-control populate placeholder mb-md" data-plugin-options='+"'" '
  143. cCidade+='{ "placeholder": "Selecione...", "allowClear": false }'+"'"+' name="AD1_CIDADE" id="AD1_CIDADE" '
  144. cCidade+='required="" aria-required="true" disabled>'
  145. cCidade+='</select>'
  146. //Endereço
  147. cEndereco:= '<input id="AD1_ENDER" name="AD1_ENDER" class="form-control text-uppercase" maxlength="'+cvaltochar(GetSX3Cache("AD1_ENDER","X3_TAMANHO"))+'" '
  148. cEndereco+= ' value="">'
  149. //Regional
  150. cRegional:= '<select data-plugin-selectTwo class="form-control populate placeholder mb-md" data-plugin-options='+"'" '
  151. cRegional+='{ "placeholder": "Selecione...", "allowClear": false }'+"'"+' name="AD1_REGION" id="AD1_REGION">'
  152. cRegional+=' <option value=""></option>'
  153. //Seleciona as opções do combo
  154. cRegional+= u_ListaVend(.T.,"")
  155. cRegional+='</select>'
  156. //Vendedor
  157. cVendedor:= '<select data-plugin-selectTwo class="form-control populate placeholder mb-md" data-plugin-options='+"'" '
  158. cVendedor+='{ "placeholder": "Selecione...", "allowClear": false }'+"'"+' name="AD1_VEND" id="AD1_VEND">'
  159. cVendedor+=' <option value=""></option>'
  160. //Seleciona as opções do combo
  161. cVendedor+= u_ListaVend(.F.,"")
  162. cVendedor+='</select>'
  163. //Especificadora
  164. cEspecif:='<select data-plugin-selectTwo class="form-control populate placeholder mb-md" data-plugin-options='+"'" '
  165. cEspecif+='{ "placeholder": "Selecione...", "allowClear": false }'+"'"+' name="AD1_PERCEI" id="AD1_PERCEI">'
  166. cEspecif+=' <option value=""></option>'
  167. //Seleciona as opções do combo
  168. cQry:= " Select AC4_PARTNE, AC4_NOME "
  169. cQry+= " From "+RetSqlName("AC4")+" AC4 "
  170. cQry+= " Where AC4_FILIAL = '"+xFilial("AC4")+"' "
  171. cQry+= " And AC4_MSBLQL <> '1' "
  172. cQry+= " And AC4.D_E_L_E_T_ = ' ' "
  173. If Select("QRP") > 0
  174. QRP->(dbCloseArea())
  175. Endif
  176. TcQuery cqry New Alias "QRP"
  177. While QRP->(!Eof())
  178. cEspecif+=' <option value="'+QRP->AC4_PARTNE+'">'+Alltrim(QRP->AC4_PARTNE)+" - "+Alltrim(QRP->AC4_NOME)+'</option>'
  179. QRP->(dbSkip())
  180. End
  181. QRP->(dbCloseArea())
  182. cEspecif+='</select>'
  183. //Contato Especificadora
  184. cContEsp:='<select data-plugin-selectTwo class="form-control populate placeholder mb-md" data-plugin-options='+"'" '
  185. cContEsp+='{ "placeholder": "Selecione...", "allowClear": false }'+"'"+' name="AD1_CONTAT" id="AD1_CONTAT">'
  186. cContEsp+=' <option value=""></option>'
  187. //Seleciona as opções do combo
  188. cQry:= " Select U5_CODCONT, U5_CONTAT "
  189. cQry+= " From "+RetSqlName("SU5")+" SU5 "
  190. cQry+= " Where U5_FILIAL = '"+xFilial("SU5")+"' "
  191. cQry+= " And U5_MSBLQL <> '1' "
  192. cQry+= " And SU5.D_E_L_E_T_ = ' ' "
  193. If Select("QRP") > 0
  194. QRP->(dbCloseArea())
  195. Endif
  196. TcQuery cqry New Alias "QRP"
  197. While QRP->(!Eof())
  198. cContEsp+=' <option value="'+QRP->U5_CODCONT+'">'+Alltrim(QRP->U5_CODCONT)+" - "+Alltrim(QRP->U5_CONTAT)+'</option>'
  199. QRP->(dbSkip())
  200. End
  201. QRP->(dbCloseArea())
  202. cContEsp+='</select>'
  203. //Status Homologação
  204. aStHom:= RetSx3Box(Posicione('SX3',2,'AD1_HOMOLO','X3CBox()'),,,1)
  205. cStatusHom:='<select data-plugin-selectTwo class="form-control poulatemb-md" data-plugin-options='+"'"+'{"placeholder": "Selecione...", "minimumResultsForSearch": "-1"}'+"'"'
  206. cStatusHom+=' name="AD1_HOMOLO" id="AD1_HOMOLO">'
  207. cStatusHom+='<option value=""></option>'
  208. For f:= 1 to Len(aStHom)
  209. cStatusHom+=' <option value="'+aStHom[f,2]+'">'+aStHom[f,3]+'</option>'
  210. Next
  211. cStatusHom+='</select>'
  212. //% RT
  213. cRT:= '<input id="AD1_COMIRT" name="AD1_COMIRT" class="form-control text-right percentual" maxlength="'+cvaltochar(GetSX3Cache("AD1_COMIRT","X3_TAMANHO"))+'" '
  214. cRT+= ' value="" placeholder="0,00">'
  215. //Segmento
  216. aSegmen:= RetSx3Box(Posicione('SX3',2,'AD1_SEGMEN','X3CBox()'),,,1)
  217. cSegmento:='<select data-plugin-selectTwo class="form-control poulatemb-md" data-plugin-options='+"'"+'{"placeholder": "Selecione...","minimumResultsForSearch": "-1"}'+"'"'
  218. cSegmento+=' name="AD1_SEGMEN" id="AD1_SEGMEN">'
  219. cSegmento+=' <option value=""></option>'
  220. For f:= 1 to Len(aSegmen)
  221. cSegmento+=' <option value="'+aSegmen[f,1]+'" >'+aSegmen[f,1]+'</option>'
  222. Next
  223. cSegmento+='</select>'
  224. //Nivel
  225. aNivel:= RetSx3Box(Posicione('SX3',2,'AD1_NIVOPO','X3CBox()'),,,1)
  226. cNivel:='<select data-plugin-selectTwo class="form-control poulatemb-md" data-plugin-options='+"'"+'{"placeholder": "Selecione...","minimumResultsForSearch": "-1"}'+"'"'
  227. cNivel+=' name="AD1_NIVOPO" id="AD1_NIVOPO">'
  228. cNivel+=' <option value=""></option>'
  229. For f:= 1 to Len(aNivel)
  230. cNivel+=' <option value="'+aNivel[f,1]+'" >'+aNivel[f,1]+'</option>'
  231. Next
  232. cNivel+='</select>'
  233. //Observação Notas
  234. cNotas:= ""
  235. //Status
  236. aStatus:= RetSx3Box(Posicione('SX3',2,'AD1_STATUS','X3CBox()'),,,1)
  237. cStatus:='<select data-plugin-selectTwo class="form-control poulatemb-md" data-plugin-options='+"'"+'{"placeholder": "Selecione...","minimumResultsForSearch": "-1"}'+"'"'
  238. cStatus+=' name="AD1_STATUS" id="AD1_STATUS" onchange="javascript:vldStatus();" >'
  239. For f:= 1 to Len(aStatus)
  240. cStatus+=' <option value="'+aStatus[f,2]+'"'+Iif(f==1,'selected','')+'>'+aStatus[f,3]+'</option>'
  241. Next
  242. cStatus+='</select>'
  243. //cEncerramento
  244. cEncer:= '<select data-plugin-selectTwo class="form-control populate placeholder mb-md" data-plugin-options='+"'" '
  245. cEncer+='{ "placeholder": "Selecione...", "allowClear": false }'+"'"+' name="AD1_ENCERR" id="AD1_ENCERR" '
  246. cEncer+='required="" aria-required="true" disabled>'
  247. cEncer+=' <option value=""></option>'
  248. //Seleciona as opções do combo
  249. cQry:= " Select UN_ENCERR, UN_DESC "
  250. cQry+= " From "+RetSqlName("SUN")+" SUN "
  251. cQry+= " Where UN_FILIAL = '"+xFilial("SUN")+"' "
  252. cQry+= " And UN_MSBLQL <> '1' "
  253. cQry+= " And SUN.D_E_L_E_T_ = ' ' "
  254. If Select("QRP") > 0
  255. QRP->(dbCloseArea())
  256. Endif
  257. TcQuery cqry New Alias "QRP"
  258. While QRP->(!Eof())
  259. cEncer+=' <option value="'+QRP->UN_ENCERR+'"'+Iif(Alltrim(QRP->UN_ENCERR) == AllTrim(AD1->AD1_ENCERR),'selected','')+'>'+Alltrim(QRP->UN_ENCERR)+" - "+Alltrim(QRP->UN_DESC)+'</option>'
  260. QRP->(dbSkip())
  261. End
  262. QRP->(dbCloseArea())
  263. cEncer+='</select>'
  264. //Motivo Encerramento //AD1_MEMENC AD1_MTVENC
  265. cMotivo:= '<textarea class="form-control" rows="3" data-plugin-maxlength="" maxlength="240" id="AD1_MTVENC" name="AD1_MTVENC" disabled></textarea>'
  266. //Adiciona os botões da página
  267. cBotoes+='<input class="btn btn-primary" type="button" id="btSalvar" name="btSalvar" value="Salvar"/>'+chr(13)+chr(10)
  268. cBotoes+='<input class="btn btn-primary" type="button" id="btVoltar" name="btVoltar" value="Voltar" onclick="javascript: location.href='+"'"+'U_Oportunidade.apw?PR='+cCodLogin+"';"+'"/>'+chr(13)+chr(10)
  269. //Botão para adicionar anexos
  270. cBtAddAnex+= ' <div class="col-sm-3">'
  271. cBtAddAnex+= ' <span class="btn btn-primary" id="btAddAnex" name="btAddAnex" onclick="javascript: Anexar('+"'"+cCodLogin+"'"+');">'
  272. cBtAddAnex+= ' <i class="fa fa-paperclip"></i> Anexar</button>'
  273. cBtAddAnex+= ' </span>'
  274. cBtAddAnex+= ' </div>'
  275. //Retorna o HTML para construção da página
  276. cHtml := H_AddOpt()
  277. Web Extended End
  278. Return (cHTML)