CADZM1.prw.bak 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. #include 'protheus.ch'
  2. #Include 'FWMVCDef.ch'
  3. /*__________________________________________________________________________
  4. ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
  5. ¦¦+-----------------------------------------------------------------------+¦¦
  6. ¦¦¦Funçäo ¦ CADZM1 ¦ Autor ¦ Lucilene Mendes ¦ Data ¦05.02.24 ¦¦¦
  7. ¦¦+----------+------------------------------------------------------------¦¦¦
  8. ¦¦¦Descriçäo ¦ Cadastro de usuários do portal ¦¦¦
  9. ¦¦+-----------------------------------------------------------------------+¦¦
  10. ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
  11. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
  12. User Function CadZM1()
  13. Local cAlias := "ZM1"
  14. Private aRotina := MenuDef()
  15. Private oBrowse
  16. Private cCadastro := "Usuários Portal SMS"
  17. //Monta o browse
  18. oBrowse := FWmBrowse():New()
  19. oBrowse:SetAlias(cAlias)
  20. oBrowse:SetDescription( cCadastro )
  21. oBrowse:DisableDetails()
  22. oBrowse:AddLegend( "ZM1->ZM1_STATUS<>'2'", "GREEN", "Ativo" )
  23. oBrowse:AddLegend( "ZM1->ZM1_STATUS='2'", "RED", "Bloqueado" )
  24. //Abre a tela
  25. oBrowse:Activate()
  26. Return
  27. /***********
  28. Cria Menu
  29. ***********/
  30. Static Function MenuDef()
  31. Local aRotina := {}
  32. aAdd( aRotina, { 'Visualizar', 'VIEWDEF.CadZM1', 0, 2, 0, NIL } )
  33. aAdd( aRotina, { 'Incluir' , 'VIEWDEF.CadZM1', 0, 3, 0, NIL } )
  34. aAdd( aRotina, { 'Alterar' , 'VIEWDEF.CadZM1', 0, 4, 0, NIL } )
  35. // aAdd( aRotina, { 'Excluir' , 'VIEWDEF.CadZM1', 0, 5, 0, NIL } )
  36. Return aRotina
  37. /***********
  38. Cria Model
  39. ***********/
  40. Static Function ModelDef()
  41. Local oModel
  42. Local oStr1 := FWFormStruct(1,'ZM1')
  43. Local oStr2 := FWFormModelStruct():New()
  44. Local aZM1Rel:= {}
  45. Local aRotinas:= {"Cadastro de Cliente","Homologação","Orçamento","Pedido de Venda"}
  46. oStr1:RemoveField('ZM1_FILIAL','ZM1_CLIENT','ZM1_OPORT','ZM1_ORCTO','ZM1_PEDIDO')
  47. oStr2:AddTable('TMP', {'Rotina', 'OP1', 'OP2' ,'OP3', 'OP4', 'OP5', 'OP6', 'OP7','OP8','OP9'}, "Itens")
  48. //Adiciona o campo
  49. oStr2:AddField(;
  50. "Rotina",; // [01] C Titulo do campo
  51. "Rotina",; // [02] C ToolTip do campo
  52. "ROTINA",; // [03] C Id do Field
  53. "C",; // [04] C Tipo do campo
  54. 40,; // [05] N Tamanho do campo
  55. 0,; // [06] N Decimal do campo
  56. Nil,; // [07] B Code-block de validacao do campo
  57. Nil,; // [08] B Code-block de validacao When do campo
  58. {},; // [09] A Lista de valores permitido do campo
  59. .T.,; // [10] L Indica se o campo tem preenchimento obrigatè´¸rio
  60. FwBuildFeature( STRUCT_FEATURE_INIPAD, "Iif(!INCLUI,ZM1->ZM1_PEDIDO,'')" ),; // [11] B Code-block de inicializacao do campo
  61. .F.,; // [12] L Indica se trata-se de um campo chave
  62. .F.,; // [13] L Indica se o campo pode receber valor em uma operacao de update.
  63. .T.)
  64. //Adiciona o checkbox
  65. oStr2:AddField('SELECT1', ' ', 'SELECT1', 'L', 1, 0, , , {}, .F.,FWBuildFeature( STRUCT_FEATURE_INIPAD, ".F."))
  66. oStr2:AddField('SELECT2', ' ', 'SELECT2', 'L', 1, 0, , , {}, .F.,FWBuildFeature( STRUCT_FEATURE_INIPAD, ".F."))
  67. oStr2:AddField('SELECT3', ' ', 'SELECT3', 'L', 1, 0, , , {}, .F.,FWBuildFeature( STRUCT_FEATURE_INIPAD, ".F."))
  68. oStr2:AddField('SELECT4', ' ', 'SELECT4', 'L', 1, 0, , , {}, .F.,FWBuildFeature( STRUCT_FEATURE_INIPAD, ".F."))
  69. oStr2:AddField('SELECT5', ' ', 'SELECT5', 'L', 1, 0, , , {}, .F.,FWBuildFeature( STRUCT_FEATURE_INIPAD, ".F."))
  70. oStr2:AddField('SELECT6', ' ', 'SELECT6', 'L', 1, 0, , , {}, .F.,FWBuildFeature( STRUCT_FEATURE_INIPAD, ".F."))
  71. oStr2:AddField('SELECT7', ' ', 'SELECT7', 'L', 1, 0, , , {}, .F.,FWBuildFeature( STRUCT_FEATURE_INIPAD, ".F."))
  72. oStr2:AddField('SELECT8', ' ', 'SELECT8', 'L', 1, 0, , , {}, .F.,FWBuildFeature( STRUCT_FEATURE_INIPAD, ".F."))
  73. oStr2:AddField('SELECT9', ' ', 'SELECT9', 'L', 1, 0, , , {}, .F.,FWBuildFeature( STRUCT_FEATURE_INIPAD, ".F."))
  74. oModel := MPFormModel():New('CadZM1M')
  75. oModel:AddFields('ZM1MASTER', /*cOwner*/,oStr1, /*bPreValidacao*/,/*bPosValidacao*/, /*bCarga*/ )
  76. oModel:AddGrid( 'ZM1DETAIL','ZM1MASTER',oStr2,/*bLinePre*/,/*bLinePost*/, /*bPreVal*/, /*bPosVal*/)
  77. aAdd(aZM1Rel, {'ZM1_FILIAL' , 'Iif(!INCLUI, ZM1->ZM1_FILIAL, FWxFilial("ZM1"))'} )
  78. oModel:SetRelation('ZM1DETAIL', aZM1Rel, ZM1->(IndexKey(1)))
  79. //Setando outras informacaoes do Modelo de Dados
  80. oModel:SetDescription(cCadastro)
  81. oModel:SetPrimaryKey({"ZM1_FILIAL","ZM1_CODIGO"})
  82. oModel:GetModel("ZM1MASTER"):SetDescription("Formulario - "+cCadastro)
  83. Return oModel
  84. /////////////////////////////////////////
  85. Static Function ViewDef()
  86. Local oModel := FWLoadModel("CadZM1")
  87. Local oStr1 := FWFormStruct(2,'ZM1')
  88. Local oStr2 := FWFormViewStruct():New()
  89. Local oView := Nil
  90. //Adiciona o campo
  91. oStr2:AddField( 'ROTINA' ,'01','Rotina','Rotina',, 'C')
  92. oStr2:AddField( 'SELECT1','02','Incluir','Incluir',, 'Check')
  93. oStr2:AddField( 'SELECT2','03','Alterar','Altear',, 'Check')
  94. oStr2:AddField( 'SELECT3','04','Excluir','Excluir',, 'Check')
  95. oStr2:AddField( 'SELECT4','05','Excluir','Excluir',, 'Check')
  96. oStr2:AddField( 'SELECT5','06','Copiar','Copiar',, 'Check')
  97. oStr2:AddField( 'SELECT6','07','Revisar','Revisar',, 'Check')
  98. oStr2:AddField( 'SELECT7','08','Efetivar','Efetivar',, 'Check')
  99. oStr2:AddField( 'SELECT8','09','Cancelar','Cancelar',, 'Check')
  100. oStr2:AddField( 'SELECT9','10','Todos','Todos',, 'Check')
  101. //Criando a view que sera o retorno da funcao e setando o modelo da rotina
  102. oView := FWFormView():New()
  103. oView:SetModel(oModel)
  104. oView:AddField("VIEW_CAB", oStr1, "ZM1MASTER")
  105. oView:AddGrid('VIEW_DET',oStr2,'ZM1DETAIL')
  106. //Setando o dimensionamento de tamanho
  107. oView:CreateHorizontalBox('CABEC',40)
  108. oView:CreateHorizontalBox('GRID',60)
  109. //Amarrando a view com as box
  110. oView:SetOwnerView('VIEW_CAB','CABEC')
  111. oView:SetOwnerView('VIEW_DET','GRID')
  112. //Gatilho para alimentar o grid
  113. oView:SetFieldAction("ZM1_CODIGO", {|oView, cIdView, cField, xValue| U_ATUGRIDZM1(oView, cIdView, cField, xValue)})
  114. //Incrementando o campo sequencia
  115. //oView:AddIncrementField( 'VIEW_ZC0', 'ZC0_SEQUEN' )
  116. //Habilitando titulo
  117. oView:EnableTitleView('VIEW_CAB','Cadastro')
  118. oView:EnableTitleView('VIEW_DET','Acessos')
  119. //Tratativa padrao para fechar a tela
  120. oView:SetCloseOnOk({||.T.})
  121. //Remove os campos de Filial e Tabela da Grid
  122. oStr1:RemoveField('ZM1_FILIAL')
  123. oStr1:RemoveField('ZM1_CLIENT')
  124. oStr1:RemoveField('ZM1_OPORT')
  125. oStr1:RemoveField('ZM1_ORCTO')
  126. oStr1:RemoveField('ZM1_PEDIDO')
  127. Return oView
  128. ////////////////////
  129. User Function AtuGridZM1(oView, cIdView, cField, xValue)
  130. Local nOperation := 0
  131. Local nI := 0
  132. Local aRotinas := {"CADASTRO DE CLIENTE","HOMOLOGAÇÃO","ORÇAMENTO","PEDIDO DE VENDA"}
  133. Local oModel := oView:GetModel()
  134. nOperation := oModel:GetOperation()
  135. If nOperation == MODEL_OPERATION_INSERT
  136. If oModel:GetModel("ZM1DETAIL"):CanClearData()
  137. oModel:GetModel("ZM1DETAIL"):ClearData()
  138. For nI:= 1 to Len(aRotinas)
  139. IF oModel:GetModel("ZM1DETAIL"):AddLine() == ++nI
  140. oModel:GetModel("ZM1DETAIL"):GoLine(nI)
  141. If oModel:GetModel("ZM1DETAIL"):AddLine()
  142. oModel:GetModel("ZM1DETAIL"):GoLine(nI)
  143. oModel:GetModel("ZM1DETAIL"):SetValue("ROTINA" , aRotina[nI] )
  144. Endif
  145. Endif
  146. Next
  147. oView:Refresh()
  148. Endif
  149. Endif
  150. oModel:GetModel("ZM1DETAIL"):GoLine(1)
  151. Return