MntPed.apl 53 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201
  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 ¦ MntOrc ¦ Autor ¦ Lucilene Mendes ¦ Data ¦28.08.17 ¦¦¦
  11. ¦¦+----------+------------------------------------------------------------¦¦¦
  12. ¦¦¦Descriçäo ¦ Manutenção de Pedido de Venda. ¦¦¦
  13. ¦¦+-----------------------------------------------------------------------+¦¦
  14. ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
  15. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
  16. User Function MntPed()
  17. Local cHtml
  18. Local cItem := ""
  19. Local nPosFrete := 0
  20. Local nPerCom := 0
  21. Local nValCom := 0
  22. Local nOpc := 0
  23. Local nLin := 0
  24. Local f := 0
  25. Local lMoeda := .F.
  26. Local lNumber := .F.
  27. Local lVencido := .F.
  28. Local aTpFrete := {}
  29. Local nRecSC5 := 0
  30. Private cFilVen := ""
  31. Private cCodLogin := ""
  32. Private cVendLogin := ""
  33. Private cVendedor := ""
  34. Private cSite := "u_PortalLogin.apw"
  35. Private cPagina := "Pedido de Venda"
  36. Private cTitle := "Portal SMS"
  37. Private cMenus := ""
  38. Private cAnexos := ""
  39. Private cDirOrc := "\anexosPortal\pedidos\"
  40. Private cDirPortal := ""
  41. Private cEndServ := "" // Endereço do servidor da pagina de Portal
  42. Private cOrcCabec := ""
  43. Private cOrcItens := ""
  44. Private cItensHid := ""
  45. Private cBotoes := ""
  46. Private cBtnItens := ""
  47. Private cOptUF := ""
  48. Private cOptMun := ""
  49. Private cOptProd := ""
  50. Private cOptCond := ""
  51. Private cOptModal := ""
  52. Private cTblDesc := ""
  53. Private cCodOrc := ""
  54. Private cTabela := ""
  55. Private cCliente := ""
  56. Private cContato := ""
  57. Private cContDDD := ""
  58. Private cContTel := ""
  59. Private cTpCliente := ""
  60. Private cGrpTrib := ""
  61. Private cCondPag := ""
  62. Private cLocalEnt := ""
  63. Private cObra := ""
  64. Private cStatusObra := ""
  65. Private cIntermed := ""
  66. Private cOport := ""
  67. Private cRevOpt := ""
  68. Private cRegional := ""
  69. Private cTpFrete := ""
  70. Private cValFre := ""
  71. Private cPrazoEmb := ""
  72. Private cEstudo := ""
  73. Private cNumEst := ""
  74. Private cPrevFecha := ""
  75. Private cMargemCont := ""
  76. Private cTransp := ""
  77. Private cRedesp := ""
  78. Private cOptCli := ""
  79. Private cTotalReg := ""
  80. Private cEntrega := ""
  81. Private cValidade := ""
  82. Private cFatPar := ""
  83. Private cEstagPv := ""
  84. Private cMailNf := ""
  85. Private cEnvpb := ""
  86. Private cComRT := ""
  87. Private cJust := ""
  88. Private cMenNota := ""
  89. Private cMenNota1 := ""
  90. Private cMenNota2 := ""
  91. Private cMenNota3 := ""
  92. Private cDesFat := ""
  93. Private cObsCom := ""
  94. Private cComent := ""
  95. Private cFilPed := ""
  96. private cFILORC := ""
  97. private cRETORNO := ""
  98. private cSEGMENTO := ""
  99. private cPROSP := ""
  100. private cPROSPPOR := ""
  101. private cPFRETE := ""
  102. Private nTVlrUnit := 0
  103. Private nTVlrSDesc := 0
  104. Private nTQtdItem := 0
  105. Private nTTotal := 0
  106. Private nTComiss := 0
  107. Private nTImpostos := 0
  108. Private nTAcresc := 0
  109. Private nTFrete := 0
  110. Private nItens := 0
  111. Private lNewOrc := .F.
  112. Private lEdit := .F.
  113. Private lCopy := .F.
  114. Private cShowDesc := "false"
  115. Private aItens := {}
  116. Private aAnexos := {}
  117. Web Extended Init cHtml Start U_inSite()
  118. cVendLogin := u_GetUsrPR()
  119. cCodLogin := U_SetParPR(cVendLogin)
  120. If Empty(HttpSession->CodVend)
  121. cHtml:= '<META HTTP-EQUIV="Refresh" CONTENT="0 ; URL='+cSite+'">'
  122. Return cHtml
  123. Else
  124. If !Empty(HttpSession->Superv) .and. HttpSession->Superv <> HttpSession->CodVend
  125. HttpSession->CodVend:= HttpSession->Superv
  126. Endif
  127. Endif
  128. // Pega do parâmetro com o Titulo do Portal
  129. cTitle := SuperGetMV("PS_TITLE", .T., "Portal SMS")
  130. // Define a funcao a ser chama no link
  131. cSite := "u_SMSPortal.apw?PR="+cCodLogin
  132. // Monta o cabeçalho para a pagina
  133. cHeader := U_PSHeader(cTitle, cSite)
  134. //Função que atualiza os menus
  135. cMenus := U_GetMenus(AllTrim(Upper(Procname())), cVendLogin)
  136. //Atualiza as variáveis
  137. cEndServ := GetMv('MV_WFBRWSR')
  138. cCodVend := cVendLogin
  139. cNomeVend:= HttpSession->Nome
  140. cItem := StrZero(1,TamSX3("C6_ITEM")[1])
  141. cOpcao := HttpGet->opc
  142. if !empty(HttpGet->rec)
  143. nRecSC5 := val(HttpGet->rec)
  144. EndIf
  145. lEdit := .F.
  146. lDele := .F.
  147. Do Case
  148. Case cOpcao == "view"
  149. nOpc:= 2
  150. cPagina += " - Visualizar"
  151. Case cOpcao == "edit"
  152. nOpc:= 4
  153. cPagina += " - Alterar"
  154. lEdit := .T.
  155. Case cOpcao == "dele"
  156. nOpc:= 5
  157. cPagina += " - Excluir"
  158. lDele := .T.
  159. Case cOpcao == "copy"
  160. nOpc = 3
  161. cPagina += " - Copiar"
  162. lEdit := .T.
  163. lCopy := .T.
  164. EndCase
  165. //Posiciona no Pedido
  166. If !Empty(nRecSC5)
  167. dbSelectArea("SC5")
  168. SC5->(dbGoTo(nRecSC5))
  169. //Troca de filial
  170. u_PTChgFil(SC5->C5_FILIAL)
  171. dbSelectArea("SC5")
  172. SC5->(dbGoTo(nRecSC5))
  173. dbSelectArea("SC6")
  174. SC6->(DbSetOrder(1))
  175. SC6->(dbgotop())
  176. SC6->(dbSeek(xFilial("SC6")+SC5->C5_NUM))
  177. dbSelectArea("SA1")
  178. SA1->(DbSetOrder(1))
  179. SA1->(dbgotop())
  180. SA1->(dbSeek(xFilial("SA1")+SC5->C5_CLIENTE+SC5->C5_LOJACLI))
  181. Endif
  182. cCodOrc:= '<div class="row form-group">'
  183. cFilPed+= ' <div class="col-lg-2">'
  184. cFilPed+= ' <label class="control-label">Filial</label>'
  185. cFilPed+= ' <input id="C5_FILIAL" name="C5_FILIAL" class="form-control" value="'+SC5->C5_FILIAL+'" disabled >'
  186. //cFilPed+= ' <input id="C5_VEND" name="C5_VEND" type="hidden" value="'+SC5->C5_VEND+'">'
  187. cFilPed+= ' </div>'
  188. cCodOrc+= ' <div class="col-lg-2">'
  189. cCodOrc+= ' <label class="control-label">Número</label>'
  190. cCodOrc+= ' <input id="C5_NUM" name="C5_NUM" class="form-control" value="'+SC5->C5_NUM+'" disabled >'
  191. cCodOrc+= ' </div>'
  192. cCodOrc+= '</div>'
  193. //Cliente
  194. If lEdit .or. lCopy
  195. cCliente:=' <div class="flexContainer">
  196. cCliente+=' <input type="text" class="form-control smsediticon" placeholder="Digite o código, CPF/CNPJ ou Razão Social..." '
  197. cCliente+=' name="C5_CLIENTE" id="C5_CLIENTE"'
  198. cCliente+=' aria-required="true" data-live-search="true" '
  199. cCliente+=' autocomplete="off" value="'+SC5->C5_CLIENTE+'/'+SC5->C5_LOJACLI+' - '+Alltrim(Posicione("SA1",1,xFilial("SA1")+SC5->C5_CLIENTE+SC5->C5_LOJACLI,"A1_NOME"))+'" />'
  200. cCliente+=' <button class="btSearchCli" id="btSearchCli">'
  201. cCliente+=' <i class="fa fa-search" alt="Pesquisar"></i>'
  202. cCliente+=' </button>
  203. cCliente+=' </div>
  204. cOptCli+= u_ListaCli(cVendLogin,"", 'S')
  205. HttpSession->Cliente:= SC5->C5_CLIENTE+SC5->C5_LOJACLI
  206. Else
  207. cCliente:='<select data-plugin-selectTwo class="form-control populate placeholder" data-plugin-options='+"'"
  208. cCliente+='{ "placeholder": "Selecione um Cliente", "allowClear": false }'+"'"+' name="C5_CLIENTE" id="C5_CLIENTE" '
  209. cCliente+=' disabled >' //value='+SC5->C5_CLIENTE+SC5->C5_LOJA+'
  210. cCliente+=' <option value='+SC5->C5_CLIENTE+SC5->C5_LOJACLI+'>'+SC5->C5_CLIENTE+'/'+SC5->C5_LOJACLI+' - '+Alltrim(Posicione("SA1",1,xFilial("SA1")+SC5->C5_CLIENTE+SC5->C5_LOJACLI,"A1_NOME"))+'</option>'
  211. cCliente+='</select>'
  212. Endif
  213. //Oportunidade
  214. cOport:= '<input id="C5_NROPOR" name="C5_NROPOR" class="form-control" value="'+SC5->C5_NROPOR+'" disabled >'
  215. // cRevOpt:= '<input id="C5_REVISA" name="C5_REVISA" class="form-control" value="'+SC5->C5_REVISA+'" disabled>'
  216. //Combo da tabela de preço
  217. cTabPadrao:= GetNewPar("PR_TABPADR","001")
  218. cTabela:='<select data-plugin-selectTwo class="form-control populate placeholder" data-plugin-options='+"'"
  219. cTabela+='{ "placeholder": "Selecione", "allowClear": false }'+"'"+' name="C5_TABELA" id="C5_TABELA" '
  220. cTabela+='</select>'
  221. //Tabela de preço por filial
  222. cQry:= "SELECT DA0_CODTAB, DA0_DESCRI "
  223. cQry+= "FROM "+RetSqlName("DA0")+" DA0 "
  224. cQry+= "WHERE DA0_FILIAL = '"+xFilial("DA0")+"'
  225. cQry+= "AND DA0_ATIVO = '1' "
  226. cQry+= "AND (DA0_DATATE = '' OR DA0_DATATE >= '"+dtos(dDataBase)+"') "
  227. cQry+= "AND DA0.D_E_L_E_T_ = ' ' "
  228. If Select("QFIL") > 0
  229. QFIL->(dbCloseArea())
  230. Endif
  231. TcQuery cQry New Alias "QFIL"
  232. While QFIL->(!Eof())
  233. cTabela+=' <option value="'+Alltrim(QFIL->DA0_CODTAB)+'" '+Iif(QFIL->DA0_CODTAB == SC5->C5_TABELA,'selected','')+'>'+Alltrim(QFIL->DA0_CODTAB)+' - '+Alltrim(QFIL->DA0_DESCRI)+'</option>'
  234. QFIL->(dbSkip())
  235. End
  236. cTabela+='</select>'
  237. //Tipo de cliente
  238. Posicione("SA1",1,xFilial("SA1")+SC5->C5_CLIENTE+SC5->C5_LOJACLI,"A1_TIPO")
  239. cTpCliente:='<select data-plugin-selectTwo class="form-control populate placeholder" data-plugin-options='+"'"
  240. cTpCliente+='{ "placeholder": "Selecione um Cliente", "allowClear": false }'+"'"+' name="C5_TIPOCLI" id="A1_TIPOCLI" '
  241. cTpCliente+=' disabled >'
  242. cTpCliente+=' <option value="'+SC5->C5_TIPOCLI+'">'+X3COMBO("C5_TIPOCLI",SC5->C5_TIPOCLI)+'</option>'
  243. cTpCliente+='</select>'
  244. //Grupo de tributação do cliente
  245. cGrpTrib:= '<input id="C5_GRPTRIB" name="C5_GRPTRIB" class="form-control" value="'+SC5->C5_GRPTRIB+'" disabled>'
  246. //End. Opc. Ent.
  247. cEndOpc:= '<input type="hidden" id="C5_ENDOPC" name="C5_ENDOPC" maxlength="'+cvaltochar(GetSX3Cache("C5_ENDOPC","X3_TAMANHO"))+'" class="form-control text-uppercase" value="'+SC5->C5_ENDOPC+'" disabled>'
  248. //Contato
  249. cEndCep := '<input id="C5_CEPOPC" name="C5_CEPOPC" maxlength="'+cvaltochar(GetSX3Cache("C5_CEPOPC","X3_TAMANHO"))+'" class="form-control text-uppercase" value="'+SC5->C5_CEPOPC+'" disabled>'
  250. cEndRua := '<input id="C5_RUAOPC" name="C5_RUAOPC" maxlength="'+cvaltochar(GetSX3Cache("C5_RUAOPC","X3_TAMANHO"))+'" class="form-control text-uppercase" value="'+SC5->C5_RUAOPC+'" disabled>'
  251. cEndNum := '<input id="C5_NUMOPC" name="C5_NUMOPC" maxlength="'+cvaltochar(GetSX3Cache("C5_NUMOPC","X3_TAMANHO"))+'" class="form-control text-uppercase" value="'+SC5->C5_NUMOPC+'" disabled>'
  252. cEndBair:= '<input id="C5_BAIROPC" name="C5_BAIROPC" maxlength="'+cvaltochar(GetSX3Cache("C5_BAIROPC","X3_TAMANHO"))+'" class="form-control text-uppercase" value="'+SC5->C5_BAIROPC+'" disabled>'
  253. cEndMun := '<input id="C5_MUNOPC" name="C5_MUNOPC" maxlength="'+cvaltochar(GetSX3Cache("C5_MUNOPC","X3_TAMANHO"))+'" class="form-control text-uppercase" value="'+SC5->C5_MUNOPC+'" disabled>'
  254. cEndUF := '<input id="C5_UFOPC" name="C5_UFOPC" maxlength="'+cvaltochar(GetSX3Cache("C5_UFOPC","X3_TAMANHO"))+'" class="form-control text-uppercase" value="'+SC5->C5_UFOPC+'" disabled>'
  255. cEndRef := '<input id="C5_REFOPC" name="C5_REFOPC" maxlength="'+cvaltochar(GetSX3Cache("C5_REFOPC","X3_TAMANHO"))+'" class="form-control text-uppercase" value="'+SC5->C5_REFOPC+'" disabled>'
  256. cUsuEmiss:= '<input id="C5_USUEMIS" name="C5_USUEMIS" class="form-control" value="'+cVendLogin +'/'+ HttpSession->NomeFull+'" disabled>'
  257. //Cliente de Entrega
  258. cCliEntr:='<select data-plugin-selectTwo class="form-control populate placeholder" data-plugin-options='+"'"
  259. cCliEntr+='{ "placeholder": "Selecione um Cliente", "allowClear": false }'+"'"
  260. cCliEntr+='name="C5_CLIENT" id="C5_CLIENT" '
  261. If lEdit .or. lCopy
  262. cCliEntr+='onchange="javascript:atuLocEnt();" '
  263. Else
  264. cCliEntr+='disabled'
  265. Endif
  266. cCliEntr+='>'
  267. If lEdit .or. lCopy
  268. cCliEntr+=' <option data-hidden="true"></option>'
  269. Endif
  270. // Localiza os clientes
  271. cCliEntr+= u_ListaCli(cVendLogin,"QRY->A1_COD+QRY->A1_LOJA==SC5->C5_CLIENT+SC5->C5_LOJAENT", 'N')
  272. cCliEntr+='</select>'
  273. //Local de entrega
  274. cLocalEnt:= '<div class="flexContainer">'
  275. cLocalEnt+= ' <input id="C5_UFENT" name="C5_UFENT" class="form-control" value="'+Alltrim(SC5->C5_UFDEST)+'-'+SC5->C5_MUNOPC+'" disabled>' //onchange="javascript:atuVlrFrete();"
  276. cLocalEnt+=' <button class="btEndEntrega" id="btEndEntrega">'
  277. cLocalEnt+=' <i class="fa fa-exchange" title="Alterar endereço"></i>'
  278. cLocalEnt+=' </button>'
  279. cLocalEnt+='</div>'
  280. //Alimenta os estados
  281. cOptUF:= u_ListaUF()
  282. //Nome da obra
  283. // cObra:= ' <input id="C5_OBRA" name="C5_OBRA" maxlength="'+cvaltochar(GetSX3Cache("C5_OBRA","X3_TAMANHO"))+'" class="form-control text-uppercase" value="'+Alltrim(Upper(SC5->C5_OBRA))+'" '+Iif(lCopy .or. lEdit,'','disabled')+' >'
  284. //cStatusObra:= ' <input id="C5_VEND6" name="C5_VEND6" class="form-control" value="'+Upper(X3COMBO("C5_VEND6",SC5->C5_VEND6))+'" '+Iif(lCopy .or. lEdit,'','disabled')+' >'
  285. // aStObra:= RetSx3Box(Posicione('SX3',2,'C5_VEND6','X3CBox()'),,,1)
  286. // cStatusObra:='<select data-plugin-selectTwo class="form-control poulatemb-md" data-plugin-options='+"'"+'{"placeholder": "Selecione...", "minimumResultsForSearch": "-1"}'+"'"'
  287. // cStatusObra+=' name="C5_VEND6" id="C5_VEND6" '+Iif(lCopy .or. lEdit,'','disabled')+'>'
  288. // cStatusObra+='<option value=""></option>'
  289. // For f:= 1 to Len(aStObra)
  290. // cStatusObra+=' <option value="'+Left(aStObra[f,1],2)+'" '+Iif(Left(aStObra[f,1],2)==Alltrim(SC5->C5_VEND6),'selected','')+'>'+aStObra[f,1]+'</option>'
  291. // Next
  292. // cStatusObra+='</select>'
  293. //Seleciona as condições de pagamento disponíveis no combo
  294. cCondPag:='<select data-plugin-selectTwo class="form-control populate placeholder mb-md" data-plugin-options='+"'" '
  295. cCondPag+='{ "placeholder": "Selecione...", "allowClear": false }'+"'"+' name="C5_CONDPAG" id="C5_CONDPAG" '
  296. cCondPag+='required="" aria-required="true" '+Iif(lCopy .or. lEdit,'','disabled')+' onchange="javascript:vldCond()">'
  297. cCondPag+=' <option value="'+SC5->C5_CONDPAG+'">'+SC5->C5_CONDPAG+" - "+Posicione("SE4",1,xFilial("SE4")+SC5->C5_CONDPAG,"E4_DESCRI")+'</option>'
  298. If lEdit
  299. //Verifica a tabela cadastrada no cliente
  300. SE4->(dbSeek(xFilial("SE4")+SA1->A1_COND))
  301. //Seleciona as condições de pagamento disponíveis no combo
  302. cQry:= " Select E4_CODIGO, E4_DESCRI, E4_ACRSFIN"
  303. cQry+= " From "+RetSqlName("SE4")+" SE4 "
  304. cQry+= " Where E4_FILIAL = '"+xFilial("SE4")+"' "
  305. cQry+= " And E4_MSBLQL <> '1' "
  306. cQry+= " And E4_CODIGO NOT IN ('"+SC5->C5_CONDPAG+"') "
  307. cQry+= " And SE4.D_E_L_E_T_ = ' ' "
  308. If Select("QRP") > 0
  309. QRP->(dbCloseArea())
  310. Endif
  311. TcQuery cqry New Alias "QRP"
  312. While QRP->(!Eof())
  313. cCondPag+=' <option value="'+QRP->E4_CODIGO+'" '+Iif(Alltrim(QRP->E4_CODIGO) == AllTrim(SC5->C5_CONDPAG),'selected','')+'>'+Alltrim(QRP->E4_CODIGO)+" - "+Alltrim(QRP->E4_DESCRI)+'</option>'
  314. QRP->(dbSkip())
  315. End
  316. QRP->(dbCloseArea())
  317. Endif
  318. cCondPag+='</select>'
  319. //Previsão Fechamento
  320. // aPrevisao:= {{"B","Balizador"},{"A","30/120 dias"},{"V","Em 30 dias"},{"M","Após 4 meses"},{"C","Concorrência"}}
  321. // //cPrevFecha:= ' <input id="C5_TERMOME" name="C5_TERMOME" class="form-control" value="'+cPrevisao+'" '+Iif(lCopy .or. lEdit,'','disabled')+' >'
  322. // cPrevFecha:='<select data-plugin-selectTwo class="form-control poulatemb-md" data-plugin-options='+"'"+'{"placeholder": "Selecione...", "minimumResultsForSearch": "-1"}'+"'"'
  323. // cPrevFecha+=' name="C5_TERMOME" id="C5_TERMOME" '+Iif(lCopy .or. lEdit,'','disabled')+'>'
  324. // cPrevFecha+='<option value=""></option>'
  325. // For f:= 1 to Len(aPrevisao)
  326. // cPrevFecha+=' <option value="'+aPrevisao[f,1]+'" '+Iif(aPrevisao[f,1]==SC5->C5_TERMOME,'selected','')+'>'+aPrevisao[f,2]+'</option>'
  327. // Next
  328. // cPrevFecha+='</select>'
  329. //Intermediador
  330. // If !(lEdit .or. lCopy)
  331. // cIntermed:='<select data-plugin-selectTwo class="form-control populate placeholder" data-plugin-options='+"'"
  332. // cIntermed+='{ "placeholder": "Selecione...", "allowClear": false }'+"'"+' disabled '
  333. // Else
  334. // cIntermed:='<select class="form-control populate selectpicker" data-live-search="true" '
  335. // cIntermed+='title="Selecione..." '
  336. // Endif
  337. // cIntermed+=' name="C5_CLIINTE" id="C5_CLIINTE" >'
  338. // cIntermed+='<option data-hidden="true"></option>'
  339. // //Busca a lista de clientes
  340. // cIntermed+= u_ListaCli(cVendLogin,"QRY->A1_COD==SC5->C5_CLIINTE")
  341. // cIntermed+='</select>'
  342. //Retorno
  343. // nDiasVal:= 0
  344. // cRetorno:='<input type="text" id="C5_RETORNO" name="C5_RETORNO" data-plugin-datepicker data-plugin-options='+"'"+'{ "startDate": "+'+cvaltochar(nDiasVal)+'d", "language": "pt-BR",'
  345. // cRetorno+='"daysOfWeekDisabled": "[0]","daysOfWeekHighlighted":"[0]","autoclose": "true","disabled":"true"}'+"'"+' class="form-control only-numbers" placeholder="__/__/____" '
  346. // cRetorno+='value="'+dtoc(SC5->C5_RETORNO)+'" '+Iif(lCopy .or. lEdit,'','disabled')+'>'
  347. //Estudo Luminotécnico
  348. //cEstudo:= ' <input id="CJ_LUMINOT" name="CJ_LUMINOT" class="form-control" value="'+Upper(X3COMBO("CJ_LUMINOT",SC5->CJ_LUMINOT))+'" '+Iif(lCopy .or. lEdit,'','disabled')+' >'
  349. // aEstd:= RetSx3Box(Posicione('SX3',2,'CJ_LUMINOT','X3CBox()'),,,1)
  350. // aSort(aEstd)
  351. // cEstudo:='<select data-plugin-selectTwo class="form-control poulatemb-md" data-plugin-options='+"'"+'{"placeholder": "Selecione...", "minimumResultsForSearch": "-1"}'+"'"'
  352. // cEstudo+=' name="CJ_LUMINOT" id="CJ_LUMINOT" '+Iif(lCopy .or. lEdit,'','disabled')+' onchange="javascript:vldEstudo()">'
  353. // cEstudo+='<option value=""></option>'
  354. // For f:= 1 to Len(aEstd)
  355. // cEstudo+=' <option value="'+aEstd[f,2]+'" '+Iif(AllTrim(aEstd[f,2]) == AllTrim(SC5->CJ_LUMINOT),'selected','')+'>'+Upper(aEstd[f,3])+'</option>'
  356. // Next
  357. // cEstudo+='</select>'
  358. // cNumEst:= ' <input id="C5_REGLUMI" name="C5_REGLUMI" maxlength="'+cvaltochar(GetSX3Cache("C5_REGLUMI","X3_TAMANHO"))+'" class="form-control" value="'+SC5->C5_REGLUMI+'" '+Iif(lCopy .or. lEdit,'','disabled')+' >'
  359. //Segmento
  360. // aSegmen:= RetSx3Box(Posicione('SX3',2,'CJ_SEGMENT','X3CBox()'),,,1)
  361. // cSegmento:='<select data-plugin-selectTwo class="form-control poulatemb-md" data-plugin-options='+"'"+'{"placeholder": "Selecione...","minimumResultsForSearch": "-1"}'+"'"'
  362. // cSegmento+=' name="CJ_SEGMENT" id="CJ_SEGMENT" '+Iif(lCopy .or. lEdit,'','disabled')+'>'
  363. // cSegmento+=' <option value=""></option>'
  364. // For f:= 1 to Len(aSegmen)
  365. // cSegmento+=' <option value="'+aSegmen[f,1]+'" '+Iif(aSegmen[f,1]==Alltrim(SC5->CJ_SEGMENT),'selected','')+'>'+aSegmen[f,1]+'</option>'
  366. // Next
  367. // cSegmento+='</select>'
  368. //Prospecção
  369. // aProsp:= RetSx3Box(Posicione('SX3',2,'C5_PROPECC','X3CBox()'),,,1)
  370. // aSort(aProsp)
  371. // cProsp:='<select data-plugin-selectTwo class="form-control poulatemb-md" data-plugin-options='+"'"+'{"placeholder": "Selecione...", "minimumResultsForSearch": "-1"}'+"'"'
  372. // cProsp+=' name="C5_PROPECC" id="C5_PROPECC" onchange="javascript:vldProspec()" '+Iif(lCopy .or. lEdit,'','disabled')+'>'
  373. // cProsp+='<option value=""></option>'
  374. // For f:= 1 to Len(aProsp)
  375. // cProsp+=' <option value="'+aProsp[f,2]+'" '+Iif(aProsp[f,2]==SC5->C5_PROPECC,'selected','')+'>'+Upper(aProsp[f,3])+'</option>'
  376. // Next
  377. // cProsp+='</select>'
  378. //Prospectado por
  379. // aProsp:= RetSx3Box(Posicione('SX3',2,'C5_PROSCOD','X3CBox()'),,,1)
  380. // cProspPor:='<select data-plugin-selectTwo class="form-control poulatemb-md" data-plugin-options='+"'"+'{"placeholder": "Selecione...","minimumResultsForSearch": "-1"}'+"'"'
  381. // cProspPor+=' name="C5_PROSCOD" id="C5_PROSCOD" '+Iif(lCopy .or. lEdit .or. !Empty(SC5->C5_PROSCOD),'','disabled')+'>'
  382. // cProspPor+=' <option value=""></option>'
  383. // For f:= 1 to Len(aProsp)
  384. // cProspPor+=' <option value="'+aProsp[f,1]+'" '+Iif(aProsp[f,1]==Alltrim(SC5->C5_PROSCOD),'selected','')+'>'+aProsp[f,1]+'</option>'
  385. // Next
  386. // cProspPor+='</select>'
  387. //Regional
  388. cRegional:='<select data-plugin-selectTwo class="form-control populate placeholder mb-md" data-plugin-options='+"'" '
  389. cRegional+='{ "placeholder": "Selecione...", "allowClear": false }'+"'"+' name="C5_REGIAO" id="C5_REGIAO" '
  390. cRegional+='required="" aria-required="true" '+Iif(lCopy .or. lEdit,'','disabled')+'>'
  391. If lCopy .or. lEdit
  392. cRegional+= u_ListaVend(.T.,SC5->C5_VEND1)
  393. Else
  394. cRegional+='<option value="'+SC5->C5_VEND1+'">'+SC5->C5_VEND1+" - "+Posicione("SA3",1,xFilial("SA3")+SC5->C5_VEND1,"A3_NOME")+'</option>'
  395. Endif
  396. cRegional+='</select>'
  397. //Vendedor do cliente
  398. cVend2:= '<select data-plugin-selectTwo class="form-control populate placeholder mb-md" data-plugin-options='+"'" '
  399. cVend2+='{ "placeholder": "Selecione...", "allowClear": false }'+"'"+' name="C5_VEND" id="C5_VEND" '
  400. cVend2+='required="" aria-required="true" '+Iif(lCopy .or. lEdit,'','disabled')+'>'
  401. If lCopy .or. lEdit
  402. cVend2+= u_ListaVend(.F.,SC5->C5_VEND2)
  403. Else
  404. cVend2+='<option value="'+SC5->C5_VEND2+'">'+SC5->C5_VEND2+" - "+Posicione("SA3",1,xFilial("SA3")+SC5->C5_VEND2,"A3_NOME")+'</option>'
  405. Endif
  406. cVend2+='</select>'
  407. //Vendedor da oportunidade
  408. cVend3:='<select data-plugin-selectTwo class="form-control populate placeholder mb-md" data-live-search="true" data-plugin-options='+"'"
  409. cVend3+='{ "placeholder": "Selecione...", "allowClear": false }'+"'"
  410. cVend3+=' name="C5_VEND3" id="C5_VEND3" '+Iif(lCopy .or. lEdit,'','disabled')+'>'
  411. If lCopy .or. lEdit
  412. cVend3+= u_ListaVend(.F.,SC5->C5_VEND3)
  413. Else
  414. cVend3+='<option value="'+SC5->C5_VEND3+'">'+SC5->C5_VEND3+" - "+Posicione("SA3",1,xFilial("SA3")+SC5->C5_VEND3,"A3_NOME")+'</option>'
  415. Endif
  416. cVend3+='</select>'
  417. //Vendedor 4
  418. cVend4:= '<select data-plugin-selectTwo class="form-control populate placeholder mb-md" data-plugin-options='+"'" '
  419. cVend4+='{ "placeholder": "Selecione...", "allowClear": false }'+"'"+' name="C5_VEND4" id="C5_VEND4" '
  420. cVend4+='required="" aria-required="true" '+Iif(lCopy .or. lEdit,'','disabled')+'>'
  421. cVend4+= u_Vend04(SC5->C5_VEND4)
  422. cVend4+='</select>'
  423. //Especificado por
  424. // cEspecif:= '<select data-plugin-selectTwo class="form-control populate placeholder mb-md" data-plugin-options='+"'" '
  425. // cEspecif+='{ "placeholder": "Selecione...", "allowClear": false }'+"'"+' name="C5_CODESP" id="C5_CODESP" '
  426. // cEspecif+='required="" aria-required="true" '+Iif(lCopy .or. lEdit,'','disabled')+'>'
  427. // cEspecif+= u_ListaEsp(SC5->C5_CODESP)
  428. // cEspecif+='</select>'
  429. //Negociadora
  430. cNegociad:= '<select data-plugin-selectTwo class="form-control populate placeholder mb-md" data-plugin-options='+"'" '
  431. cNegociad+='{ "placeholder": "Selecione...", "allowClear": false }'+"'"+' name="C5_VEND7" id="C5_VEND7" '
  432. cNegociad+='required="" aria-required="true" '+Iif(lCopy .or. lEdit,'','disabled')+'>'
  433. cNegociad+= u_ListaNeg(SC5->C5_VEND7)
  434. cNegociad+='</select>'
  435. //Validade do Pedido
  436. // nDiasVal:= GetNewPar("PR_DTVALID",10)
  437. // cValidade:='<input type="text" id="C5_VALIDA" name="C5_VALIDA" data-plugin-datepicker data-plugin-options='+"'"+'{ "startDate": "+'+cvaltochar(nDiasVal)+'d", "language": "pt-BR",'
  438. // cValidade+='"daysOfWeekDisabled": "[0]","daysOfWeekHighlighted":"[0]","autoclose": "true"}'+"'"+' class="form-control only-numbers" placeholder="__/__/____" '
  439. // cValidade+='value="'+dtoc(SC5->C5_VALIDA)+'" '+Iif(lCopy .or. lEdit,'','disabled')+'>'
  440. //Data de entrega
  441. cEntrega:='<input type="text" id="C5_DATENTR" name="C5_DATENTR" data-plugin-datepicker data-plugin-options='+"'"+'{ "startDate": "+d", "language": "pt-BR",'
  442. cEntrega+='"daysOfWeekDisabled": "[0]","daysOfWeekHighlighted":"[0]","autoclose": "true"}'+"'"+' class="form-control only-numbers" placeholder="__/__/____" '
  443. cEntrega+='value="'+dtoc(SC5->C5_DATENTR)+'" '+Iif(lCopy .or. lEdit,'','disabled')+'>'
  444. //Prazo de embarque
  445. // cPrazoEmb:= '<input id="C5_PRZEMB" name="C5_PRZEMB" maxlength="'+cvaltochar(GetSX3Cache("C5_PRZEMB","X3_TAMANHO"))+'" class="form-control" value="'+SC5->C5_PRZEMB+'" '+Iif(lCopy .or. lEdit,'','disabled')+' >'
  446. //Tipo de frete
  447. aTpFrete:= {{"S","Sem Frete"},{"C","CIF"},{"F","FOB"},{"T","Por conta de Terceiros"}, {"R","Por conta do remetente"}, {"D","Por conta do destinatário"}}
  448. cTpFrete:='<select data-plugin-selectTwo class="form-control poulatemb-md" data-plugin-options='+"'"+'{"minimumResultsForSearch": "-1"}'+"'"'
  449. cTpFrete+=' name="C5_TPFRETE" id="C5_TPFRETE" onchange="javascript:VldFrete()" '
  450. cTpFrete+=' '+Iif(lCopy .or. lEdit,'','disabled')+'>'
  451. For f:= 1 to Len(aTpFrete)
  452. cTpFrete+=' <option value="'+aTpFrete[f,1]+'" '+iif(aTpFrete[f,1] == ALLTRIM(SC5->C5_TPFRETE), 'selected', '')+' >'+aTpFrete[f,2]+'</option>'
  453. Next
  454. //Faturamento Parcial
  455. aFatPar:= {{"2","Sim"},{"1","Não"}}
  456. cFatPar:='<select data-plugin-selectTwo class="form-control poulatemb-md" data-plugin-options='+"'"+'{"minimumResultsForSearch": "-1"}'+"'"'
  457. cFatPar+=' name="C5_FATPARC" id="C5_FATPARC" onchange="javascript:VldFrete()" '
  458. cFatPar+=' '+Iif(lCopy .or. lEdit,'','disabled')+'>'
  459. For f:= 1 to Len(aFatPar)
  460. cFatPar+=' <option value="'+aFatPar[f,1]+'" '+iif(aFatPar[f,1] == ALLTRIM(SC5->C5_FATPARC), 'selected', '')+' >'+aFatPar[f,2]+'</option>'
  461. Next
  462. cFatPar+='</select>'
  463. //Estagio PV
  464. aEstagPv:= {{"1","Um"},{"2","Dois"},{"3","Três"},{"4","Quatro"},{"5","Cinco"},{"6","Seis"},{"7","Sete"}}
  465. cEstagPv:='<select data-plugin-selectTwo class="form-control poulatemb-md" data-plugin-options='+"'"+'{"minimumResultsForSearch": "-1"}'+"'"'
  466. cEstagPv+=' name="C5_ESTAGIO" id="C5_ESTAGIO" onchange="javascript:VldFrete()" '
  467. cEstagPv+=' '+Iif(lCopy .or. lEdit,'','disabled')+'>'
  468. For f:= 1 to Len(aEstagPv)
  469. cEstagPv+=' <option value="'+aEstagPv[f,1]+'" '+iif(aEstagPv[f,1] == ALLTRIM(SC5->C5_ESTAGIO), 'selected', '')+' >'+aEstagPv[f,2]+'</option>'
  470. Next
  471. cEstagPv+='</select>'
  472. //T. Oper. Lum
  473. aOperLum:= {{"T",""},{"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"}}
  474. cOperLum:='<select data-plugin-selectTwo class="form-control poulatemb-md" data-plugin-options='+"'"+'{"minimumResultsForSearch": "-1"}'+"'"'
  475. cOperLum+=' name="C5_TIPOLUM" id="C5_TIPOLUM" '
  476. cOperLum+=' '+Iif(lCopy .or. lEdit,'','disabled')+'>'
  477. For f:= 1 to Len(aOperLum)
  478. cOperLum+=' <option value="'+aOperLum[f,1]+'" '+iif(aOperLum[f,1] == ALLTRIM(SC5->C5_TIPOLUM), 'selected', '')+'>'+aOperLum[f,2]+'</option>'
  479. Next
  480. cOperLum+='</select>'
  481. cMailNf:= '<input id="C5_MAILNF" name="C5_MAILNF" class="form-control percentual text-right" placeholder="0,00" maxlength="'+cvaltochar(GetSX3Cache("C5_MAILNF","X3_TAMANHO"))+'" '
  482. cMailNf+= 'value="'+SC5->C5_MAILNF+'" '+Iif(lCopy .or. lEdit,'','disabled')+'>'
  483. //Data Emissao
  484. cEmissao:='<input type="text" id="C5_EMISSAO" name="C5_EMISSAO" data-plugin-datepicker data-plugin-options='+"'"+'{ "startDate": "+d", "language": "pt-BR",'
  485. cEmissao+='"daysOfWeekDisabled": "[0]","daysOfWeekHighlighted":"[0]","autoclose": "true"}'+"'"+' class="form-control only-numbers" placeholder="__/__/____" '
  486. cEmissao+='value="'+dtoc(SC5->C5_EMISSAO)+'" '+Iif(lCopy .or. lEdit,'','disabled')+'>'
  487. //Envia Pato Branco
  488. aEnvpb:= {{"T",""},{"SIM","Sim"},{"NAO","Não"}}
  489. cEnvpb:='<select data-plugin-selectTwo class="form-control poulatemb-md" data-plugin-options='+"'"+'{"minimumResultsForSearch": "-1"}'+"'"'
  490. cEnvpb+=' name="C5_SIBAP" id="C5_SIBAP" '+Iif(lCopy .or. lEdit,'','disabled')+' '
  491. cEnvpb+=' >'
  492. For f:= 1 to Len(aEnvpb)
  493. cEnvpb+=' <option value="'+aEnvpb[f,1]+'" '+iif(aEnvpb[f,1] == ALLTRIM(SC5->C5_SIBAP), 'selected', '')+' >'+aEnvpb[f,2]+'</option>'
  494. Next
  495. cEnvpb+='</select>'
  496. // cPFrete:= '<input id="C5_PERCFRT" name="C5_PERCFRT" class="form-control percentual text-right" placeholder="0,00" maxlength="'+cvaltochar(GetSX3Cache("C5_PERCFRT","X3_TAMANHO"))+'" '
  497. // cPFrete+= 'value="'+TransForm(SC5->C5_PERCFRT,"@E 999.99")+'" '+Iif(lCopy .or. lEdit,'','disabled')+'>'
  498. cValFre:= '<input id="C5_FRETE" name="C5_FRETE" class="form-control money text-right" placeholder="0,00" '
  499. cValFre+= 'value="'+Transform(SC5->C5_FRETE,"@E 999,999,999,999.99")+'" '
  500. cValFre+= Iif((!lCopy .and. !lEdit) ,'disabled','')+'>'
  501. //% RT
  502. cComRT:= '<input id="C5_COMISTR" name="C5_COMISTR" class="form-control percentual text-right" placeholder="0,00" maxlength="'+cvaltochar(GetSX3Cache("C5_COMISTR","X3_TAMANHO"))+'" '
  503. cComRT+= 'value="'+Transform(SC5->C5_COMISTR,PesqPict("SC5","C5_COMISTR"))+'" '+Iif(lCopy .or. lEdit,'','disabled')+'>'
  504. //Observação Comercial
  505. // cObsCom:= SC5->C5_OBS
  506. //Comentario
  507. cComent:= SC5->C5_COMENT
  508. //Justificativa atraso
  509. cJust:= SC5->C5_JUS
  510. //Mensagem Nota
  511. cMenNota:= SC5->C5_MENNOTA
  512. cMenNota1:= SC5->C5_MENNOT1
  513. cMenNota2:= SC5->C5_MENNOT2
  514. cMenNota3:= SC5->C5_MENNOT3
  515. //Mensagem Nota
  516. cDesFat:= SC5->C5_DESCFAT
  517. //Margem de Contribuição
  518. If HttpSession->Tipo <> "R" //Representante
  519. cMargemCont:= ' <div class="col-lg-2"> '
  520. cMargemCont+= ' <label class="control-label">MC</label> '
  521. cMargemCont+= ' <input id="MARGEM" name="MARGEM" class="form-control" value="'+cvaltochar(SC5->C5_YMCPV)+'" disabled >'
  522. cMargemCont+= ' </div>'
  523. Endif
  524. cNumOp:= ' <div class="col-lg-3"> '
  525. cNumOp+= ' <label class="control-label">No. Oportun.</label> '
  526. cNumOp+= ' <input id="C5_NROPOR" name="C5_NROPOR" class="form-control" value="'+SC5->C5_NROPOR+'" disabled >'//'+u_getMCOrc() + "%"+'
  527. cNumOp+= ' </div>'
  528. //Num Orc
  529. // If HttpSession->Tipo <> "R" //Representante
  530. cNumOrc:= ' <div class="col-lg-3"> '
  531. cNumOrc+= ' <label class="control-label">No. Orc.</label> '
  532. cNumOrc+= ' <input id="C5_YNUMORC" name="C5_YNUMORC" class="form-control" value="'+SC5->C5_YNUMORC+'" disabled >'//'+u_getMCOrc() + "%"+'
  533. cNumOrc+= ' </div>'
  534. // Endif
  535. //Transportadora
  536. cTransp:='<select data-plugin-selectTwo class="form-control populate placeholder mb-md" data-plugin-options='+"'" '
  537. cTransp+='{ "placeholder": "Selecione uma Transportadora", "allowClear": false }'+"'"+' name="C5_TRANSP" id="C5_TRANSP" '
  538. cTransp+='required="" aria-required="true" disabled > '
  539. cTransp+=' <option value="'+SC5->C5_TRANSP+'">'+Alltrim(Posicione("SA4",1,xFilial("SA4")+SC5->C5_TRANSP,"A4_NOME"))+'</option>'
  540. // //Seleciona as transportadoras disponíveis no combo
  541. // cQry:= " Select A4_COD COD, A4_NOME NOME"
  542. // cQry+= " From "+RetSqlName("SA4")+" SA4 "
  543. // cQry+= " Where A4_FILIAL = '"+xFilial("SA4")+"' "
  544. // cQry+= " And A4_COD NOT IN ('"+SA1->A1_TRANSP+"','"+SC5->C5_TRANSP+"') "
  545. // cQry+= " And SA4.A4_MSBLQL = '2' "
  546. // cQry+= " And SA4.D_E_L_E_T_ = ' ' "
  547. // If Select("QRT")> 0
  548. // QRT->(dbCloseArea())
  549. // Endif
  550. // APWExOpenQuery(ChangeQuery(cQry),'QRT',.T.)
  551. // While QRT->(!Eof())
  552. // cTransp+=' <option value="'+Alltrim(QRT->COD)+'">'+Alltrim(QRT->NOME)+'</option>'
  553. // QRT->(dbSkip())
  554. // End
  555. cTransp+='</select>'
  556. //Redespacho
  557. cRedesp:='<select data-plugin-selectTwo class="form-control populate placeholder mb-md" data-plugin-options='+"'" '
  558. cRedesp+='{ "placeholder": "Selecione uma Transportadora", "allowClear": false }'+"'"+' name="C5_REDESP" id="C5_REDESP" '
  559. cRedesp+='required="" aria-required="true" disabled > '
  560. cRedesp+=' <option value="'+SC5->C5_REDESP+'">'+Alltrim(Posicione("SA4",1,xFilial("SA4")+SC5->C5_REDESP,"A4_NOME"))+'</option>'
  561. // //Seleciona as transportadoras disponíveis no combo
  562. // cQry:= " Select A4_COD COD, A4_NOME NOME"
  563. // cQry+= " From "+RetSqlName("SA4")+" SA4 "
  564. // cQry+= " Where A4_FILIAL = '"+xFilial("SA4")+"' "
  565. // cQry+= " And A4_COD NOT IN ('"+SA1->A1_TRANSP+"','"+SC5->C5_REDESP+"') "
  566. // cQry+= " And SA4.A4_MSBLQL = '2' "
  567. // cQry+= " And SA4.D_E_L_E_T_ = ' ' "
  568. // If Select("QRT")> 0
  569. // QRT->(dbCloseArea())
  570. // Endif
  571. // APWExOpenQuery(ChangeQuery(cQry),'QRT',.T.)
  572. // While QRT->(!Eof())
  573. // cRedesp+=' <option value="'+Alltrim(QRT->COD)+'">'+Alltrim(QRT->NOME)+'</option>'
  574. // QRT->(dbSkip())
  575. // End
  576. cRedesp+='</select>'
  577. /*
  578. //Validade do Pedido
  579. nDiasVal:= GetNewPar("PR_DTVALID",3)
  580. cValidade:='<input type="text" id="C5_VALIDA" name="C5_VALIDA" data-plugin-datepicker data-plugin-options='+"'"+'{ "startDate": "+'+cvaltochar(nDiasVal)+'d", "language": "pt-BR",'
  581. cValidade+='"daysOfWeekDisabled": "[0]","daysOfWeekHighlighted":"[0]","autoclose": "true","disabled":"true"}'+"'"+' class="form-control only-numbers" placeholder="__/__/____" '
  582. cValidade+='value="'+Iif(lCopy,dtoc(date()+nDiasVal),dtoc(SC5->C5_VALIDA))+'" disabled>'
  583. //Peso
  584. cPeso:= '<input type="text" id="C5_XPESO" name="C5_XPESO" class="form-control text-right only-numbers" placeholder="0" '
  585. cPeso+= 'value="'+cvaltochar(SC5->C5_XPESO)+'" '+Iif(lCopy .or. lEdit,'',' disabled')+'>'
  586. //Volume
  587. cVolume:= '<input type="text" id="C5_XVOLUME" name="C5_XVOLUME" class="form-control text-right only-numbers" placeholder="0" '
  588. cVolume+= 'value="'+cvaltochar(SC5->C5_XVOLUME)+'"'+Iif(lCopy .or. lEdit,'',' disabled')+'>'
  589. //Espécie
  590. cEspecie:= '<input type="text" id="C5_XESPECI" name="C5_XESPECI" class="form-control" placeholder="" '
  591. cEspecie+= 'value="'+cvaltochar(SC5->C5_XESPECI)+'"'+Iif(lCopy .or. lEdit,'',' disabled')+' maxlength="10">'
  592. //Combo da tabela de preço
  593. cTabela:='<select data-plugin-selectTwo class="form-control populate placeholder" data-plugin-options='+"'"
  594. cTabela+='{ "placeholder": "Selecione...", "allowClear": false }'+"'"+' name="C5_TABELA" id="C5_TABELA" '
  595. cTabela+='onchange="javascript:selProd()" disabled >'
  596. cTabela+=' <option value='+SC5->C5_TABELA+'>'+Alltrim(Posicione("DA0",1,xFilial("DA0")+SC5->C5_TABELA,"DA0_DESCRI"))+'</option>'
  597. cTabela+='</select>'
  598. HttpSession->Tabela:= SC5->C5_TABELA
  599. */
  600. //Preenchimento dos itens
  601. /*
  602. aItens - array que define o cabeçalho da tabela de produtos
  603. [1] - Nome da coluna
  604. [2] - Nome do campo
  605. [3] - Tamanho
  606. [4] - Alinhamento
  607. [5] - Tipo
  608. [6] - Editável
  609. [7] - Obrigatório
  610. [8] - Moeda
  611. [9] - Placeholder
  612. [10]- Hidden
  613. [11] - MaxLength
  614. */
  615. aAdd(aItens, {"Item","C6_ITEM","*","text-left","C",.F.,.F.,.F.,"",.F.,""})
  616. aAdd(aItens, {"Produto","C6_PRODUTO","300px"," text-left","C",lEdit,.T.,.F.,"Selecione...",.F.,""})
  617. aAdd(aItens, {"Unidade","C6_UM","40px"," text-left","C",.F.,.T.,.F.,"",.F.,""})
  618. aAdd(aItens, {"Quant.","C6_QTDVEN","*"," text-right only-numbers","N",lEdit,.T.,.F.,"0",.F.,""})
  619. aAdd(aItens, {"Vlr Unitário","C6_PRCVEN","*"," text-right","N",.T.,.F.,.T.,"0,00",.F.,""})
  620. // aAdd(aItens, {"Vlr Lista","C6_PRUNIT","*"," text-right","N",.T.,.F.,.T.,"0,00",.F.,""})
  621. aAdd(aItens, {"Total","C6_VALOR","*"," text-right","N",.F.,.T.,.T.,"0,00",.F.,""})
  622. aAdd(aItens, {"Data Ent.","C6_ENTREG","*"," text-right","C",.T.,.F.,.F.,"",.F.,"10"})
  623. aAdd(aItens, {"Tip. Oper.","C6_OPER","100px"," text-left","C",.T.,.T.,.F.,"Selecione...",.F.,""})
  624. aAdd(aItens, {"Tip. Saida","C6_TES","100px"," text-left","C",.T.,.T.,.F.,"Selecione...",.F.,""})
  625. aAdd(aItens, {"Cod. Fisc.","C6_CF","100px"," text-left","C",.T.,.T.,.F.,"Selecione...",.F.,""})
  626. // aAdd(aItens, {"NCM","C6_POSIPI","100px"," text-left","C",.F.,.T.,.F.,"Selecione...",.F.,""})
  627. aAdd(aItens, {"% Comis 2","C6_COMIS2","*"," text-right ","N",.T.,.F.,.T.,"0,00",.F.,""})
  628. aAdd(aItens, {"% Comis 3","C6_COMIS3","*"," text-right ","N",.T.,.F.,.T.,"0,00",.F.,""})
  629. // aAdd(aItens, {"% Comis 4","C6_COMIS4","*"," text-right ","N",.F.,.F.,.T.,"0,00",.F.,""})
  630. aAdd(aItens, {"Ped. Cli.","C6_PEDCLI","*"," text-left","C",.T.,.F.,.F.,"",.F.,"80"})
  631. aAdd(aItens, {"I.Ped.Cli.","C6_IPEDCLI","*"," text-left","C",.T.,.F.,.F.,"",.F.,"80"})
  632. aAdd(aItens, {"Vlr c/ Impostos","C6_XPRCIMP","*","text-right","N",.F.,.F.,.T.,"0,00",.T.,""})
  633. aAdd(aItens, {"Vlr de Venda","iC6_PRCVEN","*"," text-right myformato","N",.F.,.T.,.T.,"0,00",.T.,""})
  634. aAdd(aItens, {"Custo","C6_CUSTO","*"," text-right myformato","N",.F.,.F.,.T.,"0,00",.T.,""})
  635. aAdd(aItens, {"IPI","C6_XVALIPI","*"," text-right","N",.T.,.F.,.T.,"0,00",.T.,""})
  636. aAdd(aItens, {"ICMS","C6_XVALICM","*"," text-right","N",.T.,.F.,.T.,"0,00",.T.,""})
  637. aAdd(aItens, {"ICMS ST","C6_XICMST","*"," text-right","N",.T.,.F.,.T.,"0,00",.T.,""})
  638. aAdd(aItens, {"% Desconto","C6_DESCONT","*"," text-right percentual","N",.T.,.F.,.T.,"0,00",/*Iif(HttpSession->Tipo <> "R",.F.,.T.)*/ .T. ,"7"})
  639. // aAdd(aItens, {"Diretor","C6_NOMDIRE","*"," text-left","C",.T.,.F.,.T.,"",.T.,"12"})
  640. aAdd(aItens, {"Vlr Comissão","VAL_COM","*"," text-right","N",.T.,.F.,.T.,"0,00",.T.,""})
  641. aAdd(aItens, {"","ACAO","*"," text-center","X",.T.,.F.,.F.,"",.F.,""})
  642. // Cria o cabeçalho dos Itens
  643. For nLin := 1 to Len(aItens)
  644. cOrcCabec += '<th'+Iif(aItens[nLin,2] == "C6_VALOR",' width="'+aItens[nLin,3]+'"',Iif(aItens[nLin,2] == "C6_PRODUTO",' width="'+aItens[nLin,3]+'"',''))
  645. cOrcCabec+= Iif(aItens[nLin,10],' hidden','')+'>'+aItens[nLin][1]+'</th>'
  646. Next
  647. dbSelectArea("SC6")
  648. SC6->(dbSeek(SC5->C5_FILIAL+SC5->C5_NUM))
  649. While SC6->(!Eof()) .and. SC6->C6_FILIAL == SC5->C5_FILIAL .and. SC6->C6_NUM == SC5->C5_NUM
  650. nItens++
  651. cItem := StrZero(nItens,TamSX3("C6_ITEM")[1])
  652. Posicione("SB1",1,xFilial("SB1")+SC6->C6_PRODUTO,"B1_DESC")
  653. If SB5->(MsSeek(xFilial("SB5")+SC6->C6_PRODUTO))
  654. If SB5->B5_DTVLESP + 30 < dDataBase
  655. lVencido:= .T.
  656. Endif
  657. Endif
  658. cOrcItens += '<tr class="odd" id="linha'+StrZero(nItens,2)+'">'
  659. // nTImpostos += SC6->(C6_ST+C6_IPI)
  660. nTQtdItem += SC6->C6_QTDVEN
  661. nTVlrUnit += Round(SC6->C6_QTDVEN * SC6->C6_PRCVEN,2)
  662. // nTVlrSDesc+= nTVlrUnit - SC6->C6_VLDSCAC
  663. nTTotal += SC6->C6_VALOR // + SC6->(C6_IPI+C6_ST)
  664. // nPerCom:= SC6->C6_COMIS1
  665. // nValCom:= SC6->C6_COMISSA //(SC6->C6_QTDVEN * SC6->C6_PRCVEN) * (nPerCom/100)
  666. // nTComiss+= nValCom
  667. // gera os produtos de acordo com o Cliente e Tabela
  668. cOptProd := u_GetProdOrc(SC5->C5_CLIENTE, SC5->C5_TABELA, "")
  669. For nLin := 1 to Len(aItens)
  670. If aItens[nLin,2] == "ACAO"
  671. cOrcItens += '<td class="actions">'
  672. If lEdit .or. lCopy //!lDele
  673. //cOrcItens += ' <a href="#" id="btnRemItm" name="btnRemItm" class="on-default remove-row"><i class="fa fa-times-circle"></i></a>'
  674. //cOrcItens += ' <i class="fa fa-info fa-lg" data-toggle="tooltip" data-original-title="Detalhes da linha" onclick="detalheOrc('+"'"+cItem+"'"+');"></i>'
  675. If lEdit .or. lCopy
  676. cOrcItens += ' <i class="fa fa-times-circle fa-lg" data-toggle="tooltip" data-original-title="Remover a linha" onclick="removeItem('+"'"+cItem+"'"+');"></i>
  677. Endif
  678. Endif
  679. If !lDele
  680. cOrcItens += ' <i class="fa fa-info fa-lg" data-toggle="tooltip" data-original-title="Detalhes da linha" onclick="detalhePed('+"'"+cItem+"'"+');"></i>'
  681. Endif
  682. cOrcItens += '</td>
  683. Else
  684. If aItens[nLin,2] == "C6_PRODUTO"
  685. cOrcItens += '<td>' //class="form-group row pb-4"
  686. Else
  687. cOrcItens += '<td'+Iif(!Empty(aItens[nLin][4]),' align="'+aItens[nLin][4]+'"',"")+Iif(aItens[nLin,10],'hidden','')+'>'
  688. Endif
  689. lMoeda:= aItens[nLin,8] //Indica se é Moeda
  690. lNumber:= aItens[nLin,5] = "N" //Indica que é numérico
  691. xValue:= ""
  692. Do Case
  693. Case aItens[nLin][5] == 'C'
  694. If aItens[nLin,2] == "C6_PRODUTO"
  695. xValue := AllTrim(SC6->&(aItens[nLin][2]))+' - '+Alltrim(SB1->B1_DESC)
  696. Else
  697. xValue := AllTrim(SC6->&(aItens[nLin][2]))
  698. Endif
  699. Case aItens[nLin][5] == 'N'
  700. If aItens[nLin,2] == "C6_QTDVEN"
  701. xValue := Iif(lNewOrc,"",Alltrim(cvaltochar(SC6->&(aItens[nLin][2]))))
  702. ElseIf aItens[nLin,2] == "PER_COM"
  703. xValue := Iif(lNewOrc,"",Alltrim(PadR(TransForm(nPerCom,PesqPict("SD2","D2_COMIS1")),TamSX3("D2_COMIS1")[1])))
  704. ElseIf aItens[nLin,2] == "VAL_COM"
  705. xValue := Iif(lNewOrc,"",Alltrim(PadR(TransForm(nValCom,PesqPict("SC6","C6_PRCVEN")),TamSX3("C6_PRCVEN")[1])))
  706. ElseIf aItens[nLin,2] == "iC6_PRCVEN"
  707. //xValue := Iif(lNewOrc,"",Alltrim(cvaltochar(SC6->C6_PRCVEN)))
  708. xValue := Iif(lNewOrc,"",Alltrim(TransForm(SC6->C6_PRCVEN,PesqPict("SC6","C6_PRCVEN"))))
  709. Elseif aItens[nLin,2] == "C6_PRCVEN"
  710. xValue := Alltrim(TransForm(SC6->C6_PRUNIT,PesqPict("SC6","C6_PRUNIT")))
  711. Elseif aItens[nLin,2] == "C6_VALOR"
  712. xValue := Alltrim(TransForm(SC6->(C6_VALOR/*+C6_XVALIPI+C6_XICMST*/),PesqPict("SC6",aItens[nLin,2])))
  713. Else
  714. If SC6->(FieldPos(aItens[nLin][2])) > 0
  715. xValue := Alltrim(TransForm(SC6->&(aItens[nLin][2]),PesqPict("SC6",aItens[nLin,2])))
  716. Else
  717. xValue := ""
  718. Endif
  719. Endif
  720. EndCase
  721. If aItens[nLin,6] //Campo Editável
  722. If aItens[nLin,2] == "C6_PRODUTO"
  723. //Cria o select para o produto
  724. If lEdit .or. lCopy
  725. cOrcItens +='<div class="form-group">'
  726. cOrcItens +=' <div class="col-md-12">
  727. cOrcItens +=' <div class="flexContainer">
  728. cOrcItens +=' <input type="text" class="form-control smsediticon" placeholder="Digite o código ou descrição..." '
  729. cOrcItens +=' name="C6_PRODUTO'+cItem+'" id="C6_PRODUTO'+cItem+'"'
  730. cOrcItens += Iif(aItens[nLin][7],'required="" aria-required="true" ','')+' data-live-search="true" '
  731. cOrcItens +=' autocomplete="off" value="'+Alltrim(SC6->C6_PRODUTO)+' -- '+Alltrim(SB1->B1_DESC)+'" >'
  732. cOrcItens +=' <button class="btSearch" id="btSearch"'+cItem+'>'
  733. cOrcItens +=' <i class="fa fa-search" alt="Pesquisar"></i>'
  734. cOrcItens +=' </button>
  735. cOrcItens +=' </div>
  736. cOrcItens +=' </div>
  737. cOrcItens +='</div>
  738. Else
  739. cOrcItens +='<select class="selectpicker" name="C6_PRODUTO'+cItem+'" id="C6_PRODUTO'+cItem+'" '
  740. cOrcItens += Iif(aItens[nLin][7],'required="" aria-required="true" ','')+' data-live-search="true" '
  741. cOrcItens +=' data-width="484px" disabled>' //style="size:4" data-width="90%" style="height:90%"
  742. cOrcItens += GetProdOrc(SC5->C5_CLIENTE, SC5->C5_TABELA, SC6->C6_PRODUTO)
  743. cOrcItens+='</select>'
  744. Endif
  745. Else
  746. cOrcItens += '<input id="'+aItens[nLin][2]+cItem+'" data-prop="'+aItens[nLin][2]+'" name="'+aItens[nLin][2]+cItem+'" class="form-control'
  747. cOrcItens += Iif(lNumber, aItens[nLin][4], "")
  748. cOrcItens +=If(lMoeda," ",If(lNumber," only-numbers",""))+'" type="text" '
  749. cOrcItens += 'placeholder="'+aItens[nLin,9]+'" '
  750. //Atribui as funções javascript
  751. If aItens[nLin,2] == "C6_QTDVEN"
  752. cOrcItens+='onblur="javascript:VldQtd('+"'"+cItem+"'"+') "'
  753. Endif
  754. If aItens[nLin,2] == "iC6_PRCVEN"
  755. cOrcItens+='onblur="javascript:VldValor('+"'"+cItem+"'"+') " '
  756. Endif
  757. If aItens[nLin,2] == "C6_DESCONT"
  758. cVldDesc:= Iif(GetMv("LC_OR1012A",,.F.),'S','N')
  759. cOrcItens+='onblur="javascript:VldValor('+"'"+cItem+"'"+','+"'"+cVldDesc+"'"+')" maxlength="7" '
  760. Endif
  761. If aItens[nLin,2] $ ("C6_QTDVEN|iC6_PRCVEN|C6_DESCONT")
  762. cOrcItens+='onkeyup="javascript:TotalItem('+"'"+cItem+"'"+') "'
  763. Endif
  764. If aItens[nLin,2] $ ("C6_COMIS2|C6_COMIS3|C6_COMIS4")
  765. cOrcItens+='onkeyup="javascript:validaComis('+"'"+cItem+"'"+', this) "'
  766. Endif
  767. //Campo obrigatório
  768. cOrcItens += Iif(aItens[nLin][7],'required="" aria-required="true" ','')
  769. If lEdit //Inicia todos os campos desabilitados caso não for para editar ou copiar
  770. If aItens[nLin,2] <> "C6_QTDVEN" .And. !(aItens[nLin,2] $ "C6_DESCONT") //.And. aItens[nLin,2] <> "C6_XPEDCLI" .And. aItens[nLin,2] <> "C6_XITEMCL"
  771. cOrcItens += 'disabled '
  772. EndIf
  773. Else
  774. cOrcItens += 'disabled '
  775. EndIf
  776. cOrcItens += 'value="'+Alltrim(xValue)+'">'
  777. Endif
  778. Else
  779. cOrcItens += '<input id="'+aItens[nLin][2]+cItem+'" data-prop="'+aItens[nLin][2]+'" name="'+aItens[nLin][2]+cItem+'" '
  780. cOrcItens += 'class="form-control input-block '+Iif(lNumber, aItens[nLin][4], "")+'" '
  781. cOrcItens += 'type="text" disabled width="" '
  782. If aItens[nLin,2] $ "C6_PRODUTO|C6_OBS"
  783. cOrcItens += 'title="'+Alltrim(xValue)+'" '
  784. Endif
  785. cOrcItens += 'value="'+Alltrim(xValue)+'">'
  786. Endif
  787. Endif
  788. cOrcItens += '</td>'
  789. Next
  790. //Inputs Hidden
  791. //cItensHid += '<input type="hidden" class="" id="ALIQ_ICMS'+cItem+'" name="ALIQ_ICMS'+cItem+'" value="'+cValtochar(SC6->C6_CARICMS)+'">'
  792. //cItensHid += '<input type="hidden" class="" id="ALIQ_IPI'+cItem+'" name="ALIQ_IPI'+cItem+'" value="'+cValtochar(SC6->C6_XALIIPI)+'">'
  793. //cItensHid += '<input type="hidden" class="" id="ALIQ_ST'+cItem+'" name="ALIQ_ST'+cItem+'" value="'+cValtochar(SC6->C6_MCPERST)+'">'
  794. cItensHid += '<input type="hidden" class="" id="C6_COMIS4'+cItem+'" name="C6_COMIS4'+cItem+'" value="'+Alltrim(Transform(SC6->C6_COMIS4,PesqPict("SC6","C6_COMIS4")))+'">'
  795. cItensHid += '<input type="hidden" class="" id="C6_POSIPI'+cItem+'" name="C6_POSIPI'+cItem+'" value="'+Alltrim(Transform(SC6->C6_POSIPI,PesqPict("SC6","C6_POSIPI")))+'">'
  796. cItensHid += '<input type="hidden" class="" id="C6_PRUNIT'+cItem+'" name="C6_PRUNIT'+cItem+'" value="'+Alltrim(Transform(SC6->C6_PRUNIT,PesqPict("SC6","C6_PRUNIT")))+'">'
  797. cItensHid += '<input type="hidden" class="" id="VAL_ICMS'+cItem+'" name="VAL_ICMS'+cItem+'" value="'+Alltrim(Transform(SC6->C6_ICMS,PesqPict("SC6","C6_ICMS")))+'">'
  798. cItensHid += '<input type="hidden" class="" id="VAL_IPI'+cItem+'" name="VAL_IPI'+cItem+'" value="'+Alltrim(Transform(SC6->C6_IPI,PesqPict("SC6","C6_IPI")))+'">'
  799. cItensHid += '<input type="hidden" class="" id="VAL_ST'+cItem+'" name="VAL_ST'+cItem+'" value="'+Alltrim(Transform(SC6->C6_ST,PesqPict("SC6","C6_ST")))+'">'
  800. cItensHid += '<input type="hidden" class="" id="BASE_ICMS'+cItem+'" name="BASE_ICMS'+cItem+'" value="0">'
  801. cItensHid += '<input type="hidden" class="" id="BASE_ST'+cItem+'" name="BASE_ST'+cItem+'" value="0">'
  802. cItensHid += '<input type="hidden" class="" id="BASE_IPI'+cItem+'" name="BASE_IPI'+cItem+'" value="0">'
  803. cItensHid += '<input type="hidden" class="" id="IMP_PRCTAB'+cItem+'" name="IMP_PRCTAB'+cItem+'" value="0">'
  804. cItensHid += '<input type="hidden" class="" id="QTD_EMB'+cItem+'" name="QTD_EMB'+cItem+'" value="'+cValtochar(SB1->B1_QE)+'">'
  805. cItensHid += '<input type="hidden" class="" id="C6_TES'+cItem+'" name="C6_TES'+cItem+'" value="'+SC6->C6_TES+'">'
  806. cItensHid += '<input type="hidden" class="" id="QTDMIN'+cItem+'" name="QTDMIN'+cItem+'" value="">'
  807. cItensHid += '<input type="hidden" class="" id="GRUPO'+cItem+'" name="GRUPO'+cItem+'" value="'+SB1->B1_GRUPO+'">'
  808. cItensHid += '<input type="hidden" class="" id="VENCIMENTO'+cItem+'" name="VENCIMENTO'+cItem+'" value="'+Iif(lVencido,'1','0')+'">'
  809. cItensHid += '<input type="hidden" class="" id="B1_COMIS'+cItem+'" name="B1_COMIS'+cItem+'" value="'+SB1->B1_COMIS+'">'
  810. cOrcItens+=cItensHid
  811. SC6->(dbSkip())
  812. End
  813. //nTAcresc:= Round(nTTotal*(nAcresc/100),2)
  814. nTTotal+= nTFrete
  815. //nTTotal+= nTFrete+nTAcresc
  816. cOrcItens += '<input type="hidden" name="QtdItens" id="QtdItens" value="'+cValtoChar(nItens)+'"/>'
  817. cOrcItens += '<input type="hidden" id="PROXIMO" name="PROXIMO" value="'+StrZero(nItens,2)+'"/>
  818. cOrcItens += '<input type="hidden" class="" name="C5_NUM" id="C5_NUM" value="'+IIf(lCopy, "", SC5->C5_NUM)+'" />'
  819. cOrcItens += '<input type="hidden" name="OPCAO" id="OPCAO" value="'+cValtoChar(nOpc)+'" />'
  820. cOrcItens += '<input type="hidden" name="DESCCOND" id="DESCCOND" value="" />'
  821. // cOrcItens += '<input type="hidden" name="C5_DSDIRET" id="C5_DSDIRET" value="'+IIf(lCopy, "", cvaltochar(SC5->C5_DSDIRET))+'" />'
  822. cOrcItens += '<input type="hidden" name="FRETEMIN" id="FRETEMIN" value="'+cvaltochar(GetMv("MV_FRETMIN"))+'" />'
  823. cOrcItens += '</tr>'
  824. //Adiciona os botões de ações na tabela de itens
  825. If lEdit
  826. cBtnItens+='<div class="row form-group">'
  827. cBtnItens+=' <div class="col-sm-2">'
  828. cBtnItens+=' <button class="btn btn-primary" id="btAddItm" name="btAddItm">' //onclick="javascript:newItem()" >'
  829. cBtnItens+=' <i class="fa fa-plus-square"></i> Novo Item</button>'
  830. cBtnItens+=' </div>'
  831. cBtnItens+='</div>'
  832. Endif
  833. //Adiciona os botões da página
  834. If lEdit
  835. //cBotoes+='<h5 class="text-primary">Pedido válido apenas dentro do mês de '+MesExtenso(SC5->C5_EMISSAO)+' de '+cvaltochar(Year(SC5->C5_EMISSAO))+'.</h5>'
  836. cBotoes+='<input class="btn btn-primary" type="button" id="btSalvar" name="btSalvar" value="Salvar"/>'+chr(13)+chr(10)
  837. Elseif lDele
  838. cBotoes+='<input class="btn btn-primary " type="button" id="btExcluir" name="btExcluir" value="Excluir"/>'+chr(13)+chr(10)
  839. Endif
  840. cBotoes+='<input class="btn btn-primary" type="button" id="btVoltar" name="btVoltar" value="Voltar" onclick="javascript: location.href='+"'"+'U_Pedidos.apw?PR='+cCodLogin+"';"+'"/>'+chr(13)+chr(10)
  841. //Totalizador disponível apenas para regional
  842. If HttpSession->Tipo <> "R"
  843. cTotalReg:='<div class="col-sm-12">'
  844. cTotalReg+=' <label class="">Itens sem Desconto&nbsp;</label>'
  845. 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>'
  846. cTotalReg+=' &nbsp;&nbsp;&nbsp;&nbsp;'
  847. cTotalReg+=' <label class="">Itens sem Desconto+Impostos&nbsp;</label>'
  848. 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>'
  849. cTotalReg+='</div>'
  850. cTotalReg+='<br>'
  851. cTotalReg+='<br>'
  852. cShowDesc := 'true'
  853. Endif
  854. //Retorna o HTML para construção da página
  855. cHtml := H_AddPed()
  856. Web Extended End
  857. Return (cHTML)
  858. /*__________________________________________________________________________
  859. ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
  860. ¦¦+-----------------------------------------------------------------------+¦¦
  861. ¦¦¦Funçäo ¦ ExcOrc ¦ Autor ¦ Anderson Zelenski ¦ Data ¦10.12.17 ¦¦¦
  862. ¦¦+----------+------------------------------------------------------------¦¦¦
  863. ¦¦¦Descriçäo ¦ Exclui o Pedido de Venda ¦¦¦
  864. ¦¦+-----------------------------------------------------------------------+¦¦
  865. ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
  866. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
  867. User Function ExcPed()
  868. Local cHtml
  869. Local nOpc := 5 // 3- Incluir / 4- Alterar / 5- Excluir
  870. Local cCliente := ""
  871. Local cLoja := ""
  872. Local cNumOrc := ""
  873. Local cDirErro := "erro\"
  874. Private cReturn
  875. Private aCabSC5 :={}
  876. Private aItemSC5:={}
  877. Private aLinhaSC5:={}
  878. Private lMsErroAuto:= .F.
  879. Private cCodLogin := ""
  880. Private cVendLogin:= ""
  881. Private INCLUI := .F.
  882. Private ALTERA := .F.
  883. Web Extended Init cHtml Start U_inSite()
  884. //Verifica se não perdeu a sessão
  885. If type("HttpSession->CodVend") = "U" .or. Empty(HttpSession->CodVend)
  886. conout(Procname()+"("+ltrim(str(procline()))+") *** Portal "+"Sessao encerrada")
  887. cHtml:= '<META HTTP-EQUIV="Refresh" CONTENT="0 ; URL=U_SMSPortal.apw">'
  888. return cHtml
  889. Endif
  890. cVendLogin := u_GetUsrPR()
  891. cCodLogin := U_SetParPR(cVendLogin)
  892. //Variáveis do cabeçalho
  893. cCliente:= Left(HttpPost->C5_CLIENTE,6)
  894. cLoja:= Right(HttpPost->C5_CLIENTE,6)
  895. cNumOrc:= HttpPost->C5_NUM
  896. nModulo:= 5
  897. //Posiciona nas tabelas
  898. If !Empty(cCliente)
  899. Posicione("SA1",1,xFilial("SA1")+Alltrim(HttpPost->C5_CLIENTE),"A1_COD")
  900. Endif
  901. //Posiciona no Pedido
  902. Posicione("SC5",1,xFilial("SC5")+cNumOrc,"C5_NUM")
  903. cFilOrc:= SC5->C5_FILIAL
  904. //Monta o cabeçalho
  905. aadd(aCabSC5,{"C5_NUM",cNumOrc,Nil})
  906. aadd(aCabSC5,{"C5_CLIENTE",SA1->A1_COD,Nil})
  907. aadd(aCabSC5,{"C5_LOJA", SA1->A1_LOJA ,Nil})
  908. aLinhaSC5:={}
  909. //Monta os itens
  910. lMsErroAuto:= .F.
  911. //Chama execauto para inclusão do Pedido
  912. If Len(aCabSC5) > 0
  913. MATA410(aCabSC5,aItemSC5,nOpc)
  914. Else
  915. conout(Procname()+"("+ltrim(str(procline()))+") *** Portal "+"FALHA AO EXCLUIR O Pedido!")
  916. lMsErroAuto:= .T.
  917. Endif
  918. If lMsErroAuto
  919. If !ExistDir(cDirErro)
  920. MakeDir(cDirErro)
  921. Endif
  922. cDirErro+=dtos(date())
  923. If !ExistDir(cDirErro)
  924. MakeDir(cDirErro)
  925. Endif
  926. //Grava o erro
  927. MostraErro(cDirErro,"erro_orcto_"+strtran(time(),":","")+".txt")
  928. cHtml:= "erro"
  929. Else
  930. SC5->(dbGoBottom())
  931. cHtml:= SC5->C5_NUM
  932. EndIf
  933. Web Extended End
  934. Return (cHTML)
  935. /*__________________________________________________________________________
  936. ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
  937. ¦¦+-----------------------------------------------------------------------+¦¦
  938. ¦¦¦Funçäo ¦ GetMCOrc ¦ Autor ¦ Anderson Zelenski ¦ Data ¦ 02.12.23 ¦¦¦
  939. ¦¦+----------+------------------------------------------------------------¦¦¦
  940. ¦¦¦Descriçäo ¦ Função para calcular a margem de contribuição do Pedido. ¦¦¦
  941. ¦¦+-----------------------------------------------------------------------+¦¦
  942. ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
  943. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
  944. User Function GetMCPed()
  945. Local cMargem := ""
  946. Local cQry := ""
  947. Local nMkt := 0
  948. Local nMktP := 0
  949. Local nMC := 0
  950. Local nMC_T := 0
  951. Local nMCTotIt := 0
  952. Local nCusto := 0
  953. Local nICMS := 0
  954. Local nComis2 := 0
  955. Local nComis3 := 0
  956. Local nPIS := 0
  957. Local nCofins := 0
  958. Local nComissao := 0
  959. Local nRT := 0
  960. Local nIPI := 0
  961. Local nFrete := 0
  962. Local nSubsTrb := 0
  963. Local nSubsCus := 0
  964. Local nST := 0
  965. Local nINSSP := 0
  966. Local nRecLiq := 0
  967. Local nMargemT := 0
  968. cQry:= "Select * From "+RetSqlName("SC6")+" SC6 "
  969. cQry+= "Inner Join "+RetSqlName("SB1")+" SB1 ON B1_FILIAL = '"+xFilial("SB1")+"' AND B1_COD = C6_PRODUTO AND SB1.D_E_L_E_T_ = ' ' "
  970. cQry+= "Where C6_FILIAL = '"+SC5->C5_FILIAL+"' "
  971. cQry+= "AND C6_NUM = '"+SC5->C5_NUM+"' "
  972. cQry+= "AND SC6.D_E_L_E_T_ = ' ' "
  973. If Select("TMP1") > 0
  974. TMP1->(dbCloseArea())
  975. Endif
  976. TcQuery cQry New Alias "TMP1"
  977. // passa por todos os itens do pedido
  978. While !TMP1->(EOF())
  979. nMkt := 0
  980. nCusto := TMP1->C6_CUSTO
  981. nICMS := TMP1->C6_ICMS
  982. nComis2 := TMP1->C6_COMIS1
  983. nComis3 := TMP1->C6_COMIS3
  984. nPIS := TMP1->C6_PIS
  985. nCofins := TMP1->C6_COFINS
  986. nComissao := TMP1->C6_COMISSA
  987. nRT := TMP1->C6_RT
  988. nIPI := TMP1->C6_IPI
  989. nFrete := TMP1->C6_FRETE
  990. nSubsTrb := TMP1->C6_SUBSTRB
  991. nSubsCus := TMP1->C6_SUBSCUS
  992. nST := TMP1->C6_ST
  993. nINSSP := TMP1->C6_INSSP
  994. // calcula receita liquida
  995. nRecLiq := TMP1->C6_VALOR - nICMS - nPIS - nCofins - nINSSP
  996. // se existe o campo de % do mkt
  997. If TMP1->(FieldPos("C6_MKTP")) > 0
  998. nMktP:= TMP1->C6_MKTP
  999. Endif
  1000. // se existe o campo de vlr de mkt
  1001. If TMP1->(FieldPos("C6_MKT")) > 0
  1002. nMkt:= TMP1->C6_MKT
  1003. Endif
  1004. // calcula o valor da margem
  1005. nMC:= ((TMP1->C6_VALOR - nCusto - nICMS - nPIS - nCofins - nFrete - nComissao - nINSSP - nRT - nMkt) + nSubsTrb + nSubsCus)
  1006. // Carrega as Variaveis Totalizador Pedido, Luminarias e Equipamentos.
  1007. If Alltrim(TMP1->B1_TIPO) == "CO" .AND. Alltrim(TMP1->B1_GRUPO) == "ELEV"
  1008. // soma a margem total
  1009. nMC_T := nMC_T + (TMP1->C6_VALOR * -1)
  1010. // soma o valor total
  1011. nMCTotIt := nMCTotIt + TMP1->C6_VALOR
  1012. Else
  1013. // se nao é do grupo pan e nao são acessorios de painel de led
  1014. If Alltrim(TMP1->B1_GRUPO) <> 'PAN' .and. !(AllTrim(TMP1->C6_PRODUTO) $ "ACS-LHT44BC/ACS-LHT44PT")
  1015. // soma a margem total
  1016. nMC_T := nMC_T + nMC
  1017. // soma o valor total
  1018. nMCTotIt := nMCTotIt + TMP1->C6_VALOR
  1019. EndIf
  1020. EndIf
  1021. TMP1->(dbSkip())
  1022. End
  1023. cMargem:= Transform(((nMC_T / nMCTotIt)*100),"@E 9999.99")
  1024. Return cMargem