@@ -165,7 +165,7 @@ public function getSingleCanvas($canvasId): false|array
165
165
*
166
166
* @return array|false
167
167
*/
168
- public function getAllAccountGoals (): false |array
168
+ public function getAllAccountGoals (? int $ projectId , ? int $ boardId ): false |array
169
169
{
170
170
$ sql = "SELECT
171
171
zp_canvas_items.id,
@@ -202,19 +202,158 @@ public function getAllAccountGoals(): false|array
202
202
zp_canvas_items.action,
203
203
zp_canvas_items.assignedTo,
204
204
zp_canvas_items.parent,
205
- zp_canvas_items.tags
205
+ zp_canvas_items.tags,
206
+ zp_canvas.projectId
206
207
FROM
207
208
zp_canvas_items
209
+ LEFT JOIN zp_canvas ON zp_canvas_items.canvasId = zp_canvas.id
210
+ LEFT JOIN zp_projects ON zp_canvas.projectId = zp_projects.id
211
+ WHERE zp_canvas_items.box = 'goal' AND (
212
+ zp_canvas.projectId IN (SELECT projectId FROM zp_relationuserproject WHERE zp_relationuserproject.userId = :userId)
213
+ OR zp_projects.psettings = 'all'
214
+ OR (zp_projects.psettings = 'client' AND zp_projects.clientId = :clientId)
215
+ OR (:requesterRole = 'admin' OR :requesterRole = 'manager')
216
+ )
217
+ " ;
208
218
209
- WHERE zp_canvas_items.box = 'goal'
219
+ if (isset ($ projectId ) && $ projectId > 0 ) {
220
+ $ sql .= " AND (zp_canvas.projectId = :projectId) " ;
221
+ }
210
222
211
- " ;
223
+ if (isset ($ boardId ) && $ boardId > 0 ) {
224
+ $ sql .= " AND (zp_canvas.id = :boardId) " ;
225
+ }
212
226
213
227
$ stmn = $ this ->db ->database ->prepare ($ sql );
228
+
229
+ if (session ()->exists ("userdata " )) {
230
+ $ stmn ->bindValue (':requesterRole ' , session ("userdata.role " ), PDO ::PARAM_INT );
231
+ } else {
232
+ $ stmn ->bindValue (':requesterRole ' , -1 , PDO ::PARAM_INT );
233
+ }
234
+
235
+ $ stmn ->bindValue (':clientId ' , session ("userdata.clientId " ) ?? '-1 ' , PDO ::PARAM_INT );
236
+ $ stmn ->bindValue (':userId ' , session ("userdata.id " ) ?? '-1 ' , PDO ::PARAM_INT );
237
+
238
+ if (isset ($ projectId ) && $ projectId > 0 ) {
239
+ $ stmn ->bindValue (':projectId ' , $ projectId , PDO ::PARAM_INT );
240
+ }
241
+
242
+ if (isset ($ boardId ) && $ boardId > 0 ) {
243
+ $ stmn ->bindValue (':boardId ' , $ boardId , PDO ::PARAM_INT );
244
+ }
245
+
214
246
$ stmn ->execute ();
215
247
$ values = $ stmn ->fetchAll ();
216
248
$ stmn ->closeCursor ();
217
249
return $ values ;
218
250
}
251
+
252
+ /**
253
+ * @param $values
254
+ * @return false|string
255
+ */
256
+ public function createGoal ($ values ): false |string
257
+ {
258
+
259
+ $ query = "INSERT INTO zp_canvas_items (
260
+ description,
261
+ title,
262
+ assumptions,
263
+ data,
264
+ conclusion,
265
+ box,
266
+ author,
267
+ created,
268
+ modified,
269
+ canvasId,
270
+ status,
271
+ relates,
272
+ milestoneId,
273
+ kpi,
274
+ data1,
275
+ startDate,
276
+ endDate,
277
+ setting,
278
+ metricType,
279
+ impact,
280
+ effort,
281
+ probability,
282
+ action,
283
+ assignedTo,
284
+ startValue,
285
+ currentValue,
286
+ endValue,
287
+ parent,
288
+ tags
289
+ ) VALUES (
290
+ :description,
291
+ :title,
292
+ :assumptions,
293
+ :data,
294
+ :conclusion,
295
+ :box,
296
+ :author,
297
+ NOW(),
298
+ NOW(),
299
+ :canvasId,
300
+ :status,
301
+ :relates,
302
+ :milestoneId,
303
+ :kpi,
304
+ :data1,
305
+ :startDate,
306
+ :endDate,
307
+ :setting,
308
+ :metricType,
309
+ :impact,
310
+ :effort,
311
+ :probability,
312
+ :action,
313
+ :assignedTo,
314
+ :startValue,
315
+ :currentValue,
316
+ :endValue,
317
+ :parent,
318
+ :tags
319
+ ) " ;
320
+
321
+ $ stmn = $ this ->db ->database ->prepare ($ query );
322
+
323
+ $ stmn ->bindValue (':description ' , $ values ['description ' ] ?? '' , PDO ::PARAM_STR );
324
+ $ stmn ->bindValue (':title ' , $ values ['title ' ] ?? '' , PDO ::PARAM_STR );
325
+ $ stmn ->bindValue (':assumptions ' , $ values ['assumptions ' ] ?? '' , PDO ::PARAM_STR );
326
+ $ stmn ->bindValue (':data ' , $ values ['data ' ] ?? '' , PDO ::PARAM_STR );
327
+ $ stmn ->bindValue (':conclusion ' , $ values ['conclusion ' ] ?? '' , PDO ::PARAM_STR );
328
+ $ stmn ->bindValue (':box ' , $ values ['box ' ], PDO ::PARAM_STR );
329
+ $ stmn ->bindValue (':author ' , $ values ['author ' ], PDO ::PARAM_INT );
330
+ $ stmn ->bindValue (':canvasId ' , $ values ['canvasId ' ], PDO ::PARAM_INT );
331
+ $ stmn ->bindValue (':status ' , $ values ['status ' ] ?? '' , PDO ::PARAM_STR );
332
+ $ stmn ->bindValue (':relates ' , $ values ['relates ' ] ?? '' , PDO ::PARAM_STR );
333
+ $ stmn ->bindValue (':milestoneId ' , $ values ['milestoneId ' ] ?? "" , PDO ::PARAM_STR );
334
+ $ stmn ->bindValue (':kpi ' , $ values ['kpi ' ] ?? '' , PDO ::PARAM_STR );
335
+ $ stmn ->bindValue (':data1 ' , $ values ['data1 ' ] ?? '' , PDO ::PARAM_STR );
336
+ $ stmn ->bindValue (':startDate ' , $ values ['startDate ' ] ?? '' , PDO ::PARAM_STR );
337
+ $ stmn ->bindValue (':endDate ' , $ values ['endDate ' ] ?? '' , PDO ::PARAM_STR );
338
+ $ stmn ->bindValue (':setting ' , $ values ['setting ' ] ?? '' , PDO ::PARAM_STR );
339
+ $ stmn ->bindValue (':metricType ' , $ values ['metricType ' ] ?? '' , PDO ::PARAM_STR );
340
+ $ stmn ->bindValue (':impact ' , $ values ['impact ' ] ?? '' , PDO ::PARAM_STR );
341
+ $ stmn ->bindValue (':effort ' , $ values ['effort ' ] ?? '' , PDO ::PARAM_STR );
342
+ $ stmn ->bindValue (':probability ' , $ values ['probability ' ] ?? '' , PDO ::PARAM_STR );
343
+ $ stmn ->bindValue (':action ' , $ values ['action ' ] ?? '' , PDO ::PARAM_STR );
344
+ $ stmn ->bindValue (':assignedTo ' , $ values ['assignedTo ' ] ?? '' , PDO ::PARAM_STR );
345
+ $ stmn ->bindValue (':startValue ' , $ values ['startValue ' ] ?? '' , PDO ::PARAM_STR );
346
+ $ stmn ->bindValue (':currentValue ' , $ values ['currentValue ' ] ?? '' , PDO ::PARAM_STR );
347
+ $ stmn ->bindValue (':endValue ' , $ values ['endValue ' ] ?? '' , PDO ::PARAM_STR );
348
+ $ stmn ->bindValue (':parent ' , $ values ['parent ' ] ?? '' , PDO ::PARAM_STR );
349
+ $ stmn ->bindValue (':tags ' , $ values ['tags ' ] ?? '' , PDO ::PARAM_STR );
350
+
351
+ $ stmn ->execute ();
352
+ $ id = $ this ->db ->database ->lastInsertId ();
353
+ $ stmn ->closeCursor ();
354
+
355
+ return $ id ;
356
+ }
357
+
219
358
}
220
359
}
0 commit comments