LC_PE_A415LIOK.PRW 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711
  1. //---------------------------------------------------------------------
  2. // Ponto de Entrada: A415LIOK - Valida a linha (SCK) Orçamento
  3. // Não permite que o preço Unitario seja diferente do preço de tabela.
  4. // Valida a Margem de Contribuição dos itens do Orçamento.
  5. // Solicitante: Comercial.
  6. // Autor: Aytel M. Fonseca.
  7. // Data: 07/03/2014
  8. //---------------------------------------------------------------------
  9. #include "protheus.ch"
  10. #include "rwmake.ch"
  11. #include "TOTVS.CH"
  12. #include "topconn.ch"
  13. User Function A415LIOK()
  14. Local aArea := GetArea()
  15. Local cRet := .T.
  16. If Vazio(CJ_NROPOR) .and. !isblind()
  17. MsgStop("Não foi informada a oportunidade."+Chr(13)+"Para continuar use a função <Alt+L> e selecione uma oportunidade.","Erro !!!")
  18. Return(.F.)
  19. EndIf
  20. If TMP1->CK_PRCVEN <> TMP1->CK_PRUNIT .and. !isblind()
  21. ShowHelpDlg("Erro", {"Orçamento com desconto.",""},5,{"Verifique se o Preço Unitário é igual ao Preço de Lista." ,""},5)
  22. cRet := .F.
  23. Endif
  24. If (TMP1->CK_COMIS1+TMP1->CK_COMIS3) > POSICIONE("SB1",1,XFILIAL("SCJ")+TMP1->CK_PRODUTO,"B1_COMIS") .AND.;
  25. TMP1->CK_FLAG = .F. .and. !isblind() // Flag que testa se linha esta deletada. (.T. = Deletado)
  26. MsgStop("Somatório da comissão é superior a comissão cadastrada no produto."+Chr(13)+;
  27. "Orçamento: "+Transform((TMP1->CK_COMIS1+TMP1->CK_COMIS3),"@R 999.99")+"%"+Chr(13)+;
  28. "Produto: "+Transform(POSICIONE("SB1",1,XFILIAL("SCJ")+TMP1->CK_PRODUTO,"B1_COMIS"),"@R 999.99")+"%","Erro !!!")
  29. Return(.F.)
  30. EndIf
  31. //-------------------------------------------------------------
  32. // Politica de descontos Abalux - Fidelidade.
  33. // Solicitante: Comercial - Rosangela.
  34. // Autor: Fonseca.
  35. // Data : 27-04-2015.
  36. //-------------------------------------------------------------
  37. /* If cFilAnt = '05'
  38. TMP1->CK_PRCVEN := (TMP1->CK_PRTAB * ((100 - TMP1->CK_DESCONT) / 100))
  39. If (CJ_CONDPAG =='001' .OR. CJ_CONDPAG == '002')
  40. TMP1->CK_PRCVEN := (TMP1->CK_PRCVEN * 0.985)
  41. EndIf
  42. TMP1->CK_VALOR := (TMP1->CK_PRCVEN * TMP1->CK_QTDVEN)
  43. TMP1->CK_PRUNIT := (TMP1->CK_PRCVEN)
  44. TMP1->CK_DESCACM := (TMP1->CK_DESCONT)
  45. TMP1->CK_VLDSCAC := (TMP1->CK_PRTAB - TMP1->CK_PRCVEN)
  46. Calc_MC()
  47. If (__cUserID <> '000221' .AND. __cUserID <> '000342' .AND. __cUserID <> '000511' .AND. __cUserID <> '000000') // Fabiana; Rosangela; Thayla
  48. If Posicione("SB1",1,xFilial('SCK')+TMP1->CK_PRODUTO,"B1_GRUPO") <> 'REIL'
  49. If TMP1->CK_MCPERC < 20.000
  50. cRet := .F.
  51. MsgStop("Desconto Superior ao Permitido.","Erro !!!")
  52. EndIf
  53. EndIf
  54. EndIf
  55. RestArea(aArea)
  56. EndIf*/
  57. Calc_MC()
  58. RestArea(aArea)
  59. Return(cRet)
  60. /* RETIRADO EM 18.12.2019
  61. Static Function CalcFidel()
  62. Local cDescFxa := 0
  63. Local cDescMais := 1
  64. Local cValTri := 0
  65. Local cTotPed := 0
  66. Local cTrocaFx := '2'
  67. Local cVoltaIt := 0
  68. If Select("QRY") > 0
  69. dbSelectArea("QRY")
  70. dbCloseArea("QRY")
  71. Endif
  72. cQuery := "SELECT ZU_CLASFID,ZU_VALOR FROM " + RetSQLName("SZU") + " WHERE D_E_L_E_T_ = ' ' AND "
  73. cQuery += "ZU_CODIGO = '" + Trim(M->CJ_CLIENTE) + "' ORDER BY ZU_ANO DESC, ZU_TRIMEST DESC"
  74. TcQuery cQuery New Alias "QRY"
  75. cValTri := QRY->ZU_VALOR
  76. If QRY->ZU_CLASFID = 'VIP'
  77. cDescMais := ((100 - 1) / 100)
  78. ElseIf QRY->ZU_CLASFID = 'PLUS'
  79. cDescMais := ((100 - 2) / 100)
  80. ElseIf QRY->ZU_CLASFID = 'PREMIUM'
  81. cDescMais := ((100 - 3) / 100)
  82. ElseIf QRY->ZU_CLASFID = 'TOP'
  83. cDescMais := ((100 - 4) / 100)
  84. ElseIf QRY->ZU_CLASFID = 'OURO'
  85. cDescMais := ((100 - 5) / 100)
  86. EndIf
  87. If Select("QRY") > 0
  88. dbSelectArea("QRY")
  89. dbCloseArea("QRY")
  90. Endif
  91. cQuery := "SELECT ZS_PERDESL, ZS_TETOPED FROM " + RetSQLName("SZS") + ", " + RetSQLName("SZT") + " WHERE "
  92. cQuery += "ZT_CODIGO = ZS_CODIGO AND ZT_FILIAL = ZS_FILIAL AND ZS_FXINI <= " + Str(cValTri) + " AND "
  93. cQuery += "ZS_FXFIM >= " + Str(cValTri) + " AND ZT_DTFIM >= '" + DToS(DDataBase) + "' AND ZS_FILIAL = '" + Trim(cFilAnt) + "' AND "
  94. cQuery += RetSQLName("SZS") + ".D_E_L_E_T_ = ' ' AND " + RetSQLName("SZT") + ".D_E_L_E_T_ = ' ' "
  95. TcQuery cQuery New Alias "QRY"
  96. cDescFxa := ((100 - QRY->ZS_PERDESL) / 100)
  97. // Calcula o Total do Orçamento.
  98. cVoltaIT := TMP1->CK_ITEM
  99. TMP1->(dbGoTop())
  100. While TMP1->(!EOF())
  101. If TMP1->CK_FLAG = .T. // Flag que testa se linha esta deletada. (.T. = Deletado)
  102. TMP1->(dbSkip())
  103. Loop
  104. EndIf
  105. // cTotPed := cTotPed + TMP1->CK_VALOR
  106. cTotPed := cTotPed + (TMP1->CK_PRTAB * TMP1->CK_QTDVEN)
  107. TMP1->(dbSkip())
  108. EndDo
  109. TMP1->(dbGoTop())
  110. While TMP1->CK_ITEM <> cVoltaIT
  111. TMP1->(dbSkip())
  112. EndDo
  113. If cTotPed >= 1200 .AND. cTotPed < 2500
  114. If Select("QRY3") > 0
  115. dbSelectArea("QRY3")
  116. dbCloseArea("QRY3")
  117. Endif
  118. cQuery := "SELECT ZS_TETOPED, ZS_PERDESL FROM SZS010, SZT010 WHERE ZT_CODIGO = ZS_CODIGO AND ZT_FILIAL = ZS_FILIAL AND "
  119. cQuery += "ZT_DTFIM >= '" + DToS(DDataBase) + "' AND ZS_TETOPED >= 1200 AND ZS_TETOPED < 2500 AND ZS_FILIAL = '05' AND "
  120. cQuery += " SZS010.D_E_L_E_T_ = ' ' AND SZT010.D_E_L_E_T_ = ' ' ORDER BY ZS_TETOPED"
  121. TcQuery cQuery New Alias "QRY3"
  122. If QRY3->ZS_PERDESL > QRY->ZS_PERDESL
  123. cDescFxa := ((100 - QRY3->ZS_PERDESL) / 100)
  124. cTrocaFx := '1'
  125. EndIf
  126. ElseIf cTotPed >= 2500 .AND. cTotPed < 4000
  127. If Select("QRY3") > 0
  128. dbSelectArea("QRY3")
  129. dbCloseArea("QRY3")
  130. Endif
  131. cQuery := "SELECT ZS_TETOPED, ZS_PERDESL FROM SZS010, SZT010 WHERE ZT_CODIGO = ZS_CODIGO AND ZT_FILIAL = ZS_FILIAL AND "
  132. cQuery += "ZT_DTFIM >= '" + DToS(DDataBase) + "' AND ZS_TETOPED >= 2500 AND ZS_TETOPED < 4000 AND ZS_FILIAL = '05' AND "
  133. cQuery += " SZS010.D_E_L_E_T_ = ' ' AND SZT010.D_E_L_E_T_ = ' ' ORDER BY ZS_TETOPED"
  134. TcQuery cQuery New Alias "QRY3"
  135. If QRY3->ZS_PERDESL > QRY->ZS_PERDESL
  136. cDescFxa := ((100 - QRY3->ZS_PERDESL) / 100)
  137. cTrocaFx := '1'
  138. EndIf
  139. ElseIf cTotPed >= 4000 .AND. cTotPed < 6000
  140. If Select("QRY3") > 0
  141. dbSelectArea("QRY3")
  142. dbCloseArea("QRY3")
  143. Endif
  144. cQuery := "SELECT ZS_TETOPED, ZS_PERDESL FROM SZS010, SZT010 WHERE ZT_CODIGO = ZS_CODIGO AND ZT_FILIAL = ZS_FILIAL AND "
  145. cQuery += "ZT_DTFIM >= '" + DToS(DDataBase) + "' AND ZS_TETOPED >= 4000 AND ZS_TETOPED < 6000 AND ZS_FILIAL = '05' AND "
  146. cQuery += " SZS010.D_E_L_E_T_ = ' ' AND SZT010.D_E_L_E_T_ = ' ' ORDER BY ZS_TETOPED"
  147. TcQuery cQuery New Alias "QRY3"
  148. If QRY3->ZS_PERDESL > QRY->ZS_PERDESL
  149. cDescFxa := ((100 - QRY3->ZS_PERDESL) / 100)
  150. cTrocaFx := '1'
  151. EndIf
  152. ElseIf cTotPed >= 6000 .AND. cTotPed < 7000
  153. If Select("QRY3") > 0
  154. dbSelectArea("QRY3")
  155. dbCloseArea("QRY3")
  156. Endif
  157. cQuery := "SELECT ZS_TETOPED, ZS_PERDESL FROM SZS010, SZT010 WHERE ZT_CODIGO = ZS_CODIGO AND ZT_FILIAL = ZS_FILIAL AND "
  158. cQuery += "ZT_DTFIM >= '" + DToS(DDataBase) + "' AND ZS_TETOPED >= 6000 AND ZS_TETOPED < 7000 AND ZS_FILIAL = '05' AND "
  159. cQuery += " SZS010.D_E_L_E_T_ = ' ' AND SZT010.D_E_L_E_T_ = ' ' ORDER BY ZS_TETOPED"
  160. TcQuery cQuery New Alias "QRY3"
  161. If QRY3->ZS_PERDESL > QRY->ZS_PERDESL
  162. cDescFxa := ((100 - QRY3->ZS_PERDESL) / 100)
  163. cTrocaFx := '1'
  164. EndIf
  165. ElseIf cTotPed >= 7000 .AND. cTotPed < 11000
  166. If Select("QRY3") > 0
  167. dbSelectArea("QRY3")
  168. dbCloseArea("QRY3")
  169. Endif
  170. cQuery := "SELECT ZS_TETOPED, ZS_PERDESL FROM SZS010, SZT010 WHERE ZT_CODIGO = ZS_CODIGO AND ZT_FILIAL = ZS_FILIAL AND "
  171. cQuery += "ZT_DTFIM >= '" + DToS(DDataBase) + "' AND ZS_TETOPED >= 7000 AND ZS_TETOPED < 11000 AND ZS_FILIAL = '05' AND "
  172. cQuery += " SZS010.D_E_L_E_T_ = ' ' AND SZT010.D_E_L_E_T_ = ' ' ORDER BY ZS_TETOPED"
  173. TcQuery cQuery New Alias "QRY3"
  174. If QRY3->ZS_PERDESL > QRY->ZS_PERDESL
  175. cDescFxa := ((100 - QRY3->ZS_PERDESL) / 100)
  176. cTrocaFx := '1'
  177. EndIf
  178. ElseIf cTotPed >= 11000
  179. If Select("QRY3") > 0
  180. dbSelectArea("QRY3")
  181. dbCloseArea("QRY3")
  182. Endif
  183. cQuery := "SELECT ZS_TETOPED, ZS_PERDESL FROM SZS010, SZT010 WHERE ZT_CODIGO = ZS_CODIGO AND ZT_FILIAL = ZS_FILIAL AND "
  184. cQuery += "ZT_DTFIM >= '" + DToS(DDataBase) + "' AND ZS_TETOPED >= 11000 AND ZS_FILIAL = '05' AND "
  185. cQuery += " SZS010.D_E_L_E_T_ = ' ' AND SZT010.D_E_L_E_T_ = ' ' ORDER BY ZS_TETOPED"
  186. TcQuery cQuery New Alias "QRY3"
  187. If QRY3->ZS_PERDESL > QRY->ZS_PERDESL
  188. cDescFxa := ((100 - QRY3->ZS_PERDESL) / 100)
  189. cTrocaFx := '1'
  190. EndIf
  191. EndIf
  192. // -----------------------------------------------
  193. // Se Condição Pagamento for A Vista - Reduz 1,5%
  194. // -----------------------------------------------
  195. If (M->CJ_CONDPAG == '001' .OR. M->CJ_CONDPAG == '002') // A Vista
  196. TMP1->CK_PRCVEN := Round((((TMP1->CK_PRTAB * cDescFxa) * cDescMais) * 0.985),2)
  197. TMP1->CK_VALOR := Round((TMP1->CK_PRCVEN * TMP1->CK_QTDVEN),2)
  198. TMP1->CK_PRUNIT := Round((((TMP1->CK_PRTAB * cDescFxa) * cDescMais) * 0.985),2)
  199. // ---------------------------------------------------------------------------------------------
  200. // Se PV não for HomeCenter e Produto for Linha BR e Comissão for de 3% - Gera desconto de 2.5%
  201. // ---------------------------------------------------------------------------------------------
  202. If M->CJ_HOMECEN = 'N'
  203. If M->CJ_VEND4 = ' '
  204. If Substr(TMP1->CK_PRODUTO,1,2) == "BR" .AND. TMP1->CK_COMIS1 = 3.00
  205. TMP1->CK_PRCVEN := Round(((((TMP1->CK_PRTAB * cDescFxa) * cDescMais) * 0.985) * 0.975),2)
  206. TMP1->CK_VALOR := Round((TMP1->CK_PRCVEN * TMP1->CK_QTDVEN),2)
  207. TMP1->CK_PRUNIT := Round(((((TMP1->CK_PRTAB * cDescFxa) * cDescMais) * 0.985) * 0.975),2)
  208. EndIf
  209. // ---------------------------------------------------------------------------------------------------------
  210. // Se Produto NAO for Relamp, Rereat, Releds ou da Linha BR - Se Comissão for de 4% - Gera desconto de 2.5%
  211. // - Se Comissão for de 3% - Gera desconto de 5.0%
  212. // ---------------------------------------------------------------------------------------------------------
  213. If (Substr(TMP1->CK_PRODUTO,1,6) <> "REREAT" .AND.;
  214. Substr(TMP1->CK_PRODUTO,1,6) <> "RELAMP" .AND.;
  215. Substr(TMP1->CK_PRODUTO,1,6) <> "RELEDS")
  216. If Substr(TMP1->CK_PRODUTO,1,2) <> "BR"
  217. If TMP1->CK_COMIS1 = 4.00
  218. TMP1->CK_PRCVEN := Round(((((TMP1->CK_PRTAB * cDescFxa) * cDescMais) * 0.985) * 0.975),2)
  219. TMP1->CK_VALOR := Round((TMP1->CK_PRCVEN * TMP1->CK_QTDVEN),2)
  220. TMP1->CK_PRUNIT := Round(((((TMP1->CK_PRTAB * cDescFxa) * cDescMais) * 0.985) * 0.975),2)
  221. ElseIf TMP1->CK_COMIS1 = 3.00
  222. TMP1->CK_PRCVEN := Round(((((TMP1->CK_PRTAB * cDescFxa) * cDescMais) * 0.985) * 0.950),2)
  223. TMP1->CK_VALOR := Round((TMP1->CK_PRCVEN * TMP1->CK_QTDVEN),2)
  224. TMP1->CK_PRUNIT := Round(((((TMP1->CK_PRTAB * cDescFxa) * cDescMais) * 0.985) * 0.950),2)
  225. EndIf
  226. EndIf
  227. EndIf
  228. EndIf
  229. EndIf
  230. Else // Nao é A Vista
  231. TMP1->CK_PRCVEN := Round(((TMP1->CK_PRTAB * cDescFxa) * cDescMais),2)
  232. TMP1->CK_VALOR := Round((TMP1->CK_PRCVEN * TMP1->CK_QTDVEN),2)
  233. TMP1->CK_PRUNIT := Round(((TMP1->CK_PRTAB * cDescFxa) * cDescMais),2)
  234. // --------------------------------------------------------------------------------------------
  235. // Se PV não for HomeCenter e Produto for Linha BR e Comissão for de 3% - Gera desconto de 2.5%
  236. // --------------------------------------------------------------------------------------------
  237. If M->CJ_HOMECEN = 'N'
  238. If M->CJ_VEND4 = ' '
  239. If Substr(TMP1->CK_PRODUTO,1,2) == "BR" .AND. TMP1->CK_COMIS1 = 3.00
  240. TMP1->CK_PRCVEN := Round((((TMP1->CK_PRTAB * cDescFxa) * cDescMais) * 0.975),2)
  241. TMP1->CK_VALOR := Round((TMP1->CK_PRCVEN * TMP1->CK_QTDVEN),2)
  242. TMP1->CK_PRUNIT := Round((((TMP1->CK_PRTAB * cDescFxa) * cDescMais) * 0.975),2)
  243. EndIf
  244. // ---------------------------------------------------------------------------------------------------------
  245. // Se Produto NAO for Relamp, Rereat, Releds ou da Linha BR - Se Comissão for de 4% - Gera desconto de 2.5%
  246. // - Se Comissão for de 3% - Gera desconto de 5.0%
  247. // ---------------------------------------------------------------------------------------------------------
  248. If (Substr(TMP1->CK_PRODUTO,1,6) <> "REREAT" .AND.;
  249. Substr(TMP1->CK_PRODUTO,1,6) <> "RELAMP" .AND.;
  250. Substr(TMP1->CK_PRODUTO,1,6) <> "RELEDS")
  251. If Substr(TMP1->CK_PRODUTO,1,2) <> "BR"
  252. If TMP1->CK_COMIS1 = 4.00
  253. TMP1->CK_PRCVEN := Round((((TMP1->CK_PRTAB * cDescFxa) * cDescMais) * 0.975),2)
  254. TMP1->CK_VALOR := Round((TMP1->CK_PRCVEN * TMP1->CK_QTDVEN),2)
  255. TMP1->CK_PRUNIT := Round((((TMP1->CK_PRTAB * cDescFxa) * cDescMais) * 0.975),2)
  256. ElseIf TMP1->CK_COMIS1 = 3.00
  257. TMP1->CK_PRCVEN := Round((((TMP1->CK_PRTAB * cDescFxa) * cDescMais) * 0.950),2)
  258. TMP1->CK_VALOR := Round((TMP1->CK_PRCVEN * TMP1->CK_QTDVEN),2)
  259. TMP1->CK_PRUNIT := Round((((TMP1->CK_PRTAB * cDescFxa) * cDescMais) * 0.950),2)
  260. EndIf
  261. EndIf
  262. EndIf
  263. EndIf
  264. EndIf
  265. EndIf
  266. If Posicione("SB1",1,xFilial('SCJ')+TMP1->CK_PRODUTO,"B1_GRUPO") == 'REIL'
  267. If (M->CJ_CONDPAG == '001' .OR. M->CJ_CONDPAG == '002') // A Vista
  268. TMP1->CK_PRCVEN := Round((((TMP1->CK_PRTAB * cDescFxa) * cDescMais) * 0.985),2)
  269. TMP1->CK_VALOR := Round((TMP1->CK_PRCVEN * TMP1->CK_QTDVEN),2)
  270. TMP1->CK_PRUNIT := Round((((TMP1->CK_PRTAB * cDescFxa) * cDescMais) * 0.985),2)
  271. TMP1->CK_COMIS1 := 5.00
  272. Else
  273. TMP1->CK_PRCVEN := Round(((TMP1->CK_PRTAB * cDescFxa) * cDescMais),2)
  274. TMP1->CK_VALOR := Round((TMP1->CK_PRCVEN * TMP1->CK_QTDVEN),2)
  275. TMP1->CK_PRUNIT := Round(((TMP1->CK_PRTAB * cDescFxa) * cDescMais),2)
  276. TMP1->CK_COMIS1 := 5.00
  277. EndIf
  278. EndIf
  279. If cTrocaFx = '1' .AND. M->CJ_TROCAFX = '2'
  280. If MsgYesNo("Mudou a Faixa do Desconto Progressivo." +Chr(13)+;
  281. "Navegue por todas as linhas do pedido " +Chr(13)+;
  282. "para efetuar o novo cálculo do desconto." +Chr(13)+Chr(13)+;
  283. "Deseja manter o alerta ?","*** ATENÇÃO ***") = .F.
  284. M->CJ_TROCAFX := '1'
  285. EndIf
  286. EndIf
  287. Return
  288. */
  289. //-------------------------------------
  290. // Calculo do Show Room.
  291. // Solicitante: Comercial - Rosangela.
  292. // Autor: Fonseca.
  293. // Data : 03-02-2015
  294. //-------------------------------------
  295. /* RETIRADO EM 18.12.2019
  296. Static Function CalcSRoom()
  297. TMP1->CK_PRCVEN := Round((TMP1->CK_PRTAB/2),2)
  298. TMP1->CK_VALOR := Round((TMP1->CK_PRCVEN * TMP1->CK_QTDVEN),2)
  299. TMP1->CK_PRUNIT := Round((TMP1->CK_PRTAB/2),2)
  300. Return
  301. Static Function CalcLD_04()
  302. //-----------------------------------
  303. // Loja Design - Desconto de 17,065%
  304. //-----------------------------------
  305. If (M->CJ_CONDPAG == '001' .OR. M->CJ_CONDPAG == '002') // A Vista + 1,5%
  306. TMP1->CK_PRCVEN := Round(((TMP1->CK_PRTAB * 0.82935) * 0.9850),2)
  307. TMP1->CK_VALOR := Round((TMP1->CK_PRCVEN * TMP1->CK_QTDVEN),2)
  308. TMP1->CK_PRUNIT := Round(((TMP1->CK_PRTAB * 0.82935) * 0.9850),2)
  309. Else
  310. TMP1->CK_PRCVEN := Round((TMP1->CK_PRTAB * 0.82935),2)
  311. TMP1->CK_VALOR := Round((TMP1->CK_PRCVEN * TMP1->CK_QTDVEN),2)
  312. TMP1->CK_PRUNIT := Round((TMP1->CK_PRTAB * 0.82935),2)
  313. EndIf
  314. Return()
  315. Static Function CalcLD_38()
  316. //-----------------------------------
  317. // Loja Design - Desconto de 12,70%
  318. //-----------------------------------
  319. If (M->CJ_CONDPAG == '001' .OR. M->CJ_CONDPAG == '002') // A Vista + 1,5%
  320. TMP1->CK_PRCVEN := Round(((TMP1->CK_PRTAB * 0.87300) * 0.9850),2)
  321. TMP1->CK_VALOR := Round((TMP1->CK_PRCVEN * TMP1->CK_QTDVEN),2)
  322. TMP1->CK_PRUNIT := Round(((TMP1->CK_PRTAB * 0.87300) * 0.9850),2)
  323. Else
  324. TMP1->CK_PRCVEN := Round((TMP1->CK_PRTAB * 0.87300),2)
  325. TMP1->CK_VALOR := Round((TMP1->CK_PRCVEN * TMP1->CK_QTDVEN),2)
  326. TMP1->CK_PRUNIT := Round((TMP1->CK_PRTAB * 0.87300),2)
  327. EndIf
  328. Return()
  329. Static Function CalcLD_39()
  330. //-----------------------------------
  331. // Loja Design - Desconto de 7,00%
  332. //-----------------------------------
  333. If (M->CJ_CONDPAG == '001' .OR. M->CJ_CONDPAG == '002') // A Vista + 1,5%
  334. TMP1->CK_PRCVEN := Round(((TMP1->CK_PRTAB * 0.93000) * 0.9850),2)
  335. TMP1->CK_VALOR := Round((TMP1->CK_PRCVEN * TMP1->CK_QTDVEN),2)
  336. TMP1->CK_PRUNIT := Round(((TMP1->CK_PRTAB * 0.93000) * 0.9850),2)
  337. Else
  338. TMP1->CK_PRCVEN := Round((TMP1->CK_PRTAB * 0.93000),2)
  339. TMP1->CK_VALOR := Round((TMP1->CK_PRCVEN * TMP1->CK_QTDVEN),2)
  340. TMP1->CK_PRUNIT := Round((TMP1->CK_PRTAB * 0.93000),2)
  341. EndIf
  342. Return()
  343. Static Function CalcLD_40()
  344. //-----------------------------------
  345. // Loja Design - Desconto de 5,00%
  346. //-----------------------------------
  347. If (M->CJ_CONDPAG == '001' .OR. M->CJ_CONDPAG == '002') // A Vista + 1,5%
  348. TMP1->CK_PRCVEN := Round(((TMP1->CK_PRTAB * 0.95000) * 0.9850),2)
  349. TMP1->CK_VALOR := Round((TMP1->CK_PRCVEN * TMP1->CK_QTDVEN),2)
  350. TMP1->CK_PRUNIT := Round(((TMP1->CK_PRTAB * 0.95000) * 0.9850),2)
  351. Else
  352. TMP1->CK_PRCVEN := Round((TMP1->CK_PRTAB * 0.95000),2)
  353. TMP1->CK_VALOR := Round((TMP1->CK_PRCVEN * TMP1->CK_QTDVEN),2)
  354. TMP1->CK_PRUNIT := Round((TMP1->CK_PRTAB * 0.95000),2)
  355. EndIf
  356. Return()
  357. Static Function CalcLD_43()
  358. //-----------------------------------
  359. // Projeto MC - Desconto de 17,065%
  360. //-----------------------------------
  361. If (M->CJ_CONDPAG == '001' .OR. M->CJ_CONDPAG == '002') // A Vista + 1,5%
  362. TMP1->CK_PRCVEN := Round(((TMP1->CK_PRTAB * 0.82935) * 0.9850),2)
  363. TMP1->CK_VALOR := Round((TMP1->CK_PRCVEN * TMP1->CK_QTDVEN),2)
  364. TMP1->CK_PRUNIT := Round(((TMP1->CK_PRTAB * 0.82935) * 0.9850),2)
  365. Else
  366. TMP1->CK_PRCVEN := Round((TMP1->CK_PRTAB * 0.82935),2)
  367. TMP1->CK_VALOR := Round((TMP1->CK_PRCVEN * TMP1->CK_QTDVEN),2)
  368. TMP1->CK_PRUNIT := Round((TMP1->CK_PRTAB * 0.82935),2)
  369. EndIf
  370. Return()*/
  371. /* RETIRADO EM 18.12.2019
  372. Static Function CalDistr()
  373. // -----------------------------------------
  374. // Testa Linha A, C e E - Desconto de 21,43%
  375. // -----------------------------------------
  376. If Select("QRY4") > 0
  377. dbSelectArea("QRY4")
  378. dbCloseArea("QRY4")
  379. Endif
  380. cQuery := "SELECT B1_COD FROM SB1010 WHERE D_E_L_E_T_ = ' ' AND B1_FILIAL = '05' AND B1_MSBLQL <> '1' AND "
  381. cQuery += "B1_GRUPO IN ('C','F') AND SUBSTR(B1_COD,1,1) IN ('A','C','E') AND B1_COD = '" + TMP1->CK_PRODUTO + "'"
  382. TcQuery cQuery New Alias "QRY4"
  383. If QRY4->(!EOF()) // Pertence a Linha A,C e E - Desconto de 21,43%
  384. If (M->CJ_CONDPAG == '001' .OR. M->CJ_CONDPAG == '002') // A Vista + 1,5%
  385. TMP1->CK_PRCVEN := Round(((TMP1->CK_PRTAB * 0.7857) * 0.9850),2)
  386. TMP1->CK_VALOR := Round((TMP1->CK_PRCVEN * TMP1->CK_QTDVEN),2)
  387. TMP1->CK_PRUNIT := Round(((TMP1->CK_PRTAB * 0.7857) * 0.9850),2)
  388. Else
  389. TMP1->CK_PRCVEN := Round((TMP1->CK_PRTAB * 0.7857),2)
  390. TMP1->CK_VALOR := Round((TMP1->CK_PRCVEN * TMP1->CK_QTDVEN),2)
  391. TMP1->CK_PRUNIT := Round((TMP1->CK_PRTAB * 0.7857),2)
  392. EndIf
  393. TMP1->CK_COMIS1 := 3.00
  394. Return()
  395. EndIf
  396. // -----------------------------------------------------------------------
  397. // Testa Linha AR-PF-PJ-EX-BZ-LEX-WW-PD-JD-EF-SR-ES - Desconto de 12,70%
  398. // -----------------------------------------------------------------------
  399. If Select("QRY4") > 0
  400. dbSelectArea("QRY4")
  401. dbCloseArea("QRY4")
  402. Endif
  403. cQuery := "SELECT B1_COD FROM SB1010 WHERE D_E_L_E_T_ = ' ' AND B1_FILIAL = '05' AND B1_MSBLQL <> '1' AND "
  404. cQuery += "B1_GRUPO IN ('DEC','LEDD','LEDT','TEC') AND B1_TIPO <> 'PI' AND B1_COD = '" + TMP1->CK_PRODUTO + "'"
  405. TcQuery cQuery New Alias "QRY4"
  406. If QRY4->(!EOF()) // Pertence a Linha AR-PF-PJ-EX-BZ-LEX-WW-PD-JD-EF-SR-ES - Desconto de 12,70%
  407. If (M->CJ_CONDPAG == '001' .OR. M->CJ_CONDPAG == '002') // A Vista + 1,5%
  408. TMP1->CK_PRCVEN := Round(((TMP1->CK_PRTAB * 0.8730) * 0.9850),2)
  409. TMP1->CK_VALOR := Round((TMP1->CK_PRCVEN * TMP1->CK_QTDVEN),2)
  410. TMP1->CK_PRUNIT := Round(((TMP1->CK_PRTAB * 0.8730) * 0.9850),2)
  411. Else
  412. TMP1->CK_PRCVEN := Round((TMP1->CK_PRTAB * 0.8730),2)
  413. TMP1->CK_VALOR := Round((TMP1->CK_PRCVEN * TMP1->CK_QTDVEN),2)
  414. TMP1->CK_PRUNIT := Round((TMP1->CK_PRTAB * 0.8730),2)
  415. EndIf
  416. TMP1->CK_COMIS1 := 5.00
  417. Return()
  418. EndIf
  419. // Distribuidor - Linha BR - Com comissao de 3%
  420. If Substr(TMP1->CK_PRODUTO,1,2) = "BR"
  421. If TMP1->CK_COMIS1 = 3.00 // + 2,5%
  422. If (M->CJ_CONDPAG == '001' .OR. M->CJ_CONDPAG == '002') // A Vista + 1,5%
  423. TMP1->CK_PRCVEN := Round((((TMP1->CK_PRTAB * 0.8730) * 0.9750) * 0.9850),2)
  424. TMP1->CK_VALOR := Round((TMP1->CK_PRCVEN * TMP1->CK_QTDVEN),2)
  425. TMP1->CK_PRUNIT := Round((((TMP1->CK_PRTAB * 0.8730) * 0.9750) * 0.9850),2)
  426. Else
  427. TMP1->CK_PRCVEN := Round(((TMP1->CK_PRTAB * 0.8730) * 0.9750),2)
  428. TMP1->CK_VALOR := Round((TMP1->CK_PRCVEN * TMP1->CK_QTDVEN),2)
  429. TMP1->CK_PRUNIT := Round(((TMP1->CK_PRTAB * 0.8730) * 0.9750),2)
  430. EndIf
  431. Else
  432. If (M->CJ_CONDPAG == '001' .OR. M->CJ_CONDPAG == '002') // A Vista + 1,5%
  433. TMP1->CK_PRCVEN := Round(((TMP1->CK_PRTAB * 0.8730) * 0.9850),2)
  434. TMP1->CK_VALOR := Round((TMP1->CK_PRCVEN * TMP1->CK_QTDVEN),2)
  435. TMP1->CK_PRUNIT := Round(((TMP1->CK_PRTAB * 0.8730) * 0.9850),2)
  436. Else
  437. TMP1->CK_PRCVEN := Round((TMP1->CK_PRTAB * 0.8730),2)
  438. TMP1->CK_VALOR := Round((TMP1->CK_PRCVEN * TMP1->CK_QTDVEN),2)
  439. TMP1->CK_PRUNIT := Round((TMP1->CK_PRTAB * 0.8730),2)
  440. EndIf
  441. EndIf
  442. Return()
  443. EndIf
  444. // Outros Produtos. Desconto de 12.70%
  445. If (M->CJ_CONDPAG == '001' .OR. M->CJ_CONDPAG == '002') // A Vista + 1,5%
  446. TMP1->CK_PRCVEN := Round(((TMP1->CK_PRTAB * 0.8730) * 0.9850),2)
  447. TMP1->CK_VALOR := Round((TMP1->CK_PRCVEN * TMP1->CK_QTDVEN),2)
  448. TMP1->CK_PRUNIT := Round(((TMP1->CK_PRTAB * 0.8730) * 0.9850),2)
  449. If TMP1->CK_COMIS1 = 4.00 // + 2,50%
  450. TMP1->CK_PRCVEN := Round((((TMP1->CK_PRTAB * 0.8730) * 0.9750) * 0.9850),2)
  451. TMP1->CK_VALOR := Round((TMP1->CK_PRCVEN * TMP1->CK_QTDVEN),2)
  452. TMP1->CK_PRUNIT := Round((((TMP1->CK_PRTAB * 0.8730) * 0.9750) * 0.9850),2)
  453. ElseIf TMP1->CK_COMIS1 = 3.00 // + 5,00%
  454. TMP1->CK_PRCVEN := Round((((TMP1->CK_PRTAB * 0.8730) * 0.9500) * 0.9850),2)
  455. TMP1->CK_VALOR := Round((TMP1->CK_PRCVEN * TMP1->CK_QTDVEN),2)
  456. TMP1->CK_PRUNIT := Round((((TMP1->CK_PRTAB * 0.8730) * 0.9500) * 0.9850),2)
  457. EndIf
  458. Else
  459. TMP1->CK_PRCVEN := Round((TMP1->CK_PRTAB * 0.8730),2)
  460. TMP1->CK_VALOR := Round((TMP1->CK_PRCVEN * TMP1->CK_QTDVEN),2)
  461. TMP1->CK_PRUNIT := Round((TMP1->CK_PRTAB * 0.8730),2)
  462. If TMP1->CK_COMIS1 = 4.00 // + 2,50%
  463. TMP1->CK_PRCVEN := Round(((TMP1->CK_PRTAB * 0.8730) * 0.9750),2)
  464. TMP1->CK_VALOR := Round((TMP1->CK_PRCVEN * TMP1->CK_QTDVEN),2)
  465. TMP1->CK_PRUNIT := Round(((TMP1->CK_PRTAB * 0.8730) * 0.9750),2)
  466. ElseIf TMP1->CK_COMIS1 = 3.00 // + 5,00%
  467. TMP1->CK_PRCVEN := Round(((TMP1->CK_PRTAB * 0.8730) * 0.9500),2)
  468. TMP1->CK_VALOR := Round((TMP1->CK_PRCVEN * TMP1->CK_QTDVEN),2)
  469. TMP1->CK_VALOR := Round(((TMP1->CK_PRTAB * 0.8730) * 0.9500),2)
  470. EndIf
  471. EndIf
  472. Return()*/
  473. /*
  474. Static Function LedT()
  475. If Substr(TMP1->CK_PRODUTO,1,4) = 'LEDT' // Ajuste Temporario para lançãmento da Linha de Produto - Solicitado por Rosangela e Fabi em 02-03-2016.
  476. TMP1->CK_COMIS1 := 6.00
  477. EndIf
  478. Return()
  479. */
  480. /*
  481. Static Function CalComisDif()
  482. // Ajuste Temporario - Solicitado por Fabi em 25-07-2017.
  483. If Select("QRY_10") > 0
  484. dbSelectArea("QRY_10")
  485. dbCloseArea("QRY_10")
  486. Endif
  487. cQuery := "SELECT B1_COD FROM SB1010 WHERE D_E_L_E_T_ = ' ' AND B1_FILIAL = '05' AND B1_COD "
  488. cQuery += "IN ('LEDT13-3K','LEDT13-6K','LEDT14-3K','LEDT14-6K','LEDT15-3K','LEDT15-6K','LEDT16-3K','LEDT16-6K','LEDT17-3K','LEDT17-6K','LEDT18-3K','LEDT18-6K',"
  489. cQuery += "'LEDT19-3K','LEDT19-6K','LEDT20-3K','LEDT20-6K','LEDT21-3K','LEDT21-6K','LEDT22-3K','LEDT22-6K','LEDT23-3K','LEDT23-6K','LEDT24-3K','LEDT24-6K',"
  490. cQuery += "'LEDT25-6K','LEDT26-6K','LEDT27-6K','LEDC66-4K','LEDC66-6K')"
  491. TcQuery cQuery New Alias "QRY_10"
  492. While QRY_10->(!EOF())
  493. If QRY_10->B1_COD = TMP1->CK_PRODUTO
  494. TMP1->CK_COMIS1 := 6.50
  495. EndIf
  496. QRY_10->(DbSkip())
  497. EndDo
  498. Return()*/
  499. Static Function Calc_MC()
  500. Local cCusto := 0
  501. Local cAliqIPI := 0
  502. Local cICMS := 0
  503. Local cPIS := 0
  504. Local cCofins := 0
  505. Local cComissao := 0
  506. Local cComis2 := 0
  507. Local cComis3 := 0
  508. Local cFrete := 0
  509. Local cRT := 0
  510. Local cIPI := 0
  511. Local cFCP := 0
  512. Local cGrupoTri := 0
  513. Local cINSSP := 0
  514. Local cRecLiq := 0
  515. Local cSubsTrb := 0
  516. Local cSubsCus := 0
  517. Local cMC := 0
  518. Local __cPerST := 0
  519. Local __cST := 0
  520. // Projeto ELEV.
  521. /* If TMP1->CK_TIPOPRO = 'CO' .AND. POSICIONE("SB1",1,xFilial("SB1")+TMP1->CK_PRODUTO,"B1_GRUPO") == "ELEV"
  522. TMP1->CK_CUSTO = TMP1->CK_VALOR
  523. TMP1->CK_ICMS = 0
  524. TMP1->CK_PIS = 0
  525. TMP1->CK_COFINS = 0
  526. TMP1->CK_COMISSA = 0
  527. TMP1->CK_FRETE = 0
  528. TMP1->CK_RT = 0
  529. TMP1->CK_IPI = 0
  530. TMP1->CK_ST = 0
  531. TMP1->CK_MCPERST = 0
  532. TMP1->CK_INSSP = 0
  533. TMP1->CK_CARICMS = 0
  534. TMP1->CK_MC = (TMP1->CK_VALOR * -1)
  535. TMP1->CK_MCPERC = (((TMP1->CK_VALOR * -1) / TMP1->CK_VALOR) * 100)
  536. TMP1->CK_COMIS1 = 0
  537. TMP1->CK_COMIS3 = 0
  538. TMP1->CK_RECLIQ = 0
  539. Return()
  540. EndIf*/
  541. // Buscar o Custo Medio ou Custo Standart, Aliquota do IPI
  542. If Select("QRY1") > 0
  543. dbSelectArea("QRY1")
  544. dbCloseArea("QRY1")
  545. Endif
  546. cQuery1 := "SELECT B1_CUSTD,B1_IPI,B1_GRTRIB,B1_TIPO,B1_GRUPO FROM " + RetSQLName("SB1") + " WHERE B1_FILIAL = '" + xFilial("SB1") + "' AND "
  547. cQuery1 += "B1_COD = '" + TMP1->CK_PRODUTO + "' AND "
  548. cQuery1 += RetSQLName("SB1") + ".D_E_L_E_T_ = ' ' "
  549. TcQuery cQuery1 New Alias "QRY1"
  550. If QRY1->B1_TIPO = 'PS' .AND. B1_GRUPO = 'SERV'
  551. cCusto := TMP1->CK_CUSTO //* TMP1->CK_QTDVEN)
  552. Else
  553. cCusto := (QRY1->B1_CUSTD * TMP1->CK_QTDVEN)
  554. EndIf
  555. cAliqIPI := IIF(POSICIONE("SF4",1,xFilial("SF4")+TMP1->CK_TES,"F4_IPI") == "S",QRY1->B1_IPI,0)
  556. cGrupoTri := Trim(QRY1->B1_GRTRIB)
  557. // Buscar a Aliquota Externa e do Destino
  558. If Select("QRY2") > 0
  559. dbSelectArea("QRY2")
  560. dbCloseArea("QRY2")
  561. Endif
  562. cQuery2 := "SELECT * FROM "
  563. cQuery2 += RetSQLName("SF7")
  564. cQuery2 += " WHERE F7_FILIAL = '" + xFilial("SF7") + "' "
  565. cQuery2 += " AND F7_GRTRIB = '" + Trim(cGrupoTri) + "' "
  566. cQuery2 += " AND F7_EST = '" + SA1->A1_EST + "' "
  567. cQuery2 += " AND F7_TIPOCLI = '" + SA1->A1_TIPO + "' "
  568. cQuery2 += " AND F7_GRPCLI = '" + SA1->A1_GRPTRIB + "' "
  569. cQuery2 += " AND D_E_L_E_T_ = ' '"
  570. TcQuery cQuery2 New Alias "QRY2"
  571. // Carrega as Variaveis
  572. If CJ_TIPOCLI $ 'F/S'
  573. cICMS := IIF(POSICIONE("SF4",1,xFilial("SF4")+TMP1->CK_TES,"F4_ICM") == "S",(TMP1->CK_VALOR*(1+(cALIQIPI/100))*QRY2->F7_CARGICM/100),0)
  574. If POSICIONE("SB1",1,xFilial("SB1")+TMP1->CK_PRODUTO,"B1_TIPO") == "PS" .AND.;
  575. POSICIONE("SB1",1,xFilial("SB1")+TMP1->CK_PRODUTO,"B1_GRUPO") == "SERV"
  576. cICMS := ((TMP1->CK_VALOR * POSICIONE("SB1",1,xFilial("SB1")+TMP1->CK_PRODUTO,"B1_ALIQISS"))/100)
  577. EndIf
  578. Else
  579. cICMS := IIF(POSICIONE("SF4",1,xFilial("SF4")+TMP1->CK_TES,"F4_ICM") == "S",((TMP1->CK_VALOR * QRY2->F7_CARGICM)/100),0)
  580. EndIf
  581. cPIS := ((TMP1->CK_VALOR * 1.65)/100)
  582. cCofins := ((TMP1->CK_VALOR * 7.60)/100)
  583. // Testa se tem Subsido Tributario.
  584. If POSICIONE("SB5",1,xFilial("SCJ")+TMP1->CK_PRODUTO,"B5_SUBSTRB") > 0
  585. cSubsTrb := ((cICMS * 0.80) * POSICIONE("SB5",1,xFilial("SCJ")+TMP1->CK_PRODUTO,"B5_SUBSTRB"))
  586. Endif
  587. // Testa se tem Subsido no Custo.
  588. If POSICIONE("SB5",1,xFilial("SCJ")+TMP1->CK_PRODUTO,"B5_SUBSCUS") > 0
  589. cSubsCus := (cCusto * POSICIONE("SB5",1,xFilial("SCJ")+TMP1->CK_PRODUTO,"B5_SUBSCUS"))
  590. Endif
  591. cComis2 := 0
  592. cComis3 := 0
  593. If !Vazio(CJ_VEND)
  594. cComis2 := TMP1->CK_COMIS1
  595. EndIf
  596. If !Vazio(CJ_VEND3)
  597. cComis3 := TMP1->CK_COMIS3
  598. EndIf
  599. If cFilAnt = '05' .AND. CJ_VEND = '00143'
  600. cComissao := (TMP1->CK_VALOR * 0.05) // Alterado para 5 em 21-02-2018 - Dr. Chen
  601. Else
  602. cComissao := ((TMP1->CK_VALOR * (cComis2 + cComis3))/100)
  603. EndIf
  604. cRT := (((TMP1->CK_VALOR * CJ_COMISTR)/100)*0.60)
  605. cIPI := IIF(Posicione("SF4",1,xFilial('SF4')+TMP1->CK_TES,"F4_IPI")=='S',((TMP1->CK_VALOR * cALIQIPI)/100),0)
  606. // If Posicione("SF4",1,xFilial('SF4')+TMP1->CK_TES,"F4_MKPCMP") == "2" // Comentado para que as usuarios do comercial possam usar o campo %ST para informa o valor ao cliente.
  607. If Select("QRY5") > 0
  608. dbSelectArea("QRY5")
  609. dbCloseArea("QRY5")
  610. Endif
  611. cQuery5 := "SELECT CFC_ALQFCP FROM CFC010 WHERE CFC_FILIAL = '" + xFilial("SCK") + "' AND CFC_UFDEST = '" + QRY2->F7_EST + "' AND D_E_L_E_T_ = ' ' "
  612. TcQuery cQuery5 New Alias "QRY5"
  613. cFCP := QRY5->CFC_ALQFCP
  614. If QRY2->F7_MARGEM > 0
  615. If QRY2->F7_EST = 'PR'
  616. __cST := (((((TMP1->CK_VALOR + cIPI)*QRY2->F7_MARGEM)/100) + (TMP1->CK_VALOR + cIPI)) * ((QRY2->F7_ALIQDST)/100) - (TMP1->CK_VALOR * (QRY2->F7_ALIQINT/100)))
  617. __cPerST := ((__cST / (TMP1->CK_VALOR + cIPI))*100)
  618. Else
  619. __cST := (((((TMP1->CK_VALOR + cIPI)*QRY2->F7_MARGEM)/100) + (TMP1->CK_VALOR + cIPI)) * (((QRY2->F7_ALIQDST+cFCP))/100) - (TMP1->CK_VALOR * (QRY2->F7_ALIQEXT/100)))
  620. __cPerST := ((__cST / (TMP1->CK_VALOR + cIPI))*100)
  621. EndIf
  622. EndIf
  623. // EndIf
  624. If CJ_TPFRETE = 'C'
  625. cFrete := ((((TMP1->CK_VALOR + cIPI) * (3 + CJ_PERCFRT))/100)*0.60)
  626. Else
  627. cFrete := 0
  628. EndIf
  629. cINSSP := 0
  630. cRecLiq := (TMP1->CK_VALOR - cICMS - cPIS - cCofins - cINSSP)
  631. cMC := ((TMP1->CK_VALOR - cCusto - cICMS - cPIS - cCofins - cFrete - cComissao - cINSSP - cRT) + cSubsTrb + cSubsCus)
  632. TMP1->CK_CUSTO = cCusto
  633. TMP1->CK_ICMS = cICMS
  634. TMP1->CK_SUBSTRB = cSubsTrb
  635. TMP1->CK_SUBSCUS = cSubsCus
  636. TMP1->CK_PIS = cPIS
  637. TMP1->CK_COFINS = cCofins
  638. TMP1->CK_COMISSA = cComissao
  639. TMP1->CK_FRETE = cFrete
  640. TMP1->CK_RT = cRT
  641. TMP1->CK_IPI = cIPI
  642. TMP1->CK_INSSP = cINSSP
  643. TMP1->CK_CARICMS = QRY2->F7_CARGICM
  644. TMP1->CK_MC = cMC
  645. TMP1->CK_MCPERC = ((cMC / TMP1->CK_VALOR) * 100)
  646. TMP1->CK_RECLIQ = cRecLiq
  647. TMP1->CK_MCPERST := __cPerST
  648. Return()