LC_ORCA1012.prw 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. //-------------------------------------------
  2. // Função ORCA1012. Tratativa dos Descontos.
  3. // Solicitante: Comercial.
  4. // Autor: Fonseca.
  5. // Data: 08-08-2014.
  6. //-------------------------------------------
  7. #include 'protheus.ch'
  8. #include 'rwmake.ch'
  9. #include "topconn.ch"
  10. #include "TOTVS.CH"
  11. User Function ORCA1012()
  12. Local aArea := GetArea()
  13. Local cTpProd := POSICIONE("SB1",1,xFILIAL("SB1")+TMP1->CK_PRODUTO,"B1_TIPO")
  14. Local cGrupo := POSICIONE("SB1",1,xFILIAL("SB1")+TMP1->CK_PRODUTO,"B1_GRUPO")
  15. Local cCod := Substr(POSICIONE("SB1",1,xFILIAL("SB1")+TMP1->CK_PRODUTO,"B1_COD"),1,6) // Código do Produto
  16. Local bBloc := .T.
  17. Local cRet :=0
  18. If (__cUserID <> '000111' .AND. __cUserID <> '000358') // Liberado para Marcia Beger em 22/08/2018.
  19. If TMP1->CK_DESCONT > 0
  20. If cTpProd $ "PA"
  21. bBloc:= .F.
  22. ElseIf cTpProd $ "PI"
  23. If cGrupo $ "E048|E049|E04A|E063|"
  24. bBloc:= .F.
  25. EndIf
  26. Else
  27. bBloc:= .T.
  28. EndIF
  29. If cGrupo = 'PAN'
  30. bBloc:= .T.
  31. ENDIF
  32. If bBloc .and. !isblind()
  33. If MsgYesNo("Produtos do tipo RE, iniciados com RELUMI ou do grupo PAN não permitem descontos." + Chr(13) + "Deseja solicitar desconto adicional ?","Atenção !!!")
  34. U_ORCA1018()
  35. If _Ok == .F.
  36. TMP1->CK_DESCONT:=0
  37. TMP1->CK_VALDESC:=0
  38. cRet:=0
  39. EndIf
  40. Else
  41. TMP1->CK_DESCONT:=0
  42. TMP1->CK_VALDESC:=0
  43. cRet:=0
  44. EndIf
  45. EndIf
  46. EndIf
  47. EndIf
  48. TMP1->CK_PRCVEN := (TMP1->CK_PRTAB * ((100 - TMP1->CK_DESCONT) / 100))
  49. TMP1->CK_VALOR := (TMP1->CK_PRCVEN * TMP1->CK_QTDVEN)
  50. TMP1->CK_PRUNIT := (TMP1->CK_PRCVEN)
  51. TMP1->CK_DESCACM := (TMP1->CK_DESCONT)
  52. TMP1->CK_VLDSCAC := (TMP1->CK_PRTAB - TMP1->CK_PRCVEN)
  53. TMP1->CK_DESCONT := 0
  54. TMP1->CK_VALDESC := 0
  55. cRet := 0
  56. RestArea(aArea)
  57. Return(cRet)