From 2485a21b6c499c803ae21579151d4d97e7000107 Mon Sep 17 00:00:00 2001 From: Laurent Giovannoni <laurent.giovannoni@maarch.org> Date: Thu, 16 Nov 2017 09:35:28 +0100 Subject: [PATCH] FEAT #6431 delete left join on res_attachments in res_view_letterbox --- .../documents_list_copies.php | 12 +- .../documents_list_with_attachments.php | 13 +- .../documents_list_mlb_search_adv.php | 2 +- modules/avis/documents_list_with_avis.php | 2 +- modules/folder/documents_list_in_folder.php | 10 - .../class/class_modules_tools_Abstract.php | 2 +- .../visa/documents_list_with_signatory.php | 2 +- sql/17_xx.sql | 197 +++++++++++ sql/structure.sql | 332 ++++++++++-------- 9 files changed, 409 insertions(+), 163 deletions(-) diff --git a/apps/maarch_entreprise/documents_list_copies.php b/apps/maarch_entreprise/documents_list_copies.php index 6d08699996a..40a237ef084 100755 --- a/apps/maarch_entreprise/documents_list_copies.php +++ b/apps/maarch_entreprise/documents_list_copies.php @@ -89,7 +89,7 @@ array_push( "contact_firstname", "contact_lastname", "contact_society", "user_lastname", "user_firstname", "priority", "creation_date", "admission_date", "subject", "process_limit_date", "entity_label", "dest_user", "category_id", "type_label", - "exp_user_id", "count_attachment", "alt_identifier", "is_multicontacts", "locker_user_id", "locker_time", "viewed", "address_id" + "address_id", "exp_user_id", "doc_custom_n1 as count_attachment", "alt_identifier", "is_multicontacts", "locker_user_id", "locker_time", "viewed" ); if ($core_tools->is_module_loaded("cases") == true) { @@ -168,7 +168,7 @@ $extension_icon = ''; if($selectedTemplate <> 'none') $extension_icon = "_big"; $db = new Database(); - +$addressId = 0; //Result Array for ($i=0;$i<count($tab);$i++) { @@ -227,6 +227,10 @@ for ($i=0;$i<count($tab);$i++) { $tab[$i][$j]['hasNotes'] = $stmt->fetchObject(); $tab[$i][$j]['res_multi_contacts'] = $_SESSION['mlb_search_current_res_id']; } + if ($tab[$i][$j][$value]=="address_id") { + $addressId = $tab[$i][$j]["value"]; + $tab[$i][$j]["show"] = false; + } if ($tab[$i][$j][$value]=="creation_date") { $tab[$i][$j]["value"]=$core_tools->format_date_db($tab[$i][$j]["value"], false, '', true); @@ -349,9 +353,9 @@ for ($i=0;$i<count($tab);$i++) { } if ($tab[$i][$j][$value]=="exp_user_id") { - if (empty($contact_lastname) && empty($contact_firstname) && empty($user_lastname) && empty($user_firstname) && !empty($tab[$i][25]['value'])) { + if (empty($contact_lastname) && empty($contact_firstname) && empty($user_lastname) && empty($user_firstname) && !empty($addressId)) { $query = "SELECT ca.firstname, ca.lastname FROM contact_addresses ca WHERE ca.id = ?"; - $arrayPDO = array($tab[$i][25]['value']); + $arrayPDO = array($addressId); $stmt2 = $db->query($query, $arrayPDO); $return_contact = $stmt2->fetchObject(); diff --git a/apps/maarch_entreprise/documents_list_with_attachments.php b/apps/maarch_entreprise/documents_list_with_attachments.php index 65db5552ca7..2d874a722ee 100755 --- a/apps/maarch_entreprise/documents_list_with_attachments.php +++ b/apps/maarch_entreprise/documents_list_with_attachments.php @@ -89,7 +89,7 @@ array_push( "contact_firstname", "contact_lastname", "contact_society", "user_lastname", "user_firstname", "priority", "creation_date", "admission_date", "subject", "process_limit_date", "entity_label", "dest_user", "category_id", "type_label", - "exp_user_id", "count_attachment", "alt_identifier", "is_multicontacts", "locker_user_id", "locker_time", "address_id", "filename" + "address_id", "exp_user_id", "doc_custom_n1 as count_attachment", "alt_identifier", "is_multicontacts", "locker_user_id", "locker_time", "filename" ); if ($core_tools->is_module_loaded("cases") == true) { @@ -149,7 +149,6 @@ $_SESSION['current_basket']['last_query']['where'] = $where; $_SESSION['current_basket']['last_query']['arrayPDO'] = $arrayPDO; $_SESSION['current_basket']['last_query']['orderstr'] = $orderstr; -//$request->show(); exit; //Templates $defaultTemplate = 'documents_list_with_attachments'; $selectedTemplate = $list->getTemplate(); @@ -170,7 +169,7 @@ if($selectedTemplate <> 'none') $extension_icon = "_big"; $db = new Database(); //Result Array - +$addressId = 0; $tabI = count($tab); for ($i=0;$i<$tabI;$i++) { @@ -229,6 +228,10 @@ for ($i=0;$i<$tabI;$i++) { $tab[$i][$j]['hasNotes'] = $stmt->fetchObject(); $tab[$i][$j]['res_multi_contacts'] = $_SESSION['mlb_search_current_res_id']; } + if ($tab[$i][$j][$value]=="address_id") { + $addressId = $tab[$i][$j]["value"]; + $tab[$i][$j]["show"] = false; + } if ($tab[$i][$j][$value]=="creation_date") { $tab[$i][$j]["value"]=$core_tools->format_date_db($tab[$i][$j]["value"], false, '', true); @@ -338,9 +341,9 @@ for ($i=0;$i<$tabI;$i++) { } if ($tab[$i][$j][$value]=="exp_user_id") { - if (empty($contact_lastname) && empty($contact_firstname) && empty($user_lastname) && empty($user_firstname) && !empty($tab[$i][24]['value'])) { + if (empty($contact_lastname) && empty($contact_firstname) && empty($user_lastname) && empty($user_firstname) && !empty($addressId)) { $query = "SELECT ca.firstname, ca.lastname FROM contact_addresses ca WHERE ca.id = ?"; - $arrayPDO = array($tab[$i][24]['value']); + $arrayPDO = array($addressId); $stmt2 = $db->query($query, $arrayPDO); $return_contact = $stmt2->fetchObject(); diff --git a/apps/maarch_entreprise/indexing_searching/documents_list_mlb_search_adv.php b/apps/maarch_entreprise/indexing_searching/documents_list_mlb_search_adv.php index b80a4c8f272..1bf1326484c 100755 --- a/apps/maarch_entreprise/indexing_searching/documents_list_mlb_search_adv.php +++ b/apps/maarch_entreprise/indexing_searching/documents_list_mlb_search_adv.php @@ -229,7 +229,7 @@ if($mode == 'normal') { array_push($select[$view], "res_id", "res_id as is_labeled", "alt_identifier", "priority", "status", "subject", "category_id as category_img", "contact_firstname", "contact_lastname", "contact_society", "user_lastname", "user_firstname", "category_id", "dest_user", "type_label", - "creation_date", "entity_label", "address_id", "exp_user_id", "count_attachment", "is_multicontacts","filename"); + "creation_date", "entity_label", "address_id", "exp_user_id", "doc_custom_n1 as count_attachment", "is_multicontacts","filename"); //Cases if($core_tools->is_module_loaded("cases") == true) { array_push($select[$view], "case_id", "case_label", "case_description"); diff --git a/modules/avis/documents_list_with_avis.php b/modules/avis/documents_list_with_avis.php index 75761dca2e1..0dfa8a9f17c 100755 --- a/modules/avis/documents_list_with_avis.php +++ b/modules/avis/documents_list_with_avis.php @@ -89,7 +89,7 @@ array_push( "contact_firstname", "contact_lastname", "contact_society", "user_lastname", "user_firstname", "priority", "creation_date", 'modification_date', "admission_date", "subject", "process_limit_date", 'recommendation_limit_date', "entity_label", "dest_user", "category_id", "type_label", - "exp_user_id", "count_attachment", "alt_identifier", "is_multicontacts", "locker_user_id", "locker_time", "address_id" + "exp_user_id", "doc_custom_n1 as count_attachment", "alt_identifier", "is_multicontacts", "locker_user_id", "locker_time", "address_id" ); if ($core_tools->is_module_loaded("cases") == true) { diff --git a/modules/folder/documents_list_in_folder.php b/modules/folder/documents_list_in_folder.php index 07793f96b3b..f5dd72fa0bd 100755 --- a/modules/folder/documents_list_in_folder.php +++ b/modules/folder/documents_list_in_folder.php @@ -281,16 +281,6 @@ if (isset($_REQUEST['id']) && !empty($_REQUEST['id'])) $tab[$i][$j]["value"] = $tab[$i][$j]['value']; $tab[$i][$j]["order"]="category_id"; } - if($tab[$i][$j][$value]=="count_attachment") - { - $tab[$i][$j]["label"]=_ATTACHMENTS; - $tab[$i][$j]["size"]="12"; - $tab[$i][$j]["label_align"]="left"; - $tab[$i][$j]["align"]="left"; - $tab[$i][$j]["valign"]="bottom"; - $tab[$i][$j]["show"]=false; - $tab[$i][$j]["order"]='count_attachment'; - } if($tab[$i][$j][$value]=="case_id" && $core_tools->is_module_loaded("cases") == true) { $tab[$i][$j]["label"]=_CASE_NUM; diff --git a/modules/visa/class/class_modules_tools_Abstract.php b/modules/visa/class/class_modules_tools_Abstract.php index 6a24993ff3d..65b72a9157a 100755 --- a/modules/visa/class/class_modules_tools_Abstract.php +++ b/modules/visa/class/class_modules_tools_Abstract.php @@ -100,7 +100,7 @@ abstract class visa_Abstract extends Database "contact_firstname", "contact_lastname", "contact_society", "user_lastname", "user_firstname", "priority", "creation_date", "admission_date", "subject", "process_limit_date", "entity_label", "dest_user", "category_id", "type_label", - "exp_user_id", "count_attachment", "alt_identifier","is_multicontacts", "locker_user_id", "locker_time"); + "exp_user_id", "doc_custom_n1 as count_attachment", "alt_identifier","is_multicontacts", "locker_user_id", "locker_time"); $where_tab = array(); diff --git a/modules/visa/documents_list_with_signatory.php b/modules/visa/documents_list_with_signatory.php index 10bd3d77589..1a2c8118773 100755 --- a/modules/visa/documents_list_with_signatory.php +++ b/modules/visa/documents_list_with_signatory.php @@ -89,7 +89,7 @@ array_push( "contact_firstname", "contact_lastname", "contact_society", "user_lastname", "user_firstname", "priority", "creation_date", 'modification_date', "admission_date", "subject", "process_limit_date", 'recommendation_limit_date', "entity_label", "dest_user", "category_id", "type_label", - "exp_user_id", "count_attachment", "alt_identifier", "is_multicontacts", "locker_user_id", "locker_time", "address_id", "res_id as signatory_user" + "exp_user_id", "doc_custom_n1 as count_attachment", "alt_identifier", "is_multicontacts", "locker_user_id", "locker_time", "address_id", "res_id as signatory_user" ); if ($core_tools->is_module_loaded("cases") == true) { diff --git a/sql/17_xx.sql b/sql/17_xx.sql index 8a5922aac39..a6e38e3b6a2 100755 --- a/sql/17_xx.sql +++ b/sql/17_xx.sql @@ -123,6 +123,203 @@ WITH (OIDS=FALSE); ALTER TABLE entities DROP COLUMN IF EXISTS entity_full_name; ALTER TABLE entities ADD entity_full_name text; +/*PERFS ON VIEW*/ +DROP TABLE IF EXISTS ar_batch; +DROP VIEW IF EXISTS view_postindexing; +DROP VIEW res_view_letterbox; + +CREATE OR REPLACE VIEW res_view_letterbox AS + SELECT r.tablename, + r.is_multi_docservers, + r.res_id, + r.type_id, + r.policy_id, + r.cycle_id, + d.description AS type_label, + d.doctypes_first_level_id, + dfl.doctypes_first_level_label, + dfl.css_style AS doctype_first_level_style, + d.doctypes_second_level_id, + dsl.doctypes_second_level_label, + dsl.css_style AS doctype_second_level_style, + r.format, + r.typist, + r.creation_date, + r.modification_date, + r.relation, + r.docserver_id, + r.folders_system_id, + f.folder_id, + f.destination AS folder_destination, + f.is_frozen AS folder_is_frozen, + r.path, + r.filename, + r.fingerprint, + r.offset_doc, + r.filesize, + r.status, + r.work_batch, + r.arbatch_id, + r.arbox_id, + r.page_count, + r.is_paper, + r.doc_date, + r.scan_date, + r.scan_user, + r.scan_location, + r.scan_wkstation, + r.scan_batch, + r.doc_language, + r.description, + r.source, + r.author, + r.reference_number, + r.custom_t1 AS doc_custom_t1, + r.custom_t2 AS doc_custom_t2, + r.custom_t3 AS doc_custom_t3, + r.custom_t4 AS doc_custom_t4, + r.custom_t5 AS doc_custom_t5, + r.custom_t6 AS doc_custom_t6, + r.custom_t7 AS doc_custom_t7, + r.custom_t8 AS doc_custom_t8, + r.custom_t9 AS doc_custom_t9, + r.custom_t10 AS doc_custom_t10, + r.custom_t11 AS doc_custom_t11, + r.custom_t12 AS doc_custom_t12, + r.custom_t13 AS doc_custom_t13, + r.custom_t14 AS doc_custom_t14, + r.custom_t15 AS doc_custom_t15, + r.custom_d1 AS doc_custom_d1, + r.custom_d2 AS doc_custom_d2, + r.custom_d3 AS doc_custom_d3, + r.custom_d4 AS doc_custom_d4, + r.custom_d5 AS doc_custom_d5, + r.custom_d6 AS doc_custom_d6, + r.custom_d7 AS doc_custom_d7, + r.custom_d8 AS doc_custom_d8, + r.custom_d9 AS doc_custom_d9, + r.custom_d10 AS doc_custom_d10, + r.custom_n1 AS doc_custom_n1, + r.custom_n2 AS doc_custom_n2, + r.custom_n3 AS doc_custom_n3, + r.custom_n4 AS doc_custom_n4, + r.custom_n5 AS doc_custom_n5, + r.custom_f1 AS doc_custom_f1, + r.custom_f2 AS doc_custom_f2, + r.custom_f3 AS doc_custom_f3, + r.custom_f4 AS doc_custom_f4, + r.custom_f5 AS doc_custom_f5, + f.foldertype_id, + ft.foldertype_label, + f.custom_t1 AS fold_custom_t1, + f.custom_t2 AS fold_custom_t2, + f.custom_t3 AS fold_custom_t3, + f.custom_t4 AS fold_custom_t4, + f.custom_t5 AS fold_custom_t5, + f.custom_t6 AS fold_custom_t6, + f.custom_t7 AS fold_custom_t7, + f.custom_t8 AS fold_custom_t8, + f.custom_t9 AS fold_custom_t9, + f.custom_t10 AS fold_custom_t10, + f.custom_t11 AS fold_custom_t11, + f.custom_t12 AS fold_custom_t12, + f.custom_t13 AS fold_custom_t13, + f.custom_t14 AS fold_custom_t14, + f.custom_t15 AS fold_custom_t15, + f.custom_d1 AS fold_custom_d1, + f.custom_d2 AS fold_custom_d2, + f.custom_d3 AS fold_custom_d3, + f.custom_d4 AS fold_custom_d4, + f.custom_d5 AS fold_custom_d5, + f.custom_d6 AS fold_custom_d6, + f.custom_d7 AS fold_custom_d7, + f.custom_d8 AS fold_custom_d8, + f.custom_d9 AS fold_custom_d9, + f.custom_d10 AS fold_custom_d10, + f.custom_n1 AS fold_custom_n1, + f.custom_n2 AS fold_custom_n2, + f.custom_n3 AS fold_custom_n3, + f.custom_n4 AS fold_custom_n4, + f.custom_n5 AS fold_custom_n5, + f.custom_f1 AS fold_custom_f1, + f.custom_f2 AS fold_custom_f2, + f.custom_f3 AS fold_custom_f3, + f.custom_f4 AS fold_custom_f4, + f.custom_f5 AS fold_custom_f5, + f.is_complete AS fold_complete, + f.status AS fold_status, + f.subject AS fold_subject, + f.parent_id AS fold_parent_id, + f.folder_level, + f.folder_name, + f.creation_date AS fold_creation_date, + r.initiator, + r.destination, + r.dest_user, + r.confidentiality, + mlb.category_id, + mlb.exp_contact_id, + mlb.exp_user_id, + mlb.dest_user_id, + mlb.dest_contact_id, + mlb.address_id, + mlb.nature_id, + mlb.alt_identifier, + mlb.admission_date, + mlb.answer_type_bitmask, + mlb.other_answer_desc, + mlb.sve_start_date, + mlb.sve_identifier, + mlb.process_limit_date, + mlb.recommendation_limit_date, + mlb.closing_date, + mlb.alarm1_date, + mlb.alarm2_date, + mlb.flag_notif, + mlb.flag_alarm1, + mlb.flag_alarm2, + mlb.is_multicontacts, + r.video_user, + r.video_time, + r.video_batch, + r.subject, + r.identifier, + r.title, + r.priority, + mlb.process_notes, + r.locker_user_id, + r.locker_time, + ca.case_id, + ca.case_label, + ca.case_description, + en.entity_label, + en.entity_type AS entitytype, + cont.contact_id, + cont.firstname AS contact_firstname, + cont.lastname AS contact_lastname, + cont.society AS contact_society, + u.lastname AS user_lastname, + u.firstname AS user_firstname, + list.item_id AS dest_user_from_listinstance, + list.viewed, + r.is_frozen AS res_is_frozen + FROM doctypes d, + doctypes_first_level dfl, + doctypes_second_level dsl, + res_letterbox r + LEFT JOIN entities en ON r.destination::text = en.entity_id::text + LEFT JOIN folders f ON r.folders_system_id = f.folders_system_id + LEFT JOIN cases_res cr ON r.res_id = cr.res_id + LEFT JOIN mlb_coll_ext mlb ON mlb.res_id = r.res_id + LEFT JOIN foldertypes ft ON f.foldertype_id = ft.foldertype_id AND f.status::text <> 'DEL'::text + LEFT JOIN cases ca ON cr.case_id = ca.case_id + LEFT JOIN contacts_v2 cont ON mlb.exp_contact_id = cont.contact_id OR mlb.dest_contact_id = cont.contact_id + LEFT JOIN users u ON mlb.exp_user_id::text = u.user_id::text OR mlb.dest_user_id::text = u.user_id::text + LEFT JOIN listinstance list ON r.res_id = list.res_id AND list.item_mode::text = 'dest'::text + WHERE r.type_id = d.type_id AND d.doctypes_first_level_id = dfl.doctypes_first_level_id AND d.doctypes_second_level_id = dsl.doctypes_second_level_id; + + + /*SIGNATURE BOOK*/ DROP VIEW IF EXISTS res_view_attachments; ALTER TABLE res_attachments DROP COLUMN IF EXISTS in_signature_book; diff --git a/sql/structure.sql b/sql/structure.sql index 6b4bc739973..6bafeefb818 100755 --- a/sql/structure.sql +++ b/sql/structure.sql @@ -681,7 +681,7 @@ CREATE TABLE listinstance process_date timestamp without time zone, process_comment character varying(255), signatory boolean default false, - requested_signature boolean default false + requested_signature boolean default false, CONSTRAINT listinstance_pkey PRIMARY KEY (listinstance_id) ) WITH (OIDS=FALSE); @@ -1124,48 +1124,6 @@ WITH ( OIDS=FALSE ); --- modules/physical_archive/sql/structure/physical_archive.postgresql.sql - -CREATE TABLE ar_batch -( - arbatch_id serial NOT NULL , - title character varying(255) DEFAULT NULL, - subject character varying(255) DEFAULT NULL, - description text, - arbox_id bigint, - status character varying(3) DEFAULT NULL, - creation_date timestamp without time zone DEFAULT NULL, - retention_time character varying(50) DEFAULT NULL, - custom_t1 character varying(3) DEFAULT NULL, - custom_n1 integer, - custom_f1 numeric, - custom_d1 timestamp without time zone DEFAULT NULL, - custom_t2 character varying(3) DEFAULT NULL, - custom_n2 integer, - custom_f2 numeric, - custom_d2 timestamp without time zone DEFAULT NULL, - custom_t3 character varying(50) DEFAULT NULL, - custom_n3 integer, - custom_f3 numeric, - custom_d3 timestamp without time zone DEFAULT NULL, - custom_t4 character varying(50) DEFAULT NULL, - custom_n4 integer, - custom_f4 numeric, - custom_d4 timestamp without time zone DEFAULT NULL, - custom_t5 character varying(255) DEFAULT NULL, - custom_n5 integer, - custom_f5 numeric, - custom_d5 timestamp without time zone DEFAULT NULL, - custom_t6 character varying(255) DEFAULT NULL, - custom_t7 character varying(255) DEFAULT NULL, - custom_t8 character varying(255) DEFAULT NULL, - custom_t9 character varying(255) DEFAULT NULL, - custom_t10 character varying(255) DEFAULT NULL, - custom_t11 character varying(255) DEFAULT NULL, - CONSTRAINT ar_batch_pkey PRIMARY KEY (arbatch_id) -) ; - - -- modules/postindexing/sql/structure/postindexing.postgresql.sql @@ -2593,10 +2551,8 @@ CREATE VIEW res_view_business AS en.entity_label, cont.firstname AS contact_firstname, cont.lastname AS contact_lastname, cont.society AS contact_society, list.item_id AS dest_user_from_listinstance, list.viewed, - r.is_frozen as res_is_frozen, COALESCE(att.count_attachment, 0::bigint) AS count_attachment + r.is_frozen as res_is_frozen FROM doctypes d, doctypes_first_level dfl, doctypes_second_level dsl, res_business r - LEFT JOIN (SELECT res_attachments.res_id_master, coll_id, count(res_attachments.res_id_master) AS count_attachment - FROM res_attachments WHERE res_attachments.status <> 'DEL' GROUP BY res_attachments.res_id_master, coll_id) att ON (r.res_id = att.res_id_master and att.coll_id = 'business_coll') LEFT JOIN entities en ON ((r.destination)::text = (en.entity_id)::text) LEFT JOIN folders f ON ((r.folders_system_id = f.folders_system_id)) LEFT JOIN business_coll_ext busi ON (busi.res_id = r.res_id) @@ -2609,100 +2565,196 @@ CREATE VIEW res_view_business AS -- view for letterbox DROP VIEW IF EXISTS res_view_letterbox; -CREATE VIEW res_view_letterbox AS - SELECT r.tablename, r.is_multi_docservers, r.res_id, r.type_id, r.policy_id, r.cycle_id, - d.description AS type_label, d.doctypes_first_level_id, - dfl.doctypes_first_level_label, dfl.css_style as doctype_first_level_style, - d.doctypes_second_level_id, dsl.doctypes_second_level_label, - dsl.css_style as doctype_second_level_style, r.format, r.typist, - r.creation_date, r.modification_date, r.relation, r.docserver_id, r.folders_system_id, - f.folder_id, f.destination as folder_destination, f.is_frozen as folder_is_frozen, r.path, r.filename, r.fingerprint, r.offset_doc, r.filesize, - r.status, r.work_batch, r.arbatch_id, r.arbox_id, r.page_count, r.is_paper, - r.doc_date, r.scan_date, r.scan_user, r.scan_location, r.scan_wkstation, - r.scan_batch, r.doc_language, r.description, r.source, r.author, r.reference_number, - r.custom_t1 AS doc_custom_t1, r.custom_t2 AS doc_custom_t2, - r.custom_t3 AS doc_custom_t3, r.custom_t4 AS doc_custom_t4, - r.custom_t5 AS doc_custom_t5, r.custom_t6 AS doc_custom_t6, - r.custom_t7 AS doc_custom_t7, r.custom_t8 AS doc_custom_t8, - r.custom_t9 AS doc_custom_t9, r.custom_t10 AS doc_custom_t10, - r.custom_t11 AS doc_custom_t11, r.custom_t12 AS doc_custom_t12, - r.custom_t13 AS doc_custom_t13, r.custom_t14 AS doc_custom_t14, - r.custom_t15 AS doc_custom_t15, r.custom_d1 AS doc_custom_d1, - r.custom_d2 AS doc_custom_d2, r.custom_d3 AS doc_custom_d3, - r.custom_d4 AS doc_custom_d4, r.custom_d5 AS doc_custom_d5, - r.custom_d6 AS doc_custom_d6, r.custom_d7 AS doc_custom_d7, - r.custom_d8 AS doc_custom_d8, r.custom_d9 AS doc_custom_d9, - r.custom_d10 AS doc_custom_d10, r.custom_n1 AS doc_custom_n1, - r.custom_n2 AS doc_custom_n2, r.custom_n3 AS doc_custom_n3, - r.custom_n4 AS doc_custom_n4, r.custom_n5 AS doc_custom_n5, - r.custom_f1 AS doc_custom_f1, r.custom_f2 AS doc_custom_f2, - r.custom_f3 AS doc_custom_f3, r.custom_f4 AS doc_custom_f4, - r.custom_f5 AS doc_custom_f5, f.foldertype_id, ft.foldertype_label, - f.custom_t1 AS fold_custom_t1, f.custom_t2 AS fold_custom_t2, - f.custom_t3 AS fold_custom_t3, f.custom_t4 AS fold_custom_t4, - f.custom_t5 AS fold_custom_t5, f.custom_t6 AS fold_custom_t6, - f.custom_t7 AS fold_custom_t7, f.custom_t8 AS fold_custom_t8, - f.custom_t9 AS fold_custom_t9, f.custom_t10 AS fold_custom_t10, - f.custom_t11 AS fold_custom_t11, f.custom_t12 AS fold_custom_t12, - f.custom_t13 AS fold_custom_t13, f.custom_t14 AS fold_custom_t14, - f.custom_t15 AS fold_custom_t15, f.custom_d1 AS fold_custom_d1, - f.custom_d2 AS fold_custom_d2, f.custom_d3 AS fold_custom_d3, - f.custom_d4 AS fold_custom_d4, f.custom_d5 AS fold_custom_d5, - f.custom_d6 AS fold_custom_d6, f.custom_d7 AS fold_custom_d7, - f.custom_d8 AS fold_custom_d8, f.custom_d9 AS fold_custom_d9, - f.custom_d10 AS fold_custom_d10, f.custom_n1 AS fold_custom_n1, - f.custom_n2 AS fold_custom_n2, f.custom_n3 AS fold_custom_n3, - f.custom_n4 AS fold_custom_n4, f.custom_n5 AS fold_custom_n5, - f.custom_f1 AS fold_custom_f1, f.custom_f2 AS fold_custom_f2, - f.custom_f3 AS fold_custom_f3, f.custom_f4 AS fold_custom_f4, - f.custom_f5 AS fold_custom_f5, f.is_complete AS fold_complete, - f.status AS fold_status, f.subject AS fold_subject, - f.parent_id AS fold_parent_id, f.folder_level, f.folder_name, - f.creation_date AS fold_creation_date, r.initiator, r.destination, - r.dest_user, r.confidentiality, mlb.category_id, mlb.exp_contact_id, mlb.exp_user_id, - mlb.dest_user_id, mlb.dest_contact_id, mlb.address_id, mlb.nature_id, mlb.alt_identifier, - mlb.admission_date, mlb.answer_type_bitmask, mlb.other_answer_desc, - mlb.sve_start_date, mlb.sve_identifier, - mlb.process_limit_date, mlb.recommendation_limit_date, mlb.closing_date, mlb.alarm1_date, mlb.alarm2_date, - mlb.flag_notif, mlb.flag_alarm1, mlb.flag_alarm2, mlb.is_multicontacts, r.video_user, r.video_time, - r.video_batch, r.subject, r.identifier, r.title, r.priority, mlb.process_notes, - r.locker_user_id, r.locker_time, - ca.case_id, ca.case_label, ca.case_description, en.entity_label, en.entity_type AS entityType, - cont.contact_id AS contact_id, - cont.firstname AS contact_firstname, cont.lastname AS contact_lastname, - cont.society AS contact_society, u.lastname AS user_lastname, - u.firstname AS user_firstname, list.item_id AS dest_user_from_listinstance, list.viewed, - r.is_frozen as res_is_frozen, COALESCE(att.count_attachment, 0::bigint) AS count_attachment - FROM doctypes d, doctypes_first_level dfl, doctypes_second_level dsl, - (((((((((((ar_batch a RIGHT JOIN res_letterbox r ON ((r.arbatch_id = a.arbatch_id))) - LEFT JOIN (SELECT res_attachments.res_id_master, count(res_attachments.res_id_master) AS count_attachment - FROM res_attachments WHERE res_attachments.status <> 'DEL' GROUP BY res_attachments.res_id_master) att ON (r.res_id = att.res_id_master)) - LEFT JOIN entities en ON (((r.destination)::text = (en.entity_id)::text))) - LEFT JOIN folders f ON ((r.folders_system_id = f.folders_system_id))) - LEFT JOIN cases_res cr ON ((r.res_id = cr.res_id))) - LEFT JOIN mlb_coll_ext mlb ON ((mlb.res_id = r.res_id))) - LEFT JOIN foldertypes ft ON (((f.foldertype_id = ft.foldertype_id) - AND ((f.status)::text <> 'DEL'::text)))) - LEFT JOIN cases ca ON ((cr.case_id = ca.case_id))) - LEFT JOIN contacts_v2 cont ON (((mlb.exp_contact_id = cont.contact_id) - OR (mlb.dest_contact_id = cont.contact_id)))) - LEFT JOIN users u ON ((((mlb.exp_user_id)::text = (u.user_id)::text) - OR ((mlb.dest_user_id)::text = (u.user_id)::text)))) - LEFT JOIN listinstance list ON (((r.res_id = list.res_id) - AND ((list.item_mode)::text = 'dest'::text)))) - WHERE (((r.type_id = d.type_id) AND - (d.doctypes_first_level_id = dfl.doctypes_first_level_id)) - AND (d.doctypes_second_level_id = dsl.doctypes_second_level_id)); - ---view for postindexing -DROP VIEW IF EXISTS view_postindexing; -CREATE VIEW view_postindexing AS -SELECT res_view_letterbox.video_user, (users.firstname::text || ' '::text) || users.lastname::text AS user_name, res_view_letterbox.video_batch, res_view_letterbox.video_time, count(res_view_letterbox.res_id) AS count_documents, res_view_letterbox.folders_system_id, (folders.folder_id::text || ' / '::text) || folders.folder_name::text AS folder_full_label, folders.video_status -FROM res_view_letterbox -LEFT JOIN users ON res_view_letterbox.video_user::text = users.user_id::text -LEFT JOIN folders ON folders.folders_system_id = res_view_letterbox.folders_system_id -WHERE res_view_letterbox.video_batch IS NOT NULL -GROUP BY res_view_letterbox.video_user, (users.firstname::text || ' '::text) || users.lastname::text, res_view_letterbox.video_batch, res_view_letterbox.video_time, res_view_letterbox.folders_system_id, (folders.folder_id::text || ' / '::text) || folders.folder_name::text, folders.video_status; +CREATE OR REPLACE VIEW res_view_letterbox AS + SELECT r.tablename, + r.is_multi_docservers, + r.res_id, + r.type_id, + r.policy_id, + r.cycle_id, + d.description AS type_label, + d.doctypes_first_level_id, + dfl.doctypes_first_level_label, + dfl.css_style AS doctype_first_level_style, + d.doctypes_second_level_id, + dsl.doctypes_second_level_label, + dsl.css_style AS doctype_second_level_style, + r.format, + r.typist, + r.creation_date, + r.modification_date, + r.relation, + r.docserver_id, + r.folders_system_id, + f.folder_id, + f.destination AS folder_destination, + f.is_frozen AS folder_is_frozen, + r.path, + r.filename, + r.fingerprint, + r.offset_doc, + r.filesize, + r.status, + r.work_batch, + r.arbatch_id, + r.arbox_id, + r.page_count, + r.is_paper, + r.doc_date, + r.scan_date, + r.scan_user, + r.scan_location, + r.scan_wkstation, + r.scan_batch, + r.doc_language, + r.description, + r.source, + r.author, + r.reference_number, + r.custom_t1 AS doc_custom_t1, + r.custom_t2 AS doc_custom_t2, + r.custom_t3 AS doc_custom_t3, + r.custom_t4 AS doc_custom_t4, + r.custom_t5 AS doc_custom_t5, + r.custom_t6 AS doc_custom_t6, + r.custom_t7 AS doc_custom_t7, + r.custom_t8 AS doc_custom_t8, + r.custom_t9 AS doc_custom_t9, + r.custom_t10 AS doc_custom_t10, + r.custom_t11 AS doc_custom_t11, + r.custom_t12 AS doc_custom_t12, + r.custom_t13 AS doc_custom_t13, + r.custom_t14 AS doc_custom_t14, + r.custom_t15 AS doc_custom_t15, + r.custom_d1 AS doc_custom_d1, + r.custom_d2 AS doc_custom_d2, + r.custom_d3 AS doc_custom_d3, + r.custom_d4 AS doc_custom_d4, + r.custom_d5 AS doc_custom_d5, + r.custom_d6 AS doc_custom_d6, + r.custom_d7 AS doc_custom_d7, + r.custom_d8 AS doc_custom_d8, + r.custom_d9 AS doc_custom_d9, + r.custom_d10 AS doc_custom_d10, + r.custom_n1 AS doc_custom_n1, + r.custom_n2 AS doc_custom_n2, + r.custom_n3 AS doc_custom_n3, + r.custom_n4 AS doc_custom_n4, + r.custom_n5 AS doc_custom_n5, + r.custom_f1 AS doc_custom_f1, + r.custom_f2 AS doc_custom_f2, + r.custom_f3 AS doc_custom_f3, + r.custom_f4 AS doc_custom_f4, + r.custom_f5 AS doc_custom_f5, + f.foldertype_id, + ft.foldertype_label, + f.custom_t1 AS fold_custom_t1, + f.custom_t2 AS fold_custom_t2, + f.custom_t3 AS fold_custom_t3, + f.custom_t4 AS fold_custom_t4, + f.custom_t5 AS fold_custom_t5, + f.custom_t6 AS fold_custom_t6, + f.custom_t7 AS fold_custom_t7, + f.custom_t8 AS fold_custom_t8, + f.custom_t9 AS fold_custom_t9, + f.custom_t10 AS fold_custom_t10, + f.custom_t11 AS fold_custom_t11, + f.custom_t12 AS fold_custom_t12, + f.custom_t13 AS fold_custom_t13, + f.custom_t14 AS fold_custom_t14, + f.custom_t15 AS fold_custom_t15, + f.custom_d1 AS fold_custom_d1, + f.custom_d2 AS fold_custom_d2, + f.custom_d3 AS fold_custom_d3, + f.custom_d4 AS fold_custom_d4, + f.custom_d5 AS fold_custom_d5, + f.custom_d6 AS fold_custom_d6, + f.custom_d7 AS fold_custom_d7, + f.custom_d8 AS fold_custom_d8, + f.custom_d9 AS fold_custom_d9, + f.custom_d10 AS fold_custom_d10, + f.custom_n1 AS fold_custom_n1, + f.custom_n2 AS fold_custom_n2, + f.custom_n3 AS fold_custom_n3, + f.custom_n4 AS fold_custom_n4, + f.custom_n5 AS fold_custom_n5, + f.custom_f1 AS fold_custom_f1, + f.custom_f2 AS fold_custom_f2, + f.custom_f3 AS fold_custom_f3, + f.custom_f4 AS fold_custom_f4, + f.custom_f5 AS fold_custom_f5, + f.is_complete AS fold_complete, + f.status AS fold_status, + f.subject AS fold_subject, + f.parent_id AS fold_parent_id, + f.folder_level, + f.folder_name, + f.creation_date AS fold_creation_date, + r.initiator, + r.destination, + r.dest_user, + r.confidentiality, + mlb.category_id, + mlb.exp_contact_id, + mlb.exp_user_id, + mlb.dest_user_id, + mlb.dest_contact_id, + mlb.address_id, + mlb.nature_id, + mlb.alt_identifier, + mlb.admission_date, + mlb.answer_type_bitmask, + mlb.other_answer_desc, + mlb.sve_start_date, + mlb.sve_identifier, + mlb.process_limit_date, + mlb.recommendation_limit_date, + mlb.closing_date, + mlb.alarm1_date, + mlb.alarm2_date, + mlb.flag_notif, + mlb.flag_alarm1, + mlb.flag_alarm2, + mlb.is_multicontacts, + r.video_user, + r.video_time, + r.video_batch, + r.subject, + r.identifier, + r.title, + r.priority, + mlb.process_notes, + r.locker_user_id, + r.locker_time, + ca.case_id, + ca.case_label, + ca.case_description, + en.entity_label, + en.entity_type AS entitytype, + cont.contact_id, + cont.firstname AS contact_firstname, + cont.lastname AS contact_lastname, + cont.society AS contact_society, + u.lastname AS user_lastname, + u.firstname AS user_firstname, + list.item_id AS dest_user_from_listinstance, + list.viewed, + r.is_frozen AS res_is_frozen + FROM doctypes d, + doctypes_first_level dfl, + doctypes_second_level dsl, + res_letterbox r + LEFT JOIN entities en ON r.destination::text = en.entity_id::text + LEFT JOIN folders f ON r.folders_system_id = f.folders_system_id + LEFT JOIN cases_res cr ON r.res_id = cr.res_id + LEFT JOIN mlb_coll_ext mlb ON mlb.res_id = r.res_id + LEFT JOIN foldertypes ft ON f.foldertype_id = ft.foldertype_id AND f.status::text <> 'DEL'::text + LEFT JOIN cases ca ON cr.case_id = ca.case_id + LEFT JOIN contacts_v2 cont ON mlb.exp_contact_id = cont.contact_id OR mlb.dest_contact_id = cont.contact_id + LEFT JOIN users u ON mlb.exp_user_id::text = u.user_id::text OR mlb.dest_user_id::text = u.user_id::text + LEFT JOIN listinstance list ON r.res_id = list.res_id AND list.item_mode::text = 'dest'::text + WHERE r.type_id = d.type_id AND d.doctypes_first_level_id = dfl.doctypes_first_level_id AND d.doctypes_second_level_id = dsl.doctypes_second_level_id; + --views for autofoldering -- Resource view used to fill af_target, we exclude from res_x the branches already in af_target table -- GitLab