Advertisement
Guest User

Untitled

a guest
Mar 26th, 2019
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. update project_portfolio set json = convert_from(decode(portfolio, 'base64'), 'UTF8')::json ;
  2. update project_portfolio set administrative_data    = json->'administrative_data';
  3. update project_portfolio set governance_data        = json->'governance_data';
  4. update project_portfolio set executive_summary      = json->'sections'->'executive_summary';
  5. update project_portfolio set final_report_summary   = json->'sections'->'final_report_summary';
  6. update project_portfolio set impact                 = json->'sections'->'impact';
  7. update project_portfolio set objective              = json->'sections'->'objective';
  8. update project_portfolio set title                  = json->'sections'->'title';
  9.  
  10. -- document
  11. INSERT INTO DOCUMENT
  12.             (id,
  13.              title,
  14.              abstract,
  15.              doctype,
  16.              repository,
  17.              rights,
  18.              pubyear)
  19. SELECT Replace(Replace(projectid, '40|corda__h2020', '50|h2020_object'),
  20.               '40|corda_______', '50|fp7___object')    AS id,
  21.        'Objectives of project '
  22.        ||( administrative_data ->> 'acronym' :: TEXT ) AS title,
  23.        objective ->> 'text'                            AS abstract,
  24.        'project_report'                                AS doctype,
  25.        'CORDIS'                                        AS repository,
  26.        'OPEN' :: TEXT                                  AS rights,
  27.        administrative_data ->> 'date_to' :: TEXT       AS pubyear
  28. FROM   project_portfolio
  29. UNION ALL
  30. SELECT Replace(Replace(projectid, '40|corda__h2020', '50|h2020summary'),
  31.               '40|corda_______', '50|fp7__summary')    AS id,
  32.        'Final report summary of project '
  33.        ||( administrative_data ->> 'acronym' :: TEXT ) AS title,
  34.        final_report_summary ->> 'text'                 AS abstract,
  35.        'project_report'                                AS doctype,
  36.        'CORDIS'                                        AS repository,
  37.        'OPEN' :: TEXT                                  AS rights,
  38.        administrative_data ->> 'date_to' :: TEXT       AS pubyear
  39. FROM   project_portfolio
  40. UNION ALL
  41. SELECT Replace(Replace(projectid, '40|corda__h2020', '50|h2020___exec'),
  42.               '40|corda_______', '50|fp7_____exec')    AS id,
  43.        'Executive summary of project '
  44.        ||( administrative_data ->> 'acronym' :: TEXT ) AS title,
  45.        executive_summary ->> 'text'                    AS abstract,
  46.        'project_report'                                AS doctype,
  47.        'CORDIS'                                        AS repository,
  48.        'OPEN' :: TEXT                                  AS rights,
  49.        administrative_data ->> 'date_to' :: TEXT       AS pubyear
  50. FROM   project_portfolio
  51.  
  52. -- doc_project
  53. INSERT INTO doc_project
  54.             (docid,
  55.              projectid,
  56.              inferred)
  57. SELECT REPLACE(REPLACE(projectid, '40|corda__h2020', '50|h2020_object'),
  58.               '40|corda_______', '50|fp7___object') AS docid,
  59.        projectid,
  60.        TRUE                                         AS inferred
  61. FROM   project_portfolio
  62. UNION ALL
  63. SELECT REPLACE(REPLACE(projectid, '40|corda__h2020', '50|h2020summary'),
  64.               '40|corda_______', '50|fp7__summary') AS docid,
  65.        projectid,
  66.        TRUE                                         AS inferred
  67. FROM   project_portfolio
  68. UNION ALL
  69. SELECT REPLACE(REPLACE(projectid, '40|corda__h2020', '50|h2020___exec'),
  70.               '40|corda_______', '50|fp7_____exec') AS docid,
  71.        projectid,
  72.        TRUE                                         AS inferred
  73. FROM   project_portfolio
  74.  
  75.  
  76. -- updates the project table with data from the project_portfolios
  77. update project p set (total_cost,contribution,currency) = ((administrative_data->>'Total cost')::numeric, (administrative_data->>'contribution')::numeric, 'EURO'::text) from
  78. project_portfolio pp where pp.projectid = p.id ;
  79.  
  80. update project_organization po set (contribution, currency) = (U.contribution, 'EURO'::text) from
  81. (
  82.     select projectid, '20|ec__________::'||MD5(o->>'pic') as orgid, (o->>'contribution')::numeric as contribution from
  83.         (
  84.             select projectid, json_array_elements(administrative_data->'coordinators') as o from project_portfolio
  85.             union all
  86.             select projectid, json_array_elements(administrative_data->'participants') as o from project_portfolio
  87.         ) as T
  88. ) as U where po.orgid = U.orgid and po.projectid = U.projectid
  89.  
  90. -- include start/end dates from project portfolios
  91. update project p set startdate = pp.administrative_data->>'date_from' from project_portfolio pp where p.startdate is null and p.id = pp.projectid ;
  92. update project p set enddate = pp.administrative_data->>'date_to' from project_portfolio pp where p.enddate is null and p.id = pp.projectid ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement