AddOpt.aph.bak 31 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006
  1. <%
  2. /**** Pagina de login do site ****/
  3. Local cLCodLogin := ""
  4. if type ("cCodLogin") <> "U"
  5. cLCodLogin := cCodLogin
  6. Endif
  7. %>
  8. <!DOCTYPE html>
  9. <html class="fixed sidebar-left-collapsed">
  10. <head>
  11. <!-- Basic -->
  12. <meta charset="iso-8859-1">
  13. <link rel="shortcut icon" href="images/favicon.png" type="image/x-icon" />
  14. <title><%=cTitle%></title>
  15. <meta name="keywords" content="<%=cTitle%>" />
  16. <meta name="description" content="<%=cTitle%>">
  17. <meta name="author" content="SMSTI">
  18. <meta http-equiv="Chache-Control" content="no-cache" />
  19. <meta http-equiv="Expires" content="0" />
  20. <meta http-equiv="Pragma" content="no-cache" />
  21. <!-- Mobile Metas -->
  22. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
  23. <!-- Web Fonts -->
  24. <link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700,800|Shadows+Into+Light" rel="stylesheet" type="text/css">
  25. <!-- Vendor CSS -->
  26. <link rel="stylesheet" href="assets/vendor/bootstrap/css/bootstrap.css" />
  27. <link rel="stylesheet" href="assets/vendor/font-awesome/css/font-awesome.css" />
  28. <link rel="stylesheet" href="assets/vendor/magnific-popup/magnific-popup.css" />
  29. <link rel="stylesheet" href="assets/vendor/bootstrap-datepicker/css/bootstrap-datepicker3.css" />
  30. <link rel="stylesheet" href="assets/vendor/bootstrap-select/css/bootstrap-select.min.css" />
  31. <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
  32. <style>
  33. body .btn {
  34. white-space: nowrap !important;
  35. display: inline;
  36. overflow-y: hidden;
  37. }
  38. </style>
  39. <!-- Specific Page Vendor CSS -->
  40. <link rel="stylesheet" href="assets/vendor/select2/css/select2.css" />
  41. <link rel="stylesheet" href="assets/vendor/select2-bootstrap-theme/select2-bootstrap.min.css" />
  42. <link rel="stylesheet" href="assets/vendor/jquery-datatables-bs3/assets/css/datatables.css" />
  43. <link rel="stylesheet" href="assets/vendor/bootstrap-fileupload/bootstrap-fileupload.min.css" />
  44. <link rel="stylesheet" href="assets/vendor/pnotify/pnotify.custom.css" />
  45. <link rel="stylesheet" href="assets/vendor/dropzone/basic.css" />
  46. <link rel="stylesheet" href="assets/vendor/dropzone/dropzone.css" />
  47. <!-- Theme CSS -->
  48. <link rel="stylesheet" href="assets/stylesheets/theme.css" />
  49. <!-- Skin CSS -->
  50. <link rel="stylesheet" href="assets/stylesheets/skins/default.css" />
  51. <!-- Theme Custom CSS -->
  52. <link rel="stylesheet" href="assets/stylesheets/theme-custom.css">
  53. <!-- Head Libs -->
  54. <script src="assets/vendor/modernizr/modernizr.js"></script>
  55. <script src="assets/vendor/style-switcher/style.switcher.localstorage.js"></script>
  56. </head>
  57. <body>
  58. <section class="body">
  59. <!-- start: header -->
  60. <header class="header">
  61. <%=cHeader%>
  62. </header>
  63. <!-- end: header -->
  64. <div class="inner-wrapper">
  65. <!-- start: sidebar -->
  66. <aside id="sidebar-left" class="sidebar-left">
  67. <div class="sidebar-header">
  68. <div class="sidebar-title">
  69. Menu
  70. </div>
  71. <div class="sidebar-toggle hidden-xs"data-toggle-class="sidebar-left-collapsed" data-target="html" data-fire-event="sidebar-left-toggle">
  72. <i class="fa fa-bars" aria-label="Toggle sidebar"></i>
  73. </div>
  74. </div>
  75. <div class="nano">
  76. <div class="nano-content">
  77. <nav id="menu" class="nav-main" role="navigation">
  78. <ul class="nav nav-main">
  79. <%=cMenus%>
  80. </ul>
  81. </nav>
  82. </div>
  83. <script>
  84. // Maintain Scroll Position
  85. if (typeof localStorage !== 'undefined') {
  86. if (localStorage.getItem('sidebar-left-position') !== null) {
  87. var initialPosition = localStorage.getItem('sidebar-left-position'),
  88. sidebarLeft = document.querySelector('#sidebar-left .nano-content');
  89. sidebarLeft.scrollTop = initialPosition;
  90. }
  91. }
  92. </script>
  93. </div>
  94. </aside>
  95. <!-- end: sidebar -->
  96. <section role="main" class="content-body">
  97. <header class="page-header">
  98. <h2><%=cPagina%></h2>
  99. <div class="right-wrapper pull-right">
  100. </div>
  101. </header>
  102. <!-- start: page -->
  103. <section class="panel">
  104. <!-- <header class="panel-heading">
  105. </header> -->
  106. <div class="panel-body">
  107. <div class="row">
  108. <div class="col-lg-12">
  109. <section class="panel form-wizard" id="w9">
  110. <form action = "" method="post" class="form-horizontal" id="formOrc">
  111. <div class="tabs">
  112. <ul class="nav nav-tabs nav-justify">
  113. <li class="active">
  114. <a href="#orc-informar" data-toggle="tab" class="text-center">Homologação</a>
  115. </li>
  116. <li class="">
  117. <a href="#orc-anexos" data-toggle="tab" class="text-center">Anexos</a>
  118. </li>
  119. </ul>
  120. <div class="tab-content">
  121. <div id="orc-informar" class="tab-pane active">
  122. <!--
  123. <%=cVendedor%>
  124. -->
  125. <!-- linha 0: dados da Oportunidade -->
  126. <%=cCodOpt%>
  127. <div class="mb-md hidden-lg hidden-xl"></div>
  128. <div class="mb-md hidden-lg hidden-xl"></div>
  129. <!-- linha 1: dados da empresa -->
  130. <div class="row form-group">
  131. <div class="col-lg-5">
  132. <label class="control-label">Descrição</label>
  133. <%=cDescri%>
  134. </div>
  135. <div class="col-lg-2">
  136. <label class="control-label">Início</label>
  137. <div class="input-group">
  138. <span class="input-group-addon">
  139. <i class="fa fa-calendar"></i>
  140. </span>
  141. <%=cInicio%>
  142. </div>
  143. </div>
  144. <div class="col-lg-2">
  145. <label class="control-label">Término</label>
  146. <div class="input-group">
  147. <span class="input-group-addon">
  148. <i class="fa fa-calendar"></i>
  149. </span>
  150. <%=cFim%>
  151. </div>
  152. </div>
  153. <!--
  154. <div class="col-lg-7">
  155. <label class="control-label">Complemento</label>
  156. <%=cComplem%>
  157. </div>
  158. -->
  159. </div>
  160. <!-- linha 2: input -->
  161. <div class="row form-group">
  162. <div class="col-lg-4">
  163. <label class="control-label">Regional</label>
  164. <%=cRegional%>
  165. </div>
  166. <div class="col-lg-5">
  167. <label class="control-label">Vendedor</label>
  168. <%=cVendedor%>
  169. </div>
  170. <div class="col-lg-2">
  171. <label class="control-label">% RT</label>
  172. <%=cRT%>
  173. </div>
  174. </div>
  175. <!-- linha 3 input -->
  176. <div class="row form-group">
  177. <div class="col-lg-5">
  178. <label class="control-label">Cliente</label>
  179. <%=cCliente%>
  180. </div>
  181. <div class="col-lg-7">
  182. <label class="control-label">Contato</label>
  183. <%=cContato%>
  184. </div>
  185. </div>
  186. <!--linha 4 input
  187. <div class="row form-group">
  188. <div class="col-lg-6">
  189. <label class="control-label">Email</label>
  190. <%=cEmail%>
  191. </div>
  192. <div class="col-lg-6">
  193. <label class="control-label">Parceiro</label>
  194. <%=cParceiro%>
  195. </div>
  196. </div>
  197. -->
  198. <!-- linha 5 input -->
  199. <div class="row form-group">
  200. <div class="col-lg-2">
  201. <label class="control-label">UF</label>
  202. <%=cUF%>
  203. </div>
  204. <div class="col-lg-4">
  205. <label class="control-label">Cidade</label>
  206. <%=cCidade%>
  207. </div>
  208. <div class="col-lg-6">
  209. <label class="control-label">Endereço</label>
  210. <%=cEndereco%>
  211. </div>
  212. </div>
  213. <!-- linha 6 input -->
  214. <div class="row form-group">
  215. <div class="col-lg-6">
  216. <label class="control-label">Especificadora</label>
  217. <%=cEspecif%>
  218. </div>
  219. <div class="col-lg-6">
  220. <label class="control-label">Contato</label>
  221. <%=cContEsp%>
  222. </div>
  223. </div>
  224. <!-- linha 7: input -->
  225. <div class="row form-group">
  226. <div class="col-lg-3">
  227. <label class="control-label">Status Homologação</label>
  228. <%=cStatusHom%>
  229. </div>
  230. <div class="col-lg-3">
  231. <label class="control-label">Segmento</label>
  232. <%=cSegmento%>
  233. </div>
  234. <div class="col-lg-3">
  235. <label class="control-label">Nível</label>
  236. <%=cNivel%>
  237. </div>
  238. </div>
  239. <!-- linha 7 input
  240. <div class="row form-group">
  241. <div class="col-md-5">
  242. <label class="control-label" for="textareaDefault">Notas</label>
  243. <textarea class="form-control" rows="3" data-plugin-maxlength="" maxlength="240" id="AD1_MEMO" name="AD1_MEMO" <%=Iif(!lEdit,'disabled','')%>><%=cNotas%></textarea>
  244. </div>
  245. </div>
  246. -->
  247. <!-- linha 7 input -->
  248. <div class="row form-group">
  249. <div class="col-lg-3">
  250. <label class="control-label">Status</label>
  251. <%=cStatus%>
  252. </div>
  253. <div class="col-lg-3">
  254. <label class="control-label">Encerramento</label>
  255. <%=cEncer%>
  256. </div>
  257. <div class="col-md-5">
  258. <label class="control-label" for="textareaDefault">Motivo</label>
  259. <%=cMotivo%>
  260. </div>
  261. </div>
  262. <br>
  263. <br>
  264. <div class="row form-group" align="center">
  265. <%=cBotoes%>
  266. </div>
  267. </div>
  268. <!-- aba de anexos -->
  269. <div id="orc-anexos" class="tab-pane">
  270. <div class="form-group">
  271. <%=cBtAddAnex%>
  272. <div class="row mg-files" data-sort-destination data-sort-id="media-gallery" style="margin: 20px" id="OrcAnexos">
  273. <%=cAnexos%>
  274. </div>
  275. </div>
  276. </div>
  277. </div>
  278. </div>
  279. </form>
  280. <div class="modal fade" id="dialogAnex" tabindex="-1" role="dialog" aria-labelledby="basicModal" aria-hidden="true">
  281. <div class="modal-dialog">
  282. <div class="modal-content">
  283. <div class="modal-header">
  284. <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
  285. <h4 class="modal-title" id="myModalLabel">Anexos</h4>
  286. </div>
  287. <div class="modal-body">
  288. <input type="hidden" id="recZM2"/>
  289. <input type="hidden" id="codZM1"/>
  290. <input type="hidden" id="linha"/>
  291. <label class="control-label">Anexar Documentos</label>
  292. <form action="/u_uploadfile.apw?PR=<%=cCodLogin%>" method="POST" enctype="multipart/form-data" id="dropzone-form" class="dropzone dz-square dz-clickable">
  293. <div class="dz-default dz-message">
  294. <span>Clique ou arraste e solte os arquivos aqui</span>
  295. </div>
  296. </form>
  297. </div>
  298. <div class="modal-footer">
  299. <button type="button" class="btn btn-default" data-dismiss="modal" onclick="javascript:cancDoctos();">Cancelar</button>
  300. <button type="button" class="btn btn-primary" onclick="javascript:intDoctos();">Enviar</button>
  301. </div>
  302. </div>
  303. </div>
  304. </div>
  305. </section>
  306. </div>
  307. </div>
  308. </div>
  309. </section>
  310. <footer class="panel-footer text-right">
  311. Desenvolvido por <img src="images/sms.png" />
  312. </footer>
  313. </div>
  314. </section>
  315. <!-- end: page -->
  316. <!-- Vendor -->
  317. <script src="assets/vendor/jquery/jquery.js"></script>
  318. <script src="assets/vendor/jquery-browser-mobile/jquery.browser.mobile.js"></script>
  319. <script src="assets/vendor/bootstrap/js/bootstrap.js"></script>
  320. <script src="assets/vendor/nanoscroller/nanoscroller.js"></script>
  321. <script src="assets/vendor/bootstrap-datepicker/js/bootstrap-datepicker.js"></script>
  322. <script src="assets/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.pt-BR.min.js"></script>
  323. <script src="assets/vendor/magnific-popup/jquery.magnific-popup.js"></script>
  324. <script src="assets/vendor/jquery-placeholder/jquery-placeholder.js"></script>
  325. <script src="assets/vendor/fuelux/js/spinner.js"></script>
  326. <!-- Custom -->
  327. <script src="custom/js/bootbox.js"></script>
  328. <script src="custom/js/moeda.js"></script>
  329. <!-- Specific Page Vendor -->
  330. <script src="assets/vendor/select2/js/select2.js"></script>
  331. <script src="assets/vendor/jquery-datatables/media/js/jquery.dataTables.js"></script>
  332. <script src="assets/vendor/jquery-datatables/extras/TableTools/js/dataTables.tableTools.min.js"></script>
  333. <script src="assets/vendor/jquery-datatables-bs3/assets/js/datatables.js"></script>
  334. <script src="assets/vendor/jquery-datatables/media/js/jquery.dataTables.js"></script>
  335. <script src="assets/vendor/bootstrap-maxlength/bootstrap-maxlength.js"></script>
  336. <script src="assets/vendor/autosize/autosize.js"></script>
  337. <script src="assets/vendor/bootstrap-fileupload/bootstrap-fileupload.min.js"></script>
  338. <script src="assets/vendor/pnotify/pnotify.custom.js"></script>
  339. <script src="assets/vendor/bootstrap-select/bootstrap-select.min.js"></script>
  340. <script src="assets/vendor/dropzone/dropzone.js"></script>
  341. <script src="custom/js/dropzone.js"></script>
  342. <!-- Theme Base, Components and Settings -->
  343. <script src="assets/javascripts/theme.js"></script>
  344. <!-- Theme Initialization Files -->
  345. <script src="assets/javascripts/theme.init.js"></script>
  346. <!-- Theme Custom -->
  347. <script src="assets/javascripts/theme.custom.js"></script>
  348. <script src="custom/js/jquery.maskMoney.js"></script>
  349. <script src="custom/js/portalMask.js"></script>
  350. <script type="text/javascript">
  351. var optModal = '<%=cOptMun%>';
  352. const dropZone = document.getElementById('dropZone');
  353. const fileInput = document.getElementById('fileInput');
  354. const fileList = document.getElementById('fileList');
  355. const orcAnexosDiv = document.getElementById('OrcAnexos');
  356. let filesMap = {}; // Mapeia os arquivos para evitar duplicidade
  357. /**
  358. Desabilita o enter na página
  359. **/
  360. $(function () {
  361. $('form').bind("keypress", function (e) {
  362. if (e.keyCode == 13) return false;
  363. });
  364. });
  365. //Remove as opções da tabela e adiciona o scroll
  366. $(document).ready(function () {
  367. $('#datatable-editable').DataTable({
  368. "scrollX": true,
  369. "ordering": false,
  370. "searching": false,
  371. "paging": false,
  372. "autoWidth": true,
  373. "info": false
  374. });
  375. $('.dataTables_length').addClass('.w-auto'); //ajusta o tamanho das colunas automaticamente
  376. });
  377. //Formata campos de moeda
  378. $(function() {
  379. //$('#iCK_PRCVEN01').maskMoney({thousands:'.', decimal:','});
  380. $('.myformato').maskMoney({thousands:'.', decimal:','});
  381. $('.percentual').maskMoney({thousands:'.', decimal:',', suffix:'%',allowNegative:true});
  382. })
  383. function formate() {
  384. $('.myformato').maskMoney({thousands:'.', decimal:','});
  385. $('.percentual').maskMoney({thousands:'.', decimal:',', suffix:'%',allowNegative:true});
  386. }
  387. function sleep(ms) {
  388. return new Promise(resolve => setTimeout(resolve, ms));
  389. }
  390. /**
  391. // Função para salvar os arquivos anexados
  392. **/
  393. function intDoctos(){
  394. var dialogTab = bootbox.dialog({
  395. message: '<p class="text-center">Arquivo(s) enviado(s) com sucesso!</p>',
  396. closeButton: true
  397. });
  398. }
  399. /**
  400. Valida a data de término da oportunidade
  401. **/
  402. function vldDtFim(){
  403. var dDtIni = $("#AD1_DTINI").val();
  404. var dDtFim = $("#AD1_DTFIM").val();
  405. if(dDtFim < dDtIni){
  406. bootbox.alert('A data final deve ser maior ou igual a data inicial!');
  407. $("#AD1_DTFIM").focus();
  408. }
  409. }
  410. /**
  411. Atualiza o select da cidade de acordo com o estado
  412. **/
  413. function SetCidade(){
  414. var estado = $("#AD1_UF").val();
  415. var dialogTab = bootbox.dialog({
  416. message: '<p class="text-center"><i class="fa fa-spin fa-spinner"></i>&nbsp;&nbsp;Localizando os municípios... Aguarde...</p>',
  417. closeButton: false
  418. });
  419. $.ajax({
  420. url: "U_fSetCidade.apw?PR=<%=cLCodLogin%>",
  421. data: 'estado='+estado,
  422. type: "POST",
  423. async: false,
  424. success:
  425. function(retorno) {
  426. if (retorno.indexOf('<META HTTP-EQUIV') >= 0 ) {
  427. $("html").html(retorno);
  428. return;
  429. }
  430. if ( retorno == "" && retorno.indexOf("Expires") == -1 ) {
  431. bootbox.alert('Falha ao localizar os municípios do estado '+estado+'.');
  432. }
  433. else {
  434. //Preenche o select das cidades
  435. document.getElementById('AD1_CIDADE').innerText = null;
  436. $("#AD1_CIDADE").append(retorno);
  437. optMun = retorno;
  438. $("#AD1_CIDADE").removeAttr('disabled');
  439. }
  440. }
  441. });
  442. dialogTab.modal('hide');
  443. }
  444. /**
  445. Valida a data de término da oportunidade
  446. **/
  447. function vldStatus(){
  448. var cStatus = $("#AD1_STATUS").val();
  449. //Status perdido ou suspenso
  450. if(cStatus == '2' || cStatus == '3'){
  451. $("#AD1_ENCERR").removeAttr('disabled');
  452. $("#AD1_MTVENC").removeAttr('disabled');
  453. $("#AD1_ENCERR").focus();
  454. }else {
  455. $("#AD1_ENCERR").attr("disabled","");
  456. $("#AD1_MTVENC").attr("disabled","");
  457. $("#AD1_ENCERR").val("");
  458. $("#AD1_MTVENC").val("");
  459. }
  460. }
  461. //Salvar o orçamento
  462. $('#btSalvar').click(function() {
  463. var lRet = true
  464. var i = 0;
  465. var btnSlv = $(this);
  466. var dialogOrc = bootbox.dialog({
  467. message: '<p class="text-center"><i class="fa fa-spin fa-spinner"></i>&nbsp;&nbsp;Validando homologação. Aguarde...</p>',
  468. closeButton: false
  469. });
  470. //Desabilita o botão
  471. btnSlv.attr({ 'disabled': 'disabled' });
  472. $.ajax({
  473. url: "U_VerSessao.apw?PR=<%=cLCodLogin%>",
  474. type: "POST",
  475. async: false,
  476. success:
  477. function(retorno) {
  478. if (retorno.indexOf('<META HTTP-EQUIV') >= 0 ) {
  479. $("html").html(retorno);
  480. return;
  481. }
  482. if (retorno == "nok"||retorno == ''||retorno.indexOf("Expires") != -1){
  483. $("#orc-informar").html();
  484. bootbox.alert('Não foi possível realizar a operação pois a sessão foi fechada. Faça login novamente.');
  485. lRet = false;
  486. btnSlv.removeAttr('disabled');
  487. dialogOrc.modal('hide');
  488. }
  489. }
  490. });
  491. /**
  492. Valida os campos obrigatorios
  493. **/
  494. //Cliente
  495. if ($("#AD1_CODCLI").val() == "") {
  496. lRet = false;
  497. $("#orc-informar").html();
  498. new PNotify({
  499. title: 'Campo obrigatório',
  500. text: 'Preencha o campo Cliente!',
  501. type: 'error',
  502. });
  503. btnSlv.removeAttr('disabled');
  504. dialogOrc.modal('hide');
  505. $("#AD1_CODCLI").focus();
  506. }
  507. //Descrição
  508. if (lRet == true && $("#AD1_DESCRI").val() == "") {
  509. lRet = false;
  510. $("#orc-informar").html();
  511. new PNotify({
  512. title: 'Campo obrigatório',
  513. text: 'Preencha o campo Descrição!',
  514. type: 'error',
  515. });
  516. btnSlv.removeAttr('disabled');
  517. dialogOrc.modal('hide');
  518. $("#AD1_DESCRI").focus();
  519. }
  520. //Data de Entrega
  521. if (lRet == true && $("#AD1_VEND").val() == "") {
  522. lRet = false;
  523. $("#orc-informar").html();
  524. new PNotify({
  525. title: 'Campo obrigatório',
  526. text: 'Preencha o campo Previsão de Vendedor!',
  527. type: 'error',
  528. });
  529. btnSlv.removeAttr('disabled');
  530. dialogOrc.modal('hide');
  531. $("#AD1_VEND").focus();
  532. }
  533. //Data de término
  534. if (lRet == true && $("#AD1_DTFIM").val() == "") {
  535. lRet = false;
  536. $("#orc-informar").html();
  537. new PNotify({
  538. title: 'Campo obrigatório',
  539. text: 'Preencha o campo Data Término!',
  540. type: 'error',
  541. });
  542. btnSlv.removeAttr('disabled');
  543. dialogOrc.modal('hide');
  544. $("#AD1_DTFIM").focus();
  545. }
  546. //Estado
  547. if (lRet == true & $("#AD1_UF").val() == "") {
  548. lRet = false;
  549. $("#orc-informar").html();
  550. new PNotify({
  551. title: 'Campo obrigatório',
  552. text: 'Preencha o campo Estado!',
  553. type: 'error',
  554. });
  555. btnSlv.removeAttr('disabled');
  556. dialogOrc.modal('hide');
  557. $("#AD1_UF").focus();
  558. }
  559. //Cidade
  560. if (lRet == true & $("#AD1_CIDADE").val() == "") {
  561. lRet = false;
  562. $("#orc-informar").html();
  563. new PNotify({
  564. title: 'Campo obrigatório',
  565. text: 'Preencha o campo Cidade!',
  566. type: 'error',
  567. });
  568. btnSlv.removeAttr('disabled');
  569. dialogOrc.modal('hide');
  570. $("#AD1_CIDADE").focus();
  571. }
  572. if (lRet == true && $("#AD1_CONTCL").val() == "") {
  573. lRet = false;
  574. $("#orc-informar").html();
  575. new PNotify({
  576. title: 'Campo obrigatório',
  577. text: 'Preencha o campo Contato!',
  578. type: 'error',
  579. });
  580. btnSlv.removeAttr('disabled');
  581. dialogOrc.modal('hide');
  582. $("#AD1_CONTCL").focus();
  583. }
  584. if (lRet == true && $("#AD1_STATUS").val() == "") {
  585. lRet = false;
  586. $("#orc-informar").html();
  587. new PNotify({
  588. title: 'Campo obrigatório',
  589. text: 'Preencha o campo Status!',
  590. type: 'error',
  591. });
  592. btnSlv.removeAttr('disabled');
  593. dialogOrc.modal('hide');
  594. $("#AD1_STATUS").focus();
  595. }
  596. if (lRet == true && $("#AD1_STATUS").val()!= "") {
  597. //Suspensa/perdida
  598. if($("#AD1_STATUS").val() == "2" || $("#AD1_STATUS").val() == "3"){
  599. if ($("#AD1_ENCERR").val().trim()==""){
  600. lRet = false;
  601. $("#orc-informar").html();
  602. new PNotify({
  603. title: 'Campo obrigatório',
  604. text: 'Preencha o campo Encerramento!',
  605. type: 'error',
  606. });
  607. btnSlv.removeAttr('disabled');
  608. dialogOrc.modal('hide');
  609. $("#AD1_ENCERR").focus();
  610. } else {
  611. if ($("#AD1_MTVENC").val().trim()==""){
  612. lRet = false;
  613. $("#orc-informar").html();
  614. new PNotify({
  615. title: 'Campo obrigatório',
  616. text: 'Preencha o campo Motivo do Encerramento!',
  617. type: 'error',
  618. });
  619. btnSlv.removeAttr('disabled');
  620. dialogOrc.modal('hide');
  621. $("#AD1_MTVENC").focus();
  622. }
  623. }
  624. }
  625. }
  626. if (lRet == true && $("#AD1_HOMOLO").val() == "") {
  627. lRet = false;
  628. $("#orc-informar").html();
  629. new PNotify({
  630. title: 'Campo obrigatório',
  631. text: 'Preencha o campo Status da Homologação!',
  632. type: 'error',
  633. });
  634. btnSlv.removeAttr('disabled');
  635. dialogOrc.modal('hide');
  636. $("#AD1_HOMOLO").focus();
  637. }
  638. if (lRet == true && $("#AD1_SEGMEN").val() == "") {
  639. lRet = false;
  640. $("#orc-informar").html();
  641. new PNotify({
  642. title: 'Campo obrigatório',
  643. text: 'Preencha o campo Segmento!',
  644. type: 'error',
  645. });
  646. btnSlv.removeAttr('disabled');
  647. dialogOrc.modal('hide');
  648. $("#AD1_SEGMEN").focus();
  649. }
  650. if (lRet == true && $("#AD1_NIVOPO").val() == "") {
  651. lRet = false;
  652. $("#orc-informar").html();
  653. new PNotify({
  654. title: 'Campo obrigatório',
  655. text: 'Preencha o campo Nível!',
  656. type: 'error',
  657. });
  658. btnSlv.removeAttr('disabled');
  659. dialogOrc.modal('hide');
  660. $("#AD1_NIVOPO").focus();
  661. }
  662. //Valida a condição de pagamento
  663. if (lRet == true){
  664. dialogOrc.modal('hide');
  665. //Submete o formulário
  666. salvarOport(btnSlv);
  667. }
  668. })
  669. $('#btExcluir').click(function() {
  670. var lRet = true;
  671. var btnExc = $(this);
  672. //Desabilita o botão
  673. $('#btExcluir').attr({ 'disabled': 'disabled' });
  674. objDados = {
  675. AD1_FILIAL: $('#AD1_FILIAL').val(),
  676. AD1_NROPOR: $('#AD1_NROPOR').val()
  677. };
  678. $.ajax({
  679. type: "POST",
  680. url: "U_ExcOpt.apw?PR=<%=cLCodLogin%>",
  681. async: false,
  682. data: objDados
  683. }).fail(function(){
  684. bootbox.alert({
  685. title: "Exclusão da Homologação",
  686. message: "Não foi possível excluir a homologação.",
  687. backdrop: true,
  688. callback: function (result) {
  689. btnSlv.removeAttr('disabled');
  690. }
  691. });
  692. }).done(function(strXml) {
  693. if (strXml.indexOf('<META HTTP-EQUIV') >= 0 ) {
  694. $("html").html(strXml);
  695. return;
  696. }
  697. bootbox.alert({
  698. title: "Exclusão da Homologação",
  699. message: "A Homologação "+$('#AD1_NROPOR').val()+" foi excluída com sucesso.",
  700. backdrop: true,
  701. callback: function (result) {
  702. document.location.href = "U_Oportunidade.apw?PR=<%=cLCodLogin%>";
  703. }
  704. });
  705. });
  706. })
  707. /**
  708. // Função para salvar os arquivos anexados
  709. **/
  710. function cancDoctos(){
  711. //aguardar
  712. var x = [];
  713. var cAnexos = "";
  714. $('#dialogAnex').modal('hide');
  715. $(".dz-filename").each(function() { x.push($(this).text())});
  716. for (i = 0; i < x.length; i++) {
  717. cAnexos += x[i]+"|";
  718. }
  719. oObjDados = {'anexos':cAnexos};
  720. $.ajax({
  721. url: "U_DelDoctos.apw?PR=<%=cLCodLogin%>",
  722. data: oObjDados,
  723. type: "POST",
  724. async: false,
  725. success:
  726. function(retorno) {
  727. if (retorno.indexOf('<META HTTP-EQUIV') >= 0 ) {
  728. $("html").html(retorno);
  729. return;
  730. }
  731. }
  732. });
  733. }
  734. //Submete formulario
  735. function salvarOport(btnSlv){
  736. var formData = new FormData();
  737. var aFilesSend = new Array();
  738. var cAnexos = "";
  739. var x = [];
  740. var numoport = "";
  741. var titulo = "Manutenção da Homologação";
  742. var dialogSlv = bootbox.dialog({
  743. message: '<p class="text-center"><i class="fa fa-spin fa-spinner"></i>&nbsp;&nbsp;Salvando a homologação... Aguarde...</p>',
  744. closeButton: false
  745. });
  746. formData.append('AD1_FILIAL', $('#AD1_FILIAL').val() )
  747. formData.append('AD1_NROPOR', $('#AD1_NROPOR').val() )
  748. formData.append('AD1_DESCRI', $('#AD1_DESCRI').val() )
  749. formData.append('AD1_DESCOP', $('#AD1_DESCOP').val() )
  750. formData.append('AD1_CODCLI', $('#AD1_CODCLI').val() )
  751. formData.append('AD1_LOJCLI', $('#AD1_LOJCLI').val() )
  752. formData.append('AD1_CONTCL', $('#AD1_CONTCL').val() )
  753. formData.append('AD1_EMAIL1', $('#AD1_EMAIL1').val() )
  754. formData.append('AD1_PARC1', $('#AD1_PARC1').val() )
  755. formData.append('AD1_UF', $("#AD1_UF").val() )
  756. formData.append('AD1_CIDADE', $('#AD1_CIDADE').val() )
  757. formData.append('AD1_ENDER', $('#AD1_ENDER').val() )
  758. formData.append('AD1_DTINI', $('#AD1_DTINI').val() )
  759. formData.append('AD1_DTFIM', $('#AD1_DTFIM').val() )
  760. formData.append('AD1_REGION', $('#AD1_REGION').val() )
  761. formData.append('AD1_VEND', $('#AD1_VEND').val() )
  762. formData.append('AD1_PERCEI', $('#AD1_PERCEI').val() )
  763. formData.append('AD1_CONTAT', $('#AD1_CONTAT').val() )
  764. formData.append('AD1_HOMOLO', $('#AD1_HOMOLO').val() )
  765. formData.append('AD1_COMIRT', $('#AD1_COMIRT').val() )
  766. formData.append('AD1_SEGMEN', $('#AD1_SEGMEN').val() )
  767. formData.append('AD1_NIVOPO', $('#AD1_NIVOPO').val() )
  768. formData.append('AD1_MEMO', $('#AD1_MEMO').val() )
  769. formData.append('AD1_STATUS', $('#AD1_STATUS').val() )
  770. formData.append('AD1_ENCERR', $('#AD1_ENCERR').val() )
  771. formData.append('AD1_MTVENC', $('#AD1_MTVENC').val() )
  772. formData.append('OPCAO', $('#OPCAO').val() )
  773. $(".dz-filename").each(function() { x.push($(this).text())});
  774. for (i = 0; i < x.length; i++) {
  775. cAnexos += x[i]+"|";
  776. }
  777. formData.append('anexos', cAnexos)
  778. if($("#OPCAO").val() == "3"){
  779. msg = "A homologação foi incluída com sucesso.";
  780. titulo = "Inclusão de Homologação";
  781. operacao = "incluir";
  782. }
  783. if($("#OPCAO").val() == "4"){
  784. msg = "A homologação foi alterada com sucesso.";
  785. titulo = "Alteração de Homologação";
  786. operacao = "alterar";
  787. }
  788. if($("#OPCAO").val() == "5"){
  789. msg = "A homologação foi excluída com sucesso.";
  790. titulo = "Exclusão de Homologação";
  791. operacao = "excluir";
  792. }
  793. $.ajax({
  794. type: "POST",
  795. url: "U_SlvOpt.apw?PR=<%=cLCodLogin%>",
  796. async: false,
  797. data: formData,
  798. processData: false,
  799. contentType: false
  800. }).fail(function(){
  801. bootbox.alert({
  802. title: titulo,
  803. message: "Não foi possível "+operacao+" a homologação.",
  804. backdrop: true,
  805. callback: function (result) {
  806. btnSlv.removeAttr('disabled');
  807. dialogSlv.modal('hide');
  808. }
  809. });
  810. }).done(function(strXml) {
  811. if (strXml.indexOf('<META HTTP-EQUIV') >= 0 ) {
  812. $("html").html(strXml);
  813. return;
  814. }
  815. if (strXml == 'erro'||strXml == ''||strXml.indexOf("Expires") != -1||strXml.indexOf("invalid") != -1){
  816. if (strXml == ''){
  817. bootbox.alert({
  818. title: titulo,
  819. message: "Aguarde o prazo de 3 minutos para "+operacao+" uma nova homologação.",
  820. backdrop: true,
  821. callback: function (result) {
  822. btnSlv.removeAttr('disabled');
  823. dialogSlv.modal('hide');
  824. }
  825. });
  826. }else{
  827. bootbox.alert({
  828. title: titulo,
  829. message: "Falha ao "+operacao+" a homologação.",
  830. backdrop: true,
  831. callback: function (result) {
  832. btnSlv.removeAttr('disabled');
  833. dialogSlv.modal('hide');
  834. }
  835. });
  836. }
  837. }
  838. else {
  839. if($("#OPCAO").val() == "3"){
  840. numoport = " Foi gerada a homologação nº "+strXml+"."
  841. }
  842. bootbox.alert({
  843. title: titulo,
  844. message: msg+numoport,
  845. backdrop: true,
  846. callback: function (result) {
  847. document.location.href = "U_Oportunidade.apw?PR=<%=cLCodLogin%>";
  848. dialogSlv.modal('hide');
  849. }
  850. });
  851. }
  852. });
  853. }
  854. /**
  855. Função para anexar arquivos
  856. **/
  857. function Anexar(){
  858. $("#dialogAnex").modal('show');
  859. }
  860. </script>
  861. </body>
  862. </html>