1: <?php
2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31:
32:
33: require_once("../lib/class/plugins/bmm_erp_project_reporting/lib/projectStatusReport.class.php");
34: require_once("../lib/class/plugins/bmm_erp_project_reporting/lib/projectTimeReport.class.php");
35:
36: interface projectReportingImpl {
37:
38: function initialize();
39: function getPluginAppId();
40: function enableObject($enable = true);
41: function getAppMainViewItem();
42: function registerAppMenuHandler(&$obj);
43: function setAppMainView(&$pagewrap,&$apphandler,&$baseui,$db,$params_arr);
44: function setReportingView(&$pagewrap,&$mainhandler,&$baseui,$params_arr = null);
45:
46: }
47:
48:
49: class projectReporting implements projectReportingImpl {
50:
51: private $PLUGIN_APP_ID = PROJECT_APP;
52: private $instance;
53: private $enabled;
54: private $menuhandler;
55: public function __construct (){
56: $this->instance = $this;
57: $this->enabled = true;
58: $this->handler = 'report';
59: $this->appview = 'project_status_report';
60:
61: $this->statushandler = new projectStatusReport();
62: $this->timehandler = new projectTimeReport();
63: $this->initialize();
64: }
65:
66: public function initialize(){
67: }
68:
69: public function getPluginAppId(){
70: return $this->PLUGIN_APP_ID;
71: }
72:
73: public function enableObject($enable = true){
74: $this->enabled = $enable;
75: }
76:
77: public function getObjectStatus(){
78: return $this->enabled;
79: }
80:
81: public function getAppMainViewItem(){
82: return $this->appview;
83: }
84:
85:
86: public function registerAppMenuHandler(&$obj){
87: $obj->setMenuObject($this->appview,"reporting",$this->handler,'get',null,'READ',null,'manage');
88: }
89:
90: public function setAppMainView(&$pagewrap,&$mainhandler,&$baseui,$db,$params_arr){
91: $this->setReportingView($pagewrap,$mainhandler,$baseui,$params_arr);
92: }
93:
94: public function setReportingView(&$pagewrap,&$mainhandler,&$baseui,$params_arr = null){
95: global $STATUS_LIST;
96: $actionhandler = $params_arr['actionhandler'];
97: $dataobj = $actionhandler->getDataObject();
98: $viewhandler = new reportViewHandler($dataobj);
99: $component_list_arr = $mainhandler->getProjectTaskComponentCount();
100: $actionhandler->setActionParam('disable_status_flow_view',true);
101:
102: $bgcolor = $mainhandler->optionshandler->getOptionValue('app_header_background_color') ? "background-color:".$mainhandler->optionshandler->getOptionValue('app_header_background_color') : 'background-color:#ececec';
103: echo "
104: <script type=\"text/javascript\">
105: bmm_hide_edit_section();
106: function plugin_bmm_reporting_reload(){
107: document.fitems.submit();
108: }
109: </script>
110: <div style=\"margin-left:940px;margin-bottom:5px\">
111: <a style=\"font-size:14px\" href=\"javascript:plugin_bmm_reporting_reload()\">{$mainhandler->translator->translate('reload')}</a>
112: </div>
113: <div class=\"clearfix\" style=\"padding:2px;$bgcolor\">
114: <div style=\"float:left;margin-top:5px\">
115: <span style=\"font-weight:bold\">{$mainhandler->translator->translate('report_type')}</span>
116: <span>
117: <select class=\"input_disabled\" name=\"bmm_erp_project_reporting_type\" id=\"bmm_erp_project_reporting_type\" style=\"font-size:13px;width:130px;height:25px\")'>";
118: echo "
119: <option value=\"bmm_erp_project_reporting_status\">{$mainhandler->translator->translate('status_report','u')}</option>";
120: echo "
121: </select>
122: </span>
123: </div>
124:
125: <div style=\"float:left;margin-left:10px;margin-top:5px\">
126: <span style=\"font-weight:bold\">{$mainhandler->translator->translate('project_area')}</span>
127: <span>
128: <select class=\"input_disabled\" name=\"component_version_target\" id=\"component_version_target\" style=\"font-size:13px;width:200px;height:25px\")' onClick=\"javascript:this.blur()\">";
129: echo "<option value=\"0\">-{$mainhandler->translator->translate('select')}-</option>";
130: if (is_array($component_list_arr))
131: foreach (array_keys($component_list_arr) as $key){
132: $selected = null;
133: $component_name = $component_list_arr[$key][0];
134: $version_name = $component_list_arr[$key][1];
135: $component_id = $component_list_arr[$key][3];
136: $version_id = $component_list_arr[$key][4];
137: $component_key = "$component_id:$version_id";
138:
139:
140: if ($actionhandler->getActionParam('component_version_target') == "$component_key" )
141: $selected = "selected = 'selected'";
142:
143: echo "
144: <option value=\"$component_key\" $selected>$component_name - $version_name</option>";
145: }
146: echo "
147: </select>
148: </span>
149: </div>
150:
151: <div style=\"float:left;margin-left:20px;\">
152: <span style=\"font-weight:bold\">{$mainhandler->translator->translate('time_period','u')}</span>
153: <span>
154: <input type=\"text\" style=\"width: 80px\" id=\"date2s\" name=\"date2s\" value=\"{$mainhandler->getReportDateStart()}\" />
155: <span style=\"margin-left: 0px\"><img id=\"cal8\" value=\"date2s\" name=\"cal:date2s\" src=\"img/calendar.gif\" width=\"28\" height=\"24\"></span>
156: <span style=\"font-weight:bold\"> -</span>
157: <input type=\"text\" style=\"width:80px\" id=\"date2e\" name=\"date2e\" value=\"{$mainhandler->getReportDateEnd()}\" />
158: <span style=\"margin-left: 0px\"><img id=\"cal9\" value=\"date2e\" name=\"cal:date2e\" src=\"img/calendar.gif\" width=\"28\" height=\"24\"></span>
159: <input type=\"hidden\" id=\"dateselection\" name=\"dateselection\" value=\"\" />
160: <input type=\"hidden\" id=\"reptype\" name=\"reptype\" value=\"usertype\" />
161: <input type=\"hidden\" id=\"repid\" name=\"repid\" value=\"{$actionhandler->getActionParam('repid')}\" />
162: <input type=\"hidden\" id=\"bmm_statu_report_reload\" name=\"bmm_statu_report_reload\" value=\"Reload\" />
163:
164: </span>
165: </div>
166:
167: <div style=\"float:left\">";
168: $baseui->getPeriodSelectionBasic($mainhandler,$actionhandler,null);
169: echo "
170: </div>
171: </div>";
172:
173: switch ($actionhandler->getActionParam('bmm_erp_project_reporting_type')){
174: case "bmm_erp_project_reporting_time":
175: $this->timehandler->setTimeReportView($pagewrap,$mainhandler,$baseui,$params_arr);
176: break;
177:
178: default:
179: $this->statushandler->setStatusReportView($pagewrap,$mainhandler,$baseui,$params_arr);
180: break;
181: }
182: }
183:
184: }?>
185: