| 386 | | === dla wersji < 5.0 === |
| 387 | | {{{ |
| 388 | | #!sql |
| 389 | | SELECT keyval, |
| 390 | | dscrpt, |
| 391 | | clsnam, |
| 392 | | ptstnm, |
| 393 | | dctpid, |
| 394 | | prtpnm, |
| 395 | | end___, |
| 396 | | ptstid |
| 397 | | FROM procedures_def |
| 398 | | RIGHT JOIN ( |
| 399 | | SELECT (doc_id) AS keyval, |
| 400 | | p2.prtpid, |
| 401 | | substr(d.dscrpt, 0, 100) AS dscrpt, |
| 402 | | 'DOCUMENT' AS clsnam, |
| 403 | | end___, |
| 404 | | s.ptstnm, |
| 405 | | d.dctpid, |
| 406 | | ptstid, |
| 407 | | orgarr |
| 408 | | FROM procedures pd |
| 409 | | LEFT JOIN stages s USING(procid) |
| 410 | | LEFT JOIN procedures p2 ON (p2.procid = pd.rootpr) |
| 411 | | LEFT JOIN bpm_loops_def bld USING(ptstid) |
| 412 | | RIGHT JOIN documents d ON (d.procid = p2.procid) |
| 413 | | LEFT JOIN ( |
| 414 | | SELECT doc_id, text_sum(attrib::text) AS attrib |
| 415 | | FROM ( |
| 416 | | SELECT * |
| 417 | | FROM ( |
| 418 | | SELECT doc_id, coalesce(attrib, '-'::text) AS attrib, CASE WHEN grp_id IS NULL THEN -1 ELSE ul.prior_ END AS prior_, CASE WHEN dlu.usr_id IS NULL THEN ul.usr_id ELSE dlu.usr_id END AS usr_id |
| 419 | | FROM doc_link_users dlu |
| 420 | | LEFT JOIN users_link_group ul USING(grp_id) |
| 421 | | WHERE TRUE AND (dlu.usr_id = 2 OR ul.usr_id = 2) |
| 422 | | ) AS foo |
| 423 | | ORDER BY usr_id, prior_ ASC |
| 424 | | ) AS foo2 |
| 425 | | GROUP BY doc_id |
| 426 | | ) AS dolu USING (doc_id) |
| 427 | | WHERE (bld.multii IS NOT TRUE OR s.prn_id IS NOT NULL) |
| 428 | | AND s.ptsttp != 'SUBPROCESS' |
| 429 | | AND ((dolu.attrib ~ '^r') OR (dolu.attrib IS NULL AND (prionl IS NOT TRUE OR d.adduid = 2))) |
| 430 | | AND ((ARRAY[1] && s.orgarr) OR (s.orgarr IS NULL AND d.target = ANY(ARRAY[1]))) AND d.is_del IS NOT TRUE AND gostof IS NULL AND sop_id IS NOT NULL AND s.is_act IS TRUE AND pd.comple IS NOT TRUE AND ptsttp != 'START' |
| 431 | | |
| 432 | | UNION |
| 433 | | SELECT (prc_id) AS keyval, |
| 434 | | p2.prtpid, |
| 435 | | substr(p.dscrpt, 0, 100) AS dscrpt, |
| 436 | | 'PROCESS' AS clsnam, |
| 437 | | end___, |
| 438 | | s.ptstnm, |
| 439 | | 0 AS dctpid, |
| 440 | | ptstid, |
| 441 | | orgarr |
| 442 | | FROM procedures pd |
| 443 | | LEFT JOIN stages s USING(procid) |
| 444 | | LEFT JOIN procedures p2 ON (p2.procid = pd.rootpr) |
| 445 | | LEFT JOIN bpm_loops_def bld USING(ptstid) |
| 446 | | RIGHT JOIN processes p ON (p.procid = p2.procid) |
| 447 | | WHERE (bld.multii IS NOT TRUE |
| 448 | | OR s.prn_id IS NOT NULL) |
| 449 | | AND s.ptsttp != 'SUBPROCESS' |
| 450 | | AND p.is_fix IS FALSE |
| 451 | | AND p.is_del IS FALSE |
| 452 | | AND (ARRAY[1] && s.orgarr) |
| 453 | | AND sop_id IS NOT NULL |
| 454 | | AND s.is_act IS TRUE |
| 455 | | AND pd.comple IS NOT TRUE |
| 456 | | AND ptsttp != 'START' |
| 457 | | UNION |
| 458 | | SELECT (rcp_id) AS keyval, |
| 459 | | p2.prtpid, |
| 460 | | substr(p.dscrpt, 0, 100) AS dscrpt, |
| 461 | | 'RCP' AS clsnam, |
| 462 | | end___, |
| 463 | | s.ptstnm, |
| 464 | | 0 AS dctpid, |
| 465 | | ptstid, |
| 466 | | orgarr |
| 467 | | FROM procedures pd |
| 468 | | LEFT JOIN stages s USING(procid) |
| 469 | | LEFT JOIN procedures p2 ON (p2.procid = pd.rootpr) |
| 470 | | LEFT JOIN bpm_loops_def bld USING(ptstid) |
| 471 | | RIGHT JOIN rcp_cards p ON (p.procid = p2.procid) |
| 472 | | WHERE (bld.multii IS NOT TRUE |
| 473 | | OR s.prn_id IS NOT NULL) |
| 474 | | AND s.ptsttp != 'SUBPROCESS' |
| 475 | | AND p.is_fix IS FALSE |
| 476 | | AND p.is_del IS FALSE |
| 477 | | AND ((ARRAY[1] && s.orgarr) |
| 478 | | OR (s.orgarr IS NULL |
| 479 | | AND p.emp_id = 2)) |
| 480 | | AND sop_id IS NOT NULL |
| 481 | | AND s.is_act IS TRUE |
| 482 | | AND pd.comple IS NOT TRUE |
| 483 | | AND ptsttp != 'START' |
| 484 | | ) AS aa USING(prtpid) |
| 485 | | ORDER BY prtpid, ptstid, (end___ IS NOT NULL AND orgarr IS NOT NULL) DESC, end___ IS NOT NULL DESC, end___ ASC, orgarr IS NOT NULL DESC, dscrpt ASC |
| 486 | | }}} |
| 487 | | |
| 488 | | zapytanie dla wszystkich zadań workflow z modułu Dokumenty: |
| 489 | | {{{ |
| 490 | | #!sql |
| 491 | | SELECT doc.*, reg.regtyp,reg.ndenam, type.dctptp,type.dctpnm,type.dctpic, |
| 492 | | (SELECT ARRAY[count(f.fileid),min(f.fileid)] FROM attachments LEFT JOIN files f USING(fileid) WHERE is_del IS NOT TRUE AND doc_id = doc.doc_id) as files, |
| 493 | | (EXISTS (SELECT 1 FROM documents_history WHERE doc_id=doc.doc_id AND orunid = 1 AND strpos(dscrpt, 'Otwarcie')=1)) as is_ack |
| 494 | | FROM documents doc |
| 495 | | INNER JOIN ( |
| 496 | | SELECT doc_id, (array_agg(attrib))[1] as attrib |
| 497 | | FROM ( |
| 498 | | SELECT documents_view.doc_id, (CASE WHEN dlu_doc_id IS NULL THEN NULL ELSE coalesce(dlu.attrib, '') END) as attrib |
| 499 | | FROM documents documents_view |
| 500 | | LEFT JOIN storage_places stp using(strpid) |
| 501 | | LEFT JOIN ( |
| 502 | | SELECT dlu.doc_id as dlu_doc_id, dlu.attrib, dlu.usr_id, ul.prior_ |
| 503 | | FROM doc_link_users dlu |
| 504 | | LEFT JOIN users_link_group ul on(ul.grp_id = dlu.grp_id AND ul.usr_id = 2) |
| 505 | | WHERE dlu.usr_id = 2 OR ul.usr_id = 2 |
| 506 | | ) dlu ON (dlu_doc_id = documents_view.doc_id) |
| 507 | | WHERE is_del IS NOT TRUE AND gostof IS NULL |
| 508 | | AND procid IN ( |
| 509 | | SELECT p.rootpr |
| 510 | | FROM procedures p |
| 511 | | LEFT JOIN stages s USING(procid) |
| 512 | | WHERE (ARRAY(SELECT orunid FROM orgtree_view LEFT JOIN users_link_org_units ulo USING(orunid) WHERE orunid = 1 OR (ourpid = 1 AND EXISTS(SELECT 1 FROM (SELECT value_ FROM global_sys_conf WHERE ent_id = 2 AND objnam = 'Replacement_'||ulo.usr_id AND varnam = 'from__') as as1 WHERE value_::date <= now()::date) AND EXISTS(SELECT 1 FROM (SELECT value_ FROM global_sys_conf WHERE ent_id = 2 AND objnam = 'Replacement_'||ulo.usr_id AND varnam = 'to____') as sd2 WHERE value_::date >= now()::date))) && s.orgarr) AND s.ptsttp != 'SUBPROCESS' AND sop_id IS NOT NULL AND is_act IS TRUE |
| 513 | | ) |
| 514 | | AND is_iso IS FALSE AND partof IS NULL ORDER BY dlu_doc_id, dlu.usr_id IS NOT NULL DESC, dlu.prior_ ASC |
| 515 | | ) foo2 |
| 516 | | GROUP BY doc_id |
| 517 | | ) dolu USING (doc_id) |
| 518 | | LEFT JOIN types_of_documents type USING(dctpid) |
| 519 | | LEFT JOIN registers reg USING(reg_id) |
| 520 | | WHERE (substr(dolu.attrib, 1, 1) = 'r') OR (dolu.attrib IS NULL AND (prionl IS NOT TRUE OR doc.adduid = 2)) |
| 521 | | ORDER BY timest DESC,doc_id DESC |
| 522 | | }}} |
| 523 | | |
| 524 | | |
| 525 | | === dla wersji >= 5.0 === |
| | 390 | |
| | 391 | |
| | 392 | === Zapytanie dla moich zadań workflow (v>5) === |
| | 550 | === Zapytanie dla wszystkich zadań workflow z modułu Dokumenty: === |
| | 551 | {{{ |
| | 552 | #!sql |
| | 553 | SELECT doc.*, reg.regtyp,reg.ndenam, type.dctptp,type.dctpnm,type.dctpic, |
| | 554 | (SELECT ARRAY[count(f.fileid),min(f.fileid)] FROM attachments LEFT JOIN files f USING(fileid) WHERE is_del IS NOT TRUE AND doc_id = doc.doc_id) as files, |
| | 555 | (EXISTS (SELECT 1 FROM documents_history WHERE doc_id=doc.doc_id AND orunid = 1 AND strpos(dscrpt, 'Otwarcie')=1)) as is_ack |
| | 556 | FROM documents doc |
| | 557 | INNER JOIN ( |
| | 558 | SELECT doc_id, (array_agg(attrib))[1] as attrib |
| | 559 | FROM ( |
| | 560 | SELECT documents_view.doc_id, (CASE WHEN dlu_doc_id IS NULL THEN NULL ELSE coalesce(dlu.attrib, '') END) as attrib |
| | 561 | FROM documents documents_view |
| | 562 | LEFT JOIN storage_places stp using(strpid) |
| | 563 | LEFT JOIN ( |
| | 564 | SELECT dlu.doc_id as dlu_doc_id, dlu.attrib, dlu.usr_id, ul.prior_ |
| | 565 | FROM doc_link_users dlu |
| | 566 | LEFT JOIN users_link_group ul on(ul.grp_id = dlu.grp_id AND ul.usr_id = 2) |
| | 567 | WHERE dlu.usr_id = 2 OR ul.usr_id = 2 |
| | 568 | ) dlu ON (dlu_doc_id = documents_view.doc_id) |
| | 569 | WHERE is_del IS NOT TRUE AND gostof IS NULL |
| | 570 | AND procid IN ( |
| | 571 | SELECT p.rootpr |
| | 572 | FROM procedures p |
| | 573 | LEFT JOIN stages s USING(procid) |
| | 574 | WHERE (ARRAY(SELECT orunid FROM orgtree_view LEFT JOIN users_link_org_units ulo USING(orunid) WHERE orunid = 1 OR (ourpid = 1 AND EXISTS(SELECT 1 FROM (SELECT value_ FROM global_sys_conf WHERE ent_id = 2 AND objnam = 'Replacement_'||ulo.usr_id AND varnam = 'from__') as as1 WHERE value_::date <= now()::date) AND EXISTS(SELECT 1 FROM (SELECT value_ FROM global_sys_conf WHERE ent_id = 2 AND objnam = 'Replacement_'||ulo.usr_id AND varnam = 'to____') as sd2 WHERE value_::date >= now()::date))) && s.orgarr) AND s.ptsttp != 'SUBPROCESS' AND sop_id IS NOT NULL AND is_act IS TRUE |
| | 575 | ) |
| | 576 | AND is_iso IS FALSE AND partof IS NULL ORDER BY dlu_doc_id, dlu.usr_id IS NOT NULL DESC, dlu.prior_ ASC |
| | 577 | ) foo2 |
| | 578 | GROUP BY doc_id |
| | 579 | ) dolu USING (doc_id) |
| | 580 | LEFT JOIN types_of_documents type USING(dctpid) |
| | 581 | LEFT JOIN registers reg USING(reg_id) |
| | 582 | WHERE (substr(dolu.attrib, 1, 1) = 'r') OR (dolu.attrib IS NULL AND (prionl IS NOT TRUE OR doc.adduid = 2)) |
| | 583 | ORDER BY timest DESC,doc_id DESC |
| | 584 | }}} |