AddPed.apl 62 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559
  1. #include "PROTHEUS.CH"
  2. #include "RWMAKE.CH"
  3. #include "APWEBEX.CH"
  4. #include "TOPCONN.CH"
  5. #include "TBICONN.CH"
  6. #DEFINE SMSDEBUG
  7. /*__________________________________________________________________________
  8. ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
  9. ¦¦+-----------------------------------------------------------------------+¦¦
  10. ¦¦¦Funçäo ¦ AddOrc ¦ Autor ¦ Lucilene Mendes ¦ Data ¦28.08.17 ¦¦¦
  11. ¦¦+----------+------------------------------------------------------------¦¦¦
  12. ¦¦¦Descriçäo ¦ Inclusão de Orçamento de Venda. ¦¦¦
  13. ¦¦+-----------------------------------------------------------------------+¦¦
  14. ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
  15. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  16. */
  17. User Function AddPed()
  18. Local cHtml
  19. Local cItem := ""
  20. Local cCondNot := ""
  21. Local nLin := 0
  22. Local f := 0
  23. Local lMoeda := .F.
  24. Local lNumber := .F.
  25. Local aTpFrete := {}
  26. Private cFilVen := ""
  27. Private cCodLogin := ""
  28. Private cVendLogin := ""
  29. Private cVendedor := ""
  30. Private cSite := "u_PortalLogin.apw"
  31. Private cPagina := "Pedido de Venda"
  32. Private cTitle := "Portal SMS"
  33. Private cMenus := ""
  34. Private cAnexos := ""
  35. Private cDirOrc := "\anexosPortal\orcamentos\"
  36. Private cDirPortal := ""
  37. Private cEndServ := "" // Endereço do servidor da pagina de Portal
  38. Private cOrcCabec := ""
  39. Private cOrcItens := ""
  40. Private cItensHid := ""
  41. Private cBotoes := ""
  42. Private cBtnItens := ""
  43. Private cOptProd := ""
  44. Private cOptCond := ""
  45. Private cOptCli := ""
  46. Private cOptUF := ""
  47. Private cOptMun := ""
  48. Private cTblDesc := ""
  49. Private cUsuEmiss := ""
  50. Private cNumOp := ""
  51. Private cNumOrc := ""
  52. Private cFilOrc := ""
  53. Private cRetorno := ""
  54. Private cSegmento := ""
  55. Private cProsp := ""
  56. Private cProspPor := ""
  57. Private cPFrete := ""
  58. Private cFilPed := ""
  59. Private cCodOrc := ""
  60. Private cCliente := ""
  61. Private cContato := ""
  62. Private cContDDD := ""
  63. Private cContTel := ""
  64. Private cTpCliente := ""
  65. Private cGrpTrib := ""
  66. Private cEndOpc := ""
  67. Private cCondPag := ""
  68. Private cLocalEnt := ""
  69. Private cObra := ""
  70. Private cStatusObra := ""
  71. Private cIntermed := ""
  72. Private cOport := ""
  73. Private cRevOpt := ""
  74. Private cRegional := ""
  75. Private cTpFrete := ""
  76. Private cFatPar := ""
  77. Private cEstagPv := ""
  78. Private cValFre := ""
  79. Private cPrazoEmb := ""
  80. Private cEstudo := ""
  81. Private cNumEst := ""
  82. Private cPrevFecha := ""
  83. Private cMargemCont := ""
  84. Private cTransp := ""
  85. Private cRedesp := ""
  86. Private cTotalReg := ""
  87. Private cEntrega := ""
  88. Private cEmissao := ""
  89. Private cValidade := ""
  90. Private cEnvpb := ""
  91. Private cJust := ""
  92. Private cMenNota := ""
  93. Private cDesFat := ""
  94. Private cOperLum := ""
  95. Private cObsCom := ""
  96. Private cComent := ""
  97. Private nTVlrUnit := 0
  98. Private nTVlrSDesc := 0
  99. Private nTQtdItem := 0
  100. Private nTTotal := 0
  101. Private nTComiss := 0
  102. Private nTImpostos := 0
  103. Private nTAcresc := 0
  104. Private nTFrete := 0
  105. Private nItens := 0
  106. Private lNewOrc := .T.
  107. Private lEdit := .F.
  108. Private lCopy := .F.
  109. Private cShowDesc := "false"
  110. Private aItens := {}
  111. Private aAnexos := {}
  112. Private aOperLum := {}
  113. Web Extended Init cHtml Start U_inSite()
  114. cVendLogin := u_GetUsrPR()
  115. cCodLogin := U_SetParPR(cVendLogin)
  116. If Empty(HttpSession->CodVend)
  117. cHtml:= '<META HTTP-EQUIV="Refresh" CONTENT="0 ; URL='+cSite+'">'
  118. Return cHtml
  119. Else
  120. If !Empty(HttpSession->Superv) .and. HttpSession->Superv <> HttpSession->CodVend
  121. HttpSession->CodVend:= HttpSession->Superv
  122. Endif
  123. Endif
  124. // Pega do parâmetro com o Titulo do Portal
  125. cTitle := SuperGetMV("PS_TITLE", .T., "Portal SMS")
  126. // Define a funcao a ser chama no link
  127. cSite := "u_SMSPortal.apw?PR="+cCodLogin
  128. // Monta o cabeçalho para a pagina
  129. cHeader := U_PSHeader(cTitle, cSite)
  130. //Função que atualiza os menus
  131. cMenus := U_GetMenus(AllTrim(Upper(Procname())), cVendLogin)
  132. //Atualiza as variáveis
  133. cEndServ := GetMv('MV_WFBRWSR')
  134. cCodVend:=cVendLogin
  135. cNomeVend:= HttpSession->Nome
  136. cItem := StrZero(1,TamSX3("C6_ITEM")[1])
  137. cFilPed:= '<div class="row form-group" style="display:none;">'
  138. cFilPed+= ' <div class="col-lg-2">'
  139. cFilPed+= ' <label class="control-label">Filial</label>'
  140. cFilPed+= ' <input id="C5_FILIAL" name="C5_FILIAL" class="form-control" value="" disabled >'
  141. //cFilPed+= ' <input id="C5_VEND" name="C5_VEND" type="hidden" value="'+cVendLogin+'">'
  142. cFilPed+= ' </div>'
  143. cCodOrc:= ' <div class="col-lg-2" style="display:none;">'
  144. cCodOrc+= ' <label class="control-label">Número</label>'
  145. cCodOrc+= ' <input id="C5_NUM" name="C5_NUM" class="form-control" value="" disabled >'
  146. cCodOrc+= ' </div>'
  147. cCodOrc+= '</div>'
  148. cCliente:=' <div class="flexContainer">
  149. cCliente+=' <input type="text" class="form-control smsediticon" placeholder="Digite o código, CPF/CNPJ ou Razão Social..." '
  150. cCliente+=' name="C5_CLIENTE" id="C5_CLIENTE"'
  151. cCliente+=' aria-required="true" data-live-search="true" '
  152. cCliente+=' autocomplete="off" value="" />'
  153. cCliente+=' <button class="btSearchCli" id="btSearchCli">'
  154. cCliente+=' <i class="fa fa-search" alt="Pesquisar"></i>'
  155. cCliente+=' </button>
  156. cCliente+=' </div>
  157. cOptCli+= u_ListaCli(cVendLogin,"",'S')
  158. /*
  159. cCliente:='<select data-plugin-selectTwo class="form-control populate placeholder" data-plugin-options='+"'"
  160. cCliente+='{ "placeholder": "Selecione um Cliente", "allowClear": false }'+"'"+' name="C5_CLIENTE" id="C5_CLIENTE" '
  161. cCliente+='onchange="javascript:SelCliente()" required="" aria-required="true"> '
  162. cCliente+=' <option value=""> </option>'
  163. // Localiza os clientes
  164. cOptCli+= u_ListaCli(cVendLogin,"")
  165. cCliente+= cOptCli
  166. cCliente+='</select>'
  167. */
  168. //Oportunidade
  169. cOport:='<select data-plugin-selectTwo class="form-control poulate placeholder mb-md" data-plugin-options='+"'"+'{"placeholder": "Selecione..."}'+"'"'
  170. cOport+=' name="C5_NROPOR" id="C5_NROPOR" onchange="javascript:atuRevOpt();" disabled>'
  171. cOport+='<option value=""></option>'
  172. //Busca a lista de oportunidades
  173. cOport+= u_ListaOpt(cVendLogin,"")
  174. cOport+='</select>'
  175. // cRevOpt:= '<input id="C5_REVISA" name="C5_REVISA" class="form-control" value="" disabled>'
  176. //Combo da tabela de preço
  177. cTabPadrao:= GetNewPar("PR_TABPADR","001")
  178. cTabela:='<select data-plugin-selectTwo class="form-control populate placeholder" data-plugin-options='+"'"
  179. cTabela+='{ "placeholder": "Selecione", "allowClear": false }'+"'"+' name="C5_TABELA" id="C5_TABELA" '
  180. cTabela+='</select>'
  181. //Tabela de preço por filial
  182. cQry:= "SELECT DA0_CODTAB, DA0_DESCRI "
  183. cQry+= "FROM "+RetSqlName("DA0")+" DA0 "
  184. cQry+= "WHERE DA0_FILIAL = '"+xFilial("DA0")+"'
  185. cQry+= "AND DA0_ATIVO = '1' "
  186. cQry+= "AND (DA0_DATATE = '' OR DA0_DATATE >= '"+dtos(dDataBase)+"') "
  187. cQry+= "AND DA0.D_E_L_E_T_ = ' ' "
  188. If Select("QFIL") > 0
  189. QFIL->(dbCloseArea())
  190. Endif
  191. TcQuery cQry New Alias "QFIL"
  192. While QFIL->(!Eof())
  193. cTabela+=' <option value="'+Alltrim(QFIL->DA0_CODTAB)+'" '+Iif(QFIL->DA0_CODTAB == cTabPadrao,'selected','')+'>'+Alltrim(QFIL->DA0_CODTAB)+' - '+Alltrim(QFIL->DA0_DESCRI)+'</option>'
  194. QFIL->(dbSkip())
  195. End
  196. cTabela+='</select>'
  197. //Tipo de cliente
  198. aTpCli:= RetSx3Box(Posicione('SX3',2,'C5_TIPOCLI','X3CBox()'),,,1)
  199. cTpCliente:='<select data-plugin-selectTwo class="form-control populate placeholder" data-plugin-options='+"'"
  200. cTpCliente+='{ "placeholder": "Selecione...", "allowClear": false }'+"'"+' name="C5_TIPOCLI" id="C5_TIPOCLI" '
  201. cTpCliente+=' disabled >'
  202. cTpCliente+=' <option value=""></option>'
  203. For f:= 1 to Len(aTpCli)
  204. cTpCliente+=' <option value="'+aTpCli[f,2]+'">'+aTpCli[f,3]+'</option>'
  205. Next
  206. cTpCliente+='</select>'
  207. //Grupo de tributação do cliente
  208. cGrpTrib:= '<input id="C5_GRPTRIB" name="C5_GRPTRIB" class="form-control" value="" disabled>'
  209. //Usuario Emissao
  210. cUsuEmiss:= '<input id="C5_USUEMIS" name="C5_USUEMIS" class="form-control" value="'+cVendLogin +'/'+ HttpSession->NomeFull+'" disabled>'
  211. //End. Opc. Ent.
  212. cEndOpc:= '<input type="hidden" id="C5_ENDOPC" name="C5_ENDOPC" maxlength="'+cvaltochar(GetSX3Cache("C5_ENDOPC","X3_TAMANHO"))+'" class="form-control text-uppercase" value="" disabled>'
  213. //Contato
  214. cEndCep := '<input id="C5_CEPOPC" name="C5_CEPOPC" maxlength="'+cvaltochar(GetSX3Cache("C5_CEPOPC","X3_TAMANHO"))+'" class="form-control text-uppercase" value="" disabled>'
  215. cEndRua := '<input id="C5_RUAOPC" name="C5_RUAOPC" maxlength="'+cvaltochar(GetSX3Cache("C5_RUAOPC","X3_TAMANHO"))+'" class="form-control text-uppercase" value="" disabled>'
  216. cEndNum := '<input id="C5_NUMOPC" name="C5_NUMOPC" maxlength="'+cvaltochar(GetSX3Cache("C5_NUMOPC","X3_TAMANHO"))+'" class="form-control text-uppercase" value="" disabled>'
  217. cEndBair:= '<input id="C5_BAIROPC" name="C5_BAIROPC" maxlength="'+cvaltochar(GetSX3Cache("C5_BAIROPC","X3_TAMANHO"))+'" class="form-control text-uppercase" value="" disabled>'
  218. cEndMun := '<input id="C5_MUNOPC" name="C5_MUNOPC" maxlength="'+cvaltochar(GetSX3Cache("C5_MUNOPC","X3_TAMANHO"))+'" class="form-control text-uppercase" value="" disabled>'
  219. cEndUF := '<input id="C5_UFOPC" name="C5_UFOPC" maxlength="'+cvaltochar(GetSX3Cache("C5_UFOPC","X3_TAMANHO"))+'" class="form-control text-uppercase" value="" disabled>'
  220. cEndRef := '<input id="C5_REFOPC" name="C5_REFOPC" maxlength="'+cvaltochar(GetSX3Cache("C5_REFOPC","X3_TAMANHO"))+'" class="form-control text-uppercase" value="" disabled>'
  221. //Cliente de EntregaCJ_XCONTEL
  222. cCliEntr:='<select data-plugin-selectTwo class="form-control populate placeholder" data-plugin-options='+"'"
  223. cCliEntr+='{ "placeholder": "Selecione um Cliente", "allowClear": false }'+"'"
  224. cCliEntr+=' name="C5_CLIENT" id="C5_CLIENT" onchange="javascript:atuLocEnt();" disabled>'
  225. cCliEntr+=' <option data-hidden="true"></option>'
  226. cCliEntr+='</select>'
  227. //Local de entrega
  228. cLocalEnt:= '<div class="flexContainer">'
  229. cLocalEnt+= ' <input id="C5_UFENT" name="C5_UFENT" class="form-control" value="" disabled>' //onchange="javascript:atuVlrFrete();"
  230. cLocalEnt+=' <button class="btEndEntrega" id="btEndEntrega" title="Alterar endereço" disabled>'
  231. cLocalEnt+=' <i class="fa fa-exchange"></i>'
  232. cLocalEnt+=' </button>'
  233. cLocalEnt+='</div>'
  234. //Alimenta os estados
  235. cOptUF:= u_ListaUF()
  236. //Nome da obra
  237. // cObra:= '<input id="C5_OBRA" name="C5_OBRA" maxlength="'+cvaltochar(GetSX3Cache("C5_OBRA","X3_TAMANHO"))+'" class="form-control text-uppercase" value="" disabled>'
  238. //Seleciona as condições de pagamento disponíveis no combo
  239. cCondPag:='<select data-plugin-selectTwo class="form-control populate placeholder mb-md" data-plugin-options='+"'" '
  240. cCondPag+='{ "placeholder": "Selecione...", "allowClear": false }'+"'"+' name="C5_CONDPAG" id="C5_CONDPAG" '
  241. cCondPag+='required="" aria-required="true" onchange="javascript:vldCond()" disabled>'
  242. cCondPag+=' <option value=""></option>'
  243. //Verifica a tabela cadastrada no cliente
  244. SE4->(dbSeek(xFilial("SE4")+SA1->A1_COND))
  245. cCondNot:= GetNewPar("PR_CONDPNO","")
  246. cCondPad:= GetNewPar("PR_CONDPAD","B13")
  247. //Seleciona as condições de pagamento disponíveis no combo
  248. cQry:= " Select E4_CODIGO, E4_DESCRI, E4_ACRSFIN"
  249. cQry+= " From "+RetSqlName("SE4")+" SE4 "
  250. cQry+= " Where E4_FILIAL = '"+xFilial("SE4")+"' "
  251. cQry+= " And E4_MSBLQL <> '1' "
  252. If !Empty(cCondNot)
  253. cQry+= " And E4_CODIGO not in "+FormatIn(cCondNot,"|")+" "
  254. Endif
  255. cQry+= " And SE4.D_E_L_E_T_ = ' ' "
  256. If Select("QRP") > 0
  257. QRP->(dbCloseArea())
  258. Endif
  259. TcQuery cqry New Alias "QRP"
  260. While QRP->(!Eof())
  261. cCondPag+=' <option value="'+QRP->E4_CODIGO+'" '+Iif(QRP->E4_CODIGO == cCondPad,'selected','')+'>'+Alltrim(QRP->E4_CODIGO)+" - "+Alltrim(QRP->E4_DESCRI)+'</option>'
  262. QRP->(dbSkip())
  263. End
  264. QRP->(dbCloseArea())
  265. cCondPag+='</select>'
  266. //Regional
  267. cRegional:='<select data-plugin-selectTwo class="form-control populate placeholder mb-md" data-plugin-options='+"'" '
  268. cRegional+='{ "placeholder": "Selecione...", "allowClear": false }'+"'"+' name="C5_VEND1" id="C5_VEND1" '
  269. cRegional+='required="" aria-required="true" disabled>'
  270. cRegional+='<option value=""></option>'
  271. cRegional+= u_ListaVend(.T.,Posicione("SA3",1,xFilial("SA3")+cVendLogin,"A3_REGIONA"))
  272. cRegional+='</select>'
  273. //Vendedor do cliente
  274. cVend2:= '<select data-plugin-selectTwo class="form-control populate placeholder mb-md" data-plugin-options='+"'" '
  275. cVend2+='{ "placeholder": "Selecione...", "allowClear": false }'+"'"+' name="C5_VEND2" id="C5_VEND2" '
  276. cVend2+='disabled>' //required="" aria-required="true"
  277. cVend2+='<option value=""></option>'
  278. cVend2+= u_ListaVend(.F.,'')
  279. cVend2+='</select>'
  280. //Vendedor da oportunidade
  281. cVend3:= '<select data-plugin-selectTwo class="form-control populate placeholder mb-md" data-live-search="true" data-plugin-options='+"'"
  282. cVend3+='{ "placeholder": "Selecione...", "allowClear": false }'+"'"+' name="C5_VEND3" id="C5_VEND3" disabled>'//required="" aria-required="true"
  283. cVend3+='<option value="">Selecione...</option>'
  284. cVend3+= u_ListaVend(.F.,SA1->A1_VEND)
  285. cVend3+='</select>'
  286. //Vendedor 4
  287. cVend4:= '<select data-plugin-selectTwo class="form-control populate placeholder mb-md" data-plugin-options='+"'" '
  288. cVend4+='{ "placeholder": "Selecione...", "allowClear": false }'+"'"+' name="C5_VEND4" id="C5_VEND4" '
  289. cVend4+=' disabled>' //required="" aria-required="true"
  290. cVend4+='<option value=""></option>'
  291. cVend4+= u_Vend04('')
  292. cVend4+='</select>'
  293. //Especificado por
  294. // cEspecif:= '<select data-plugin-selectTwo class="form-control populate placeholder mb-md" data-plugin-options='+"'" '
  295. // cEspecif+='{ "placeholder": "Selecione...", "allowClear": false }'+"'"+' name="C5_CODESP" id="C5_CODESP" '
  296. // cEspecif+='disabled>' //required="" aria-required="true"
  297. // cEspecif+='<option value=""></option>'
  298. // cEspecif+= u_ListaEsp('')
  299. // cEspecif+='</select>'
  300. //Negociadora
  301. cNegociad:= '<select data-plugin-selectTwo class="form-control populate placeholder mb-md" data-plugin-options='+"'" '
  302. cNegociad+='{ "placeholder": "Selecione...", "allowClear": false }'+"'"+' name="C5_NEGOCIA" id="C5_NEGOCIA" '
  303. cNegociad+='disabled>' //required="" aria-required="true"
  304. cNegociad+='<option value=""></option>'
  305. cNegociad+= u_ListaNeg('')
  306. cNegociad+='</select>'
  307. //Validade do Orçamento
  308. // nDiasVal:= GetNewPar("PR_DTVALID",10)
  309. // cValidade:='<input type="text" id="C5_VALIDA" name="C5_VALIDA" data-plugin-datepicker data-plugin-options='+"'"+'{ "startDate": "+'+cvaltochar(nDiasVal)+'d", "language": "pt-BR",'
  310. // cValidade+='"daysOfWeekDisabled": "[0]","daysOfWeekHighlighted":"[0]","autoclose": "true","disabled":"true"}'+"'"+' class="form-control only-numbers" placeholder="__/__/____" '
  311. // cValidade+='value="'+dtoc(date()+nDiasVal)+'" disabled>'
  312. //Data entrega
  313. cEntrega:='<input type="text" id="C5_DATENTR" name="C5_DATENTR" data-plugin-datepicker data-plugin-options='+"'"+'{ "startDate": "+d", "language": "pt-BR",'
  314. cEntrega+='"daysOfWeekDisabled": "[0]","daysOfWeekHighlighted":"[0]","autoclose": "true","disabled":"true"}'+"'"+' class="form-control only-numbers" placeholder="__/__/____" '
  315. cEntrega+='value="'+dtoc(date())+'" disabled>'
  316. //Prazo de embarque
  317. // cPrazoEmb:= '<input id="C5_PRZEMB" name="C5_PRZEMB" maxlength="'+cvaltochar(GetSX3Cache("C5_PRZEMB","X3_TAMANHO"))+'" class="form-control" value="15" disabled>'
  318. //Tipo de frete
  319. aTpFrete:= {{"S","Sem Frete"},{"C","CIF"},{"F","FOB"}}
  320. cTpFrete:='<select data-plugin-selectTwo class="form-control poulatemb-md" data-plugin-options='+"'"+'{"minimumResultsForSearch": "-1"}'+"'"'
  321. cTpFrete+=' name="C5_TPFRETE" id="C5_TPFRETE" onchange="javascript:VldFrete()" disabled>'
  322. For f:= 1 to Len(aTpFrete)
  323. cTpFrete+=' <option value="'+aTpFrete[f,1]+'" '+iif(aTpFrete[f,1] == "C", 'selected', '')+' >'+aTpFrete[f,2]+'</option>'
  324. Next
  325. cTpFrete+='</select>'
  326. //Faturamento Parcial
  327. aFatPar:= {{"T",""},{"2","Sim"},{"1","Não"}}
  328. cFatPar:='<select data-plugin-selectTwo class="form-control poulatemb-md" data-plugin-options='+"'"+'{"minimumResultsForSearch": "-1"}'+"'"'
  329. cFatPar+=' name="C5_FATPARC" id="C5_FATPARC" disabled >'
  330. For f:= 1 to Len(aFatPar)
  331. cFatPar+=' <option value="'+aFatPar[f,1]+'" '+iif(aFatPar[f,1] == "1", 'selected', '')+'>'+aFatPar[f,2]+'</option>'
  332. Next
  333. cFatPar+='</select>'
  334. //Estagio PV
  335. aEstagPv:= {{"T",""},{"1","Um"},{"2","Dois"},{"3","Três"},{"4","Quatro"},{"5","Cinco"},{"6","Seis"},{"7","Sete"}}
  336. cEstagPv:='<select data-plugin-selectTwo class="form-control poulatemb-md" data-plugin-options='+"'"+'{"minimumResultsForSearch": "-1"}'+"'"'
  337. cEstagPv+=' name="C5_ESTAGIO" id="C5_ESTAGIO" disabled >'
  338. For f:= 1 to Len(aEstagPv)
  339. cEstagPv+=' <option value="'+aEstagPv[f,1]+'" '+iif(aEstagPv[f,1] == "7", 'selected', '')+' >'+aEstagPv[f,2]+'</option>'
  340. Next
  341. cEstagPv+='</select>'
  342. //T. Oper. Lum
  343. aOperLum:= {{"1","VND"},{"2","V.ORD"},{"3","S.FAT"},{"4","RM.VOR"},{"5","REM.FAT"},{"6","IND"},{"7","SUC"},{"8","CONSER"},{"9","GARAN"},{"A","TRANSF"},{"O","OTR"},{"B","AMOS"},{"C","BON"},{"D","V.CONS"},{"E","R.CONS"},{"M","ZFM"}}
  344. cOperLum:='<select data-plugin-selectTwo class="form-control poulatemb-md" data-plugin-options='+"'"+'{"minimumResultsForSearch": "-1"}'+"'"'
  345. cOperLum+=' name="C5_TIPOLUM" id="C5_TIPOLUM" disabled >'
  346. For f:= 1 to Len(aOperLum)
  347. cOperLum+=' <option value="'+aOperLum[f,1]+'" '+iif(aOperLum[f,1] == "1", 'selected', '')+' >'+aOperLum[f,2]+'</option>'
  348. Next
  349. cOperLum+='</select>'
  350. cMailNf:= '<input id="C5_MAILNF" name="C5_MAILNF" class="form-control text-uppercase" placeholder="Email" maxlength="'+cvaltochar(GetSX3Cache("C5_MAILNF","X3_TAMANHO"))+'" '
  351. cMailNf+= 'value="" disabled>'
  352. //Data Emissao
  353. cEmissao:='<input type="text" id="C5_EMISSAO" name="C5_EMISSAO" data-plugin-datepicker data-plugin-options='+"'"+'{ "startDate": "+d", "language": "pt-BR",'
  354. cEmissao+='"daysOfWeekDisabled": "[0]","daysOfWeekHighlighted":"[0]","autoclose": "true","disabled":"true"}'+"'"+' class="form-control only-numbers" placeholder="__/__/____" '
  355. cEmissao+='value="'+dtoc(date())+'" disabled>'
  356. //Envia Pato Branco
  357. aEnvpb:= {{"T",""},{"2","Sim"},{"1","Não"}}
  358. cEnvpb:='<select data-plugin-selectTwo class="form-control poulatemb-md" data-plugin-options='+"'"+'{"minimumResultsForSearch": "-1"}'+"'"'
  359. cEnvpb+=' name="C5_SIBAP" id="C5_SIBAP" disabled >'
  360. cEnvpb+='value="" >'
  361. For f:= 1 to Len(aEnvpb)
  362. cEnvpb+=' <option value="'+aEnvpb[f,1]+'" '+iif(aEnvpb[f,1] == "1", 'selected', '')+' >'+aEnvpb[f,2]+'</option>'
  363. Next
  364. cEnvpb+='</select>'
  365. // cPFrete:= '<input id="C5_PERCFRT" name="C5_PERCFRT" class="form-control text-right percentual" placeholder="0,00" maxlength="'+cvaltochar(GetSX3Cache("C5_PERCFRT","X3_TAMANHO"))+'" '
  366. // cPFrete+= 'value="" disabled>'
  367. cValFre:= '<input id="C5_FRETE" name="C5_FRETE" class="form-control money text-right" placeholder="0,00" '
  368. cValFre+= 'value="" disabled>'
  369. //% RT
  370. cComRT:= '<input id="C5_COMISTR" name="C5_COMISTR" class="form-control percentual text-right" placeholder="0,00" maxlength="'+cvaltochar(GetSX3Cache("C5_COMISTR","X3_TAMANHO"))+'" '
  371. cComRT+= 'value="" disabled>'
  372. //Observação Comercial
  373. // cObsCom:= ""
  374. //Margem de Contribuição
  375. If HttpSession->Tipo <> "R" //Representante
  376. cMargemCont:= ' <div class="col-lg-2"> '
  377. cMargemCont+= ' <label class="control-label">MC Orçamento</label> '
  378. cMargemCont+= ' <input id="MARGEM" name="MARGEM" class="form-control" value="" disabled >'//'+u_getMCOrc() + "%"+'
  379. cMargemCont+= ' </div>'
  380. Endif
  381. //No. Oportun.
  382. // If HttpSession->Tipo <> "R" //Representante
  383. cNumOp:= ' <div class="col-lg-3"> '
  384. cNumOp+= ' <label class="control-label">No. Oportun.</label> '
  385. cNumOp+= ' <input id="C5_NROPOR" name="C5_NROPOR" class="form-control" value="" disabled >'//'+u_getMCOrc() + "%"+'
  386. cNumOp+= ' </div>'
  387. // Endif
  388. //Num Orc
  389. // If HttpSession->Tipo <> "R" //Representante
  390. cNumOrc:= ' <div class="col-lg-3"> '
  391. cNumOrc+= ' <label class="control-label">No. Orc.</label> '
  392. cNumOrc+= ' <input id="C5_YNUMORC" name="C5_YNUMORC" class="form-control" value="" disabled >'//'+u_getMCOrc() + "%"+'
  393. cNumOrc+= ' </div>'
  394. // Endif
  395. //Transportadora
  396. cTransp:='<select data-plugin-selectTwo class="form-control populate placeholder mb-md" data-plugin-options='+"'" '
  397. cTransp+='{ "placeholder": "Selecione uma Transportadora", "allowClear": false }'+"'"+' name="C5_TRANSP" id="C5_TRANSP" '
  398. cTransp+='required="" aria-required="true" disabled > '
  399. cTransp+=' <option value="'+SC5->C5_TRANSP+'">'+Alltrim(Posicione("SA4",1,xFilial("SA4")+SC5->C5_TRANSP,"A4_NOME"))+'</option>'
  400. //Seleciona as transportadoras disponíveis no combo
  401. cQry:= " Select A4_COD COD, A4_NOME NOME"
  402. cQry+= " From "+RetSqlName("SA4")+" SA4 "
  403. cQry+= " Where A4_FILIAL = '"+xFilial("SA4")+"' "
  404. cQry+= " And A4_COD NOT IN ('"+SA1->A1_TRANSP+"','"+SC5->C5_TRANSP+"') "
  405. cQry+= " And SA4.A4_MSBLQL = '2' "
  406. cQry+= " And SA4.D_E_L_E_T_ = ' ' "
  407. If Select("QRT")> 0
  408. QRT->(dbCloseArea())
  409. Endif
  410. APWExOpenQuery(ChangeQuery(cQry),'QRT',.T.)
  411. While QRT->(!Eof())
  412. cTransp+=' <option value="'+Alltrim(QRT->COD)+'">'+Alltrim(QRT->NOME)+'</option>'
  413. QRT->(dbSkip())
  414. End
  415. cTransp+='</select>'
  416. //Redespacho
  417. cRedesp:='<select data-plugin-selectTwo class="form-control populate placeholder mb-md" data-plugin-options='+"'" '
  418. cRedesp+='{ "placeholder": "Selecione uma Transportadora", "allowClear": false }'+"'"+' name="C5_REDESP" id="C5_REDESP" '
  419. cRedesp+='required="" aria-required="true" disabled > '
  420. cRedesp+=' <option value="'+SC5->C5_REDESP+'">'+Alltrim(Posicione("SA4",1,xFilial("SA4")+SC5->C5_REDESP,"A4_NOME"))+'</option>'
  421. //Seleciona as transportadoras disponíveis no combo
  422. cQry:= " Select A4_COD COD, A4_NOME NOME"
  423. cQry+= " From "+RetSqlName("SA4")+" SA4 "
  424. cQry+= " Where A4_FILIAL = '"+xFilial("SA4")+"' "
  425. cQry+= " And A4_COD NOT IN ('"+SA1->A1_TRANSP+"','"+SC5->C5_REDESP+"') "
  426. cQry+= " And SA4.A4_MSBLQL = '2' "
  427. cQry+= " And SA4.D_E_L_E_T_ = ' ' "
  428. If Select("QRT")> 0
  429. QRT->(dbCloseArea())
  430. Endif
  431. APWExOpenQuery(ChangeQuery(cQry),'QRT',.T.)
  432. While QRT->(!Eof())
  433. cRedesp+=' <option value="'+Alltrim(QRT->COD)+'">'+Alltrim(QRT->NOME)+'</option>'
  434. QRT->(dbSkip())
  435. End
  436. cRedesp+='</select>'
  437. /*
  438. //Peso
  439. cPeso:= '<input type="text" id="C5_XPESO" name="C5_XPESO" class="form-control text-right only-numbers" placeholder="0" '
  440. cPeso+= 'value="">'
  441. //Volume
  442. cVolume:= '<input type="text" id="C5_XVOLUME" name="C5_XVOLUME" class="form-control text-right only-numbers" placeholder="0" '
  443. cVolume+= 'value="">'
  444. //Espécie
  445. cEspecie:= '<input type="text" id="C5_XESPECI" name="C5_XESPECI" class="form-control" placeholder="" '
  446. cEspecie+= 'value="" maxlength="10">'
  447. //Itens do orçamento
  448. /*
  449. aItens - array que define o cabeçalho da tabela de produtos
  450. [1] - Nome da coluna
  451. [2] - Nome do campo
  452. [3] - Tamanho
  453. [4] - Alinhamento
  454. [5] - Tipo
  455. [6] - Editável
  456. [7] - Obrigatório
  457. [8] - Moeda
  458. [9] - Placeholder
  459. [10] - Hidden
  460. [11] - MaxLength
  461. */
  462. aAdd(aItens, {"Item","C6_ITEM","*","text-left","C",.F.,.F.,.F.,"",.F.,""})
  463. aAdd(aItens, {"Produto","C6_PRODUTO","300px"," text-left","C",.F.,.T.,.F.,"Selecione...",.F.,""})
  464. aAdd(aItens, {"Unidade","C6_UM","40px"," text-left","C",.F.,.T.,.F.,"",.F.,""})
  465. aAdd(aItens, {"Quant.","C6_QTDVEN","*"," text-right only-numbers","N",.T.,.T.,.F.,"0",.F.,""})
  466. aAdd(aItens, {"Vlr Unitário","C6_PRCVEN","*"," text-right","N",.T.,.F.,.T.,"0,00",.F.,""})
  467. // aAdd(aItens, {"Vlr Lista","C6_PRUNIT","*"," text-right","N",.T.,.F.,.T.,"0,00",.F.,""})
  468. aAdd(aItens, {"Total","C6_VALOR","*"," text-right","N",.F.,.T.,.T.,"0,00",.F.,""})
  469. aAdd(aItens, {"Data Ent.","C6_ENTREG","*"," text-right","C",.F.,.F.,.F.,"",.F.,"10"})
  470. aAdd(aItens, {"Tip. Oper.","C6_OPER","100px"," text-left","C",.F.,.T.,.F.,"Selecione...",.F.,""})
  471. aAdd(aItens, {"Tip. Saida","C6_TES","100px"," text-left","C",.F.,.T.,.F.,"Selecione...",.F.,""})
  472. aAdd(aItens, {"Cod. Fisc.","C6_CF","100px"," text-left","C",.F.,.T.,.F.,"Selecione...",.F.,""})
  473. // aAdd(aItens, {"NCM","C6_POSIPI","100px"," text-left","C",.F.,.T.,.F.,"Selecione...",.F.,""})
  474. aAdd(aItens, {"% Comis 2","C6_COMIS2","*"," text-right ","N",.T.,.F.,.T.,"0,00",.F.,""})
  475. aAdd(aItens, {"% Comis 3","C6_COMIS3","*"," text-right ","N",.T.,.F.,.T.,"0,00",.F.,""})
  476. // aAdd(aItens, {"% Comis 4","C6_COMIS4","*"," text-right ","N",.F.,.F.,.T.,"0,00",.F.,""})
  477. aAdd(aItens, {"Ped. Cli.","C6_PEDCLI","*"," text-left","C",.T.,.F.,.F.,"",.F.,"80"})
  478. aAdd(aItens, {"I.Ped.Cli.","C6_IPEDCLI","*"," text-left","C",.T.,.F.,.F.,"",.F.,"80"})
  479. aAdd(aItens, {"Vlr c/ Impostos","C6_XPRCIMP","*","text-right","N",.F.,.F.,.T.,"0,00",.T.,""})
  480. aAdd(aItens, {"Vlr de Venda","iC6_PRCVEN","*"," text-right myformato","N",.F.,.T.,.T.,"0,00",.T.,""})
  481. aAdd(aItens, {"Custo","C6_CUSTO","*"," text-right myformato","N",.F.,.F.,.T.,"0,00",.T.,""})
  482. aAdd(aItens, {"IPI","C6_XVALIPI","*"," text-right","N",.T.,.F.,.T.,"0,00",.T.,""})
  483. aAdd(aItens, {"ICMS","C6_XVALICM","*"," text-right","N",.T.,.F.,.T.,"0,00",.T.,""})
  484. aAdd(aItens, {"ICMS ST","C6_XICMST","*"," text-right","N",.T.,.F.,.T.,"0,00",.T.,""})
  485. aAdd(aItens, {"% Desconto","C6_DESCONT","*"," text-right percentual","N",.T.,.F.,.T.,"0,00",/*Iif(HttpSession->Tipo <> "R",.F.,.T.)*/ .T. ,"7"})
  486. // aAdd(aItens, {"Diretor","C6_NOMDIRE","*"," text-left","C",.T.,.F.,.T.,"",.T.,"12"})
  487. aAdd(aItens, {"Vlr Comissão","VAL_COM","*"," text-right","N",.T.,.F.,.T.,"0,00",.T.,""})
  488. aAdd(aItens, {"","ACAO","*"," text-center","X",.T.,.F.,.F.,"",.F.,""})
  489. // Cria o cabeçalho dos Itens
  490. For nLin := 1 to Len(aItens)
  491. cOrcCabec += '<th'+Iif(aItens[nLin,2] == "C6_VALOR",' width="'+aItens[nLin,3]+'"',Iif(aItens[nLin,2] == "C6_PRODUTO",' width="'+aItens[nLin,3]+'"',''))
  492. cOrcCabec+= Iif(aItens[nLin,10],' hidden','')+'>'+Iif(aItens[nLin,7],'<span class="required">*</span>',"")
  493. cOrcCabec+= aItens[nLin][1]+'</th>'
  494. Next
  495. //Preenchimento dos itens
  496. nItens++
  497. cOrcItens += '<tr class="odd" id="linha01">'
  498. For nLin := 1 to Len(aItens)
  499. If aItens[nLin,2] == "ACAO"
  500. cOrcItens += '<td class="actions">'
  501. cOrcItens += ' <i class="fa fa-info fa-lg" data-toggle="tooltip" data-original-title="Detalhes da linha" onclick="detalhePed('+"'"+cItem+"'"+');"></i>'
  502. cOrcItens += ' <i class="fa fa-times-circle fa-lg" data-toggle="tooltip" data-original-title="Remover a linha" onclick="removeItem('+"'"+cItem+"'"+');"></i>
  503. cOrcItens += '</td>
  504. Else
  505. If aItens[nLin,2] == "C6_PRODUTO"
  506. cOrcItens += '<td>' //class="form-group row pb-4"
  507. Else
  508. cOrcItens += '<td'+Iif(aItens[nLin,10],' hidden','')+'>'
  509. Endif
  510. lMoeda:= aItens[nLin,8] //Indica se é Moeda
  511. lNumber:= aItens[nLin,5] = "N" //Indica que é numérico
  512. xValue:= ""
  513. Do Case
  514. Case aItens[nLin][5] == 'C'
  515. If aItens[nLin,2] == "C6_ITEM"
  516. xValue := "01"
  517. Else
  518. xValue :=""
  519. Endif
  520. Case aItens[nLin][5] == 'N'
  521. If aItens[nLin,2] == "C6_QTDVEN"
  522. xValue := Iif(lNewOrc,"",Alltrim(PadR(TransForm(QRY->&(aItens[nLin][2]),PesqPict("SC6",aItens[nLin,2])),space(GetSX3Cache(aItens[nLin][2],"X3_TAMANHO")))))
  523. ElseIf aItens[nLin,2] == "PER_COM"
  524. xValue := Iif(lNewOrc,"0",Alltrim(PadR(TransForm(QRY->&(aItens[nLin][2]),PesqPict("SD2","D2_COMIS1")),space(GetSX3Cache("D2_COMIS1","X3_TAMANHO")))))
  525. ElseIf aItens[nLin,2] == "VAL_COM"
  526. xValue := Iif(lNewOrc,"0",Alltrim(PadR(TransForm(QRY->&(aItens[nLin][2]),PesqPict("SC6","C6_PRCVEN")),space(GetSX3Cache("C6_PRCVEN","X3_TAMANHO")))))
  527. Elseif aItens[nLin,2] == "iC6_PRCVEN"
  528. xValue := Iif(lNewOrc,"0",Alltrim(PadR(TransForm(QRY->&(aItens[nLin][2]),PesqPict("SC6","C6_PRCVEN")),space(GetSX3Cache("C6_PRCVEN","X3_TAMANHO")))))
  529. Else
  530. xValue := Iif(lNewOrc,"0",Alltrim(PadR(TransForm(QRY->&(aItens[nLin][2]),PesqPict("SC6",aItens[nLin,2])),space(GetSX3Cache(aItens[nLin][2],"X3_TAMANHO")))))
  531. Endif
  532. EndCase
  533. If aItens[nLin,6] //Campo Editável
  534. cOrcItens += '<input id="'+aItens[nLin][2]+cItem+'" data-prop="'+aItens[nLin][2]+'" name="'+aItens[nLin][2]+cItem+'" class="form-control '+aItens[nLin,4]
  535. cOrcItens +=If(lMoeda," ",If(lNumber," only-numbers",""))+'" type="text" '
  536. //cOrcItens +=If(lMoeda," money5",If(lNumber," only-numbers",""))+'" type="text" '
  537. cOrcItens += 'placeholder="'+aItens[nLin,9]+'" '
  538. //Atribui as funções javascript
  539. If aItens[nLin,2] == "C6_QTDVEN"
  540. cOrcItens+='onblur="javascript:VldQtd('+"'"+cItem+"'"+') "'
  541. Endif
  542. If aItens[nLin,2] == "iC6_PRCVEN"
  543. cOrcItens+='onblur="javascript:VldValor('+"'"+cItem+"'"+') "'
  544. Endif
  545. If aItens[nLin,2] == "C6_DESCONT"
  546. cVldDesc:= Iif(GetMv("LC_OR1012A",,.F.),'S','N')
  547. cOrcItens+='onblur="javascript:VldValor('+"'"+cItem+"'"+','+"'"+cVldDesc+"'"+')" maxlength="7" '
  548. //cOrcItens+='onkeyup="formate()" onblur="javascript:VldValor('+"'"+cItem+"'"+') "'
  549. Endif
  550. If aItens[nLin,2] $ ("C6_QTDVEN|iC6_PRCVEN|C6_DESCONT")
  551. cOrcItens+='onkeyup="javascript:TotalItem('+"'"+cItem+"'"+') "'
  552. Endif
  553. If aItens[nLin,2] $ ("C6_COMIS2|C6_COMIS3|C6_COMIS4")
  554. cOrcItens+='onkeyup="javascript:validaComis('+"'"+cItem+"'"+', this) "'
  555. Endif
  556. //Campo obrigatório
  557. cOrcItens += Iif(aItens[nLin][7],'required="" aria-required="true" ','')
  558. //Inicia todos os campos desabilitados
  559. cOrcItens += 'disabled '
  560. cOrcItens += 'value="'+Alltrim(xValue)+'">'
  561. Else
  562. If aItens[nLin,2] = "C6_PRODUTO"
  563. //Cria o select para o produto
  564. cOrcItens +='<div class="form-group">'
  565. cOrcItens +=' <div class="col-md-12">
  566. cOrcItens +=' <div class="flexContainer">
  567. cOrcItens +=' <input type="text" class="form-control smsediticon" placeholder="Digite o código ou descrição..." '
  568. cOrcItens +=' name="C6_PRODUTO'+cItem+'" id="C6_PRODUTO'+cItem+'"'
  569. cOrcItens += Iif(aItens[nLin][7],'required="" aria-required="true" ','')+' data-live-search="true" '
  570. cOrcItens +=' autocomplete="off" value="" / disabled>'
  571. cOrcItens +=' <button class="btSearch" id="btSearch"'+cItem+'>'
  572. cOrcItens +=' <i class="fa fa-search" alt="Pesquisar"></i>'
  573. cOrcItens +=' </button>
  574. cOrcItens +=' </div>
  575. cOrcItens +=' </div>
  576. cOrcItens +='</div>
  577. Else
  578. cOrcItens += '<input id="'+aItens[nLin][2]+cItem+'" data-prop="'+aItens[nLin][2]+'" name="'+aItens[nLin][2]+cItem+'" class="form-control '+aItens[nLin,4]+' input-block" '
  579. If aItens[nLin,2] = "C6_ITEM"
  580. cOrcItens += ' size=4 '
  581. Endif
  582. cOrcItens += 'type="text" disabled width="" '
  583. cOrcItens += 'value="'+Alltrim(xValue)+'">'
  584. Endif
  585. Endif
  586. Endif
  587. cOrcItens += '</td>'
  588. Next
  589. //Inputs Hidden
  590. cItensHid += '<input type="hidden" class="" id="C6_COMIS4'+cItem+'" name="C6_COMIS4'+cItem+'" value="0">'
  591. cItensHid += '<input type="hidden" class="" id="C6_PRUNIT'+cItem+'" name="C6_PRUNIT'+cItem+'" value="0">'
  592. cItensHid += '<input type="hidden" class="" id="C6_POSIPI'+cItem+'" name="C6_POSIPI'+cItem+'" value="0">'
  593. cItensHid += '<input type="hidden" class="" id="ALIQ_ICMS'+cItem+'" name="ALIQ_ICMS'+cItem+'" value="0">'
  594. cItensHid += '<input type="hidden" class="" id="ALIQ_IPI'+cItem+'" name="ALIQ_IPI'+cItem+'" value="0">'
  595. cItensHid += '<input type="hidden" class="" id="ALIQ_ST'+cItem+'" name="ALIQ_ST'+cItem+'" value="0">'
  596. cItensHid += '<input type="hidden" class="" id="VAL_ICMS'+cItem+'" name="VAL_ICMS'+cItem+'" value="0">'
  597. cItensHid += '<input type="hidden" class="" id="VAL_IPI'+cItem+'" name="VAL_IPI'+cItem+'" value="0">'
  598. cItensHid += '<input type="hidden" class="" id="VAL_ST'+cItem+'" name="VAL_ST'+cItem+'" value="0">'
  599. cItensHid += '<input type="hidden" class="" id="BASE_ICMS'+cItem+'" name="BASE_ICMS'+cItem+'" value="0">'
  600. cItensHid += '<input type="hidden" class="" id="BASE_ST'+cItem+'" name="BASE_ST'+cItem+'" value="0">'
  601. cItensHid += '<input type="hidden" class="" id="BASE_IPI'+cItem+'" name="BASE_IPI'+cItem+'" value="0">'
  602. cItensHid += '<input type="hidden" class="" id="IMP_PRCTAB'+cItem+'" name="IMP_PRCTAB'+cItem+'" value="0">'
  603. cItensHid += '<input type="hidden" class="" id="QTD_EMB'+cItem+'" name="QTD_EMB'+cItem+'" value="0">'
  604. cItensHid += '<input type="hidden" class="" id="QTDMIN'+cItem+'" name="QTDMIN'+cItem+'" value="">'
  605. cItensHid += '<input type="hidden" class="" id="GRUPO'+cItem+'" name="GRUPO'+cItem+'" value="">'
  606. cItensHid += '<input type="hidden" class="" id="VENCIMENTO'+cItem+'" name="VENCIMENTO'+cItem+'" value="0">'
  607. cItensHid += '<input type="hidden" class="" id="B1_COMIS'+cItem+'" name="B1_COMIS'+cItem+'" value="">'
  608. cOrcItens+=cItensHid
  609. cOrcItens += '<input type="hidden" name="QtdItens" id="QtdItens" value="'+cValtoChar(nItens)+'"/>'
  610. cOrcItens += '<input type="hidden" id="PROXIMO" name="PROXIMO" value="01"/>
  611. cOrcItens += '<input type="hidden" name="C5_NUM" id="C5_NUM" value="" />'
  612. cOrcItens += '<input type="hidden" name="OPCAO" id="OPCAO" value="3" />'
  613. cOrcItens += '<input type="hidden" name="DESCCOND" id="DESCCOND" value="" />'
  614. cOrcItens += '<input type="hidden" name="C5_DSDIRET" id="C5_DSDIRET" value="0" />'
  615. cOrcItens += '<input type="hidden" name="FRETEMIN" id="FRETEMIN" value="'+cvaltochar(GetNewPar("MV_FRETMIN",0))+'" />'
  616. cOrcItens += '</tr>'
  617. //Adiciona os botões de ações na tabela de itens
  618. cBtnItens+='<div class="row form-group">'
  619. cBtnItens+=' <div class="col-sm-2">'
  620. cBtnItens+=' <button class="btn btn-primary" id="btAddItm" name="btAddItm">'
  621. cBtnItens+=' <i class="fa fa-plus-square"></i> Novo Item</button>'
  622. cBtnItens+=' </div>'
  623. cBtnItens+='</div>'
  624. //Adiciona os botões da página
  625. //cBotoes+='<h5 class="text-primary">Orçamento válido apenas dentro do mês de '+MesExtenso(date())+' de '+cvaltochar(Year(date()))+'.</h5>'
  626. cBotoes+='<input class="btn btn-primary" type="button" id="btSalvar" name="btSalvar" value="Salvar"/>'+chr(13)+chr(10)
  627. cBotoes+='<input class="btn btn-primary" type="button" id="btVoltar" name="btVoltar" value="Voltar" onclick="javascript: location.href='+"'"+'u_orcamento.apw?PR='+cCodLogin+"';"+'"/>'+chr(13)+chr(10)
  628. //Totalizador disponível apenas para regional
  629. // If HttpSession->Tipo <> "R"
  630. // cTotalReg:='<div class="col-sm-12">'
  631. // cTotalReg+=' <label class="">Itens sem Desconto&nbsp;</label>'
  632. // cTotalReg+=' <input class="form-control text-right" id="TOTAL_ITENS_NODESC" name="TOTAL_ITENS_NODESC" placeholder="0,00" disabled="" type="text" value="'+Transform(nTVlrSDesc,"@E 999,999,999,999.99")+'"></input>'
  633. // cTotalReg+=' &nbsp;&nbsp;&nbsp;&nbsp;'
  634. // cTotalReg+=' <label class="">Itens sem Desconto+Impostos&nbsp;</label>'
  635. // cTotalReg+=' <input class="form-control text-right" id="TOTAL_NODESC_IMP" name="TOTAL_NODESC_IMP" placeholder="0,00" disabled="" type="text" value="'+Transform(nTVlrSDesc+nTImpostos,"@E 999,999,999,999.99")+'"></input>'
  636. // cTotalReg+='</div>'
  637. // cTotalReg+='<br>'
  638. // cTotalReg+='<br>'
  639. // cShowDesc := 'true'
  640. // Endif
  641. //Retorna o HTML para construção da página
  642. cHtml := H_AddPed()
  643. Web Extended End
  644. Return (cHTML)
  645. /*__________________________________________________________________________
  646. ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
  647. ¦¦+-----------------------------------------------------------------------+¦¦
  648. ¦¦¦Funçäo ¦ SlvOrc ¦ Autor ¦ Lucilene Mendes ¦ Data ¦17.08.17 ¦¦¦
  649. ¦¦+----------+------------------------------------------------------------¦¦¦
  650. ¦¦¦Descriçäo ¦ Gera a cotação. ¦¦¦
  651. ¦¦+-----------------------------------------------------------------------+¦¦
  652. ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
  653. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  654. */
  655. User Function SlvPed()
  656. Local cHtml
  657. Local nOpc := 3 // 3- Incluir / 4- Alterar / 5- Excluir
  658. Local cCondPag := ""
  659. Local cTabela := ""
  660. Local cCliente := ""
  661. Local cLoja := ""
  662. Local cMsg := ""
  663. Local cTransp := ""
  664. Local cItens := ""
  665. Local cDestOrc := ""
  666. Local cMensagem := ""
  667. Local x := 0
  668. Local i := 0
  669. Local nTotSC6 := 0
  670. Local nPosLin := 0
  671. Local cDirErro := "\erro\"
  672. Local aItens := {}
  673. Local cNumSC5 := ""
  674. Local lRet := .T.
  675. local lEnvEmail := .f.
  676. local cFilPed
  677. local cCliEnt
  678. local cLjEnt
  679. local cTipoLum
  680. local cGrpTrib
  681. local cContato
  682. local cContTel
  683. local cUFEnt
  684. local cRegional
  685. local cVend2
  686. local cVend3
  687. local cVend4
  688. local cDatEntr
  689. local cTipoFrete
  690. local nFrete
  691. local cRedesp
  692. local cEndOpc
  693. local cMailNF
  694. local cEstagPv
  695. local cNegociad
  696. local cFatPar
  697. local cMenNota
  698. local cDescFat
  699. local cEnvPb
  700. local cItem
  701. local cProdSC6
  702. local nQuantSC6
  703. local nPrcVenSC6
  704. local cUMSC6
  705. local nPUnitSC6
  706. local nValorSC6
  707. local cEntrSC6
  708. local cOperSC6
  709. local cTesSC6
  710. local cCfSC6
  711. local cPosIpiSC6
  712. local cComis2SC6
  713. local cComis3SC6
  714. local cComis4SC6
  715. local cPedCLiSC6
  716. local cIPedCLiSC6
  717. Private cReturn
  718. Private aCabSC5 :={}
  719. Private aItemSC5:={}
  720. Private aLinhaSc5:={}
  721. Private lMsErroAuto:= .F.
  722. Private cCodLogin := ""
  723. Private cVendLogin:= ""
  724. Private n:= 0
  725. Web Extended Init cHtml Start U_inSite()
  726. cVendLogin := u_GetUsrPR()
  727. cCodLogin := U_SetParPR(cVendLogin)
  728. //Verifica se não perdeu a sessão
  729. If type("HttpSession->CodVend") = "U" .or. Empty(HttpSession->CodVend)
  730. conout(Procname()+"("+ltrim(str(procline()))+") *** Portal "+"Sessao encerrada")
  731. cHtml:= '<META HTTP-EQUIV="Refresh" CONTENT="0 ; URL=U_SMSPortal.apw">'
  732. return cHtml
  733. Endif
  734. //Verifica se existe pedido lançado para o cliente nos últimos 3 minutos.
  735. /*
  736. If Empty(HttpPost->C5_NUM)
  737. cQry:= "Select * from "+RetSqlName("SCJ")+" SCJ "
  738. cQry+= "Where C5_FILIAL = '"+xFilial("SCJ")+"' "
  739. cQry+= "And C5_CLIENTE = '"+Left(HttpPost->C5_CLIENTE,9)+"' "
  740. cQry+= "And C5_LOJA = '"+Right(HttpPost->C5_CLIENTE,4)+"' "
  741. cQry+= "And C5_EMISSAO = '"+dtos(dDataBase)+"' "
  742. cQry+= "And C5_COTCLI >= '"+StrTran(StrZero(SubHoras(Time(),'00:03:00'),5,2),'.',':')+":00"+"' "
  743. cQry+= "And SCJ.D_E_L_E_T_ = ' ' "
  744. If Select("QRH") > 0
  745. QRH->(dbCloseArea())
  746. Endif
  747. conout("Hora: "+Time()+" Vend: "+HttpSession->CodVend+" --> "+cqry)
  748. APWExOpenQuery(ChangeQuery(cQry),'QRH',.T.)
  749. If Contar("QRH","!Eof()") > 0
  750. cHtml:= ""
  751. Return cHtml
  752. Endif
  753. Endif
  754. */
  755. If nOpc = 3
  756. INCLUI := .T.
  757. Else
  758. ALTERA := .T.
  759. Endif
  760. //Variáveis do cabeçalho
  761. cNumSC5 := Iif(Type("HttpPost->C5_NUM")<>"U",HttpPost->C5_NUM,'')
  762. cFilPed := Iif(Type("HttpPost->C5_FILIAL")<>"U",HttpPost->C5_FILIAL,'')
  763. cCliente := Left(HttpPost->C5_CLIENTE,6)
  764. cLoja := Right(HttpPost->C5_CLIENTE,6)
  765. cCliEnt := Left(HttpPost->C5_CLIENT,6)
  766. cLjEnt := Right(HttpPost->C5_CLIENT,2)
  767. cCondPag := Iif(Type("HttpPost->C5_CONDPAG")<>"U",HttpPost->C5_CONDPAG,"B13")
  768. cTipoLum := Iif(Type("HttpPost->C5_TIPOLUM")<>"U",HttpPost->C5_TIPOLUM,"1")
  769. cTabela := Iif(Type("HttpPost->C5_TABELA")<>"U",HttpPost->C5_TABELA,"")
  770. cGrpTrib := Iif(Type("HttpPost->C5_GRPTRIB")<>"U",HttpPost->C5_GRPTRIB,'')
  771. cCepOpc := Iif(Type("HttpPost->C5_CEPOPC")<>"U",HttpPost->C5_CEPOPC,'')
  772. cRuaOpc := Iif(Type("HttpPost->C5_RUAOPC")<>"U",HttpPost->C5_RUAOPC,'')
  773. cNumOpc := Iif(Type("HttpPost->C5_NUMOPC")<>"U",HttpPost->C5_NUMOPC,'')
  774. cBairOpc := Iif(Type("HttpPost->C5_BAIROPC")<>"U",HttpPost->C5_BAIROPC,'')
  775. cMunOpc := Iif(Type("HttpPost->C5_MUNOPC")<>"U",HttpPost->C5_MUNOPC,'')
  776. cUfOpc := Iif(Type("HttpPost->C5_UFOPC")<>"U",HttpPost->C5_UFOPC,'')
  777. cRefOpc := Iif(Type("HttpPost->C5_REFOPC")<>"U",HttpPost->C5_REFOPC,'')
  778. cUFEnt := Iif(Type("HttpPost->C5_UFDEST")<>"U",HttpPost->C5_UFDEST,"")
  779. cRegional := Iif(Type("HttpPost->C5_VEND1")<>"U",HttpPost->C5_VEND1,"")
  780. cVend2 := Iif(Type("HttpPost->C5_VEND2")<>"U",HttpPost->C5_VEND2,"")
  781. cVend3 := Iif(Type("HttpPost->C5_VEND3")<>"U",HttpPost->C5_VEND3,"")
  782. cVend4 := Iif(Type("HttpPost->C5_VEND4")<>"U",HttpPost->C5_VEND4,"")
  783. cDatEntr := Iif(Type("HttpPost->C5_DATENTR")<>"U",HttpPost->C5_DATENTR,"")
  784. cTipoFrete := Iif(Type("HttpPost->C5_TPFRETE")<>"U",HttpPost->C5_TPFRETE,"")
  785. nFrete := Iif(Type("HttpPost->C5_FRETE")<>"U",Val(StrTran(StrTran(HttpPost->C5_FRETE,'.',''),',','.')),0)
  786. cTransp := Iif(Type("HttpPost->C5_TRANSP")<>"U",HttpPost->C5_TRANSP,"")
  787. cRedesp := Iif(Type("HttpPost->C5_REDESP")<>"U",HttpPost->C5_REDESP,"")
  788. cEndOpc := Iif(Type("HttpPost->C5_ENDOPC")<>"U",HttpPost->C5_ENDOPC,"")
  789. cMailNF := Iif(Type("HttpPost->C5_MAILNF")<>"U",HttpPost->C5_MAILNF,"")
  790. cEstagPv := Iif(Type("HttpPost->C5_ESTAGIO")<>"U",HttpPost->C5_ESTAGIO,"")
  791. cNegociad := Iif(Type("HttpPost->C5_NEGOCIA")<>"U",HttpPost->C5_NEGOCIA,"")
  792. cFatPar := Iif(Type("HttpPost->C5_FATPARC")<>"U",HttpPost->C5_FATPARC,"")
  793. cMenNota := Iif(Type("HttpPost->C5_MENNOTA")<>"U",HttpPost->C5_MENNOTA,"")
  794. cMenNota1 := Iif(Type("HttpPost->C5_MENNOT1")<>"U",HttpPost->C5_MENNOT1,"")
  795. cMenNota2 := Iif(Type("HttpPost->C5_MENNOT2")<>"U",HttpPost->C5_MENNOT2,"")
  796. cMenNota3 := Iif(Type("HttpPost->C5_MENNOT3")<>"U",HttpPost->C5_MENNOT3,"")
  797. cDescFat := Iif(Type("HttpPost->C5_DESCFAT")<>"U",HttpPost->C5_DESCFAT,"")
  798. cEnvPb := Iif(Type("HttpPost->C5_SIBAP")<>"U",HttpPost->C5_SIBAP,"")
  799. nTotSC6 := val(HttpPost->PROXIMO)
  800. cItens:= HttpPost->aItens
  801. nOpc:= Val(HttpPost->OPCAO)
  802. For x:= 1 to nTotSC6
  803. nPosLin:= At("||",cItens)-1
  804. If nPosLin > 0
  805. aLinha:= Separa(Substr(cItens,1,nPosLin),";")
  806. cItens:= Substr(cItens,nPosLin+3)
  807. If Len(aLinha) > 0
  808. aAdd(aItens,aLinha)
  809. Endif
  810. Endif
  811. aLinha:= {}
  812. Next
  813. //Posiciona nas tabelas
  814. If !Empty(cCondPag)
  815. Posicione("SE4",1,xFilial("SE4")+cCondPag,"E4_COND")
  816. Endif
  817. If !Empty(cTabela)
  818. Posicione("DA0",1,xFilial("DA0")+cTabela,"DA0_CODTAB")
  819. //lPneu := Iif(DA0->DA0_XPOLIM = '1', .F.,.T.)
  820. Endif
  821. If !Empty(cCliente)
  822. Posicione("SA1",1,xFilial("SA1")+Alltrim(HttpPost->C5_CLIENTE),"A1_COD")
  823. Endif
  824. //Monta o cabeçalho
  825. If !Empty(cNumSC5) .and. nOpc = 4
  826. SC5->(dbSetOrder(1)) // C5_FILIAL+C5_NUM
  827. If SC5->(dbSeek(cFilPed+cNumSC5))
  828. If cFilPed <> cFilAnt
  829. u_PtTrocaFil(cFilPed)
  830. Endif
  831. endif
  832. cFilAnt := xFilial("SC5")
  833. aadd(aCabSC5,{"C5_NUM",cNumSC5,Nil})
  834. EndIf
  835. aadd(aCabSC5,{"C5_FILIAL",xFilial("SC5"),Nil})
  836. aadd(aCabSC5,{"C5_CLIENTE",SA1->A1_COD,Nil})
  837. aadd(aCabSC5,{"C5_LOJA", SA1->A1_LOJA ,Nil})
  838. aadd(aCabSC5,{"C5_CLIENT",cCliEnt ,Nil})
  839. aadd(aCabSC5,{"C5_LOJAENT",cLjEnt ,Nil})
  840. aadd(aCabSC5,{"C5_CONDPAG",cCondPag ,Nil})
  841. aadd(aCabSC5,{"C5_TABELA" ,cTabela,Nil})
  842. aadd(aCabSC5,{"C5_TIPOLUM" ,cTipoLum,Nil})
  843. aadd(aCabSC5,{"C5_VEND1",cRegional ,Nil})
  844. aadd(aCabSC5,{"C5_TPFRETE" ,cTipoFrete,Nil})
  845. aadd(aCabSC5,{"C5_TRANSP" ,cTransp,Nil})
  846. aadd(aCabSC5,{"C5_REDESP" ,cRedesp,Nil})
  847. aadd(aCabSC5,{"C5_FRETE" ,nFrete,Nil})
  848. aadd(aCabSC5,{"C5_DATENTR" ,cDatEntr,Nil})
  849. aadd(aCabSC5,{"C5_FATPARC" ,cFatPar,Nil})
  850. aadd(aCabSC5,{"C5_NEGOCIA" ,cNegociad,Nil})
  851. aadd(aCabSC5,{"C5_ESTAGIO" ,cEstagPv,Nil})
  852. aadd(aCabSC5,{"C5_MAILNF" ,cMailNF,Nil})
  853. aadd(aCabSC5,{"C5_VEND2",cVend2 ,Nil})
  854. aadd(aCabSC5,{"C5_VEND3",cVend3 ,Nil})
  855. aadd(aCabSC5,{"C5_VEND4",cVend4 ,Nil})
  856. aadd(aCabSC5,{"C5_SIBAP",cEnvPb ,Nil})
  857. aadd(aCabSC5,{"C5_UFDEST",cUFEnt ,Nil})
  858. aadd(aCabSC5,{"C5_CEPOPC",cCepOpc ,Nil})
  859. aadd(aCabSC5,{"C5_RUAOPC",cRuaOpc ,Nil})
  860. aadd(aCabSC5,{"C5_NUMOPC",cNumOpc ,Nil})
  861. aadd(aCabSC5,{"C5_BAIROPC",cBairOpc ,Nil})
  862. aadd(aCabSC5,{"C5_MUNOPC",cMunOpc ,Nil})
  863. aadd(aCabSC5,{"C5_UFOPC",cUfOpc ,Nil})
  864. aadd(aCabSC5,{"C5_REFOPC",cRefOpc ,Nil})
  865. aadd(aCabSC5,{"C5_ENDOPC",cRuaOpc + " " + cNumOpc+ " "+ cRefOpc + " " + cBairOpc + " " + cMunOpc + " " + cUfOpc ,Nil})
  866. aadd(aCabSC5,{"C5_MENNOTA",cMenNota ,Nil})
  867. aadd(aCabSC5,{"C5_MENNOT1",cMenNota1 ,Nil})
  868. aadd(aCabSC5,{"C5_MENNOT2",cMenNota2 ,Nil})
  869. aadd(aCabSC5,{"C5_MENNOT3",cMenNota3 ,Nil})
  870. aadd(aCabSC5,{"C5_DESCFAT",cDescFat ,Nil})
  871. //Cria as variáveis de memória
  872. //RegtoMemory("SCJ")
  873. //For i:=1 to Len(aCabSC5)
  874. // M->&(aCabSC5[i,1]) := aCabSC5[i,2]
  875. //Next
  876. //Monta os itens
  877. dbSelectArea("SB1")
  878. SB1->(dbSetorder(1))
  879. If ValType(aItens) == "A" .and. Len(aItens) > 0
  880. For i:=1 to Len(aItens)
  881. If ValType(aItens[i,1]) == 'C'
  882. aLinhaSc5:={}
  883. cItem := StrZero(i,TamSX3("C6_ITEM")[1])
  884. cProdSC6 := PadR(aItens[i,1], TamSX3("C6_PRODUTO")[1])
  885. nQuantSC6 := val(StrTran(StrTran(aItens[i,2],".",""),",","."))
  886. nPrcVenSC6 := val(StrTran(StrTran(aItens[i,3],".",""),",","."))
  887. cUMSC6 := aItens[i,4]
  888. nPUnitSC6 := val(StrTran(StrTran(aItens[i,5],".",""),",","."))
  889. nValorSC6 := val(StrTran(StrTran(aItens[i,6],".",""),",","."))
  890. cEntrSC6 := aItens[i,7]
  891. cOperSC6 := aItens[i,8]
  892. cTesSC6 := aItens[i,9]
  893. cCfSC6 := aItens[i,10]
  894. cPosIpiSC6 := aItens[i,11]
  895. cComis2SC6 := val(aItens[i,12])
  896. cComis3SC6 := val(aItens[i,13])
  897. cComis4SC6 := val(aItens[i,14])
  898. cPedCLiSC6 := aItens[i,15]
  899. cIPedCLiSC6 := aItens[i,16]
  900. If SB1->(dbSeek(xFilial("SB1")+cProdSC6)) .and. nQuantSC6 > 0 .And. nPrcVenSC6 > 0 .and. SB1->B1_MSBLQL <> '1'
  901. aadd(aLinhaSc5,{"C6_ITEM" ,cItem,Nil})
  902. aadd(aLinhaSc5,{"C6_PRODUTO",SB1->B1_COD,Nil})
  903. aadd(aLinhaSc5,{"C6_UM" ,cUMSC6,Nil})
  904. aadd(aLinhaSc5,{"C6_QTDVEN" ,nQuantSC6,Nil})
  905. aadd(aLinhaSc5,{"C6_PRCVEN" ,A410Arred(nPrcVenSC6, "C6_PRCVEN"),Nil})
  906. aadd(aLinhaSc5,{"C6_PRUNIT" ,A410Arred(nPrcVenSC6, "C6_PRUNIT"),Nil})
  907. aadd(aLinhaSc5,{"C6_VALOR" ,A410Arred(nQuantSC6*A410Arred(nPrcVenSC6, "C6_PRCVEN"),"C6_VALOR"),Nil})
  908. aadd(aLinhaSc5,{"C6_OPER" ,cOperSC6,Nil})
  909. aadd(aLinhaSc5,{"C6_TES" ,cTesSC6,Nil})
  910. // aadd(aLinhaSc5,{"C6_CF" ,cCfSC6,Nil})
  911. aadd(aLinhaSc5,{"C6_POSIPI" ,cPosIpiSC6,Nil})
  912. aadd(aLinhaSc5,{"C6_COMIS2" , cComis2SC6,Nil})
  913. // aadd(aLinhaSc5,{"C6_ENTREG" ,cEntrSC6,Nil})
  914. aadd(aLinhaSc5,{"C6_COMIS3" , cComis3SC6,Nil})
  915. aadd(aLinhaSc5,{"C6_COMIS4" , cComis4SC6,Nil})
  916. aadd(aLinhaSc5,{"C6_PEDCLI" ,cPedCLiSC6,Nil})
  917. aadd(aLinhaSc5,{"C6_IPEDCLI",cIPedCLiSC6,Nil})
  918. aadd(aItemSC5,aLinhaSc5)
  919. Else
  920. lRet:= .F.
  921. Endif
  922. Endif
  923. Next
  924. //Chama execauto para inclusão do orçamento
  925. If Len(aCabSC5) > 0 .and. Len(aItemSC5) > 0 .and. lRet
  926. lMsErroAuto:= .F.
  927. MATA410(aCabSC5,aItemSC5,nOpc)
  928. Else
  929. If !Empty(cNumSC5)
  930. conout(Procname()+"("+ltrim(str(procline()))+") *** Portal "+"FALHA AO INCLUIR O ORÇAMENTO. REFAÇA A OPERAÇÃO!")
  931. Else
  932. conout(Procname()+"("+ltrim(str(procline()))+") *** Portal "+"FALHA AO ALTERAR O ORÇAMENTO. REFAÇA A OPERAÇÃO!")
  933. EndIf
  934. lRet := .F.
  935. Endif
  936. If lMsErroAuto
  937. If !ExistDir(cDirErro)
  938. MakeDir(cDirErro)
  939. Endif
  940. cDirErro+=dtos(date())
  941. If !ExistDir(cDirErro)
  942. MakeDir(cDirErro)
  943. Endif
  944. //Grava o erro
  945. cMsg:= MostraErro(cDirErro,"erro_orcto_"+strtran(time(),":","")+"_"+cFilAnt+".txt")
  946. cDestMail:= "matheus.lopes@smsti.com.br"
  947. u_MailCM("ERRO PEDIDO",{cDestMail},{},"ERRO PEDIDO NO PORTAL",cMsg,"","")
  948. // cHtml:= "erro"
  949. cHtml:= SC5->C5_NUM+"<br><br>"
  950. Else
  951. cHtml:= SC5->C5_NUM+"<br><br>"
  952. // cDestOrc := GetNewPar("PR_DESTORC","")
  953. //Envia e-mail informando a inclusão do orçamento
  954. // If !Empty(cDestOrc) .and. (nOpc = 3 .or. lEnvEmail) //não envia para orçamento previsto
  955. // cMsg:= "Um novo orçamento foi gerado pelo Portal do Representante.<br><br>"
  956. // cMsg+= "Filial: "+SC5->C5_FILIAL+"<br>"
  957. // cMsg+= "Número: "+SC5->C5_NUM+"<br> "
  958. // cMsg+= "Vendedor: "+SC5->C5_VEND+" - "+Alltrim(Posicione("SA3",1,xFilial("SA3")+SC5->C5_VEND,"A3_NOME"))+"<br>"
  959. // cMsg+= "Cliente: "+SC5->C5_CLIENTE+"/"+SC5->C5_LOJA+" - "+Posicione("SA1",1,+xFilial("SA1")+SC5->C5_CLIENTE+SC5->C5_LOJA,"A1_NOME")+"<br>"
  960. // u_MailCM("ORÇAMENTO",{cDestOrc},{},"NOVO ORCAMENTO PORTAL: "+SC5->C5_FILIAL+"/"+SC5->C5_NUM+" - "+;
  961. // trim(Posicione("SA1",1,+xFilial("SA1")+SC5->C5_CLIENTE+SC5->C5_LOJA,"A1_NOME")),cMsg,"","")
  962. // Endif
  963. //////////////
  964. // Envia e-Mail para supervisoras dos clientes que ficaram ativos.
  965. // If Empty(SA1->A1_ULTORCA) .OR. (dDataBase - SA1->A1_ULTORCA) > 365
  966. // cMensagem := "Cliente Ativado pelo Orçamento: " + AllTrim(SC5->C5_NUM) + CRLF+CRLF
  967. // cMensagem += "Cliente: " + AllTrim(SA1->A1_COD)+"-"+AllTrim(SA1->A1_NOME) + CRLF
  968. // cMensagem += "Representante: " + AllTrim(SC5->C5_VEND)+'-'+AllTrim(Posicione("SA3",1,xFilial('SA3')+SC5->C5_VEND,"A3_NOME")) + CRLF
  969. // cMensagem += "Regional: " + AllTrim(SC5->C5_REGIAO)+'-'+AllTrim(Posicione("SA3",1,xFilial('SA3')+SC5->C5_REGIAO,"A3_NOME")) + CRLF
  970. // cMensagem += "Pré-Resgate: " + IIF(!Vazio(Trim(SA1->A1_USUPRER)),Trim(SA1->A1_USUPRER)+ " em: "+DToC(SA1->A1_DTPRERE),'-*-*-*-*-') + CRLF
  971. // // (Destino , Com Copia , Com Copia Oculta , assunto , Mensagem Corpo, Anexos)
  972. // U_EnvMail("regiane.almeida@lumicenter.com" , ,"" ,"e-Mail Automático. Cliente Ativado - Engenharia." ,cMensagem,"")
  973. // EndIf
  974. // Grava data do último orçamento.
  975. RecLock("SA1",.F.)
  976. SA1->A1_ULTORCA := dDataBase
  977. MsUnlock("SA1")
  978. EndIf
  979. Else
  980. cHtml:= "erro"
  981. Endif
  982. Web Extended End
  983. Return (cHTML)
  984. /*__________________________________________________________________________
  985. ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
  986. ¦¦+-----------------------------------------------------------------------+¦¦
  987. ¦¦¦Funçäo ¦ GetSitCliP ¦ Autor ¦ Lucilene Mendes ¦ Data ¦ 19.11.17 ¦¦¦
  988. ¦¦+----------+------------------------------------------------------------¦¦¦
  989. ¦¦¦Descriçäo ¦ Função para buscar os dados de crédito do cliente. ¦¦¦
  990. ¦¦+-----------------------------------------------------------------------+¦¦
  991. ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
  992. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  993. */
  994. User Function PGetSitCli()
  995. Local cHtml
  996. Local cCliente := Alltrim(HttpPost->Cliente)
  997. Local cMsg := ""
  998. Local cSepField := "|#|"
  999. Local lRetCli:= .T.
  1000. Private cMsgCust:= ""
  1001. Web Extended Init cHtml Start U_inSite()
  1002. If Empty(HttpSession->CodVend)
  1003. cHtml:= '<META HTTP-EQUIV="Refresh" CONTENT="0 ; URL=U_PortalLogin.apw">'
  1004. Return cHtml
  1005. endif
  1006. //Posiciona no cliente
  1007. dbSelectArea("SA1")
  1008. SA1->(dbSeek(xFilial("SA1")+cCliente))
  1009. //Atualiza a variável de sessão
  1010. HttpSession->cliente := cCliente
  1011. //Chama a validação customizada do cliente
  1012. If ExistBlock("VldPortalSMS")
  1013. lRetCli:=u_VldPortalSMS("CK_CLIENTE",SA1->(Recno()))
  1014. Endif
  1015. If !Empty(cMsgCust)
  1016. cMsg+= '<div class="row form-group">'+CHR(13)+CHR(10)
  1017. cMsg+= '<div class="col-lg-12">'+CHR(13)+CHR(10)
  1018. cMsg+= ' <div class="col-lg-12">'+cMsgCust+'</div>'+CHR(13)+CHR(10)
  1019. cMsg+= '</div>'+CHR(13)+CHR(10)
  1020. cMsg+= '</div>'+CHR(13)+CHR(10)
  1021. Else
  1022. cMsg:="::"
  1023. Endif
  1024. cHtml:= Iif(!lRetCli,'0','1')+cSepField+cMsg+cSepField
  1025. cHtml+= SA1->A1_TIPO+cSepField+SA1->A1_GRPTRIB+cSepField+Alltrim(SA1->A1_COND)+cSepField
  1026. cHtml+= Alltrim(SA1->A1_EST)+Alltrim(SA1->A1_COD_MUN)+" - "+Alltrim(SA1->A1_MUN)+cSepField
  1027. cHtml+= SA1->A1_VEND
  1028. Web Extended end
  1029. Return cHtml
  1030. /*__________________________________________________________________________
  1031. ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
  1032. ¦¦+-----------------------------------------------------------------------+¦¦
  1033. ¦¦¦Funçäo ¦ GatProd ¦ Autor ¦ Lucilene Mendes ¦ Data ¦ 05.09.17 ¦¦¦
  1034. ¦¦+----------+------------------------------------------------------------¦¦¦
  1035. ¦¦¦Descriçäo ¦ Gatilho para atualização dos preços ao selecionar o produto¦¦¦
  1036. ¦¦+-----------------------------------------------------------------------+¦¦
  1037. ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
  1038. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  1039. */
  1040. User Function pGatProd()
  1041. Local cProduto := Alltrim(UnEscape(HttpPost->PRODUTO))
  1042. Local cTabela := Alltrim(HttpSession->Tabela)
  1043. Local cCliente := Alltrim(HttpSession->Cliente)
  1044. Local cSepField := "|#|"
  1045. Local cTes := ""
  1046. Local cCodOper := ""
  1047. Local cMsg := ""
  1048. Local nPercFrt := val(HttpPost->frete)
  1049. Local nComisRT := val(HttpPost->comisRT)
  1050. Local cLumOper := val(HttpPost->lumoper)
  1051. Local cVend2 := HttpPost->vend2
  1052. Local cVend3 := HttpPost->vend3
  1053. Local cVend4 := HttpPost->vend4
  1054. Local nDiv := 0
  1055. Local nPrcTab := 0
  1056. Local cComis := 0
  1057. Local nQtdFis := 1
  1058. Local nDesc := 0
  1059. Local nValIcms := 0
  1060. Local nBaseIcms := 0
  1061. Local nValST := 0
  1062. Local nBaseST := 0
  1063. Local nValIPI := 0
  1064. Local nBaseIPI := 0
  1065. Local cAliqIPI := 0
  1066. Local cAliqICMS := 0
  1067. Local cAliqST := 0
  1068. Local nQtdMin := 0
  1069. Local aRet := {}
  1070. Local lRetPro := .T.
  1071. Local lVencido := .F.
  1072. Local cHtml
  1073. Private cPrzEmb := ""
  1074. Private nCargIcm := 0
  1075. Private nFatCorr := 0
  1076. nSec:= Seconds()
  1077. Web Extended Init cHtml Start U_inSite()
  1078. Conout("[ADDORC / GATPROD] - tempo Abertura InSite: "+cValtoChar(Seconds()-nSec)+"s")
  1079. //Busca o cadastro do cliente
  1080. Posicione("SA1",1,xFilial("SA1")+cCliente,"A1_COD")
  1081. //Posiciona no cadastro do produto
  1082. Posicione("SB1",1,xFilial("SB1")+cProduto,"B1_COD")
  1083. //Chama a validação customizada do produto
  1084. If ExistBlock("VldPortalSMS")
  1085. cMsgCust:= ""
  1086. lRetPro:=u_VldPortalSMS("CK_PRODUTO",SB1->(Recno()))
  1087. If !Empty(cMsgCust)
  1088. cMsg:= '<div class="row form-group">'+CHR(13)+CHR(10)
  1089. cMsg+= '<div class="col-lg-12">'+CHR(13)+CHR(10)
  1090. cMsg+= ' <div class="col-lg-12">'+cMsgCust+'</div>'+CHR(13)+CHR(10)
  1091. cMsg+= '</div>'+CHR(13)+CHR(10)
  1092. cMsg+= '</div>'+CHR(13)+CHR(10)
  1093. Else
  1094. cMsg:="::"
  1095. Endif
  1096. Endif
  1097. if empty(cTabela)
  1098. cTabela := Alltrim(HttpPost->cTabela)
  1099. endif
  1100. HttpSession->cTabela:= cTabela
  1101. HttpSession->Tabela:= cTabela
  1102. //Posiciona na tabela de preço
  1103. Posicione("DA0",1,xFilial("DA0")+cTabela,"DA0_CODTAB")
  1104. DA1->(dbSetOrder(1))
  1105. If DA1->(dbSeek(xFilial("DA1")+cTabela+cProduto))
  1106. nPrcTab:= u_getValProd(nComisRT,nPercFrt)
  1107. Endif
  1108. conout("Chave "+xFilial("DA1")+cTabela+cProduto)
  1109. conout("Tabela de preco "+xFilial("DA1")+" tab: "+cValToChar(cTabela)+" produto "+cProduto+" Preco "+cValToChar(nPrcTab))
  1110. If nPrcTab > 0
  1111. nSec:= Seconds()
  1112. //&&&&&& verificar se excessão fiscal calcula na tes inteligente
  1113. //nPrcTab := (nPrcTab - (nPrcTab * ((18 - nCargIcm - nFatCorr)/100))) // Alterado em 20-09-2018 - Fabiana - para calcular 1.5/4.5 de desconto CIF Norte/Nordeste.
  1114. //Obtem os valores de impostos
  1115. u_pGetValImp(SA1->A1_COD+SA1->A1_LOJA,nPrcTab,nDesc,nQtdFis,@nValIcms,@nBaseICMS,@nValST,@nBaseST,@nValIPI,@nBaseIPI,@cAliqIPI,@cAliqICMS,@cAliqST,@cTes, @cCodOper, cLumOper)
  1116. Conout("[ADDORC / GATPROD] - tempo u_GetValImp: "+cValtoChar(Seconds()-nSec)+"s")
  1117. If Empty(cTes)
  1118. cHtml:= "ERRO: TES n&atilde;o localizada."
  1119. Else
  1120. cPrcTab := TransForm((nPrcTab),PesqPict("SCK","CK_PRCVEN"))
  1121. cTotalST:= Transform(((nPrcTab)+nValST),PesqPict("SCK","CK_PRCVEN"))
  1122. cComis := SB1->B1_COMIS
  1123. If SB5->(MsSeek(xFilial("SB5")+SB1->B1_COD))
  1124. If SB5->B5_DTVLESP + 30 < dDataBase
  1125. lVencido:= .T.
  1126. Endif
  1127. Endif
  1128. if cVend2 <> ""
  1129. nDiv := nDiv + 1
  1130. endif
  1131. if cVend3 <> ""
  1132. nDiv := nDiv + 1
  1133. endif
  1134. if cVend4 <> ""
  1135. nDiv := nDiv + 1
  1136. endif
  1137. CONOUT("IPI "+CVALTOCHAR(nValIPI))
  1138. aAdd(aRet,Alltrim(SB1->B1_UM)) //01
  1139. aAdd(aRet,Alltrim(cPrcTab)) //02
  1140. aAdd(aRet,Alltrim(Transform(nValIcms,PesqPict("SCK","CK_XVALICM")))) //03
  1141. aAdd(aRet,Alltrim(Transform(nValIPI,PesqPict("SCK","CK_XVALIPI")))) //04
  1142. aAdd(aRet,Alltrim(Transform(nValST,PesqPict("SCK","CK_PRCVEN")))) //05
  1143. aAdd(aRet,cAliqIPI) //06
  1144. aAdd(aRet,cAliqICMS) //07
  1145. aAdd(aRet,cValtochar(SB1->B1_QE)) //08
  1146. aAdd(aRet,cTES) //09
  1147. aAdd(aRet,cValtoChar(nBaseICMS)) //10
  1148. aAdd(aRet,cValtoChar(nBaseST)) //11
  1149. aAdd(aRet,cValtoChar(nBaseIPI)) //12
  1150. aAdd(aRet,cAliqST) //13
  1151. aAdd(aRet,SB1->B1_GRUPO) //14
  1152. aAdd(aRet,cvaltochar(nQtdMin)) //15
  1153. aAdd(aRet,Iif(lVencido,'1','0')) //16
  1154. aAdd(aRet,u_GetEstDisp()) //17
  1155. aAdd(aRet,Iif(lRetPro,'1','0')) //18
  1156. aAdd(aRet,cMsg) //19
  1157. aAdd(aRet,cPrzEmb) //20
  1158. aAdd(aRet,SB1->B1_TIPO) //21
  1159. aAdd(aRet,cCodOper) //22
  1160. aAdd(aRet,SB1->B1_POSIPI) //23
  1161. aAdd(aRet,Iif(cVend2 <> "",cvaltochar((cComis / nDiv)), "0") ) //24
  1162. aAdd(aRet,Iif(cVend3 <> "",cvaltochar((cComis / nDiv)), "0") ) //25
  1163. aAdd(aRet,Iif(cVend4 <> "",cvaltochar((cComis / nDiv)), "0") ) //26
  1164. aAdd(aRet, cvaltochar(cComis)) //27
  1165. cHtml := "OK:"
  1166. cHtml += aRet[1]+cSepField+aRet[2]+cSepField+aRet[3]+cSepField+aRet[4]+cSepField+aRet[5]+cSepField+aRet[6]+cSepField+aRet[7]+cSepField+aRet[8]
  1167. cHtml +=cSepField+aRet[9]+cSepField+aRet[10]+cSepField+aRet[11]+cSepField+aRet[12]+cSepField+aRet[13]+cSepField+aRet[14]+cSepField+aRet[15]
  1168. cHtml +=cSepField+aRet[16]+cSepField+aRet[17]+cSepField+aRet[18]+cSepField+aRet[19]+cSepField+aRet[20]+cSepField+aRet[21]+cSepField+aRet[22]+cSepField+aRet[23]
  1169. cHtml +=cSepField+aRet[24]+cSepField+aRet[25]+cSepField+aRet[26]+cSepField+aRet[27]
  1170. Endif
  1171. Else
  1172. cHtml := "ERRO: Nao foi possivel localizar o produto"
  1173. Endif
  1174. Web Extended end
  1175. CONOUT("FIM GATPROD")
  1176. Return cHtml
  1177. /*__________________________________________________________________________
  1178. ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
  1179. ¦¦+-----------------------------------------------------------------------+¦¦
  1180. ¦¦¦Funçäo ¦ GetValImp ¦ Autor ¦ Anderson Zelenski ¦ Data ¦ 09.09.17 ¦¦¦
  1181. ¦¦+----------+------------------------------------------------------------¦¦¦
  1182. ¦¦¦Descriçäo ¦ Função para cálculo dos impostos ¦¦¦
  1183. ¦¦+-----------------------------------------------------------------------+¦¦
  1184. ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
  1185. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  1186. */
  1187. User Function pGetValImp(cCliente,nPreco,nDesc,nQtdFis,nValIcms,nBaseIcms,nValST,nBaseST,nValIPI,nBaseIPI,cAliqIPI,cAliqICMS,cAliqST,cTes,cCodOper,cLumOper)
  1188. Local _nItem:= 0
  1189. MaFisEnd()
  1190. SA1->(dbSetorder(1))
  1191. SA1->(dbSeek(xFilial("SA1")+cCliente))
  1192. cCodOper:= pGetCodOper(cLumOper)
  1193. MaFisIni(SA1->A1_COD,;// 1-Codigo Cliente/Fornecedor
  1194. SA1->A1_LOJA,;// 2-Loja do Cliente/Fornecedor
  1195. "C",; // 3-C:Cliente , F:Fornecedor
  1196. "N",; // 4-Tipo da NF
  1197. SA1->A1_TIPO,;// 5-Tipo do Cliente/Fornecedor
  1198. MaFisRelImp("MT100", {"SF2", "SD2"}),; // 6-Relacao de Impostos que suportados no arquivo
  1199. ,;// 7-Tipo de complemento
  1200. ,;// 8-Permite Incluir Impostos no Rodape .T./.F.
  1201. "SB1",; // 9-Alias do Cadastro de Produtos - ("SBI" P/ Front Loja)
  1202. "MATA461")
  1203. dbSelectArea("SE4")
  1204. SE4->(DbSetOrder(1))
  1205. cTes:= MaTesInt(2,cCodOper,SA1->A1_COD,SA1->A1_LOJA,"C",SB1->B1_COD,"",SA1->A1_TIPO)
  1206. // conout("tes -->"+cTes)
  1207. // conout("prod -->"+SB1->B1_COD)
  1208. _nItem := MaFisAdd(SB1->B1_COD,; // 1-Codigo do Produto ( Obrigatorio )
  1209. cTes,;// 2-Codigo do TES ( Opcional )
  1210. nQtdFis,; // 3-Quantidade ( Obrigatorio )
  1211. nPreco,; // 4-Preco Unitario ( Obrigatorio )
  1212. nDesc,; // 5-Valor do Desconto ( Opcional )
  1213. ,;// 6-Numero da NF Original ( Devolucao/Benef )
  1214. ,;// 7-Serie da NF Original ( Devolucao/Benef )
  1215. ,;// 8-RecNo da NF Original no arq SD1/SD2
  1216. 0,; // 9-Valor do Frete do Item ( Opcional )
  1217. 0,; // 10-Valor da Despesa do item ( Opcional )
  1218. 0,; // 11-Valor do Seguro do item ( Opcional )
  1219. 0,; // 12-Valor do Frete Autonomo ( Opcional )
  1220. nPreco,; // 13-Valor da Mercadoria ( Obrigatorio )
  1221. 0,; // 14-Valor da Embalagem ( Opiconal )
  1222. 0,; // 15-RecNo do SB1
  1223. 0)// 16-RecNo do SF4
  1224. //ICMS
  1225. nValIcms:= MaFisRet(_nItem,"IT_VALICM")
  1226. nBaseIcms:= MaFisRet(_nItem,"IT_BASEICM")
  1227. cAliqICMS:= Alltrim(Str(MaFisRet(_nItem,"IT_ALIQICM")))
  1228. //IPI
  1229. nValIPI := MaFisRet(_nItem,"IT_VALIPI")
  1230. nBaseIPI := MaFisRet(_nItem,"IT_BASEIPI")
  1231. cAliqIPI := Alltrim(Str(MaFisRet(_nItem,"IT_ALIQIPI")))
  1232. //ICMS ST
  1233. nValST := MaFisRet(_nItem,"IT_VALSOL")
  1234. nBaseST := MaFisRet(_nItem,"IT_BASESOL")
  1235. cAliqST := Alltrim(Str(MaFisRet(_nItem,"IT_ALIQSOL")))
  1236. Return
  1237. User Function pGetImpostos()
  1238. Local cProduto := Alltrim(UnEscape(HttpPost->PRODUTO))
  1239. Local nPrcTab := Val(HttpPost->prcvenda)
  1240. // Local cTabela := Alltrim(HttpSession->Tabela)
  1241. Local cCliente := Alltrim(HttpSession->Cliente)
  1242. Local nQtdFis := Val(HttpPost->quantidade)
  1243. Local cLumOper := Val(HttpPost->lumoper)
  1244. // Local cSepReg := "#*#*"
  1245. Local cSepField := "|#|"
  1246. Local cTes := ""
  1247. Local nDesc := 0
  1248. Local nValIcms := 0
  1249. Local nBaseIcms := 0
  1250. Local nValST := 0
  1251. Local nBaseST := 0
  1252. Local nValIPI := 0
  1253. Local nBaseIPI := 0
  1254. Local cAliqIPI := 0
  1255. Local cAliqICMS := 0
  1256. Local cAliqST := 0
  1257. Local aRet := {}
  1258. Local cHtml
  1259. Web Extended Init cHtml Start U_inSite()
  1260. //Busca o cadastro do cliente
  1261. Posicione("SA1",1,xFilial("SA1")+cCliente,"A1_COD")
  1262. //Posiciona no cadastro do produto
  1263. Posicione("SB1",1,xFilial("SB1")+cProduto,"B1_COD")
  1264. If nPrcTab > 0
  1265. //Obtem os valores de impostos
  1266. u_pGetValImp(SA1->A1_COD+SA1->A1_LOJA,nPrcTab,nDesc,nQtdFis,@nValIcms,@nBaseICMS,@nValST,@nBaseST,@nValIPI,@nBaseIPI,@cAliqIPI,@cAliqICMS,@cAliqST,@cTes, @cCodOper,cLumOper)
  1267. cComis := SB1->B1_COMIS
  1268. nValDesc:= nPrcTab * nDesc
  1269. cPrcTab := TransForm((nPrcTab-nValDesc),PesqPict("SCK","CK_PRCVEN"))
  1270. cTotalST:= Transform(((nPrcTab-nValDesc)+nValST),PesqPict("SCK","CK_PRCVEN"))
  1271. aAdd(aRet,Alltrim(SB1->B1_UM))
  1272. aAdd(aRet,Alltrim(cPrcTab))
  1273. aAdd(aRet,Alltrim(Transform(nValIcms,PesqPict("SCK","CK_XVALICM"))))
  1274. aAdd(aRet,Alltrim(Transform(nValIPI,PesqPict("SCK","CK_XVALIPI"))))
  1275. aAdd(aRet,Alltrim(cValtoChar(nValST)))
  1276. aAdd(aRet,cAliqIPI)
  1277. aAdd(aRet,cAliqICMS)
  1278. aAdd(aRet,cValtochar(SB1->B1_QE))
  1279. aAdd(aRet,cTES)
  1280. aAdd(aRet,cValtoChar(nBaseICMS))
  1281. aAdd(aRet,cValtoChar(nBaseST))
  1282. aAdd(aRet,cValtoChar(nBaseIPI))
  1283. aAdd(aRet,cAliqST)
  1284. cHtml := "OK:"
  1285. cHtml += aRet[1]+cSepField+aRet[2]+cSepField+aRet[3]+cSepField+aRet[4]+cSepField+aRet[5]+cSepField+aRet[6]+cSepField+aRet[7]+cSepField+aRet[8]
  1286. cHtml +=cSepField+aRet[9]+cSepField+aRet[10]+cSepField+aRet[11]+cSepField+aRet[12]+cSepField+aRet[13]
  1287. Else
  1288. cHtml := "Falha ao calcular impostos"
  1289. Endif
  1290. Web Extended end
  1291. Return cHtml
  1292. /*__________________________________________________________________________
  1293. ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
  1294. ¦¦+-----------------------------------------------------------------------+¦¦
  1295. ¦¦¦Funçäo ¦ GetCodOper ¦ Autor ¦ Lucilene Mendes ¦ Data ¦ 07.10.24 ¦¦¦
  1296. ¦¦+----------+------------------------------------------------------------¦¦¦
  1297. ¦¦¦Descriçäo ¦ Busca o código de operação para cálculo da TES Inteligente ¦¦¦
  1298. ¦¦+-----------------------------------------------------------------------+¦¦
  1299. ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
  1300. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  1301. */
  1302. Static Function pGetCodOper(cLumOper)
  1303. Local cCod:= ""
  1304. // M->C5_TIPOPER:= '1'
  1305. // M->C5_TIPOCLI:= SA1->A1_TIPO
  1306. M->CJ_TIPOPER:= cvaltochar(cLumOper)
  1307. M->CJ_TIPOCLI:= SA1->A1_TIPO
  1308. cCod:= u_OperaO()
  1309. conout("------>>>>> operação: "+cCod)
  1310. Return cCod
  1311. /*__________________________________________________________________________
  1312. ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
  1313. ¦¦+-----------------------------------------------------------------------+¦¦
  1314. ¦¦¦Funçäo ¦ GetCliEnd ¦ Autor ¦ Matheus Bientinezi¦ Data ¦ 19.11.17 ¦¦¦
  1315. ¦¦+----------+------------------------------------------------------------¦¦¦
  1316. ¦¦¦Descriçäo ¦ Função para buscar o endereço do cliente. ¦¦¦
  1317. ¦¦+-----------------------------------------------------------------------+¦¦
  1318. ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
  1319. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  1320. */
  1321. User Function GetCliEnd()
  1322. Local cHtml
  1323. Local cCliente := Alltrim(HttpPost->Cliente)
  1324. local aRet := {}
  1325. Local cSepField := "|#|"
  1326. Web Extended Init cHtml Start U_inSite()
  1327. If Empty(HttpSession->CodVend)
  1328. cHtml:= '<META HTTP-EQUIV="Refresh" CONTENT="0 ; URL=U_PortalLogin.apw">'
  1329. Return cHtml
  1330. endif
  1331. //Posiciona no cliente
  1332. dbSelectArea("SA1")
  1333. SA1->(dbSeek(xFilial("SA1")+cCliente))
  1334. aAdd(aRet,Alltrim(SA1->A1_EST)) //0
  1335. aAdd(aRet,Alltrim(SA1->A1_COD_MUN)) //1
  1336. aAdd(aRet,Alltrim(SA1->A1_END)) //2
  1337. aAdd(aRet,Alltrim(SA1->A1_MUN)) //3
  1338. aAdd(aRet,Alltrim(SA1->A1_BAIRRO)) //4
  1339. aAdd(aRet,Alltrim(SA1->A1_CEP)) //5
  1340. aAdd(aRet,Alltrim(SA1->A1_COMPLEM)) //6
  1341. cHtml := "OK:"
  1342. cHtml += aRet[1]+cSepField+aRet[2]+cSepField+aRet[3]+cSepField+aRet[4]+cSepField+aRet[5]+cSepField+aRet[6]+cSepField+aRet[7]
  1343. Web Extended end
  1344. Return cHtml