AddOrc.aph 151 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766
  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. <style>
  32. body .btn {
  33. white-space: nowrap !important;
  34. display: inline;
  35. overflow-y: hidden;
  36. }
  37. </style>
  38. <!-- Specific Page Vendor CSS -->
  39. <link rel="stylesheet" href="assets/vendor/select2/css/select2.css" />
  40. <link rel="stylesheet" href="assets/vendor/select2-bootstrap-theme/select2-bootstrap.min.css" />
  41. <link rel="stylesheet" href="assets/vendor/jquery-datatables-bs3/assets/css/datatables.css" />
  42. <link rel="stylesheet" href="assets/vendor/bootstrap-fileupload/bootstrap-fileupload.min.css" />
  43. <link rel="stylesheet" href="assets/vendor/pnotify/pnotify.custom.css" />
  44. <!-- Theme CSS -->
  45. <link rel="stylesheet" href="assets/stylesheets/theme.css" />
  46. <!-- Skin CSS -->
  47. <link rel="stylesheet" href="assets/stylesheets/skins/default.css" />
  48. <!-- Theme Custom CSS -->
  49. <link rel="stylesheet" href="assets/stylesheets/theme-custom.css">
  50. <!-- Head Libs -->
  51. <script src="assets/vendor/modernizr/modernizr.js"></script>
  52. <script src="assets/vendor/style-switcher/style.switcher.localstorage.js"></script>
  53. <style>
  54. .flexContainer {
  55. display: flex;
  56. }
  57. .smsediticon {
  58. flex: 1;
  59. }
  60. .btedit { /* margem e largura da imagem */
  61. margin-left: -45px;
  62. width: 47px;
  63. }
  64. </style>
  65. </head>
  66. <body>
  67. <section class="body">
  68. <!-- start: header -->
  69. <header class="header">
  70. <%=cHeader%>
  71. </header>
  72. <!-- end: header -->
  73. <div class="inner-wrapper">
  74. <!-- start: sidebar -->
  75. <aside id="sidebar-left" class="sidebar-left">
  76. <div class="sidebar-header">
  77. <div class="sidebar-title">
  78. Menu
  79. </div>
  80. <div class="sidebar-toggle hidden-xs" data-toggle-class="sidebar-left-collapsed" data-target="html" data-fire-event="sidebar-left-toggle">
  81. <i class="fa fa-bars" aria-label="Toggle sidebar"></i>
  82. </div>
  83. </div>
  84. <div class="nano">
  85. <div class="nano-content">
  86. <nav id="menu" class="nav-main" role="navigation">
  87. <ul class="nav nav-main">
  88. <%=cMenus%>
  89. </ul>
  90. </nav>
  91. </div>
  92. <script>
  93. // Maintain Scroll Position
  94. if (typeof localStorage !== 'undefined') {
  95. if (localStorage.getItem('sidebar-left-position') !== null) {
  96. var initialPosition = localStorage.getItem('sidebar-left-position'),
  97. sidebarLeft = document.querySelector('#sidebar-left .nano-content');
  98. sidebarLeft.scrollTop = initialPosition;
  99. }
  100. }
  101. </script>
  102. </div>
  103. </aside>
  104. <!-- end: sidebar -->
  105. <section role="main" class="content-body">
  106. <header class="page-header">
  107. <h2><%=cPagina%></h2>
  108. <div class="right-wrapper pull-right">
  109. </div>
  110. </header>
  111. <!-- start: page -->
  112. <section class="panel">
  113. <!-- <header class="panel-heading">
  114. </header> -->
  115. <div class="panel-body">
  116. <div class="row">
  117. <div class="col-lg-12">
  118. <section class="panel form-wizard" id="w9">
  119. <form action = "" method="post" class="form-horizontal" id="formOrc">
  120. <div class="tabs">
  121. <ul class="nav nav-tabs nav-justify">
  122. <li class="active">
  123. <a href="#orc-informar" data-toggle="tab" class="text-center">Orçamento</a>
  124. </li>
  125. <li class="">
  126. <a href="#orc-margem" data-toggle="tab" class="text-center">Margem de Contribuição</a>
  127. </li>
  128. <!--
  129. <li class="">
  130. <a href="#orc-anexos" data-toggle="tab" class="text-center">Anexos</a>
  131. </li>
  132. -->
  133. <%
  134. private cTab := ""
  135. if cOpcao == 'edit'
  136. cTab += '<li class="">'
  137. cTab += ' <a href="#orc-parceiros" data-toggle="tab" class="text-center" >Parceiros</a>'
  138. cTab += '</li>'
  139. cTab += '<li class="">'
  140. cTab += ' <a href="#orc-etapas" data-toggle="tab" class="text-center" >Etapas</a>'
  141. cTab += '</li>'
  142. endif
  143. %>
  144. <%=cTab%>
  145. </ul>
  146. <div class="tab-content">
  147. <div id="orc-informar" class="tab-pane active">
  148. <!--
  149. <%=cVendedor%>
  150. -->
  151. <!-- linha 0: dados do Orçamento -->
  152. <%=cFilOrc%>
  153. <%=cCodOrc%>
  154. <div class="mb-md hidden-lg hidden-xl"></div>
  155. <div class="mb-md hidden-lg hidden-xl"></div>
  156. <!-- linha 1: dados da empresa -->
  157. <div class="row form-group">
  158. <div class="col-lg-6">
  159. <label class="control-label">Cliente
  160. <span class="required">*</span>
  161. </label>
  162. <%=cCliente%>
  163. </div>
  164. <div class="col-lg-5">
  165. <label class="control-label">Oportunidade</label>
  166. <%=cOport%>
  167. </div>
  168. <div class="col-lg-1">
  169. <label class="control-label">Revisão</label>
  170. <%=cRevOpt%>
  171. </div>
  172. </div>
  173. <!-- linha 3: input -->
  174. <div class="row form-group">
  175. <div class="col-lg-3">
  176. <label class="control-label">Tipo de Cliente</label>
  177. <%=cTpCliente%>
  178. </div>
  179. <div class="col-lg-2">
  180. <label class="control-label">Grupo de Tributação</label>
  181. <%=cGrpTrib%>
  182. </div>
  183. <div class="col-lg-5" style="display:none;">
  184. <label class="control-label">Tabela de Preço</label>
  185. <%=cTabela%>
  186. </div>
  187. <div class="col-lg-4">
  188. <label class="control-label">Contato
  189. <span class="required">*</span>
  190. </label>
  191. <%=cContato%>
  192. </div>
  193. <div class="col-lg-1">
  194. <label class="control-label">DDD
  195. <span class="required">*</span>
  196. </label>
  197. <%=cContDDD%>
  198. </div>
  199. <div class="col-lg-2">
  200. <label class="control-label">Telefone
  201. <span class="required">*</span>
  202. </label>
  203. <%=cContTel%>
  204. </div>
  205. </div>
  206. <!-- linha 4 input -->
  207. <div class="row form-group">
  208. <div class="col-lg-6">
  209. <label class="control-label">Cliente de Entrega
  210. <span class="required">*</span>
  211. </label>
  212. <%=cCliEntr%>
  213. </div>
  214. <div class="col-lg-6">
  215. <label class="control-label">Local de Entrega
  216. <span class="required">*</span>
  217. </label>
  218. <%=cLocalEnt%>
  219. </div>
  220. </div>
  221. <!-- linha 5 input -->
  222. <div class="row form-group">
  223. <div class="col-lg-6">
  224. <label class="control-label">Obra
  225. <span class="required">*</span>
  226. </label>
  227. <%=cObra%>
  228. </div>
  229. <div class="col-lg-6">
  230. <label class="control-label">Tipo da Obra
  231. <span class="required">*</span>
  232. </label>
  233. <%=cTpObra%>
  234. </div>
  235. </div>
  236. <!-- linha 6 input -->
  237. <div class="row form-group">
  238. <div class="col-lg-3">
  239. <label class="control-label">Status da Obra
  240. <span class="required">*</span>
  241. </label>
  242. <%=cStatusObra%>
  243. </div>
  244. <div class="col-lg-3">
  245. <label class="control-label">Previsão de Fechamento
  246. <span class="required">*</span>
  247. </label>
  248. <%=cPrevFecha%>
  249. </div>
  250. <div class="col-lg-2">
  251. <label class="control-label">Retorno</label>
  252. <%=cRetorno%>
  253. </div>
  254. <div class="col-lg-3">
  255. <label class="control-label">Condição de Pagamento
  256. <span class="required">*</span>
  257. </label>
  258. <%=cCondPag%>
  259. </div>
  260. </div>
  261. <!-- linha 7 input -->
  262. <div class="row form-group">
  263. <div class="col-lg-6">
  264. <label class="control-label">Intermediador</label>
  265. <%=cIntermed%>
  266. </div>
  267. <div class="col-lg-2">
  268. <label class="control-label">Estudo Luminotécnico
  269. <span class="required">*</span>
  270. </label>
  271. <%=cEstudo%>
  272. </div>
  273. <div class="col-lg-2">
  274. <label class="control-label">Num. Estudo</label>
  275. <%=cNumEst%>
  276. </div>
  277. </div>
  278. <!-- linha 8 input -->
  279. <div class="row form-group">
  280. <div class="col-lg-3">
  281. <label class="control-label">Segmento
  282. <span class="required">*</span>
  283. </label>
  284. <%=cSegmento%>
  285. </div>
  286. <div class="col-lg-2">
  287. <label class="control-label">Prospecção</label>
  288. <%=cProsp%>
  289. </div>
  290. <div class="col-lg-3">
  291. <label class="control-label">Prospectado Por</label>
  292. <%=cProspPor%>
  293. </div>
  294. <div class="col-lg-4">
  295. <label class="control-label">Regional
  296. <span class="required">*</span>
  297. </label>
  298. <%=cRegional%>
  299. </div>
  300. </div>
  301. <!-- linha 9: input -->
  302. <div class="row form-group">
  303. <div class="col-lg-6">
  304. <label class="control-label">Vendedor 2
  305. <span class="required">*</span>
  306. </label>
  307. <%=cVend2%>
  308. </div>
  309. <div class="col-lg-6">
  310. <label class="control-label">Vendedor 3</label>
  311. <%=cVend3%>
  312. </div>
  313. </div>
  314. <!-- linha 10: input -->
  315. <div class="row form-group">
  316. <div class="col-lg-4">
  317. <label class="control-label">Vendedor 4</label>
  318. <%=cVend4%>
  319. </div>
  320. <div class="col-lg-4">
  321. <label class="control-label">Especificado por</label>
  322. <%=cEspecif%>
  323. </div>
  324. <div class="col-lg-4">
  325. <label class="control-label">Negociadora
  326. <span class="required">*</span>
  327. </label>
  328. <%=cNegociad%>
  329. </div>
  330. </div>
  331. <!-- linha 11: input -->
  332. <div class="row form-group">
  333. <div class="col-lg-2">
  334. <label class="control-label">Validade</label>
  335. <%=cValidade%>
  336. </div>
  337. <div class="col-lg-2">
  338. <label class="control-label">Prazo de Embarque</label>
  339. <%=cPrazoEmb%>
  340. </div>
  341. <div class="col-lg-2">
  342. <label class="control-label">Tipo de Frete</label>
  343. <%=cTpFrete%>
  344. </div>
  345. <div class="col-lg-2">
  346. <label class="control-label">% Frete
  347. </label>
  348. <%=cPFrete%>
  349. </div>
  350. <div class="col-lg-2">
  351. <label class="control-label">Valor do Frete</label>
  352. <%=cValFre%>
  353. </div>
  354. <div class="col-lg-2">
  355. <label class="control-label">% RT</label>
  356. <%=cComRT%>
  357. </div>
  358. <!--
  359. <div class="col-lg-4">
  360. <label class="control-label">Transportadora</label>
  361. <%=cTransp%>
  362. </div>
  363. -->
  364. </div>
  365. <!-- linha 12 input -->
  366. <div class="row form-group">
  367. <div class="col-md-5">
  368. <label class="control-label" for="textareaDefault">Observação Comercial</label>
  369. <textarea class="form-control" rows="3" data-plugin-maxlength="" maxlength="240" id="CJ_OBS" name="CJ_OBS" <%=Iif(!lEdit,'disabled','')%>><%=cObsCom%></textarea>
  370. </div>
  371. <%=cMargemCont%>
  372. </div>
  373. <!-- linha 13 input -->
  374. <div class="row form-group">
  375. </div>
  376. <br>
  377. <br>
  378. <!-- tabela com os produtos do orçamento -->
  379. <div class="table-responsive" id="ItensOrc" style="overflow-x:visible">
  380. <section class="panel">
  381. <header class="panel-heading">
  382. <h2 class="panel-title">Itens do Orçamento</h2>
  383. </header>
  384. <table class="table table-bordered table-striped mb-none table-hover table-condensed" id="datatable-editable" aria-describedby="datatable-details_info">
  385. <thead>
  386. <tr>
  387. <%=cOrcCabec%>
  388. </tr>
  389. </thead>
  390. <tbody>
  391. <%=cOrcItens%>
  392. </tbody>
  393. </table>
  394. </section>
  395. </div>
  396. <br>
  397. <!-- botões com ações na tabela dos itens -->
  398. <%=cBtnItens%>
  399. <br>
  400. <br>
  401. <!-- Totais -->
  402. <div class="col-lg-13">
  403. <section class="panel">
  404. <header class="panel-heading">
  405. <h2 class="panel-title">Totais do Orçamento</h2>
  406. </header>
  407. <div class="panel-body">
  408. <div class="form-inline" align="center">
  409. <div class="row">
  410. <%=cTotalReg%>
  411. <br />
  412. <div class="col-sm-12">
  413. <label class="">Itens&nbsp;</label>
  414. <input class="form-control text-right" id="TOTAL_ITENS" name="TOTAL_ITENS" placeholder="0,00" disabled="" type="text" value=<%=Transform(nTVlrUnit,"@E 999,999,999,999.99")%>></input>
  415. &nbsp;&nbsp;&nbsp;&nbsp;
  416. <label class="">Impostos&nbsp;</label>
  417. <input class="form-control text-right" id="TOTAL_IMP" name="TOTAL_IMP" placeholder="0,00" disabled="" type="text" value=<%=Transform(nTImpostos,"@E 999,999,999,999.99")%>></input>
  418. &nbsp;&nbsp;&nbsp;&nbsp;
  419. <label class="">Frete&nbsp;</label>
  420. <input class="form-control text-right" id="TOTAL_FRETE" name="TOTAL_FRETE" placeholder="0,00" disabled="" type="text" value=<%=Transform(nTFrete,"@E 999,999,999,999.99")%>></input>
  421. &nbsp;&nbsp;&nbsp;&nbsp;
  422. <label class="text-weight-extrabold">Total&nbsp;</label>
  423. <input class="form-control text-right text-weight-bold" id="TOTAL_ORC" name="TOTAL_ORC" placeholder="0,00" disabled="" type="text" value=<%=Transform(nTTotal,"@E 999,999,999,999.99")%>></input>
  424. </div>
  425. </div>
  426. <br>
  427. <!--
  428. <div class="row">
  429. <div class="col-sm-12">
  430. <label class="">Desconto&nbsp;</label>
  431. <input class="form-control text-right" id="TOTAL_ACRESC" name="TOTAL_ACRESC" placeholder="0,00" disabled="" type="text" value=<%=Transform(nTAcresc,"@E 999,999,999,999.99")%>></input>
  432. <label class="">Total&nbsp;</label>
  433. <input class="form-control text-right" id="TOTAL_ORC" name="TOTAL_ORC" placeholder="0,00" disabled="" type="text" value=<%=Transform(nTTotal,"@E 999,999,999,999.99")%>></input>
  434. </div>
  435. </div>
  436. <div class="row">
  437. <div class="col-sm-12">
  438. <label class="">Comissão Prevista&nbsp;</label>
  439. <input class="form-control text-right" id="TOTAL_COM" name="TOTAL_COM" placeholder="0,00" disabled="" type="text" value=<%=Transform(nTComiss,"@E 999,999,999,999.99")%>></input>
  440. </div>
  441. </div>
  442. -->
  443. </div>
  444. </div>
  445. </section>
  446. </div>
  447. <br>
  448. <br>
  449. <div class="row form-group" align="center">
  450. <%=cBotoes%>
  451. </div>
  452. </div>
  453. <!-- aba de anexos
  454. <div id="orc-anexos" class="tab-pane">
  455. <div class="form-group">
  456. <label class="col-md-3 control-label">Anexar: </label>
  457. <div class="col-md-9">
  458. <div class="fileupload fileupload-new" data-provides="fileupload">
  459. <div class="input-append">
  460. <div class="uneditable-input">
  461. <i class="fa fa-file fileupload-exists"></i>
  462. <span class="fileupload-preview"></span>
  463. </div>
  464. <span class="btn btn-default btn-file">
  465. <span class="fileupload-exists">Selecionar</span>
  466. <span class="fileupload-new">Arquivo</span>
  467. <input type="file" name="anexo" id="anexo" />
  468. </span>
  469. <a href="#" id="btnOrcUpload" class="btn btn-default fileupload-exists" data-dismiss="fileupload">Gravar</a>
  470. </div>
  471. </div>
  472. </div>
  473. </div>
  474. <div class="row mg-files" data-sort-destination data-sort-id="media-gallery" id="OrcAnexos">
  475. <%=cAnexos%>
  476. </div>
  477. </div>
  478. -->
  479. <!-- aba margem -->
  480. <div class="tab-pane" id="orc-margem">
  481. <div class="panel panel-default">
  482. <div class="panel-body">
  483. <div class="form-inline" align="center">
  484. <div class="row">
  485. <div class="col-sm-12">
  486. <div class="row form-group">
  487. <div class="col-md-3">
  488. <label class="">% Margem de Contribuição do Orçamento&nbsp;</label>
  489. <input class="form-control text-right" id="MARGEM_ORC" name="MARGEM_ORC" placeholder="0,00" disabled="" type="text" value=<%=Transform(nMargem,"@E 999,999,999,999.99")%>></input>
  490. </div>
  491. <div class="col-md-3">
  492. <label class="">% Margem de Contribuição - Luminarias&nbsp;</label>
  493. <input class="form-control text-right" id="MARGEM_LUMI" name="MARGEM_LUMI" placeholder="0,00" disabled="" type="text" value=<%=Transform(nMLuminaria,"@E 999,999,999,999.99")%>></input>
  494. </div>
  495. <div class="col-md-3">
  496. <label class="">% Margem de Contribuição - Equipamentos&nbsp;</label>
  497. <input class="form-control text-right" id="MARGEM_EQUIP" name="MARGEM_EQUIP" placeholder="0,00" disabled="" type="text" value=<%=Transform(nMEquipa,"@E 999,999,999,999.99")%>></input>
  498. </div>
  499. <div class="col-md-3">
  500. <label class="">% Margem de Contribuição - Painel LED&nbsp;</label>
  501. <input class="form-control text-right" id="MARGEM_PAINEL" name="MARGEM_PAINEL" placeholder="0,00" disabled="" type="text" value=<%=Transform(nMPainel,"@E 999,999,999,999.99")%>></input>
  502. </div>
  503. </div>
  504. </div>
  505. </div>
  506. </div>
  507. <br>
  508. <br>
  509. <section class="panel">
  510. <header class="panel-heading">
  511. <h2 class="panel-title">Itens do Orçamento</h2>
  512. </header>
  513. <div class="table-responsive" style="margin-top: 15px;">
  514. <table class="table table-bordered table-striped mb-none table-hover dataTable no-footer">
  515. <thead>
  516. <tr>
  517. <th width="150px">Item</th>
  518. <th>Produto</th>
  519. <th width="150px">Tipo</th>
  520. <th width="150px">% Mark-Up</th>
  521. <th width="250px">% Margem Contribuição</th>
  522. </tr>
  523. </thead>
  524. <tbody id="tblItemMargem">
  525. <%=cMgItens%>
  526. </tbody>
  527. </table>
  528. </div>
  529. </section>
  530. </div>
  531. </div>
  532. </div>
  533. <!-- aba parceiros -->
  534. <div class="tab-pane" id="orc-parceiros">
  535. <div class="panel panel-default">
  536. <div class="panel-heading">
  537. <h3 class="panel-title">Parceiros para Comissão RT</h3>
  538. </div>
  539. <div class="panel-body">
  540. <button type="button" class="btn btn-primary" id="btnIncluir">
  541. <i class="fa fa-plus"></i> Incluir
  542. </button>
  543. <div class="table-responsive" style="margin-top: 15px;">
  544. <table class="table table-bordered table-striped mb-none table-hover dataTable no-footer">
  545. <thead>
  546. <tr>
  547. <th>Parceiro</th>
  548. <th>% RT Pagar</th>
  549. <th>% RT Aumentar</th>
  550. <th>Editar</th>
  551. </tr>
  552. </thead>
  553. <tbody id="tblParceiros">
  554. </tbody>
  555. </table>
  556. </div>
  557. </div>
  558. </div>
  559. </div>
  560. <div class="tab-pane" id="orc-etapas">
  561. <div class="panel panel-default">
  562. <div class="panel-heading">
  563. <h3 class="panel-title">Etapas da Nogiação</h3>
  564. </div>
  565. <div class="panel-body">
  566. <button type="button" class="btn btn-primary" id="btnIncluirNeg">
  567. <i class="fa fa-plus"></i> Incluir
  568. </button>
  569. <div class="table-responsive" style="margin-top: 15px;">
  570. <table class="table table-bordered table-striped mb-none table-hover dataTable no-footer">
  571. <thead>
  572. <tr>
  573. <th>Data</th>
  574. <th>Hora</th>
  575. <th>Usuário</th>
  576. <th>Histórico</th>
  577. </tr>
  578. </thead>
  579. <tbody id="tblNegociacao">
  580. </tbody>
  581. </table>
  582. </div>
  583. </div>
  584. </div>
  585. </div>
  586. </div>
  587. </div>
  588. </form>
  589. </section>
  590. </div>
  591. </div>
  592. </div>
  593. </section>
  594. <div class="modal fade" id="dialogCusto" tabindex="-1" role="dialog" aria-labelledby="basicModal" aria-hidden="true">
  595. <div class="modal-dialog">
  596. <div class="modal-content">
  597. <div class="modal-header">
  598. <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
  599. <h4 class="modal-title" id="myModalLabel">Custo e Preço de Venda do Produto</h4>
  600. </div>
  601. <div class="modal-body">
  602. <label class="control-label">Valor de Venda Unitário</label>
  603. <input id="VLRVENDA" name="VLRVENDA" class="form-control money text-right" placeholder="0,00" value="">
  604. <input type="hidden" id="itemAtu"/>
  605. <br>
  606. <label class="control-label">Valor do Custo Unitário</label>
  607. <input id="CUSTO" name="CUSTO" class="form-control money text-right" placeholder="0,00" value="">
  608. </div>
  609. <div class="modal-footer">
  610. <button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
  611. <button type="button" class="btn btn-primary" onclick="javascript:gravaCusto( $('#itemAtu').val(),$('#VLRVENDA').val(),$('#CUSTO').val() );">Confirmar</button>
  612. </div>
  613. </div>
  614. </div>
  615. </div>
  616. <div class="modal fade" id="dialogEntrega" tabindex="-1" role="dialog" aria-labelledby="basicModal" aria-hidden="true">
  617. <div class="modal-dialog">
  618. <div class="modal-content">
  619. <div class="modal-header">
  620. <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
  621. <h4 class="modal-title" id="myModalLabel">Local de Entrega</h4>
  622. </div>
  623. <div class="col-md-12">
  624. <label class="control-label">Estado</label>
  625. <select data-plugin-selectTwo data-live-search="true" id="UF_ENTREGA" name="UF_ENTREGA" class="form-control poulate placeholder mb-md" style="width: 400px;" data-plugin-options='{"placeholder":"Selecione um estado"}' onchange="javascript:getMunEnt($('#UF_ENTREGA').val());">
  626. <%=cOptUF%>
  627. </select>
  628. <br>
  629. <label class="control-label">Município</label>
  630. <select data-plugin-selectTwo data-live-search="true" id="MUN_ENTREGA" name="MUN_ENTREGA" class="form-control poulate placeholder mb-md" style="width: 500px;" data-plugin-options='{"placeholder":"Selecione um município"}' disabled>
  631. <%=cOptMun%>
  632. </select>
  633. </div>
  634. <div class="modal-footer">
  635. <br>
  636. <button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
  637. <button type="button" class="btn btn-primary" onclick="javascript:gravaEntrega( $('#UF_ENTREGA').val(),$('#MUN_ENTREGA').val() );">Confirmar</button>
  638. </div>
  639. </div>
  640. </div>
  641. </div>
  642. <!-- Modal Incluir Parceiro -->
  643. <div class="modal fade" id="dialogParceiro" tabindex="-1" role="dialog" aria-labelledby="basicModal" aria-hidden="true">
  644. <div class="modal-dialog">
  645. <div class="modal-content">
  646. <div class="modal-header">
  647. <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
  648. <h4 class="modal-title" id="tituloIncPar">Incluir Parceiro</h4>
  649. </div>
  650. <div class="modal-body">
  651. <form id="formParceiro" class="form-horizontal">
  652. <input type="hidden" name="operacao" id="operacao" value="create" />
  653. <div class="form-group">
  654. <div class="col-sm-12">
  655. <div class="alert alert-info">
  656. Preencha os dados do parceiro
  657. </div>
  658. </div>
  659. </div>
  660. <div class="form-group">
  661. <label class="col-sm-3 control-label">Parceiro</label>
  662. <div class="col-sm-9">
  663. <%=cLisPar%>
  664. </div>
  665. </div>
  666. <div class="form-group">
  667. <label class="col-sm-3 control-label">% RT Pagar</label>
  668. <div class="col-sm-9">
  669. <%
  670. private cCampoRTP := ""
  671. if cParUs $ HttpSession->CodVend
  672. cCampoRTP := '<input class="form-control" type="number" name="rtpagar" id="cmbRTPagar" value="" />'
  673. else
  674. cCampoRTP := '<select class="form-control" id="cmbRTPagar" name="rtpagar" onchange="atualizaRT(this.value)">'
  675. cCampoRTP += '<option value="">Selecione...</option>'
  676. cCampoRTP += '<option value="3">3%</option>'
  677. cCampoRTP += '<option value="5">5%</option>'
  678. cCampoRTP += '<option value="7">7%</option>'
  679. cCampoRTP += '<option value="10">10%</option>'
  680. cCampoRTP += '</select>'
  681. Endif
  682. %>
  683. <%=cCampoRTP%>
  684. </div>
  685. </div>
  686. <div class="form-group">
  687. <label class="col-sm-3 control-label">% RT Aumentar</label>
  688. <div class="col-sm-9">
  689. <%
  690. private cCampoRTA := ""
  691. if cParUs $ HttpSession->CodVend
  692. cCampoRTA := '<input class="form-control" type="number" name="rtaumentar" id="txtRTAumentar" value="" />'
  693. else
  694. cCampoRTA := '<select class="form-control" id="txtRTAumentar" name="rtaumentar" readonly>'
  695. cCampoRTA += '<option value="">Selecione...</option>'
  696. cCampoRTA += '<option value="5">5%</option>'
  697. cCampoRTA += '<option value="8.5">8,5%</option>'
  698. cCampoRTA += '<option value="12">12%</option>'
  699. cCampoRTA += '<option value="19">19%</option>'
  700. cCampoRTA += '</select>'
  701. Endif
  702. %>
  703. <%=cCampoRTA%>
  704. </div>
  705. </div>
  706. </form>
  707. </div>
  708. <div class="modal-footer">
  709. <button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
  710. <button type="button" class="btn btn-primary" id="btnSalvarParceiro">Salvar</button>
  711. </div>
  712. </div>
  713. </div>
  714. </div>
  715. <!-- Modal Incluir Etapa -->
  716. <div class="modal fade" id="dialogEtapas" tabindex="-1" role="dialog" aria-labelledby="basicModal" aria-hidden="true">
  717. <div class="modal-dialog">
  718. <div class="modal-content">
  719. <div class="modal-header">
  720. <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
  721. <h4 class="modal-title" id="tituloIncEtap">Incluir Etapa</h4>
  722. </div>
  723. <div class="modal-body">
  724. <form id="formEtapa" class="form-horizontal">
  725. <!-- <input type="hidden" name="operacao" id="operacao" value="create" /> -->
  726. <div class="form-group">
  727. <div class="col-sm-12">
  728. <div class="alert alert-info">
  729. Preencha os dados da Etapa
  730. </div>
  731. </div>
  732. </div>
  733. <div class="form-group">
  734. <label class="col-sm-3 control-label">Data</label>
  735. <div class="col-sm-9">
  736. <input type="text" class="form-control" name="dataEtapa" id="dataEtapa" value="" disabled/>
  737. </div>
  738. </div>
  739. <div class="form-group">
  740. <label class="col-sm-3 control-label">Hora</label>
  741. <div class="col-sm-9">
  742. <input type="text" class="form-control" name="horaEtapa" id="horaEtapa" value="" disabled/>
  743. </div>
  744. </div>
  745. <div class="form-group">
  746. <label class="col-sm-3 control-label">Usuário</label>
  747. <div class="col-sm-9">
  748. <input type="text" class="form-control" name="usuEtapa" id="usuEtapa" value="<%=cCodLogin%>" disabled/>
  749. </div>
  750. </div>
  751. <div class="form-group">
  752. <label class="col-sm-3 control-label">Histórico</label>
  753. <div class="col-sm-9">
  754. <textarea maxlenght="100" class="form-control" name="descriEtapa" id="descriEtapa" value=""></textarea>
  755. </div>
  756. </div>
  757. </form>
  758. </div>
  759. <div class="modal-footer">
  760. <button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
  761. <button type="button" class="btn btn-primary" id="btnSalvarEtapa">Salvar</button>
  762. </div>
  763. </div>
  764. </div>
  765. </div>
  766. <div style="display:none;">
  767. <form action="U_OrcUpload.apw?PR=<%=cLCodLogin%>" method="post" id="frmOrcUpload" enctype="multipart/form-data">
  768. <input type="hidden" name="dirOrc" value="<%=cDirOrc%>" />
  769. </form>
  770. </div>
  771. <footer class="panel-footer text-right">
  772. Desenvolvido por <img src="images/sms.png" />
  773. </footer>
  774. </div>
  775. </section>
  776. <!-- end: page -->
  777. <div id="dialogRemover" class="modal-block mfp-hide">
  778. <section class="panel">
  779. <header class="panel-heading">
  780. <h2 class="panel-title">Exclusão da linha</h2>
  781. </header>
  782. <div class="panel-body">
  783. <div class="modal-wrapper">
  784. <div class="modal-text">
  785. <p>Confirma a exclusão desta linha?</p>
  786. </div>
  787. </div>
  788. </div>
  789. <footer class="panel-footer">
  790. <div class="row">
  791. <div class="col-md-12 text-right">
  792. <button id="dialogConfirm" class="btn btn-primary">Confirma</button>
  793. <button id="dialogCancel" class="btn btn-default">Cancela</button>
  794. </div>
  795. </div>
  796. </footer>
  797. </section>
  798. </div>
  799. <div id="modalSuccess" class="modal-block modal-block-success mfp-hide">
  800. <section class="panel">
  801. <header class="panel-heading">
  802. <h2 class="panel-title">Success!</h2>
  803. </header>
  804. <div class="panel-body">
  805. <div class="modal-wrapper">
  806. <div class="modal-icon">
  807. <i class="fa fa-check"></i>
  808. </div>
  809. <div class="modal-text">
  810. <h4>Success</h4>
  811. <p>This is a successfull message.</p>
  812. </div>
  813. </div>
  814. </div>
  815. <footer class="panel-footer">
  816. <div class="row">
  817. <div class="col-md-12 text-right">
  818. <button class="btn btn-success modal-dismiss">OK</button>
  819. </div>
  820. </div>
  821. </footer>
  822. </section>
  823. </div>
  824. <!-- Vendor -->
  825. <script src="assets/vendor/jquery/jquery.js"></script>
  826. <script src="assets/vendor/jquery-browser-mobile/jquery.browser.mobile.js"></script>
  827. <script src="assets/vendor/bootstrap/js/bootstrap.js"></script>
  828. <script src="assets/vendor/nanoscroller/nanoscroller.js"></script>
  829. <script src="assets/vendor/bootstrap-datepicker/js/bootstrap-datepicker.js"></script>
  830. <script src="assets/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.pt-BR.min.js"></script>
  831. <script src="assets/vendor/magnific-popup/jquery.magnific-popup.js"></script>
  832. <script src="assets/vendor/jquery-placeholder/jquery-placeholder.js"></script>
  833. <script src="assets/vendor/fuelux/js/spinner.js"></script>
  834. <!-- Custom -->
  835. <script src="custom/js/bootbox.js"></script>
  836. <script src="custom/js/moeda.js"></script>
  837. <!-- Specific Page Vendor -->
  838. <script src="assets/vendor/select2/js/select2.js"></script>
  839. <script src="assets/vendor/jquery-datatables/media/js/jquery.dataTables.js"></script>
  840. <script src="assets/vendor/jquery-datatables/extras/TableTools/js/dataTables.tableTools.min.js"></script>
  841. <script src="assets/vendor/jquery-datatables-bs3/assets/js/datatables.js"></script>
  842. <script src="assets/vendor/jquery-datatables/media/js/jquery.dataTables.js"></script>
  843. <script src="assets/vendor/bootstrap-maxlength/bootstrap-maxlength.js"></script>
  844. <script src="assets/vendor/autosize/autosize.js"></script>
  845. <script src="assets/vendor/bootstrap-fileupload/bootstrap-fileupload.min.js"></script>
  846. <script src="assets/vendor/pnotify/pnotify.custom.js"></script>
  847. <script src="assets/vendor/bootstrap-select/bootstrap-select.min.js"></script>
  848. <!-- Theme Base, Components and Settings -->
  849. <script src="assets/javascripts/theme.js"></script>
  850. <!-- Theme Initialization Files -->
  851. <script src="assets/javascripts/theme.init.js"></script>
  852. <!-- Theme Custom -->
  853. <script src="assets/javascripts/theme.custom.js"></script>
  854. <script src="custom/js/jquery.maskMoney.js"></script>
  855. <script src="custom/js/portalMask.js"></script>
  856. <script type="text/javascript">
  857. var tblDesc = [];
  858. var optProd = '<%=cOptProd%>';
  859. var optCond = '<%=cOptCond%>';
  860. var optCli = '<%=cOptCli%>';
  861. var optInter = '<%=cOptInter%>';
  862. /**
  863. Desabilita o enter na pagina
  864. **/
  865. $(function () {
  866. $('form').bind("keypress", function (e) {
  867. if (e.keyCode == 13) return false;
  868. });
  869. // Evento do botão incluir
  870. $("#btnIncluir").click(function() {
  871. $("#formParceiro")[0].reset();
  872. $("#tituloIncPar")[0].childNodes[0].data = "Incluir Parceiro"
  873. $("#cmbParceiro").attr('readonly', false).removeAttr("style", "pointer-events: none;");;
  874. $("#cmbRTPagar").attr('readonly', false).removeAttr("style", "pointer-events: none;");;
  875. $("#txtRTAumentar").attr('readonly', true).attr("style", "pointer-events: none;");;
  876. $("#dialogParceiro").modal('show');
  877. });
  878. // Evento do botão incluir
  879. $("#btnIncluirNeg").click(function() {
  880. $("#dataEtapa").val(new Date().toLocaleDateString('pt-BR'));
  881. $("#horaEtapa").val(new Date().toLocaleTimeString('pt-BR'));
  882. $("#descriEtapa").val("");
  883. $("#dialogEtapas").modal('show');
  884. });
  885. carregarTabelaParceiros()
  886. carregarTabelaNegociacao()
  887. // Evento do botão salvar
  888. $("#btnSalvarParceiro").click(function() {
  889. var parceiro = $("#cmbParceiro").val();
  890. var rtpagar = $("#cmbRTPagar").val();
  891. var rtaumentar = $("#txtRTAumentar").val();
  892. var numOrc = $("#CJ_NUM").val();
  893. var operacao = $("#operacao").val()
  894. if (!parceiro) {
  895. alert("Selecione um parceiro!");
  896. return;
  897. }
  898. if (!rtpagar) {
  899. alert("Selecione o percentual RT Pagar!");
  900. return;
  901. }
  902. // Verifica se já existe o parceiro na tabela
  903. var existe = false;
  904. $("#datatable-editable tbody tr").each(function() {
  905. var codParceiro = $(this).find("td:first").text().split(" - ")[0];
  906. if (codParceiro === parceiro && operacao != "delete") {
  907. existe = true;
  908. return false;
  909. }
  910. });
  911. if (existe && operacao != 'delete') {
  912. alert("Este parceiro já foi adicionado!");
  913. return;
  914. }
  915. // Adiciona na tabela Z81
  916. if(operacao == 'edit'){
  917. editarParceiro(parceiro, rtpagar, rtaumentar, numOrc);
  918. }else if(operacao == 'delete'){
  919. excluirParceiro(parceiro, numOrc);
  920. }else{
  921. adicionarParceiro(parceiro, rtpagar, rtaumentar, numOrc);
  922. }
  923. $("#dialogParceiro").modal('hide');
  924. });
  925. $("#btnSalvarEtapa").click(function() {
  926. var descricao = $("#descriEtapa").val();
  927. var numOrc = $("#CJ_NUM").val();
  928. if (descricao == "") {
  929. alert("Informe uma descrição");
  930. return;
  931. }
  932. adicionarEtapa(descricao, numOrc);
  933. $("#dialogEtapas").modal('hide');
  934. });
  935. // Evento do botão salvar
  936. $("#btnSalvarParceiro").click(function() {
  937. var parceiro = $("#cmbParceiro").val();
  938. var rtpagar = $("#cmbRTPagar").val();
  939. var rtaumentar = $("#txtRTAumentar").val();
  940. var numOrc = $("#CJ_NUM").val();
  941. var operacao = $("#operacao").val()
  942. if (!parceiro) {
  943. alert("Selecione um parceiro!");
  944. return;
  945. }
  946. if (!rtpagar) {
  947. alert("Selecione o percentual RT Pagar!");
  948. return;
  949. }
  950. // Verifica se já existe o parceiro na tabela
  951. var existe = false;
  952. $("#datatable-editable tbody tr").each(function() {
  953. var codParceiro = $(this).find("td:first").text().split(" - ")[0];
  954. if (codParceiro === parceiro && operacao != "delete") {
  955. existe = true;
  956. return false;
  957. }
  958. });
  959. if (existe && operacao != 'delete') {
  960. alert("Este parceiro já foi adicionado!");
  961. return;
  962. }
  963. // Adiciona na tabela Z81
  964. if(operacao == 'edit'){
  965. editarParceiro(parceiro, rtpagar, rtaumentar, numOrc);
  966. }else if(operacao == 'delete'){
  967. excluirParceiro(parceiro, numOrc);
  968. }else{
  969. adicionarParceiro(parceiro, rtpagar, rtaumentar, numOrc);
  970. }
  971. $("#dialogParceiro").modal('hide');
  972. });
  973. });
  974. //Remove as opções da tabela e adiciona o scroll
  975. $(document).ready(function () {
  976. $('#datatable-editable').DataTable({
  977. "scrollX": true,
  978. "ordering": false,
  979. "searching": false,
  980. "paging": false,
  981. "autoWidth": true,
  982. "info": false
  983. });
  984. $('.dataTables_length').addClass('.w-auto'); //ajusta o tamanho das colunas automaticamente
  985. });
  986. //Formata campos de moeda
  987. $(function() {
  988. //$('#iCK_PRCVEN01').maskMoney({thousands:'.', decimal:','});
  989. $('.myformato').maskMoney({thousands:'.', decimal:','});
  990. $('.percentual').maskMoney({thousands:'.', decimal:',', suffix:'%',allowNegative:true});
  991. })
  992. function formate() {
  993. $('.myformato').maskMoney({thousands:'.', decimal:','});
  994. $('.percentual').maskMoney({thousands:'.', decimal:',', suffix:'%',allowNegative:true});
  995. }
  996. <%=cTblDesc%>
  997. function sleep(ms) {
  998. return new Promise(resolve => setTimeout(resolve, ms));
  999. }
  1000. //Manipulando as colunas
  1001. function ocultaColumn (colIndex) {
  1002. var table = document.getElementById('datatable-editable');
  1003. for (var r = 0; r < table.rows.length; r++)
  1004. table.rows[r].cells[colIndex].style.display = 'none';
  1005. }
  1006. function mostraColumn (colIndex) {
  1007. var table = document.getElementById('datatable-editable');
  1008. for (var r = 0; r < table.rows.length; r++)
  1009. table.rows[r].cells[colIndex].style.display = '';
  1010. }
  1011. /**
  1012. Monta a tela para selecionar o cliente
  1013. **/
  1014. function getCliente(btPesquisa){
  1015. var cCliBusca = $("#CJ_CLIENTE").val().toUpperCase();
  1016. // Usando a função buscarProdutos com um callback
  1017. buscarClientes(cCliBusca, function (clientesEncontrados) {
  1018. if (clientesEncontrados.length >= 1) {
  1019. var selectOptions = '<select id="clienteSelecionado" style="width:100%">';
  1020. var indiceHifen;
  1021. var selOptions = '';
  1022. clientesEncontrados.forEach(function (cliente) {
  1023. selectOptions += "<option value='" + cliente + "'>" + cliente + "</option>";
  1024. });
  1025. selectOptions += "</select>";
  1026. bootbox.dialog({
  1027. title: 'Clientes',
  1028. message: "<p>Selecione o cliente desejado:</p>" + selectOptions,
  1029. backdrop: false,
  1030. size: 'large',
  1031. buttons: {
  1032. confirm: {
  1033. label: 'Confirmar',
  1034. className: 'btn-primary',
  1035. callback: function () {
  1036. var clienteSelecionado = $("#clienteSelecionado").val();
  1037. // Atualiza o campo original com o produto escolhido
  1038. $("#CJ_CLIENTE").val(clienteSelecionado);
  1039. clienteSelecionado = formataCli(clienteSelecionado);
  1040. SelCliente(clienteSelecionado);
  1041. }
  1042. },
  1043. cancel: {
  1044. label: 'Cancelar',
  1045. className: 'btn-default',
  1046. callback: function () {
  1047. }
  1048. }
  1049. }
  1050. });
  1051. }
  1052. });
  1053. }
  1054. /**
  1055. Monta a tela para selecionar o local de entrega
  1056. **/
  1057. function getEntrega(btEntrega){
  1058. $("#dialogEntrega").modal('show');
  1059. }
  1060. /**
  1061. Busca as cidades do estado selecionado
  1062. **/
  1063. function getMunEnt(estado){
  1064. if(estado==""){
  1065. bootbox.alert("Selecione um estado para continuar!")
  1066. } else {
  1067. $.ajax({
  1068. url: "U_GetMunUF.apw?PR=<%=cLCodLogin%>",
  1069. type: "POST",
  1070. data: 'uf='+estado,
  1071. cache: false,
  1072. success: function(retorno){
  1073. if (retorno.toUpperCase().indexOf('META HTTP-EQUIV') >= 0 ) {
  1074. $("html").html(retorno);
  1075. return;
  1076. }
  1077. if(retorno==""){
  1078. bootbox.alert("Falha ao localizar os municípios, tente novamente!");
  1079. return;
  1080. }
  1081. //Preenche o select das cidades
  1082. document.getElementById('MUN_ENTREGA').innerText = null;
  1083. $("#MUN_ENTREGA").append(retorno);
  1084. $("#MUN_ENTREGA").removeAttr('disabled');
  1085. }
  1086. });
  1087. }
  1088. }
  1089. /**
  1090. Função para gravar o local de entrega no campo em tela
  1091. **/
  1092. function gravaEntrega(estado,mun){
  1093. $('#CJ_UFENT').val(estado+mun);
  1094. $("#dialogEntrega").modal('hide');
  1095. //busca o percentual de frete
  1096. atuVlrFrete();
  1097. }
  1098. /**
  1099. Função para formatar o código do cliente
  1100. **/
  1101. function formataCli(cli){
  1102. var indiceHifen = 0;
  1103. if(cli != ""){
  1104. // Encontra a posição do primeiro h?fen na string
  1105. indiceHifen = cli.indexOf("-");
  1106. //Pega apenas o codigo do cliente
  1107. if(indiceHifen > 0){
  1108. cli = cli.substring(0, indiceHifen);
  1109. }
  1110. //Remove espaços vazios
  1111. cli = cli.replace("/","").trim();
  1112. }
  1113. return cli
  1114. }
  1115. /**
  1116. Função para formatar o código do produto
  1117. **/
  1118. function formataProd(prod){
  1119. var indiceHifen = 0;
  1120. if(prod != ""){
  1121. // Encontra a posição do primeiro hífen na string
  1122. indiceHifen = prod.indexOf("--");
  1123. //Pega apenas o codigo do produto
  1124. if(indiceHifen > 0){
  1125. prod = prod.substring(0, indiceHifen);
  1126. }
  1127. //Remove espaços vazios
  1128. prod = prod.trim();
  1129. }
  1130. return prod
  1131. }
  1132. /**
  1133. Funcao excutada ao selecionar o cliente
  1134. **/
  1135. function SelCliente(cliente){
  1136. var lOK = false;
  1137. var dialogCli = bootbox.dialog({
  1138. message: '<p class="text-center"><i class="fa fa-spin fa-spinner"></i>&nbsp;&nbsp;Buscando dados do cliente. Aguarde...</p>',
  1139. closeButton: false
  1140. });
  1141. cliente = cliente.replace('/',"");
  1142. //Verifica se cliente tem títulos em atraso
  1143. $.ajax({
  1144. url: "U_GetSitCli.apw?PR=<%=cLCodLogin%>",
  1145. type: "POST",
  1146. data: 'cliente='+cliente,
  1147. cache: false,
  1148. success: function(data){
  1149. dialogCli.modal('hide');
  1150. if (data.toUpperCase().indexOf('META HTTP-EQUIV') >= 0 ) {
  1151. $("html").html(data);
  1152. return;
  1153. }
  1154. aCli = data.split('|#|');
  1155. if (aCli[1] != "" && aCli[1] != "::" && aCli[1].toUpperCase().indexOf("EXPIRES") == -1) {
  1156. var dialog = bootbox.dialog({
  1157. title: 'Mensagem do Cliente',
  1158. message: "<p>"+aCli[1]+"</p>",
  1159. backdrop: true,
  1160. buttons: {
  1161. ok: {
  1162. label: "OK"
  1163. }
  1164. }
  1165. });
  1166. }
  1167. //cliente bloqueado para comprar
  1168. if (aCli[0] == "0"){
  1169. //Bloqueia os campos para impossibilitar continuar a inclusão
  1170. atuModoCpo('B')
  1171. } else {
  1172. //Desbloqueia os campos
  1173. atuModoCpo('D')
  1174. $("#select2-CJ_TIPOCLI-container").html($("#CJ_TIPOCLI option[value='"+aCli[2]+"']").html());
  1175. $("#CJ_TIPOCLI").val(aCli[2]);
  1176. $("#CJ_GRPTRIB").val(aCli[3]);
  1177. if (aCli[4] != ""){
  1178. $("#CJ_CONDPAG").val(aCli[4]);
  1179. $("#select2-CJ_CONDPAG-container").html($("#CJ_CONDPAG option[value='"+aCli[4]+"']").html());
  1180. }
  1181. $("#CJ_CONDPAG").removeAttr('disabled');
  1182. $("#CJ_UFENT").val(aCli[5]);
  1183. $("#CJ_VEND").val(aCli[6]);
  1184. $("#select2-CJ_VEND-container").html($("#CJ_VEND option[value='"+aCli[6]+"']").html());
  1185. //Adiciona as opções do cliente intermediador
  1186. if($("#CJ_CLIINTE")[0].options.length <= 2){
  1187. $("#CJ_CLIINTE").append($.parseHTML(optInter));
  1188. }
  1189. $('.selectpicker').selectpicker('render');
  1190. $('.selectpicker').selectpicker('refresh');
  1191. //na alteração já traz o select preenchido
  1192. if($("#CJ_CLIENT")[0].options.length <= 1){
  1193. $("#CJ_CLIENT").append($.parseHTML(optCli));
  1194. }
  1195. //$('.selectpicker').selectpicker('render');
  1196. //$('.selectpicker').selectpicker('refresh');
  1197. //$('#CJ_CLIENT').selectpicker('val', cliente);
  1198. //$('#CJ_CLIENT').val(cliente).select2();
  1199. $("#CJ_NROPOR").focus();
  1200. }
  1201. }
  1202. });
  1203. }
  1204. /**
  1205. Atualiza o modo de edição do campo
  1206. **/
  1207. function atuModoCpo(cTipo){
  1208. var aCampos = ["CJ_CLIENTE","CJ_NROPOR","CJ_XCONTAT","CJ_XCONDDD","CJ_XCONTEL","CJ_CLIENT","CJ_OBRA","CJ_YOBRATP","CJ_VEND6","CJ_TERMOME","CJ_CONDPAG","CJ_CLIINTE","CJ_RETORNO","CJ_LUMINOT","CJ_SEGMENT","CJ_PROPECC","CJ_REGIAO","CJ_VEND","CJ_VEND3","CJ_VEND4","CJ_CODESP","CJ_VEND7","CJ_VALIDA","CJ_PRZEMB","CJ_TPFRETE","CJ_PERCFRT","CJ_FRETE","CJ_OBS","CK_PRODUTO01","btEndEntrega"]; //"CJ_UFENT",
  1209. var nI = 0;
  1210. //Atualiza os campos
  1211. for (nI = 0; nI < (aCampos.length) ; nI++) {
  1212. if(cTipo == 'B'){
  1213. $("#"+aCampos[nI]).attr("disabled","");
  1214. } else {
  1215. $("#"+aCampos[nI]).removeAttr('disabled');
  1216. $("#"+aCampos[nI]).attr("disabled",false);
  1217. }
  1218. }
  1219. }
  1220. /**
  1221. Atualiza o endereço de entrega ao mudar o cliente de entrega
  1222. **/
  1223. function atuLocEnt(){
  1224. var cliEntrega = $("#CJ_CLIENT").val();
  1225. var dialogCli = bootbox.dialog({
  1226. message: '<p class="text-center"><i class="fa fa-spin fa-spinner"></i>&nbsp;&nbsp;Buscando endereço de entrega. Aguarde...</p>',
  1227. closeButton: false
  1228. });
  1229. if(cliEntrega != ""){
  1230. $.ajax({
  1231. url: "U_GetEndCli.apw?PR=<%=cLCodLogin%>",
  1232. type: "POST",
  1233. data: 'cliente='+cliEntrega,
  1234. cache: false,
  1235. success: function(retorno){
  1236. dialogCli.modal('hide');
  1237. if (retorno.toUpperCase().indexOf('META HTTP-EQUIV') >= 0 ) {
  1238. $("html").html(retorno);
  1239. return;
  1240. }
  1241. $("#CJ_UFENT").val(retorno);
  1242. }
  1243. });
  1244. }
  1245. }
  1246. /**
  1247. Preenche a revisão da oportunidade
  1248. **/
  1249. function atuRevOpt(){
  1250. var cOport = $("#CJ_NROPOR").val();
  1251. var cobjOport = $("#CJ_NROPOR")[0];
  1252. var cRevisa = cobjOport.options[cobjOport.selectedIndex].text.substr(7,2)
  1253. var dialog = bootbox.dialog({
  1254. message: '<p class="text-center"><i class="fa fa-spin fa-spinner"></i>&nbsp;&nbsp;Buscando dados da oportunidade... Aguarde...</p>',
  1255. closeButton: false
  1256. });
  1257. if(cOport != ""){
  1258. $("#CJ_REVISA").val(cRevisa);
  1259. $.ajax({
  1260. url: "U_GetDadosOpt.apw?PR=<%=cLCodLogin%>",
  1261. data: 'oportunidade='+cOport+'&revisao='+cRevisa,
  1262. type: "POST",
  1263. async: false,
  1264. success:
  1265. function(dados) {
  1266. if (dados.toUpperCase().indexOf('META HTTP-EQUIV') >= 0 ) {
  1267. $("html").html(dados);
  1268. return;
  1269. } else {
  1270. if (dados.substr(0, 2) == "OK") {
  1271. aVlr = dados.substr(5).split('|#|');
  1272. //Atualiza a comissão
  1273. $("#CJ_COMISTR").val(aVlr[0]);
  1274. //Atualiza o vendedor
  1275. $("#CJ_VEND3").append($.parseHTML(aVlr[1]));
  1276. $('.selectpicker').selectpicker('render');
  1277. $('.selectpicker').selectpicker('refresh');
  1278. $("#select2-CJ_VEND3-container").html($("#CJ_VEND3 option[value='"+aVlr[2]+"']").html());
  1279. } else {
  1280. bootbox.alert("Falha ao localizar os dados da oportunidade!");
  1281. }
  1282. }
  1283. }
  1284. });
  1285. } else {
  1286. $("#CJ_REVISA").val("");
  1287. }
  1288. dialog.modal('hide');
  1289. }
  1290. /**
  1291. Atualiza o valor do frete
  1292. **/
  1293. function atuVlrFrete(){
  1294. var cUFEnt = $("#CJ_UFENT").val().substr(0,2)
  1295. var cMunEnt = $("#CJ_UFENT").val().substr(2,5)
  1296. if(cUFEnt != ""){
  1297. $.ajax({
  1298. url: "U_GetPerFrt.apw?PR=<%=cLCodLogin%>",
  1299. data: 'uf='+cUFEnt+'&mun='+cMunEnt,
  1300. type: "POST",
  1301. async: false,
  1302. success:
  1303. function(frete) {
  1304. if (frete.toUpperCase().indexOf('META HTTP-EQUIV') >= 0 ) {
  1305. $("html").html(frete);
  1306. return;
  1307. } else {
  1308. //Atualiza o frete
  1309. $("#CJ_PERCFRT").removeAttr("disabled");
  1310. $("#CJ_PERCFRT").val(frete);
  1311. }
  1312. }
  1313. });
  1314. }
  1315. }
  1316. /**
  1317. Valida o estudo
  1318. **/
  1319. function vldEstudo(){
  1320. var cEstudo = $("#CJ_LUMINOT").val();
  1321. if(cEstudo == "1"){
  1322. $("#CJ_REGLUMI").removeAttr('disabled');
  1323. } else {
  1324. $("#CJ_REGLUMI").val("");
  1325. $("#select2-CJ_REGLUMI-container").html($("#CJ_REGLUMI option[value='']").html());
  1326. $("#CJ_REGLUMI").attr("disabled","");
  1327. }
  1328. }
  1329. /**
  1330. Valida a prospecção
  1331. **/
  1332. function vldProspec(){
  1333. var cProspec = $("#CJ_PROPECC").val();
  1334. if(cProspec == "S"){
  1335. $("#CJ_PROSCOD").removeAttr('disabled');
  1336. } else {
  1337. $("#CJ_PROSCOD").val("");
  1338. $("#select2-CJ_PROSCOD-container").html($("#CJ_PROSCOD option[value='']").html());
  1339. $("#CJ_PROSCOD").attr("disabled","");
  1340. }
  1341. }
  1342. /**
  1343. Valida o campo prospectado por
  1344. **/
  1345. function vldProsPor(){
  1346. var cProspec = $("#CJ_PROPECC").val();
  1347. var cProsPor = $("#CJ_PROSCOD").val();
  1348. if(cProspec == "S" && cProsPor == ""){
  1349. bootbox.alert("Informe o campo Prospectado Por!")
  1350. }
  1351. if (cProspec == "N"){
  1352. $("#CJ_PROSCOD").val("");
  1353. $("#select2-CJ_PROSCOD-container").html($("#CJ_PROSCOD option[value='']").html());
  1354. $("#CJ_PROSCOD").attr("disabled","");
  1355. }
  1356. }
  1357. /**
  1358. Valida a condição de pagamento selecionada
  1359. **/
  1360. function vldCond(){
  1361. var valDesc = 0;
  1362. $.ajax({
  1363. url: "U_VldCondPg.apw?PR=<%=cLCodLogin%>",
  1364. data: 'condPgto='+$("#CJ_CONDPAG").val(),
  1365. type: "POST",
  1366. async: false,
  1367. success:
  1368. function(retorno) {
  1369. valDesc = parseFloat(retorno);
  1370. //Atualiza a variável
  1371. $("#DESCCOND").val(valDesc);
  1372. if (valDesc > 0) {
  1373. bootbox.alert("Condição de pagamento com desconto. Ao salvar o orçamento será aplicado o desconto de "+mascaraValor(valDesc.toFixed(2))+"%.");
  1374. } else {
  1375. $("#DESCCOND").val("0");
  1376. }
  1377. //Atualiza o valor do produto quando altera a condição de pagamento
  1378. if ($('#iCK_PRCVEN01').val()!=$('#CK_PRCVEN01').val() || $("#DESCCOND").val()=="0"){
  1379. AtuValProd();
  1380. }
  1381. }
  1382. });
  1383. }
  1384. /**
  1385. Busca dados do cliente a partir do código ou nome
  1386. **/
  1387. function buscarClientes(cCliBusca,callback){
  1388. if (cCliBusca != ""){
  1389. $.ajax({
  1390. url: "U_GetLikeCli.apw?PR=<%=cLCodLogin%>",
  1391. data: 'digit=' + cCliBusca,
  1392. method: "POST",
  1393. async: false,
  1394. success: function( clientes ) {
  1395. if (clientes.toUpperCase().indexOf('META HTTP-EQUIV') >= 0 ||clientes.toUpperCase().indexOf("EXPIRES") != -1) {
  1396. $("html").html(clientes);
  1397. callback([]); // Retorna uma lista vazia em caso de erro
  1398. }
  1399. if (clientes == "") {
  1400. $("#CJ_CLIENTE").empty();
  1401. bootbox.alert('Não foram encontrados clientes para o termo pesquisado!');
  1402. callback([]); // Retorna uma lista vazia em caso de erro
  1403. } else {
  1404. $("#CJ_CLIENTE").empty(); // Limpa o conteúdo existente
  1405. var selectpicker = $("<select>", {
  1406. class: "selectpicker",
  1407. title: "Selecione um cliente"
  1408. });
  1409. selectpicker.append($.parseHTML(clientes));
  1410. // Adiciona os valores dos elementos <option> listaClientes
  1411. var listaClientes = selectpicker.find('option').map(function () {
  1412. return $(this).text();//Pegar o texto completo
  1413. }).get();
  1414. $("#CJ_CLIENTE").append(selectpicker);
  1415. callback(listaClientes); // Retorna a lista de clientes encontrados
  1416. }
  1417. }
  1418. });
  1419. } else {
  1420. bootbox.alert("Informe o cliente para busca!");
  1421. }
  1422. }
  1423. /**
  1424. Monta a tela para selecionar o produto
  1425. **/
  1426. function getProduto(btPesquisa){
  1427. var objProd = btPesquisa.closest("td").find("[autocomplete=off]");
  1428. var cProdBusca = $("#"+objProd.attr("name")).val().toUpperCase();
  1429. //var nItem = btPesquisa[0].id.substr(8,2);
  1430. var nItem = objProd.attr("name").substr(10);
  1431. $("#PROXIMO").val(nItem);
  1432. // Usando a função buscarProdutos com um callback
  1433. buscarProdutos(cProdBusca, nItem, function (produtosEncontrados) {
  1434. if (produtosEncontrados.length >= 1) {
  1435. var selectOptions = '<select id="produtoSelecionado" style="width:100%">';
  1436. //var selectOptions = '<select data-plugin-selectTwo class="form-control populate placeholder" data-plugin-options="{ "placeholder": "Selecione...", "allowClear": false }" id="produtoSelecionado">';
  1437. var indiceHifen;
  1438. var selOptions = '';
  1439. produtosEncontrados.forEach(function (produto) {
  1440. selectOptions += "<option value='" + produto + "'>" + produto + "</option>";
  1441. //selOptions+= "{text: '"+produto+"',value: '"+produto+"'},";
  1442. });
  1443. selectOptions += "</select>";
  1444. bootbox.dialog({
  1445. title: 'Produtos',
  1446. message: "<p>Selecione o produto desejado:</p>" + selectOptions,
  1447. backdrop: false,
  1448. size: 'large',
  1449. buttons: {
  1450. confirm: {
  1451. label: 'Confirmar',
  1452. className: 'btn-primary',
  1453. callback: function () {
  1454. var produtoSelecionado = $("#produtoSelecionado").val();
  1455. // Atualiza o campo original com o produto escolhido
  1456. $("#CK_PRODUTO" + nItem).val(produtoSelecionado);
  1457. produtoSelecionado = formataProd(produtoSelecionado);
  1458. gatProduto(objProd,produtoSelecionado);
  1459. }
  1460. },
  1461. cancel: {
  1462. label: 'Cancelar',
  1463. className: 'btn-default',
  1464. callback: function () {
  1465. }
  1466. }
  1467. }
  1468. });
  1469. }
  1470. });
  1471. }
  1472. /**
  1473. Busca dados do produto a partir do código ou descrição
  1474. **/
  1475. function buscarProdutos(cProdBusca,item,callback){
  1476. var cliente = formataCli($("#CJ_CLIENTE").val());
  1477. var tabpreco = $("#CJ_TABELA").val();
  1478. //var item = $("#PROXIMO").val();
  1479. if (cProdBusca != ""){
  1480. if(cliente == ""){
  1481. bootbox.alert("Selecione o cliente para continuar!");
  1482. return false;
  1483. }
  1484. $.ajax({
  1485. url: "U_GetLikePro.apw?PR=<%=cLCodLogin%>",
  1486. data: 'cliente=' + cliente + '&tabela=' + tabpreco + '&digit=' + cProdBusca,
  1487. method: "POST",
  1488. async: false,
  1489. success: function( produtos ) {
  1490. if (produtos.toUpperCase().indexOf('META HTTP-EQUIV') >= 0 ||produtos.toUpperCase().indexOf("EXPIRES") != -1) {
  1491. $("html").html(produtos);
  1492. callback([]); // Retorna uma lista vazia em caso de erro
  1493. }
  1494. if (produtos == "") {
  1495. LimpaLinha(item);
  1496. bootbox.alert('Não foram encontrados produtos para o termo pesquisado!');
  1497. callback([]); // Retorna uma lista vazia em caso de erro
  1498. } else {
  1499. $("#CK_PRODUTO" + item).empty(); // Limpa o conteudo existente
  1500. /*
  1501. // Preenche o select dos produtos
  1502. $("#CK_PRODUTO" + item).empty(); // Limpa o conteudo existente
  1503. $("#CK_PRODUTO"+item).append($.parseHTML(produtos));
  1504. $('.selectpicker').selectpicker('render');
  1505. $('.selectpicker').selectpicker('refresh');
  1506. optProd = produtos;
  1507. */
  1508. var selectpicker = $("<select>", {
  1509. class: "selectpicker",
  1510. title: "Selecione um produto"
  1511. });
  1512. selectpicker.append($.parseHTML(produtos));
  1513. // Adiciona os valores dos elementos <option> listaProdutos
  1514. var listaProdutos = selectpicker.find('option').map(function () {
  1515. //return $(this).val();
  1516. ////Luiz SMS - 04/01/2024
  1517. return $(this).text();//Pegar o texto completo
  1518. }).get();
  1519. $("#CK_PRODUTO" + item).append(selectpicker);
  1520. callback(listaProdutos); // Retorna a lista de produtos encontrados
  1521. }
  1522. }
  1523. });
  1524. } else {
  1525. bootbox.alert("Informe o produto para busca!");
  1526. }
  1527. }
  1528. /**
  1529. Converte o texto para maiusculo
  1530. **/
  1531. function Maiuscula(cItemAtu){
  1532. var cCodBar = $("#"+cItemAtu.attr("id")).val().toUpperCase();
  1533. $(cItemAtu).val(cCodBar);
  1534. }
  1535. /**
  1536. Gatilho acionado ao selecionar o produto para preencher os valores
  1537. **/
  1538. function gatProduto(objInput,produtoSelecionado) {
  1539. var nItens = parseFloat($("#PROXIMO").val());
  1540. var lProdOK = true;
  1541. var nItem = objInput.attr("name").substr(10);
  1542. var dialogProd = bootbox.dialog({
  1543. message: '<p class="text-center"><i class="fa fa-spin fa-spinner"></i>&nbsp;&nbsp;Buscando dados do produto... Aguarde...</p>',
  1544. closeButton: false
  1545. });
  1546. //valida a digitação duplicada de itens
  1547. for (i = 1; i<=nItens; i++) {
  1548. cItem = String(i);
  1549. if (parseInt(i) < 10 ){cItem = "0"+String(i)};
  1550. cItmOrc = $("#CK_ITEM"+cItem).val().substr(0,1);
  1551. if(cItmOrc != "x" && nItem != cItem ) {
  1552. if ($('#CK_PRODUTO'+cItem).val() == objInput.val()){
  1553. lProdOK = false;
  1554. $('#CK_PRODUTO'+nItem).val("");
  1555. $("#select2-CK_PRODUTO"+cItem+"-container").html("Selecione...");
  1556. }
  1557. }
  1558. }
  1559. if (!lProdOK ) {
  1560. bootbox.alert("Este item já foi informado no orçamento!");
  1561. dialogProd.modal('hide');
  1562. }
  1563. //Fim da validação de itens duplicados
  1564. if ( ! objInput.is('[readonly]') && $.trim(objInput.val()) != "" && lProdOK ) {
  1565. jQuery.ajax({
  1566. type: "POST",
  1567. url: "U_GATPROD.APW?PR=<%=cLCodLogin%>",
  1568. data: 'produto='+encodeURIComponent(produtoSelecionado)+'&tabela='+$("#CJ_TABELA").val()+'&frete='+$("#CJ_PERCFRT").val()+'&comisRT='+$("#CJ_COMISTR").val(),
  1569. error: function (jqXHR, textStatus, error){
  1570. dialogProd.modal('hide');
  1571. bootbox.alert("Falha ao recuperar informações!");
  1572. console.log(error);
  1573. },
  1574. success: function( data ) {
  1575. var aVlr;
  1576. var cMsgErro;
  1577. var nItem = objInput.attr("name").substr(10);
  1578. var przEmb = parseInt($("#CJ_PRZEMB").val());
  1579. var nComis = 0;
  1580. dialogProd.modal('hide');
  1581. if (data.substr(0, 2) == "OK") {
  1582. aVlr = data.substr(3).split('|#|');
  1583. if (aVlr[18] != "" && aVlr[18] != "::") {
  1584. var dialog = bootbox.dialog({
  1585. title: 'Mensagem do Produto',
  1586. message: "<p>"+aVlr[18]+"</p>",
  1587. backdrop: true,
  1588. buttons: {
  1589. ok: {
  1590. label: "OK"
  1591. }
  1592. }
  1593. });
  1594. }
  1595. //Validação do produto chamada no VldPortalSMS
  1596. if(aVlr[17] == "1"){
  1597. //Limpa a quantidade caso tenha alterado o produto
  1598. $.trim($("input[name='CK_QTDVEN"+nItem+"']").val(""));
  1599. //Validação do prazo de embarque
  1600. if (aVlr[19] != ""){
  1601. bootbox.alert("Este item não tem estrutura de produção.<br>O prazo de entrega será acrescido de "+aVlr[19]+" dia(s).");
  1602. przEmb = przEmb+parseInt(aVlr[19]);
  1603. }
  1604. $("input[id='CK_PRZEMB"+nItem+"']").val(String(przEmb));
  1605. $.trim($("input[name='CK_PRCVEN"+nItem+"']").val(aVlr[1]));
  1606. $.trim($("input[name='iCK_PRCVEN"+nItem+"']").val(aVlr[1]));
  1607. //Verifica tipo e grupo do produto
  1608. if(aVlr[20]=="PS" && aVlr[13]=="SERV"){
  1609. bootbox.confirm({
  1610. title: "Custo e Preço de Venda do Serviço",
  1611. message: "Deseja informar o Custo e o Preço de Venda do serviço?",
  1612. buttons: {
  1613. cancel: {
  1614. label: 'Não'
  1615. },
  1616. confirm: {
  1617. label: 'Sim'
  1618. }
  1619. },
  1620. callback: function (result) {
  1621. if (result){
  1622. //Chama tela para informar os dois campos
  1623. informaCusto(nItem);
  1624. }
  1625. }
  1626. });
  1627. }
  1628. nVlrVenda = $('#CK_PRCVEN'+nItem).maskMoney('unmasked')[0];
  1629. nPerFrete = $('#CJ_PERCFRT').maskMoney('unmasked')[0];
  1630. nRT = $('#CJ_COMISTR').maskMoney('unmasked')[0];
  1631. //soma percentual de frete e RT
  1632. if(nVlrVenda > 0 ){
  1633. if(nPerFrete > 0 ){
  1634. nVlrVenda = nVlrVenda + ((nVlrVenda * nPerFrete)/100);
  1635. }
  1636. if(nRT > 0 ){
  1637. nVlrVenda = nVlrVenda + ((nVlrVenda * nRT)/100);
  1638. }
  1639. }
  1640. $("input[name='CK_UM"+nItem+"']").val(aVlr[0]);
  1641. $.trim($("input[name='CK_PRCVEN"+nItem+"']").val(nVlrVenda)); //aVlr[1]
  1642. $.trim($("input[name='iCK_PRCVEN"+nItem+"']").val(nVlrVenda)); //aVlr[1]
  1643. $.trim($("input[name='CK_XVALICM"+nItem+"']").val(aVlr[2]));
  1644. $.trim($("input[name='CK_XVALIPI"+nItem+"']").val(aVlr[3]));
  1645. $.trim($("input[name='CK_XICMST"+nItem+"']").val(aVlr[4]));
  1646. $.trim($("input[name='CK_LOCAL"+nItem+"']").val(aVlr[15]));
  1647. //Comissão
  1648. $.trim($("input[name='B1_COMIS"+nItem+"']").val(aVlr[21]));
  1649. atuComis(nItem);
  1650. //Input hidden
  1651. $("input[id='ALIQ_IPI"+nItem+"']").val(aVlr[5]);
  1652. $("input[id='ALIQ_ICMS"+nItem+"']").val(aVlr[6]);
  1653. $("input[id='ALIQ_ST"+nItem+"']").val(aVlr[12]);
  1654. $("input[id='BASE_IPI"+nItem+"']").val(aVlr[11]);
  1655. $("input[id='BASE_ICMS"+nItem+"']").val(aVlr[9]);
  1656. $("input[id='BASE_ST"+nItem+"']").val(aVlr[10]);
  1657. $("input[id='VAL_ICMS"+nItem+"']").val(aVlr[2]);
  1658. $("input[id='VAL_ST"+nItem+"']").val(aVlr[4]);
  1659. $("input[id='VAL_IPI"+nItem+"']").val(aVlr[3]);
  1660. $("input[id='QTD_EMB"+nItem+"']").val(aVlr[7]);
  1661. $("input[id='CK_TES"+nItem+"']").val(aVlr[8]);
  1662. $("input[id='GRUPO"+nItem+"']").val(aVlr[13]);
  1663. $("input[id='QTDMIN"+nItem+"']").val(aVlr[14]);
  1664. $("input[id='EST_DISP"+nItem+"']").val(aVlr[16]);
  1665. $("input[id='VENCIMENTO"+nItem+"']").val(aVlr[15]);
  1666. //Salva o valor do imposto pro preço cheio
  1667. if($("#IMP_PRCTAB"+nItem).val() == 0){
  1668. nPrcImp = parseFloat(aVlr[3].replace(",","."))+parseFloat(aVlr[4].replace(",","."));
  1669. $("#IMP_PRCTAB"+nItem).val(nPrcImp);
  1670. }
  1671. //Limpa os inputs, caso tenha trocado o produto
  1672. $("input[name='CK_QTDVEN"+nItem+"']").removeAttr('disabled');
  1673. $("input[name='CK_VALOR"+nItem+"']").val("0,00");
  1674. } else {
  1675. LimpaLinha(nItem);
  1676. }
  1677. } else {
  1678. if (data.substr(0, 4) == "ERRO") {
  1679. cMsgErro = data.substr(5);
  1680. bootbox.alert(cMsgErro);
  1681. LimpaLinha(nItem);
  1682. } else {
  1683. cMsgErro = "Houve falha ao localizar os dados do produto. Tente novamente!";
  1684. bootbox.alert(cMsgErro);
  1685. LimpaLinha(nItem);
  1686. // Quando ocorre erro no protheus
  1687. console.log(data);
  1688. }
  1689. }
  1690. }
  1691. });
  1692. } else if ($.trim(objInput.val()) == "" ) {
  1693. LimpaLinha(nItem);
  1694. }
  1695. return false;
  1696. }
  1697. /**
  1698. Atualiza a comissão do item
  1699. **/
  1700. function atuComis(cItem){
  1701. var nComisRT = parseFloat($('#CJ_COMISTR').val().replace(",","."));
  1702. var nComisB1 = parseFloat($('#B1_COMIS'+cItem).val().replace(",","."));
  1703. var cVend3 = $("#CJ_VEND3").val();
  1704. var nComis = 0;
  1705. if(cVend3 != ""){
  1706. nComis = nComisB1/2;
  1707. } else {
  1708. nComis = nComisB1;
  1709. }
  1710. if(nComisRT > 0){
  1711. nComis = (nComis / ((100 + nComisRT)/100))
  1712. }
  1713. $.trim($("input[name='CK_COMIS1"+cItem+"']").val(nComis));
  1714. $.trim($("input[name='CK_COMIS3"+cItem+"']").val(nComis));
  1715. }
  1716. /**
  1717. Funcao para informar o custo do serviço
  1718. **/
  1719. function informaCusto(cItemAtu) {
  1720. $("#itemAtu").val(cItemAtu);
  1721. $("#dialogCusto").modal('show');
  1722. }
  1723. /**
  1724. Funcao que grava o custo do serviço
  1725. **/
  1726. function gravaCusto(itemAtu,prcVenda,custo){
  1727. var qtd = parseFloat($("#CK_QTDVEN"+itemAtu).val().replace('.',"").replace(",","."));
  1728. var totalCusto = 0;
  1729. custoUnt = $("#CUSTO").maskMoney('unmasked')[0];
  1730. if(qtd == 0){qtd = 1};
  1731. totalCusto = custoUnt * qtd;
  1732. $("#CK_CUSTO"+itemAtu).val(mascaraValor(totalCusto.toFixed(2)));
  1733. $("#CK_PRCVEN"+itemAtu).val(prcVenda);
  1734. $("#iCK_PRCVEN"+itemAtu).val(prcVenda);
  1735. $("#dialogCusto").modal('hide');
  1736. }
  1737. /**
  1738. Funcao de calculo do total do item
  1739. **/
  1740. function TotalItem(cItemAtu) {
  1741. var nQuant;
  1742. var nVlrUnit;
  1743. var nVlrTabela;
  1744. var nVlrCusto;
  1745. var nTotalCusto;
  1746. var nTotalUnit;
  1747. var nICMS;
  1748. var nICMSST;
  1749. var nIPI;
  1750. var nPerDesc = 0;
  1751. var nValFrete;
  1752. var nVlrTotal;
  1753. var nBaseIPI;
  1754. var nBaseICMS;
  1755. var nBaseST;
  1756. var cFaixaDesc;
  1757. var nPerCom = 0;
  1758. var nValCom = 0;
  1759. var nValDesc = 0;
  1760. cCodProd = formataProd($("#CK_PRODUTO"+cItemAtu).val());
  1761. nQuant = parseFloat($("#CK_QTDVEN"+cItemAtu).val().replace('.',"").replace(",","."));
  1762. nVlrTabela = $('#iCK_PRCVEN'+cItemAtu).maskMoney('unmasked')[0];
  1763. nVlrCusto = $('#CK_CUSTO'+cItemAtu).maskMoney('unmasked')[0];
  1764. //nVlrTabela = $('#CK_PRCVEN'+cItemAtu).maskMoney('unmasked')[0];
  1765. //nVlrUnit = $('#iCK_PRCVEN'+cItemAtu).maskMoney('unmasked')[0];
  1766. nValFrete = $("#CJ_FRETE").maskMoney('unmasked')[0];
  1767. if ($('#CK_DESCONT'+cItemAtu).maskMoney('unmasked')[0] != 0){
  1768. nPerDesc = $("#CK_DESCONT"+cItemAtu).maskMoney('unmasked')[0];
  1769. }
  1770. nVlrUnit = nVlrTabela - (nVlrTabela*(nPerDesc/100));
  1771. nVlrTotal = nVlrUnit*nQuant;
  1772. nTotalUnit = nVlrTotal;
  1773. nValDesc = nVlrTabela*(nPerDesc/100);
  1774. nTotalCusto = nVlrCusto*nQuant;
  1775. //Tratamento para os impostos
  1776. nICMS = $('#CK_XVALICM'+cItemAtu).maskMoney('unmasked')[0];
  1777. nICMSST = $('#CK_XICMST'+cItemAtu).maskMoney('unmasked')[0];
  1778. nIPI = $("#CK_XVALIPI"+cItemAtu).maskMoney('unmasked')[0];
  1779. //Aliquotas
  1780. nAliqIPI = parseFloat($("#ALIQ_IPI"+cItemAtu).val());
  1781. nAliqICMS = parseFloat($("#ALIQ_ICMS"+cItemAtu).val());
  1782. nAliqST = parseFloat($("#ALIQ_ST"+cItemAtu).val());
  1783. //Valores Base
  1784. nBaseIPI = parseFloat($("#BASE_IPI"+cItemAtu).val());
  1785. nBaseICMS = parseFloat($("#BASE_ICMS"+cItemAtu).val());
  1786. nBaseST = parseFloat($("#BASE_ST"+cItemAtu).val());
  1787. //Valor do imposto
  1788. nIPI = nBaseIPI * nQuant * (nAliqIPI /100)
  1789. nICMS = nBaseICMS * nQuant * (nAliqICMS /100)
  1790. nICMSST = nQuant * parseFloat($("#VAL_ST"+cItemAtu).val().replace(",","."));
  1791. //nIPI = nVlrTotal*(nAliqIPI /100)
  1792. //nICMS = nVlrTotal*(nAliqICMS /100)
  1793. //nIPI = nQuant * parseFloat($("#VAL_IPI"+cItemAtu).val().replace(",","."));
  1794. //nICMS = nQuant * parseFloat($("#VAL_ICMS"+cItemAtu).val().replace(",","."));
  1795. //nICMSST = nQuant * parseFloat($("#VAL_ST"+cItemAtu).val().replace(",","."));
  1796. nVlrTotal = nVlrTotal+nIPI+nICMSST;
  1797. nTotalUnit = nVlrTotal / nQuant;
  1798. //Atualiza o campo do total
  1799. $.trim($("#CK_XVALICM"+cItemAtu).val(mascaraValor(nICMS.toFixed(2))));
  1800. $.trim($("#CK_XVALIPI"+cItemAtu).val(mascaraValor(nIPI.toFixed(2))));
  1801. $.trim($("#CK_XICMST"+cItemAtu).val(mascaraValor(nICMSST.toFixed(2))));
  1802. $.trim($("#CK_PRCVEN"+cItemAtu).val(mascaraValor(nVlrUnit.toFixed(2))));
  1803. $.trim($("#CK_CUSTO"+cItemAtu).val(mascaraValor(nTotalCusto.toFixed(2))));
  1804. $.trim($("#CK_VALOR"+cItemAtu).val(mascaraValor(nVlrTotal.toFixed(2))));
  1805. $.trim($("#CK_XPRCIMP"+cItemAtu).val(mascaraValor(nTotalUnit.toFixed(2))));
  1806. //Atualiza o total geral
  1807. TotalGeral();
  1808. //Atualiza a margem de contribuição
  1809. atuComis(cItemAtu);
  1810. atuMargem();
  1811. }
  1812. /**
  1813. Total Geral
  1814. **/
  1815. function TotalGeral() {
  1816. var nItens = parseFloat($("#PROXIMO").val());
  1817. var i;
  1818. var nVlrTabela = 0;
  1819. var nVlrUnit = 0;
  1820. var nVlrUniSD = 0;
  1821. var nICMS = 0;
  1822. var nICMSST = 0;
  1823. var nIPI = 0;
  1824. var nImpostos = 0;
  1825. var nValFrete = 0;
  1826. var nTotal = 0;
  1827. var nAcresc = 0;
  1828. var nDescCond = 0;
  1829. var nQuant = 0;
  1830. var nValCom = 0;
  1831. var cCodProd;
  1832. var cItmOrc;
  1833. var nTotQuant = 0.00;
  1834. var nPerDesc = 0;
  1835. var nValDesc = 0;
  1836. var nVlrSDesc = 0
  1837. for (i = 1; i<=nItens; i++) {
  1838. cItem = String(i);
  1839. if (parseInt(i) < 10 ){cItem = "0"+String(i)};
  1840. cCodProd = formataProd($("#CK_PRODUTO"+cItem).val());
  1841. cItmOrc = $("#CK_ITEM"+cItem).val().substr(0,1);
  1842. if(cItmOrc != "x") {
  1843. nQuant = parseFloat($("#CK_QTDVEN"+cItem).val().replace('.',"").replace(",","."));
  1844. nTotQuant += nQuant;
  1845. nVlrUniSD += nQuant * $('#iCK_PRCVEN'+cItem).maskMoney('unmasked')[0];
  1846. nVlrUnit += nQuant * $('#CK_PRCVEN'+cItem).maskMoney('unmasked')[0];
  1847. nICMS += $('#CK_XVALICM'+cItem).maskMoney('unmasked')[0];
  1848. nICMSST += $('#CK_XICMST'+cItem).maskMoney('unmasked')[0];
  1849. nIPI += $("#CK_XVALIPI"+cItem).maskMoney('unmasked')[0];
  1850. nValCom += $("#VAL_COM"+cItem).maskMoney('unmasked')[0];
  1851. nTotal += $('#CK_VALOR'+cItem).maskMoney('unmasked')[0];
  1852. if ($('#CK_DESCONT'+cItem).maskMoney('unmasked')[0] != 0){
  1853. nPerDesc = $("#CK_DESCONT"+cItem).maskMoney('unmasked')[0];
  1854. nValDesc += nVlrUniSD*(nPerDesc/100);
  1855. }
  1856. }
  1857. }
  1858. nImpostos = nICMSST+nIPI; //nICMS
  1859. nValFrete = $("#CJ_FRETE").maskMoney('unmasked')[0];
  1860. /*
  1861. //Verifica acrescimo da condição de pagamento
  1862. $.ajax({
  1863. url: "U_ValAcresc.apw?PR=<%=cLCodLogin%>",
  1864. data: 'condPgto='+$("#CJ_CONDPAG").val()+'&valor='+nTotal,
  1865. type: "POST",
  1866. async: false,
  1867. success:
  1868. function(retorno) {
  1869. //nAcresc = parseFloat(retorno);
  1870. nAcresc = parseFloat(nTotal*(retorno/100))
  1871. }
  1872. });
  1873. */
  1874. //nDescCond = parseFloat((nTotal-nTotalProm)*($("#DESCCOND").val()/100)); //desconto da condição de pagamento
  1875. nDescCond = parseFloat(nTotal*($("#DESCCOND").val()/100)); //desconto da condição de pagamento
  1876. nTotal = (nTotal+nValFrete+nAcresc)-nDescCond;
  1877. nPrcImp = parseFloat($("#IMP_PRCTAB"+cItem).val().replace(",","."));
  1878. nVlrSDesc = nVlrUniSD+nImpostos;
  1879. //nVlrSDesc = nVlrUnit+nPrcImp;
  1880. //nVlrSDesc = nVlrUnit+nImpostos;
  1881. nTotalIt = nVlrUnit;
  1882. //Atualiza os totais
  1883. $("#TOTAL_ITENS_NODESC").val($.trim(mascaraValor(nVlrUniSD.toFixed(2))));
  1884. $("#TOTAL_NODESC_IMP").val($.trim(mascaraValor((nVlrSDesc).toFixed(2))));
  1885. $("#TOTAL_QITENS").val($.trim(mascaraValor(nTotQuant.toFixed(2))));
  1886. $("#TOTAL_ITENS").val($.trim(mascaraValor((nTotalIt).toFixed(2))));
  1887. $("#TOTAL_IMP").val($.trim(mascaraValor(nImpostos.toFixed(2))));
  1888. $("#TOTAL_FRETE").val($("#CJ_FRETE").val());
  1889. $("#TOTAL_ACRESC").val($.trim(mascaraValor(nDescCond.toFixed(2))));
  1890. $("#TOTAL_ORC").val($.trim(mascaraValor(nTotal.toFixed(2))));
  1891. $("#TOTAL_COM").val($.trim(mascaraValor(nValCom.toFixed(2))));
  1892. }
  1893. /**
  1894. Atualiza a margem de contribuição
  1895. **/
  1896. function atuMargem() {
  1897. var nItens = parseFloat($("#PROXIMO").val());
  1898. var i;
  1899. var nMC_T = 0;
  1900. var nMCTotIt = 0;
  1901. var nMC_L = 0;
  1902. var nMCTotIt_L = 0;
  1903. var nMC_E = 0;
  1904. var nMCTotIt_E = 0;
  1905. var nMC_P = 0;
  1906. var nMCTotIt_P = 0;
  1907. var nMLuminaria = 0;
  1908. var nMEquipa = 0;
  1909. var nMPainel = 0;
  1910. var cTR = "";
  1911. var dialogProd = bootbox.dialog({
  1912. message: '<p class="text-center"><i class="fa fa-spin fa-spinner"></i>&nbsp;&nbsp;Calculando margem... Aguarde...</p>',
  1913. closeButton: false
  1914. });
  1915. cCliente = $("#CJ_CLIENT").val();
  1916. cCodVend = $("#CJ_VEND").val();
  1917. cTpFrete = $("#CJ_TPFRETE").val();
  1918. nPerFrete = parseFloat($("#CJ_PERCFRT").val().replace(",","."));
  1919. nComisRT = parseFloat($('#CJ_COMISTR').val().replace(",","."));
  1920. for (i = 1; i<=nItens; i++) {
  1921. cItem = String(i);
  1922. if (parseInt(i) < 10 ){cItem = "0"+String(i)};
  1923. cCodProd = formataProd($("#CK_PRODUTO"+cItem).val());
  1924. cItmOrc = $("#CK_ITEM"+cItem).val();
  1925. if(cItmOrc.substr(0,1) != "x") {
  1926. nCusto = $('#CK_CUSTO'+cItem).maskMoney('unmasked')[0];
  1927. nValor = $('#CK_VALOR'+cItem).maskMoney('unmasked')[0];
  1928. nQtd = $('#CK_QTDVEN'+cItem).val();
  1929. cTes = $("#CK_TES"+cItem).val();
  1930. nComis2 = parseFloat($('#CK_COMIS1'+cItem).val().replace(",","."));
  1931. if( $("#CJ_VEND3").val() != ""){
  1932. nComis3 = parseFloat($('#CK_COMIS3'+cItem).val().replace(",","."));
  1933. //nComis3 = nComis2
  1934. }
  1935. total = $("#TOTAL_ITENS").maskMoney('unmasked')[0];
  1936. //Chama função para calculo dos impostos
  1937. jQuery.ajax({
  1938. type: "POST",
  1939. url: "U_MARGEMPT.APW?PR=<%=cLCodLogin%>",
  1940. data: 'item='+cItmOrc+'+&produto='+encodeURIComponent(cCodProd)+'&tes='+cTes+'&cliente='+cCliente+'&custo='+nCusto+'&qtd='+nQtd+'&valor='+nValor+'&vendedor='+cCodVend+'&comis2='+nComis2+'&comis3='+nComis3+'&RT='+nComisRT+'&tpfrete='+cTpFrete+'&perfrete='+nPerFrete+'&total='+total+'&mct='+nMC_T+'&mcit='+nMCTotIt,
  1941. error: function (jqXHR, textStatus, error){
  1942. dialogProd.modal('hide');
  1943. bootbox.alert("Falha ao recuperar informações!");
  1944. console.log(error);
  1945. },
  1946. success: function( data ) {
  1947. if (data.substr(0, 2) == "OK") {
  1948. aMargem = data.substr(3).split('|#|');
  1949. cTR+= aMargem[0];
  1950. nMC_T+= parseFloat(aMargem[1].replace(".","").replace(",","."));
  1951. nMCTotIt+= parseFloat(aMargem[2].replace(".","").replace(",","."));
  1952. nMC_L+= parseFloat(aMargem[3].replace(".","").replace(",","."));
  1953. nMCTotIt_L+= parseFloat(aMargem[4].replace(".","").replace(",","."));
  1954. nMC_E+= parseFloat(aMargem[5].replace(".","").replace(",","."));
  1955. nMCTotIt_E+= parseFloat(aMargem[6].replace(".","").replace(",","."));
  1956. nMC_P+= parseFloat(aMargem[7].replace(".","").replace(",","."));
  1957. nMCTotIt_P+= parseFloat(aMargem[8].replace(".","").replace(",","."));
  1958. if(i>=nItens){
  1959. //atualiza a tela
  1960. if(nMCTotIt_L>0){
  1961. nMLuminaria = (nMC_L / nMCTotIt_L)*100;
  1962. }
  1963. if(nMCTotIt_E>0){
  1964. nMEquipa = (nMC_E / nMCTotIt_E)*100;
  1965. }
  1966. if(nMCTotIt_P>0){
  1967. nMPainel = (nMC_P / nMCTotIt_P)*100;
  1968. }
  1969. $("#MARGEM_ORC").val(mascaraValor(nMC_T.toFixed(2)));
  1970. $("#MARGEM_LUMI").val(mascaraValor(nMLuminaria.toFixed(2)));
  1971. $("#MARGEM_EQUIP").val(mascaraValor(nMEquipa.toFixed(2)));
  1972. $("#MARGEM_PAINEL").val(mascaraValor(nMPainel.toFixed(2)));
  1973. //recarrega a tabela
  1974. $("#tblItemMargem").html(cTR);
  1975. dialogProd.modal('hide');
  1976. }
  1977. }
  1978. }
  1979. });
  1980. }
  1981. }
  1982. }
  1983. /**
  1984. Atualiza o valor do produto ao trocar a condição de pagamento
  1985. **/
  1986. function AtuValProd(){
  1987. var nItens = parseFloat($("#PROXIMO").val());
  1988. var i;
  1989. var nvalorcheio = 0;
  1990. for (i = 1; i<=nItens; i++) {
  1991. cItem = String(i);
  1992. if (parseInt(i) < 10 ){cItem = "0"+String(i)};
  1993. cItmOrc = $("#CK_ITEM"+cItem).val().substr(0,1);
  1994. if(cItmOrc != "x") {
  1995. nvalorcheio = $('#CK_PRCVEN'+cItem).val();
  1996. $('#iCK_PRCVEN'+cItem).val(nvalorcheio);
  1997. TotalItem(cItem);
  1998. }
  1999. }
  2000. }
  2001. /**
  2002. Verifica se a quantidade é multiplo da embalagem
  2003. **/
  2004. function VldQtd(cItemAtu) {
  2005. var nQuant;
  2006. var nQtdEmb;
  2007. var nQtdMin;
  2008. var resto;
  2009. var cCodProd = formataProd($("#CK_PRODUTO"+cItemAtu).val());
  2010. var lRet = true;
  2011. //Valida a quantidade por embalagem
  2012. nQtdEmb = parseFloat($("#QTD_EMB"+cItemAtu).val());
  2013. nQtdMin = $("#QTDMIN"+cItemAtu).val();
  2014. nQuant = parseFloat($("#CK_QTDVEN"+cItemAtu).val().replace('.',"").replace(",","."));
  2015. if (nQuant > 0){
  2016. //Valida a quantidade da embalagem
  2017. if (nQtdEmb > 0){
  2018. if (nQuant < (nQtdEmb)){
  2019. bootbox.alert("A quantidade deve ser múltiplo de "+nQtdEmb.toString()+".");
  2020. $("#CK_QTDVEN"+cItemAtu).val("");
  2021. lRet = false;
  2022. return false;
  2023. } else {
  2024. resto = nQuant % nQtdEmb;
  2025. if (resto != 0 ){
  2026. bootbox.alert("A quantidade deve ser múltiplo de "+nQtdEmb.toString()+".");
  2027. $("#CK_QTDVEN"+cItemAtu).val("");
  2028. lRet = false;
  2029. return false;
  2030. }
  2031. }
  2032. }
  2033. /*
  2034. var dialogProd = bootbox.dialog({
  2035. message: '<p class="text-center"><i class="fa fa-spin fa-spinner"></i>&nbsp;&nbsp;Buscando dados do produto... Aguarde...</p>',
  2036. closeButton: false
  2037. });
  2038. //Atualiza o preço de acordo com a quantidade
  2039. // Encontra a posição do primeiro h?fen na string
  2040. indiceHifen = cCodProd.indexOf("--");
  2041. //Pega apenas o codigo do produto
  2042. cCodProd = cCodProd.substring(0, indiceHifen);
  2043. //Remove espaços vazios
  2044. cCodProd = cCodProd.trim();
  2045. jQuery.ajax({
  2046. type: "POST",
  2047. url: "U_GATPROD.APW?PR=<%=cLCodLogin%>",
  2048. data: 'produto='+encodeURIComponent(cCodProd)+'&tabela='+$("#CJ_TABELA").val(),
  2049. error: function (jqXHR, textStatus, error){
  2050. dialogProd.modal('hide');
  2051. bootbox.alert("Falha ao recuperar informações!");
  2052. console.log(error);
  2053. },
  2054. success: function( data ) {
  2055. var aVlr;
  2056. var cMsgErro;
  2057. dialogProd.modal('hide');
  2058. if (data.substr(0, 2) == "OK") {
  2059. aVlr = data.substr(3).split('|#|');
  2060. $("input[name='CK_UM"+cItemAtu+"']").val(aVlr[0]);
  2061. $.trim($("input[name='CK_PRCVEN"+cItemAtu+"']").val(aVlr[1]));
  2062. $.trim($("input[name='iCK_PRCVEN"+cItemAtu+"']").val(aVlr[1]));
  2063. $.trim($("input[name='CK_XVALICM"+cItemAtu+"']").val(aVlr[2]));
  2064. $.trim($("input[name='CK_XVALIPI"+cItemAtu+"']").val(aVlr[3]));
  2065. $.trim($("input[name='CK_XICMST"+cItemAtu+"']").val(aVlr[4]));
  2066. $.trim($("input[name='CK_LOCAL"+cItemAtu+"']").val(aVlr[15]));
  2067. //Input hidden
  2068. $("input[id='ALIQ_IPI"+cItemAtu+"']").val(aVlr[5]);
  2069. $("input[id='ALIQ_ICMS"+cItemAtu+"']").val(aVlr[6]);
  2070. $("input[id='ALIQ_ST"+cItemAtu+"']").val(aVlr[12]);
  2071. $("input[id='BASE_IPI"+cItemAtu+"']").val(aVlr[11]);
  2072. $("input[id='BASE_ICMS"+cItemAtu+"']").val(aVlr[9]);
  2073. $("input[id='BASE_ST"+cItemAtu+"']").val(aVlr[10]);
  2074. $("input[id='VAL_ICMS"+cItemAtu+"']").val(aVlr[2]);
  2075. $("input[id='VAL_ST"+cItemAtu+"']").val(aVlr[4]);
  2076. $("input[id='VAL_IPI"+cItemAtu+"']").val(aVlr[3]);
  2077. $("input[id='QTD_EMB"+cItemAtu+"']").val(aVlr[7]);
  2078. $("input[id='CK_TES"+cItemAtu+"']").val(aVlr[8]);
  2079. $("input[id='GRUPO"+cItemAtu+"']").val(aVlr[13]);
  2080. $("input[id='QTDMIN"+cItemAtu+"']").val(aVlr[14]);
  2081. } else {
  2082. if (data.substr(0, 4) == "ERRO") {
  2083. cMsgErro = data.substr(5);
  2084. bootbox.alert(cMsgErro);
  2085. LimpaLinha(cItemAtu);
  2086. } else {
  2087. cMsgErro = "Houve falha ao localizar os dados do produto. Tente novamente!";
  2088. bootbox.alert(cMsgErro);
  2089. LimpaLinha(cItemAtu);
  2090. // Quando ocorre erro no protheus
  2091. console.log(data);
  2092. }
  2093. }
  2094. }
  2095. });
  2096. */
  2097. } else {
  2098. bootbox.alert("Informe a quantidade!");
  2099. lRet = false;
  2100. return false;
  2101. }
  2102. if (lRet == true){
  2103. //Valida o estoque do produto
  2104. //vldEstoque(cItemAtu);
  2105. //Desbloqueia os campos
  2106. $("#CK_OBS"+cItemAtu).removeAttr('disabled');
  2107. $("#CK_PRZEMB"+cItemAtu).removeAttr('disabled');
  2108. $("#CK_DESCONT"+cItemAtu).removeAttr('disabled');
  2109. //cPrzEmb = $("#CJ_PRZEMB").val();
  2110. //$("#CK_PRZEMB"+cItemAtu).val(cPrzEmb);
  2111. }
  2112. //Gatilho para total do item
  2113. TotalItem(cItemAtu);
  2114. }
  2115. /**
  2116. Verifica se existe estoque disponível
  2117. **/
  2118. function vldEstoque(cItem){
  2119. var produto = formataProd($("#CK_PRODUTO"+cItem).val());
  2120. var quantidade = parseFloat($("#CK_QTDVEN"+cItem).val().replace('.',","));
  2121. var qtd = $("#CK_QTDVEN"+cItem).val();
  2122. var lret = true;
  2123. var retVld = true;
  2124. var dialogTab = bootbox.dialog({
  2125. message: '<p class="text-center"><i class="fa fa-spin fa-spinner"></i>&nbsp;&nbsp;Verificando estoque disponível... Aguarde...</p>',
  2126. closeButton: false
  2127. });
  2128. $.ajax({
  2129. url: "U_GetEstDisp.apw?PR=<%=cLCodLogin%>",
  2130. data: 'produto='+encodeURIComponent(produto)+'&quantidade='+qtd,
  2131. type: "POST",
  2132. async: false,
  2133. success:
  2134. function(retorno) {
  2135. if (retorno.toUpperCase().indexOf('META HTTP-EQUIV') >= 0 ) {
  2136. $("html").html(retorno);
  2137. return;
  2138. }
  2139. saldo = parseInt(retorno);
  2140. $("#EST_DISP"+cItem).val(saldo);
  2141. if ( saldo <= 0 || saldo < quantidade) {
  2142. if(retorno < 0){
  2143. retorno = 0
  2144. };
  2145. dialogTab.modal('hide');
  2146. bootbox.alert('Não há saldo disponível em estoque para a quantidade solicitada para o item '+produto+'! <br>O saldo atual é de '+retorno+'.');
  2147. if ($('#CJ_XTPORC').val() == "1"){
  2148. $("#CK_QTDVEN"+cItem).val("");
  2149. lret = false;
  2150. retVld = false;
  2151. }
  2152. }
  2153. }
  2154. });
  2155. if (lret == true){
  2156. //Habilita os campos para edição
  2157. $("#CK_XPEDCLI"+cItem).removeAttr('disabled');
  2158. $("#CK_XITEMCL"+cItem).removeAttr('disabled');
  2159. $("#CK_DESCONT"+cItem).removeAttr('disabled');
  2160. }
  2161. dialogTab.modal('hide');
  2162. return retVld;
  2163. }
  2164. /**
  2165. Limpa os valores da linha
  2166. **/
  2167. function LimpaLinha(cItem) {
  2168. $("#CK_QTDVEN"+cItem).val("");
  2169. $("#CK_PRZEMB"+cItem).val("");
  2170. $("#iCK_PRCVEN"+cItem).val("");
  2171. $("#CK_PRCVEN"+cItem).val("");
  2172. $("#CK_CUSTO"+cItem).val("");
  2173. $("#IMP_PRCTAB"+cItem).val("");
  2174. $("#CK_XPRCIMP"+cItem).val("");
  2175. $("#CK_XVALIPI"+cItem).val("");
  2176. $("#CK_XVALICM"+cItem).val("");
  2177. $("#CK_XICMST"+cItem).val("");
  2178. $("#CK_VALOR"+cItem).val("");
  2179. $("#PER_COM"+cItem).val("");
  2180. $("#VAL_COM"+cItem).val("");
  2181. $("#CK_DESCONT"+cItem).val("");
  2182. TotalGeral();
  2183. }
  2184. /**
  2185. Verifica se o valor digitado é maior que o valor de tabela
  2186. **/
  2187. function VldValor(cItemAtu,cVldDesc) {
  2188. var nVlrTabela = $('#iCK_PRCVEN'+cItemAtu).maskMoney('unmasked')[0];
  2189. var nVlrUnit = $('#CK_PRCVEN'+cItemAtu).maskMoney('unmasked')[0];
  2190. var produto = $("#CK_PRODUTO"+cItemAtu).val();
  2191. var cQuant = $("#CK_QTDVEN"+cItemAtu).val();
  2192. var nValMin = 0;
  2193. var nDescont = 0;
  2194. var nDescMax = 0;
  2195. var aDesc;
  2196. var lOK = true;
  2197. var lMostra = false;
  2198. var dialogTab = bootbox.dialog({
  2199. message: '<p class="text-center"><i class="fa fa-spin fa-spinner"></i>&nbsp;&nbsp;Verificando valores... Aguarde...</p>',
  2200. closeButton: false
  2201. });
  2202. if ($('#CK_DESCONT'+cItemAtu).maskMoney('unmasked')[0] != 0){
  2203. nDescont = $('#CK_DESCONT'+cItemAtu).maskMoney('unmasked')[0];
  2204. //Verifica desconto negativo
  2205. if (nDescont < 0) {
  2206. dialogTab.modal('hide');
  2207. bootbox.alert('O desconto não deve ser negativo!');
  2208. $('#CK_DESCONT'+cItemAtu).val("");
  2209. return false;
  2210. }
  2211. //Verifica desconto maior que 100
  2212. if (nDescont > 100) {
  2213. dialogTab.modal('hide');
  2214. bootbox.alert('O desconto não deve ser maior que 100!');
  2215. $('#CK_DESCONT'+cItemAtu).val("");
  2216. return false;
  2217. }
  2218. //Verifica validação do desconto
  2219. if (cVldDesc == 'S'){
  2220. produto = formataProd(produto);
  2221. $.ajax({
  2222. url: "U_VldDescto.apw?PR=<%=cLCodLogin%>",
  2223. data: 'produto='+encodeURIComponent(produto)+'&prcvenda='+nVlrUnit+'&quantidade='+cQuant,
  2224. type: "POST",
  2225. async: false,
  2226. error: function (jqXHR, textStatus, error){
  2227. dialogTab.modal('hide');
  2228. bootbox.alert("Falha ao atualizar o valor dos impostos!");
  2229. console.log(error);
  2230. lOK = false;
  2231. },
  2232. success:
  2233. function(cTipoDesc) {
  2234. if(cTipoDesc=='3'){
  2235. bootbox.alert('Produtos do tipo RE, iniciados com RELUMI, do grupo PAN ou acessórios de produtos do grupo PAN não permitem descontos.');
  2236. $('#CK_DESCONT'+cItemAtu).val("");
  2237. return false;
  2238. }
  2239. if(cTipoDesc=='2'){
  2240. msg = '<div class="row form-group">'
  2241. //Usuario
  2242. msg +=' <div class="row form-group">'
  2243. msg +=' <div class="col-lg-1"></div>'
  2244. msg +=' <div class="col-lg-11">'
  2245. msg +=' <label class="control-label">Usuário</label>'
  2246. msg +=' <div class="input-group">'
  2247. msg +=' <input id="userName" class="form-control text-left" value="">'
  2248. msg +=' </div>'
  2249. msg +=' </div>'
  2250. msg +=' </div>'
  2251. //Senha
  2252. msg +=' <div class="row form-group">'
  2253. msg +=' <div class="col-lg-1"></div>'
  2254. msg +=' <div class="col-lg-3">'
  2255. msg +=' <label class="control-label">Senha</label>'
  2256. msg +=' <div class="input-group">'
  2257. msg +=' <input id="userPsw" class="form-control text-left" type="password" value="">'
  2258. msg +=' </div>'
  2259. msg +=' </div>'
  2260. //% de Desconto
  2261. msg +=' <div class="row form-group">'
  2262. msg +=' <div class="col-lg-1"></div>'
  2263. msg +=' <div class="col-lg-3">'
  2264. msg +=' <label class="control-label">% de Desconto</label>'
  2265. msg +=' <div class="input-group">'
  2266. msg +=' <input id="percDesc" class="form-control text-right percentual" type="text" value="" maxlenght="7" placeholder="0,00%">'
  2267. msg +=' </div>'
  2268. msg +=' </div>'
  2269. msg +=' </div>'
  2270. msg +='</div>'
  2271. bootbox.confirm({
  2272. title: 'Senha para Desconto',
  2273. message: "<p>"+msg+"</p>",
  2274. backdrop: true,
  2275. buttons: {
  2276. cancel: {
  2277. label: 'Cancelar'
  2278. },
  2279. confirm: {
  2280. label: 'Confirmar'
  2281. }
  2282. },
  2283. callback: function (result) {
  2284. if (result){
  2285. usrInput = $("#userName").val();
  2286. pswInput = $("#userPsw").val();
  2287. percDesc = $("#percDesc").val();
  2288. //Valida a senha digitada
  2289. $.ajax({
  2290. url: "U_VldSenha.apw?PR=<%=cLCodLogin%>",
  2291. type: "POST",
  2292. data: 'user='+usrInput+'&senha='+pswInput,
  2293. async: false,
  2294. success:
  2295. function(retorno) {
  2296. if (retorno.toUpperCase().indexOf('META HTTP-EQUIV') >= 0 ||retorno.toLowerCase().indexOf("Expires") != -1){
  2297. bootbox.alert('Não foi possível realizar a operação pois a sessão foi fechada. Faça login novamente.');
  2298. }
  2299. if(retorno == "NOK"){
  2300. bootbox.alert("Usuário ou senha inválidos!")
  2301. $('#CK_DESCONT'+cItemAtu).val("");
  2302. return false;
  2303. } else {
  2304. $('#CJ_DSDIRET').val(percDesc);
  2305. $('#CK_NOMDIRE'+cItemAtu).val(usrInput);
  2306. }
  2307. }
  2308. });
  2309. } else {
  2310. $('#CK_DESCONT'+cItemAtu).val("");
  2311. return false;
  2312. }
  2313. }
  2314. });
  2315. }
  2316. }
  2317. });
  2318. }
  2319. }
  2320. //Valida o valor máximo --retirado Lucilene 11.08.20
  2321. //if ( lOK && nVlrUnit > nVlrTabela){
  2322. // dialogTab.modal('hide');
  2323. // bootbox.alert("O valor máximo permitido é o valor da tabela!");
  2324. // $("#iCK_PRCVEN"+cItemAtu).val($('#CK_PRCVEN'+cItemAtu).val());
  2325. // $("#iCK_PRCVEN"+cItemAtu).focus();
  2326. // lOK = false;
  2327. //}
  2328. //dialogTab.modal('hide');
  2329. //Atualiza o valor dos impostos
  2330. if (lOK && nDescont != 0){
  2331. var cCodProd = formataProd($("#CK_PRODUTO"+cItemAtu).val());
  2332. var cQuant = $("#CK_QTDVEN"+cItemAtu).val();
  2333. //var dialogImp = bootbox.dialog({
  2334. // message: '<p class="text-center"><i class="fa fa-spin fa-spinner"></i>&nbsp;&nbsp;Atualizando os valores dos impostos... Aguarde...</p>',
  2335. // closeButton: false
  2336. // });
  2337. nVlrUnit = nVlrTabela - (nVlrTabela * (nDescont/100))
  2338. $.ajax({
  2339. url: "U_GetImpostos.apw?PR=<%=cLCodLogin%>",
  2340. data: 'produto='+encodeURIComponent(cCodProd)+'&prcvenda='+nVlrUnit+'&quantidade='+cQuant,
  2341. type: "POST",
  2342. async: false,
  2343. error: function (jqXHR, textStatus, error){
  2344. dialogTab.modal('hide');
  2345. bootbox.alert("Falha ao atualizar o valor dos impostos!");
  2346. console.log(error);
  2347. lOK = false;
  2348. },
  2349. success:
  2350. function(data) {
  2351. dialogTab.modal('hide');
  2352. if (data.toUpperCase().indexOf('META HTTP-EQUIV') >= 0 ) {
  2353. $("html").html(data);
  2354. return;
  2355. }
  2356. if (data.substr(0, 2) == "OK") {
  2357. aVlr = data.substr(3).split('|#|');
  2358. $.trim($("input[name='CK_XVALICM"+cItemAtu+"']").val(aVlr[2]));
  2359. $.trim($("input[name='CK_XICMST"+cItemAtu+"']").val(aVlr[4]));
  2360. $.trim($("input[name='CK_XVALIPI"+cItemAtu+"']").val(aVlr[3]));
  2361. $.trim($("#CK_PRCVEN"+cItemAtu).val(mascaraValor(nVlrUnit.toFixed(2))));
  2362. //Input hidden
  2363. $("input[id='ALIQ_IPI"+cItemAtu+"']").val(aVlr[5]);
  2364. $("input[id='ALIQ_ICMS"+cItemAtu+"']").val(aVlr[6]);
  2365. $("input[id='ALIQ_ST"+cItemAtu+"']").val(aVlr[12]);
  2366. $("input[id='CK_TES"+cItemAtu+"']").val(aVlr[8]);
  2367. $("input[id='BASE_IPI"+cItemAtu+"']").val(aVlr[11]);
  2368. $("input[id='BASE_ICMS"+cItemAtu+"']").val(aVlr[9]);
  2369. $("input[id='BASE_ST"+cItemAtu+"']").val(aVlr[10]);
  2370. $("input[id='VAL_ICMS"+cItemAtu+"']").val(aVlr[2]);
  2371. $("input[id='VAL_ST"+cItemAtu+"']").val(aVlr[4]);
  2372. $("input[id='VAL_IPI"+cItemAtu+"']").val(aVlr[3]);
  2373. } else {
  2374. cMsgErro = "Houve falha ao atualizar os impostos. Tente novamente!";
  2375. bootbox.alert(cMsgErro);
  2376. LimpaLinha(cItemAtu);
  2377. lOK = false;
  2378. if (data.substr(0, 4) == "ERRO") {
  2379. cMsgErro = data.substr(5);
  2380. } else {
  2381. // Quando ocorre erro no protheus
  2382. console.log(data);
  2383. }
  2384. }
  2385. }
  2386. });
  2387. }
  2388. dialogTab.modal('hide');
  2389. //Gatilho para total do item
  2390. if(lOK){
  2391. TotalItem(cItemAtu);
  2392. }
  2393. }
  2394. /**
  2395. Função para anexar os documentos ao orçamento
  2396. **/
  2397. function OrcGetAnex() {
  2398. $.ajax({
  2399. url: "U_OrcGetAn.apw?PR=<%=cLCodLogin%>",
  2400. type: "POST",
  2401. data: "fornece="+$("#fornece").val()+"&loja="+$("#loja").val(),
  2402. cache: false,
  2403. success: function(html){
  2404. $("#InfAnexos").html(html);
  2405. new PNotify({
  2406. title: 'Anexar arquivo',
  2407. text: 'Anexado com sucesso',
  2408. type: 'success',
  2409. icon: 'fa fa-file-o',
  2410. cornerclass: 'ui-pnotify-sharp'
  2411. });
  2412. $("#arquivo").remove();
  2413. }
  2414. });
  2415. }
  2416. /**
  2417. Funcao de validação do tipo de frete
  2418. **/
  2419. function VldFrete() {
  2420. var cFrete;
  2421. var tabpreco = $("#CJ_TABELA").val();
  2422. cFrete = $("#CJ_TPFRETE").val();
  2423. if (cFrete == 'S'||cFrete == 'T'||cFrete == 'F'){
  2424. $("#CJ_FRETE").removeAttr("required");
  2425. $("#CJ_FRETE").removeAttr("aria-required");
  2426. $("#CJ_FRETE").attr("disabled","");
  2427. $("#CJ_FRETE").val("0,00");
  2428. //$("#CJ_XTRANSP").removeAttr('disabled');
  2429. //$("#CJ_XTRANSP").val("");
  2430. $("#select2-CJ_XTRANSP-container").html("Selecione uma Transportadora");
  2431. if(cFrete == 'F'){
  2432. bootbox.alert("Informar a equipe do ativo sobre as regras de expedição para frete FOB.")
  2433. }
  2434. } else {
  2435. if (cFrete != ""){
  2436. $("#CJ_FRETE").attr("required","");
  2437. $("#CJ_FRETE").attr("aria-required","true");
  2438. $("#CJ_FRETE").removeAttr('disabled');
  2439. $("#CJ_FRETE").focus();
  2440. //$("#CJ_XTRANSP").removeAttr('disabled');
  2441. //$("#CJ_XTRANSP").val("");
  2442. }
  2443. //Localiza a transportadora
  2444. /*
  2445. $.ajax({
  2446. url: "U_GetTransp.apw?PR=<%=cLCodLogin%>",
  2447. type: "POST",
  2448. data: 'tabela='+tabpreco,
  2449. async: false,
  2450. success:
  2451. function(transp) {
  2452. if (transp.indexOf('<META HTTP-EQUIV') >= 0 ) {
  2453. $("html").html(transp);
  2454. return;
  2455. }
  2456. if ( transp != "" ) {
  2457. //Preenche o campo da transportadora
  2458. document.getElementById('CJ_XTRANSP').innerText = null;
  2459. $("#CJ_XTRANSP").append(transp);
  2460. } else {
  2461. bootbox.alert('Cliente sem transportadora cadastrada!');
  2462. $("#CJ_TPFRETE").val("S")
  2463. $("#select2-CJ_TPFRETE-container").html("Sem Frete")
  2464. $("#CJ_FRETE").removeAttr("required");
  2465. $("#CJ_FRETE").removeAttr("aria-required");
  2466. $("#CJ_FRETE").attr("disabled","");
  2467. $("#CJ_XTRANSP").attr("disabled","");
  2468. $("#CJ_FRETE").val("0,00");
  2469. $("#CJ_XTRANSP").val("");
  2470. $("#select2-CJ_XTRANSP-container").html("Selecione uma Transportadora");
  2471. }
  2472. }
  2473. });
  2474. */
  2475. //$("#select2-CJ_XTRANSP-container").html("Selecione uma Transportadora");
  2476. }
  2477. TotalGeral();
  2478. }
  2479. /**
  2480. // Função para ver detalhes da linha
  2481. **/
  2482. function detalheOrc(cItem){
  2483. var msg = "";
  2484. var produto = $("#CK_PRODUTO"+cItem);
  2485. var retorno = "";
  2486. var estoque = "";
  2487. var dialogTab = "";
  2488. if(produto.val() == ""){
  2489. bootbox.alert("Selecione o produto para ver os detalhes!");
  2490. return false;
  2491. }
  2492. produto = formataProd(produto.val());
  2493. /*
  2494. dialogTab = bootbox.dialog({
  2495. message: '<p class="text-center"><i class="fa fa-spin fa-spinner"></i>&nbsp;&nbsp;Carregando detalhes... Aguarde...</p>',
  2496. closeButton: false
  2497. });
  2498. $.ajax({
  2499. url: "U_GetEstGeral.apw?PR=<%=cLCodLogin%>",
  2500. data: 'produto='+encodeURIComponent(produto.val()),
  2501. type: "POST",
  2502. async: false,
  2503. success:
  2504. function(retorno) {
  2505. if (retorno.indexOf('<META HTTP-EQUIV') >= 0 ) {
  2506. $("html").html(retorno);
  2507. return;
  2508. }
  2509. estoque = retorno;
  2510. }
  2511. });
  2512. dialogTab.modal('hide');
  2513. */
  2514. msg = '<div class="row form-group">'
  2515. msg +=' <header class="panel-heading">'
  2516. msg +=' <h2 class="panel-title">Detalhes da linha</h2>'
  2517. msg +=' </header>'
  2518. msg +=' <br>'
  2519. //Descrição do produto
  2520. msg +=' <div class="row form-group">'
  2521. msg +=' <div class="col-lg-1"></div>'
  2522. msg +=' <div class="col-lg-11">'
  2523. msg +=' <label class="control-label">Produto</label>'
  2524. msg +=' <div class="input-group">'
  2525. msg +=' <input class="form-control text-left" style="width: 240%;" value="'+$("#CK_PRODUTO"+cItem).val().split('- ')[1]+'" disabled>'
  2526. //msg +=' <input class="form-control text-left" style="width: 240%;" value="'+$(produto)[0].options[$(produto)[0].selectedIndex].text.split('- ')[1]+'" disabled>'
  2527. msg +=' </div>'
  2528. msg +=' </div>'
  2529. msg +=' </div>'
  2530. /*
  2531. //% ICMS
  2532. msg +=' <div class="row form-group">'
  2533. msg +=' <div class="col-lg-1"></div>'
  2534. msg +=' <div class="col-lg-3">'
  2535. msg +=' <label class="control-label">Aliquota ICMS</label>'
  2536. msg +=' <div class="input-group">'
  2537. msg +=' <input class="form-control text-right" value="'+$("#ALIQ_ICMS"+cItem).val()+'%" disabled>'
  2538. msg +=' </div>'
  2539. msg +=' </div>'
  2540. //% ICMS ST
  2541. msg +=' <div class="col-lg-3">'
  2542. msg +=' <label class="control-label">Aliquota ICMS ST</label>'
  2543. msg +=' <div class="input-group">'
  2544. msg +=' <input class="form-control text-right" value="'+$("#ALIQ_ST"+cItem).val()+'%" disabled>'
  2545. msg +=' </div>'
  2546. msg +=' </div>'
  2547. msg +=' </div>'
  2548. */
  2549. //IPI
  2550. msg +=' <div class="row form-group">'
  2551. msg +=' <div class="col-lg-1"></div>'
  2552. msg +=' <div class="col-lg-3">'
  2553. msg +=' <label class="control-label">IPI</label>'
  2554. msg +=' <div class="input-group">'
  2555. msg +=' <input class="form-control text-right" value="'+$("#VAL_IPI"+cItem).val()+'" disabled>'
  2556. msg +=' </div>'
  2557. msg +=' </div>'
  2558. //ICMS
  2559. msg +=' <div class="col-lg-3">'
  2560. msg +=' <label class="control-label">ICMS</label>'
  2561. msg +=' <div class="input-group">'
  2562. msg +=' <input class="form-control text-right" value="'+$("#VAL_ICMS"+cItem).val()+'" disabled>'
  2563. msg +=' </div>'
  2564. msg +=' </div>'
  2565. //ICMS ST
  2566. msg +=' <div class="col-lg-3">'
  2567. msg +=' <label class="control-label">ICMS ST</label>'
  2568. msg +=' <div class="input-group">'
  2569. msg +=' <input class="form-control text-right" value="'+$("#VAL_ST"+cItem).val()+'" disabled>'
  2570. msg +=' </div>'
  2571. msg +=' </div>'
  2572. msg +=' </div>'
  2573. msg +='</div>'
  2574. if(msg != ""){
  2575. bootbox.dialog({
  2576. title: '',
  2577. message: "<p>"+msg+"</p>",
  2578. backdrop: true,
  2579. buttons: {
  2580. ok: {
  2581. label: "OK"
  2582. }
  2583. }
  2584. });
  2585. }
  2586. }
  2587. //Remover linha
  2588. function removeItem(cItem){
  2589. //e.preventDefault();
  2590. //var btnRem = $(this);
  2591. cItem = parseInt(cItem);
  2592. bootbox.confirm({
  2593. title: "Exclusão da linha",
  2594. message: "Confirma a exclusão desta linha?",
  2595. buttons: {
  2596. cancel: {
  2597. label: 'Cancelar'
  2598. },
  2599. confirm: {
  2600. label: 'Confirmar'
  2601. }
  2602. },
  2603. callback: function (result) {
  2604. if (result){
  2605. if (cItem < 10 ){cItem = "0"+String(cItem)};
  2606. //Desabilita o botão
  2607. //btnRem.attr({ 'disabled': 'disabled' });
  2608. $("#CK_ITEM"+cItem).val("x");
  2609. $("#CK_PRODUTO"+cItem).val("");
  2610. $("#CK_QTDVEN"+cItem).val("1");
  2611. $("#CK_LOCAL"+cItem).val("");
  2612. $("#CK_PRUNIT"+cItem).val("0");
  2613. $("#iCK_PRCVEN"+cItem).val("0,00");
  2614. $("#CK_PRCVEN"+cItem).val("0,00");
  2615. $("#CK_XVALICM"+cItem).val("0,00");
  2616. $("#CK_XVALIPI"+cItem).val("0,00");
  2617. $("#CK_XICMST"+cItem).val("0,00");
  2618. $("#CK_VALOR"+cItem).val("0,00");
  2619. $("#linha"+cItem).hide();
  2620. //Atualiza o total geral
  2621. TotalGeral();
  2622. }
  2623. }
  2624. });
  2625. }
  2626. //Clique no botão pesquisar do Cliente
  2627. $('.btSearchCli').click(function(e) {
  2628. e.preventDefault();
  2629. getCliente($(this));
  2630. });
  2631. //Clique no botão pesquisar do Cliente
  2632. $('.btEndEntrega').click(function(e) {
  2633. e.preventDefault();
  2634. getEntrega($(this));
  2635. });
  2636. $("#datatable-editable").delegate( "button", "click", function( event ) {
  2637. event.preventDefault();
  2638. getProduto($(this));
  2639. });
  2640. /**
  2641. //Anexar
  2642. **/
  2643. $("#btnInfUpload").click(function() {
  2644. var obAnexo = $("#anexo");
  2645. var obArquivo = obAnexo.clone();
  2646. obArquivo.attr("id", "arquivo");
  2647. $("#frmInfUpload").append(obArquivo);
  2648. var data;
  2649. var contentType = "application/x-www-form-urlencoded";
  2650. var processData = true;
  2651. if ($('#frmInfUpload').attr('enctype') == 'multipart/form-data') {
  2652. data = new FormData($('#frmInfUpload').get(0));//seleciona classe form-horizontal adicionada na tag form do html
  2653. contentType = false;
  2654. processData = false;
  2655. } else {
  2656. data = $('#frmInfUpload').serialize();
  2657. }
  2658. $.ajax({
  2659. data: data,
  2660. type: $('#frmInfUpload').attr('method'),
  2661. url: $('#frmInfUpload').attr('action'),
  2662. contentType: contentType,
  2663. processData: processData,
  2664. success: function (response) {
  2665. //seu código apos sucesso
  2666. if( response == "Ok" ) {
  2667. window.location.reload();
  2668. } else {
  2669. bootbox.alert('Erro ao carregar arquivo');
  2670. }
  2671. },
  2672. error: function (exr, sender) {
  2673. bootbox.alert('Erro ao carregar pagina');
  2674. }
  2675. });
  2676. });
  2677. //Adicionar nova linha
  2678. $('#btAddItm').click(function(e) {
  2679. e.preventDefault();
  2680. var newLine = parseFloat($("#PROXIMO").val())+1;
  2681. var nItens = parseFloat($("#PROXIMO").val());
  2682. var linhaAtu = String(newLine);
  2683. var lRet = true;
  2684. var lGridOK = true;
  2685. var btnAdd = $(this);
  2686. var cCodProd;
  2687. var cItmOrc;
  2688. let aExtras = [];
  2689. let aFields = [];
  2690. if (parseInt(linhaAtu) < 10 ){linhaAtu = "0"+String(linhaAtu)};
  2691. //Desabilita o botão
  2692. btnAdd.attr({ 'disabled': 'disabled' });
  2693. //Valida o Grid
  2694. /*
  2695. if (nItens == 99){
  2696. lRet = false;
  2697. $("#orc-informar").html();
  2698. new PNotify({
  2699. title: 'Quantidade máxima',
  2700. text: 'O orçamento atingiu a quantidade máxima de itens. Crie um novo orçamento.',
  2701. type: 'error',
  2702. });
  2703. btnAdd.removeAttr('disabled');
  2704. return false;
  2705. }*/
  2706. if (lRet == true) {
  2707. for (i = 1; i<=nItens; i++) {
  2708. cItem = String(i);
  2709. if (parseInt(i) < 10 ){cItem = "0"+String(i)};
  2710. cItmOrc = $("#CK_ITEM"+cItem).val().substr(0,1);
  2711. if(cItmOrc != "x") {
  2712. cCodProd = formataProd($("#CK_PRODUTO"+cItem).val());
  2713. if ($('#CK_PRODUTO'+cItem).val() == "" || $('#CK_QTDVEN'+cItem).val() == ""){
  2714. lGridOK = false;
  2715. }
  2716. }
  2717. }
  2718. if (lGridOK == false){
  2719. lRet = false;
  2720. $("#orc-informar").html();
  2721. new PNotify({
  2722. title: 'Campo obrigatório',
  2723. text: 'Verifique o preenchimento dos campos Produto e Quantidade antes de incluir uma nova linha!',
  2724. type: 'error',
  2725. });
  2726. btnAdd.removeAttr('disabled');
  2727. //Força fechar a janela
  2728. if (lRet == false){
  2729. bootbox.hideAll();
  2730. }
  2731. return false;
  2732. }
  2733. }
  2734. //Cria a linha
  2735. if (lRet == true) {
  2736. if (linhaAtu.length < 2) {
  2737. linhaAtu = "0" + linhaAtu;
  2738. }
  2739. // Carrega os campos do grid
  2740. getFieldsGrid(aFields);
  2741. var tbl = document.getElementById('datatable-editable'), // table reference
  2742. row = tbl.insertRow(tbl.rows.length), // append table row
  2743. i;
  2744. // insert table cells to the new row
  2745. for (i = 0; i < tbl.rows[0].cells.length; i++) {
  2746. newCreateCell(row.insertCell(i), i, linhaAtu, tbl.rows[0].cells.length - 1, aFields[i]);
  2747. }
  2748. // Adiciona um ouvinte de eventos usando a delegação de eventos
  2749. $(document).on('focusout', '[data-row] input', function () {
  2750. // Captura o valor do campo CK_PRODUTO
  2751. var produtoDigitado = this.value;
  2752. // Obtém o numero da linha associado ao campo
  2753. var linhaAtu = $(this).data('row');
  2754. // Chama a função buscarProdutos
  2755. buscarProdutos(produtoDigitado, function (listaProdutos) {
  2756. // Aqui voce pode fazer algo com a lista de produtos, se necessario
  2757. });
  2758. });
  2759. //Adiciona a classe no ultimo td
  2760. $('#datatable-editable tr:last').find('td:last').addClass('actions');
  2761. //Adiciona id na linha
  2762. $('#datatable-editable tr:last').attr('id','linha'+linhaAtu);
  2763. $('#datatable-editable tr:last').attr('class','odd');
  2764. //Atualiza a quantidade de linhas
  2765. $("#PROXIMO").val(linhaAtu);
  2766. //Habilita o botão para adicionar itens
  2767. btnAdd.removeAttr('disabled');
  2768. formate();
  2769. };
  2770. });
  2771. //Obtém os campos da linha
  2772. function getFieldsGrid(aFields) {
  2773. let aExtras = [];
  2774. /// Definicao de campos extras
  2775. aExtras.push({"field": 'btnInfo',
  2776. "element": "i",
  2777. "attrs":[
  2778. {"class": "fa fa-info fa-lg"},
  2779. {"title": "Detalhes da linha"},
  2780. {'onclick': 'detalheOrc($(this).attr("id").substr(-2))'}
  2781. ]
  2782. });
  2783. aExtras.push({"field": 'btnExcl',
  2784. "element": "i",
  2785. "attrs":[
  2786. {"class": "fa fa-times-circle fa-lg"},
  2787. {"title": "Remover linha"},
  2788. {'onclick': 'removeItem($(this).attr("id").substr(-2))'}
  2789. ]
  2790. });
  2791. aExtras.push({"field": 'ALIQ_ICMS',
  2792. "element": "input",
  2793. "attrs":[
  2794. {"type": "hidden"},
  2795. {"value": "0"}
  2796. ]
  2797. });
  2798. aExtras.push({"field": 'ALIQ_IPI',
  2799. "element": "input",
  2800. "attrs":[
  2801. {"type": "hidden"},
  2802. {"value": "0"}
  2803. ]
  2804. });
  2805. aExtras.push({"field": 'ALIQ_ST',
  2806. "element": "input",
  2807. "attrs":[
  2808. {"type": "hidden"},
  2809. {"value": "0"}
  2810. ]
  2811. });
  2812. aExtras.push({"field": 'VAL_ICMS',
  2813. "element": "input",
  2814. "attrs":[
  2815. {"type": "hidden"},
  2816. {"value": "0"}
  2817. ]
  2818. });
  2819. aExtras.push({"field": 'VAL_IPI',
  2820. "element": "input",
  2821. "attrs":[
  2822. {"type": "hidden"},
  2823. {"value": "0"}
  2824. ]
  2825. });
  2826. aExtras.push({"field": 'VAL_ST',
  2827. "element": "input",
  2828. "attrs":[
  2829. {"type": "hidden"},
  2830. {"value": "0"}
  2831. ]
  2832. });
  2833. aExtras.push({"field": 'BASE_ICMS',
  2834. "element": "input",
  2835. "attrs":[
  2836. {"type": "hidden"},
  2837. {"value": "0"}
  2838. ]
  2839. });
  2840. aExtras.push({"field": 'BASE_ST',
  2841. "element": "input",
  2842. "attrs":[
  2843. {"type": "hidden"},
  2844. {"value": "0"}
  2845. ]
  2846. });
  2847. aExtras.push({"field": 'BASE_IPI',
  2848. "element": "input",
  2849. "attrs":[
  2850. {"type": "hidden"},
  2851. {"value": "0"}
  2852. ]
  2853. });
  2854. aExtras.push({"field": 'IMP_PRCTAB',
  2855. "element": "input",
  2856. "attrs":[
  2857. {"type": "hidden"},
  2858. {"value": "0"}
  2859. ]
  2860. });
  2861. aExtras.push({"field": 'QTD_EMB',
  2862. "element": "input",
  2863. "attrs":[
  2864. {"type": "hidden"},
  2865. {"value": "0"}
  2866. ]
  2867. });
  2868. aExtras.push({"field": 'CK_TES',
  2869. "element": "input",
  2870. "attrs":[
  2871. {"type": "hidden"},
  2872. {"value": ""}
  2873. ]
  2874. });
  2875. aExtras.push({"field": 'QTDMIN',
  2876. "element": "input",
  2877. "attrs":[
  2878. {"type": "hidden"},
  2879. {"value": "0"}
  2880. ]
  2881. });
  2882. aExtras.push({"field": 'GRUPO',
  2883. "element": "input",
  2884. "attrs":[
  2885. {"type": "hidden"},
  2886. {"value": ""}
  2887. ]
  2888. });
  2889. aExtras.push({"field": 'VENCIMENTO',
  2890. "element": "input",
  2891. "attrs":[
  2892. {"type": "hidden"},
  2893. {"value": ""}
  2894. ]
  2895. });
  2896. aExtras.push({"field": 'B1_COMIS',
  2897. "element": "input",
  2898. "attrs":[
  2899. {"type": "hidden"},
  2900. {"value": "0"}
  2901. ]
  2902. });
  2903. aExtras.push({"field": 'CK_COMIS1',
  2904. "element": "input",
  2905. "attrs":[
  2906. {"type": "hidden"},
  2907. {"value": "0"}
  2908. ]
  2909. });
  2910. aExtras.push({"field": 'CK_COMIS3',
  2911. "element": "input",
  2912. "attrs":[
  2913. {"type": "hidden"},
  2914. {"value": "0"}
  2915. ]
  2916. });
  2917. /// Definicao de campos da tabela
  2918. aFields.push({"field": 'CK_ITEM' ,
  2919. "showtd": true,
  2920. "element": "input",
  2921. "attrs": [
  2922. {"type": "text"},
  2923. {"class": "form-control text-left input-block"},
  2924. {"disabled": "disabled"},
  2925. {"value": ""}
  2926. ],
  2927. "aftercreate": function(newLine) {
  2928. $("#CK_ITEM"+newLine).val(newLine);
  2929. }
  2930. });
  2931. aFields.push({"field": 'CK_PRODUTO',
  2932. "showtd": true
  2933. });
  2934. aFields.push({"field": 'CK_QTDVEN' ,
  2935. "showtd": true,
  2936. "element": "input",
  2937. "attrs":[
  2938. {"type": "text"},
  2939. {"class": "form-control text-right only-numbers"},
  2940. {"disabled": "disabled"},
  2941. {"value": ""},
  2942. {"placeholder": "0"},
  2943. {'required': 'required'},
  2944. {'aria-required': 'true'},
  2945. {"onblur": 'javascript:VldQtd($(this).attr("id").substr(-2))'},
  2946. {'onkeyup': 'javascript:TotalItem($(this).attr("id").substr(-2))'}
  2947. ]
  2948. });
  2949. aFields.push({"field": 'CK_OBS' ,
  2950. "showtd": true,
  2951. "element": "input",
  2952. "attrs":[
  2953. {"type": "text"},
  2954. {"class": "form-control text-left"},
  2955. {"disabled": "disabled"},
  2956. {"value": ""},
  2957. {"maxlength": "80"}
  2958. ]
  2959. });
  2960. aFields.push({"field": 'CK_PRZEMB' ,
  2961. "showtd": true,
  2962. "element": "input",
  2963. "attrs":[
  2964. {"type": "text"},
  2965. {"class": "form-control text-right"},
  2966. {"disabled": "disabled"},
  2967. {"value": ""},
  2968. {"maxlength": "3"}
  2969. ]
  2970. });
  2971. aFields.push({"field": 'CK_PRCVEN' ,
  2972. "showtd": true,
  2973. "element": "input",
  2974. "attrs":[
  2975. {"type": "text"},
  2976. {"class": "form-control text-right input-block"},
  2977. {"disabled": "disabled"},
  2978. {"value": ""}
  2979. ]
  2980. });
  2981. aFields.push({"field": 'CK_XPRCIMP',
  2982. "showtd": false,
  2983. "element": "input",
  2984. "attrs":[
  2985. {"type": "text"},
  2986. {"class": "form-control text-right input-block"},
  2987. {"disabled": "disabled"},
  2988. {"value": ""}
  2989. ]
  2990. });
  2991. aFields.push({"field": 'iCK_PRCVEN',
  2992. "showtd": false,
  2993. "element": "input",
  2994. "attrs":[
  2995. {"type": "text"},
  2996. {"class": "form-control text-right myformato"},
  2997. {"disabled": "disabled"},
  2998. {"value": ""},
  2999. {"placeholder": "0"},
  3000. {"onblur": 'javascript:VldValor($(this).attr("id").substr(-2))'},
  3001. {'onkeyup': 'javascript:TotalItem($(this).attr("id").substr(-2))'},
  3002. {'onkeypress': 'FormataValor(this,28,event,2,".",",") || return(moeda(this,'+"'.'"+','+"','"+',event))'}
  3003. ]
  3004. });
  3005. aFields.push({"field": 'CK_CUSTO',
  3006. "showtd": false,
  3007. "element": "input",
  3008. "attrs":[
  3009. {"type": "text"},
  3010. {"class": "form-control text-right"},
  3011. {"disabled": "disabled"}
  3012. ]
  3013. });
  3014. // "aftercreate": "function x"
  3015. aFields.push({"field": 'CK_XVALIPI',
  3016. "showtd": false,
  3017. "element": "input",
  3018. "attrs":[
  3019. {"type": "text"},
  3020. {"class": "form-control text-right input-block"},
  3021. {"disabled": "disabled"},
  3022. {"value": ""}
  3023. ]
  3024. });
  3025. aFields.push({"field": 'CK_XVALICM',
  3026. "showtd": false,
  3027. "element": "input",
  3028. "attrs":[
  3029. {"type": "text"},
  3030. {"class": "form-control text-right input-block"},
  3031. {"disabled": "disabled"},
  3032. {"value": ""}
  3033. ]
  3034. });
  3035. aFields.push({"field": 'CK_XICMST' ,
  3036. "showtd": false,
  3037. "element": "input",
  3038. "attrs":[
  3039. {"type": "text"},
  3040. {"class": "form-control text-right input-block"},
  3041. {"disabled": "disabled"},
  3042. {"value": ""}
  3043. ]
  3044. });
  3045. aFields.push({"field": 'CK_DESCONT',
  3046. "showtd": <%=cShowDesc%>,
  3047. "element": "input",
  3048. "attrs":[
  3049. {"type": "text"},
  3050. {"class": "form-control text-right percentual"},
  3051. {"disabled": "disabled"},
  3052. {"value": ""},
  3053. {"placeholder": "0,00"},
  3054. {'maxlength': '7'},
  3055. {"onblur": 'javascript:VldValor($(this).attr("id").substr(-2))'},
  3056. {'onkeyup': 'javascript:TotalItem($(this).attr("id").substr(-2))'}
  3057. ]
  3058. });
  3059. aFields.push({"field": 'CK_NOMDIRE',
  3060. "showtd": false,
  3061. "element": "input",
  3062. "attrs":[
  3063. {"type": "text"},
  3064. {"class": "form-control text-left"},
  3065. {"disabled": "disabled"},
  3066. {"value": ""},
  3067. {'maxlength': '12'}
  3068. ]
  3069. });
  3070. aFields.push({"field": 'PER_COM' ,
  3071. "showtd": false,
  3072. "element": "input",
  3073. "attrs":[
  3074. {"type": "text"},
  3075. {"class": "form-control text-right input-block"},
  3076. {"disabled": "disabled"},
  3077. {"value": ""}
  3078. ]
  3079. });
  3080. aFields.push({"field": 'VAL_COM' ,
  3081. "showtd": false,
  3082. "element": "input",
  3083. "attrs":[
  3084. {"type": "text"},
  3085. {"class": "form-control text-right input-block"},
  3086. {"disabled": "disabled"},
  3087. {"value": ""}
  3088. ]
  3089. });
  3090. aFields.push({"field": 'CK_VALOR' ,
  3091. "showtd": true,
  3092. "element": "input",
  3093. "attrs":[
  3094. {"type": "text"},
  3095. {"class": "form-control text-right input-block"},
  3096. {"disabled": "disabled"},
  3097. {"value": ""}
  3098. ]
  3099. });
  3100. aFields.push({"field": 'botoes' ,
  3101. "showtd": true,
  3102. "element": "extras",
  3103. "extras": aExtras
  3104. });
  3105. }
  3106. // Criacao da linha da tabela
  3107. function newCreateCell(objCell, ncol, newLine, nTam, objCrea) {
  3108. // Criacao dos elementos
  3109. if ("extras" !== objCrea["element"]) {
  3110. if (objCrea["field"] == "CK_PRODUTO") {
  3111. //icone de pesquisa
  3112. let obji = document.createElement("i");
  3113. obji.setAttribute("class","fa fa-search");
  3114. obji.setAttribute("alt","Pesquisar");
  3115. //botão do icone de pesquisa
  3116. let objb = document.createElement("button");
  3117. objb.setAttribute("class","btSearch");
  3118. objb.setAttribute("id","btSearch"+newLine);
  3119. objb.appendChild(obji); //apenda o icone no botão
  3120. //input do produto
  3121. let objinp = document.createElement("input");
  3122. objinp.setAttribute("type","text");
  3123. objinp.setAttribute("class","form-control smsediticon");
  3124. objinp.setAttribute("placeholder","Digite o código ou descrição...");
  3125. objinp.setAttribute("name","CK_PRODUTO" + newLine);
  3126. objinp.setAttribute("id","CK_PRODUTO" + newLine);
  3127. objinp.setAttribute("aria-required","true");
  3128. objinp.setAttribute("data-live-search","true");
  3129. objinp.setAttribute("autocomplete","off");
  3130. objinp.setAttribute("value","");
  3131. //div flexContainer
  3132. let objDivFlex = document.createElement("div");
  3133. objDivFlex.setAttribute("class","flexContainer");
  3134. objDivFlex.appendChild(objinp);
  3135. objDivFlex.appendChild(objb);
  3136. //div com tamanho da coluna
  3137. let objDivCol = document.createElement("div");
  3138. objDivCol.setAttribute("class","col-md-12");
  3139. objDivCol.appendChild(objDivFlex);
  3140. //div principal
  3141. let objDivForm = document.createElement("div");
  3142. objDivForm.setAttribute("class","form-group");
  3143. objDivForm.appendChild(objDivCol);
  3144. objCell.appendChild(objDivForm);
  3145. } else {
  3146. let objElem = document.createElement(objCrea["element"]);
  3147. objElem.setAttribute('id', objCrea["field"] + newLine);
  3148. if ("input.select.".includes(objCrea["element"]+".")) {
  3149. objElem.setAttribute('name', objCrea["field"] + newLine);
  3150. }
  3151. if (objCrea["attrs"]) {
  3152. for (let attr of objCrea["attrs"]) {
  3153. for (let [key, value] of Object.entries(attr)) {
  3154. objElem.setAttribute(key, value);
  3155. }
  3156. }
  3157. }
  3158. if (objCrea["beforeadd"]) {
  3159. objCrea["beforeadd"](objElem, newLine);
  3160. }
  3161. objCell.appendChild(objElem);
  3162. if (objCrea["aftercreate"]) {
  3163. objCrea["aftercreate"](newLine);
  3164. }
  3165. }
  3166. } else {
  3167. // Inclusao dos campos extras na ultima coluna
  3168. for (let extra of objCrea["extras"]) {
  3169. let objElem = document.createElement(extra["element"]);
  3170. objElem.setAttribute('id', extra["field"] + newLine);
  3171. if (extra["element"] == "input") {
  3172. objElem.setAttribute('name', extra["field"] + newLine);
  3173. }
  3174. if (extra["attrs"]) {
  3175. for (let attr of extra["attrs"]) {
  3176. for (let [key, value] of Object.entries(attr)) {
  3177. objElem.setAttribute(key, value);
  3178. }
  3179. }
  3180. }
  3181. objCell.appendChild(objElem);
  3182. }
  3183. }
  3184. if (!objCrea.showtd) {
  3185. $('#datatable-editable tr:last').find('td:last').attr('hidden','');
  3186. //$('tr:last').find('td:last').attr('hidden','');
  3187. }
  3188. }
  3189. // Carrega parceiros ativos do AC4
  3190. function carregarParceiros() {
  3191. $.ajax({
  3192. url: "U_GETPARC.apw?PR=<%=cLCodLogin%>",
  3193. success: function(retorno) {
  3194. if (retorno.toUpperCase().indexOf('META HTTP-EQUIV') >= 0) {
  3195. $("html").html(retorno);
  3196. return;
  3197. }
  3198. if(retorno == "") {
  3199. bootbox.alert("Falha ao carregar os parceiros, tente novamente!");
  3200. return;
  3201. }
  3202. var combo = $("#cmbParceiro");
  3203. combo.empty();
  3204. combo.append(retorno);
  3205. },
  3206. error: function(xhr, status, error) {
  3207. bootbox.alert("Erro ao carregar parceiros: " + error);
  3208. }
  3209. });
  3210. }
  3211. // Função para carregar a tabela de parceiros
  3212. function carregarTabelaParceiros() {
  3213. var numOrc = $("#CJ_NUM").val();
  3214. if (!numOrc) return;
  3215. $.ajax({
  3216. url: "U_LISTPARC.apw?PR=<%=cLCodLogin%>",
  3217. type: "POST",
  3218. data: { numOrc: numOrc },
  3219. success: function(retorno) {
  3220. if (retorno.toUpperCase().indexOf('META HTTP-EQUIV') >= 0) {
  3221. $("html").html(retorno);
  3222. return;
  3223. }
  3224. $("#tblParceiros").html(retorno);
  3225. }
  3226. });
  3227. }
  3228. // Função para carregar a tabela de parceiros
  3229. function carregarTabelaNegociacao() {
  3230. var numOrc = $("#CJ_NUM").val();
  3231. if (!numOrc) return;
  3232. $.ajax({
  3233. url: "U_LISTNEG.apw?PR=<%=cLCodLogin%>",
  3234. type: "POST",
  3235. data: { numOrc: numOrc },
  3236. success: function(retorno) {
  3237. if (retorno.toUpperCase().indexOf('META HTTP-EQUIV') >= 0) {
  3238. $("html").html(retorno);
  3239. return;
  3240. }
  3241. $("#tblNegociacao").html(retorno);
  3242. }
  3243. });
  3244. }
  3245. function openModel(parceiro, numOrc, rtpagar, rtaumentar, operacao) {
  3246. $("#formParceiro")[0].reset();
  3247. $("#cmbParceiro").attr('readonly', false).removeAttr("style", "pointer-events: none;");;
  3248. $("#cmbRTPagar").attr('readonly', false).removeAttr("style", "pointer-events: none;");;
  3249. $("#txtRTAumentar").attr('readonly', true).attr("style", "pointer-events: none;");;
  3250. if(operacao == 'edit'){
  3251. $("#tituloIncPar")[0].childNodes[0].data = "Editar Parceiro"
  3252. $("#cmbParceiro").attr('readonly', true).attr("style", "pointer-events: none;");;
  3253. }else if(operacao == 'delete'){
  3254. $("#tituloIncPar")[0].childNodes[0].data = "Excluir Parceiro"
  3255. $("#cmbParceiro").attr('readonly', true).attr("style", "pointer-events: none;");;
  3256. $("#cmbRTPagar").attr('readonly', true).attr("style", "pointer-events: none;");;
  3257. $("#txtRTAumentar").attr('readonly', true).attr("style", "pointer-events: none;");;
  3258. }
  3259. $("#dialogParceiro").modal('show');
  3260. $("#operacao").val(operacao)
  3261. $("#cmbParceiro").val(parceiro);
  3262. $("#cmbRTPagar").val(rtpagar);
  3263. $("#txtRTAumentar").val(rtaumentar);
  3264. }
  3265. function adicionarParceiro(parceiro, rtpagar, rtaumentar, numOrc){
  3266. var dialogSlv = bootbox.dialog({
  3267. message: '<p class="text-center"><i class="fa fa-spin fa-spinner"></i>&nbsp;&nbsp;Salvando parceiro... Aguarde...</p>',
  3268. closeButton: false
  3269. });
  3270. $.ajax({
  3271. url: "U_ADDPARC.apw?PR=<%=cLCodLogin%>",
  3272. type: "POST",
  3273. data: {
  3274. parceiro: parceiro,
  3275. rtpagar: rtpagar,
  3276. rtaumentar: rtaumentar,
  3277. numOrc: numOrc
  3278. },
  3279. // success: function(retorno) {
  3280. // if (retorno.toUpperCase().indexOf('META HTTP-EQUIV') >= 0) {
  3281. // alert("Erro ao salvar parceiro!");
  3282. // $("html").html(retorno);
  3283. // return;
  3284. // }
  3285. // bootbox.alert("Parceiro salvo com sucesso!");
  3286. // location.reload();
  3287. // }
  3288. }).fail(function(){
  3289. bootbox.alert({
  3290. title: titulo,
  3291. message: "Não foi possível adicionar o parceiro.",
  3292. backdrop: true,
  3293. callback: function (strXml) {
  3294. dialogSlv.modal('hide');
  3295. }
  3296. });
  3297. }).done(function(strXml) {
  3298. if (strXml.indexOf('<META HTTP-EQUIV') >= 0 ) {
  3299. $("html").html(strXml);
  3300. return;
  3301. }
  3302. if (strXml.toUpperCase().indexOf("NOK") != -1){
  3303. bootbox.alert({
  3304. title: "Cadastro de Parceiro",
  3305. message: "Falha na inclusão de parceiro.",
  3306. backdrop: true,
  3307. callback: function (result) {
  3308. dialogSlv.modal('hide');
  3309. }
  3310. });
  3311. }
  3312. else {
  3313. bootbox.alert({
  3314. title: "Cadastro de Parceiro",
  3315. message: "Parceiro incluído com sucesso!",
  3316. backdrop: true,
  3317. callback: function (result) {
  3318. carregarTabelaParceiros()
  3319. $("#operacao").val('')
  3320. dialogSlv.modal('hide');
  3321. }
  3322. });
  3323. }
  3324. });
  3325. }
  3326. // Função para editar parceiro
  3327. function editarParceiro(parceiro, rtpagar, rtaumentar, numOrc) {
  3328. var dialogSlv = bootbox.dialog({
  3329. message: '<p class="text-center"><i class="fa fa-spin fa-spinner"></i>&nbsp;&nbsp;Editando parceiro... Aguarde...</p>',
  3330. closeButton: false
  3331. });
  3332. $.ajax({
  3333. url: "U_EDITPARC.apw?PR=<%=cLCodLogin%>",
  3334. type: "POST",
  3335. data: {
  3336. parceiro: parceiro,
  3337. rtpagar: rtpagar,
  3338. rtaumentar: rtaumentar,
  3339. numOrc: numOrc
  3340. },
  3341. // success: function(response) {
  3342. // if (response.success) {
  3343. // // Atualiza a tabela
  3344. // location.reload();
  3345. // } else {
  3346. // alert(response.message || "Erro ao salvar parceiro!");
  3347. // }
  3348. // }
  3349. }).fail(function(){
  3350. bootbox.alert({
  3351. title: titulo,
  3352. message: "Não foi possível editar o parceiro.",
  3353. backdrop: true,
  3354. callback: function (strXml) {
  3355. dialogSlv.modal('hide');
  3356. }
  3357. });
  3358. }).done(function(strXml) {
  3359. if (strXml.indexOf('<META HTTP-EQUIV') >= 0 ) {
  3360. $("html").html(strXml);
  3361. return;
  3362. }
  3363. if (strXml.toUpperCase().indexOf("NOK") != -1){
  3364. bootbox.alert({
  3365. title: "Cadastro de Parceiro",
  3366. message: "Falha na edição de parceiro.",
  3367. backdrop: true,
  3368. callback: function (result) {
  3369. dialogSlv.modal('hide');
  3370. }
  3371. });
  3372. }
  3373. else {
  3374. bootbox.alert({
  3375. title: "Cadastro de Parceiro",
  3376. message: "Parceiro editado com sucesso!",
  3377. backdrop: true,
  3378. callback: function (result) {
  3379. carregarTabelaParceiros()
  3380. $("#operacao").val('')
  3381. dialogSlv.modal('hide');
  3382. }
  3383. });
  3384. }
  3385. });
  3386. }
  3387. // Função para excluir parceiro
  3388. function excluirParceiro(parceiro, numOrc) {
  3389. bootbox.confirm({
  3390. message: "Deseja realmente excluir este parceiro?",
  3391. buttons: {
  3392. confirm: {
  3393. label: 'Sim',
  3394. className: 'btn-success'
  3395. },
  3396. cancel: {
  3397. label: 'Não',
  3398. className: 'btn-danger'
  3399. }
  3400. },
  3401. callback: function (result) {
  3402. if (result) {
  3403. var dialogSlv = bootbox.dialog({
  3404. message: '<p class="text-center"><i class="fa fa-spin fa-spinner"></i>&nbsp;&nbsp;Excluindo parceiro... Aguarde...</p>',
  3405. closeButton: false
  3406. });
  3407. $.ajax({
  3408. url: "U_DELPARC.apw?PR=<%=cLCodLogin%>",
  3409. type: "POST",
  3410. data: { parceiro: parceiro, numOrc: numOrc},
  3411. // success: function(retorno) {
  3412. // if (retorno.toUpperCase().indexOf('META HTTP-EQUIV') >= 0) {
  3413. // $("html").html(retorno);
  3414. // return;
  3415. // }
  3416. // bootbox.alert("Parceiro excluído com sucesso!");
  3417. // }
  3418. }).fail(function(){
  3419. bootbox.alert({
  3420. title: titulo,
  3421. message: "Não foi possível excluir o parceiro.",
  3422. backdrop: true,
  3423. callback: function (strXml) {
  3424. dialogSlv.modal('hide');
  3425. }
  3426. });
  3427. }).done(function(strXml) {
  3428. if (strXml.indexOf('<META HTTP-EQUIV') >= 0 ) {
  3429. $("html").html(strXml);
  3430. return;
  3431. }
  3432. if (strXml.toUpperCase().indexOf("NOK") != -1){
  3433. bootbox.alert({
  3434. title: "Cadastro de Parceiro",
  3435. message: "Falha na exclusão de parceiro.",
  3436. backdrop: true,
  3437. callback: function (result) {
  3438. dialogSlv.modal('hide');
  3439. }
  3440. });
  3441. }
  3442. else {
  3443. bootbox.alert({
  3444. title: "Cadastro de Parceiro",
  3445. message: "Parceiro excluído com sucesso!",
  3446. backdrop: true,
  3447. callback: function (result) {
  3448. $("#operacao").val('')
  3449. carregarTabelaParceiros()
  3450. dialogSlv.modal('hide');
  3451. }
  3452. });
  3453. }
  3454. });
  3455. }
  3456. }
  3457. });
  3458. }
  3459. function atualizaRT(value){
  3460. var rtaumentar = $("#txtRTAumentar");
  3461. switch (value) {
  3462. case '3':
  3463. rtaumentar.val('5')
  3464. break;
  3465. case '5':
  3466. rtaumentar.val('8.5')
  3467. break;
  3468. case '7':
  3469. rtaumentar.val('12')
  3470. break;
  3471. case '10':
  3472. rtaumentar.val('19')
  3473. break;
  3474. default:
  3475. rtaumentar.val('')
  3476. break;
  3477. }
  3478. }
  3479. function adicionarEtapa(descricao, numOrc){
  3480. var dialogSlv = bootbox.dialog({
  3481. message: '<p class="text-center"><i class="fa fa-spin fa-spinner"></i>&nbsp;&nbsp;Salvando Etapa... Aguarde...</p>',
  3482. closeButton: false
  3483. });
  3484. $.ajax({
  3485. url: "U_ADDETAPA.apw?PR=<%=cLCodLogin%>",
  3486. type: "POST",
  3487. data: {
  3488. cdescricao: descricao,
  3489. corcamento: numOrc
  3490. },
  3491. // success: function(retorno) {
  3492. // if (retorno.toUpperCase().indexOf('META HTTP-EQUIV') >= 0) {
  3493. // alert("Erro ao salvar parceiro!");
  3494. // $("html").html(retorno);
  3495. // return;
  3496. // }
  3497. // bootbox.alert("Parceiro salvo com sucesso!");
  3498. // location.reload();
  3499. // }
  3500. }).fail(function(){
  3501. bootbox.alert({
  3502. title: titulo,
  3503. message: "Não foi possível adicionar a etapa.",
  3504. backdrop: true,
  3505. callback: function (strXml) {
  3506. dialogSlv.modal('hide');
  3507. }
  3508. });
  3509. }).done(function(strXml) {
  3510. if (strXml.indexOf('<META HTTP-EQUIV') >= 0 ) {
  3511. $("html").html(strXml);
  3512. return;
  3513. }
  3514. if (strXml.toUpperCase().indexOf("NOK") != -1){
  3515. bootbox.alert({
  3516. title: "Cadastro de Etapa",
  3517. message: "Falha na inclusão da etapa.",
  3518. backdrop: true,
  3519. callback: function (result) {
  3520. dialogSlv.modal('hide');
  3521. }
  3522. });
  3523. }
  3524. else {
  3525. bootbox.alert({
  3526. title: "Cadastro de Etapa",
  3527. message: "Etapa incluído com sucesso!",
  3528. backdrop: true,
  3529. callback: function (result) {
  3530. carregarTabelaNegociacao()
  3531. dialogSlv.modal('hide');
  3532. }
  3533. });
  3534. }
  3535. });
  3536. }
  3537. //Salvar o orçamento
  3538. $('#btSalvar').click(function() {
  3539. var lRet = true
  3540. var i = 0;
  3541. var nItens = parseFloat($("#PROXIMO").val());
  3542. var lGrid = true;
  3543. var lGrid1 = true;
  3544. var cCodProd;
  3545. var cItmOrc;
  3546. var btnSlv = $(this);
  3547. var cGrupo = "";
  3548. var dialogOrc = bootbox.dialog({
  3549. message: '<p class="text-center"><i class="fa fa-spin fa-spinner"></i>&nbsp;&nbsp;Validando orçamento. Aguarde...</p>',
  3550. closeButton: false
  3551. });
  3552. //Desabilita o botao
  3553. btnSlv.attr({ 'disabled': 'disabled' });
  3554. $.ajax({
  3555. url: "U_VerSessao.apw?PR=<%=cLCodLogin%>",
  3556. type: "POST",
  3557. async: false,
  3558. success:
  3559. function(retorno) {
  3560. if (retorno.toUpperCase().indexOf('META HTTP-EQUIV') >= 0 ) {
  3561. $("html").html(retorno);
  3562. return;
  3563. }
  3564. if (retorno == "nok"||retorno == ''||retorno.toUpperCase().indexOf("EXPIRES") != -1){
  3565. $("#orc-informar").html();
  3566. bootbox.alert('Não foi possível realizar a operação pois a sessão foi fechada. Faça login novamente.');
  3567. lRet = false;
  3568. btnSlv.removeAttr('disabled');
  3569. dialogOrc.modal('hide');
  3570. }
  3571. }
  3572. });
  3573. /**
  3574. Valida os campos obrigatorios
  3575. **/
  3576. //Cliente
  3577. cliente = formataCli($("#CJ_CLIENTE").val());
  3578. if (cliente == "") {
  3579. lRet = false;
  3580. $("#orc-informar").html();
  3581. new PNotify({
  3582. title: 'Campo obrigatório',
  3583. text: 'Preencha o campo Cliente!',
  3584. type: 'error',
  3585. });
  3586. btnSlv.removeAttr('disabled');
  3587. dialogOrc.modal('hide');
  3588. $("#CJ_CLIENTE").focus();
  3589. }
  3590. /**
  3591. Valida os campos obrigatorios
  3592. **/
  3593. //Cliente
  3594. cliente = formataCli($("#CJ_CLIENTE").val());
  3595. if (cliente == "") {
  3596. lRet = false;
  3597. $("#orc-informar").html();
  3598. new PNotify({
  3599. title: 'Campo obrigatório',
  3600. text: 'Preencha o campo Cliente!',
  3601. type: 'error',
  3602. });
  3603. btnSlv.removeAttr('disabled');
  3604. dialogOrc.modal('hide');
  3605. $("#CJ_CLIENTE").focus();
  3606. }
  3607. //Contato do Cliente
  3608. if (lRet == true && $("#CJ_XCONTAT").val() == "") {
  3609. lRet = false;
  3610. $("#orc-informar").html();
  3611. new PNotify({
  3612. title: 'Campo obrigatório',
  3613. text: 'Preencha o campo Contato do Cliente!',
  3614. type: 'error',
  3615. });
  3616. btnSlv.removeAttr('disabled');
  3617. dialogOrc.modal('hide');
  3618. $("#CJ_XCONTAT").focus();
  3619. }
  3620. //Contato do Cliente - DDD
  3621. if (lRet == true && $("#CJ_XCONDDD").val() == "") {
  3622. lRet = false;
  3623. $("#orc-informar").html();
  3624. new PNotify({
  3625. title: 'Campo obrigatório',
  3626. text: 'Preencha o campo DDD do Contato!',
  3627. type: 'error',
  3628. });
  3629. btnSlv.removeAttr('disabled');
  3630. dialogOrc.modal('hide');
  3631. $("#CJ_XCONDDD").focus();
  3632. }
  3633. //Contato do Cliente - Telefone
  3634. if (lRet == true && $("#CJ_XCONTEL").val() == "") {
  3635. lRet = false;
  3636. $("#orc-informar").html();
  3637. new PNotify({
  3638. title: 'Campo obrigatório',
  3639. text: 'Preencha o campo Telefone do Contato!',
  3640. type: 'error',
  3641. });
  3642. btnSlv.removeAttr('disabled');
  3643. dialogOrc.modal('hide');
  3644. $("#CJ_XCONTEL").focus();
  3645. }
  3646. //Cliente de entrega
  3647. if (lRet == true && $("#CJ_CLIENT").val() == "") {
  3648. lRet = false;
  3649. $("#orc-informar").html();
  3650. new PNotify({
  3651. title: 'Campo obrigatório',
  3652. text: 'Preencha o campo Cliente de Entrega!',
  3653. type: 'error',
  3654. });
  3655. btnSlv.removeAttr('disabled');
  3656. dialogOrc.modal('hide');
  3657. $("#CJ_CLIENT").focus();
  3658. }
  3659. //Local de entrega
  3660. if (lRet == true && $("#CJ_UFENT").val() == "") {
  3661. lRet = false;
  3662. $("#orc-informar").html();
  3663. new PNotify({
  3664. title: 'Campo obrigatório',
  3665. text: 'Preencha o campo Local de Entrega!',
  3666. type: 'error',
  3667. });
  3668. btnSlv.removeAttr('disabled');
  3669. dialogOrc.modal('hide');
  3670. $("#CJ_UFENT").focus();
  3671. }
  3672. //Tabela de preço
  3673. if (lRet == true && $("#CJ_TABELA").val() == "") {
  3674. lRet = false;
  3675. $("#orc-informar").html();
  3676. new PNotify({
  3677. title: 'Campo obrigatório',
  3678. text: 'Falha ao localizar a Tabela de Preço!',
  3679. type: 'error',
  3680. });
  3681. btnSlv.removeAttr('disabled');
  3682. dialogOrc.modal('hide');
  3683. $("#CJ_TABELA").focus();
  3684. }
  3685. //Data de Entrega
  3686. /*
  3687. if (lRet == true && $("#CK_ENTREG").val() == "") {
  3688. lRet = false;
  3689. $("#orc-informar").html();
  3690. new PNotify({
  3691. title: 'Campo obrigatório',
  3692. text: 'Preencha o campo Previsão de Faturamento!',
  3693. type: 'error',
  3694. });
  3695. btnSlv.removeAttr('disabled');
  3696. dialogOrc.modal('hide');
  3697. $("#CK_ENTREGA").focus();
  3698. }
  3699. */
  3700. //Condição de pagamento
  3701. if (lRet == true && $("#CJ_CONDPAG").val() == "") {
  3702. lRet = false;
  3703. $("#orc-informar").html();
  3704. new PNotify({
  3705. title: 'Campo obrigatório',
  3706. text: 'Preencha o campo Condição de Pagamento!',
  3707. type: 'error',
  3708. });
  3709. btnSlv.removeAttr('disabled');
  3710. dialogOrc.modal('hide');
  3711. $("#CJ_CONDPAG").focus();
  3712. }
  3713. //Oportunidade
  3714. if (lRet == true && $("#CJ_NROPOR").val() == "") {
  3715. lRet = false;
  3716. $("#orc-informar").html();
  3717. new PNotify({
  3718. title: 'Campo obrigatório',
  3719. text: 'Preencha o campo Oportunidade!',
  3720. type: 'error',
  3721. });
  3722. btnSlv.removeAttr('disabled');
  3723. dialogOrc.modal('hide');
  3724. $("#CJ_NROPOR").focus();
  3725. }
  3726. //Nome da Obra
  3727. if (lRet == true && $("#CJ_OBRA").val() == "") {
  3728. lRet = false;
  3729. $("#orc-informar").html();
  3730. new PNotify({
  3731. title: 'Campo obrigatório',
  3732. text: 'Preencha o campo Nome da Obra!',
  3733. type: 'error',
  3734. });
  3735. btnSlv.removeAttr('disabled');
  3736. dialogOrc.modal('hide');
  3737. $("#CJ_OBRA").focus();
  3738. }
  3739. //Tipo da Obra
  3740. if (lRet == true && $("#CJ_YOBRATP").val() == "") {
  3741. lRet = false;
  3742. $("#orc-informar").html();
  3743. new PNotify({
  3744. title: 'Campo obrigatório',
  3745. text: 'Preencha o campo Tipo da Obra!',
  3746. type: 'error',
  3747. });
  3748. btnSlv.removeAttr('disabled');
  3749. dialogOrc.modal('hide');
  3750. $("#CJ_YOBRATP").focus();
  3751. }
  3752. //Status da obra
  3753. if (lRet == true && $("#CJ_VEND6").val() == "") {
  3754. lRet = false;
  3755. $("#orc-informar").html();
  3756. new PNotify({
  3757. title: 'Campo obrigatório',
  3758. text: 'Preencha o campo Status da Obra!',
  3759. type: 'error',
  3760. });
  3761. btnSlv.removeAttr('disabled');
  3762. dialogOrc.modal('hide');
  3763. $("#CJ_VEND6").focus();
  3764. }
  3765. //Previsão de fechamento
  3766. if (lRet == true && $("#CJ_TERMOME").val() == "") {
  3767. lRet = false;
  3768. $("#orc-informar").html();
  3769. new PNotify({
  3770. title: 'Campo obrigatório',
  3771. text: 'Preencha o campo Previsão de Fechamento!',
  3772. type: 'error',
  3773. });
  3774. btnSlv.removeAttr('disabled');
  3775. dialogOrc.modal('hide');
  3776. $("#CJ_TERMOME").focus();
  3777. }
  3778. //Estudo luminotécnico
  3779. if (lRet == true && $("#CJ_LUMINOT").val() == "") {
  3780. lRet = false;
  3781. $("#orc-informar").html();
  3782. new PNotify({
  3783. title: 'Campo obrigatório',
  3784. text: 'Preencha o campo Estudo Luminotécnico!',
  3785. type: 'error',
  3786. });
  3787. btnSlv.removeAttr('disabled');
  3788. dialogOrc.modal('hide');
  3789. $("#CJ_LUMINOT").focus();
  3790. } else {
  3791. if($("#CJ_LUMINOT").val() == "1"){
  3792. if($("#CJ_REGLUMI").val() == ""){
  3793. lRet = false;
  3794. $("#orc-informar").html();
  3795. new PNotify({
  3796. title: 'Campo obrigatório',
  3797. text: 'Preencha o campo Número do Estudo Luminotécnico!',
  3798. type: 'error',
  3799. });
  3800. btnSlv.removeAttr('disabled');
  3801. dialogOrc.modal('hide');
  3802. $("#CJ_REGLUMI").focus();
  3803. }
  3804. }
  3805. }
  3806. //Segmento
  3807. if (lRet == true && $("#CJ_SEGMENT").val() == "") {
  3808. lRet = false;
  3809. $("#orc-informar").html();
  3810. new PNotify({
  3811. title: 'Campo obrigatório',
  3812. text: 'Preencha o campo Segmento!',
  3813. type: 'error',
  3814. });
  3815. btnSlv.removeAttr('disabled');
  3816. dialogOrc.modal('hide');
  3817. $("#CJ_SEGMENT").focus();
  3818. }
  3819. //Regional
  3820. if (lRet == true && $("#CJ_REGIAO").val() == "") {
  3821. lRet = false;
  3822. $("#orc-informar").html();
  3823. new PNotify({
  3824. title: 'Campo obrigatório',
  3825. text: 'Preencha o campo Regional!',
  3826. type: 'error',
  3827. });
  3828. btnSlv.removeAttr('disabled');
  3829. dialogOrc.modal('hide');
  3830. $("#CJ_REGIAO").focus();
  3831. }
  3832. //Vendedor 2
  3833. if (lRet == true && $("#CJ_VEND").val() == "") {
  3834. lRet = false;
  3835. $("#orc-informar").html();
  3836. new PNotify({
  3837. title: 'Campo obrigatório',
  3838. text: 'Preencha o campo Vendedor 2!',
  3839. type: 'error',
  3840. });
  3841. btnSlv.removeAttr('disabled');
  3842. dialogOrc.modal('hide');
  3843. $("#CJ_VEND").focus();
  3844. }
  3845. //Negociadora
  3846. if (lRet == true && $("#CJ_VEND7").val() == "") {
  3847. lRet = false;
  3848. $("#orc-informar").html();
  3849. new PNotify({
  3850. title: 'Campo obrigatório',
  3851. text: 'Preencha o campo Negociadora!',
  3852. type: 'error',
  3853. });
  3854. btnSlv.removeAttr('disabled');
  3855. dialogOrc.modal('hide');
  3856. $("#CJ_VEND7").focus();
  3857. }
  3858. //Frete
  3859. if (lRet == true && $("#CJ_FRETE").val() != "") {
  3860. cTpFrete = $("#CJ_TPFRETE").val();
  3861. nTotalOrc = $("#TOTAL_ITENS").maskMoney('unmasked')[0];
  3862. freteMinimo = $("#FRETEMIN").val();
  3863. ufEntrega = $("#CJ_UFENT").val().substr(0,2);
  3864. munEntrega = $("#CJ_UFENT").val().substr(1,5);
  3865. if (freteMinimo != ""){
  3866. if(nTotalOrc <= freteMinimo && (cTpFrete == "C" || cTpFrete == "")){
  3867. $.ajax({
  3868. url: "U_FreteMinimo.apw?PR=<%=cLCodLogin%>",
  3869. data: 'UFEnt='+ufEntrega+'&MunEntrega='+munEntrega,
  3870. type: "POST",
  3871. async: false,
  3872. success:
  3873. function(frete) {
  3874. if (frete.toUpperCase().indexOf('META HTTP-EQUIV') >= 0 ) {
  3875. $("html").html(frete);
  3876. return;
  3877. } else {
  3878. if (parseInt(frete) > 0) {
  3879. $("#CJ_FRETE").val(frete);
  3880. TotalGeral();
  3881. }
  3882. }
  3883. }
  3884. });
  3885. } else {
  3886. $("#CJ_FRETE").val(0);
  3887. }
  3888. }
  3889. }
  3890. //Grid
  3891. if (lRet == true) {
  3892. var nPrcTab = 0;
  3893. var nPrcVen = 0;
  3894. var lVencido = false;
  3895. var lItmBlq = false;
  3896. var cGrpEsp = 'PE,PEL,PED,PI';
  3897. var cMsLumEspL = '';
  3898. for (i = 1; i<=nItens; i++) {
  3899. cItem = String(i);
  3900. if (parseInt(i) < 10 ){cItem = "0"+String(i)};
  3901. cItmOrc = $("#CK_ITEM"+cItem).val().substr(0,1);
  3902. if(lItmBlq==false){
  3903. lItmBlq = $("#CK_ITEM"+cItem).val() == "xx";
  3904. }
  3905. if(cItmOrc != "x") {
  3906. cCodProd = formataProd($("#CK_PRODUTO"+cItem).val());
  3907. qtd = parseFloat($("#CK_QTDVEN"+cItem).val().replace('.',"").replace(",","."));
  3908. nTotalOrc = $("#CK_TOTAL"+cItem).val();
  3909. //nPrcTab += $("#iCK_PRCVEN"+cItem).val().replace('.',"").replace(",",".") * qtd;
  3910. //nPrcVen += $("#CK_PRCVEN"+cItem).val().replace('.',"").replace(",",".") * qtd;
  3911. nPrcTab += $("#iCK_PRCVEN"+cItem).maskMoney('unmasked')[0] * qtd;
  3912. nPrcVen += $("#CK_PRCVEN"+cItem).maskMoney('unmasked')[0] * qtd;
  3913. //Valida o preenchimento dos campos produto e quantidade
  3914. if (cCodProd == "" || $('#CK_QTDVEN'+cItem).val() == "" || nTotalOrc == ""){
  3915. lGrid = false;
  3916. } else {
  3917. cGrupo = $("#GRUPO"+cItem).val();
  3918. vencido = $("#VENCIMENTO"+cItem).val();
  3919. //Valida itens de grupos especiais
  3920. if(cGrpEsp.includes(cGrupo) && vencido == '1' ){
  3921. lVencido = true;
  3922. cMsLumEspL += cItmOrc+';'+cCodProd+';'+$("#CK_QTDVEN"+cItem).val()+'|'
  3923. }
  3924. }
  3925. }
  3926. }
  3927. if (lGrid == false){
  3928. lRet = false;
  3929. $("#orc-informar").html();
  3930. new PNotify({
  3931. title: 'Campo obrigatório',
  3932. text: 'Verifique o preenchimento dos campos Produto, Quantidade e Valor!',
  3933. type: 'error',
  3934. });
  3935. btnSlv.removeAttr('disabled');
  3936. dialogOrc.modal('hide');
  3937. } else {
  3938. $.ajax({
  3939. url: "U_VldDscMax.apw?PR=<%=cLCodLogin%>",
  3940. data: 'vlrTabela='+nPrcTab+'&vlrVenda='+nPrcVen+'&condpag='+$("#CJ_CONDPAG").val()+"&descDir="+$('#CJ_DSDIRET').val(),
  3941. cache: false,
  3942. type: "POST",
  3943. async: false,
  3944. success:
  3945. function(retorno) {
  3946. if (retorno.toUpperCase().indexOf('META HTTP-EQUIV') >= 0 ) {
  3947. $("html").html(retorno);
  3948. return;
  3949. }
  3950. if (retorno.substr(0, 3) == "NOK"){
  3951. aDesc = retorno.split('|#|');
  3952. cMsg = "O orçamento excedeu a Política de Descontos. Entre em contato com a Supervisão ou Diretoria.<br>";
  3953. cMsg += "Desconto concedido: <b>"+aDesc[0].substr(4)+"</b><br>";
  3954. cMsg += "Desconto máximo permitido: <b>"+aDesc[1]+"</b>";
  3955. bootbox.alert(cMsg);
  3956. lRet = false;
  3957. btnSlv.removeAttr('disabled');
  3958. dialogOrc.modal('hide');
  3959. }
  3960. }
  3961. });
  3962. }
  3963. }
  3964. //Verifica os itens especiais vencidos antes de salvar o formulário
  3965. if(lRet == true && lVencido){
  3966. msg = 'Existem códigos especiais com preços desatualizados. <br>';
  3967. msg += 'Deseja enviar e-mail solicitando atualização?';
  3968. bootbox.confirm({
  3969. title: 'Códigos especiais',
  3970. message: "<p>"+msg+"</p>",
  3971. backdrop: true,
  3972. buttons: {
  3973. cancel: {
  3974. label: 'Não'
  3975. },
  3976. confirm: {
  3977. label: 'Sim'
  3978. }
  3979. },
  3980. callback: function (result) {
  3981. if (result){
  3982. filorc = $("#CJ_FILIAL").val();
  3983. numorc = $("#CJ_NUM").val();
  3984. obra = $("#CJ_OBRA").val();
  3985. //Chama a função para envio de email
  3986. $.ajax({
  3987. url: "U_AtuPreco.apw?PR=<%=cLCodLogin%>",
  3988. type: "POST",
  3989. data: 'filial='+filorc+'&orcto='+numorc+'&obra='+obra+'&itens='+cMsLumEspL,
  3990. async: false
  3991. });
  3992. }
  3993. }
  3994. });
  3995. }
  3996. //Salva o orçamento
  3997. if (lRet == true){
  3998. dialogOrc.modal('hide');
  3999. if (lItmBlq == true){
  4000. bootbox.confirm({
  4001. title: "Produto Bloqueado",
  4002. message: "Um ou mais produtos do orçamento estão bloqueados e não serão salvos.",
  4003. buttons: {
  4004. confirm: {
  4005. label: 'OK'
  4006. },
  4007. cancel:{
  4008. label: 'Cancelar'
  4009. }
  4010. },
  4011. callback: function (result) {
  4012. if (result){
  4013. //Submete o formulário
  4014. salvarOrc(btnSlv);
  4015. }
  4016. }
  4017. });
  4018. } else {
  4019. //Submete o formulário
  4020. salvarOrc(btnSlv);
  4021. }
  4022. }
  4023. })
  4024. //Submete formulario
  4025. function salvarOrc(btnSlv){
  4026. var numorc = "";
  4027. //if (lRet == true){
  4028. var dialogSlv = bootbox.dialog({
  4029. message: '<p class="text-center"><i class="fa fa-spin fa-spinner"></i>&nbsp;&nbsp;Salvando orçamento... Aguarde...</p>',
  4030. closeButton: false
  4031. });
  4032. //busca os itens cadastrados
  4033. var ITENS = "";
  4034. var i = 0;
  4035. var nItens = parseFloat($("#PROXIMO").val());
  4036. var cCodProd;
  4037. var cItmOrc;
  4038. var cDescAcresc = "0";
  4039. for (i = 1; i<=nItens; i++) {
  4040. cItem = String(i);
  4041. if (parseInt(i) < 10 ){cItem = "0"+String(i)};
  4042. cCodProd = formataProd($("#CK_PRODUTO"+cItem).val());
  4043. cItmOrc = $("#CK_ITEM"+cItem).val().substr(0,1);
  4044. if(cItmOrc != "x") {
  4045. cPrcVen = $('#CK_PRCVEN'+cItem).val();
  4046. ITENS+= formataProd($('#CK_PRODUTO'+cItem).val())+';'; //1
  4047. ITENS+= $('#CK_QTDVEN'+cItem).val()+';'; //2
  4048. ITENS+= $('#CK_OBS'+cItem).val()+';'; //3
  4049. ITENS+= $('#CK_PRZEMB'+cItem).val()+';'; //4
  4050. ITENS+= cPrcVen+';'; //5
  4051. ITENS+= $('#CK_XPRCIMP'+cItem).val()+';'; //6
  4052. ITENS+= $('#CK_XVALIPI'+cItem).val()+';'; //7
  4053. ITENS+= $('#CK_XVALICM'+cItem).val()+';'; //8
  4054. ITENS+= $('#CK_XICMST'+cItem).val()+';'; //9
  4055. ITENS+= $('#ALIQ_ICMS'+cItem).val()+';'; //10
  4056. ITENS+= $('#ALIQ_IPI'+cItem).val()+';'; //11
  4057. ITENS+= $('#ALIQ_ST'+cItem).val()+';'; //12
  4058. ITENS+= $('#CK_TES'+cItem).val()+';'; //13
  4059. ITENS+= $('#CK_CUSTO'+cItem).val()+';'; //14
  4060. ITENS+= $('#CK_NOMDIRE'+cItem).val()+';'; //15
  4061. ITENS+= $('#PER_COM'+cItem).val()+';'; //16
  4062. ITENS+= $('#VAL_COM'+cItem).val()+';'; //17
  4063. ITENS+= $('#CK_DESCONT'+cItem).val()+'||' //18
  4064. }
  4065. }
  4066. objDados = {
  4067. CJ_FILIAL: $('#CJ_FILIAL').val(),
  4068. CJ_NUM: $('#CJ_NUM').val(),
  4069. RECCJANT: $('#RECCJANT').val(),
  4070. CJ_CLIENTE: formataCli($('#CJ_CLIENTE').val()),
  4071. CJ_TABELA: $('#CJ_TABELA').val(),
  4072. CJ_NROPOR: $('#CJ_NROPOR').val(),
  4073. CJ_REVISA: $('#CJ_REVISA').val(),
  4074. CJ_XCONTAT: $('#CJ_XCONTAT').val(),
  4075. CJ_XCONDDD: $('#CJ_XCONDDD').val(),
  4076. CJ_XCONTEL: $('#CJ_XCONTEL').val(),
  4077. CJ_CLIENT: $('#CJ_CLIENT').val(),
  4078. CJ_UFENT: $('#CJ_UFENT').val(),
  4079. CJ_OBRA: $('#CJ_OBRA').val(),
  4080. CJ_YOBRATP: $('#CJ_YOBRATP').val(),
  4081. CJ_VEND6: $('#CJ_VEND6').val(),
  4082. CJ_TERMOME: $('#CJ_TERMOME').val(),
  4083. CJ_CONDPAG: $('#CJ_CONDPAG').val(),
  4084. CJ_CLIINTE: $('#CJ_CLIINTE').val(),
  4085. CJ_RETORNO: $('#CJ_RETORNO').val(),
  4086. CJ_LUMINOT: $('#CJ_LUMINOT').val(),
  4087. CJ_REGLUMI: $('#CJ_REGLUMI').val(),
  4088. CJ_SEGMENT: $('#CJ_SEGMENT').val(),
  4089. CJ_PROPECC: $('#CJ_PROPECC').val(),
  4090. CJ_PROSCOD: $('#CJ_PROSCOD').val(),
  4091. CJ_REGIAO: $('#CJ_REGIAO').val(),
  4092. CJ_VEND: $('#CJ_VEND').val(),
  4093. CJ_VEND3: $('#CJ_VEND3').val(),
  4094. CJ_VEND4: $('#CJ_VEND4').val(),
  4095. CJ_CODESP: $('#CJ_CODESP').val(),
  4096. CJ_VEND7: $('#CJ_VEND7').val(),
  4097. CJ_VALIDA: $('#CJ_VALIDA').val(),
  4098. CJ_PRZEMB: $('#CJ_PRZEMB').val(),
  4099. CJ_TPFRETE: $('#CJ_TPFRETE').val(),
  4100. CJ_PERCFRT: $('#CJ_PERCFRT').val(),
  4101. CJ_FRETE: $('#CJ_FRETE').val(),
  4102. CJ_COMISTR: $('#CJ_COMISTR').val(),
  4103. CJ_OBS: $('#CJ_OBS').val(),
  4104. CJ_DSDIRET: $('#CJ_DSDIRET').val(),
  4105. PROXIMO: $('#PROXIMO').val(),
  4106. OPCAO: $('#OPCAO').val(),
  4107. aItens: ITENS
  4108. };
  4109. if($("#OPCAO").val() == "3"){
  4110. msg = "O orçamento foi incluído com sucesso.";
  4111. titulo = "Inclusão de Orçamento";
  4112. operacao = "incluir";
  4113. }
  4114. if($("#OPCAO").val() == "4"){
  4115. msg = "O orçamento foi alterado com sucesso.";
  4116. titulo = "Alteração de Orçamento";
  4117. operacao = "alterar";
  4118. }
  4119. if($("#OPCAO").val() == "5"){
  4120. msg = "O orçamento foi excluído com sucesso.";
  4121. titulo = "Exclusão de Orçamento";
  4122. operacao = "excluir";
  4123. }
  4124. $.ajax({
  4125. type: "POST",
  4126. url: "U_SlvOrc.apw?PR=<%=cLCodLogin%>",
  4127. async: false,
  4128. data: objDados
  4129. }).fail(function(){
  4130. bootbox.alert({
  4131. title: titulo,
  4132. message: "Não foi possível "+operacao+" o orçamento.",
  4133. backdrop: true,
  4134. callback: function (result) {
  4135. btnSlv.removeAttr('disabled');
  4136. dialogSlv.modal('hide');
  4137. }
  4138. });
  4139. }).done(function(strXml) {
  4140. if (strXml.indexOf('<META HTTP-EQUIV') >= 0 ) {
  4141. $("html").html(strXml);
  4142. return;
  4143. }
  4144. if (strXml == 'erro'||strXml == ''||strXml.toUpperCase().indexOf("EXPIRES") != -1||strXml.toUpperCase().indexOf("INVALID") != -1){
  4145. if (strXml == ''){
  4146. bootbox.alert({
  4147. title: titulo,
  4148. message: "Aguarde o prazo de 3 minutos para "+operacao+" um novo orçamento.",
  4149. backdrop: true,
  4150. callback: function (result) {
  4151. btnSlv.removeAttr('disabled');
  4152. dialogSlv.modal('hide');
  4153. }
  4154. });
  4155. }else{
  4156. bootbox.alert({
  4157. title: titulo,
  4158. message: "Falha ao "+operacao+" o orçamento.",
  4159. backdrop: true,
  4160. callback: function (result) {
  4161. btnSlv.removeAttr('disabled');
  4162. dialogSlv.modal('hide');
  4163. }
  4164. });
  4165. }
  4166. }
  4167. else {
  4168. if($("#OPCAO").val() == "3"){
  4169. numorc = " Foi gerado o orçamento nº "+strXml+"."
  4170. }
  4171. bootbox.alert({
  4172. title: titulo,
  4173. message: msg+numorc,
  4174. backdrop: true,
  4175. callback: function (result) {
  4176. document.location.href = "U_Orcamento.apw?PR=<%=cLCodLogin%>";
  4177. dialogSlv.modal('hide');
  4178. }
  4179. });
  4180. }
  4181. });
  4182. //};
  4183. }
  4184. $('#btExcluir').click(function() {
  4185. var lRet = true
  4186. var i = 0;
  4187. var lGrid = true;
  4188. var cCodProd;
  4189. var btnSlv = $(this);
  4190. //Desabilita o botao
  4191. $('#btExcluir').attr({ 'disabled': 'disabled' });
  4192. objDados = {
  4193. CJ_CLIENTE: formataCli($('#CJ_CLIENTE').val()),
  4194. CJ_NUM: $('#CJ_NUM').val()
  4195. };
  4196. $.ajax({
  4197. type: "POST",
  4198. url: "U_ExcOrc.apw?PR=<%=cLCodLogin%>",
  4199. async: false,
  4200. data: objDados
  4201. }).fail(function(){
  4202. bootbox.alert({
  4203. title: "Exclusão de Orçamento",
  4204. message: "Não foi possível excluir o orçamento.",
  4205. backdrop: true,
  4206. callback: function (result) {
  4207. btnSlv.removeAttr('disabled');
  4208. }
  4209. });
  4210. }).done(function(strXml) {
  4211. if (strXml.indexOf('<META HTTP-EQUIV') >= 0 ) {
  4212. $("html").html(strXml);
  4213. return;
  4214. }
  4215. bootbox.alert({
  4216. title: "Exclusão de Orçamento",
  4217. message: "O orçamento "+$('#CJ_NUM').val()+" foi excluído com sucesso.",
  4218. backdrop: true,
  4219. callback: function (result) {
  4220. document.location.href = "U_Orcamento.apw?PR=<%=cLCodLogin%>";
  4221. }
  4222. });
  4223. });
  4224. })
  4225. </script>
  4226. </body>
  4227. </html>