ServiceRequest.business.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. <?php
  2. ////////////////////////////////////////////////////////////////////////////////////
  3. /**
  4. * Description of a service request
  5. *
  6. */
  7. ////////////////////////////////////////////////////////////////////////////////////
  8. class bizServiceRequest extends cmdbAbstractObject
  9. {
  10. public static function Init()
  11. {
  12. $aParams = array
  13. (
  14. "category" => "bizmodel,searchable",
  15. "name" => "ServiceRequest",
  16. "description" => "Service request",
  17. "key_type" => "autoincrement",
  18. "key_label" => "id",
  19. "name_attcode" => "name",
  20. "state_attcode" => "",
  21. "reconc_keys" => array("org_id", "name"), // inherited attributes
  22. "db_table" => "serviceRequests",
  23. "db_key_field" => "id",
  24. "db_finalclass_field" => "",
  25. "display_template" => "../business/templates/serviceRequest.html",
  26. );
  27. MetaModel::Init_Params($aParams);
  28. MetaModel::Init_InheritAttributes();
  29. MetaModel::Init_AddAttribute(new AttributeString("name", array("allowed_values"=>null, "sql"=>"name", "default_value"=>"", "is_null_allowed"=>false, "depends_on"=>array())));
  30. MetaModel::Init_AddAttribute(new AttributeString("title", array("allowed_values"=>null, "sql"=>"title", "default_value"=>"", "is_null_allowed"=>false, "depends_on"=>array())));
  31. MetaModel::Init_AddAttribute(new AttributeExternalKey("org_id", array("targetclass"=>"bizOrganization", "allowed_values"=>null, "sql"=>"customer_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array())));
  32. MetaModel::Init_AddAttribute(new AttributeExternalField("customer_name", array("allowed_values"=>null, "extkey_attcode"=> 'org_id', "target_attcode"=>"name")));
  33. MetaModel::Init_AddAttribute(new AttributeText("description", array("allowed_values"=>null, "sql"=>"description", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
  34. MetaModel::Init_AddAttribute(new AttributeEnum("status", array("allowed_values"=>new ValueSetEnum("Open,approved,rejected,assigned,pending,closed"), "sql"=>"status", "default_value"=>"Open", "is_null_allowed"=>false, "depends_on"=>array())));
  35. MetaModel::Init_AddAttribute(new AttributeExternalKey("requester_id", array("targetclass"=>"bizPerson", "jointype"=> "", "allowed_values"=>null, "sql"=>"requester_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array())));
  36. MetaModel::Init_AddAttribute(new AttributeExternalField("requester_mail", array("allowed_values"=>null, "extkey_attcode"=> 'requester_id', "target_attcode"=>"email")));
  37. MetaModel::Init_AddAttribute(new AttributeEnum("priority", array("allowed_values"=>new ValueSetEnum("critical,medium,low"), "sql"=>"priority", "default_value"=>"low", "is_null_allowed"=>false, "depends_on"=>array())));
  38. MetaModel::Init_AddAttribute(new AttributeEnum("source", array("allowed_values"=>new ValueSetEnum("phone,E-mail,Fax"), "sql"=>"source", "default_value"=>"phone", "is_null_allowed"=>false, "depends_on"=>array())));
  39. MetaModel::Init_AddAttribute(new AttributeExternalKey("coordinator_id", array("targetclass"=>"bizWorkgroup", "jointype"=> "", "allowed_values"=>null, "sql"=>"coordinator_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array())));
  40. MetaModel::Init_AddAttribute(new AttributeExternalField("coordinator_name", array("allowed_values"=>null, "extkey_attcode"=> 'coordinator_id', "target_attcode"=>"name")));
  41. MetaModel::Init_AddAttribute(new AttributeExternalKey("agent_id", array("targetclass"=>"bizPerson", "jointype"=> "", "allowed_values"=>null, "sql"=>"agent_id", "is_null_allowed"=>true, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array("coordinator_id"))));
  42. MetaModel::Init_AddAttribute(new AttributeExternalField("agent_mail", array("allowed_values"=>null, "extkey_attcode"=> 'agent_id', "target_attcode"=>"email")));
  43. MetaModel::Init_InheritFilters();
  44. MetaModel::Init_AddFilterFromAttribute("name");
  45. MetaModel::Init_AddFilterFromAttribute("org_id");
  46. MetaModel::Init_AddFilterFromAttribute("requester_id");
  47. MetaModel::Init_AddFilterFromAttribute("priority");
  48. MetaModel::Init_AddFilterFromAttribute("coordinator_id");
  49. MetaModel::Init_AddFilterFromAttribute("agent_id");
  50. MetaModel::Init_AddFilterFromAttribute("status");
  51. MetaModel::Init_AddFilterFromAttribute("source");
  52. /*
  53. // Life cycle
  54. MetaModel::Init_DefineState("New", array("attribute_inherit"=>null,
  55. "attribute_list"=>array()));
  56. MetaModel::Init_DefineState("Implementation", array("attribute_inherit"=>null,
  57. "attribute_list"=>array()));
  58. MetaModel::Init_DefineState("Production", array("attribute_inherit"=>null,
  59. "attribute_list"=>array()));
  60. MetaModel::Init_DefineState("Obsolete", array("attribute_inherit"=>null,
  61. "attribute_list"=>array()));
  62. MetaModel::Init_DefineStimulus(new StimulusUserAction("ev_implement", array()));
  63. MetaModel::Init_DefineStimulus(new StimulusUserAction("ev_move2prod", array()));
  64. MetaModel::Init_DefineStimulus(new StimulusUserAction("ev_obsololete", array()));
  65. MetaModel::Init_DefineTransition("New", "ev_implement", array("target_state"=>"Implementation", "actions"=>array(), "user_restriction"=>null));
  66. MetaModel::Init_DefineTransition("Implementation", "ev_move2prod", array("target_state"=>"Production", "actions"=>array(), "user_restriction"=>null));
  67. MetaModel::Init_DefineTransition("Production", "ev_obsolete", array("target_state"=>"Obsolete", "actions"=>array('IncrementVersion'), "user_restriction"=>null));
  68. */
  69. MetaModel::Init_SetZListItems('details', array('name', 'title','status', 'org_id','priority','requester_id','description','source','coordinator_id','agent_id')); // Attributes to be displayed for the complete details
  70. MetaModel::Init_SetZListItems('list', array('name', 'title','status', 'org_id','priority')); // Attributes to be displayed for a list
  71. // Search criteria
  72. MetaModel::Init_SetZListItems('standard_search', array('name', 'status','org_id','priority','requester_id','source','coordinator_id','agent_id')); // Criteria of the std search form
  73. MetaModel::Init_SetZListItems('advanced_search', array('name', 'status','org_id','priority','requester_id','source','coordinator_id','agent_id')); // Criteria of the advanced search form
  74. }
  75. // State machine actions
  76. public function IncrementVersion($sStimulusCode)
  77. {
  78. $this->Set('version_number', $this->Get('version_number') + 1);
  79. return true;
  80. }
  81. }
  82. ////////////////////////////////////////////////////////////////////////////////////
  83. /**
  84. * Description of a service item
  85. *
  86. */
  87. ////////////////////////////////////////////////////////////////////////////////////
  88. class bizServiceItem extends cmdbAbstractObject
  89. {
  90. public static function Init()
  91. {
  92. $aParams = array
  93. (
  94. "category" => "bizmodel,searchable",
  95. "name" => "ServiceItem",
  96. "description" => "Service Item",
  97. "key_type" => "autoincrement",
  98. "key_label" => "id",
  99. "name_attcode" => "name",
  100. "state_attcode" => "",
  101. "reconc_keys" => array("request_id", "name"), // inherited attributes
  102. "db_table" => "serviceItems",
  103. "db_key_field" => "id",
  104. "db_finalclass_field" => "",
  105. "display_template" => "../business/templates/default.html",
  106. );
  107. MetaModel::Init_Params($aParams);
  108. MetaModel::Init_InheritAttributes();
  109. MetaModel::Init_AddAttribute(new AttributeString("name", array("allowed_values"=>null, "sql"=>"name", "default_value"=>"", "is_null_allowed"=>false, "depends_on"=>array())));
  110. MetaModel::Init_AddAttribute(new AttributeString("title", array("allowed_values"=>null, "sql"=>"title", "default_value"=>"", "is_null_allowed"=>false, "depends_on"=>array())));
  111. MetaModel::Init_AddAttribute(new AttributeExternalKey("request_id", array("targetclass"=>"bizServiceRequest", "allowed_values"=>null, "sql"=>"request_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array())));
  112. MetaModel::Init_AddAttribute(new AttributeExternalField("request_name", array("allowed_values"=>null, "extkey_attcode"=> 'request_id', "target_attcode"=>"name")));
  113. MetaModel::Init_AddAttribute(new AttributeExternalKey("contract_id", array("targetclass"=>"bizContract", "allowed_values"=>null, "sql"=>"contract_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array())));
  114. MetaModel::Init_AddAttribute(new AttributeExternalField("contract_name", array("allowed_values"=>null, "extkey_attcode"=> 'contract_id', "target_attcode"=>"name")));
  115. MetaModel::Init_AddAttribute(new AttributeText("description", array("allowed_values"=>null, "sql"=>"description", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
  116. MetaModel::Init_AddAttribute(new AttributeEnum("status", array("allowed_values"=>new ValueSetEnum("Open,approved,rejected,assigned,pending,closed"), "sql"=>"status", "default_value"=>"Open", "is_null_allowed"=>false, "depends_on"=>array())));
  117. MetaModel::Init_AddAttribute(new AttributeExternalField("priority", array("allowed_values"=>null, "extkey_attcode"=> 'request_id', "target_attcode"=>"priority")));
  118. MetaModel::Init_AddAttribute(new AttributeText("comment", array("allowed_values"=>null, "sql"=>"comment", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
  119. MetaModel::Init_AddAttribute(new AttributeExternalKey("workgroup_id", array("targetclass"=>"bizWorkgroup", "jointype"=> "", "allowed_values"=>null, "sql"=>"workgroup_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array())));
  120. MetaModel::Init_AddAttribute(new AttributeExternalField("workgroup_name", array("allowed_values"=>null, "extkey_attcode"=> 'workgroup_id', "target_attcode"=>"name")));
  121. MetaModel::Init_AddAttribute(new AttributeExternalKey("agent_id", array("targetclass"=>"bizPerson", "jointype"=> "", "allowed_values"=>null, "sql"=>"agent_id", "is_null_allowed"=>true, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array("workgroup_id"))));
  122. MetaModel::Init_AddAttribute(new AttributeExternalField("agent_mail", array("allowed_values"=>null, "extkey_attcode"=> 'agent_id', "target_attcode"=>"email")));
  123. MetaModel::Init_InheritFilters();
  124. MetaModel::Init_AddFilterFromAttribute("name");
  125. MetaModel::Init_AddFilterFromAttribute("request_id");
  126. MetaModel::Init_AddFilterFromAttribute("contract_id");
  127. MetaModel::Init_AddFilterFromAttribute("priority");
  128. MetaModel::Init_AddFilterFromAttribute("workgroup_id");
  129. MetaModel::Init_AddFilterFromAttribute("agent_id");
  130. MetaModel::Init_AddFilterFromAttribute("status");
  131. MetaModel::Init_AddFilterFromAttribute("priority");
  132. /*
  133. // Life cycle
  134. MetaModel::Init_DefineState("New", array("attribute_inherit"=>null,
  135. "attribute_list"=>array()));
  136. MetaModel::Init_DefineState("Implementation", array("attribute_inherit"=>null,
  137. "attribute_list"=>array()));
  138. MetaModel::Init_DefineState("Production", array("attribute_inherit"=>null,
  139. "attribute_list"=>array()));
  140. MetaModel::Init_DefineState("Obsolete", array("attribute_inherit"=>null,
  141. "attribute_list"=>array()));
  142. MetaModel::Init_DefineStimulus(new StimulusUserAction("ev_implement", array()));
  143. MetaModel::Init_DefineStimulus(new StimulusUserAction("ev_move2prod", array()));
  144. MetaModel::Init_DefineStimulus(new StimulusUserAction("ev_obsololete", array()));
  145. MetaModel::Init_DefineTransition("New", "ev_implement", array("target_state"=>"Implementation", "actions"=>array(), "user_restriction"=>null));
  146. MetaModel::Init_DefineTransition("Implementation", "ev_move2prod", array("target_state"=>"Production", "actions"=>array(), "user_restriction"=>null));
  147. MetaModel::Init_DefineTransition("Production", "ev_obsolete", array("target_state"=>"Obsolete", "actions"=>array('IncrementVersion'), "user_restriction"=>null));
  148. */
  149. MetaModel::Init_SetZListItems('details', array('name', 'title','request_id','contract_id','status','priority','description','comment','workgroup_id','agent_id')); // Attributes to be displayed for the complete details
  150. MetaModel::Init_SetZListItems('list', array('name', 'title','status', 'contract_id','priority')); // Attributes to be displayed for a list
  151. // Search criteria
  152. MetaModel::Init_SetZListItems('standard_search', array('name','request_id','contract_id','status','priority','workgroup_id','agent_id')); // Criteria of the std search form
  153. MetaModel::Init_SetZListItems('advanced_search', array('name','request_id','contract_id','status','priority','workgroup_id','agent_id')); // Criteria of the advanced search form
  154. }
  155. }
  156. ?>