/ Hex Artifact Content
Login

Artifact 399de4cc92479befd5991731846b99e9e2071dde:

Attachment "c2ad16f99-bug.txt" to ticket [c2ad16f9] added by drh 2012-05-21 03:24:26.
0000: 43 52 45 41 54 45 20 54 41 42 4c 45 20 70 61 72  CREATE TABLE par
0010: 61 6d 65 74 65 72 73 20 28 69 64 20 49 4e 54 45  ameters (id INTE
0020: 47 45 52 20 4e 4f 54 20 4e 55 4c 4c 20 50 52 49  GER NOT NULL PRI
0030: 4d 41 52 59 20 4b 45 59 20 41 55 54 4f 49 4e 43  MARY KEY AUTOINC
0040: 52 45 4d 45 4e 54 2c 74 5f 75 75 69 64 5f 70 61  REMENT,t_uuid_pa
0050: 72 65 6e 74 20 54 45 58 54 20 4e 4f 54 20 4e 55  rent TEXT NOT NU
0060: 4c 4c 20 44 45 46 41 55 4c 54 20 27 27 2c 74 5f  LL DEFAULT '',t_
0070: 6e 61 6d 65 20 54 45 58 54 20 4e 4f 54 20 4e 55  name TEXT NOT NU
0080: 4c 4c 2c 74 5f 76 61 6c 75 65 20 54 45 58 54 20  LL,t_value TEXT 
0090: 4e 4f 54 20 4e 55 4c 4c 20 44 45 46 41 55 4c 54  NOT NULL DEFAULT
00a0: 20 27 27 2c 62 5f 62 6c 6f 62 20 42 4c 4f 42 2c   '',b_blob BLOB,
00b0: 64 5f 6c 61 73 74 6d 6f 64 69 66 64 61 74 65 20  d_lastmodifdate 
00c0: 44 41 54 45 20 4e 4f 54 20 4e 55 4c 4c 20 44 45  DATE NOT NULL DE
00d0: 46 41 55 4c 54 20 43 55 52 52 45 4e 54 5f 54 49  FAULT CURRENT_TI
00e0: 4d 45 53 54 41 4d 50 2c 69 5f 74 6d 70 20 49 4e  MESTAMP,i_tmp IN
00f0: 54 45 47 45 52 20 4e 4f 54 20 4e 55 4c 4c 20 44  TEGER NOT NULL D
0100: 45 46 41 55 4c 54 20 30 29 3b 0a 43 52 45 41 54  EFAULT 0);.CREAT
0110: 45 20 54 41 42 4c 45 20 64 6f 63 74 72 61 6e 73  E TABLE doctrans
0120: 61 63 74 69 6f 6e 20 28 69 64 20 49 4e 54 45 47  action (id INTEG
0130: 45 52 20 4e 4f 54 20 4e 55 4c 4c 20 50 52 49 4d  ER NOT NULL PRIM
0140: 41 52 59 20 4b 45 59 20 41 55 54 4f 49 4e 43 52  ARY KEY AUTOINCR
0150: 45 4d 45 4e 54 2c 74 5f 6e 61 6d 65 20 54 45 58  EMENT,t_name TEX
0160: 54 20 4e 4f 54 20 4e 55 4c 4c 2c 74 5f 6d 6f 64  T NOT NULL,t_mod
0170: 65 20 56 41 52 43 48 41 52 28 31 29 20 44 45 46  e VARCHAR(1) DEF
0180: 41 55 4c 54 20 27 55 27 20 43 48 45 43 4b 20 28  AULT 'U' CHECK (
0190: 74 5f 6d 6f 64 65 20 49 4e 20 28 27 55 27 2c 20  t_mode IN ('U', 
01a0: 27 52 27 29 29 2c 64 5f 64 61 74 65 20 44 41 54  'R')),d_date DAT
01b0: 45 20 4e 4f 54 20 4e 55 4c 4c 2c 74 5f 73 61 76  E NOT NULL,t_sav
01c0: 65 73 74 65 70 20 56 41 52 43 48 41 52 28 31 29  estep VARCHAR(1)
01d0: 20 44 45 46 41 55 4c 54 20 27 4e 27 20 43 48 45   DEFAULT 'N' CHE
01e0: 43 4b 20 28 74 5f 73 61 76 65 73 74 65 70 20 49  CK (t_savestep I
01f0: 4e 20 28 27 59 27 2c 20 27 4e 27 29 29 2c 69 5f  N ('Y', 'N')),i_
0200: 70 61 72 65 6e 74 20 49 4e 54 45 47 45 52 2c 20  parent INTEGER, 
0210: 74 5f 72 65 66 72 65 73 68 76 69 65 77 73 20 56  t_refreshviews V
0220: 41 52 43 48 41 52 28 31 29 20 44 45 46 41 55 4c  ARCHAR(1) DEFAUL
0230: 54 20 27 59 27 20 43 48 45 43 4b 20 28 74 5f 72  T 'Y' CHECK (t_r
0240: 65 66 72 65 73 68 76 69 65 77 73 20 49 4e 20 28  efreshviews IN (
0250: 27 59 27 2c 20 27 4e 27 29 29 29 3b 0a 43 52 45  'Y', 'N')));.CRE
0260: 41 54 45 20 54 41 42 4c 45 20 64 6f 63 74 72 61  ATE TABLE doctra
0270: 6e 73 61 63 74 69 6f 6e 69 74 65 6d 20 28 69 64  nsactionitem (id
0280: 20 49 4e 54 45 47 45 52 20 4e 4f 54 20 4e 55 4c   INTEGER NOT NUL
0290: 4c 20 50 52 49 4d 41 52 59 20 4b 45 59 20 41 55  L PRIMARY KEY AU
02a0: 54 4f 49 4e 43 52 45 4d 45 4e 54 2c 20 72 64 5f  TOINCREMENT, rd_
02b0: 64 6f 63 74 72 61 6e 73 61 63 74 69 6f 6e 5f 69  doctransaction_i
02c0: 64 20 49 4e 54 45 47 45 52 20 4e 4f 54 20 4e 55  d INTEGER NOT NU
02d0: 4c 4c 2c 69 5f 6f 62 6a 65 63 74 5f 69 64 20 49  LL,i_object_id I
02e0: 4e 54 45 47 45 52 20 4e 4f 54 20 4e 55 4c 4c 2c  NTEGER NOT NULL,
02f0: 74 5f 6f 62 6a 65 63 74 5f 74 61 62 6c 65 20 54  t_object_table T
0300: 45 58 54 20 4e 4f 54 20 4e 55 4c 4c 2c 74 5f 61  EXT NOT NULL,t_a
0310: 63 74 69 6f 6e 20 56 41 52 43 48 41 52 28 31 29  ction VARCHAR(1)
0320: 20 44 45 46 41 55 4c 54 20 27 49 27 20 43 48 45   DEFAULT 'I' CHE
0330: 43 4b 20 28 74 5f 61 63 74 69 6f 6e 20 49 4e 20  CK (t_action IN 
0340: 28 27 49 27 2c 20 27 55 27 2c 20 27 44 27 29 29  ('I', 'U', 'D'))
0350: 2c 74 5f 73 71 6c 6f 72 64 65 72 20 54 45 58 54  ,t_sqlorder TEXT
0360: 20 4e 4f 54 20 4e 55 4c 4c 20 44 45 46 41 55 4c   NOT NULL DEFAUL
0370: 54 20 27 27 29 3b 0a 43 52 45 41 54 45 20 54 41  T '');.CREATE TA
0380: 42 4c 45 20 64 6f 63 74 72 61 6e 73 61 63 74 69  BLE doctransacti
0390: 6f 6e 6d 73 67 20 28 69 64 20 49 4e 54 45 47 45  onmsg (id INTEGE
03a0: 52 20 4e 4f 54 20 4e 55 4c 4c 20 50 52 49 4d 41  R NOT NULL PRIMA
03b0: 52 59 20 4b 45 59 20 41 55 54 4f 49 4e 43 52 45  RY KEY AUTOINCRE
03c0: 4d 45 4e 54 2c 20 72 64 5f 64 6f 63 74 72 61 6e  MENT, rd_doctran
03d0: 73 61 63 74 69 6f 6e 5f 69 64 20 49 4e 54 45 47  saction_id INTEG
03e0: 45 52 20 4e 4f 54 20 4e 55 4c 4c 2c 74 5f 6d 65  ER NOT NULL,t_me
03f0: 73 73 61 67 65 20 54 45 58 54 20 4e 4f 54 20 4e  ssage TEXT NOT N
0400: 55 4c 4c 20 44 45 46 41 55 4c 54 20 27 27 2c 74  ULL DEFAULT '',t
0410: 5f 70 6f 70 75 70 20 56 41 52 43 48 41 52 28 31  _popup VARCHAR(1
0420: 29 20 44 45 46 41 55 4c 54 20 27 59 27 20 43 48  ) DEFAULT 'Y' CH
0430: 45 43 4b 20 28 74 5f 70 6f 70 75 70 20 49 4e 20  ECK (t_popup IN 
0440: 28 27 59 27 2c 20 27 4e 27 29 29 29 3b 0a 43 52  ('Y', 'N')));.CR
0450: 45 41 54 45 20 54 41 42 4c 45 20 75 6e 69 74 28  EATE TABLE unit(
0460: 69 64 20 49 4e 54 45 47 45 52 20 4e 4f 54 20 4e  id INTEGER NOT N
0470: 55 4c 4c 20 50 52 49 4d 41 52 59 20 4b 45 59 20  ULL PRIMARY KEY 
0480: 41 55 54 4f 49 4e 43 52 45 4d 45 4e 54 2c 74 5f  AUTOINCREMENT,t_
0490: 6e 61 6d 65 20 54 45 58 54 20 4e 4f 54 20 4e 55  name TEXT NOT NU
04a0: 4c 4c 2c 74 5f 73 79 6d 62 6f 6c 20 54 45 58 54  LL,t_symbol TEXT
04b0: 20 4e 4f 54 20 4e 55 4c 4c 20 44 45 46 41 55 4c   NOT NULL DEFAUL
04c0: 54 20 27 27 2c 74 5f 63 6f 75 6e 74 72 79 20 54  T '',t_country T
04d0: 45 58 54 20 4e 4f 54 20 4e 55 4c 4c 20 44 45 46  EXT NOT NULL DEF
04e0: 41 55 4c 54 20 27 27 2c 74 5f 74 79 70 65 20 56  AULT '',t_type V
04f0: 41 52 43 48 41 52 28 31 29 20 4e 4f 54 20 4e 55  ARCHAR(1) NOT NU
0500: 4c 4c 20 44 45 46 41 55 4c 54 20 27 43 27 20 43  LL DEFAULT 'C' C
0510: 48 45 43 4b 20 28 74 5f 74 79 70 65 20 49 4e 20  HECK (t_type IN 
0520: 28 27 31 27 2c 20 27 32 27 2c 20 27 43 27 2c 20  ('1', '2', 'C', 
0530: 27 53 27 2c 20 27 49 27 2c 20 27 4f 27 29 29 2c  'S', 'I', 'O')),
0540: 74 5f 69 6e 74 65 72 6e 65 74 5f 63 6f 64 65 20  t_internet_code 
0550: 54 45 58 54 20 4e 4f 54 20 4e 55 4c 4c 20 44 45  TEXT NOT NULL DE
0560: 46 41 55 4c 54 20 27 27 2c 69 5f 6e 62 64 65 63  FAULT '',i_nbdec
0570: 69 6d 61 6c 20 49 4e 54 20 4e 4f 54 20 4e 55 4c  imal INT NOT NUL
0580: 4c 20 44 45 46 41 55 4c 54 20 32 2c 72 64 5f 75  L DEFAULT 2,rd_u
0590: 6e 69 74 5f 69 64 20 49 4e 54 45 47 45 52 20 4e  nit_id INTEGER N
05a0: 4f 54 20 4e 55 4c 4c 20 44 45 46 41 55 4c 54 20  OT NULL DEFAULT 
05b0: 30 2c 20 74 5f 73 6f 75 72 63 65 20 54 45 58 54  0, t_source TEXT
05c0: 20 4e 4f 54 20 4e 55 4c 4c 20 44 45 46 41 55 4c   NOT NULL DEFAUL
05d0: 54 20 27 27 29 3b 0a 43 52 45 41 54 45 20 54 41  T '');.CREATE TA
05e0: 42 4c 45 20 75 6e 69 74 76 61 6c 75 65 28 69 64  BLE unitvalue(id
05f0: 20 49 4e 54 45 47 45 52 20 4e 4f 54 20 4e 55 4c   INTEGER NOT NUL
0600: 4c 20 50 52 49 4d 41 52 59 20 4b 45 59 20 41 55  L PRIMARY KEY AU
0610: 54 4f 49 4e 43 52 45 4d 45 4e 54 2c 72 64 5f 75  TOINCREMENT,rd_u
0620: 6e 69 74 5f 69 64 20 49 4e 54 45 47 45 52 20 4e  nit_id INTEGER N
0630: 4f 54 20 4e 55 4c 4c 2c 64 5f 64 61 74 65 20 44  OT NULL,d_date D
0640: 41 54 45 20 4e 4f 54 20 4e 55 4c 4c 2c 66 5f 71  ATE NOT NULL,f_q
0650: 75 61 6e 74 69 74 79 20 46 4c 4f 41 54 20 4e 4f  uantity FLOAT NO
0660: 54 20 4e 55 4c 4c 20 43 48 45 43 4b 20 28 66 5f  T NULL CHECK (f_
0670: 71 75 61 6e 74 69 74 79 3e 3d 30 29 29 3b 0a 43  quantity>=0));.C
0680: 52 45 41 54 45 20 54 41 42 4c 45 20 62 61 6e 6b  REATE TABLE bank
0690: 20 28 69 64 20 49 4e 54 45 47 45 52 20 4e 4f 54   (id INTEGER NOT
06a0: 20 4e 55 4c 4c 20 50 52 49 4d 41 52 59 20 4b 45   NULL PRIMARY KE
06b0: 59 20 41 55 54 4f 49 4e 43 52 45 4d 45 4e 54 2c  Y AUTOINCREMENT,
06c0: 74 5f 6e 61 6d 65 20 54 45 58 54 20 4e 4f 54 20  t_name TEXT NOT 
06d0: 4e 55 4c 4c 20 44 45 46 41 55 4c 54 20 27 27 2c  NULL DEFAULT '',
06e0: 74 5f 62 61 6e 6b 5f 6e 75 6d 62 65 72 20 54 45  t_bank_number TE
06f0: 58 54 20 4e 4f 54 20 4e 55 4c 4c 20 44 45 46 41  XT NOT NULL DEFA
0700: 55 4c 54 20 27 27 2c 74 5f 69 63 6f 6e 20 54 45  ULT '',t_icon TE
0710: 58 54 20 4e 4f 54 20 4e 55 4c 4c 20 44 45 46 41  XT NOT NULL DEFA
0720: 55 4c 54 20 27 27 29 3b 0a 43 52 45 41 54 45 20  ULT '');.CREATE 
0730: 54 41 42 4c 45 20 69 6e 74 65 72 65 73 74 28 69  TABLE interest(i
0740: 64 20 49 4e 54 45 47 45 52 20 4e 4f 54 20 4e 55  d INTEGER NOT NU
0750: 4c 4c 20 50 52 49 4d 41 52 59 20 4b 45 59 20 41  LL PRIMARY KEY A
0760: 55 54 4f 49 4e 43 52 45 4d 45 4e 54 2c 72 64 5f  UTOINCREMENT,rd_
0770: 61 63 63 6f 75 6e 74 5f 69 64 20 49 4e 54 45 47  account_id INTEG
0780: 45 52 20 4e 4f 54 20 4e 55 4c 4c 2c 64 5f 64 61  ER NOT NULL,d_da
0790: 74 65 20 44 41 54 45 20 4e 4f 54 20 4e 55 4c 4c  te DATE NOT NULL
07a0: 2c 66 5f 72 61 74 65 20 46 4c 4f 41 54 20 4e 4f  ,f_rate FLOAT NO
07b0: 54 20 4e 55 4c 4c 20 43 48 45 43 4b 20 28 66 5f  T NULL CHECK (f_
07c0: 72 61 74 65 3e 3d 30 29 2c 74 5f 69 6e 63 6f 6d  rate>=0),t_incom
07d0: 65 5f 76 61 6c 75 65 5f 64 61 74 65 5f 6d 6f 64  e_value_date_mod
07e0: 65 20 56 41 52 43 48 41 52 28 31 29 20 4e 4f 54  e VARCHAR(1) NOT
07f0: 20 4e 55 4c 4c 20 44 45 46 41 55 4c 54 20 27 46   NULL DEFAULT 'F
0800: 27 20 43 48 45 43 4b 20 28 74 5f 69 6e 63 6f 6d  ' CHECK (t_incom
0810: 65 5f 76 61 6c 75 65 5f 64 61 74 65 5f 6d 6f 64  e_value_date_mod
0820: 65 20 49 4e 20 28 27 46 27 2c 20 27 30 27 2c 20  e IN ('F', '0', 
0830: 27 31 27 2c 20 27 32 27 2c 20 27 33 27 2c 20 27  '1', '2', '3', '
0840: 34 27 2c 20 27 35 27 29 29 2c 74 5f 65 78 70 65  4', '5')),t_expe
0850: 6e 64 69 74 75 72 65 5f 76 61 6c 75 65 5f 64 61  nditure_value_da
0860: 74 65 5f 6d 6f 64 65 20 56 41 52 43 48 41 52 28  te_mode VARCHAR(
0870: 31 29 20 4e 4f 54 20 4e 55 4c 4c 20 44 45 46 41  1) NOT NULL DEFA
0880: 55 4c 54 20 27 46 27 20 43 48 45 43 4b 20 28 74  ULT 'F' CHECK (t
0890: 5f 65 78 70 65 6e 64 69 74 75 72 65 5f 76 61 6c  _expenditure_val
08a0: 75 65 5f 64 61 74 65 5f 6d 6f 64 65 20 49 4e 20  ue_date_mode IN 
08b0: 28 27 46 27 2c 20 27 30 27 2c 20 27 31 27 2c 20  ('F', '0', '1', 
08c0: 27 32 27 2c 20 27 33 27 2c 20 27 34 27 2c 20 27  '2', '3', '4', '
08d0: 35 27 29 29 2c 74 5f 62 61 73 65 20 56 41 52 43  5')),t_base VARC
08e0: 48 41 52 28 33 29 20 4e 4f 54 20 4e 55 4c 4c 20  HAR(3) NOT NULL 
08f0: 44 45 46 41 55 4c 54 20 27 32 34 27 20 43 48 45  DEFAULT '24' CHE
0900: 43 4b 20 28 74 5f 62 61 73 65 20 49 4e 20 28 27  CK (t_base IN ('
0910: 32 34 27 2c 20 27 33 36 30 27 2c 20 27 33 36 35  24', '360', '365
0920: 27 29 29 29 3b 0a 43 52 45 41 54 45 20 54 41 42  ')));.CREATE TAB
0930: 4c 45 20 6f 70 65 72 61 74 69 6f 6e 28 69 64 20  LE operation(id 
0940: 49 4e 54 45 47 45 52 20 4e 4f 54 20 4e 55 4c 4c  INTEGER NOT NULL
0950: 20 50 52 49 4d 41 52 59 20 4b 45 59 20 41 55 54   PRIMARY KEY AUT
0960: 4f 49 4e 43 52 45 4d 45 4e 54 2c 69 5f 67 72 6f  OINCREMENT,i_gro
0970: 75 70 5f 69 64 20 49 4e 54 45 47 45 52 20 4e 4f  up_id INTEGER NO
0980: 54 20 4e 55 4c 4c 20 44 45 46 41 55 4c 54 20 30  T NULL DEFAULT 0
0990: 2c 69 5f 6e 75 6d 62 65 72 20 49 4e 54 45 47 45  ,i_number INTEGE
09a0: 52 20 44 45 46 41 55 4c 54 20 30 20 43 48 45 43  R DEFAULT 0 CHEC
09b0: 4b 20 28 69 5f 6e 75 6d 62 65 72 3e 3d 30 29 2c  K (i_number>=0),
09c0: 64 5f 64 61 74 65 20 44 41 54 45 20 4e 4f 54 20  d_date DATE NOT 
09d0: 4e 55 4c 4c 20 44 45 46 41 55 4c 54 20 27 30 30  NULL DEFAULT '00
09e0: 30 30 2d 30 30 2d 30 30 27 2c 72 64 5f 61 63 63  00-00-00',rd_acc
09f0: 6f 75 6e 74 5f 69 64 20 49 4e 54 45 47 45 52 20  ount_id INTEGER 
0a00: 4e 4f 54 20 4e 55 4c 4c 2c 74 5f 6d 6f 64 65 20  NOT NULL,t_mode 
0a10: 54 45 58 54 20 4e 4f 54 20 4e 55 4c 4c 20 44 45  TEXT NOT NULL DE
0a20: 46 41 55 4c 54 20 27 27 2c 72 5f 70 61 79 65 65  FAULT '',r_payee
0a30: 5f 69 64 20 49 4e 54 45 47 45 52 20 4e 4f 54 20  _id INTEGER NOT 
0a40: 4e 55 4c 4c 20 44 45 46 41 55 4c 54 20 30 2c 74  NULL DEFAULT 0,t
0a50: 5f 63 6f 6d 6d 65 6e 74 20 54 45 58 54 20 4e 4f  _comment TEXT NO
0a60: 54 20 4e 55 4c 4c 20 44 45 46 41 55 4c 54 20 27  T NULL DEFAULT '
0a70: 27 2c 72 63 5f 75 6e 69 74 5f 69 64 20 49 4e 54  ',rc_unit_id INT
0a80: 45 47 45 52 20 4e 4f 54 20 4e 55 4c 4c 2c 74 5f  EGER NOT NULL,t_
0a90: 73 74 61 74 75 73 20 56 41 52 43 48 41 52 28 31  status VARCHAR(1
0aa0: 29 20 4e 4f 54 20 4e 55 4c 4c 20 44 45 46 41 55  ) NOT NULL DEFAU
0ab0: 4c 54 20 27 4e 27 20 43 48 45 43 4b 20 28 74 5f  LT 'N' CHECK (t_
0ac0: 73 74 61 74 75 73 20 49 4e 20 28 27 4e 27 2c 20  status IN ('N', 
0ad0: 27 50 27 2c 20 27 59 27 29 29 2c 74 5f 62 6f 6f  'P', 'Y')),t_boo
0ae0: 6b 6d 61 72 6b 65 64 20 56 41 52 43 48 41 52 28  kmarked VARCHAR(
0af0: 31 29 20 4e 4f 54 20 4e 55 4c 4c 20 44 45 46 41  1) NOT NULL DEFA
0b00: 55 4c 54 20 27 4e 27 20 43 48 45 43 4b 20 28 74  ULT 'N' CHECK (t
0b10: 5f 62 6f 6f 6b 6d 61 72 6b 65 64 20 49 4e 20 28  _bookmarked IN (
0b20: 27 59 27 2c 20 27 4e 27 29 29 2c 74 5f 69 6d 70  'Y', 'N')),t_imp
0b30: 6f 72 74 65 64 20 56 41 52 43 48 41 52 28 31 29  orted VARCHAR(1)
0b40: 20 4e 4f 54 20 4e 55 4c 4c 20 44 45 46 41 55 4c   NOT NULL DEFAUL
0b50: 54 20 27 4e 27 20 43 48 45 43 4b 20 28 74 5f 69  T 'N' CHECK (t_i
0b60: 6d 70 6f 72 74 65 64 20 49 4e 20 28 27 59 27 2c  mported IN ('Y',
0b70: 20 27 4e 27 2c 20 27 50 27 2c 20 27 54 27 29 29   'N', 'P', 'T'))
0b80: 2c 74 5f 74 65 6d 70 6c 61 74 65 20 56 41 52 43  ,t_template VARC
0b90: 48 41 52 28 31 29 20 4e 4f 54 20 4e 55 4c 4c 20  HAR(1) NOT NULL 
0ba0: 44 45 46 41 55 4c 54 20 27 4e 27 20 43 48 45 43  DEFAULT 'N' CHEC
0bb0: 4b 20 28 74 5f 74 65 6d 70 6c 61 74 65 20 49 4e  K (t_template IN
0bc0: 20 28 27 59 27 2c 20 27 4e 27 29 29 2c 74 5f 69   ('Y', 'N')),t_i
0bd0: 6d 70 6f 72 74 5f 69 64 20 54 45 58 54 20 4e 4f  mport_id TEXT NO
0be0: 54 20 4e 55 4c 4c 20 44 45 46 41 55 4c 54 20 27  T NULL DEFAULT '
0bf0: 27 2c 69 5f 74 6d 70 20 49 4e 54 45 47 45 52 20  ',i_tmp INTEGER 
0c00: 4e 4f 54 20 4e 55 4c 4c 20 44 45 46 41 55 4c 54  NOT NULL DEFAULT
0c10: 20 30 2c 72 5f 72 65 63 75 72 72 65 6e 74 6f 70   0,r_recurrentop
0c20: 65 72 61 74 69 6f 6e 5f 69 64 20 49 4e 54 45 47  eration_id INTEG
0c30: 45 52 20 4e 4f 54 20 4e 55 4c 4c 20 44 45 46 41  ER NOT NULL DEFA
0c40: 55 4c 54 20 30 29 3b 0a 43 52 45 41 54 45 20 54  ULT 0);.CREATE T
0c50: 41 42 4c 45 20 6f 70 65 72 61 74 69 6f 6e 62 61  ABLE operationba
0c60: 6c 61 6e 63 65 28 69 64 20 49 4e 54 45 47 45 52  lance(id INTEGER
0c70: 20 4e 4f 54 20 4e 55 4c 4c 20 50 52 49 4d 41 52   NOT NULL PRIMAR
0c80: 59 20 4b 45 59 20 41 55 54 4f 49 4e 43 52 45 4d  Y KEY AUTOINCREM
0c90: 45 4e 54 2c 66 5f 62 61 6c 61 6e 63 65 20 46 4c  ENT,f_balance FL
0ca0: 4f 41 54 20 4e 4f 54 20 4e 55 4c 4c 20 44 45 46  OAT NOT NULL DEF
0cb0: 41 55 4c 54 20 30 2c 72 5f 6f 70 65 72 61 74 69  AULT 0,r_operati
0cc0: 6f 6e 5f 69 64 20 49 4e 54 45 47 45 52 20 4e 4f  on_id INTEGER NO
0cd0: 54 20 4e 55 4c 4c 29 3b 0a 43 52 45 41 54 45 20  T NULL);.CREATE 
0ce0: 54 41 42 4c 45 20 72 65 66 75 6e 64 20 28 69 64  TABLE refund (id
0cf0: 20 49 4e 54 45 47 45 52 20 4e 4f 54 20 4e 55 4c   INTEGER NOT NUL
0d00: 4c 20 50 52 49 4d 41 52 59 20 4b 45 59 20 41 55  L PRIMARY KEY AU
0d10: 54 4f 49 4e 43 52 45 4d 45 4e 54 2c 74 5f 6e 61  TOINCREMENT,t_na
0d20: 6d 65 20 54 45 58 54 20 4e 4f 54 20 4e 55 4c 4c  me TEXT NOT NULL
0d30: 20 44 45 46 41 55 4c 54 20 27 27 2c 74 5f 63 6f   DEFAULT '',t_co
0d40: 6d 6d 65 6e 74 20 54 45 58 54 20 4e 4f 54 20 4e  mment TEXT NOT N
0d50: 55 4c 4c 20 44 45 46 41 55 4c 54 20 27 27 2c 74  ULL DEFAULT '',t
0d60: 5f 63 6c 6f 73 65 20 56 41 52 43 48 41 52 28 31  _close VARCHAR(1
0d70: 29 20 44 45 46 41 55 4c 54 20 27 4e 27 20 43 48  ) DEFAULT 'N' CH
0d80: 45 43 4b 20 28 74 5f 63 6c 6f 73 65 20 49 4e 20  ECK (t_close IN 
0d90: 28 27 59 27 2c 20 27 4e 27 29 29 29 3b 0a 43 52  ('Y', 'N')));.CR
0da0: 45 41 54 45 20 54 41 42 4c 45 20 70 61 79 65 65  EATE TABLE payee
0db0: 20 28 69 64 20 49 4e 54 45 47 45 52 20 4e 4f 54   (id INTEGER NOT
0dc0: 20 4e 55 4c 4c 20 50 52 49 4d 41 52 59 20 4b 45   NULL PRIMARY KE
0dd0: 59 20 41 55 54 4f 49 4e 43 52 45 4d 45 4e 54 2c  Y AUTOINCREMENT,
0de0: 74 5f 6e 61 6d 65 20 54 45 58 54 20 4e 4f 54 20  t_name TEXT NOT 
0df0: 4e 55 4c 4c 20 44 45 46 41 55 4c 54 20 27 27 2c  NULL DEFAULT '',
0e00: 74 5f 61 64 64 72 65 73 73 20 54 45 58 54 20 4e  t_address TEXT N
0e10: 4f 54 20 4e 55 4c 4c 20 44 45 46 41 55 4c 54 20  OT NULL DEFAULT 
0e20: 27 27 2c 20 74 5f 62 6f 6f 6b 6d 61 72 6b 65 64  '', t_bookmarked
0e30: 20 56 41 52 43 48 41 52 28 31 29 20 4e 4f 54 20   VARCHAR(1) NOT 
0e40: 4e 55 4c 4c 20 44 45 46 41 55 4c 54 20 27 4e 27  NULL DEFAULT 'N'
0e50: 20 43 48 45 43 4b 20 28 74 5f 62 6f 6f 6b 6d 61   CHECK (t_bookma
0e60: 72 6b 65 64 20 49 4e 20 28 27 59 27 2c 20 27 4e  rked IN ('Y', 'N
0e70: 27 29 29 29 3b 0a 43 52 45 41 54 45 20 54 41 42  ')));.CREATE TAB
0e80: 4c 45 20 73 75 62 6f 70 65 72 61 74 69 6f 6e 28  LE suboperation(
0e90: 69 64 20 49 4e 54 45 47 45 52 20 4e 4f 54 20 4e  id INTEGER NOT N
0ea0: 55 4c 4c 20 50 52 49 4d 41 52 59 20 4b 45 59 20  ULL PRIMARY KEY 
0eb0: 41 55 54 4f 49 4e 43 52 45 4d 45 4e 54 2c 74 5f  AUTOINCREMENT,t_
0ec0: 63 6f 6d 6d 65 6e 74 20 54 45 58 54 20 4e 4f 54  comment TEXT NOT
0ed0: 20 4e 55 4c 4c 20 44 45 46 41 55 4c 54 20 27 27   NULL DEFAULT ''
0ee0: 2c 72 64 5f 6f 70 65 72 61 74 69 6f 6e 5f 69 64  ,rd_operation_id
0ef0: 20 49 4e 54 45 47 45 52 20 4e 4f 54 20 4e 55 4c   INTEGER NOT NUL
0f00: 4c 2c 72 5f 63 61 74 65 67 6f 72 79 5f 69 64 20  L,r_category_id 
0f10: 49 4e 54 45 47 45 52 20 4e 4f 54 20 4e 55 4c 4c  INTEGER NOT NULL
0f20: 20 44 45 46 41 55 4c 54 20 30 2c 66 5f 76 61 6c   DEFAULT 0,f_val
0f30: 75 65 20 46 4c 4f 41 54 20 4e 4f 54 20 4e 55 4c  ue FLOAT NOT NUL
0f40: 4c 20 44 45 46 41 55 4c 54 20 30 2e 30 2c 69 5f  L DEFAULT 0.0,i_
0f50: 74 6d 70 20 49 4e 54 45 47 45 52 20 4e 4f 54 20  tmp INTEGER NOT 
0f60: 4e 55 4c 4c 20 44 45 46 41 55 4c 54 20 30 2c 72  NULL DEFAULT 0,r
0f70: 5f 72 65 66 75 6e 64 5f 69 64 20 49 4e 54 45 47  _refund_id INTEG
0f80: 45 52 20 4e 4f 54 20 4e 55 4c 4c 20 44 45 46 41  ER NOT NULL DEFA
0f90: 55 4c 54 20 30 2c 20 74 5f 66 6f 72 6d 75 6c 61  ULT 0, t_formula
0fa0: 20 54 45 58 54 20 4e 4f 54 20 4e 55 4c 4c 20 44   TEXT NOT NULL D
0fb0: 45 46 41 55 4c 54 20 27 27 29 3b 0a 43 52 45 41  EFAULT '');.CREA
0fc0: 54 45 20 54 41 42 4c 45 20 72 75 6c 65 20 28 69  TE TABLE rule (i
0fd0: 64 20 49 4e 54 45 47 45 52 20 4e 4f 54 20 4e 55  d INTEGER NOT NU
0fe0: 4c 4c 20 50 52 49 4d 41 52 59 20 4b 45 59 20 41  LL PRIMARY KEY A
0ff0: 55 54 4f 49 4e 43 52 45 4d 45 4e 54 2c 74 5f 64  UTOINCREMENT,t_d
1000: 65 73 63 72 69 70 74 69 6f 6e 20 54 45 58 54 20  escription TEXT 
1010: 4e 4f 54 20 4e 55 4c 4c 20 44 45 46 41 55 4c 54  NOT NULL DEFAULT
1020: 20 27 27 2c 74 5f 64 65 66 69 6e 69 74 69 6f 6e   '',t_definition
1030: 20 54 45 58 54 20 4e 4f 54 20 4e 55 4c 4c 20 44   TEXT NOT NULL D
1040: 45 46 41 55 4c 54 20 27 27 2c 74 5f 61 63 74 69  EFAULT '',t_acti
1050: 6f 6e 5f 64 65 73 63 72 69 70 74 69 6f 6e 20 54  on_description T
1060: 45 58 54 20 4e 4f 54 20 4e 55 4c 4c 20 44 45 46  EXT NOT NULL DEF
1070: 41 55 4c 54 20 27 27 2c 74 5f 61 63 74 69 6f 6e  AULT '',t_action
1080: 5f 64 65 66 69 6e 69 74 69 6f 6e 20 54 45 58 54  _definition TEXT
1090: 20 4e 4f 54 20 4e 55 4c 4c 20 44 45 46 41 55 4c   NOT NULL DEFAUL
10a0: 54 20 27 27 2c 74 5f 61 63 74 69 6f 6e 5f 74 79  T '',t_action_ty
10b0: 70 65 20 56 41 52 43 48 41 52 28 31 29 20 44 45  pe VARCHAR(1) DE
10c0: 46 41 55 4c 54 20 27 53 27 20 43 48 45 43 4b 20  FAULT 'S' CHECK 
10d0: 28 74 5f 61 63 74 69 6f 6e 5f 74 79 70 65 20 49  (t_action_type I
10e0: 4e 20 28 27 53 27 2c 20 27 55 27 2c 20 27 41 27  N ('S', 'U', 'A'
10f0: 29 29 2c 74 5f 62 6f 6f 6b 6d 61 72 6b 65 64 20  )),t_bookmarked 
1100: 56 41 52 43 48 41 52 28 31 29 20 4e 4f 54 20 4e  VARCHAR(1) NOT N
1110: 55 4c 4c 20 44 45 46 41 55 4c 54 20 27 4e 27 20  ULL DEFAULT 'N' 
1120: 43 48 45 43 4b 20 28 74 5f 62 6f 6f 6b 6d 61 72  CHECK (t_bookmar
1130: 6b 65 64 20 49 4e 20 28 27 59 27 2c 20 27 4e 27  ked IN ('Y', 'N'
1140: 29 29 2c 66 5f 73 6f 72 74 6f 72 64 65 72 20 46  )),f_sortorder F
1150: 4c 4f 41 54 29 3b 0a 43 52 45 41 54 45 20 54 41  LOAT);.CREATE TA
1160: 42 4c 45 20 62 75 64 67 65 74 20 28 69 64 20 49  BLE budget (id I
1170: 4e 54 45 47 45 52 20 4e 4f 54 20 4e 55 4c 4c 20  NTEGER NOT NULL 
1180: 50 52 49 4d 41 52 59 20 4b 45 59 20 41 55 54 4f  PRIMARY KEY AUTO
1190: 49 4e 43 52 45 4d 45 4e 54 2c 72 63 5f 63 61 74  INCREMENT,rc_cat
11a0: 65 67 6f 72 79 5f 69 64 20 49 4e 54 45 47 45 52  egory_id INTEGER
11b0: 20 4e 4f 54 20 4e 55 4c 4c 20 44 45 46 41 55 4c   NOT NULL DEFAUL
11c0: 54 20 30 2c 74 5f 69 6e 63 6c 75 64 69 6e 67 5f  T 0,t_including_
11d0: 73 75 62 63 61 74 65 67 6f 72 69 65 73 20 54 45  subcategories TE
11e0: 58 54 20 4e 4f 54 20 4e 55 4c 4c 20 44 45 46 41  XT NOT NULL DEFA
11f0: 55 4c 54 20 27 4e 27 20 43 48 45 43 4b 20 28 74  ULT 'N' CHECK (t
1200: 5f 69 6e 63 6c 75 64 69 6e 67 5f 73 75 62 63 61  _including_subca
1210: 74 65 67 6f 72 69 65 73 20 49 4e 20 28 27 59 27  tegories IN ('Y'
1220: 2c 20 27 4e 27 29 29 2c 66 5f 62 75 64 67 65 74  , 'N')),f_budget
1230: 65 64 20 46 4c 4f 41 54 20 4e 4f 54 20 4e 55 4c  ed FLOAT NOT NUL
1240: 4c 20 44 45 46 41 55 4c 54 20 30 2e 30 2c 66 5f  L DEFAULT 0.0,f_
1250: 62 75 64 67 65 74 65 64 5f 6d 6f 64 69 66 69 65  budgeted_modifie
1260: 64 20 46 4c 4f 41 54 20 4e 4f 54 20 4e 55 4c 4c  d FLOAT NOT NULL
1270: 20 44 45 46 41 55 4c 54 20 30 2e 30 2c 66 5f 74   DEFAULT 0.0,f_t
1280: 72 61 6e 73 66 65 72 72 65 64 20 46 4c 4f 41 54  ransferred FLOAT
1290: 20 4e 4f 54 20 4e 55 4c 4c 20 44 45 46 41 55 4c   NOT NULL DEFAUL
12a0: 54 20 30 2e 30 2c 69 5f 79 65 61 72 20 49 4e 54  T 0.0,i_year INT
12b0: 45 47 45 52 20 4e 4f 54 20 4e 55 4c 4c 20 44 45  EGER NOT NULL DE
12c0: 46 41 55 4c 54 20 32 30 31 30 2c 69 5f 6d 6f 6e  FAULT 2010,i_mon
12d0: 74 68 20 49 4e 54 45 47 45 52 20 4e 4f 54 20 4e  th INTEGER NOT N
12e0: 55 4c 4c 20 44 45 46 41 55 4c 54 20 30 20 43 48  ULL DEFAULT 0 CH
12f0: 45 43 4b 20 28 69 5f 6d 6f 6e 74 68 3e 3d 30 20  ECK (i_month>=0 
1300: 41 4e 44 20 69 5f 6d 6f 6e 74 68 3c 3d 31 32 29  AND i_month<=12)
1310: 29 3b 0a 43 52 45 41 54 45 20 54 41 42 4c 45 20  );.CREATE TABLE 
1320: 62 75 64 67 65 74 63 61 74 65 67 6f 72 79 28 69  budgetcategory(i
1330: 64 20 49 4e 54 45 47 45 52 20 4e 4f 54 20 4e 55  d INTEGER NOT NU
1340: 4c 4c 20 44 45 46 41 55 4c 54 20 30 2c 69 64 5f  LL DEFAULT 0,id_
1350: 63 61 74 65 67 6f 72 79 20 49 4e 54 45 47 45 52  category INTEGER
1360: 20 4e 4f 54 20 4e 55 4c 4c 20 44 45 46 41 55 4c   NOT NULL DEFAUL
1370: 54 20 30 29 3b 0a 43 52 45 41 54 45 20 54 41 42  T 0);.CREATE TAB
1380: 4c 45 20 62 75 64 67 65 74 72 75 6c 65 20 28 69  LE budgetrule (i
1390: 64 20 49 4e 54 45 47 45 52 20 4e 4f 54 20 4e 55  d INTEGER NOT NU
13a0: 4c 4c 20 50 52 49 4d 41 52 59 20 4b 45 59 20 41  LL PRIMARY KEY A
13b0: 55 54 4f 49 4e 43 52 45 4d 45 4e 54 2c 72 63 5f  UTOINCREMENT,rc_
13c0: 63 61 74 65 67 6f 72 79 5f 69 64 20 49 4e 54 45  category_id INTE
13d0: 47 45 52 20 4e 4f 54 20 4e 55 4c 4c 20 44 45 46  GER NOT NULL DEF
13e0: 41 55 4c 54 20 30 2c 74 5f 63 61 74 65 67 6f 72  AULT 0,t_categor
13f0: 79 5f 63 6f 6e 64 69 74 69 6f 6e 20 54 45 58 54  y_condition TEXT
1400: 20 4e 4f 54 20 4e 55 4c 4c 20 44 45 46 41 55 4c   NOT NULL DEFAUL
1410: 54 20 27 59 27 20 43 48 45 43 4b 20 28 74 5f 63  T 'Y' CHECK (t_c
1420: 61 74 65 67 6f 72 79 5f 63 6f 6e 64 69 74 69 6f  ategory_conditio
1430: 6e 20 49 4e 20 28 27 59 27 2c 20 27 4e 27 29 29  n IN ('Y', 'N'))
1440: 2c 74 5f 79 65 61 72 5f 63 6f 6e 64 69 74 69 6f  ,t_year_conditio
1450: 6e 20 54 45 58 54 20 4e 4f 54 20 4e 55 4c 4c 20  n TEXT NOT NULL 
1460: 44 45 46 41 55 4c 54 20 27 59 27 20 43 48 45 43  DEFAULT 'Y' CHEC
1470: 4b 20 28 74 5f 79 65 61 72 5f 63 6f 6e 64 69 74  K (t_year_condit
1480: 69 6f 6e 20 49 4e 20 28 27 59 27 2c 20 27 4e 27  ion IN ('Y', 'N'
1490: 29 29 2c 69 5f 79 65 61 72 20 49 4e 54 45 47 45  )),i_year INTEGE
14a0: 52 20 4e 4f 54 20 4e 55 4c 4c 20 44 45 46 41 55  R NOT NULL DEFAU
14b0: 4c 54 20 32 30 31 30 2c 69 5f 6d 6f 6e 74 68 20  LT 2010,i_month 
14c0: 49 4e 54 45 47 45 52 20 4e 4f 54 20 4e 55 4c 4c  INTEGER NOT NULL
14d0: 20 44 45 46 41 55 4c 54 20 30 20 43 48 45 43 4b   DEFAULT 0 CHECK
14e0: 20 28 69 5f 6d 6f 6e 74 68 3e 3d 30 20 41 4e 44   (i_month>=0 AND
14f0: 20 69 5f 6d 6f 6e 74 68 3c 3d 31 32 29 2c 74 5f   i_month<=12),t_
1500: 6d 6f 6e 74 68 5f 63 6f 6e 64 69 74 69 6f 6e 20  month_condition 
1510: 54 45 58 54 20 4e 4f 54 20 4e 55 4c 4c 20 44 45  TEXT NOT NULL DE
1520: 46 41 55 4c 54 20 27 59 27 20 43 48 45 43 4b 20  FAULT 'Y' CHECK 
1530: 28 74 5f 6d 6f 6e 74 68 5f 63 6f 6e 64 69 74 69  (t_month_conditi
1540: 6f 6e 20 49 4e 20 28 27 59 27 2c 20 27 4e 27 29  on IN ('Y', 'N')
1550: 29 2c 69 5f 63 6f 6e 64 69 74 69 6f 6e 20 49 4e  ),i_condition IN
1560: 54 45 47 45 52 20 4e 4f 54 20 4e 55 4c 4c 20 44  TEGER NOT NULL D
1570: 45 46 41 55 4c 54 20 30 20 43 48 45 43 4b 20 28  EFAULT 0 CHECK (
1580: 69 5f 63 6f 6e 64 69 74 69 6f 6e 20 49 4e 20 28  i_condition IN (
1590: 2d 31 2c 30 2c 31 29 29 2c 66 5f 71 75 61 6e 74  -1,0,1)),f_quant
15a0: 69 74 79 20 46 4c 4f 41 54 20 4e 4f 54 20 4e 55  ity FLOAT NOT NU
15b0: 4c 4c 20 44 45 46 41 55 4c 54 20 30 2e 30 2c 74  LL DEFAULT 0.0,t
15c0: 5f 61 62 73 6f 6c 75 74 65 20 54 45 58 54 20 4e  _absolute TEXT N
15d0: 4f 54 20 4e 55 4c 4c 20 44 45 46 41 55 4c 54 20  OT NULL DEFAULT 
15e0: 27 59 27 20 43 48 45 43 4b 20 28 74 5f 61 62 73  'Y' CHECK (t_abs
15f0: 6f 6c 75 74 65 20 49 4e 20 28 27 59 27 2c 20 27  olute IN ('Y', '
1600: 4e 27 29 29 2c 72 63 5f 63 61 74 65 67 6f 72 79  N')),rc_category
1610: 5f 69 64 5f 74 61 72 67 65 74 20 49 4e 54 45 47  _id_target INTEG
1620: 45 52 20 4e 4f 54 20 4e 55 4c 4c 20 44 45 46 41  ER NOT NULL DEFA
1630: 55 4c 54 20 30 2c 74 5f 63 61 74 65 67 6f 72 79  ULT 0,t_category
1640: 5f 74 61 72 67 65 74 20 54 45 58 54 20 4e 4f 54  _target TEXT NOT
1650: 20 4e 55 4c 4c 20 44 45 46 41 55 4c 54 20 27 59   NULL DEFAULT 'Y
1660: 27 20 43 48 45 43 4b 20 28 74 5f 63 61 74 65 67  ' CHECK (t_categ
1670: 6f 72 79 5f 74 61 72 67 65 74 20 49 4e 20 28 27  ory_target IN ('
1680: 59 27 2c 20 27 4e 27 29 29 2c 74 5f 72 75 6c 65  Y', 'N')),t_rule
1690: 20 54 45 58 54 20 4e 4f 54 20 4e 55 4c 4c 20 44   TEXT NOT NULL D
16a0: 45 46 41 55 4c 54 20 27 4e 27 20 43 48 45 43 4b  EFAULT 'N' CHECK
16b0: 20 28 74 5f 72 75 6c 65 20 49 4e 20 28 27 4e 27   (t_rule IN ('N'
16c0: 2c 20 27 43 27 2c 20 27 59 27 29 29 29 3b 0a 43  , 'C', 'Y')));.C
16d0: 52 45 41 54 45 20 54 41 42 4c 45 20 22 72 65 63  REATE TABLE "rec
16e0: 75 72 72 65 6e 74 6f 70 65 72 61 74 69 6f 6e 22  urrentoperation"
16f0: 20 28 69 64 20 49 4e 54 45 47 45 52 20 4e 4f 54   (id INTEGER NOT
1700: 20 4e 55 4c 4c 20 50 52 49 4d 41 52 59 20 4b 45   NULL PRIMARY KE
1710: 59 20 41 55 54 4f 49 4e 43 52 45 4d 45 4e 54 2c  Y AUTOINCREMENT,
1720: 64 5f 64 61 74 65 20 44 41 54 45 20 4e 4f 54 20  d_date DATE NOT 
1730: 4e 55 4c 4c 20 44 45 46 41 55 4c 54 20 27 30 30  NULL DEFAULT '00
1740: 30 30 2d 30 30 2d 30 30 27 2c 72 64 5f 6f 70 65  00-00-00',rd_ope
1750: 72 61 74 69 6f 6e 5f 69 64 20 49 4e 54 45 47 45  ration_id INTEGE
1760: 52 20 4e 4f 54 20 4e 55 4c 4c 2c 69 5f 70 65 72  R NOT NULL,i_per
1770: 69 6f 64 5f 69 6e 63 72 65 6d 65 6e 74 20 49 4e  iod_increment IN
1780: 54 45 47 45 52 20 4e 4f 54 20 4e 55 4c 4c 20 44  TEGER NOT NULL D
1790: 45 46 41 55 4c 54 20 31 20 43 48 45 43 4b 20 28  EFAULT 1 CHECK (
17a0: 69 5f 70 65 72 69 6f 64 5f 69 6e 63 72 65 6d 65  i_period_increme
17b0: 6e 74 3e 3d 30 29 2c 74 5f 70 65 72 69 6f 64 5f  nt>=0),t_period_
17c0: 75 6e 69 74 20 54 45 58 54 20 4e 4f 54 20 4e 55  unit TEXT NOT NU
17d0: 4c 4c 20 44 45 46 41 55 4c 54 20 27 4d 27 20 43  LL DEFAULT 'M' C
17e0: 48 45 43 4b 20 28 74 5f 70 65 72 69 6f 64 5f 75  HECK (t_period_u
17f0: 6e 69 74 20 49 4e 20 28 27 44 27 2c 20 27 57 27  nit IN ('D', 'W'
1800: 2c 20 27 4d 27 2c 20 27 59 27 29 29 2c 74 5f 61  , 'M', 'Y')),t_a
1810: 75 74 6f 5f 77 72 69 74 65 20 56 41 52 43 48 41  uto_write VARCHA
1820: 52 28 31 29 20 44 45 46 41 55 4c 54 20 27 59 27  R(1) DEFAULT 'Y'
1830: 20 43 48 45 43 4b 20 28 74 5f 61 75 74 6f 5f 77   CHECK (t_auto_w
1840: 72 69 74 65 20 49 4e 20 28 27 59 27 2c 20 27 4e  rite IN ('Y', 'N
1850: 27 29 29 2c 69 5f 61 75 74 6f 5f 77 72 69 74 65  ')),i_auto_write
1860: 5f 64 61 79 73 20 49 4e 54 45 47 45 52 20 4e 4f  _days INTEGER NO
1870: 54 20 4e 55 4c 4c 20 44 45 46 41 55 4c 54 20 35  T NULL DEFAULT 5
1880: 20 43 48 45 43 4b 20 28 69 5f 61 75 74 6f 5f 77   CHECK (i_auto_w
1890: 72 69 74 65 5f 64 61 79 73 3e 3d 30 29 2c 74 5f  rite_days>=0),t_
18a0: 77 61 72 6e 20 56 41 52 43 48 41 52 28 31 29 20  warn VARCHAR(1) 
18b0: 44 45 46 41 55 4c 54 20 27 59 27 20 43 48 45 43  DEFAULT 'Y' CHEC
18c0: 4b 20 28 74 5f 77 61 72 6e 20 49 4e 20 28 27 59  K (t_warn IN ('Y
18d0: 27 2c 20 27 4e 27 29 29 2c 69 5f 77 61 72 6e 5f  ', 'N')),i_warn_
18e0: 64 61 79 73 20 49 4e 54 45 47 45 52 20 4e 4f 54  days INTEGER NOT
18f0: 20 4e 55 4c 4c 20 44 45 46 41 55 4c 54 20 35 20   NULL DEFAULT 5 
1900: 43 48 45 43 4b 20 28 69 5f 77 61 72 6e 5f 64 61  CHECK (i_warn_da
1910: 79 73 3e 3d 30 29 2c 74 5f 74 69 6d 65 73 20 56  ys>=0),t_times V
1920: 41 52 43 48 41 52 28 31 29 20 44 45 46 41 55 4c  ARCHAR(1) DEFAUL
1930: 54 20 27 4e 27 20 43 48 45 43 4b 20 28 74 5f 74  T 'N' CHECK (t_t
1940: 69 6d 65 73 20 49 4e 20 28 27 59 27 2c 20 27 4e  imes IN ('Y', 'N
1950: 27 29 29 2c 69 5f 6e 62 5f 74 69 6d 65 73 20 49  ')),i_nb_times I
1960: 4e 54 45 47 45 52 20 4e 4f 54 20 4e 55 4c 4c 20  NTEGER NOT NULL 
1970: 44 45 46 41 55 4c 54 20 31 20 43 48 45 43 4b 20  DEFAULT 1 CHECK 
1980: 28 69 5f 6e 62 5f 74 69 6d 65 73 3e 3d 30 29 29  (i_nb_times>=0))
1990: 3b 0a 43 52 45 41 54 45 20 54 41 42 4c 45 20 22  ;.CREATE TABLE "
19a0: 63 61 74 65 67 6f 72 79 22 20 28 69 64 20 49 4e  category" (id IN
19b0: 54 45 47 45 52 20 4e 4f 54 20 4e 55 4c 4c 20 50  TEGER NOT NULL P
19c0: 52 49 4d 41 52 59 20 4b 45 59 20 41 55 54 4f 49  RIMARY KEY AUTOI
19d0: 4e 43 52 45 4d 45 4e 54 2c 74 5f 6e 61 6d 65 20  NCREMENT,t_name 
19e0: 54 45 58 54 20 4e 4f 54 20 4e 55 4c 4c 20 44 45  TEXT NOT NULL DE
19f0: 46 41 55 4c 54 20 27 27 20 43 48 45 43 4b 20 28  FAULT '' CHECK (
1a00: 74 5f 6e 61 6d 65 20 4e 4f 54 20 4c 49 4b 45 20  t_name NOT LIKE 
1a10: 27 25 20 3e 20 25 27 29 2c 74 5f 66 75 6c 6c 6e  '% > %'),t_fulln
1a20: 61 6d 65 20 54 45 58 54 2c 72 64 5f 63 61 74 65  ame TEXT,rd_cate
1a30: 67 6f 72 79 5f 69 64 20 49 4e 54 2c 74 5f 62 6f  gory_id INT,t_bo
1a40: 6f 6b 6d 61 72 6b 65 64 20 56 41 52 43 48 41 52  okmarked VARCHAR
1a50: 28 31 29 20 4e 4f 54 20 4e 55 4c 4c 20 44 45 46  (1) NOT NULL DEF
1a60: 41 55 4c 54 20 27 4e 27 20 43 48 45 43 4b 20 28  AULT 'N' CHECK (
1a70: 74 5f 62 6f 6f 6b 6d 61 72 6b 65 64 20 49 4e 20  t_bookmarked IN 
1a80: 28 27 59 27 2c 20 27 4e 27 29 29 29 3b 0a 43 52  ('Y', 'N')));.CR
1a90: 45 41 54 45 20 54 41 42 4c 45 20 22 61 63 63 6f  EATE TABLE "acco
1aa0: 75 6e 74 22 28 69 64 20 49 4e 54 45 47 45 52 20  unt"(id INTEGER 
1ab0: 4e 4f 54 20 4e 55 4c 4c 20 50 52 49 4d 41 52 59  NOT NULL PRIMARY
1ac0: 20 4b 45 59 20 41 55 54 4f 49 4e 43 52 45 4d 45   KEY AUTOINCREME
1ad0: 4e 54 2c 74 5f 6e 61 6d 65 20 54 45 58 54 20 4e  NT,t_name TEXT N
1ae0: 4f 54 20 4e 55 4c 4c 2c 74 5f 6e 75 6d 62 65 72  OT NULL,t_number
1af0: 20 54 45 58 54 20 4e 4f 54 20 4e 55 4c 4c 20 44   TEXT NOT NULL D
1b00: 45 46 41 55 4c 54 20 27 27 2c 74 5f 61 67 65 6e  EFAULT '',t_agen
1b10: 63 79 5f 6e 75 6d 62 65 72 20 54 45 58 54 20 4e  cy_number TEXT N
1b20: 4f 54 20 4e 55 4c 4c 20 44 45 46 41 55 4c 54 20  OT NULL DEFAULT 
1b30: 27 27 2c 74 5f 61 67 65 6e 63 79 5f 61 64 64 72  '',t_agency_addr
1b40: 65 73 73 20 54 45 58 54 20 4e 4f 54 20 4e 55 4c  ess TEXT NOT NUL
1b50: 4c 20 44 45 46 41 55 4c 54 20 27 27 2c 74 5f 63  L DEFAULT '',t_c
1b60: 6f 6d 6d 65 6e 74 20 54 45 58 54 20 4e 4f 54 20  omment TEXT NOT 
1b70: 4e 55 4c 4c 20 44 45 46 41 55 4c 54 20 27 27 2c  NULL DEFAULT '',
1b80: 74 5f 63 6c 6f 73 65 20 56 41 52 43 48 41 52 28  t_close VARCHAR(
1b90: 31 29 20 44 45 46 41 55 4c 54 20 27 4e 27 20 43  1) DEFAULT 'N' C
1ba0: 48 45 43 4b 20 28 74 5f 63 6c 6f 73 65 20 49 4e  HECK (t_close IN
1bb0: 20 28 27 59 27 2c 20 27 4e 27 29 29 2c 74 5f 74   ('Y', 'N')),t_t
1bc0: 79 70 65 20 56 41 52 43 48 41 52 28 31 29 20 4e  ype VARCHAR(1) N
1bd0: 4f 54 20 4e 55 4c 4c 20 44 45 46 41 55 4c 54 20  OT NULL DEFAULT 
1be0: 27 43 27 20 43 48 45 43 4b 20 28 74 5f 74 79 70  'C' CHECK (t_typ
1bf0: 65 20 49 4e 20 28 27 43 27 2c 20 27 44 27 2c 20  e IN ('C', 'D', 
1c00: 27 41 27 2c 20 27 49 27 2c 20 27 4c 27 2c 20 27  'A', 'I', 'L', '
1c10: 57 27 2c 20 27 4f 27 29 29 2c 74 5f 62 6f 6f 6b  W', 'O')),t_book
1c20: 6d 61 72 6b 65 64 20 56 41 52 43 48 41 52 28 31  marked VARCHAR(1
1c30: 29 20 4e 4f 54 20 4e 55 4c 4c 20 44 45 46 41 55  ) NOT NULL DEFAU
1c40: 4c 54 20 27 4e 27 20 43 48 45 43 4b 20 28 74 5f  LT 'N' CHECK (t_
1c50: 62 6f 6f 6b 6d 61 72 6b 65 64 20 49 4e 20 28 27  bookmarked IN ('
1c60: 59 27 2c 20 27 4e 27 29 29 2c 72 64 5f 62 61 6e  Y', 'N')),rd_ban
1c70: 6b 5f 69 64 20 49 4e 54 45 47 45 52 20 4e 4f 54  k_id INTEGER NOT
1c80: 20 4e 55 4c 4c 29 3b 0a 43 52 45 41 54 45 20 54   NULL);.CREATE T
1c90: 41 42 4c 45 20 22 6e 6f 64 65 22 20 28 69 64 20  ABLE "node" (id 
1ca0: 49 4e 54 45 47 45 52 20 4e 4f 54 20 4e 55 4c 4c  INTEGER NOT NULL
1cb0: 20 50 52 49 4d 41 52 59 20 4b 45 59 20 41 55 54   PRIMARY KEY AUT
1cc0: 4f 49 4e 43 52 45 4d 45 4e 54 2c 74 5f 6e 61 6d  OINCREMENT,t_nam
1cd0: 65 20 54 45 58 54 20 4e 4f 54 20 4e 55 4c 4c 20  e TEXT NOT NULL 
1ce0: 44 45 46 41 55 4c 54 20 27 27 20 43 48 45 43 4b  DEFAULT '' CHECK
1cf0: 20 28 74 5f 6e 61 6d 65 20 4e 4f 54 20 4c 49 4b   (t_name NOT LIK
1d00: 45 20 27 25 20 3e 20 25 27 29 2c 74 5f 66 75 6c  E '% > %'),t_ful
1d10: 6c 6e 61 6d 65 20 54 45 58 54 2c 74 5f 69 63 6f  lname TEXT,t_ico
1d20: 6e 20 54 45 58 54 20 44 45 46 41 55 4c 54 20 27  n TEXT DEFAULT '
1d30: 27 2c 66 5f 73 6f 72 74 6f 72 64 65 72 20 46 4c  ',f_sortorder FL
1d40: 4f 41 54 2c 74 5f 61 75 74 6f 73 74 61 72 74 20  OAT,t_autostart 
1d50: 56 41 52 43 48 41 52 28 31 29 20 44 45 46 41 55  VARCHAR(1) DEFAU
1d60: 4c 54 20 27 4e 27 20 43 48 45 43 4b 20 28 74 5f  LT 'N' CHECK (t_
1d70: 61 75 74 6f 73 74 61 72 74 20 49 4e 20 28 27 59  autostart IN ('Y
1d80: 27 2c 20 27 4e 27 29 29 2c 74 5f 64 61 74 61 20  ', 'N')),t_data 
1d90: 54 45 58 54 2c 72 64 5f 6e 6f 64 65 5f 69 64 20  TEXT,rd_node_id 
1da0: 49 4e 54 20 43 4f 4e 53 54 52 41 49 4e 54 20 66  INT CONSTRAINT f
1db0: 6b 5f 69 64 20 52 45 46 45 52 45 4e 43 45 53 20  k_id REFERENCES 
1dc0: 6e 6f 64 65 28 69 64 29 20 4f 4e 20 44 45 4c 45  node(id) ON DELE
1dd0: 54 45 20 43 41 53 43 41 44 45 29 3b 0a 43 52 45  TE CASCADE);.CRE
1de0: 41 54 45 20 54 41 42 4c 45 20 76 6d 5f 63 61 74  ATE TABLE vm_cat
1df0: 65 67 6f 72 79 5f 64 69 73 70 6c 61 79 5f 74 6d  egory_display_tm
1e00: 70 28 0a 20 20 69 64 20 49 4e 54 2c 0a 20 20 74  p(.  id INT,.  t
1e10: 5f 6e 61 6d 65 20 54 45 58 54 2c 0a 20 20 74 5f  _name TEXT,.  t_
1e20: 66 75 6c 6c 6e 61 6d 65 20 54 45 58 54 2c 0a 20  fullname TEXT,. 
1e30: 20 72 64 5f 63 61 74 65 67 6f 72 79 5f 69 64 20   rd_category_id 
1e40: 49 4e 54 2c 0a 20 20 74 5f 62 6f 6f 6b 6d 61 72  INT,.  t_bookmar
1e50: 6b 65 64 20 54 45 58 54 2c 0a 20 20 69 5f 4e 42  ked TEXT,.  i_NB
1e60: 4f 50 45 52 41 54 49 4f 4e 53 2c 0a 20 20 66 5f  OPERATIONS,.  f_
1e70: 52 45 41 4c 43 55 52 52 45 4e 54 41 4d 4f 55 4e  REALCURRENTAMOUN
1e80: 54 0a 29 3b 0a 43 52 45 41 54 45 20 54 41 42 4c  T.);.CREATE TABL
1e90: 45 20 76 6d 5f 62 75 64 67 65 74 5f 74 6d 70 28  E vm_budget_tmp(
1ea0: 0a 20 20 69 64 20 49 4e 54 2c 0a 20 20 72 63 5f  .  id INT,.  rc_
1eb0: 63 61 74 65 67 6f 72 79 5f 69 64 20 49 4e 54 2c  category_id INT,
1ec0: 0a 20 20 74 5f 69 6e 63 6c 75 64 69 6e 67 5f 73  .  t_including_s
1ed0: 75 62 63 61 74 65 67 6f 72 69 65 73 20 54 45 58  ubcategories TEX
1ee0: 54 2c 0a 20 20 66 5f 62 75 64 67 65 74 65 64 20  T,.  f_budgeted 
1ef0: 52 45 41 4c 2c 0a 20 20 66 5f 62 75 64 67 65 74  REAL,.  f_budget
1f00: 65 64 5f 6d 6f 64 69 66 69 65 64 20 52 45 41 4c  ed_modified REAL
1f10: 2c 0a 20 20 66 5f 74 72 61 6e 73 66 65 72 72 65  ,.  f_transferre
1f20: 64 20 52 45 41 4c 2c 0a 20 20 69 5f 79 65 61 72  d REAL,.  i_year
1f30: 20 49 4e 54 2c 0a 20 20 69 5f 6d 6f 6e 74 68 20   INT,.  i_month 
1f40: 49 4e 54 2c 0a 20 20 74 5f 43 41 54 45 47 4f 52  INT,.  t_CATEGOR
1f50: 59 2c 0a 20 20 74 5f 50 45 52 49 4f 44 2c 0a 20  Y,.  t_PERIOD,. 
1f60: 20 66 5f 43 55 52 52 45 4e 54 41 4d 4f 55 4e 54   f_CURRENTAMOUNT
1f70: 2c 0a 20 20 74 5f 52 55 4c 45 53 0a 29 3b 0a 43  ,.  t_RULES.);.C
1f80: 52 45 41 54 45 20 49 4e 44 45 58 20 69 64 78 5f  REATE INDEX idx_
1f90: 64 6f 63 74 72 61 6e 73 61 63 74 69 6f 6e 5f 70  doctransaction_p
1fa0: 61 72 65 6e 74 20 4f 4e 20 64 6f 63 74 72 61 6e  arent ON doctran
1fb0: 73 61 63 74 69 6f 6e 20 28 69 5f 70 61 72 65 6e  saction (i_paren
1fc0: 74 29 3b 0a 43 52 45 41 54 45 20 49 4e 44 45 58  t);.CREATE INDEX
1fd0: 20 69 64 78 5f 64 6f 63 74 72 61 6e 73 61 63 74   idx_doctransact
1fe0: 69 6f 6e 69 74 65 6d 5f 69 5f 6f 62 6a 65 63 74  ionitem_i_object
1ff0: 5f 69 64 20 4f 4e 20 64 6f 63 74 72 61 6e 73 61  _id ON doctransa
2000: 63 74 69 6f 6e 69 74 65 6d 20 28 69 5f 6f 62 6a  ctionitem (i_obj
2010: 65 63 74 5f 69 64 29 3b 0a 43 52 45 41 54 45 20  ect_id);.CREATE 
2020: 49 4e 44 45 58 20 69 64 78 5f 64 6f 63 74 72 61  INDEX idx_doctra
2030: 6e 73 61 63 74 69 6f 6e 69 74 65 6d 5f 74 5f 6f  nsactionitem_t_o
2040: 62 6a 65 63 74 5f 74 61 62 6c 65 20 4f 4e 20 64  bject_table ON d
2050: 6f 63 74 72 61 6e 73 61 63 74 69 6f 6e 69 74 65  octransactionite
2060: 6d 20 28 74 5f 6f 62 6a 65 63 74 5f 74 61 62 6c  m (t_object_tabl
2070: 65 29 3b 0a 43 52 45 41 54 45 20 49 4e 44 45 58  e);.CREATE INDEX
2080: 20 69 64 78 5f 64 6f 63 74 72 61 6e 73 61 63 74   idx_doctransact
2090: 69 6f 6e 69 74 65 6d 5f 74 5f 61 63 74 69 6f 6e  ionitem_t_action
20a0: 20 4f 4e 20 64 6f 63 74 72 61 6e 73 61 63 74 69   ON doctransacti
20b0: 6f 6e 69 74 65 6d 20 28 74 5f 61 63 74 69 6f 6e  onitem (t_action
20c0: 29 3b 0a 43 52 45 41 54 45 20 49 4e 44 45 58 20  );.CREATE INDEX 
20d0: 69 64 78 5f 64 6f 63 74 72 61 6e 73 61 63 74 69  idx_doctransacti
20e0: 6f 6e 69 74 65 6d 5f 72 64 5f 64 6f 63 74 72 61  onitem_rd_doctra
20f0: 6e 73 61 63 74 69 6f 6e 5f 69 64 20 4f 4e 20 64  nsaction_id ON d
2100: 6f 63 74 72 61 6e 73 61 63 74 69 6f 6e 69 74 65  octransactionite
2110: 6d 20 28 72 64 5f 64 6f 63 74 72 61 6e 73 61 63  m (rd_doctransac
2120: 74 69 6f 6e 5f 69 64 29 3b 0a 43 52 45 41 54 45  tion_id);.CREATE
2130: 20 49 4e 44 45 58 20 69 64 78 5f 64 6f 63 74 72   INDEX idx_doctr
2140: 61 6e 73 61 63 74 69 6f 6e 69 74 65 6d 5f 6f 70  ansactionitem_op
2150: 74 69 6d 69 7a 61 74 69 6f 6e 20 4f 4e 20 64 6f  timization ON do
2160: 63 74 72 61 6e 73 61 63 74 69 6f 6e 69 74 65 6d  ctransactionitem
2170: 20 28 72 64 5f 64 6f 63 74 72 61 6e 73 61 63 74   (rd_doctransact
2180: 69 6f 6e 5f 69 64 2c 20 69 5f 6f 62 6a 65 63 74  ion_id, i_object
2190: 5f 69 64 2c 20 74 5f 6f 62 6a 65 63 74 5f 74 61  _id, t_object_ta
21a0: 62 6c 65 2c 20 74 5f 61 63 74 69 6f 6e 2c 20 69  ble, t_action, i
21b0: 64 29 3b 0a 43 52 45 41 54 45 20 49 4e 44 45 58  d);.CREATE INDEX
21c0: 20 69 64 78 5f 75 6e 69 74 5f 75 6e 69 74 5f 69   idx_unit_unit_i
21d0: 64 20 4f 4e 20 75 6e 69 74 76 61 6c 75 65 28 72  d ON unitvalue(r
21e0: 64 5f 75 6e 69 74 5f 69 64 29 3b 0a 43 52 45 41  d_unit_id);.CREA
21f0: 54 45 20 49 4e 44 45 58 20 69 64 78 5f 61 63 63  TE INDEX idx_acc
2200: 6f 75 6e 74 5f 62 61 6e 6b 5f 69 64 20 4f 4e 20  ount_bank_id ON 
2210: 61 63 63 6f 75 6e 74 28 72 64 5f 62 61 6e 6b 5f  account(rd_bank_
2220: 69 64 29 3b 0a 43 52 45 41 54 45 20 49 4e 44 45  id);.CREATE INDE
2230: 58 20 69 64 78 5f 61 63 63 6f 75 6e 74 5f 74 79  X idx_account_ty
2240: 70 65 20 4f 4e 20 61 63 63 6f 75 6e 74 28 74 5f  pe ON account(t_
2250: 74 79 70 65 29 3b 0a 43 52 45 41 54 45 20 49 4e  type);.CREATE IN
2260: 44 45 58 20 69 64 78 5f 63 61 74 65 67 6f 72 79  DEX idx_category
2270: 5f 63 61 74 65 67 6f 72 79 5f 69 64 20 4f 4e 20  _category_id ON 
2280: 63 61 74 65 67 6f 72 79 28 72 64 5f 63 61 74 65  category(rd_cate
2290: 67 6f 72 79 5f 69 64 29 3b 0a 43 52 45 41 54 45  gory_id);.CREATE
22a0: 20 49 4e 44 45 58 20 69 64 78 5f 63 61 74 65 67   INDEX idx_categ
22b0: 6f 72 79 5f 74 5f 66 75 6c 6c 6e 61 6d 65 20 4f  ory_t_fullname O
22c0: 4e 20 63 61 74 65 67 6f 72 79 28 74 5f 66 75 6c  N category(t_ful
22d0: 6c 6e 61 6d 65 29 3b 0a 43 52 45 41 54 45 20 49  lname);.CREATE I
22e0: 4e 44 45 58 20 69 64 78 5f 6f 70 65 72 61 74 69  NDEX idx_operati
22f0: 6f 6e 5f 61 63 63 6f 75 6e 74 5f 69 64 20 4f 4e  on_account_id ON
2300: 20 6f 70 65 72 61 74 69 6f 6e 20 28 72 64 5f 61   operation (rd_a
2310: 63 63 6f 75 6e 74 5f 69 64 29 3b 0a 43 52 45 41  ccount_id);.CREA
2320: 54 45 20 49 4e 44 45 58 20 69 64 78 5f 6f 70 65  TE INDEX idx_ope
2330: 72 61 74 69 6f 6e 5f 74 6d 70 31 5f 66 6f 75 6e  ration_tmp1_foun
2340: 64 5f 74 72 61 6e 73 66 65 72 74 20 4f 4e 20 6f  d_transfert ON o
2350: 70 65 72 61 74 69 6f 6e 20 28 72 63 5f 75 6e 69  peration (rc_uni
2360: 74 5f 69 64 2c 20 64 5f 64 61 74 65 29 3b 0a 43  t_id, d_date);.C
2370: 52 45 41 54 45 20 49 4e 44 45 58 20 69 64 78 5f  REATE INDEX idx_
2380: 6f 70 65 72 61 74 69 6f 6e 5f 67 72 6f 75 70 65  operation_groupe
2390: 64 5f 6f 70 65 72 61 74 69 6f 6e 5f 69 64 20 4f  d_operation_id O
23a0: 4e 20 6f 70 65 72 61 74 69 6f 6e 20 28 69 5f 67  N operation (i_g
23b0: 72 6f 75 70 5f 69 64 29 3b 0a 43 52 45 41 54 45  roup_id);.CREATE
23c0: 20 49 4e 44 45 58 20 69 64 78 5f 6f 70 65 72 61   INDEX idx_opera
23d0: 74 69 6f 6e 5f 69 5f 6e 75 6d 62 65 72 20 4f 4e  tion_i_number ON
23e0: 20 6f 70 65 72 61 74 69 6f 6e 20 28 69 5f 6e 75   operation (i_nu
23f0: 6d 62 65 72 29 3b 0a 43 52 45 41 54 45 20 49 4e  mber);.CREATE IN
2400: 44 45 58 20 69 64 78 5f 6f 70 65 72 61 74 69 6f  DEX idx_operatio
2410: 6e 5f 69 5f 74 6d 70 20 4f 4e 20 6f 70 65 72 61  n_i_tmp ON opera
2420: 74 69 6f 6e 20 28 69 5f 74 6d 70 29 3b 0a 43 52  tion (i_tmp);.CR
2430: 45 41 54 45 20 49 4e 44 45 58 20 69 64 78 5f 6f  EATE INDEX idx_o
2440: 70 65 72 61 74 69 6f 6e 5f 72 64 5f 61 63 63 6f  peration_rd_acco
2450: 75 6e 74 5f 69 64 20 4f 4e 20 6f 70 65 72 61 74  unt_id ON operat
2460: 69 6f 6e 20 28 72 64 5f 61 63 63 6f 75 6e 74 5f  ion (rd_account_
2470: 69 64 29 3b 0a 43 52 45 41 54 45 20 49 4e 44 45  id);.CREATE INDE
2480: 58 20 69 64 78 5f 6f 70 65 72 61 74 69 6f 6e 5f  X idx_operation_
2490: 72 63 5f 75 6e 69 74 5f 69 64 20 4f 4e 20 6f 70  rc_unit_id ON op
24a0: 65 72 61 74 69 6f 6e 20 28 72 63 5f 75 6e 69 74  eration (rc_unit
24b0: 5f 69 64 29 3b 0a 43 52 45 41 54 45 20 49 4e 44  _id);.CREATE IND
24c0: 45 58 20 69 64 78 5f 6f 70 65 72 61 74 69 6f 6e  EX idx_operation
24d0: 5f 74 5f 73 74 61 74 75 73 20 4f 4e 20 6f 70 65  _t_status ON ope
24e0: 72 61 74 69 6f 6e 20 28 74 5f 73 74 61 74 75 73  ration (t_status
24f0: 29 3b 0a 43 52 45 41 54 45 20 49 4e 44 45 58 20  );.CREATE INDEX 
2500: 69 64 78 5f 6f 70 65 72 61 74 69 6f 6e 5f 74 5f  idx_operation_t_
2510: 69 6d 70 6f 72 74 5f 69 64 20 4f 4e 20 6f 70 65  import_id ON ope
2520: 72 61 74 69 6f 6e 20 28 74 5f 69 6d 70 6f 72 74  ration (t_import
2530: 5f 69 64 29 3b 0a 43 52 45 41 54 45 20 49 4e 44  _id);.CREATE IND
2540: 45 58 20 69 64 78 5f 6f 70 65 72 61 74 69 6f 6e  EX idx_operation
2550: 5f 74 5f 74 65 6d 70 6c 61 74 65 20 4f 4e 20 6f  _t_template ON o
2560: 70 65 72 61 74 69 6f 6e 20 28 74 5f 74 65 6d 70  peration (t_temp
2570: 6c 61 74 65 29 3b 0a 43 52 45 41 54 45 20 49 4e  late);.CREATE IN
2580: 44 45 58 20 69 64 78 5f 6f 70 65 72 61 74 69 6f  DEX idx_operatio
2590: 6e 5f 64 5f 64 61 74 65 20 4f 4e 20 6f 70 65 72  n_d_date ON oper
25a0: 61 74 69 6f 6e 20 28 64 5f 64 61 74 65 29 3b 0a  ation (d_date);.
25b0: 43 52 45 41 54 45 20 49 4e 44 45 58 20 69 64 78  CREATE INDEX idx
25c0: 5f 6f 70 65 72 61 74 69 6f 6e 62 61 6c 61 6e 63  _operationbalanc
25d0: 65 5f 6f 70 65 72 61 74 69 6f 6e 5f 69 64 20 4f  e_operation_id O
25e0: 4e 20 6f 70 65 72 61 74 69 6f 6e 62 61 6c 61 6e  N operationbalan
25f0: 63 65 20 28 72 5f 6f 70 65 72 61 74 69 6f 6e 5f  ce (r_operation_
2600: 69 64 29 3b 0a 43 52 45 41 54 45 20 49 4e 44 45  id);.CREATE INDE
2610: 58 20 69 64 78 5f 73 75 62 6f 70 65 72 61 74 69  X idx_suboperati
2620: 6f 6e 5f 6f 70 65 72 61 74 69 6f 6e 5f 69 64 20  on_operation_id 
2630: 4f 4e 20 73 75 62 6f 70 65 72 61 74 69 6f 6e 20  ON suboperation 
2640: 28 72 64 5f 6f 70 65 72 61 74 69 6f 6e 5f 69 64  (rd_operation_id
2650: 29 3b 0a 43 52 45 41 54 45 20 49 4e 44 45 58 20  );.CREATE INDEX 
2660: 69 64 78 5f 73 75 62 6f 70 65 72 61 74 69 6f 6e  idx_suboperation
2670: 5f 69 5f 74 6d 70 20 4f 4e 20 73 75 62 6f 70 65  _i_tmp ON subope
2680: 72 61 74 69 6f 6e 20 28 69 5f 74 6d 70 29 3b 0a  ration (i_tmp);.
2690: 43 52 45 41 54 45 20 49 4e 44 45 58 20 69 64 78  CREATE INDEX idx
26a0: 5f 73 75 62 6f 70 65 72 61 74 69 6f 6e 5f 63 61  _suboperation_ca
26b0: 74 65 67 6f 72 79 5f 69 64 20 4f 4e 20 73 75 62  tegory_id ON sub
26c0: 6f 70 65 72 61 74 69 6f 6e 20 28 72 5f 63 61 74  operation (r_cat
26d0: 65 67 6f 72 79 5f 69 64 29 3b 0a 43 52 45 41 54  egory_id);.CREAT
26e0: 45 20 49 4e 44 45 58 20 69 64 78 5f 73 75 62 6f  E INDEX idx_subo
26f0: 70 65 72 61 74 69 6f 6e 5f 72 65 66 75 6e 64 5f  peration_refund_
2700: 69 64 5f 69 64 20 4f 4e 20 73 75 62 6f 70 65 72  id_id ON suboper
2710: 61 74 69 6f 6e 20 28 72 5f 72 65 66 75 6e 64 5f  ation (r_refund_
2720: 69 64 29 3b 0a 43 52 45 41 54 45 20 49 4e 44 45  id);.CREATE INDE
2730: 58 20 69 64 78 5f 72 65 63 75 72 72 65 6e 74 6f  X idx_recurrento
2740: 70 65 72 61 74 69 6f 6e 5f 72 64 5f 6f 70 65 72  peration_rd_oper
2750: 61 74 69 6f 6e 5f 69 64 20 4f 4e 20 72 65 63 75  ation_id ON recu
2760: 72 72 65 6e 74 6f 70 65 72 61 74 69 6f 6e 20 28  rrentoperation (
2770: 72 64 5f 6f 70 65 72 61 74 69 6f 6e 5f 69 64 29  rd_operation_id)
2780: 3b 0a 43 52 45 41 54 45 20 49 4e 44 45 58 20 69  ;.CREATE INDEX i
2790: 64 78 5f 72 65 66 75 6e 64 5f 63 6c 6f 73 65 20  dx_refund_close 
27a0: 4f 4e 20 72 65 66 75 6e 64 28 74 5f 63 6c 6f 73  ON refund(t_clos
27b0: 65 29 3b 0a 43 52 45 41 54 45 20 49 4e 44 45 58  e);.CREATE INDEX
27c0: 20 69 64 78 5f 69 6e 74 65 72 65 73 74 5f 61 63   idx_interest_ac
27d0: 63 6f 75 6e 74 5f 69 64 20 4f 4e 20 69 6e 74 65  count_id ON inte
27e0: 72 65 73 74 20 28 72 64 5f 61 63 63 6f 75 6e 74  rest (rd_account
27f0: 5f 69 64 29 3b 0a 43 52 45 41 54 45 20 49 4e 44  _id);.CREATE IND
2800: 45 58 20 69 64 78 5f 72 75 6c 65 5f 61 63 74 69  EX idx_rule_acti
2810: 6f 6e 5f 74 79 70 65 20 4f 4e 20 72 75 6c 65 28  on_type ON rule(
2820: 74 5f 61 63 74 69 6f 6e 5f 74 79 70 65 29 3b 0a  t_action_type);.
2830: 43 52 45 41 54 45 20 49 4e 44 45 58 20 69 64 78  CREATE INDEX idx
2840: 5f 62 75 64 67 65 74 5f 63 61 74 65 67 6f 72 79  _budget_category
2850: 5f 69 64 20 4f 4e 20 62 75 64 67 65 74 28 72 63  _id ON budget(rc
2860: 5f 63 61 74 65 67 6f 72 79 5f 69 64 29 3b 0a 43  _category_id);.C
2870: 52 45 41 54 45 20 49 4e 44 45 58 20 69 64 78 5f  REATE INDEX idx_
2880: 62 75 64 67 65 74 63 61 74 65 67 6f 72 79 5f 69  budgetcategory_i
2890: 64 20 4f 4e 20 62 75 64 67 65 74 63 61 74 65 67  d ON budgetcateg
28a0: 6f 72 79 20 28 69 64 29 3b 0a 43 52 45 41 54 45  ory (id);.CREATE
28b0: 20 49 4e 44 45 58 20 69 64 78 5f 62 75 64 67 65   INDEX idx_budge
28c0: 74 63 61 74 65 67 6f 72 79 5f 69 64 5f 63 61 74  tcategory_id_cat
28d0: 65 67 6f 72 79 20 4f 4e 20 62 75 64 67 65 74 63  egory ON budgetc
28e0: 61 74 65 67 6f 72 79 20 28 69 64 5f 63 61 74 65  ategory (id_cate
28f0: 67 6f 72 79 29 3b 0a 43 52 45 41 54 45 20 55 4e  gory);.CREATE UN
2900: 49 51 55 45 20 49 4e 44 45 58 20 75 69 64 78 5f  IQUE INDEX uidx_
2910: 70 61 72 61 6d 65 74 65 72 73 5f 75 75 69 64 5f  parameters_uuid_
2920: 70 61 72 65 6e 74 5f 6e 61 6d 65 20 4f 4e 20 70  parent_name ON p
2930: 61 72 61 6d 65 74 65 72 73 20 28 74 5f 75 75 69  arameters (t_uui
2940: 64 5f 70 61 72 65 6e 74 2c 20 74 5f 6e 61 6d 65  d_parent, t_name
2950: 29 3b 0a 43 52 45 41 54 45 20 55 4e 49 51 55 45  );.CREATE UNIQUE
2960: 20 49 4e 44 45 58 20 75 69 64 78 5f 6e 6f 64 65   INDEX uidx_node
2970: 5f 70 61 72 65 6e 74 5f 69 64 5f 6e 61 6d 65 20  _parent_id_name 
2980: 4f 4e 20 6e 6f 64 65 28 74 5f 6e 61 6d 65 2c 72  ON node(t_name,r
2990: 64 5f 6e 6f 64 65 5f 69 64 29 3b 0a 43 52 45 41  d_node_id);.CREA
29a0: 54 45 20 55 4e 49 51 55 45 20 49 4e 44 45 58 20  TE UNIQUE INDEX 
29b0: 75 69 64 78 5f 6e 6f 64 65 5f 66 75 6c 6c 6e 61  uidx_node_fullna
29c0: 6d 65 20 4f 4e 20 6e 6f 64 65 28 74 5f 66 75 6c  me ON node(t_ful
29d0: 6c 6e 61 6d 65 29 3b 0a 43 52 45 41 54 45 20 55  lname);.CREATE U
29e0: 4e 49 51 55 45 20 49 4e 44 45 58 20 75 69 64 78  NIQUE INDEX uidx
29f0: 5f 75 6e 69 74 5f 6e 61 6d 65 20 4f 4e 20 75 6e  _unit_name ON un
2a00: 69 74 28 74 5f 6e 61 6d 65 29 3b 0a 43 52 45 41  it(t_name);.CREA
2a10: 54 45 20 55 4e 49 51 55 45 20 49 4e 44 45 58 20  TE UNIQUE INDEX 
2a20: 75 69 64 78 5f 75 6e 69 74 5f 73 79 6d 62 6f 6c  uidx_unit_symbol
2a30: 20 4f 4e 20 75 6e 69 74 28 74 5f 73 79 6d 62 6f   ON unit(t_symbo
2a40: 6c 29 3b 0a 43 52 45 41 54 45 20 55 4e 49 51 55  l);.CREATE UNIQU
2a50: 45 20 49 4e 44 45 58 20 75 69 64 78 5f 75 6e 69  E INDEX uidx_uni
2a60: 74 76 61 6c 75 65 20 4f 4e 20 75 6e 69 74 76 61  tvalue ON unitva
2a70: 6c 75 65 28 64 5f 64 61 74 65 2c 72 64 5f 75 6e  lue(d_date,rd_un
2a80: 69 74 5f 69 64 29 3b 0a 43 52 45 41 54 45 20 55  it_id);.CREATE U
2a90: 4e 49 51 55 45 20 49 4e 44 45 58 20 75 69 64 78  NIQUE INDEX uidx
2aa0: 5f 62 61 6e 6b 5f 6e 61 6d 65 20 4f 4e 20 62 61  _bank_name ON ba
2ab0: 6e 6b 28 74 5f 6e 61 6d 65 29 3b 0a 43 52 45 41  nk(t_name);.CREA
2ac0: 54 45 20 55 4e 49 51 55 45 20 49 4e 44 45 58 20  TE UNIQUE INDEX 
2ad0: 75 69 64 78 5f 61 63 63 6f 75 6e 74 5f 6e 61 6d  uidx_account_nam
2ae0: 65 20 4f 4e 20 61 63 63 6f 75 6e 74 28 74 5f 6e  e ON account(t_n
2af0: 61 6d 65 29 3b 0a 43 52 45 41 54 45 20 55 4e 49  ame);.CREATE UNI
2b00: 51 55 45 20 49 4e 44 45 58 20 75 69 64 78 5f 63  QUE INDEX uidx_c
2b10: 61 74 65 67 6f 72 79 5f 70 61 72 65 6e 74 5f 69  ategory_parent_i
2b20: 64 5f 6e 61 6d 65 20 4f 4e 20 63 61 74 65 67 6f  d_name ON catego
2b30: 72 79 28 74 5f 6e 61 6d 65 2c 72 64 5f 63 61 74  ry(t_name,rd_cat
2b40: 65 67 6f 72 79 5f 69 64 29 3b 0a 43 52 45 41 54  egory_id);.CREAT
2b50: 45 20 55 4e 49 51 55 45 20 49 4e 44 45 58 20 75  E UNIQUE INDEX u
2b60: 69 64 78 5f 63 61 74 65 67 6f 72 79 5f 66 75 6c  idx_category_ful
2b70: 6c 6e 61 6d 65 20 4f 4e 20 20 63 61 74 65 67 6f  lname ON  catego
2b80: 72 79 28 74 5f 66 75 6c 6c 6e 61 6d 65 29 3b 0a  ry(t_fullname);.
2b90: 43 52 45 41 54 45 20 55 4e 49 51 55 45 20 49 4e  CREATE UNIQUE IN
2ba0: 44 45 58 20 75 69 64 78 5f 72 65 66 75 6e 64 5f  DEX uidx_refund_
2bb0: 6e 61 6d 65 20 4f 4e 20 72 65 66 75 6e 64 28 74  name ON refund(t
2bc0: 5f 6e 61 6d 65 29 3b 0a 43 52 45 41 54 45 20 55  _name);.CREATE U
2bd0: 4e 49 51 55 45 20 49 4e 44 45 58 20 75 69 64 78  NIQUE INDEX uidx
2be0: 5f 70 61 79 65 65 5f 6e 61 6d 65 20 4f 4e 20 70  _payee_name ON p
2bf0: 61 79 65 65 28 74 5f 6e 61 6d 65 29 3b 0a 43 52  ayee(t_name);.CR
2c00: 45 41 54 45 20 55 4e 49 51 55 45 20 49 4e 44 45  EATE UNIQUE INDE
2c10: 58 20 75 69 64 78 5f 69 6e 74 65 72 65 73 74 20  X uidx_interest 
2c20: 4f 4e 20 69 6e 74 65 72 65 73 74 28 64 5f 64 61  ON interest(d_da
2c30: 74 65 2c 72 64 5f 61 63 63 6f 75 6e 74 5f 69 64  te,rd_account_id
2c40: 29 3b 0a 43 52 45 41 54 45 20 55 4e 49 51 55 45  );.CREATE UNIQUE
2c50: 20 49 4e 44 45 58 20 75 69 64 78 5f 62 75 64 67   INDEX uidx_budg
2c60: 65 74 20 4f 4e 20 62 75 64 67 65 74 28 69 5f 79  et ON budget(i_y
2c70: 65 61 72 2c 69 5f 6d 6f 6e 74 68 2c 20 72 63 5f  ear,i_month, rc_
2c80: 63 61 74 65 67 6f 72 79 5f 69 64 29 3b 0a 43 52  category_id);.CR
2c90: 45 41 54 45 20 56 49 45 57 20 76 5f 6e 6f 64 65  EATE VIEW v_node
2ca0: 20 41 53 20 53 45 4c 45 43 54 20 2a 20 66 72 6f   AS SELECT * fro
2cb0: 6d 20 6e 6f 64 65 3b 0a 43 52 45 41 54 45 20 56  m node;.CREATE V
2cc0: 49 45 57 20 76 5f 6e 6f 64 65 5f 64 69 73 70 6c  IEW v_node_displ
2cd0: 61 79 6e 61 6d 65 20 41 53 20 53 45 4c 45 43 54  ayname AS SELECT
2ce0: 20 2a 2c 20 74 5f 66 75 6c 6c 6e 61 6d 65 20 41   *, t_fullname A
2cf0: 53 20 74 5f 64 69 73 70 6c 61 79 6e 61 6d 65 20  S t_displayname 
2d00: 66 72 6f 6d 20 6e 6f 64 65 3b 0a 43 52 45 41 54  from node;.CREAT
2d10: 45 20 56 49 45 57 20 76 5f 70 61 72 61 6d 65 74  E VIEW v_paramet
2d20: 65 72 73 5f 64 69 73 70 6c 61 79 6e 61 6d 65 20  ers_displayname 
2d30: 41 53 20 53 45 4c 45 43 54 20 2a 2c 20 74 5f 6e  AS SELECT *, t_n
2d40: 61 6d 65 20 41 53 20 74 5f 64 69 73 70 6c 61 79  ame AS t_display
2d50: 6e 61 6d 65 20 66 72 6f 6d 20 70 61 72 61 6d 65  name from parame
2d60: 74 65 72 73 3b 0a 43 52 45 41 54 45 20 54 52 49  ters;.CREATE TRI
2d70: 47 47 45 52 20 66 6b 64 63 5f 70 61 72 61 6d 65  GGER fkdc_parame
2d80: 74 65 72 73 5f 70 61 72 61 6d 65 74 65 72 73 5f  ters_parameters_
2d90: 75 75 69 64 20 42 45 46 4f 52 45 20 44 45 4c 45  uuid BEFORE DELE
2da0: 54 45 20 4f 4e 20 70 61 72 61 6d 65 74 65 72 73  TE ON parameters
2db0: 20 46 4f 52 20 45 41 43 48 20 52 4f 57 20 42 45   FOR EACH ROW BE
2dc0: 47 49 4e 20 20 20 20 20 44 45 4c 45 54 45 20 46  GIN     DELETE F
2dd0: 52 4f 4d 20 70 61 72 61 6d 65 74 65 72 73 20 57  ROM parameters W
2de0: 48 45 52 45 20 70 61 72 61 6d 65 74 65 72 73 2e  HERE parameters.
2df0: 74 5f 75 75 69 64 5f 70 61 72 65 6e 74 3d 4f 4c  t_uuid_parent=OL
2e00: 44 2e 69 64 7c 7c 27 2d 27 7c 7c 27 70 61 72 61  D.id||'-'||'para
2e10: 6d 65 74 65 72 73 27 3b 20 45 4e 44 3b 0a 43 52  meters'; END;.CR
2e20: 45 41 54 45 20 54 52 49 47 47 45 52 20 66 6b 64  EATE TRIGGER fkd
2e30: 63 5f 6e 6f 64 65 5f 70 61 72 61 6d 65 74 65 72  c_node_parameter
2e40: 73 5f 75 75 69 64 20 42 45 46 4f 52 45 20 44 45  s_uuid BEFORE DE
2e50: 4c 45 54 45 20 4f 4e 20 6e 6f 64 65 20 46 4f 52  LETE ON node FOR
2e60: 20 45 41 43 48 20 52 4f 57 20 42 45 47 49 4e 20   EACH ROW BEGIN 
2e70: 20 20 20 20 44 45 4c 45 54 45 20 46 52 4f 4d 20      DELETE FROM 
2e80: 70 61 72 61 6d 65 74 65 72 73 20 57 48 45 52 45  parameters WHERE
2e90: 20 70 61 72 61 6d 65 74 65 72 73 2e 74 5f 75 75   parameters.t_uu
2ea0: 69 64 5f 70 61 72 65 6e 74 3d 4f 4c 44 2e 69 64  id_parent=OLD.id
2eb0: 7c 7c 27 2d 27 7c 7c 27 6e 6f 64 65 27 3b 20 45  ||'-'||'node'; E
2ec0: 4e 44 3b 0a 43 52 45 41 54 45 20 54 52 49 47 47  ND;.CREATE TRIGG
2ed0: 45 52 20 63 70 74 5f 6e 6f 64 65 5f 66 75 6c 6c  ER cpt_node_full
2ee0: 6e 61 6d 65 31 20 41 46 54 45 52 20 49 4e 53 45  name1 AFTER INSE
2ef0: 52 54 20 4f 4e 20 6e 6f 64 65 20 42 45 47 49 4e  RT ON node BEGIN
2f00: 20 55 50 44 41 54 45 20 6e 6f 64 65 20 53 45 54   UPDATE node SET
2f10: 20 74 5f 66 75 6c 6c 6e 61 6d 65 3d 43 41 53 45   t_fullname=CASE
2f20: 20 57 48 45 4e 20 6e 65 77 2e 72 64 5f 6e 6f 64   WHEN new.rd_nod
2f30: 65 5f 69 64 20 49 53 20 4e 55 4c 4c 20 4f 52 20  e_id IS NULL OR 
2f40: 6e 65 77 2e 72 64 5f 6e 6f 64 65 5f 69 64 3d 27  new.rd_node_id='
2f50: 27 20 4f 52 20 6e 65 77 2e 72 64 5f 6e 6f 64 65  ' OR new.rd_node
2f60: 5f 69 64 3d 30 20 54 48 45 4e 20 6e 65 77 2e 74  _id=0 THEN new.t
2f70: 5f 6e 61 6d 65 20 45 4c 53 45 20 28 53 45 4c 45  _name ELSE (SELE
2f80: 43 54 20 63 2e 74 5f 66 75 6c 6c 6e 61 6d 65 20  CT c.t_fullname 
2f90: 66 72 6f 6d 20 6e 6f 64 65 20 63 20 77 68 65 72  from node c wher
2fa0: 65 20 63 2e 69 64 3d 6e 65 77 2e 72 64 5f 6e 6f  e c.id=new.rd_no
2fb0: 64 65 5f 69 64 29 7c 7c 27 20 3e 20 27 7c 7c 6e  de_id)||' > '||n
2fc0: 65 77 2e 74 5f 6e 61 6d 65 20 45 4e 44 20 57 48  ew.t_name END WH
2fd0: 45 52 45 20 69 64 3d 6e 65 77 2e 69 64 3b 45 4e  ERE id=new.id;EN
2fe0: 44 3b 0a 43 52 45 41 54 45 20 54 52 49 47 47 45  D;.CREATE TRIGGE
2ff0: 52 20 63 70 74 5f 6e 6f 64 65 5f 66 75 6c 6c 6e  R cpt_node_fulln
3000: 61 6d 65 32 20 41 46 54 45 52 20 55 50 44 41 54  ame2 AFTER UPDAT
3010: 45 20 4f 46 20 74 5f 6e 61 6d 65 2c 20 72 64 5f  E OF t_name, rd_
3020: 6e 6f 64 65 5f 69 64 20 4f 4e 20 6e 6f 64 65 20  node_id ON node 
3030: 42 45 47 49 4e 20 55 50 44 41 54 45 20 6e 6f 64  BEGIN UPDATE nod
3040: 65 20 53 45 54 20 74 5f 66 75 6c 6c 6e 61 6d 65  e SET t_fullname
3050: 3d 43 41 53 45 20 57 48 45 4e 20 6e 65 77 2e 72  =CASE WHEN new.r
3060: 64 5f 6e 6f 64 65 5f 69 64 20 49 53 20 4e 55 4c  d_node_id IS NUL
3070: 4c 20 4f 52 20 6e 65 77 2e 72 64 5f 6e 6f 64 65  L OR new.rd_node
3080: 5f 69 64 3d 27 27 20 4f 52 20 6e 65 77 2e 72 64  _id='' OR new.rd
3090: 5f 6e 6f 64 65 5f 69 64 3d 30 20 54 48 45 4e 20  _node_id=0 THEN 
30a0: 6e 65 77 2e 74 5f 6e 61 6d 65 20 45 4c 53 45 20  new.t_name ELSE 
30b0: 28 53 45 4c 45 43 54 20 63 2e 74 5f 66 75 6c 6c  (SELECT c.t_full
30c0: 6e 61 6d 65 20 66 72 6f 6d 20 6e 6f 64 65 20 63  name from node c
30d0: 20 77 68 65 72 65 20 63 2e 69 64 3d 6e 65 77 2e   where c.id=new.
30e0: 72 64 5f 6e 6f 64 65 5f 69 64 29 7c 7c 27 20 3e  rd_node_id)||' >
30f0: 20 27 7c 7c 6e 65 77 2e 74 5f 6e 61 6d 65 20 45   '||new.t_name E
3100: 4e 44 20 57 48 45 52 45 20 69 64 3d 6e 65 77 2e  ND WHERE id=new.
3110: 69 64 3b 55 50 44 41 54 45 20 6e 6f 64 65 20 53  id;UPDATE node S
3120: 45 54 20 74 5f 6e 61 6d 65 3d 74 5f 6e 61 6d 65  ET t_name=t_name
3130: 20 57 48 45 52 45 20 72 64 5f 6e 6f 64 65 5f 69   WHERE rd_node_i
3140: 64 3d 6e 65 77 2e 69 64 3b 45 4e 44 3b 0a 43 52  d=new.id;END;.CR
3150: 45 41 54 45 20 54 52 49 47 47 45 52 20 66 6b 69  EATE TRIGGER fki
3160: 5f 61 63 63 6f 75 6e 74 5f 62 61 6e 6b 5f 72 64  _account_bank_rd
3170: 5f 62 61 6e 6b 5f 69 64 5f 69 64 20 42 45 46 4f  _bank_id_id BEFO
3180: 52 45 20 49 4e 53 45 52 54 20 4f 4e 20 61 63 63  RE INSERT ON acc
3190: 6f 75 6e 74 20 46 4f 52 20 45 41 43 48 20 52 4f  ount FOR EACH RO
31a0: 57 20 42 45 47 49 4e 20 20 20 53 45 4c 45 43 54  W BEGIN   SELECT
31b0: 20 52 41 49 53 45 28 41 42 4f 52 54 2c 20 27 49   RAISE(ABORT, 'I
31c0: 6d 70 6f 73 73 69 62 6c 65 20 64 27 27 61 6a 6f  mpossible d''ajo
31d0: 75 74 65 72 20 75 6e 20 6f 62 6a 65 74 20 28 62  uter un objet (b
31e0: 61 6e 6b 20 65 73 74 20 75 74 69 6c 69 73 c3 a9  ank est utilis..
31f0: 20 70 61 72 20 61 63 63 6f 75 6e 74 29 0a 4e 6f   par account).No
3200: 6d 20 64 65 20 6c 61 20 63 6f 6e 74 72 61 69 6e  m de la contrain
3210: 74 65 c2 a0 3a 20 66 6b 69 5f 61 63 63 6f 75 6e  te..: fki_accoun
3220: 74 5f 62 61 6e 6b 5f 72 64 5f 62 61 6e 6b 5f 69  t_bank_rd_bank_i
3230: 64 5f 69 64 27 29 20 20 20 57 48 45 52 45 20 4e  d_id')   WHERE N
3240: 45 57 2e 72 64 5f 62 61 6e 6b 5f 69 64 21 3d 30  EW.rd_bank_id!=0
3250: 20 41 4e 44 20 4e 45 57 2e 72 64 5f 62 61 6e 6b   AND NEW.rd_bank
3260: 5f 69 64 21 3d 27 27 20 41 4e 44 20 28 53 45 4c  _id!='' AND (SEL
3270: 45 43 54 20 69 64 20 46 52 4f 4d 20 62 61 6e 6b  ECT id FROM bank
3280: 20 57 48 45 52 45 20 69 64 20 3d 20 4e 45 57 2e   WHERE id = NEW.
3290: 72 64 5f 62 61 6e 6b 5f 69 64 29 20 49 53 20 4e  rd_bank_id) IS N
32a0: 55 4c 4c 3b 20 45 4e 44 3b 0a 43 52 45 41 54 45  ULL; END;.CREATE
32b0: 20 54 52 49 47 47 45 52 20 66 6b 75 5f 61 63 63   TRIGGER fku_acc
32c0: 6f 75 6e 74 5f 62 61 6e 6b 5f 72 64 5f 62 61 6e  ount_bank_rd_ban
32d0: 6b 5f 69 64 5f 69 64 20 42 45 46 4f 52 45 20 55  k_id_id BEFORE U
32e0: 50 44 41 54 45 20 4f 4e 20 61 63 63 6f 75 6e 74  PDATE ON account
32f0: 20 46 4f 52 20 45 41 43 48 20 52 4f 57 20 42 45   FOR EACH ROW BE
3300: 47 49 4e 20 20 20 20 20 53 45 4c 45 43 54 20 52  GIN     SELECT R
3310: 41 49 53 45 28 41 42 4f 52 54 2c 20 27 49 6d 70  AISE(ABORT, 'Imp
3320: 6f 73 73 69 62 6c 65 20 64 65 20 6d 6f 64 69 66  ossible de modif
3330: 69 65 72 20 75 6e 20 6f 62 6a 65 74 20 28 62 61  ier un objet (ba
3340: 6e 6b 20 65 73 74 20 75 74 69 6c 69 73 c3 a9 20  nk est utilis.. 
3350: 70 61 72 20 61 63 63 6f 75 6e 74 29 0a 4e 6f 6d  par account).Nom
3360: 20 64 65 20 6c 61 20 63 6f 6e 74 72 61 69 6e 74   de la contraint
3370: 65 c2 a0 3a 20 66 6b 75 5f 61 63 63 6f 75 6e 74  e..: fku_account
3380: 5f 62 61 6e 6b 5f 72 64 5f 62 61 6e 6b 5f 69 64  _bank_rd_bank_id
3390: 5f 69 64 27 29 20 20 20 20 20 20 20 57 48 45 52  _id')       WHER
33a0: 45 20 4e 45 57 2e 72 64 5f 62 61 6e 6b 5f 69 64  E NEW.rd_bank_id
33b0: 21 3d 30 20 41 4e 44 20 4e 45 57 2e 72 64 5f 62  !=0 AND NEW.rd_b
33c0: 61 6e 6b 5f 69 64 21 3d 27 27 20 41 4e 44 20 28  ank_id!='' AND (
33d0: 53 45 4c 45 43 54 20 69 64 20 46 52 4f 4d 20 62  SELECT id FROM b
33e0: 61 6e 6b 20 57 48 45 52 45 20 69 64 20 3d 20 4e  ank WHERE id = N
33f0: 45 57 2e 72 64 5f 62 61 6e 6b 5f 69 64 29 20 49  EW.rd_bank_id) I
3400: 53 20 4e 55 4c 4c 3b 20 45 4e 44 3b 0a 43 52 45  S NULL; END;.CRE
3410: 41 54 45 20 54 52 49 47 47 45 52 20 66 6b 64 63  ATE TRIGGER fkdc
3420: 5f 62 61 6e 6b 5f 61 63 63 6f 75 6e 74 5f 69 64  _bank_account_id
3430: 5f 72 64 5f 62 61 6e 6b 5f 69 64 20 42 45 46 4f  _rd_bank_id BEFO
3440: 52 45 20 44 45 4c 45 54 45 20 4f 4e 20 62 61 6e  RE DELETE ON ban
3450: 6b 20 46 4f 52 20 45 41 43 48 20 52 4f 57 20 42  k FOR EACH ROW B
3460: 45 47 49 4e 20 20 20 20 20 44 45 4c 45 54 45 20  EGIN     DELETE 
3470: 46 52 4f 4d 20 61 63 63 6f 75 6e 74 20 57 48 45  FROM account WHE
3480: 52 45 20 61 63 63 6f 75 6e 74 2e 72 64 5f 62 61  RE account.rd_ba
3490: 6e 6b 5f 69 64 20 3d 20 4f 4c 44 2e 69 64 3b 20  nk_id = OLD.id; 
34a0: 45 4e 44 3b 0a 43 52 45 41 54 45 20 54 52 49 47  END;.CREATE TRIG
34b0: 47 45 52 20 66 6b 69 5f 62 75 64 67 65 74 5f 63  GER fki_budget_c
34c0: 61 74 65 67 6f 72 79 5f 72 63 5f 63 61 74 65 67  ategory_rc_categ
34d0: 6f 72 79 5f 69 64 5f 69 64 20 42 45 46 4f 52 45  ory_id_id BEFORE
34e0: 20 49 4e 53 45 52 54 20 4f 4e 20 62 75 64 67 65   INSERT ON budge
34f0: 74 20 46 4f 52 20 45 41 43 48 20 52 4f 57 20 42  t FOR EACH ROW B
3500: 45 47 49 4e 20 20 20 53 45 4c 45 43 54 20 52 41  EGIN   SELECT RA
3510: 49 53 45 28 41 42 4f 52 54 2c 20 27 49 6d 70 6f  ISE(ABORT, 'Impo
3520: 73 73 69 62 6c 65 20 64 27 27 61 6a 6f 75 74 65  ssible d''ajoute
3530: 72 20 75 6e 20 6f 62 6a 65 74 20 28 63 61 74 65  r un objet (cate
3540: 67 6f 72 79 20 65 73 74 20 75 74 69 6c 69 73 c3  gory est utilis.
3550: a9 20 70 61 72 20 62 75 64 67 65 74 29 0a 4e 6f  . par budget).No
3560: 6d 20 64 65 20 6c 61 20 63 6f 6e 74 72 61 69 6e  m de la contrain
3570: 74 65 c2 a0 3a 20 66 6b 69 5f 62 75 64 67 65 74  te..: fki_budget
3580: 5f 63 61 74 65 67 6f 72 79 5f 72 63 5f 63 61 74  _category_rc_cat
3590: 65 67 6f 72 79 5f 69 64 5f 69 64 27 29 20 20 20  egory_id_id')   
35a0: 57 48 45 52 45 20 4e 45 57 2e 72 63 5f 63 61 74  WHERE NEW.rc_cat
35b0: 65 67 6f 72 79 5f 69 64 21 3d 30 20 41 4e 44 20  egory_id!=0 AND 
35c0: 4e 45 57 2e 72 63 5f 63 61 74 65 67 6f 72 79 5f  NEW.rc_category_
35d0: 69 64 21 3d 27 27 20 41 4e 44 20 28 53 45 4c 45  id!='' AND (SELE
35e0: 43 54 20 69 64 20 46 52 4f 4d 20 63 61 74 65 67  CT id FROM categ
35f0: 6f 72 79 20 57 48 45 52 45 20 69 64 20 3d 20 4e  ory WHERE id = N
3600: 45 57 2e 72 63 5f 63 61 74 65 67 6f 72 79 5f 69  EW.rc_category_i
3610: 64 29 20 49 53 20 4e 55 4c 4c 3b 20 45 4e 44 3b  d) IS NULL; END;
3620: 0a 43 52 45 41 54 45 20 54 52 49 47 47 45 52 20  .CREATE TRIGGER 
3630: 66 6b 75 5f 62 75 64 67 65 74 5f 63 61 74 65 67  fku_budget_categ
3640: 6f 72 79 5f 72 63 5f 63 61 74 65 67 6f 72 79 5f  ory_rc_category_
3650: 69 64 5f 69 64 20 42 45 46 4f 52 45 20 55 50 44  id_id BEFORE UPD
3660: 41 54 45 20 4f 4e 20 62 75 64 67 65 74 20 46 4f  ATE ON budget FO
3670: 52 20 45 41 43 48 20 52 4f 57 20 42 45 47 49 4e  R EACH ROW BEGIN
3680: 20 20 20 20 20 53 45 4c 45 43 54 20 52 41 49 53       SELECT RAIS
3690: 45 28 41 42 4f 52 54 2c 20 27 49 6d 70 6f 73 73  E(ABORT, 'Imposs
36a0: 69 62 6c 65 20 64 65 20 6d 6f 64 69 66 69 65 72  ible de modifier
36b0: 20 75 6e 20 6f 62 6a 65 74 20 28 63 61 74 65 67   un objet (categ
36c0: 6f 72 79 20 65 73 74 20 75 74 69 6c 69 73 c3 a9  ory est utilis..
36d0: 20 70 61 72 20 62 75 64 67 65 74 29 0a 4e 6f 6d   par budget).Nom
36e0: 20 64 65 20 6c 61 20 63 6f 6e 74 72 61 69 6e 74   de la contraint
36f0: 65 c2 a0 3a 20 66 6b 75 5f 62 75 64 67 65 74 5f  e..: fku_budget_
3700: 63 61 74 65 67 6f 72 79 5f 72 63 5f 63 61 74 65  category_rc_cate
3710: 67 6f 72 79 5f 69 64 5f 69 64 27 29 20 20 20 20  gory_id_id')    
3720: 20 20 20 57 48 45 52 45 20 4e 45 57 2e 72 63 5f     WHERE NEW.rc_
3730: 63 61 74 65 67 6f 72 79 5f 69 64 21 3d 30 20 41  category_id!=0 A
3740: 4e 44 20 4e 45 57 2e 72 63 5f 63 61 74 65 67 6f  ND NEW.rc_catego
3750: 72 79 5f 69 64 21 3d 27 27 20 41 4e 44 20 28 53  ry_id!='' AND (S
3760: 45 4c 45 43 54 20 69 64 20 46 52 4f 4d 20 63 61  ELECT id FROM ca
3770: 74 65 67 6f 72 79 20 57 48 45 52 45 20 69 64 20  tegory WHERE id 
3780: 3d 20 4e 45 57 2e 72 63 5f 63 61 74 65 67 6f 72  = NEW.rc_categor
3790: 79 5f 69 64 29 20 49 53 20 4e 55 4c 4c 3b 20 45  y_id) IS NULL; E
37a0: 4e 44 3b 0a 43 52 45 41 54 45 20 54 52 49 47 47  ND;.CREATE TRIGG
37b0: 45 52 20 66 6b 64 5f 62 75 64 67 65 74 5f 63 61  ER fkd_budget_ca
37c0: 74 65 67 6f 72 79 5f 72 63 5f 63 61 74 65 67 6f  tegory_rc_catego
37d0: 72 79 5f 69 64 5f 69 64 20 42 45 46 4f 52 45 20  ry_id_id BEFORE 
37e0: 44 45 4c 45 54 45 20 4f 4e 20 63 61 74 65 67 6f  DELETE ON catego
37f0: 72 79 20 46 4f 52 20 45 41 43 48 20 52 4f 57 20  ry FOR EACH ROW 
3800: 42 45 47 49 4e 20 20 20 20 20 53 45 4c 45 43 54  BEGIN     SELECT
3810: 20 52 41 49 53 45 28 41 42 4f 52 54 2c 20 27 49   RAISE(ABORT, 'I
3820: 6d 70 6f 73 73 69 62 6c 65 20 64 65 20 64 c3 a9  mpossible de d..
3830: 74 72 75 69 72 65 20 75 6e 20 6f 62 6a 65 74 20  truire un objet 
3840: 28 63 61 74 65 67 6f 72 79 20 65 73 74 20 75 74  (category est ut
3850: 69 6c 69 73 c3 a9 20 70 61 72 20 62 75 64 67 65  ilis.. par budge
3860: 74 29 0a 4e 6f 6d 20 64 65 20 6c 61 20 63 6f 6e  t).Nom de la con
3870: 74 72 61 69 6e 74 65 c2 a0 3a 20 66 6b 64 5f 62  trainte..: fkd_b
3880: 75 64 67 65 74 5f 63 61 74 65 67 6f 72 79 5f 72  udget_category_r
3890: 63 5f 63 61 74 65 67 6f 72 79 5f 69 64 5f 69 64  c_category_id_id
38a0: 27 29 20 20 20 20 20 57 48 45 52 45 20 28 53 45  ')     WHERE (SE
38b0: 4c 45 43 54 20 72 63 5f 63 61 74 65 67 6f 72 79  LECT rc_category
38c0: 5f 69 64 20 46 52 4f 4d 20 62 75 64 67 65 74 20  _id FROM budget 
38d0: 57 48 45 52 45 20 72 63 5f 63 61 74 65 67 6f 72  WHERE rc_categor
38e0: 79 5f 69 64 20 3d 20 4f 4c 44 2e 69 64 29 20 49  y_id = OLD.id) I
38f0: 53 20 4e 4f 54 20 4e 55 4c 4c 3b 20 45 4e 44 3b  S NOT NULL; END;
3900: 0a 43 52 45 41 54 45 20 54 52 49 47 47 45 52 20  .CREATE TRIGGER 
3910: 66 6b 69 5f 62 75 64 67 65 74 72 75 6c 65 5f 63  fki_budgetrule_c
3920: 61 74 65 67 6f 72 79 5f 72 63 5f 63 61 74 65 67  ategory_rc_categ
3930: 6f 72 79 5f 69 64 5f 69 64 20 42 45 46 4f 52 45  ory_id_id BEFORE
3940: 20 49 4e 53 45 52 54 20 4f 4e 20 62 75 64 67 65   INSERT ON budge
3950: 74 72 75 6c 65 20 46 4f 52 20 45 41 43 48 20 52  trule FOR EACH R
3960: 4f 57 20 42 45 47 49 4e 20 20 20 53 45 4c 45 43  OW BEGIN   SELEC
3970: 54 20 52 41 49 53 45 28 41 42 4f 52 54 2c 20 27  T RAISE(ABORT, '
3980: 49 6d 70 6f 73 73 69 62 6c 65 20 64 27 27 61 6a  Impossible d''aj
3990: 6f 75 74 65 72 20 75 6e 20 6f 62 6a 65 74 20 28  outer un objet (
39a0: 63 61 74 65 67 6f 72 79 20 65 73 74 20 75 74 69  category est uti
39b0: 6c 69 73 c3 a9 20 70 61 72 20 62 75 64 67 65 74  lis.. par budget
39c0: 72 75 6c 65 29 0a 4e 6f 6d 20 64 65 20 6c 61 20  rule).Nom de la 
39d0: 63 6f 6e 74 72 61 69 6e 74 65 c2 a0 3a 20 66 6b  contrainte..: fk
39e0: 69 5f 62 75 64 67 65 74 72 75 6c 65 5f 63 61 74  i_budgetrule_cat
39f0: 65 67 6f 72 79 5f 72 63 5f 63 61 74 65 67 6f 72  egory_rc_categor
3a00: 79 5f 69 64 5f 69 64 27 29 20 20 20 57 48 45 52  y_id_id')   WHER
3a10: 45 20 4e 45 57 2e 72 63 5f 63 61 74 65 67 6f 72  E NEW.rc_categor
3a20: 79 5f 69 64 21 3d 30 20 41 4e 44 20 4e 45 57 2e  y_id!=0 AND NEW.
3a30: 72 63 5f 63 61 74 65 67 6f 72 79 5f 69 64 21 3d  rc_category_id!=
3a40: 27 27 20 41 4e 44 20 28 53 45 4c 45 43 54 20 69  '' AND (SELECT i
3a50: 64 20 46 52 4f 4d 20 63 61 74 65 67 6f 72 79 20  d FROM category 
3a60: 57 48 45 52 45 20 69 64 20 3d 20 4e 45 57 2e 72  WHERE id = NEW.r
3a70: 63 5f 63 61 74 65 67 6f 72 79 5f 69 64 29 20 49  c_category_id) I
3a80: 53 20 4e 55 4c 4c 3b 20 45 4e 44 3b 0a 43 52 45  S NULL; END;.CRE
3a90: 41 54 45 20 54 52 49 47 47 45 52 20 66 6b 75 5f  ATE TRIGGER fku_
3aa0: 62 75 64 67 65 74 72 75 6c 65 5f 63 61 74 65 67  budgetrule_categ
3ab0: 6f 72 79 5f 72 63 5f 63 61 74 65 67 6f 72 79 5f  ory_rc_category_
3ac0: 69 64 5f 69 64 20 42 45 46 4f 52 45 20 55 50 44  id_id BEFORE UPD
3ad0: 41 54 45 20 4f 4e 20 62 75 64 67 65 74 72 75 6c  ATE ON budgetrul
3ae0: 65 20 46 4f 52 20 45 41 43 48 20 52 4f 57 20 42  e FOR EACH ROW B
3af0: 45 47 49 4e 20 20 20 20 20 53 45 4c 45 43 54 20  EGIN     SELECT 
3b00: 52 41 49 53 45 28 41 42 4f 52 54 2c 20 27 49 6d  RAISE(ABORT, 'Im
3b10: 70 6f 73 73 69 62 6c 65 20 64 65 20 6d 6f 64 69  possible de modi
3b20: 66 69 65 72 20 75 6e 20 6f 62 6a 65 74 20 28 63  fier un objet (c
3b30: 61 74 65 67 6f 72 79 20 65 73 74 20 75 74 69 6c  ategory est util
3b40: 69 73 c3 a9 20 70 61 72 20 62 75 64 67 65 74 72  is.. par budgetr
3b50: 75 6c 65 29 0a 4e 6f 6d 20 64 65 20 6c 61 20 63  ule).Nom de la c
3b60: 6f 6e 74 72 61 69 6e 74 65 c2 a0 3a 20 66 6b 75  ontrainte..: fku
3b70: 5f 62 75 64 67 65 74 72 75 6c 65 5f 63 61 74 65  _budgetrule_cate
3b80: 67 6f 72 79 5f 72 63 5f 63 61 74 65 67 6f 72 79  gory_rc_category
3b90: 5f 69 64 5f 69 64 27 29 20 20 20 20 20 20 20 57  _id_id')       W
3ba0: 48 45 52 45 20 4e 45 57 2e 72 63 5f 63 61 74 65  HERE NEW.rc_cate
3bb0: 67 6f 72 79 5f 69 64 21 3d 30 20 41 4e 44 20 4e  gory_id!=0 AND N
3bc0: 45 57 2e 72 63 5f 63 61 74 65 67 6f 72 79 5f 69  EW.rc_category_i
3bd0: 64 21 3d 27 27 20 41 4e 44 20 28 53 45 4c 45 43  d!='' AND (SELEC
3be0: 54 20 69 64 20 46 52 4f 4d 20 63 61 74 65 67 6f  T id FROM catego
3bf0: 72 79 20 57 48 45 52 45 20 69 64 20 3d 20 4e 45  ry WHERE id = NE
3c00: 57 2e 72 63 5f 63 61 74 65 67 6f 72 79 5f 69 64  W.rc_category_id
3c10: 29 20 49 53 20 4e 55 4c 4c 3b 20 45 4e 44 3b 0a  ) IS NULL; END;.
3c20: 43 52 45 41 54 45 20 54 52 49 47 47 45 52 20 66  CREATE TRIGGER f
3c30: 6b 64 5f 62 75 64 67 65 74 72 75 6c 65 5f 63 61  kd_budgetrule_ca
3c40: 74 65 67 6f 72 79 5f 72 63 5f 63 61 74 65 67 6f  tegory_rc_catego
3c50: 72 79 5f 69 64 5f 69 64 20 42 45 46 4f 52 45 20  ry_id_id BEFORE 
3c60: 44 45 4c 45 54 45 20 4f 4e 20 63 61 74 65 67 6f  DELETE ON catego
3c70: 72 79 20 46 4f 52 20 45 41 43 48 20 52 4f 57 20  ry FOR EACH ROW 
3c80: 42 45 47 49 4e 20 20 20 20 20 53 45 4c 45 43 54  BEGIN     SELECT
3c90: 20 52 41 49 53 45 28 41 42 4f 52 54 2c 20 27 49   RAISE(ABORT, 'I
3ca0: 6d 70 6f 73 73 69 62 6c 65 20 64 65 20 64 c3 a9  mpossible de d..
3cb0: 74 72 75 69 72 65 20 75 6e 20 6f 62 6a 65 74 20  truire un objet 
3cc0: 28 63 61 74 65 67 6f 72 79 20 65 73 74 20 75 74  (category est ut
3cd0: 69 6c 69 73 c3 a9 20 70 61 72 20 62 75 64 67 65  ilis.. par budge
3ce0: 74 72 75 6c 65 29 0a 4e 6f 6d 20 64 65 20 6c 61  trule).Nom de la
3cf0: 20 63 6f 6e 74 72 61 69 6e 74 65 c2 a0 3a 20 66   contrainte..: f
3d00: 6b 64 5f 62 75 64 67 65 74 72 75 6c 65 5f 63 61  kd_budgetrule_ca
3d10: 74 65 67 6f 72 79 5f 72 63 5f 63 61 74 65 67 6f  tegory_rc_catego
3d20: 72 79 5f 69 64 5f 69 64 27 29 20 20 20 20 20 57  ry_id_id')     W
3d30: 48 45 52 45 20 28 53 45 4c 45 43 54 20 72 63 5f  HERE (SELECT rc_
3d40: 63 61 74 65 67 6f 72 79 5f 69 64 20 46 52 4f 4d  category_id FROM
3d50: 20 62 75 64 67 65 74 72 75 6c 65 20 57 48 45 52   budgetrule WHER
3d60: 45 20 72 63 5f 63 61 74 65 67 6f 72 79 5f 69 64  E rc_category_id
3d70: 20 3d 20 4f 4c 44 2e 69 64 29 20 49 53 20 4e 4f   = OLD.id) IS NO
3d80: 54 20 4e 55 4c 4c 3b 20 45 4e 44 3b 0a 43 52 45  T NULL; END;.CRE
3d90: 41 54 45 20 54 52 49 47 47 45 52 20 66 6b 69 5f  ATE TRIGGER fki_
3da0: 62 75 64 67 65 74 72 75 6c 65 5f 63 61 74 65 67  budgetrule_categ
3db0: 6f 72 79 5f 72 63 5f 63 61 74 65 67 6f 72 79 5f  ory_rc_category_
3dc0: 69 64 5f 74 61 72 67 65 74 5f 69 64 20 42 45 46  id_target_id BEF
3dd0: 4f 52 45 20 49 4e 53 45 52 54 20 4f 4e 20 62 75  ORE INSERT ON bu
3de0: 64 67 65 74 72 75 6c 65 20 46 4f 52 20 45 41 43  dgetrule FOR EAC
3df0: 48 20 52 4f 57 20 42 45 47 49 4e 20 20 20 53 45  H ROW BEGIN   SE
3e00: 4c 45 43 54 20 52 41 49 53 45 28 41 42 4f 52 54  LECT RAISE(ABORT
3e10: 2c 20 27 49 6d 70 6f 73 73 69 62 6c 65 20 64 27  , 'Impossible d'
3e20: 27 61 6a 6f 75 74 65 72 20 75 6e 20 6f 62 6a 65  'ajouter un obje
3e30: 74 20 28 63 61 74 65 67 6f 72 79 20 65 73 74 20  t (category est 
3e40: 75 74 69 6c 69 73 c3 a9 20 70 61 72 20 62 75 64  utilis.. par bud
3e50: 67 65 74 72 75 6c 65 29 0a 4e 6f 6d 20 64 65 20  getrule).Nom de 
3e60: 6c 61 20 63 6f 6e 74 72 61 69 6e 74 65 c2 a0 3a  la contrainte..:
3e70: 20 66 6b 69 5f 62 75 64 67 65 74 72 75 6c 65 5f   fki_budgetrule_
3e80: 63 61 74 65 67 6f 72 79 5f 72 63 5f 63 61 74 65  category_rc_cate
3e90: 67 6f 72 79 5f 69 64 5f 74 61 72 67 65 74 5f 69  gory_id_target_i
3ea0: 64 27 29 20 20 20 57 48 45 52 45 20 4e 45 57 2e  d')   WHERE NEW.
3eb0: 72 63 5f 63 61 74 65 67 6f 72 79 5f 69 64 5f 74  rc_category_id_t
3ec0: 61 72 67 65 74 21 3d 30 20 41 4e 44 20 4e 45 57  arget!=0 AND NEW
3ed0: 2e 72 63 5f 63 61 74 65 67 6f 72 79 5f 69 64 5f  .rc_category_id_
3ee0: 74 61 72 67 65 74 21 3d 27 27 20 41 4e 44 20 28  target!='' AND (
3ef0: 53 45 4c 45 43 54 20 69 64 20 46 52 4f 4d 20 63  SELECT id FROM c
3f00: 61 74 65 67 6f 72 79 20 57 48 45 52 45 20 69 64  ategory WHERE id
3f10: 20 3d 20 4e 45 57 2e 72 63 5f 63 61 74 65 67 6f   = NEW.rc_catego
3f20: 72 79 5f 69 64 5f 74 61 72 67 65 74 29 20 49 53  ry_id_target) IS
3f30: 20 4e 55 4c 4c 3b 20 45 4e 44 3b 0a 43 52 45 41   NULL; END;.CREA
3f40: 54 45 20 54 52 49 47 47 45 52 20 66 6b 75 5f 62  TE TRIGGER fku_b
3f50: 75 64 67 65 74 72 75 6c 65 5f 63 61 74 65 67 6f  udgetrule_catego
3f60: 72 79 5f 72 63 5f 63 61 74 65 67 6f 72 79 5f 69  ry_rc_category_i
3f70: 64 5f 74 61 72 67 65 74 5f 69 64 20 42 45 46 4f  d_target_id BEFO
3f80: 52 45 20 55 50 44 41 54 45 20 4f 4e 20 62 75 64  RE UPDATE ON bud
3f90: 67 65 74 72 75 6c 65 20 46 4f 52 20 45 41 43 48  getrule FOR EACH
3fa0: 20 52 4f 57 20 42 45 47 49 4e 20 20 20 20 20 53   ROW BEGIN     S
3fb0: 45 4c 45 43 54 20 52 41 49 53 45 28 41 42 4f 52  ELECT RAISE(ABOR
3fc0: 54 2c 20 27 49 6d 70 6f 73 73 69 62 6c 65 20 64  T, 'Impossible d
3fd0: 65 20 6d 6f 64 69 66 69 65 72 20 75 6e 20 6f 62  e modifier un ob
3fe0: 6a 65 74 20 28 63 61 74 65 67 6f 72 79 20 65 73  jet (category es
3ff0: 74 20 75 74 69 6c 69 73 c3 a9 20 70 61 72 20 62  t utilis.. par b
4000: 75 64 67 65 74 72 75 6c 65 29 0a 4e 6f 6d 20 64  udgetrule).Nom d
4010: 65 20 6c 61 20 63 6f 6e 74 72 61 69 6e 74 65 c2  e la contrainte.
4020: a0 3a 20 66 6b 75 5f 62 75 64 67 65 74 72 75 6c  .: fku_budgetrul
4030: 65 5f 63 61 74 65 67 6f 72 79 5f 72 63 5f 63 61  e_category_rc_ca
4040: 74 65 67 6f 72 79 5f 69 64 5f 74 61 72 67 65 74  tegory_id_target
4050: 5f 69 64 27 29 20 20 20 20 20 20 20 57 48 45 52  _id')       WHER
4060: 45 20 4e 45 57 2e 72 63 5f 63 61 74 65 67 6f 72  E NEW.rc_categor
4070: 79 5f 69 64 5f 74 61 72 67 65 74 21 3d 30 20 41  y_id_target!=0 A
4080: 4e 44 20 4e 45 57 2e 72 63 5f 63 61 74 65 67 6f  ND NEW.rc_catego
4090: 72 79 5f 69 64 5f 74 61 72 67 65 74 21 3d 27 27  ry_id_target!=''
40a0: 20 41 4e 44 20 28 53 45 4c 45 43 54 20 69 64 20   AND (SELECT id 
40b0: 46 52 4f 4d 20 63 61 74 65 67 6f 72 79 20 57 48  FROM category WH
40c0: 45 52 45 20 69 64 20 3d 20 4e 45 57 2e 72 63 5f  ERE id = NEW.rc_
40d0: 63 61 74 65 67 6f 72 79 5f 69 64 5f 74 61 72 67  category_id_targ
40e0: 65 74 29 20 49 53 20 4e 55 4c 4c 3b 20 45 4e 44  et) IS NULL; END
40f0: 3b 0a 43 52 45 41 54 45 20 54 52 49 47 47 45 52  ;.CREATE TRIGGER
4100: 20 66 6b 64 5f 62 75 64 67 65 74 72 75 6c 65 5f   fkd_budgetrule_
4110: 63 61 74 65 67 6f 72 79 5f 72 63 5f 63 61 74 65  category_rc_cate
4120: 67 6f 72 79 5f 69 64 5f 74 61 72 67 65 74 5f 69  gory_id_target_i
4130: 64 20 42 45 46 4f 52 45 20 44 45 4c 45 54 45 20  d BEFORE DELETE 
4140: 4f 4e 20 63 61 74 65 67 6f 72 79 20 46 4f 52 20  ON category FOR 
4150: 45 41 43 48 20 52 4f 57 20 42 45 47 49 4e 20 20  EACH ROW BEGIN  
4160: 20 20 20 53 45 4c 45 43 54 20 52 41 49 53 45 28     SELECT RAISE(
4170: 41 42 4f 52 54 2c 20 27 49 6d 70 6f 73 73 69 62  ABORT, 'Impossib
4180: 6c 65 20 64 65 20 64 c3 a9 74 72 75 69 72 65 20  le de d..truire 
4190: 75 6e 20 6f 62 6a 65 74 20 28 63 61 74 65 67 6f  un objet (catego
41a0: 72 79 20 65 73 74 20 75 74 69 6c 69 73 c3 a9 20  ry est utilis.. 
41b0: 70 61 72 20 62 75 64 67 65 74 72 75 6c 65 29 0a  par budgetrule).
41c0: 4e 6f 6d 20 64 65 20 6c 61 20 63 6f 6e 74 72 61  Nom de la contra
41d0: 69 6e 74 65 c2 a0 3a 20 66 6b 64 5f 62 75 64 67  inte..: fkd_budg
41e0: 65 74 72 75 6c 65 5f 63 61 74 65 67 6f 72 79 5f  etrule_category_
41f0: 72 63 5f 63 61 74 65 67 6f 72 79 5f 69 64 5f 74  rc_category_id_t
4200: 61 72 67 65 74 5f 69 64 27 29 20 20 20 20 20 57  arget_id')     W
4210: 48 45 52 45 20 28 53 45 4c 45 43 54 20 72 63 5f  HERE (SELECT rc_
4220: 63 61 74 65 67 6f 72 79 5f 69 64 5f 74 61 72 67  category_id_targ
4230: 65 74 20 46 52 4f 4d 20 62 75 64 67 65 74 72 75  et FROM budgetru
4240: 6c 65 20 57 48 45 52 45 20 72 63 5f 63 61 74 65  le WHERE rc_cate
4250: 67 6f 72 79 5f 69 64 5f 74 61 72 67 65 74 20 3d  gory_id_target =
4260: 20 4f 4c 44 2e 69 64 29 20 49 53 20 4e 4f 54 20   OLD.id) IS NOT 
4270: 4e 55 4c 4c 3b 20 45 4e 44 3b 0a 43 52 45 41 54  NULL; END;.CREAT
4280: 45 20 54 52 49 47 47 45 52 20 66 6b 69 5f 63 61  E TRIGGER fki_ca
4290: 74 65 67 6f 72 79 5f 63 61 74 65 67 6f 72 79 5f  tegory_category_
42a0: 72 64 5f 63 61 74 65 67 6f 72 79 5f 69 64 5f 69  rd_category_id_i
42b0: 64 20 42 45 46 4f 52 45 20 49 4e 53 45 52 54 20  d BEFORE INSERT 
42c0: 4f 4e 20 63 61 74 65 67 6f 72 79 20 46 4f 52 20  ON category FOR 
42d0: 45 41 43 48 20 52 4f 57 20 42 45 47 49 4e 20 20  EACH ROW BEGIN  
42e0: 20 53 45 4c 45 43 54 20 52 41 49 53 45 28 41 42   SELECT RAISE(AB
42f0: 4f 52 54 2c 20 27 49 6d 70 6f 73 73 69 62 6c 65  ORT, 'Impossible
4300: 20 64 27 27 61 6a 6f 75 74 65 72 20 75 6e 20 6f   d''ajouter un o
4310: 62 6a 65 74 20 28 63 61 74 65 67 6f 72 79 20 65  bjet (category e
4320: 73 74 20 75 74 69 6c 69 73 c3 a9 20 70 61 72 20  st utilis.. par 
4330: 63 61 74 65 67 6f 72 79 29 0a 4e 6f 6d 20 64 65  category).Nom de
4340: 20 6c 61 20 63 6f 6e 74 72 61 69 6e 74 65 c2 a0   la contrainte..
4350: 3a 20 66 6b 69 5f 63 61 74 65 67 6f 72 79 5f 63  : fki_category_c
4360: 61 74 65 67 6f 72 79 5f 72 64 5f 63 61 74 65 67  ategory_rd_categ
4370: 6f 72 79 5f 69 64 5f 69 64 27 29 20 20 20 57 48  ory_id_id')   WH
4380: 45 52 45 20 4e 45 57 2e 72 64 5f 63 61 74 65 67  ERE NEW.rd_categ
4390: 6f 72 79 5f 69 64 21 3d 30 20 41 4e 44 20 4e 45  ory_id!=0 AND NE
43a0: 57 2e 72 64 5f 63 61 74 65 67 6f 72 79 5f 69 64  W.rd_category_id
43b0: 21 3d 27 27 20 41 4e 44 20 28 53 45 4c 45 43 54  !='' AND (SELECT
43c0: 20 69 64 20 46 52 4f 4d 20 63 61 74 65 67 6f 72   id FROM categor
43d0: 79 20 57 48 45 52 45 20 69 64 20 3d 20 4e 45 57  y WHERE id = NEW
43e0: 2e 72 64 5f 63 61 74 65 67 6f 72 79 5f 69 64 29  .rd_category_id)
43f0: 20 49 53 20 4e 55 4c 4c 3b 20 45 4e 44 3b 0a 43   IS NULL; END;.C
4400: 52 45 41 54 45 20 54 52 49 47 47 45 52 20 66 6b  REATE TRIGGER fk
4410: 75 5f 63 61 74 65 67 6f 72 79 5f 63 61 74 65 67  u_category_categ
4420: 6f 72 79 5f 72 64 5f 63 61 74 65 67 6f 72 79 5f  ory_rd_category_
4430: 69 64 5f 69 64 20 42 45 46 4f 52 45 20 55 50 44  id_id BEFORE UPD
4440: 41 54 45 20 4f 4e 20 63 61 74 65 67 6f 72 79 20  ATE ON category 
4450: 46 4f 52 20 45 41 43 48 20 52 4f 57 20 42 45 47  FOR EACH ROW BEG
4460: 49 4e 20 20 20 20 20 53 45 4c 45 43 54 20 52 41  IN     SELECT RA
4470: 49 53 45 28 41 42 4f 52 54 2c 20 27 49 6d 70 6f  ISE(ABORT, 'Impo
4480: 73 73 69 62 6c 65 20 64 65 20 6d 6f 64 69 66 69  ssible de modifi
4490: 65 72 20 75 6e 20 6f 62 6a 65 74 20 28 63 61 74  er un objet (cat
44a0: 65 67 6f 72 79 20 65 73 74 20 75 74 69 6c 69 73  egory est utilis
44b0: c3 a9 20 70 61 72 20 63 61 74 65 67 6f 72 79 29  .. par category)
44c0: 0a 4e 6f 6d 20 64 65 20 6c 61 20 63 6f 6e 74 72  .Nom de la contr
44d0: 61 69 6e 74 65 c2 a0 3a 20 66 6b 75 5f 63 61 74  ainte..: fku_cat
44e0: 65 67 6f 72 79 5f 63 61 74 65 67 6f 72 79 5f 72  egory_category_r
44f0: 64 5f 63 61 74 65 67 6f 72 79 5f 69 64 5f 69 64  d_category_id_id
4500: 27 29 20 20 20 20 20 20 20 57 48 45 52 45 20 4e  ')       WHERE N
4510: 45 57 2e 72 64 5f 63 61 74 65 67 6f 72 79 5f 69  EW.rd_category_i
4520: 64 21 3d 30 20 41 4e 44 20 4e 45 57 2e 72 64 5f  d!=0 AND NEW.rd_
4530: 63 61 74 65 67 6f 72 79 5f 69 64 21 3d 27 27 20  category_id!='' 
4540: 41 4e 44 20 28 53 45 4c 45 43 54 20 69 64 20 46  AND (SELECT id F
4550: 52 4f 4d 20 63 61 74 65 67 6f 72 79 20 57 48 45  ROM category WHE
4560: 52 45 20 69 64 20 3d 20 4e 45 57 2e 72 64 5f 63  RE id = NEW.rd_c
4570: 61 74 65 67 6f 72 79 5f 69 64 29 20 49 53 20 4e  ategory_id) IS N
4580: 55 4c 4c 3b 20 45 4e 44 3b 0a 43 52 45 41 54 45  ULL; END;.CREATE
4590: 20 54 52 49 47 47 45 52 20 66 6b 64 63 5f 63 61   TRIGGER fkdc_ca
45a0: 74 65 67 6f 72 79 5f 63 61 74 65 67 6f 72 79 5f  tegory_category_
45b0: 69 64 5f 72 64 5f 63 61 74 65 67 6f 72 79 5f 69  id_rd_category_i
45c0: 64 20 42 45 46 4f 52 45 20 44 45 4c 45 54 45 20  d BEFORE DELETE 
45d0: 4f 4e 20 63 61 74 65 67 6f 72 79 20 46 4f 52 20  ON category FOR 
45e0: 45 41 43 48 20 52 4f 57 20 42 45 47 49 4e 20 20  EACH ROW BEGIN  
45f0: 20 20 20 44 45 4c 45 54 45 20 46 52 4f 4d 20 63     DELETE FROM c
4600: 61 74 65 67 6f 72 79 20 57 48 45 52 45 20 63 61  ategory WHERE ca
4610: 74 65 67 6f 72 79 2e 72 64 5f 63 61 74 65 67 6f  tegory.rd_catego
4620: 72 79 5f 69 64 20 3d 20 4f 4c 44 2e 69 64 3b 20  ry_id = OLD.id; 
4630: 45 4e 44 3b 0a 43 52 45 41 54 45 20 54 52 49 47  END;.CREATE TRIG
4640: 47 45 52 20 66 6b 69 5f 64 6f 63 74 72 61 6e 73  GER fki_doctrans
4650: 61 63 74 69 6f 6e 69 74 65 6d 5f 64 6f 63 74 72  actionitem_doctr
4660: 61 6e 73 61 63 74 69 6f 6e 5f 72 64 5f 64 6f 63  ansaction_rd_doc
4670: 74 72 61 6e 73 61 63 74 69 6f 6e 5f 69 64 5f 69  transaction_id_i
4680: 64 20 42 45 46 4f 52 45 20 49 4e 53 45 52 54 20  d BEFORE INSERT 
4690: 4f 4e 20 64 6f 63 74 72 61 6e 73 61 63 74 69 6f  ON doctransactio
46a0: 6e 69 74 65 6d 20 46 4f 52 20 45 41 43 48 20 52  nitem FOR EACH R
46b0: 4f 57 20 42 45 47 49 4e 20 20 20 53 45 4c 45 43  OW BEGIN   SELEC
46c0: 54 20 52 41 49 53 45 28 41 42 4f 52 54 2c 20 27  T RAISE(ABORT, '
46d0: 49 6d 70 6f 73 73 69 62 6c 65 20 64 27 27 61 6a  Impossible d''aj
46e0: 6f 75 74 65 72 20 75 6e 20 6f 62 6a 65 74 20 28  outer un objet (
46f0: 64 6f 63 74 72 61 6e 73 61 63 74 69 6f 6e 20 65  doctransaction e
4700: 73 74 20 75 74 69 6c 69 73 c3 a9 20 70 61 72 20  st utilis.. par 
4710: 64 6f 63 74 72 61 6e 73 61 63 74 69 6f 6e 69 74  doctransactionit
4720: 65 6d 29 0a 4e 6f 6d 20 64 65 20 6c 61 20 63 6f  em).Nom de la co
4730: 6e 74 72 61 69 6e 74 65 c2 a0 3a 20 66 6b 69 5f  ntrainte..: fki_
4740: 64 6f 63 74 72 61 6e 73 61 63 74 69 6f 6e 69 74  doctransactionit
4750: 65 6d 5f 64 6f 63 74 72 61 6e 73 61 63 74 69 6f  em_doctransactio
4760: 6e 5f 72 64 5f 64 6f 63 74 72 61 6e 73 61 63 74  n_rd_doctransact
4770: 69 6f 6e 5f 69 64 5f 69 64 27 29 20 20 20 57 48  ion_id_id')   WH
4780: 45 52 45 20 4e 45 57 2e 72 64 5f 64 6f 63 74 72  ERE NEW.rd_doctr
4790: 61 6e 73 61 63 74 69 6f 6e 5f 69 64 21 3d 30 20  ansaction_id!=0 
47a0: 41 4e 44 20 4e 45 57 2e 72 64 5f 64 6f 63 74 72  AND NEW.rd_doctr
47b0: 61 6e 73 61 63 74 69 6f 6e 5f 69 64 21 3d 27 27  ansaction_id!=''
47c0: 20 41 4e 44 20 28 53 45 4c 45 43 54 20 69 64 20   AND (SELECT id 
47d0: 46 52 4f 4d 20 64 6f 63 74 72 61 6e 73 61 63 74  FROM doctransact
47e0: 69 6f 6e 20 57 48 45 52 45 20 69 64 20 3d 20 4e  ion WHERE id = N
47f0: 45 57 2e 72 64 5f 64 6f 63 74 72 61 6e 73 61 63  EW.rd_doctransac
4800: 74 69 6f 6e 5f 69 64 29 20 49 53 20 4e 55 4c 4c  tion_id) IS NULL
4810: 3b 20 45 4e 44 3b 0a 43 52 45 41 54 45 20 54 52  ; END;.CREATE TR
4820: 49 47 47 45 52 20 66 6b 75 5f 64 6f 63 74 72 61  IGGER fku_doctra
4830: 6e 73 61 63 74 69 6f 6e 69 74 65 6d 5f 64 6f 63  nsactionitem_doc
4840: 74 72 61 6e 73 61 63 74 69 6f 6e 5f 72 64 5f 64  transaction_rd_d
4850: 6f 63 74 72 61 6e 73 61 63 74 69 6f 6e 5f 69 64  octransaction_id
4860: 5f 69 64 20 42 45 46 4f 52 45 20 55 50 44 41 54  _id BEFORE UPDAT
4870: 45 20 4f 4e 20 64 6f 63 74 72 61 6e 73 61 63 74  E ON doctransact
4880: 69 6f 6e 69 74 65 6d 20 46 4f 52 20 45 41 43 48  ionitem FOR EACH
4890: 20 52 4f 57 20 42 45 47 49 4e 20 20 20 20 20 53   ROW BEGIN     S
48a0: 45 4c 45 43 54 20 52 41 49 53 45 28 41 42 4f 52  ELECT RAISE(ABOR
48b0: 54 2c 20 27 49 6d 70 6f 73 73 69 62 6c 65 20 64  T, 'Impossible d
48c0: 65 20 6d 6f 64 69 66 69 65 72 20 75 6e 20 6f 62  e modifier un ob
48d0: 6a 65 74 20 28 64 6f 63 74 72 61 6e 73 61 63 74  jet (doctransact
48e0: 69 6f 6e 20 65 73 74 20 75 74 69 6c 69 73 c3 a9  ion est utilis..
48f0: 20 70 61 72 20 64 6f 63 74 72 61 6e 73 61 63 74   par doctransact
4900: 69 6f 6e 69 74 65 6d 29 0a 4e 6f 6d 20 64 65 20  ionitem).Nom de 
4910: 6c 61 20 63 6f 6e 74 72 61 69 6e 74 65 c2 a0 3a  la contrainte..:
4920: 20 66 6b 75 5f 64 6f 63 74 72 61 6e 73 61 63 74   fku_doctransact
4930: 69 6f 6e 69 74 65 6d 5f 64 6f 63 74 72 61 6e 73  ionitem_doctrans
4940: 61 63 74 69 6f 6e 5f 72 64 5f 64 6f 63 74 72 61  action_rd_doctra
4950: 6e 73 61 63 74 69 6f 6e 5f 69 64 5f 69 64 27 29  nsaction_id_id')
4960: 20 20 20 20 20 20 20 57 48 45 52 45 20 4e 45 57         WHERE NEW
4970: 2e 72 64 5f 64 6f 63 74 72 61 6e 73 61 63 74 69  .rd_doctransacti
4980: 6f 6e 5f 69 64 21 3d 30 20 41 4e 44 20 4e 45 57  on_id!=0 AND NEW
4990: 2e 72 64 5f 64 6f 63 74 72 61 6e 73 61 63 74 69  .rd_doctransacti
49a0: 6f 6e 5f 69 64 21 3d 27 27 20 41 4e 44 20 28 53  on_id!='' AND (S
49b0: 45 4c 45 43 54 20 69 64 20 46 52 4f 4d 20 64 6f  ELECT id FROM do
49c0: 63 74 72 61 6e 73 61 63 74 69 6f 6e 20 57 48 45  ctransaction WHE
49d0: 52 45 20 69 64 20 3d 20 4e 45 57 2e 72 64 5f 64  RE id = NEW.rd_d
49e0: 6f 63 74 72 61 6e 73 61 63 74 69 6f 6e 5f 69 64  octransaction_id
49f0: 29 20 49 53 20 4e 55 4c 4c 3b 20 45 4e 44 3b 0a  ) IS NULL; END;.
4a00: 43 52 45 41 54 45 20 54 52 49 47 47 45 52 20 66  CREATE TRIGGER f
4a10: 6b 64 63 5f 64 6f 63 74 72 61 6e 73 61 63 74 69  kdc_doctransacti
4a20: 6f 6e 5f 64 6f 63 74 72 61 6e 73 61 63 74 69 6f  on_doctransactio
4a30: 6e 69 74 65 6d 5f 69 64 5f 72 64 5f 64 6f 63 74  nitem_id_rd_doct
4a40: 72 61 6e 73 61 63 74 69 6f 6e 5f 69 64 20 42 45  ransaction_id BE
4a50: 46 4f 52 45 20 44 45 4c 45 54 45 20 4f 4e 20 64  FORE DELETE ON d
4a60: 6f 63 74 72 61 6e 73 61 63 74 69 6f 6e 20 46 4f  octransaction FO
4a70: 52 20 45 41 43 48 20 52 4f 57 20 42 45 47 49 4e  R EACH ROW BEGIN
4a80: 20 20 20 20 20 44 45 4c 45 54 45 20 46 52 4f 4d       DELETE FROM
4a90: 20 64 6f 63 74 72 61 6e 73 61 63 74 69 6f 6e 69   doctransactioni
4aa0: 74 65 6d 20 57 48 45 52 45 20 64 6f 63 74 72 61  tem WHERE doctra
4ab0: 6e 73 61 63 74 69 6f 6e 69 74 65 6d 2e 72 64 5f  nsactionitem.rd_
4ac0: 64 6f 63 74 72 61 6e 73 61 63 74 69 6f 6e 5f 69  doctransaction_i
4ad0: 64 20 3d 20 4f 4c 44 2e 69 64 3b 20 45 4e 44 3b  d = OLD.id; END;
4ae0: 0a 43 52 45 41 54 45 20 54 52 49 47 47 45 52 20  .CREATE TRIGGER 
4af0: 66 6b 69 5f 64 6f 63 74 72 61 6e 73 61 63 74 69  fki_doctransacti
4b00: 6f 6e 6d 73 67 5f 64 6f 63 74 72 61 6e 73 61 63  onmsg_doctransac
4b10: 74 69 6f 6e 5f 72 64 5f 64 6f 63 74 72 61 6e 73  tion_rd_doctrans
4b20: 61 63 74 69 6f 6e 5f 69 64 5f 69 64 20 42 45 46  action_id_id BEF
4b30: 4f 52 45 20 49 4e 53 45 52 54 20 4f 4e 20 64 6f  ORE INSERT ON do
4b40: 63 74 72 61 6e 73 61 63 74 69 6f 6e 6d 73 67 20  ctransactionmsg 
4b50: 46 4f 52 20 45 41 43 48 20 52 4f 57 20 42 45 47  FOR EACH ROW BEG
4b60: 49 4e 20 20 20 53 45 4c 45 43 54 20 52 41 49 53  IN   SELECT RAIS
4b70: 45 28 41 42 4f 52 54 2c 20 27 49 6d 70 6f 73 73  E(ABORT, 'Imposs
4b80: 69 62 6c 65 20 64 27 27 61 6a 6f 75 74 65 72 20  ible d''ajouter 
4b90: 75 6e 20 6f 62 6a 65 74 20 28 64 6f 63 74 72 61  un objet (doctra
4ba0: 6e 73 61 63 74 69 6f 6e 20 65 73 74 20 75 74 69  nsaction est uti
4bb0: 6c 69 73 c3 a9 20 70 61 72 20 64 6f 63 74 72 61  lis.. par doctra
4bc0: 6e 73 61 63 74 69 6f 6e 6d 73 67 29 0a 4e 6f 6d  nsactionmsg).Nom
4bd0: 20 64 65 20 6c 61 20 63 6f 6e 74 72 61 69 6e 74   de la contraint
4be0: 65 c2 a0 3a 20 66 6b 69 5f 64 6f 63 74 72 61 6e  e..: fki_doctran
4bf0: 73 61 63 74 69 6f 6e 6d 73 67 5f 64 6f 63 74 72  sactionmsg_doctr
4c00: 61 6e 73 61 63 74 69 6f 6e 5f 72 64 5f 64 6f 63  ansaction_rd_doc
4c10: 74 72 61 6e 73 61 63 74 69 6f 6e 5f 69 64 5f 69  transaction_id_i
4c20: 64 27 29 20 20 20 57 48 45 52 45 20 4e 45 57 2e  d')   WHERE NEW.
4c30: 72 64 5f 64 6f 63 74 72 61 6e 73 61 63 74 69 6f  rd_doctransactio
4c40: 6e 5f 69 64 21 3d 30 20 41 4e 44 20 4e 45 57 2e  n_id!=0 AND NEW.
4c50: 72 64 5f 64 6f 63 74 72 61 6e 73 61 63 74 69 6f  rd_doctransactio
4c60: 6e 5f 69 64 21 3d 27 27 20 41 4e 44 20 28 53 45  n_id!='' AND (SE
4c70: 4c 45 43 54 20 69 64 20 46 52 4f 4d 20 64 6f 63  LECT id FROM doc
4c80: 74 72 61 6e 73 61 63 74 69 6f 6e 20 57 48 45 52  transaction WHER
4c90: 45 20 69 64 20 3d 20 4e 45 57 2e 72 64 5f 64 6f  E id = NEW.rd_do
4ca0: 63 74 72 61 6e 73 61 63 74 69 6f 6e 5f 69 64 29  ctransaction_id)
4cb0: 20 49 53 20 4e 55 4c 4c 3b 20 45 4e 44 3b 0a 43   IS NULL; END;.C
4cc0: 52 45 41 54 45 20 54 52 49 47 47 45 52 20 66 6b  REATE TRIGGER fk
4cd0: 75 5f 64 6f 63 74 72 61 6e 73 61 63 74 69 6f 6e  u_doctransaction
4ce0: 6d 73 67 5f 64 6f 63 74 72 61 6e 73 61 63 74 69  msg_doctransacti
4cf0: 6f 6e 5f 72 64 5f 64 6f 63 74 72 61 6e 73 61 63  on_rd_doctransac
4d00: 74 69 6f 6e 5f 69 64 5f 69 64 20 42 45 46 4f 52  tion_id_id BEFOR
4d10: 45 20 55 50 44 41 54 45 20 4f 4e 20 64 6f 63 74  E UPDATE ON doct
4d20: 72 61 6e 73 61 63 74 69 6f 6e 6d 73 67 20 46 4f  ransactionmsg FO
4d30: 52 20 45 41 43 48 20 52 4f 57 20 42 45 47 49 4e  R EACH ROW BEGIN
4d40: 20 20 20 20 20 53 45 4c 45 43 54 20 52 41 49 53       SELECT RAIS
4d50: 45 28 41 42 4f 52 54 2c 20 27 49 6d 70 6f 73 73  E(ABORT, 'Imposs
4d60: 69 62 6c 65 20 64 65 20 6d 6f 64 69 66 69 65 72  ible de modifier
4d70: 20 75 6e 20 6f 62 6a 65 74 20 28 64 6f 63 74 72   un objet (doctr
4d80: 61 6e 73 61 63 74 69 6f 6e 20 65 73 74 20 75 74  ansaction est ut
4d90: 69 6c 69 73 c3 a9 20 70 61 72 20 64 6f 63 74 72  ilis.. par doctr
4da0: 61 6e 73 61 63 74 69 6f 6e 6d 73 67 29 0a 4e 6f  ansactionmsg).No
4db0: 6d 20 64 65 20 6c 61 20 63 6f 6e 74 72 61 69 6e  m de la contrain
4dc0: 74 65 c2 a0 3a 20 66 6b 75 5f 64 6f 63 74 72 61  te..: fku_doctra
4dd0: 6e 73 61 63 74 69 6f 6e 6d 73 67 5f 64 6f 63 74  nsactionmsg_doct
4de0: 72 61 6e 73 61 63 74 69 6f 6e 5f 72 64 5f 64 6f  ransaction_rd_do
4df0: 63 74 72 61 6e 73 61 63 74 69 6f 6e 5f 69 64 5f  ctransaction_id_
4e00: 69 64 27 29 20 20 20 20 20 20 20 57 48 45 52 45  id')       WHERE
4e10: 20 4e 45 57 2e 72 64 5f 64 6f 63 74 72 61 6e 73   NEW.rd_doctrans
4e20: 61 63 74 69 6f 6e 5f 69 64 21 3d 30 20 41 4e 44  action_id!=0 AND
4e30: 20 4e 45 57 2e 72 64 5f 64 6f 63 74 72 61 6e 73   NEW.rd_doctrans
4e40: 61 63 74 69 6f 6e 5f 69 64 21 3d 27 27 20 41 4e  action_id!='' AN
4e50: 44 20 28 53 45 4c 45 43 54 20 69 64 20 46 52 4f  D (SELECT id FRO
4e60: 4d 20 64 6f 63 74 72 61 6e 73 61 63 74 69 6f 6e  M doctransaction
4e70: 20 57 48 45 52 45 20 69 64 20 3d 20 4e 45 57 2e   WHERE id = NEW.
4e80: 72 64 5f 64 6f 63 74 72 61 6e 73 61 63 74 69 6f  rd_doctransactio
4e90: 6e 5f 69 64 29 20 49 53 20 4e 55 4c 4c 3b 20 45  n_id) IS NULL; E
4ea0: 4e 44 3b 0a 43 52 45 41 54 45 20 54 52 49 47 47  ND;.CREATE TRIGG
4eb0: 45 52 20 66 6b 64 63 5f 64 6f 63 74 72 61 6e 73  ER fkdc_doctrans
4ec0: 61 63 74 69 6f 6e 5f 64 6f 63 74 72 61 6e 73 61  action_doctransa
4ed0: 63 74 69 6f 6e 6d 73 67 5f 69 64 5f 72 64 5f 64  ctionmsg_id_rd_d
4ee0: 6f 63 74 72 61 6e 73 61 63 74 69 6f 6e 5f 69 64  octransaction_id
4ef0: 20 42 45 46 4f 52 45 20 44 45 4c 45 54 45 20 4f   BEFORE DELETE O
4f00: 4e 20 64 6f 63 74 72 61 6e 73 61 63 74 69 6f 6e  N doctransaction
4f10: 20 46 4f 52 20 45 41 43 48 20 52 4f 57 20 42 45   FOR EACH ROW BE
4f20: 47 49 4e 20 20 20 20 20 44 45 4c 45 54 45 20 46  GIN     DELETE F
4f30: 52 4f 4d 20 64 6f 63 74 72 61 6e 73 61 63 74 69  ROM doctransacti
4f40: 6f 6e 6d 73 67 20 57 48 45 52 45 20 64 6f 63 74  onmsg WHERE doct
4f50: 72 61 6e 73 61 63 74 69 6f 6e 6d 73 67 2e 72 64  ransactionmsg.rd
4f60: 5f 64 6f 63 74 72 61 6e 73 61 63 74 69 6f 6e 5f  _doctransaction_
4f70: 69 64 20 3d 20 4f 4c 44 2e 69 64 3b 20 45 4e 44  id = OLD.id; END
4f80: 3b 0a 43 52 45 41 54 45 20 54 52 49 47 47 45 52  ;.CREATE TRIGGER
4f90: 20 66 6b 69 5f 69 6e 74 65 72 65 73 74 5f 61 63   fki_interest_ac
4fa0: 63 6f 75 6e 74 5f 72 64 5f 61 63 63 6f 75 6e 74  count_rd_account
4fb0: 5f 69 64 5f 69 64 20 42 45 46 4f 52 45 20 49 4e  _id_id BEFORE IN
4fc0: 53 45 52 54 20 4f 4e 20 69 6e 74 65 72 65 73 74  SERT ON interest
4fd0: 20 46 4f 52 20 45 41 43 48 20 52 4f 57 20 42 45   FOR EACH ROW BE
4fe0: 47 49 4e 20 20 20 53 45 4c 45 43 54 20 52 41 49  GIN   SELECT RAI
4ff0: 53 45 28 41 42 4f 52 54 2c 20 27 49 6d 70 6f 73  SE(ABORT, 'Impos
5000: 73 69 62 6c 65 20 64 27 27 61 6a 6f 75 74 65 72  sible d''ajouter
5010: 20 75 6e 20 6f 62 6a 65 74 20 28 61 63 63 6f 75   un objet (accou
5020: 6e 74 20 65 73 74 20 75 74 69 6c 69 73 c3 a9 20  nt est utilis.. 
5030: 70 61 72 20 69 6e 74 65 72 65 73 74 29 0a 4e 6f  par interest).No
5040: 6d 20 64 65 20 6c 61 20 63 6f 6e 74 72 61 69 6e  m de la contrain
5050: 74 65 c2 a0 3a 20 66 6b 69 5f 69 6e 74 65 72 65  te..: fki_intere
5060: 73 74 5f 61 63 63 6f 75 6e 74 5f 72 64 5f 61 63  st_account_rd_ac
5070: 63 6f 75 6e 74 5f 69 64 5f 69 64 27 29 20 20 20  count_id_id')   
5080: 57 48 45 52 45 20 4e 45 57 2e 72 64 5f 61 63 63  WHERE NEW.rd_acc
5090: 6f 75 6e 74 5f 69 64 21 3d 30 20 41 4e 44 20 4e  ount_id!=0 AND N
50a0: 45 57 2e 72 64 5f 61 63 63 6f 75 6e 74 5f 69 64  EW.rd_account_id
50b0: 21 3d 27 27 20 41 4e 44 20 28 53 45 4c 45 43 54  !='' AND (SELECT
50c0: 20 69 64 20 46 52 4f 4d 20 61 63 63 6f 75 6e 74   id FROM account
50d0: 20 57 48 45 52 45 20 69 64 20 3d 20 4e 45 57 2e   WHERE id = NEW.
50e0: 72 64 5f 61 63 63 6f 75 6e 74 5f 69 64 29 20 49  rd_account_id) I
50f0: 53 20 4e 55 4c 4c 3b 20 45 4e 44 3b 0a 43 52 45  S NULL; END;.CRE
5100: 41 54 45 20 54 52 49 47 47 45 52 20 66 6b 75 5f  ATE TRIGGER fku_
5110: 69 6e 74 65 72 65 73 74 5f 61 63 63 6f 75 6e 74  interest_account
5120: 5f 72 64 5f 61 63 63 6f 75 6e 74 5f 69 64 5f 69  _rd_account_id_i
5130: 64 20 42 45 46 4f 52 45 20 55 50 44 41 54 45 20  d BEFORE UPDATE 
5140: 4f 4e 20 69 6e 74 65 72 65 73 74 20 46 4f 52 20  ON interest FOR 
5150: 45 41 43 48 20 52 4f 57 20 42 45 47 49 4e 20 20  EACH ROW BEGIN  
5160: 20 20 20 53 45 4c 45 43 54 20 52 41 49 53 45 28     SELECT RAISE(
5170: 41 42 4f 52 54 2c 20 27 49 6d 70 6f 73 73 69 62  ABORT, 'Impossib
5180: 6c 65 20 64 65 20 6d 6f 64 69 66 69 65 72 20 75  le de modifier u
5190: 6e 20 6f 62 6a 65 74 20 28 61 63 63 6f 75 6e 74  n objet (account
51a0: 20 65 73 74 20 75 74 69 6c 69 73 c3 a9 20 70 61   est utilis.. pa
51b0: 72 20 69 6e 74 65 72 65 73 74 29 0a 4e 6f 6d 20  r interest).Nom 
51c0: 64 65 20 6c 61 20 63 6f 6e 74 72 61 69 6e 74 65  de la contrainte
51d0: c2 a0 3a 20 66 6b 75 5f 69 6e 74 65 72 65 73 74  ..: fku_interest
51e0: 5f 61 63 63 6f 75 6e 74 5f 72 64 5f 61 63 63 6f  _account_rd_acco
51f0: 75 6e 74 5f 69 64 5f 69 64 27 29 20 20 20 20 20  unt_id_id')     
5200: 20 20 57 48 45 52 45 20 4e 45 57 2e 72 64 5f 61    WHERE NEW.rd_a
5210: 63 63 6f 75 6e 74 5f 69 64 21 3d 30 20 41 4e 44  ccount_id!=0 AND
5220: 20 4e 45 57 2e 72 64 5f 61 63 63 6f 75 6e 74 5f   NEW.rd_account_
5230: 69 64 21 3d 27 27 20 41 4e 44 20 28 53 45 4c 45  id!='' AND (SELE
5240: 43 54 20 69 64 20 46 52 4f 4d 20 61 63 63 6f 75  CT id FROM accou
5250: 6e 74 20 57 48 45 52 45 20 69 64 20 3d 20 4e 45  nt WHERE id = NE
5260: 57 2e 72 64 5f 61 63 63 6f 75 6e 74 5f 69 64 29  W.rd_account_id)
5270: 20 49 53 20 4e 55 4c 4c 3b 20 45 4e 44 3b 0a 43   IS NULL; END;.C
5280: 52 45 41 54 45 20 54 52 49 47 47 45 52 20 66 6b  REATE TRIGGER fk
5290: 64 63 5f 61 63 63 6f 75 6e 74 5f 69 6e 74 65 72  dc_account_inter
52a0: 65 73 74 5f 69 64 5f 72 64 5f 61 63 63 6f 75 6e  est_id_rd_accoun
52b0: 74 5f 69 64 20 42 45 46 4f 52 45 20 44 45 4c 45  t_id BEFORE DELE
52c0: 54 45 20 4f 4e 20 61 63 63 6f 75 6e 74 20 46 4f  TE ON account FO
52d0: 52 20 45 41 43 48 20 52 4f 57 20 42 45 47 49 4e  R EACH ROW BEGIN
52e0: 20 20 20 20 20 44 45 4c 45 54 45 20 46 52 4f 4d       DELETE FROM
52f0: 20 69 6e 74 65 72 65 73 74 20 57 48 45 52 45 20   interest WHERE 
5300: 69 6e 74 65 72 65 73 74 2e 72 64 5f 61 63 63 6f  interest.rd_acco
5310: 75 6e 74 5f 69 64 20 3d 20 4f 4c 44 2e 69 64 3b  unt_id = OLD.id;
5320: 20 45 4e 44 3b 0a 43 52 45 41 54 45 20 54 52 49   END;.CREATE TRI
5330: 47 47 45 52 20 66 6b 69 5f 6e 6f 64 65 5f 6e 6f  GGER fki_node_no
5340: 64 65 5f 72 64 5f 6e 6f 64 65 5f 69 64 5f 69 64  de_rd_node_id_id
5350: 20 42 45 46 4f 52 45 20 49 4e 53 45 52 54 20 4f   BEFORE INSERT O
5360: 4e 20 6e 6f 64 65 20 46 4f 52 20 45 41 43 48 20  N node FOR EACH 
5370: 52 4f 57 20 42 45 47 49 4e 20 20 20 53 45 4c 45  ROW BEGIN   SELE
5380: 43 54 20 52 41 49 53 45 28 41 42 4f 52 54 2c 20  CT RAISE(ABORT, 
5390: 27 49 6d 70 6f 73 73 69 62 6c 65 20 64 27 27 61  'Impossible d''a
53a0: 6a 6f 75 74 65 72 20 75 6e 20 6f 62 6a 65 74 20  jouter un objet 
53b0: 28 6e 6f 64 65 20 65 73 74 20 75 74 69 6c 69 73  (node est utilis
53c0: c3 a9 20 70 61 72 20 6e 6f 64 65 29 0a 4e 6f 6d  .. par node).Nom
53d0: 20 64 65 20 6c 61 20 63 6f 6e 74 72 61 69 6e 74   de la contraint
53e0: 65 c2 a0 3a 20 66 6b 69 5f 6e 6f 64 65 5f 6e 6f  e..: fki_node_no
53f0: 64 65 5f 72 64 5f 6e 6f 64 65 5f 69 64 5f 69 64  de_rd_node_id_id
5400: 27 29 20 20 20 57 48 45 52 45 20 4e 45 57 2e 72  ')   WHERE NEW.r
5410: 64 5f 6e 6f 64 65 5f 69 64 21 3d 30 20 41 4e 44  d_node_id!=0 AND
5420: 20 4e 45 57 2e 72 64 5f 6e 6f 64 65 5f 69 64 21   NEW.rd_node_id!
5430: 3d 27 27 20 41 4e 44 20 28 53 45 4c 45 43 54 20  ='' AND (SELECT 
5440: 69 64 20 46 52 4f 4d 20 6e 6f 64 65 20 57 48 45  id FROM node WHE
5450: 52 45 20 69 64 20 3d 20 4e 45 57 2e 72 64 5f 6e  RE id = NEW.rd_n
5460: 6f 64 65 5f 69 64 29 20 49 53 20 4e 55 4c 4c 3b  ode_id) IS NULL;
5470: 20 45 4e 44 3b 0a 43 52 45 41 54 45 20 54 52 49   END;.CREATE TRI
5480: 47 47 45 52 20 66 6b 75 5f 6e 6f 64 65 5f 6e 6f  GGER fku_node_no
5490: 64 65 5f 72 64 5f 6e 6f 64 65 5f 69 64 5f 69 64  de_rd_node_id_id
54a0: 20 42 45 46 4f 52 45 20 55 50 44 41 54 45 20 4f   BEFORE UPDATE O
54b0: 4e 20 6e 6f 64 65 20 46 4f 52 20 45 41 43 48 20  N node FOR EACH 
54c0: 52 4f 57 20 42 45 47 49 4e 20 20 20 20 20 53 45  ROW BEGIN     SE
54d0: 4c 45 43 54 20 52 41 49 53 45 28 41 42 4f 52 54  LECT RAISE(ABORT
54e0: 2c 20 27 49 6d 70 6f 73 73 69 62 6c 65 20 64 65  , 'Impossible de
54f0: 20 6d 6f 64 69 66 69 65 72 20 75 6e 20 6f 62 6a   modifier un obj
5500: 65 74 20 28 6e 6f 64 65 20 65 73 74 20 75 74 69  et (node est uti
5510: 6c 69 73 c3 a9 20 70 61 72 20 6e 6f 64 65 29 0a  lis.. par node).
5520: 4e 6f 6d 20 64 65 20 6c 61 20 63 6f 6e 74 72 61  Nom de la contra
5530: 69 6e 74 65 c2 a0 3a 20 66 6b 75 5f 6e 6f 64 65  inte..: fku_node
5540: 5f 6e 6f 64 65 5f 72 64 5f 6e 6f 64 65 5f 69 64  _node_rd_node_id
5550: 5f 69 64 27 29 20 20 20 20 20 20 20 57 48 45 52  _id')       WHER
5560: 45 20 4e 45 57 2e 72 64 5f 6e 6f 64 65 5f 69 64  E NEW.rd_node_id
5570: 21 3d 30 20 41 4e 44 20 4e 45 57 2e 72 64 5f 6e  !=0 AND NEW.rd_n
5580: 6f 64 65 5f 69 64 21 3d 27 27 20 41 4e 44 20 28  ode_id!='' AND (
5590: 53 45 4c 45 43 54 20 69 64 20 46 52 4f 4d 20 6e  SELECT id FROM n
55a0: 6f 64 65 20 57 48 45 52 45 20 69 64 20 3d 20 4e  ode WHERE id = N
55b0: 45 57 2e 72 64 5f 6e 6f 64 65 5f 69 64 29 20 49  EW.rd_node_id) I
55c0: 53 20 4e 55 4c 4c 3b 20 45 4e 44 3b 0a 43 52 45  S NULL; END;.CRE
55d0: 41 54 45 20 54 52 49 47 47 45 52 20 66 6b 64 63  ATE TRIGGER fkdc
55e0: 5f 6e 6f 64 65 5f 6e 6f 64 65 5f 69 64 5f 72 64  _node_node_id_rd
55f0: 5f 6e 6f 64 65 5f 69 64 20 42 45 46 4f 52 45 20  _node_id BEFORE 
5600: 44 45 4c 45 54 45 20 4f 4e 20 6e 6f 64 65 20 46  DELETE ON node F
5610: 4f 52 20 45 41 43 48 20 52 4f 57 20 42 45 47 49  OR EACH ROW BEGI
5620: 4e 20 20 20 20 20 44 45 4c 45 54 45 20 46 52 4f  N     DELETE FRO
5630: 4d 20 6e 6f 64 65 20 57 48 45 52 45 20 6e 6f 64  M node WHERE nod
5640: 65 2e 72 64 5f 6e 6f 64 65 5f 69 64 20 3d 20 4f  e.rd_node_id = O
5650: 4c 44 2e 69 64 3b 20 45 4e 44 3b 0a 43 52 45 41  LD.id; END;.CREA
5660: 54 45 20 54 52 49 47 47 45 52 20 66 6b 69 5f 6f  TE TRIGGER fki_o
5670: 70 65 72 61 74 69 6f 6e 5f 61 63 63 6f 75 6e 74  peration_account
5680: 5f 72 64 5f 61 63 63 6f 75 6e 74 5f 69 64 5f 69  _rd_account_id_i
5690: 64 20 42 45 46 4f 52 45 20 49 4e 53 45 52 54 20  d BEFORE INSERT 
56a0: 4f 4e 20 6f 70 65 72 61 74 69 6f 6e 20 46 4f 52  ON operation FOR
56b0: 20 45 41 43 48 20 52 4f 57 20 42 45 47 49 4e 20   EACH ROW BEGIN 
56c0: 20 20 53 45 4c 45 43 54 20 52 41 49 53 45 28 41    SELECT RAISE(A
56d0: 42 4f 52 54 2c 20 27 49 6d 70 6f 73 73 69 62 6c  BORT, 'Impossibl
56e0: 65 20 64 27 27 61 6a 6f 75 74 65 72 20 75 6e 20  e d''ajouter un 
56f0: 6f 62 6a 65 74 20 28 61 63 63 6f 75 6e 74 20 65  objet (account e
5700: 73 74 20 75 74 69 6c 69 73 c3 a9 20 70 61 72 20  st utilis.. par 
5710: 6f 70 65 72 61 74 69 6f 6e 29 0a 4e 6f 6d 20 64  operation).Nom d
5720: 65 20 6c 61 20 63 6f 6e 74 72 61 69 6e 74 65 c2  e la contrainte.
5730: a0 3a 20 66 6b 69 5f 6f 70 65 72 61 74 69 6f 6e  .: fki_operation
5740: 5f 61 63 63 6f 75 6e 74 5f 72 64 5f 61 63 63 6f  _account_rd_acco
5750: 75 6e 74 5f 69 64 5f 69 64 27 29 20 20 20 57 48  unt_id_id')   WH
5760: 45 52 45 20 4e 45 57 2e 72 64 5f 61 63 63 6f 75  ERE NEW.rd_accou
5770: 6e 74 5f 69 64 21 3d 30 20 41 4e 44 20 4e 45 57  nt_id!=0 AND NEW
5780: 2e 72 64 5f 61 63 63 6f 75 6e 74 5f 69 64 21 3d  .rd_account_id!=
5790: 27 27 20 41 4e 44 20 28 53 45 4c 45 43 54 20 69  '' AND (SELECT i
57a0: 64 20 46 52 4f 4d 20 61 63 63 6f 75 6e 74 20 57  d FROM account W
57b0: 48 45 52 45 20 69 64 20 3d 20 4e 45 57 2e 72 64  HERE id = NEW.rd
57c0: 5f 61 63 63 6f 75 6e 74 5f 69 64 29 20 49 53 20  _account_id) IS 
57d0: 4e 55 4c 4c 3b 20 45 4e 44 3b 0a 43 52 45 41 54  NULL; END;.CREAT
57e0: 45 20 54 52 49 47 47 45 52 20 66 6b 75 5f 6f 70  E TRIGGER fku_op
57f0: 65 72 61 74 69 6f 6e 5f 61 63 63 6f 75 6e 74 5f  eration_account_
5800: 72 64 5f 61 63 63 6f 75 6e 74 5f 69 64 5f 69 64  rd_account_id_id
5810: 20 42 45 46 4f 52 45 20 55 50 44 41 54 45 20 4f   BEFORE UPDATE O
5820: 4e 20 6f 70 65 72 61 74 69 6f 6e 20 46 4f 52 20  N operation FOR 
5830: 45 41 43 48 20 52 4f 57 20 42 45 47 49 4e 20 20  EACH ROW BEGIN  
5840: 20 20 20 53 45 4c 45 43 54 20 52 41 49 53 45 28     SELECT RAISE(
5850: 41 42 4f 52 54 2c 20 27 49 6d 70 6f 73 73 69 62  ABORT, 'Impossib
5860: 6c 65 20 64 65 20 6d 6f 64 69 66 69 65 72 20 75  le de modifier u
5870: 6e 20 6f 62 6a 65 74 20 28 61 63 63 6f 75 6e 74  n objet (account
5880: 20 65 73 74 20 75 74 69 6c 69 73 c3 a9 20 70 61   est utilis.. pa
5890: 72 20 6f 70 65 72 61 74 69 6f 6e 29 0a 4e 6f 6d  r operation).Nom
58a0: 20 64 65 20 6c 61 20 63 6f 6e 74 72 61 69 6e 74   de la contraint
58b0: 65 c2 a0 3a 20 66 6b 75 5f 6f 70 65 72 61 74 69  e..: fku_operati
58c0: 6f 6e 5f 61 63 63 6f 75 6e 74 5f 72 64 5f 61 63  on_account_rd_ac
58d0: 63 6f 75 6e 74 5f 69 64 5f 69 64 27 29 20 20 20  count_id_id')   
58e0: 20 20 20 20 57 48 45 52 45 20 4e 45 57 2e 72 64      WHERE NEW.rd
58f0: 5f 61 63 63 6f 75 6e 74 5f 69 64 21 3d 30 20 41  _account_id!=0 A
5900: 4e 44 20 4e 45 57 2e 72 64 5f 61 63 63 6f 75 6e  ND NEW.rd_accoun
5910: 74 5f 69 64 21 3d 27 27 20 41 4e 44 20 28 53 45  t_id!='' AND (SE
5920: 4c 45 43 54 20 69 64 20 46 52 4f 4d 20 61 63 63  LECT id FROM acc
5930: 6f 75 6e 74 20 57 48 45 52 45 20 69 64 20 3d 20  ount WHERE id = 
5940: 4e 45 57 2e 72 64 5f 61 63 63 6f 75 6e 74 5f 69  NEW.rd_account_i
5950: 64 29 20 49 53 20 4e 55 4c 4c 3b 20 45 4e 44 3b  d) IS NULL; END;
5960: 0a 43 52 45 41 54 45 20 54 52 49 47 47 45 52 20  .CREATE TRIGGER 
5970: 66 6b 64 63 5f 61 63 63 6f 75 6e 74 5f 6f 70 65  fkdc_account_ope
5980: 72 61 74 69 6f 6e 5f 69 64 5f 72 64 5f 61 63 63  ration_id_rd_acc
5990: 6f 75 6e 74 5f 69 64 20 42 45 46 4f 52 45 20 44  ount_id BEFORE D
59a0: 45 4c 45 54 45 20 4f 4e 20 61 63 63 6f 75 6e 74  ELETE ON account
59b0: 20 46 4f 52 20 45 41 43 48 20 52 4f 57 20 42 45   FOR EACH ROW BE
59c0: 47 49 4e 20 20 20 20 20 44 45 4c 45 54 45 20 46  GIN     DELETE F
59d0: 52 4f 4d 20 6f 70 65 72 61 74 69 6f 6e 20 57 48  ROM operation WH
59e0: 45 52 45 20 6f 70 65 72 61 74 69 6f 6e 2e 72 64  ERE operation.rd
59f0: 5f 61 63 63 6f 75 6e 74 5f 69 64 20 3d 20 4f 4c  _account_id = OL
5a00: 44 2e 69 64 3b 20 45 4e 44 3b 0a 43 52 45 41 54  D.id; END;.CREAT
5a10: 45 20 54 52 49 47 47 45 52 20 66 6b 69 5f 6f 70  E TRIGGER fki_op
5a20: 65 72 61 74 69 6f 6e 5f 70 61 79 65 65 5f 72 5f  eration_payee_r_
5a30: 70 61 79 65 65 5f 69 64 5f 69 64 20 42 45 46 4f  payee_id_id BEFO
5a40: 52 45 20 49 4e 53 45 52 54 20 4f 4e 20 6f 70 65  RE INSERT ON ope
5a50: 72 61 74 69 6f 6e 20 46 4f 52 20 45 41 43 48 20  ration FOR EACH 
5a60: 52 4f 57 20 42 45 47 49 4e 20 20 20 53 45 4c 45  ROW BEGIN   SELE
5a70: 43 54 20 52 41 49 53 45 28 41 42 4f 52 54 2c 20  CT RAISE(ABORT, 
5a80: 27 49 6d 70 6f 73 73 69 62 6c 65 20 64 27 27 61  'Impossible d''a
5a90: 6a 6f 75 74 65 72 20 75 6e 20 6f 62 6a 65 74 20  jouter un objet 
5aa0: 28 70 61 79 65 65 20 65 73 74 20 75 74 69 6c 69  (payee est utili
5ab0: 73 c3 a9 20 70 61 72 20 6f 70 65 72 61 74 69 6f  s.. par operatio
5ac0: 6e 29 0a 4e 6f 6d 20 64 65 20 6c 61 20 63 6f 6e  n).Nom de la con
5ad0: 74 72 61 69 6e 74 65 c2 a0 3a 20 66 6b 69 5f 6f  trainte..: fki_o
5ae0: 70 65 72 61 74 69 6f 6e 5f 70 61 79 65 65 5f 72  peration_payee_r
5af0: 5f 70 61 79 65 65 5f 69 64 5f 69 64 27 29 20 20  _payee_id_id')  
5b00: 20 57 48 45 52 45 20 4e 45 57 2e 72 5f 70 61 79   WHERE NEW.r_pay
5b10: 65 65 5f 69 64 21 3d 30 20 41 4e 44 20 4e 45 57  ee_id!=0 AND NEW
5b20: 2e 72 5f 70 61 79 65 65 5f 69 64 21 3d 27 27 20  .r_payee_id!='' 
5b30: 41 4e 44 20 28 53 45 4c 45 43 54 20 69 64 20 46  AND (SELECT id F
5b40: 52 4f 4d 20 70 61 79 65 65 20 57 48 45 52 45 20  ROM payee WHERE 
5b50: 69 64 20 3d 20 4e 45 57 2e 72 5f 70 61 79 65 65  id = NEW.r_payee
5b60: 5f 69 64 29 20 49 53 20 4e 55 4c 4c 3b 20 45 4e  _id) IS NULL; EN
5b70: 44 3b 0a 43 52 45 41 54 45 20 54 52 49 47 47 45  D;.CREATE TRIGGE
5b80: 52 20 66 6b 75 5f 6f 70 65 72 61 74 69 6f 6e 5f  R fku_operation_
5b90: 70 61 79 65 65 5f 72 5f 70 61 79 65 65 5f 69 64  payee_r_payee_id
5ba0: 5f 69 64 20 42 45 46 4f 52 45 20 55 50 44 41 54  _id BEFORE UPDAT
5bb0: 45 20 4f 4e 20 6f 70 65 72 61 74 69 6f 6e 20 46  E ON operation F
5bc0: 4f 52 20 45 41 43 48 20 52 4f 57 20 42 45 47 49  OR EACH ROW BEGI
5bd0: 4e 20 20 20 20 20 53 45 4c 45 43 54 20 52 41 49  N     SELECT RAI
5be0: 53 45 28 41 42 4f 52 54 2c 20 27 49 6d 70 6f 73  SE(ABORT, 'Impos
5bf0: 73 69 62 6c 65 20 64 65 20 6d 6f 64 69 66 69 65  sible de modifie
5c00: 72 20 75 6e 20 6f 62 6a 65 74 20 28 70 61 79 65  r un objet (paye
5c10: 65 20 65 73 74 20 75 74 69 6c 69 73 c3 a9 20 70  e est utilis.. p
5c20: 61 72 20 6f 70 65 72 61 74 69 6f 6e 29 0a 4e 6f  ar operation).No
5c30: 6d 20 64 65 20 6c 61 20 63 6f 6e 74 72 61 69 6e  m de la contrain
5c40: 74 65 c2 a0 3a 20 66 6b 75 5f 6f 70 65 72 61 74  te..: fku_operat
5c50: 69 6f 6e 5f 70 61 79 65 65 5f 72 5f 70 61 79 65  ion_payee_r_paye
5c60: 65 5f 69 64 5f 69 64 27 29 20 20 20 20 20 20 20  e_id_id')       
5c70: 57 48 45 52 45 20 4e 45 57 2e 72 5f 70 61 79 65  WHERE NEW.r_paye
5c80: 65 5f 69 64 21 3d 30 20 41 4e 44 20 4e 45 57 2e  e_id!=0 AND NEW.
5c90: 72 5f 70 61 79 65 65 5f 69 64 21 3d 27 27 20 41  r_payee_id!='' A
5ca0: 4e 44 20 28 53 45 4c 45 43 54 20 69 64 20 46 52  ND (SELECT id FR
5cb0: 4f 4d 20 70 61 79 65 65 20 57 48 45 52 45 20 69  OM payee WHERE i
5cc0: 64 20 3d 20 4e 45 57 2e 72 5f 70 61 79 65 65 5f  d = NEW.r_payee_
5cd0: 69 64 29 20 49 53 20 4e 55 4c 4c 3b 20 45 4e 44  id) IS NULL; END
5ce0: 3b 0a 43 52 45 41 54 45 20 54 52 49 47 47 45 52  ;.CREATE TRIGGER
5cf0: 20 66 6b 64 5f 6f 70 65 72 61 74 69 6f 6e 5f 70   fkd_operation_p
5d00: 61 79 65 65 5f 72 5f 70 61 79 65 65 5f 69 64 5f  ayee_r_payee_id_
5d10: 69 64 20 42 45 46 4f 52 45 20 44 45 4c 45 54 45  id BEFORE DELETE
5d20: 20 4f 4e 20 70 61 79 65 65 20 46 4f 52 20 45 41   ON payee FOR EA
5d30: 43 48 20 52 4f 57 20 42 45 47 49 4e 20 20 20 20  CH ROW BEGIN    
5d40: 20 55 50 44 41 54 45 20 6f 70 65 72 61 74 69 6f   UPDATE operatio
5d50: 6e 20 53 45 54 20 72 5f 70 61 79 65 65 5f 69 64  n SET r_payee_id
5d60: 3d 30 20 57 48 45 52 45 20 72 5f 70 61 79 65 65  =0 WHERE r_payee
5d70: 5f 69 64 3d 4f 4c 44 2e 69 64 3b 20 45 4e 44 3b  _id=OLD.id; END;
5d80: 0a 43 52 45 41 54 45 20 54 52 49 47 47 45 52 20  .CREATE TRIGGER 
5d90: 66 6b 69 5f 6f 70 65 72 61 74 69 6f 6e 5f 75 6e  fki_operation_un
5da0: 69 74 5f 72 63 5f 75 6e 69 74 5f 69 64 5f 69 64  it_rc_unit_id_id
5db0: 20 42 45 46 4f 52 45 20 49 4e 53 45 52 54 20 4f   BEFORE INSERT O
5dc0: 4e 20 6f 70 65 72 61 74 69 6f 6e 20 46 4f 52 20  N operation FOR 
5dd0: 45 41 43 48 20 52 4f 57 20 42 45 47 49 4e 20 20  EACH ROW BEGIN  
5de0: 20 53 45 4c 45 43 54 20 52 41 49 53 45 28 41 42   SELECT RAISE(AB
5df0: 4f 52 54 2c 20 27 49 6d 70 6f 73 73 69 62 6c 65  ORT, 'Impossible
5e00: 20 64 27 27 61 6a 6f 75 74 65 72 20 75 6e 20 6f   d''ajouter un o
5e10: 62 6a 65 74 20 28 75 6e 69 74 20 65 73 74 20 75  bjet (unit est u
5e20: 74 69 6c 69 73 c3 a9 20 70 61 72 20 6f 70 65 72  tilis.. par oper
5e30: 61 74 69 6f 6e 29 0a 4e 6f 6d 20 64 65 20 6c 61  ation).Nom de la
5e40: 20 63 6f 6e 74 72 61 69 6e 74 65 c2 a0 3a 20 66   contrainte..: f
5e50: 6b 69 5f 6f 70 65 72 61 74 69 6f 6e 5f 75 6e 69  ki_operation_uni
5e60: 74 5f 72 63 5f 75 6e 69 74 5f 69 64 5f 69 64 27  t_rc_unit_id_id'
5e70: 29 20 20 20 57 48 45 52 45 20 4e 45 57 2e 72 63  )   WHERE NEW.rc
5e80: 5f 75 6e 69 74 5f 69 64 21 3d 30 20 41 4e 44 20  _unit_id!=0 AND 
5e90: 4e 45 57 2e 72 63 5f 75 6e 69 74 5f 69 64 21 3d  NEW.rc_unit_id!=
5ea0: 27 27 20 41 4e 44 20 28 53 45 4c 45 43 54 20 69  '' AND (SELECT i
5eb0: 64 20 46 52 4f 4d 20 75 6e 69 74 20 57 48 45 52  d FROM unit WHER
5ec0: 45 20 69 64 20 3d 20 4e 45 57 2e 72 63 5f 75 6e  E id = NEW.rc_un
5ed0: 69 74 5f 69 64 29 20 49 53 20 4e 55 4c 4c 3b 20  it_id) IS NULL; 
5ee0: 45 4e 44 3b 0a 43 52 45 41 54 45 20 54 52 49 47  END;.CREATE TRIG
5ef0: 47 45 52 20 66 6b 75 5f 6f 70 65 72 61 74 69 6f  GER fku_operatio
5f00: 6e 5f 75 6e 69 74 5f 72 63 5f 75 6e 69 74 5f 69  n_unit_rc_unit_i
5f10: 64 5f 69 64 20 42 45 46 4f 52 45 20 55 50 44 41  d_id BEFORE UPDA
5f20: 54 45 20 4f 4e 20 6f 70 65 72 61 74 69 6f 6e 20  TE ON operation 
5f30: 46 4f 52 20 45 41 43 48 20 52 4f 57 20 42 45 47  FOR EACH ROW BEG
5f40: 49 4e 20 20 20 20 20 53 45 4c 45 43 54 20 52 41  IN     SELECT RA
5f50: 49 53 45 28 41 42 4f 52 54 2c 20 27 49 6d 70 6f  ISE(ABORT, 'Impo
5f60: 73 73 69 62 6c 65 20 64 65 20 6d 6f 64 69 66 69  ssible de modifi
5f70: 65 72 20 75 6e 20 6f 62 6a 65 74 20 28 75 6e 69  er un objet (uni
5f80: 74 20 65 73 74 20 75 74 69 6c 69 73 c3 a9 20 70  t est utilis.. p
5f90: 61 72 20 6f 70 65 72 61 74 69 6f 6e 29 0a 4e 6f  ar operation).No
5fa0: 6d 20 64 65 20 6c 61 20 63 6f 6e 74 72 61 69 6e  m de la contrain
5fb0: 74 65 c2 a0 3a 20 66 6b 75 5f 6f 70 65 72 61 74  te..: fku_operat
5fc0: 69 6f 6e 5f 75 6e 69 74 5f 72 63 5f 75 6e 69 74  ion_unit_rc_unit
5fd0: 5f 69 64 5f 69 64 27 29 20 20 20 20 20 20 20 57  _id_id')       W
5fe0: 48 45 52 45 20 4e 45 57 2e 72 63 5f 75 6e 69 74  HERE NEW.rc_unit
5ff0: 5f 69 64 21 3d 30 20 41 4e 44 20 4e 45 57 2e 72  _id!=0 AND NEW.r
6000: 63 5f 75 6e 69 74 5f 69 64 21 3d 27 27 20 41 4e  c_unit_id!='' AN
6010: 44 20 28 53 45 4c 45 43 54 20 69 64 20 46 52 4f  D (SELECT id FRO
6020: 4d 20 75 6e 69 74 20 57 48 45 52 45 20 69 64 20  M unit WHERE id 
6030: 3d 20 4e 45 57 2e 72 63 5f 75 6e 69 74 5f 69 64  = NEW.rc_unit_id
6040: 29 20 49 53 20 4e 55 4c 4c 3b 20 45 4e 44 3b 0a  ) IS NULL; END;.
6050: 43 52 45 41 54 45 20 54 52 49 47 47 45 52 20 66  CREATE TRIGGER f
6060: 6b 64 5f 6f 70 65 72 61 74 69 6f 6e 5f 75 6e 69  kd_operation_uni
6070: 74 5f 72 63 5f 75 6e 69 74 5f 69 64 5f 69 64 20  t_rc_unit_id_id 
6080: 42 45 46 4f 52 45 20 44 45 4c 45 54 45 20 4f 4e  BEFORE DELETE ON
6090: 20 75 6e 69 74 20 46 4f 52 20 45 41 43 48 20 52   unit FOR EACH R
60a0: 4f 57 20 42 45 47 49 4e 20 20 20 20 20 53 45 4c  OW BEGIN     SEL
60b0: 45 43 54 20 52 41 49 53 45 28 41 42 4f 52 54 2c  ECT RAISE(ABORT,
60c0: 20 27 49 6d 70 6f 73 73 69 62 6c 65 20 64 65 20   'Impossible de 
60d0: 64 c3 a9 74 72 75 69 72 65 20 75 6e 20 6f 62 6a  d..truire un obj
60e0: 65 74 20 28 75 6e 69 74 20 65 73 74 20 75 74 69  et (unit est uti
60f0: 6c 69 73 c3 a9 20 70 61 72 20 6f 70 65 72 61 74  lis.. par operat
6100: 69 6f 6e 29 0a 4e 6f 6d 20 64 65 20 6c 61 20 63  ion).Nom de la c
6110: 6f 6e 74 72 61 69 6e 74 65 c2 a0 3a 20 66 6b 64  ontrainte..: fkd
6120: 5f 6f 70 65 72 61 74 69 6f 6e 5f 75 6e 69 74 5f  _operation_unit_
6130: 72 63 5f 75 6e 69 74 5f 69 64 5f 69 64 27 29 20  rc_unit_id_id') 
6140: 20 20 20 20 57 48 45 52 45 20 28 53 45 4c 45 43      WHERE (SELEC
6150: 54 20 72 63 5f 75 6e 69 74 5f 69 64 20 46 52 4f  T rc_unit_id FRO
6160: 4d 20 6f 70 65 72 61 74 69 6f 6e 20 57 48 45 52  M operation WHER
6170: 45 20 72 63 5f 75 6e 69 74 5f 69 64 20 3d 20 4f  E rc_unit_id = O
6180: 4c 44 2e 69 64 29 20 49 53 20 4e 4f 54 20 4e 55  LD.id) IS NOT NU
6190: 4c 4c 3b 20 45 4e 44 3b 0a 43 52 45 41 54 45 20  LL; END;.CREATE 
61a0: 54 52 49 47 47 45 52 20 66 6b 69 5f 6f 70 65 72  TRIGGER fki_oper
61b0: 61 74 69 6f 6e 5f 72 65 63 75 72 72 65 6e 74 6f  ation_recurrento
61c0: 70 65 72 61 74 69 6f 6e 5f 72 5f 72 65 63 75 72  peration_r_recur
61d0: 72 65 6e 74 6f 70 65 72 61 74 69 6f 6e 5f 69 64  rentoperation_id
61e0: 5f 69 64 20 42 45 46 4f 52 45 20 49 4e 53 45 52  _id BEFORE INSER
61f0: 54 20 4f 4e 20 6f 70 65 72 61 74 69 6f 6e 20 46  T ON operation F
6200: 4f 52 20 45 41 43 48 20 52 4f 57 20 42 45 47 49  OR EACH ROW BEGI
6210: 4e 20 20 20 53 45 4c 45 43 54 20 52 41 49 53 45  N   SELECT RAISE
6220: 28 41 42 4f 52 54 2c 20 27 49 6d 70 6f 73 73 69  (ABORT, 'Impossi
6230: 62 6c 65 20 64 27 27 61 6a 6f 75 74 65 72 20 75  ble d''ajouter u
6240: 6e 20 6f 62 6a 65 74 20 28 72 65 63 75 72 72 65  n objet (recurre
6250: 6e 74 6f 70 65 72 61 74 69 6f 6e 20 65 73 74 20  ntoperation est 
6260: 75 74 69 6c 69 73 c3 a9 20 70 61 72 20 6f 70 65  utilis.. par ope
6270: 72 61 74 69 6f 6e 29 0a 4e 6f 6d 20 64 65 20 6c  ration).Nom de l
6280: 61 20 63 6f 6e 74 72 61 69 6e 74 65 c2 a0 3a 20  a contrainte..: 
6290: 66 6b 69 5f 6f 70 65 72 61 74 69 6f 6e 5f 72 65  fki_operation_re
62a0: 63 75 72 72 65 6e 74 6f 70 65 72 61 74 69 6f 6e  currentoperation
62b0: 5f 72 5f 72 65 63 75 72 72 65 6e 74 6f 70 65 72  _r_recurrentoper
62c0: 61 74 69 6f 6e 5f 69 64 5f 69 64 27 29 20 20 20  ation_id_id')   
62d0: 57 48 45 52 45 20 4e 45 57 2e 72 5f 72 65 63 75  WHERE NEW.r_recu
62e0: 72 72 65 6e 74 6f 70 65 72 61 74 69 6f 6e 5f 69  rrentoperation_i
62f0: 64 21 3d 30 20 41 4e 44 20 4e 45 57 2e 72 5f 72  d!=0 AND NEW.r_r
6300: 65 63 75 72 72 65 6e 74 6f 70 65 72 61 74 69 6f  ecurrentoperatio
6310: 6e 5f 69 64 21 3d 27 27 20 41 4e 44 20 28 53 45  n_id!='' AND (SE
6320: 4c 45 43 54 20 69 64 20 46 52 4f 4d 20 72 65 63  LECT id FROM rec
6330: 75 72 72 65 6e 74 6f 70 65 72 61 74 69 6f 6e 20  urrentoperation 
6340: 57 48 45 52 45 20 69 64 20 3d 20 4e 45 57 2e 72  WHERE id = NEW.r
6350: 5f 72 65 63 75 72 72 65 6e 74 6f 70 65 72 61 74  _recurrentoperat
6360: 69 6f 6e 5f 69 64 29 20 49 53 20 4e 55 4c 4c 3b  ion_id) IS NULL;
6370: 20 45 4e 44 3b 0a 43 52 45 41 54 45 20 54 52 49   END;.CREATE TRI
6380: 47 47 45 52 20 66 6b 75 5f 6f 70 65 72 61 74 69  GGER fku_operati
6390: 6f 6e 5f 72 65 63 75 72 72 65 6e 74 6f 70 65 72  on_recurrentoper
63a0: 61 74 69 6f 6e 5f 72 5f 72 65 63 75 72 72 65 6e  ation_r_recurren
63b0: 74 6f 70 65 72 61 74 69 6f 6e 5f 69 64 5f 69 64  toperation_id_id
63c0: 20 42 45 46 4f 52 45 20 55 50 44 41 54 45 20 4f   BEFORE UPDATE O
63d0: 4e 20 6f 70 65 72 61 74 69 6f 6e 20 46 4f 52 20  N operation FOR 
63e0: 45 41 43 48 20 52 4f 57 20 42 45 47 49 4e 20 20  EACH ROW BEGIN  
63f0: 20 20 20 53 45 4c 45 43 54 20 52 41 49 53 45 28     SELECT RAISE(
6400: 41 42 4f 52 54 2c 20 27 49 6d 70 6f 73 73 69 62  ABORT, 'Impossib
6410: 6c 65 20 64 65 20 6d 6f 64 69 66 69 65 72 20 75  le de modifier u
6420: 6e 20 6f 62 6a 65 74 20 28 72 65 63 75 72 72 65  n objet (recurre
6430: 6e 74 6f 70 65 72 61 74 69 6f 6e 20 65 73 74 20  ntoperation est 
6440: 75 74 69 6c 69 73 c3 a9 20 70 61 72 20 6f 70 65  utilis.. par ope
6450: 72 61 74 69 6f 6e 29 0a 4e 6f 6d 20 64 65 20 6c  ration).Nom de l
6460: 61 20 63 6f 6e 74 72 61 69 6e 74 65 c2 a0 3a 20  a contrainte..: 
6470: 66 6b 75 5f 6f 70 65 72 61 74 69 6f 6e 5f 72 65  fku_operation_re
6480: 63 75 72 72 65 6e 74 6f 70 65 72 61 74 69 6f 6e  currentoperation
6490: 5f 72 5f 72 65 63 75 72 72 65 6e 74 6f 70 65 72  _r_recurrentoper
64a0: 61 74 69 6f 6e 5f 69 64 5f 69 64 27 29 20 20 20  ation_id_id')   
64b0: 20 20 20 20 57 48 45 52 45 20 4e 45 57 2e 72 5f      WHERE NEW.r_
64c0: 72 65 63 75 72 72 65 6e 74 6f 70 65 72 61 74 69  recurrentoperati
64d0: 6f 6e 5f 69 64 21 3d 30 20 41 4e 44 20 4e 45 57  on_id!=0 AND NEW
64e0: 2e 72 5f 72 65 63 75 72 72 65 6e 74 6f 70 65 72  .r_recurrentoper
64f0: 61 74 69 6f 6e 5f 69 64 21 3d 27 27 20 41 4e 44  ation_id!='' AND
6500: 20 28 53 45 4c 45 43 54 20 69 64 20 46 52 4f 4d   (SELECT id FROM
6510: 20 72 65 63 75 72 72 65 6e 74 6f 70 65 72 61 74   recurrentoperat
6520: 69 6f 6e 20 57 48 45 52 45 20 69 64 20 3d 20 4e  ion WHERE id = N
6530: 45 57 2e 72 5f 72 65 63 75 72 72 65 6e 74 6f 70  EW.r_recurrentop
6540: 65 72 61 74 69 6f 6e 5f 69 64 29 20 49 53 20 4e  eration_id) IS N
6550: 55 4c 4c 3b 20 45 4e 44 3b 0a 43 52 45 41 54 45  ULL; END;.CREATE
6560: 20 54 52 49 47 47 45 52 20 66 6b 64 5f 6f 70 65   TRIGGER fkd_ope
6570: 72 61 74 69 6f 6e 5f 72 65 63 75 72 72 65 6e 74  ration_recurrent
6580: 6f 70 65 72 61 74 69 6f 6e 5f 72 5f 72 65 63 75  operation_r_recu
6590: 72 72 65 6e 74 6f 70 65 72 61 74 69 6f 6e 5f 69  rrentoperation_i
65a0: 64 5f 69 64 20 42 45 46 4f 52 45 20 44 45 4c 45  d_id BEFORE DELE
65b0: 54 45 20 4f 4e 20 72 65 63 75 72 72 65 6e 74 6f  TE ON recurrento
65c0: 70 65 72 61 74 69 6f 6e 20 46 4f 52 20 45 41 43  peration FOR EAC
65d0: 48 20 52 4f 57 20 42 45 47 49 4e 20 20 20 20 20  H ROW BEGIN     
65e0: 55 50 44 41 54 45 20 6f 70 65 72 61 74 69 6f 6e  UPDATE operation
65f0: 20 53 45 54 20 72 5f 72 65 63 75 72 72 65 6e 74   SET r_recurrent
6600: 6f 70 65 72 61 74 69 6f 6e 5f 69 64 3d 30 20 57  operation_id=0 W
6610: 48 45 52 45 20 72 5f 72 65 63 75 72 72 65 6e 74  HERE r_recurrent
6620: 6f 70 65 72 61 74 69 6f 6e 5f 69 64 3d 4f 4c 44  operation_id=OLD
6630: 2e 69 64 3b 20 45 4e 44 3b 0a 43 52 45 41 54 45  .id; END;.CREATE
6640: 20 54 52 49 47 47 45 52 20 66 6b 69 5f 6f 70 65   TRIGGER fki_ope
6650: 72 61 74 69 6f 6e 62 61 6c 61 6e 63 65 5f 6f 70  rationbalance_op
6660: 65 72 61 74 69 6f 6e 5f 72 5f 6f 70 65 72 61 74  eration_r_operat
6670: 69 6f 6e 5f 69 64 5f 69 64 20 42 45 46 4f 52 45  ion_id_id BEFORE
6680: 20 49 4e 53 45 52 54 20 4f 4e 20 6f 70 65 72 61   INSERT ON opera
6690: 74 69 6f 6e 62 61 6c 61 6e 63 65 20 46 4f 52 20  tionbalance FOR 
66a0: 45 41 43 48 20 52 4f 57 20 42 45 47 49 4e 20 20  EACH ROW BEGIN  
66b0: 20 53 45 4c 45 43 54 20 52 41 49 53 45 28 41 42   SELECT RAISE(AB
66c0: 4f 52 54 2c 20 27 49 6d 70 6f 73 73 69 62 6c 65  ORT, 'Impossible
66d0: 20 64 27 27 61 6a 6f 75 74 65 72 20 75 6e 20 6f   d''ajouter un o
66e0: 62 6a 65 74 20 28 6f 70 65 72 61 74 69 6f 6e 20  bjet (operation 
66f0: 65 73 74 20 75 74 69 6c 69 73 c3 a9 20 70 61 72  est utilis.. par
6700: 20 6f 70 65 72 61 74 69 6f 6e 62 61 6c 61 6e 63   operationbalanc
6710: 65 29 0a 4e 6f 6d 20 64 65 20 6c 61 20 63 6f 6e  e).Nom de la con
6720: 74 72 61 69 6e 74 65 c2 a0 3a 20 66 6b 69 5f 6f  trainte..: fki_o
6730: 70 65 72 61 74 69 6f 6e 62 61 6c 61 6e 63 65 5f  perationbalance_
6740: 6f 70 65 72 61 74 69 6f 6e 5f 72 5f 6f 70 65 72  operation_r_oper
6750: 61 74 69 6f 6e 5f 69 64 5f 69 64 27 29 20 20 20  ation_id_id')   
6760: 57 48 45 52 45 20 4e 45 57 2e 72 5f 6f 70 65 72  WHERE NEW.r_oper
6770: 61 74 69 6f 6e 5f 69 64 21 3d 30 20 41 4e 44 20  ation_id!=0 AND 
6780: 4e 45 57 2e 72 5f 6f 70 65 72 61 74 69 6f 6e 5f  NEW.r_operation_
6790: 69 64 21 3d 27 27 20 41 4e 44 20 28 53 45 4c 45  id!='' AND (SELE
67a0: 43 54 20 69 64 20 46 52 4f 4d 20 6f 70 65 72 61  CT id FROM opera
67b0: 74 69 6f 6e 20 57 48 45 52 45 20 69 64 20 3d 20  tion WHERE id = 
67c0: 4e 45 57 2e 72 5f 6f 70 65 72 61 74 69 6f 6e 5f  NEW.r_operation_
67d0: 69 64 29 20 49 53 20 4e 55 4c 4c 3b 20 45 4e 44  id) IS NULL; END
67e0: 3b 0a 43 52 45 41 54 45 20 54 52 49 47 47 45 52  ;.CREATE TRIGGER
67f0: 20 66 6b 75 5f 6f 70 65 72 61 74 69 6f 6e 62 61   fku_operationba
6800: 6c 61 6e 63 65 5f 6f 70 65 72 61 74 69 6f 6e 5f  lance_operation_
6810: 72 5f 6f 70 65 72 61 74 69 6f 6e 5f 69 64 5f 69  r_operation_id_i
6820: 64 20 42 45 46 4f 52 45 20 55 50 44 41 54 45 20  d BEFORE UPDATE 
6830: 4f 4e 20 6f 70 65 72 61 74 69 6f 6e 62 61 6c 61  ON operationbala
6840: 6e 63 65 20 46 4f 52 20 45 41 43 48 20 52 4f 57  nce FOR EACH ROW
6850: 20 42 45 47 49 4e 20 20 20 20 20 53 45 4c 45 43   BEGIN     SELEC
6860: 54 20 52 41 49 53 45 28 41 42 4f 52 54 2c 20 27  T RAISE(ABORT, '
6870: 49 6d 70 6f 73 73 69 62 6c 65 20 64 65 20 6d 6f  Impossible de mo
6880: 64 69 66 69 65 72 20 75 6e 20 6f 62 6a 65 74 20  difier un objet 
6890: 28 6f 70 65 72 61 74 69 6f 6e 20 65 73 74 20 75  (operation est u
68a0: 74 69 6c 69 73 c3 a9 20 70 61 72 20 6f 70 65 72  tilis.. par oper
68b0: 61 74 69 6f 6e 62 61 6c 61 6e 63 65 29 0a 4e 6f  ationbalance).No
68c0: 6d 20 64 65 20 6c 61 20 63 6f 6e 74 72 61 69 6e  m de la contrain
68d0: 74 65 c2 a0 3a 20 66 6b 75 5f 6f 70 65 72 61 74  te..: fku_operat
68e0: 69 6f 6e 62 61 6c 61 6e 63 65 5f 6f 70 65 72 61  ionbalance_opera
68f0: 74 69 6f 6e 5f 72 5f 6f 70 65 72 61 74 69 6f 6e  tion_r_operation
6900: 5f 69 64 5f 69 64 27 29 20 20 20 20 20 20 20 57  _id_id')       W
6910: 48 45 52 45 20 4e 45 57 2e 72 5f 6f 70 65 72 61  HERE NEW.r_opera
6920: 74 69 6f 6e 5f 69 64 21 3d 30 20 41 4e 44 20 4e  tion_id!=0 AND N
6930: 45 57 2e 72 5f 6f 70 65 72 61 74 69 6f 6e 5f 69  EW.r_operation_i
6940: 64 21 3d 27 27 20 41 4e 44 20 28 53 45 4c 45 43  d!='' AND (SELEC
6950: 54 20 69 64 20 46 52 4f 4d 20 6f 70 65 72 61 74  T id FROM operat
6960: 69 6f 6e 20 57 48 45 52 45 20 69 64 20 3d 20 4e  ion WHERE id = N
6970: 45 57 2e 72 5f 6f 70 65 72 61 74 69 6f 6e 5f 69  EW.r_operation_i
6980: 64 29 20 49 53 20 4e 55 4c 4c 3b 20 45 4e 44 3b  d) IS NULL; END;
6990: 0a 43 52 45 41 54 45 20 54 52 49 47 47 45 52 20  .CREATE TRIGGER 
69a0: 66 6b 64 5f 6f 70 65 72 61 74 69 6f 6e 62 61 6c  fkd_operationbal
69b0: 61 6e 63 65 5f 6f 70 65 72 61 74 69 6f 6e 5f 72  ance_operation_r
69c0: 5f 6f 70 65 72 61 74 69 6f 6e 5f 69 64 5f 69 64  _operation_id_id
69d0: 20 42 45 46 4f 52 45 20 44 45 4c 45 54 45 20 4f   BEFORE DELETE O
69e0: 4e 20 6f 70 65 72 61 74 69 6f 6e 20 46 4f 52 20  N operation FOR 
69f0: 45 41 43 48 20 52 4f 57 20 42 45 47 49 4e 20 20  EACH ROW BEGIN  
6a00: 20 20 20 55 50 44 41 54 45 20 6f 70 65 72 61 74     UPDATE operat
6a10: 69 6f 6e 62 61 6c 61 6e 63 65 20 53 45 54 20 72  ionbalance SET r
6a20: 5f 6f 70 65 72 61 74 69 6f 6e 5f 69 64 3d 30 20  _operation_id=0 
6a30: 57 48 45 52 45 20 72 5f 6f 70 65 72 61 74 69 6f  WHERE r_operatio
6a40: 6e 5f 69 64 3d 4f 4c 44 2e 69 64 3b 20 45 4e 44  n_id=OLD.id; END
6a50: 3b 0a 43 52 45 41 54 45 20 54 52 49 47 47 45 52  ;.CREATE TRIGGER
6a60: 20 66 6b 69 5f 72 65 63 75 72 72 65 6e 74 6f 70   fki_recurrentop
6a70: 65 72 61 74 69 6f 6e 5f 6f 70 65 72 61 74 69 6f  eration_operatio
6a80: 6e 5f 72 64 5f 6f 70 65 72 61 74 69 6f 6e 5f 69  n_rd_operation_i
6a90: 64 5f 69 64 20 42 45 46 4f 52 45 20 49 4e 53 45  d_id BEFORE INSE
6aa0: 52 54 20 4f 4e 20 72 65 63 75 72 72 65 6e 74 6f  RT ON recurrento
6ab0: 70 65 72 61 74 69 6f 6e 20 46 4f 52 20 45 41 43  peration FOR EAC
6ac0: 48 20 52 4f 57 20 42 45 47 49 4e 20 20 20 53 45  H ROW BEGIN   SE
6ad0: 4c 45 43 54 20 52 41 49 53 45 28 41 42 4f 52 54  LECT RAISE(ABORT
6ae0: 2c 20 27 49 6d 70 6f 73 73 69 62 6c 65 20 64 27  , 'Impossible d'
6af0: 27 61 6a 6f 75 74 65 72 20 75 6e 20 6f 62 6a 65  'ajouter un obje
6b00: 74 20 28 6f 70 65 72 61 74 69 6f 6e 20 65 73 74  t (operation est
6b10: 20 75 74 69 6c 69 73 c3 a9 20 70 61 72 20 72 65   utilis.. par re
6b20: 63 75 72 72 65 6e 74 6f 70 65 72 61 74 69 6f 6e  currentoperation
6b30: 29 0a 4e 6f 6d 20 64 65 20 6c 61 20 63 6f 6e 74  ).Nom de la cont
6b40: 72 61 69 6e 74 65 c2 a0 3a 20 66 6b 69 5f 72 65  rainte..: fki_re
6b50: 63 75 72 72 65 6e 74 6f 70 65 72 61 74 69 6f 6e  currentoperation
6b60: 5f 6f 70 65 72 61 74 69 6f 6e 5f 72 64 5f 6f 70  _operation_rd_op
6b70: 65 72 61 74 69 6f 6e 5f 69 64 5f 69 64 27 29 20  eration_id_id') 
6b80: 20 20 57 48 45 52 45 20 4e 45 57 2e 72 64 5f 6f    WHERE NEW.rd_o
6b90: 70 65 72 61 74 69 6f 6e 5f 69 64 21 3d 30 20 41  peration_id!=0 A
6ba0: 4e 44 20 4e 45 57 2e 72 64 5f 6f 70 65 72 61 74  ND NEW.rd_operat
6bb0: 69 6f 6e 5f 69 64 21 3d 27 27 20 41 4e 44 20 28  ion_id!='' AND (
6bc0: 53 45 4c 45 43 54 20 69 64 20 46 52 4f 4d 20 6f  SELECT id FROM o
6bd0: 70 65 72 61 74 69 6f 6e 20 57 48 45 52 45 20 69  peration WHERE i
6be0: 64 20 3d 20 4e 45 57 2e 72 64 5f 6f 70 65 72 61  d = NEW.rd_opera
6bf0: 74 69 6f 6e 5f 69 64 29 20 49 53 20 4e 55 4c 4c  tion_id) IS NULL
6c00: 3b 20 45 4e 44 3b 0a 43 52 45 41 54 45 20 54 52  ; END;.CREATE TR
6c10: 49 47 47 45 52 20 66 6b 75 5f 72 65 63 75 72 72  IGGER fku_recurr
6c20: 65 6e 74 6f 70 65 72 61 74 69 6f 6e 5f 6f 70 65  entoperation_ope
6c30: 72 61 74 69 6f 6e 5f 72 64 5f 6f 70 65 72 61 74  ration_rd_operat
6c40: 69 6f 6e 5f 69 64 5f 69 64 20 42 45 46 4f 52 45  ion_id_id BEFORE
6c50: 20 55 50 44 41 54 45 20 4f 4e 20 72 65 63 75 72   UPDATE ON recur
6c60: 72 65 6e 74 6f 70 65 72 61 74 69 6f 6e 20 46 4f  rentoperation FO
6c70: 52 20 45 41 43 48 20 52 4f 57 20 42 45 47 49 4e  R EACH ROW BEGIN
6c80: 20 20 20 20 20 53 45 4c 45 43 54 20 52 41 49 53       SELECT RAIS
6c90: 45 28 41 42 4f 52 54 2c 20 27 49 6d 70 6f 73 73  E(ABORT, 'Imposs
6ca0: 69 62 6c 65 20 64 65 20 6d 6f 64 69 66 69 65 72  ible de modifier
6cb0: 20 75 6e 20 6f 62 6a 65 74 20 28 6f 70 65 72 61   un objet (opera
6cc0: 74 69 6f 6e 20 65 73 74 20 75 74 69 6c 69 73 c3  tion est utilis.
6cd0: a9 20 70 61 72 20 72 65 63 75 72 72 65 6e 74 6f  . par recurrento
6ce0: 70 65 72 61 74 69 6f 6e 29 0a 4e 6f 6d 20 64 65  peration).Nom de
6cf0: 20 6c 61 20 63 6f 6e 74 72 61 69 6e 74 65 c2 a0   la contrainte..
6d00: 3a 20 66 6b 75 5f 72 65 63 75 72 72 65 6e 74 6f  : fku_recurrento
6d10: 70 65 72 61 74 69 6f 6e 5f 6f 70 65 72 61 74 69  peration_operati
6d20: 6f 6e 5f 72 64 5f 6f 70 65 72 61 74 69 6f 6e 5f  on_rd_operation_
6d30: 69 64 5f 69 64 27 29 20 20 20 20 20 20 20 57 48  id_id')       WH
6d40: 45 52 45 20 4e 45 57 2e 72 64 5f 6f 70 65 72 61  ERE NEW.rd_opera
6d50: 74 69 6f 6e 5f 69 64 21 3d 30 20 41 4e 44 20 4e  tion_id!=0 AND N
6d60: 45 57 2e 72 64 5f 6f 70 65 72 61 74 69 6f 6e 5f  EW.rd_operation_
6d70: 69 64 21 3d 27 27 20 41 4e 44 20 28 53 45 4c 45  id!='' AND (SELE
6d80: 43 54 20 69 64 20 46 52 4f 4d 20 6f 70 65 72 61  CT id FROM opera
6d90: 74 69 6f 6e 20 57 48 45 52 45 20 69 64 20 3d 20  tion WHERE id = 
6da0: 4e 45 57 2e 72 64 5f 6f 70 65 72 61 74 69 6f 6e  NEW.rd_operation
6db0: 5f 69 64 29 20 49 53 20 4e 55 4c 4c 3b 20 45 4e  _id) IS NULL; EN
6dc0: 44 3b 0a 43 52 45 41 54 45 20 54 52 49 47 47 45  D;.CREATE TRIGGE
6dd0: 52 20 66 6b 64 63 5f 6f 70 65 72 61 74 69 6f 6e  R fkdc_operation
6de0: 5f 72 65 63 75 72 72 65 6e 74 6f 70 65 72 61 74  _recurrentoperat
6df0: 69 6f 6e 5f 69 64 5f 72 64 5f 6f 70 65 72 61 74  ion_id_rd_operat
6e00: 69 6f 6e 5f 69 64 20 42 45 46 4f 52 45 20 44 45  ion_id BEFORE DE
6e10: 4c 45 54 45 20 4f 4e 20 6f 70 65 72 61 74 69 6f  LETE ON operatio
6e20: 6e 20 46 4f 52 20 45 41 43 48 20 52 4f 57 20 42  n FOR EACH ROW B
6e30: 45 47 49 4e 20 20 20 20 20 44 45 4c 45 54 45 20  EGIN     DELETE 
6e40: 46 52 4f 4d 20 72 65 63 75 72 72 65 6e 74 6f 70  FROM recurrentop
6e50: 65 72 61 74 69 6f 6e 20 57 48 45 52 45 20 72 65  eration WHERE re
6e60: 63 75 72 72 65 6e 74 6f 70 65 72 61 74 69 6f 6e  currentoperation
6e70: 2e 72 64 5f 6f 70 65 72 61 74 69 6f 6e 5f 69 64  .rd_operation_id
6e80: 20 3d 20 4f 4c 44 2e 69 64 3b 20 45 4e 44 3b 0a   = OLD.id; END;.
6e90: 43 52 45 41 54 45 20 54 52 49 47 47 45 52 20 66  CREATE TRIGGER f
6ea0: 6b 69 5f 73 75 62 6f 70 65 72 61 74 69 6f 6e 5f  ki_suboperation_
6eb0: 6f 70 65 72 61 74 69 6f 6e 5f 72 64 5f 6f 70 65  operation_rd_ope
6ec0: 72 61 74 69 6f 6e 5f 69 64 5f 69 64 20 42 45 46  ration_id_id BEF
6ed0: 4f 52 45 20 49 4e 53 45 52 54 20 4f 4e 20 73 75  ORE INSERT ON su
6ee0: 62 6f 70 65 72 61 74 69 6f 6e 20 46 4f 52 20 45  boperation FOR E
6ef0: 41 43 48 20 52 4f 57 20 42 45 47 49 4e 20 20 20  ACH ROW BEGIN   
6f00: 53 45 4c 45 43 54 20 52 41 49 53 45 28 41 42 4f  SELECT RAISE(ABO
6f10: 52 54 2c 20 27 49 6d 70 6f 73 73 69 62 6c 65 20  RT, 'Impossible 
6f20: 64 27 27 61 6a 6f 75 74 65 72 20 75 6e 20 6f 62  d''ajouter un ob
6f30: 6a 65 74 20 28 6f 70 65 72 61 74 69 6f 6e 20 65  jet (operation e
6f40: 73 74 20 75 74 69 6c 69 73 c3 a9 20 70 61 72 20  st utilis.. par 
6f50: 73 75 62 6f 70 65 72 61 74 69 6f 6e 29 0a 4e 6f  suboperation).No
6f60: 6d 20 64 65 20 6c 61 20 63 6f 6e 74 72 61 69 6e  m de la contrain
6f70: 74 65 c2 a0 3a 20 66 6b 69 5f 73 75 62 6f 70 65  te..: fki_subope
6f80: 72 61 74 69 6f 6e 5f 6f 70 65 72 61 74 69 6f 6e  ration_operation
6f90: 5f 72 64 5f 6f 70 65 72 61 74 69 6f 6e 5f 69 64  _rd_operation_id
6fa0: 5f 69 64 27 29 20 20 20 57 48 45 52 45 20 4e 45  _id')   WHERE NE
6fb0: 57 2e 72 64 5f 6f 70 65 72 61 74 69 6f 6e 5f 69  W.rd_operation_i
6fc0: 64 21 3d 30 20 41 4e 44 20 4e 45 57 2e 72 64 5f  d!=0 AND NEW.rd_
6fd0: 6f 70 65 72 61 74 69 6f 6e 5f 69 64 21 3d 27 27  operation_id!=''
6fe0: 20 41 4e 44 20 28 53 45 4c 45 43 54 20 69 64 20   AND (SELECT id 
6ff0: 46 52 4f 4d 20 6f 70 65 72 61 74 69 6f 6e 20 57  FROM operation W
7000: 48 45 52 45 20 69 64 20 3d 20 4e 45 57 2e 72 64  HERE id = NEW.rd
7010: 5f 6f 70 65 72 61 74 69 6f 6e 5f 69 64 29 20 49  _operation_id) I
7020: 53 20 4e 55 4c 4c 3b 20 45 4e 44 3b 0a 43 52 45  S NULL; END;.CRE
7030: 41 54 45 20 54 52 49 47 47 45 52 20 66 6b 75 5f  ATE TRIGGER fku_
7040: 73 75 62 6f 70 65 72 61 74 69 6f 6e 5f 6f 70 65  suboperation_ope
7050: 72 61 74 69 6f 6e 5f 72 64 5f 6f 70 65 72 61 74  ration_rd_operat
7060: 69 6f 6e 5f 69 64 5f 69 64 20 42 45 46 4f 52 45  ion_id_id BEFORE
7070: 20 55 50 44 41 54 45 20 4f 4e 20 73 75 62 6f 70   UPDATE ON subop
7080: 65 72 61 74 69 6f 6e 20 46 4f 52 20 45 41 43 48  eration FOR EACH
7090: 20 52 4f 57 20 42 45 47 49 4e 20 20 20 20 20 53   ROW BEGIN     S
70a0: 45 4c 45 43 54 20 52 41 49 53 45 28 41 42 4f 52  ELECT RAISE(ABOR
70b0: 54 2c 20 27 49 6d 70 6f 73 73 69 62 6c 65 20 64  T, 'Impossible d
70c0: 65 20 6d 6f 64 69 66 69 65 72 20 75 6e 20 6f 62  e modifier un ob
70d0: 6a 65 74 20 28 6f 70 65 72 61 74 69 6f 6e 20 65  jet (operation e
70e0: 73 74 20 75 74 69 6c 69 73 c3 a9 20 70 61 72 20  st utilis.. par 
70f0: 73 75 62 6f 70 65 72 61 74 69 6f 6e 29 0a 4e 6f  suboperation).No
7100: 6d 20 64 65 20 6c 61 20 63 6f 6e 74 72 61 69 6e  m de la contrain
7110: 74 65 c2 a0 3a 20 66 6b 75 5f 73 75 62 6f 70 65  te..: fku_subope
7120: 72 61 74 69 6f 6e 5f 6f 70 65 72 61 74 69 6f 6e  ration_operation
7130: 5f 72 64 5f 6f 70 65 72 61 74 69 6f 6e 5f 69 64  _rd_operation_id
7140: 5f 69 64 27 29 20 20 20 20 20 20 20 57 48 45 52  _id')       WHER
7150: 45 20 4e 45 57 2e 72 64 5f 6f 70 65 72 61 74 69  E NEW.rd_operati
7160: 6f 6e 5f 69 64 21 3d 30 20 41 4e 44 20 4e 45 57  on_id!=0 AND NEW
7170: 2e 72 64 5f 6f 70 65 72 61 74 69 6f 6e 5f 69 64  .rd_operation_id
7180: 21 3d 27 27 20 41 4e 44 20 28 53 45 4c 45 43 54  !='' AND (SELECT
7190: 20 69 64 20 46 52 4f 4d 20 6f 70 65 72 61 74 69   id FROM operati
71a0: 6f 6e 20 57 48 45 52 45 20 69 64 20 3d 20 4e 45  on WHERE id = NE
71b0: 57 2e 72 64 5f 6f 70 65 72 61 74 69 6f 6e 5f 69  W.rd_operation_i
71c0: 64 29 20 49 53 20 4e 55 4c 4c 3b 20 45 4e 44 3b  d) IS NULL; END;
71d0: 0a 43 52 45 41 54 45 20 54 52 49 47 47 45 52 20  .CREATE TRIGGER 
71e0: 66 6b 64 63 5f 6f 70 65 72 61 74 69 6f 6e 5f 73  fkdc_operation_s
71f0: 75 62 6f 70 65 72 61 74 69 6f 6e 5f 69 64 5f 72  uboperation_id_r
7200: 64 5f 6f 70 65 72 61 74 69 6f 6e 5f 69 64 20 42  d_operation_id B
7210: 45 46 4f 52 45 20 44 45 4c 45 54 45 20 4f 4e 20  EFORE DELETE ON 
7220: 6f 70 65 72 61 74 69 6f 6e 20 46 4f 52 20 45 41  operation FOR EA
7230: 43 48 20 52 4f 57 20 42 45 47 49 4e 20 20 20 20  CH ROW BEGIN    
7240: 20 44 45 4c 45 54 45 20 46 52 4f 4d 20 73 75 62   DELETE FROM sub
7250: 6f 70 65 72 61 74 69 6f 6e 20 57 48 45 52 45 20  operation WHERE 
7260: 73 75 62 6f 70 65 72 61 74 69 6f 6e 2e 72 64 5f  suboperation.rd_
7270: 6f 70 65 72 61 74 69 6f 6e 5f 69 64 20 3d 20 4f  operation_id = O
7280: 4c 44 2e 69 64 3b 20 45 4e 44 3b 0a 43 52 45 41  LD.id; END;.CREA
7290: 54 45 20 54 52 49 47 47 45 52 20 66 6b 69 5f 73  TE TRIGGER fki_s
72a0: 75 62 6f 70 65 72 61 74 69 6f 6e 5f 63 61 74 65  uboperation_cate
72b0: 67 6f 72 79 5f 72 5f 63 61 74 65 67 6f 72 79 5f  gory_r_category_
72c0: 69 64 5f 69 64 20 42 45 46 4f 52 45 20 49 4e 53  id_id BEFORE INS
72d0: 45 52 54 20 4f 4e 20 73 75 62 6f 70 65 72 61 74  ERT ON suboperat
72e0: 69 6f 6e 20 46 4f 52 20 45 41 43 48 20 52 4f 57  ion FOR EACH ROW
72f0: 20 42 45 47 49 4e 20 20 20 53 45 4c 45 43 54 20   BEGIN   SELECT 
7300: 52 41 49 53 45 28 41 42 4f 52 54 2c 20 27 49 6d  RAISE(ABORT, 'Im
7310: 70 6f 73 73 69 62 6c 65 20 64 27 27 61 6a 6f 75  possible d''ajou
7320: 74 65 72 20 75 6e 20 6f 62 6a 65 74 20 28 63 61  ter un objet (ca
7330: 74 65 67 6f 72 79 20 65 73 74 20 75 74 69 6c 69  tegory est utili
7340: 73 c3 a9 20 70 61 72 20 73 75 62 6f 70 65 72 61  s.. par subopera
7350: 74 69 6f 6e 29 0a 4e 6f 6d 20 64 65 20 6c 61 20  tion).Nom de la 
7360: 63 6f 6e 74 72 61 69 6e 74 65 c2 a0 3a 20 66 6b  contrainte..: fk
7370: 69 5f 73 75 62 6f 70 65 72 61 74 69 6f 6e 5f 63  i_suboperation_c
7380: 61 74 65 67 6f 72 79 5f 72 5f 63 61 74 65 67 6f  ategory_r_catego
7390: 72 79 5f 69 64 5f 69 64 27 29 20 20 20 57 48 45  ry_id_id')   WHE
73a0: 52 45 20 4e 45 57 2e 72 5f 63 61 74 65 67 6f 72  RE NEW.r_categor
73b0: 79 5f 69 64 21 3d 30 20 41 4e 44 20 4e 45 57 2e  y_id!=0 AND NEW.
73c0: 72 5f 63 61 74 65 67 6f 72 79 5f 69 64 21 3d 27  r_category_id!='
73d0: 27 20 41 4e 44 20 28 53 45 4c 45 43 54 20 69 64  ' AND (SELECT id
73e0: 20 46 52 4f 4d 20 63 61 74 65 67 6f 72 79 20 57   FROM category W
73f0: 48 45 52 45 20 69 64 20 3d 20 4e 45 57 2e 72 5f  HERE id = NEW.r_
7400: 63 61 74 65 67 6f 72 79 5f 69 64 29 20 49 53 20  category_id) IS 
7410: 4e 55 4c 4c 3b 20 45 4e 44 3b 0a 43 52 45 41 54  NULL; END;.CREAT
7420: 45 20 54 52 49 47 47 45 52 20 66 6b 75 5f 73 75  E TRIGGER fku_su
7430: 62 6f 70 65 72 61 74 69 6f 6e 5f 63 61 74 65 67  boperation_categ
7440: 6f 72 79 5f 72 5f 63 61 74 65 67 6f 72 79 5f 69  ory_r_category_i
7450: 64 5f 69 64 20 42 45 46 4f 52 45 20 55 50 44 41  d_id BEFORE UPDA
7460: 54 45 20 4f 4e 20 73 75 62 6f 70 65 72 61 74 69  TE ON suboperati
7470: 6f 6e 20 46 4f 52 20 45 41 43 48 20 52 4f 57 20  on FOR EACH ROW 
7480: 42 45 47 49 4e 20 20 20 20 20 53 45 4c 45 43 54  BEGIN     SELECT
7490: 20 52 41 49 53 45 28 41 42 4f 52 54 2c 20 27 49   RAISE(ABORT, 'I
74a0: 6d 70 6f 73 73 69 62 6c 65 20 64 65 20 6d 6f 64  mpossible de mod
74b0: 69 66 69 65 72 20 75 6e 20 6f 62 6a 65 74 20 28  ifier un objet (
74c0: 63 61 74 65 67 6f 72 79 20 65 73 74 20 75 74 69  category est uti
74d0: 6c 69 73 c3 a9 20 70 61 72 20 73 75 62 6f 70 65  lis.. par subope
74e0: 72 61 74 69 6f 6e 29 0a 4e 6f 6d 20 64 65 20 6c  ration).Nom de l
74f0: 61 20 63 6f 6e 74 72 61 69 6e 74 65 c2 a0 3a 20  a contrainte..: 
7500: 66 6b 75 5f 73 75 62 6f 70 65 72 61 74 69 6f 6e  fku_suboperation
7510: 5f 63 61 74 65 67 6f 72 79 5f 72 5f 63 61 74 65  _category_r_cate
7520: 67 6f 72 79 5f 69 64 5f 69 64 27 29 20 20 20 20  gory_id_id')    
7530: 20 20 20 57 48 45 52 45 20 4e 45 57 2e 72 5f 63     WHERE NEW.r_c
7540: 61 74 65 67 6f 72 79 5f 69 64 21 3d 30 20 41 4e  ategory_id!=0 AN
7550: 44 20 4e 45 57 2e 72 5f 63 61 74 65 67 6f 72 79  D NEW.r_category
7560: 5f 69 64 21 3d 27 27 20 41 4e 44 20 28 53 45 4c  _id!='' AND (SEL
7570: 45 43 54 20 69 64 20 46 52 4f 4d 20 63 61 74 65  ECT id FROM cate
7580: 67 6f 72 79 20 57 48 45 52 45 20 69 64 20 3d 20  gory WHERE id = 
7590: 4e 45 57 2e 72 5f 63 61 74 65 67 6f 72 79 5f 69  NEW.r_category_i
75a0: 64 29 20 49 53 20 4e 55 4c 4c 3b 20 45 4e 44 3b  d) IS NULL; END;
75b0: 0a 43 52 45 41 54 45 20 54 52 49 47 47 45 52 20  .CREATE TRIGGER 
75c0: 66 6b 64 5f 73 75 62 6f 70 65 72 61 74 69 6f 6e  fkd_suboperation
75d0: 5f 63 61 74 65 67 6f 72 79 5f 72 5f 63 61 74 65  _category_r_cate
75e0: 67 6f 72 79 5f 69 64 5f 69 64 20 42 45 46 4f 52  gory_id_id BEFOR
75f0: 45 20 44 45 4c 45 54 45 20 4f 4e 20 63 61 74 65  E DELETE ON cate
7600: 67 6f 72 79 20 46 4f 52 20 45 41 43 48 20 52 4f  gory FOR EACH RO
7610: 57 20 42 45 47 49 4e 20 20 20 20 20 55 50 44 41  W BEGIN     UPDA
7620: 54 45 20 73 75 62 6f 70 65 72 61 74 69 6f 6e 20  TE suboperation 
7630: 53 45 54 20 72 5f 63 61 74 65 67 6f 72 79 5f 69  SET r_category_i
7640: 64 3d 30 20 57 48 45 52 45 20 72 5f 63 61 74 65  d=0 WHERE r_cate
7650: 67 6f 72 79 5f 69 64 3d 4f 4c 44 2e 69 64 3b 20  gory_id=OLD.id; 
7660: 45 4e 44 3b 0a 43 52 45 41 54 45 20 54 52 49 47  END;.CREATE TRIG
7670: 47 45 52 20 66 6b 69 5f 73 75 62 6f 70 65 72 61  GER fki_subopera
7680: 74 69 6f 6e 5f 72 65 66 75 6e 64 5f 72 5f 72 65  tion_refund_r_re
7690: 66 75 6e 64 5f 69 64 5f 69 64 20 42 45 46 4f 52  fund_id_id BEFOR
76a0: 45 20 49 4e 53 45 52 54 20 4f 4e 20 73 75 62 6f  E INSERT ON subo
76b0: 70 65 72 61 74 69 6f 6e 20 46 4f 52 20 45 41 43  peration FOR EAC
76c0: 48 20 52 4f 57 20 42 45 47 49 4e 20 20 20 53 45  H ROW BEGIN   SE
76d0: 4c 45 43 54 20 52 41 49 53 45 28 41 42 4f 52 54  LECT RAISE(ABORT
76e0: 2c 20 27 49 6d 70 6f 73 73 69 62 6c 65 20 64 27  , 'Impossible d'
76f0: 27 61 6a 6f 75 74 65 72 20 75 6e 20 6f 62 6a 65  'ajouter un obje
7700: 74 20 28 72 65 66 75 6e 64 20 65 73 74 20 75 74  t (refund est ut
7710: 69 6c 69 73 c3 a9 20 70 61 72 20 73 75 62 6f 70  ilis.. par subop
7720: 65 72 61 74 69 6f 6e 29 0a 4e 6f 6d 20 64 65 20  eration).Nom de 
7730: 6c 61 20 63 6f 6e 74 72 61 69 6e 74 65 c2 a0 3a  la contrainte..:
7740: 20 66 6b 69 5f 73 75 62 6f 70 65 72 61 74 69 6f   fki_suboperatio
7750: 6e 5f 72 65 66 75 6e 64 5f 72 5f 72 65 66 75 6e  n_refund_r_refun
7760: 64 5f 69 64 5f 69 64 27 29 20 20 20 57 48 45 52  d_id_id')   WHER
7770: 45 20 4e 45 57 2e 72 5f 72 65 66 75 6e 64 5f 69  E NEW.r_refund_i
7780: 64 21 3d 30 20 41 4e 44 20 4e 45 57 2e 72 5f 72  d!=0 AND NEW.r_r
7790: 65 66 75 6e 64 5f 69 64 21 3d 27 27 20 41 4e 44  efund_id!='' AND
77a0: 20 28 53 45 4c 45 43 54 20 69 64 20 46 52 4f 4d   (SELECT id FROM
77b0: 20 72 65 66 75 6e 64 20 57 48 45 52 45 20 69 64   refund WHERE id
77c0: 20 3d 20 4e 45 57 2e 72 5f 72 65 66 75 6e 64 5f   = NEW.r_refund_
77d0: 69 64 29 20 49 53 20 4e 55 4c 4c 3b 20 45 4e 44  id) IS NULL; END
77e0: 3b 0a 43 52 45 41 54 45 20 54 52 49 47 47 45 52  ;.CREATE TRIGGER
77f0: 20 66 6b 75 5f 73 75 62 6f 70 65 72 61 74 69 6f   fku_suboperatio
7800: 6e 5f 72 65 66 75 6e 64 5f 72 5f 72 65 66 75 6e  n_refund_r_refun
7810: 64 5f 69 64 5f 69 64 20 42 45 46 4f 52 45 20 55  d_id_id BEFORE U
7820: 50 44 41 54 45 20 4f 4e 20 73 75 62 6f 70 65 72  PDATE ON suboper
7830: 61 74 69 6f 6e 20 46 4f 52 20 45 41 43 48 20 52  ation FOR EACH R
7840: 4f 57 20 42 45 47 49 4e 20 20 20 20 20 53 45 4c  OW BEGIN     SEL
7850: 45 43 54 20 52 41 49 53 45 28 41 42 4f 52 54 2c  ECT RAISE(ABORT,
7860: 20 27 49 6d 70 6f 73 73 69 62 6c 65 20 64 65 20   'Impossible de 
7870: 6d 6f 64 69 66 69 65 72 20 75 6e 20 6f 62 6a 65  modifier un obje
7880: 74 20 28 72 65 66 75 6e 64 20 65 73 74 20 75 74  t (refund est ut
7890: 69 6c 69 73 c3 a9 20 70 61 72 20 73 75 62 6f 70  ilis.. par subop
78a0: 65 72 61 74 69 6f 6e 29 0a 4e 6f 6d 20 64 65 20  eration).Nom de 
78b0: 6c 61 20 63 6f 6e 74 72 61 69 6e 74 65 c2 a0 3a  la contrainte..:
78c0: 20 66 6b 75 5f 73 75 62 6f 70 65 72 61 74 69 6f   fku_suboperatio
78d0: 6e 5f 72 65 66 75 6e 64 5f 72 5f 72 65 66 75 6e  n_refund_r_refun
78e0: 64 5f 69 64 5f 69 64 27 29 20 20 20 20 20 20 20  d_id_id')       
78f0: 57 48 45 52 45 20 4e 45 57 2e 72 5f 72 65 66 75  WHERE NEW.r_refu
7900: 6e 64 5f 69 64 21 3d 30 20 41 4e 44 20 4e 45 57  nd_id!=0 AND NEW
7910: 2e 72 5f 72 65 66 75 6e 64 5f 69 64 21 3d 27 27  .r_refund_id!=''
7920: 20 41 4e 44 20 28 53 45 4c 45 43 54 20 69 64 20   AND (SELECT id 
7930: 46 52 4f 4d 20 72 65 66 75 6e 64 20 57 48 45 52  FROM refund WHER
7940: 45 20 69 64 20 3d 20 4e 45 57 2e 72 5f 72 65 66  E id = NEW.r_ref
7950: 75 6e 64 5f 69 64 29 20 49 53 20 4e 55 4c 4c 3b  und_id) IS NULL;
7960: 20 45 4e 44 3b 0a 43 52 45 41 54 45 20 54 52 49   END;.CREATE TRI
7970: 47 47 45 52 20 66 6b 64 5f 73 75 62 6f 70 65 72  GGER fkd_suboper
7980: 61 74 69 6f 6e 5f 72 65 66 75 6e 64 5f 72 5f 72  ation_refund_r_r
7990: 65 66 75 6e 64 5f 69 64 5f 69 64 20 42 45 46 4f  efund_id_id BEFO
79a0: 52 45 20 44 45 4c 45 54 45 20 4f 4e 20 72 65 66  RE DELETE ON ref
79b0: 75 6e 64 20 46 4f 52 20 45 41 43 48 20 52 4f 57  und FOR EACH ROW
79c0: 20 42 45 47 49 4e 20 20 20 20 20 55 50 44 41 54   BEGIN     UPDAT
79d0: 45 20 73 75 62 6f 70 65 72 61 74 69 6f 6e 20 53  E suboperation S
79e0: 45 54 20 72 5f 72 65 66 75 6e 64 5f 69 64 3d 30  ET r_refund_id=0
79f0: 20 57 48 45 52 45 20 72 5f 72 65 66 75 6e 64 5f   WHERE r_refund_
7a00: 69 64 3d 4f 4c 44 2e 69 64 3b 20 45 4e 44 3b 0a  id=OLD.id; END;.
7a10: 43 52 45 41 54 45 20 54 52 49 47 47 45 52 20 66  CREATE TRIGGER f
7a20: 6b 69 5f 75 6e 69 74 5f 75 6e 69 74 5f 72 64 5f  ki_unit_unit_rd_
7a30: 75 6e 69 74 5f 69 64 5f 69 64 20 42 45 46 4f 52  unit_id_id BEFOR
7a40: 45 20 49 4e 53 45 52 54 20 4f 4e 20 75 6e 69 74  E INSERT ON unit
7a50: 20 46 4f 52 20 45 41 43 48 20 52 4f 57 20 42 45   FOR EACH ROW BE
7a60: 47 49 4e 20 20 20 53 45 4c 45 43 54 20 52 41 49  GIN   SELECT RAI
7a70: 53 45 28 41 42 4f 52 54 2c 20 27 49 6d 70 6f 73  SE(ABORT, 'Impos
7a80: 73 69 62 6c 65 20 64 27 27 61 6a 6f 75 74 65 72  sible d''ajouter
7a90: 20 75 6e 20 6f 62 6a 65 74 20 28 75 6e 69 74 20   un objet (unit 
7aa0: 65 73 74 20 75 74 69 6c 69 73 c3 a9 20 70 61 72  est utilis.. par
7ab0: 20 75 6e 69 74 29 0a 4e 6f 6d 20 64 65 20 6c 61   unit).Nom de la
7ac0: 20 63 6f 6e 74 72 61 69 6e 74 65 c2 a0 3a 20 66   contrainte..: f
7ad0: 6b 69 5f 75 6e 69 74 5f 75 6e 69 74 5f 72 64 5f  ki_unit_unit_rd_
7ae0: 75 6e 69 74 5f 69 64 5f 69 64 27 29 20 20 20 57  unit_id_id')   W
7af0: 48 45 52 45 20 4e 45 57 2e 72 64 5f 75 6e 69 74  HERE NEW.rd_unit
7b00: 5f 69 64 21 3d 30 20 41 4e 44 20 4e 45 57 2e 72  _id!=0 AND NEW.r
7b10: 64 5f 75 6e 69 74 5f 69 64 21 3d 27 27 20 41 4e  d_unit_id!='' AN
7b20: 44 20 28 53 45 4c 45 43 54 20 69 64 20 46 52 4f  D (SELECT id FRO
7b30: 4d 20 75 6e 69 74 20 57 48 45 52 45 20 69 64 20  M unit WHERE id 
7b40: 3d 20 4e 45 57 2e 72 64 5f 75 6e 69 74 5f 69 64  = NEW.rd_unit_id
7b50: 29 20 49 53 20 4e 55 4c 4c 3b 20 45 4e 44 3b 0a  ) IS NULL; END;.
7b60: 43 52 45 41 54 45 20 54 52 49 47 47 45 52 20 66  CREATE TRIGGER f
7b70: 6b 75 5f 75 6e 69 74 5f 75 6e 69 74 5f 72 64 5f  ku_unit_unit_rd_
7b80: 75 6e 69 74 5f 69 64 5f 69 64 20 42 45 46 4f 52  unit_id_id BEFOR
7b90: 45 20 55 50 44 41 54 45 20 4f 4e 20 75 6e 69 74  E UPDATE ON unit
7ba0: 20 46 4f 52 20 45 41 43 48 20 52 4f 57 20 42 45   FOR EACH ROW BE
7bb0: 47 49 4e 20 20 20 20 20 53 45 4c 45 43 54 20 52  GIN     SELECT R
7bc0: 41 49 53 45 28 41 42 4f 52 54 2c 20 27 49 6d 70  AISE(ABORT, 'Imp
7bd0: 6f 73 73 69 62 6c 65 20 64 65 20 6d 6f 64 69 66  ossible de modif
7be0: 69 65 72 20 75 6e 20 6f 62 6a 65 74 20 28 75 6e  ier un objet (un
7bf0: 69 74 20 65 73 74 20 75 74 69 6c 69 73 c3 a9 20  it est utilis.. 
7c00: 70 61 72 20 75 6e 69 74 29 0a 4e 6f 6d 20 64 65  par unit).Nom de
7c10: 20 6c 61 20 63 6f 6e 74 72 61 69 6e 74 65 c2 a0   la contrainte..
7c20: 3a 20 66 6b 75 5f 75 6e 69 74 5f 75 6e 69 74 5f  : fku_unit_unit_
7c30: 72 64 5f 75 6e 69 74 5f 69 64 5f 69 64 27 29 20  rd_unit_id_id') 
7c40: 20 20 20 20 20 20 57 48 45 52 45 20 4e 45 57 2e        WHERE NEW.
7c50: 72 64 5f 75 6e 69 74 5f 69 64 21 3d 30 20 41 4e  rd_unit_id!=0 AN
7c60: 44 20 4e 45 57 2e 72 64 5f 75 6e 69 74 5f 69 64  D NEW.rd_unit_id
7c70: 21 3d 27 27 20 41 4e 44 20 28 53 45 4c 45 43 54  !='' AND (SELECT
7c80: 20 69 64 20 46 52 4f 4d 20 75 6e 69 74 20 57 48   id FROM unit WH
7c90: 45 52 45 20 69 64 20 3d 20 4e 45 57 2e 72 64 5f  ERE id = NEW.rd_
7ca0: 75 6e 69 74 5f 69 64 29 20 49 53 20 4e 55 4c 4c  unit_id) IS NULL
7cb0: 3b 20 45 4e 44 3b 0a 43 52 45 41 54 45 20 54 52  ; END;.CREATE TR
7cc0: 49 47 47 45 52 20 66 6b 64 63 5f 75 6e 69 74 5f  IGGER fkdc_unit_
7cd0: 75 6e 69 74 5f 69 64 5f 72 64 5f 75 6e 69 74 5f  unit_id_rd_unit_
7ce0: 69 64 20 42 45 46 4f 52 45 20 44 45 4c 45 54 45  id BEFORE DELETE
7cf0: 20 4f 4e 20 75 6e 69 74 20 46 4f 52 20 45 41 43   ON unit FOR EAC
7d00: 48 20 52 4f 57 20 42 45 47 49 4e 20 20 20 20 20  H ROW BEGIN     
7d10: 44 45 4c 45 54 45 20 46 52 4f 4d 20 75 6e 69 74  DELETE FROM unit
7d20: 20 57 48 45 52 45 20 75 6e 69 74 2e 72 64 5f 75   WHERE unit.rd_u
7d30: 6e 69 74 5f 69 64 20 3d 20 4f 4c 44 2e 69 64 3b  nit_id = OLD.id;
7d40: 20 45 4e 44 3b 0a 43 52 45 41 54 45 20 54 52 49   END;.CREATE TRI
7d50: 47 47 45 52 20 66 6b 69 5f 75 6e 69 74 76 61 6c  GGER fki_unitval
7d60: 75 65 5f 75 6e 69 74 5f 72 64 5f 75 6e 69 74 5f  ue_unit_rd_unit_
7d70: 69 64 5f 69 64 20 42 45 46 4f 52 45 20 49 4e 53  id_id BEFORE INS
7d80: 45 52 54 20 4f 4e 20 75 6e 69 74 76 61 6c 75 65  ERT ON unitvalue
7d90: 20 46 4f 52 20 45 41 43 48 20 52 4f 57 20 42 45   FOR EACH ROW BE
7da0: 47 49 4e 20 20 20 53 45 4c 45 43 54 20 52 41 49  GIN   SELECT RAI
7db0: 53 45 28 41 42 4f 52 54 2c 20 27 49 6d 70 6f 73  SE(ABORT, 'Impos
7dc0: 73 69 62 6c 65 20 64 27 27 61 6a 6f 75 74 65 72  sible d''ajouter
7dd0: 20 75 6e 20 6f 62 6a 65 74 20 28 75 6e 69 74 20   un objet (unit 
7de0: 65 73 74 20 75 74 69 6c 69 73 c3 a9 20 70 61 72  est utilis.. par
7df0: 20 75 6e 69 74 76 61 6c 75 65 29 0a 4e 6f 6d 20   unitvalue).Nom 
7e00: 64 65 20 6c 61 20 63 6f 6e 74 72 61 69 6e 74 65  de la contrainte
7e10: c2 a0 3a 20 66 6b 69 5f 75 6e 69 74 76 61 6c 75  ..: fki_unitvalu
7e20: 65 5f 75 6e 69 74 5f 72 64 5f 75 6e 69 74 5f 69  e_unit_rd_unit_i
7e30: 64 5f 69 64 27 29 20 20 20 57 48 45 52 45 20 4e  d_id')   WHERE N
7e40: 45 57 2e 72 64 5f 75 6e 69 74 5f 69 64 21 3d 30  EW.rd_unit_id!=0
7e50: 20 41 4e 44 20 4e 45 57 2e 72 64 5f 75 6e 69 74   AND NEW.rd_unit
7e60: 5f 69 64 21 3d 27 27 20 41 4e 44 20 28 53 45 4c  _id!='' AND (SEL
7e70: 45 43 54 20 69 64 20 46 52 4f 4d 20 75 6e 69 74  ECT id FROM unit
7e80: 20 57 48 45 52 45 20 69 64 20 3d 20 4e 45 57 2e   WHERE id = NEW.
7e90: 72 64 5f 75 6e 69 74 5f 69 64 29 20 49 53 20 4e  rd_unit_id) IS N
7ea0: 55 4c 4c 3b 20 45 4e 44 3b 0a 43 52 45 41 54 45  ULL; END;.CREATE
7eb0: 20 54 52 49 47 47 45 52 20 66 6b 75 5f 75 6e 69   TRIGGER fku_uni
7ec0: 74 76 61 6c 75 65 5f 75 6e 69 74 5f 72 64 5f 75  tvalue_unit_rd_u
7ed0: 6e 69 74 5f 69 64 5f 69 64 20 42 45 46 4f 52 45  nit_id_id BEFORE
7ee0: 20 55 50 44 41 54 45 20 4f 4e 20 75 6e 69 74 76   UPDATE ON unitv
7ef0: 61 6c 75 65 20 46 4f 52 20 45 41 43 48 20 52 4f  alue FOR EACH RO
7f00: 57 20 42 45 47 49 4e 20 20 20 20 20 53 45 4c 45  W BEGIN     SELE
7f10: 43 54 20 52 41 49 53 45 28 41 42 4f 52 54 2c 20  CT RAISE(ABORT, 
7f20: 27 49 6d 70 6f 73 73 69 62 6c 65 20 64 65 20 6d  'Impossible de m
7f30: 6f 64 69 66 69 65 72 20 75 6e 20 6f 62 6a 65 74  odifier un objet
7f40: 20 28 75 6e 69 74 20 65 73 74 20 75 74 69 6c 69   (unit est utili
7f50: 73 c3 a9 20 70 61 72 20 75 6e 69 74 76 61 6c 75  s.. par unitvalu
7f60: 65 29 0a 4e 6f 6d 20 64 65 20 6c 61 20 63 6f 6e  e).Nom de la con
7f70: 74 72 61 69 6e 74 65 c2 a0 3a 20 66 6b 75 5f 75  trainte..: fku_u
7f80: 6e 69 74 76 61 6c 75 65 5f 75 6e 69 74 5f 72 64  nitvalue_unit_rd
7f90: 5f 75 6e 69 74 5f 69 64 5f 69 64 27 29 20 20 20  _unit_id_id')   
7fa0: 20 20 20 20 57 48 45 52 45 20 4e 45 57 2e 72 64      WHERE NEW.rd
7fb0: 5f 75 6e 69 74 5f 69 64 21 3d 30 20 41 4e 44 20  _unit_id!=0 AND 
7fc0: 4e 45 57 2e 72 64 5f 75 6e 69 74 5f 69 64 21 3d  NEW.rd_unit_id!=
7fd0: 27 27 20 41 4e 44 20 28 53 45 4c 45 43 54 20 69  '' AND (SELECT i
7fe0: 64 20 46 52 4f 4d 20 75 6e 69 74 20 57 48 45 52  d FROM unit WHER
7ff0: 45 20 69 64 20 3d 20 4e 45 57 2e 72 64 5f 75 6e  E id = NEW.rd_un
8000: 69 74 5f 69 64 29 20 49 53 20 4e 55 4c 4c 3b 20  it_id) IS NULL; 
8010: 45 4e 44 3b 0a 43 52 45 41 54 45 20 54 52 49 47  END;.CREATE TRIG
8020: 47 45 52 20 66 6b 64 63 5f 75 6e 69 74 5f 75 6e  GER fkdc_unit_un
8030: 69 74 76 61 6c 75 65 5f 69 64 5f 72 64 5f 75 6e  itvalue_id_rd_un
8040: 69 74 5f 69 64 20 42 45 46 4f 52 45 20 44 45 4c  it_id BEFORE DEL
8050: 45 54 45 20 4f 4e 20 75 6e 69 74 20 46 4f 52 20  ETE ON unit FOR 
8060: 45 41 43 48 20 52 4f 57 20 42 45 47 49 4e 20 20  EACH ROW BEGIN  
8070: 20 20 20 44 45 4c 45 54 45 20 46 52 4f 4d 20 75     DELETE FROM u
8080: 6e 69 74 76 61 6c 75 65 20 57 48 45 52 45 20 75  nitvalue WHERE u
8090: 6e 69 74 76 61 6c 75 65 2e 72 64 5f 75 6e 69 74  nitvalue.rd_unit
80a0: 5f 69 64 20 3d 20 4f 4c 44 2e 69 64 3b 20 45 4e  _id = OLD.id; EN
80b0: 44 3b 0a 43 52 45 41 54 45 20 54 52 49 47 47 45  D;.CREATE TRIGGE
80c0: 52 20 66 6b 64 5f 76 6d 5f 62 75 64 67 65 74 5f  R fkd_vm_budget_
80d0: 74 6d 70 5f 63 61 74 65 67 6f 72 79 5f 72 63 5f  tmp_category_rc_
80e0: 63 61 74 65 67 6f 72 79 5f 69 64 5f 69 64 20 42  category_id_id B
80f0: 45 46 4f 52 45 20 44 45 4c 45 54 45 20 4f 4e 20  EFORE DELETE ON 
8100: 63 61 74 65 67 6f 72 79 20 46 4f 52 20 45 41 43  category FOR EAC
8110: 48 20 52 4f 57 20 42 45 47 49 4e 20 20 20 20 20  H ROW BEGIN     
8120: 53 45 4c 45 43 54 20 52 41 49 53 45 28 41 42 4f  SELECT RAISE(ABO
8130: 52 54 2c 20 27 49 6d 70 6f 73 73 69 62 6c 65 20  RT, 'Impossible 
8140: 64 65 20 64 c3 a9 74 72 75 69 72 65 20 75 6e 20  de d..truire un 
8150: 6f 62 6a 65 74 20 28 63 61 74 65 67 6f 72 79 20  objet (category 
8160: 65 73 74 20 75 74 69 6c 69 73 c3 a9 20 70 61 72  est utilis.. par
8170: 20 76 6d 5f 62 75 64 67 65 74 5f 74 6d 70 29 0a   vm_budget_tmp).
8180: 4e 6f 6d 20 64 65 20 6c 61 20 63 6f 6e 74 72 61  Nom de la contra
8190: 69 6e 74 65 c2 a0 3a 20 66 6b 64 5f 76 6d 5f 62  inte..: fkd_vm_b
81a0: 75 64 67 65 74 5f 74 6d 70 5f 63 61 74 65 67 6f  udget_tmp_catego
81b0: 72 79 5f 72 63 5f 63 61 74 65 67 6f 72 79 5f 69  ry_rc_category_i
81c0: 64 5f 69 64 27 29 20 20 20 20 20 57 48 45 52 45  d_id')     WHERE
81d0: 20 28 53 45 4c 45 43 54 20 72 63 5f 63 61 74 65   (SELECT rc_cate
81e0: 67 6f 72 79 5f 69 64 20 46 52 4f 4d 20 76 6d 5f  gory_id FROM vm_
81f0: 62 75 64 67 65 74 5f 74 6d 70 20 57 48 45 52 45  budget_tmp WHERE
8200: 20 72 63 5f 63 61 74 65 67 6f 72 79 5f 69 64 20   rc_category_id 
8210: 3d 20 4f 4c 44 2e 69 64 29 20 49 53 20 4e 4f 54  = OLD.id) IS NOT
8220: 20 4e 55 4c 4c 3b 20 45 4e 44 3b 0a 43 52 45 41   NULL; END;.CREA
8230: 54 45 20 54 52 49 47 47 45 52 20 66 6b 64 63 5f  TE TRIGGER fkdc_
8240: 63 61 74 65 67 6f 72 79 5f 76 6d 5f 63 61 74 65  category_vm_cate
8250: 67 6f 72 79 5f 64 69 73 70 6c 61 79 5f 74 6d 70  gory_display_tmp
8260: 5f 69 64 5f 72 64 5f 63 61 74 65 67 6f 72 79 5f  _id_rd_category_
8270: 69 64 20 42 45 46 4f 52 45 20 44 45 4c 45 54 45  id BEFORE DELETE
8280: 20 4f 4e 20 63 61 74 65 67 6f 72 79 20 46 4f 52   ON category FOR
8290: 20 45 41 43 48 20 52 4f 57 20 42 45 47 49 4e 20   EACH ROW BEGIN 
82a0: 20 20 20 20 44 45 4c 45 54 45 20 46 52 4f 4d 20      DELETE FROM 
82b0: 76 6d 5f 63 61 74 65 67 6f 72 79 5f 64 69 73 70  vm_category_disp
82c0: 6c 61 79 5f 74 6d 70 20 57 48 45 52 45 20 76 6d  lay_tmp WHERE vm
82d0: 5f 63 61 74 65 67 6f 72 79 5f 64 69 73 70 6c 61  _category_displa
82e0: 79 5f 74 6d 70 2e 72 64 5f 63 61 74 65 67 6f 72  y_tmp.rd_categor
82f0: 79 5f 69 64 20 3d 20 4f 4c 44 2e 69 64 3b 20 45  y_id = OLD.id; E
8300: 4e 44 3b 0a 43 52 45 41 54 45 20 56 49 45 57 20  ND;.CREATE VIEW 
8310: 76 5f 75 6e 69 74 5f 64 69 73 70 6c 61 79 6e 61  v_unit_displayna
8320: 6d 65 20 41 53 20 53 45 4c 45 43 54 20 2a 2c 20  me AS SELECT *, 
8330: 74 5f 6e 61 6d 65 7c 7c 27 20 28 27 7c 7c 74 5f  t_name||' ('||t_
8340: 73 79 6d 62 6f 6c 7c 7c 27 29 27 20 41 53 20 74  symbol||')' AS t
8350: 5f 64 69 73 70 6c 61 79 6e 61 6d 65 20 46 52 4f  _displayname FRO
8360: 4d 20 75 6e 69 74 3b 0a 43 52 45 41 54 45 20 56  M unit;.CREATE V
8370: 49 45 57 20 76 5f 75 6e 69 74 5f 74 6d 70 31 20  IEW v_unit_tmp1 
8380: 41 53 20 53 45 4c 45 43 54 20 2a 2c 28 53 45 4c  AS SELECT *,(SEL
8390: 45 43 54 20 63 6f 75 6e 74 28 31 29 20 46 52 4f  ECT count(1) FRO
83a0: 4d 20 75 6e 69 74 76 61 6c 75 65 20 73 20 57 48  M unitvalue s WH
83b0: 45 52 45 20 73 2e 72 64 5f 75 6e 69 74 5f 69 64  ERE s.rd_unit_id
83c0: 3d 75 6e 69 74 2e 69 64 29 20 41 53 20 69 5f 4e  =unit.id) AS i_N
83d0: 42 56 41 4c 55 45 53 2c 20 28 43 41 53 45 20 57  BVALUES, (CASE W
83e0: 48 45 4e 20 75 6e 69 74 2e 72 64 5f 75 6e 69 74  HEN unit.rd_unit
83f0: 5f 69 64 3d 30 20 54 48 45 4e 20 27 27 20 45 4c  _id=0 THEN '' EL
8400: 53 45 20 28 53 45 4c 45 43 54 20 28 43 41 53 45  SE (SELECT (CASE
8410: 20 57 48 45 4e 20 73 2e 74 5f 73 79 6d 62 6f 6c   WHEN s.t_symbol
8420: 21 3d 27 27 20 54 48 45 4e 20 73 2e 74 5f 73 79  !='' THEN s.t_sy
8430: 6d 62 6f 6c 20 45 4c 53 45 20 73 2e 74 5f 6e 61  mbol ELSE s.t_na
8440: 6d 65 20 45 4e 44 29 20 46 52 4f 4d 20 75 6e 69  me END) FROM uni
8450: 74 20 73 20 57 48 45 52 45 20 73 2e 69 64 3d 75  t s WHERE s.id=u
8460: 6e 69 74 2e 72 64 5f 75 6e 69 74 5f 69 64 29 20  nit.rd_unit_id) 
8470: 45 4e 44 29 20 41 53 20 74 5f 55 4e 49 54 2c 28  END) AS t_UNIT,(
8480: 43 41 53 45 20 75 6e 69 74 2e 74 5f 74 79 70 65  CASE unit.t_type
8490: 20 57 48 45 4e 20 27 31 27 20 54 48 45 4e 20 27   WHEN '1' THEN '
84a0: 4d 6f 6e 6e 61 69 65 20 70 72 69 6e 63 69 70 61  Monnaie principa
84b0: 6c 65 27 20 57 48 45 4e 20 27 32 27 20 54 48 45  le' WHEN '2' THE
84c0: 4e 20 27 4d 6f 6e 6e 61 69 65 20 73 65 63 6f 6e  N 'Monnaie secon
84d0: 64 61 69 72 65 27 20 57 48 45 4e 20 27 43 27 20  daire' WHEN 'C' 
84e0: 54 48 45 4e 20 27 4d 6f 6e 6e 61 69 65 27 20 57  THEN 'Monnaie' W
84f0: 48 45 4e 20 27 53 27 20 54 48 45 4e 20 27 41 63  HEN 'S' THEN 'Ac
8500: 74 69 6f 6e 27 20 57 48 45 4e 20 27 49 27 20 54  tion' WHEN 'I' T
8510: 48 45 4e 20 27 49 6e 64 69 63 65 27 20 45 4c 53  HEN 'Indice' ELS
8520: 45 20 27 4f 62 6a 65 74 27 20 45 4e 44 29 20 41  E 'Objet' END) A
8530: 53 20 74 5f 54 59 50 45 4e 4c 53 2c 20 28 53 45  S t_TYPENLS, (SE
8540: 4c 45 43 54 20 4d 49 4e 28 73 2e 64 5f 64 61 74  LECT MIN(s.d_dat
8550: 65 29 20 46 52 4f 4d 20 20 75 6e 69 74 76 61 6c  e) FROM  unitval
8560: 75 65 20 73 20 57 48 45 52 45 20 73 2e 72 64 5f  ue s WHERE s.rd_
8570: 75 6e 69 74 5f 69 64 3d 75 6e 69 74 2e 69 64 29  unit_id=unit.id)
8580: 20 41 53 20 64 5f 4d 49 4e 44 41 54 45 2c 20 28   AS d_MINDATE, (
8590: 53 45 4c 45 43 54 20 4d 41 58 28 73 2e 64 5f 64  SELECT MAX(s.d_d
85a0: 61 74 65 29 20 46 52 4f 4d 20 20 75 6e 69 74 76  ate) FROM  unitv
85b0: 61 6c 75 65 20 73 20 57 48 45 52 45 20 73 2e 72  alue s WHERE s.r
85c0: 64 5f 75 6e 69 74 5f 69 64 3d 75 6e 69 74 2e 69  d_unit_id=unit.i
85d0: 64 29 20 41 53 20 64 5f 4d 41 58 44 41 54 45 20  d) AS d_MAXDATE 
85e0: 66 72 6f 6d 20 75 6e 69 74 3b 0a 43 52 45 41 54  from unit;.CREAT
85f0: 45 20 56 49 45 57 20 76 5f 75 6e 69 74 5f 74 6d  E VIEW v_unit_tm
8600: 70 32 20 41 53 20 53 45 4c 45 43 54 20 2a 2c 43  p2 AS SELECT *,C
8610: 41 53 45 20 57 48 45 4e 20 76 5f 75 6e 69 74 5f  ASE WHEN v_unit_
8620: 74 6d 70 31 2e 74 5f 74 79 70 65 3d 27 31 27 20  tmp1.t_type='1' 
8630: 54 48 45 4e 20 31 20 45 4c 53 45 20 49 46 4e 55  THEN 1 ELSE IFNU
8640: 4c 4c 28 28 53 45 4c 45 43 54 20 73 2e 66 5f 71  LL((SELECT s.f_q
8650: 75 61 6e 74 69 74 79 20 46 52 4f 4d 20 75 6e 69  uantity FROM uni
8660: 74 76 61 6c 75 65 20 73 20 57 48 45 52 45 20 73  tvalue s WHERE s
8670: 2e 72 64 5f 75 6e 69 74 5f 69 64 3d 76 5f 75 6e  .rd_unit_id=v_un
8680: 69 74 5f 74 6d 70 31 2e 69 64 20 41 4e 44 20 73  it_tmp1.id AND s
8690: 2e 64 5f 64 61 74 65 3d 76 5f 75 6e 69 74 5f 74  .d_date=v_unit_t
86a0: 6d 70 31 2e 64 5f 4d 41 58 44 41 54 45 29 2c 31  mp1.d_MAXDATE),1
86b0: 29 20 45 4e 44 20 41 53 20 66 5f 4c 41 53 54 56  ) END AS f_LASTV
86c0: 41 4c 55 45 20 66 72 6f 6d 20 76 5f 75 6e 69 74  ALUE from v_unit
86d0: 5f 74 6d 70 31 3b 0a 43 52 45 41 54 45 20 56 49  _tmp1;.CREATE VI
86e0: 45 57 20 76 5f 75 6e 69 74 20 41 53 20 53 45 4c  EW v_unit AS SEL
86f0: 45 43 54 20 2a 2c 76 5f 75 6e 69 74 5f 74 6d 70  ECT *,v_unit_tmp
8700: 32 2e 66 5f 4c 41 53 54 56 41 4c 55 45 2a 49 46  2.f_LASTVALUE*IF
8710: 4e 55 4c 4c 28 28 53 45 4c 45 43 54 20 73 32 2e  NULL((SELECT s2.
8720: 66 5f 4c 41 53 54 56 41 4c 55 45 20 46 52 4f 4d  f_LASTVALUE FROM
8730: 20 76 5f 75 6e 69 74 5f 74 6d 70 32 20 73 32 20   v_unit_tmp2 s2 
8740: 57 48 45 52 45 20 73 32 2e 69 64 3d 76 5f 75 6e  WHERE s2.id=v_un
8750: 69 74 5f 74 6d 70 32 2e 72 64 5f 75 6e 69 74 5f  it_tmp2.rd_unit_
8760: 69 64 29 20 2c 20 31 29 20 41 53 20 66 5f 43 55  id) , 1) AS f_CU
8770: 52 52 45 4e 54 41 4d 4f 55 4e 54 20 66 72 6f 6d  RRENTAMOUNT from
8780: 20 76 5f 75 6e 69 74 5f 74 6d 70 32 3b 0a 43 52   v_unit_tmp2;.CR
8790: 45 41 54 45 20 56 49 45 57 20 76 5f 75 6e 69 74  EATE VIEW v_unit
87a0: 76 61 6c 75 65 5f 64 69 73 70 6c 61 79 6e 61 6d  value_displaynam
87b0: 65 20 41 53 20 53 45 4c 45 43 54 20 2a 2c 20 28  e AS SELECT *, (
87c0: 53 45 4c 45 43 54 20 74 5f 64 69 73 70 6c 61 79  SELECT t_display
87d0: 6e 61 6d 65 20 46 52 4f 4d 20 76 5f 75 6e 69 74  name FROM v_unit
87e0: 5f 64 69 73 70 6c 61 79 6e 61 6d 65 20 57 48 45  _displayname WHE
87f0: 52 45 20 75 6e 69 74 76 61 6c 75 65 2e 72 64 5f  RE unitvalue.rd_
8800: 75 6e 69 74 5f 69 64 3d 76 5f 75 6e 69 74 5f 64  unit_id=v_unit_d
8810: 69 73 70 6c 61 79 6e 61 6d 65 2e 69 64 29 7c 7c  isplayname.id)||
8820: 27 20 27 7c 7c 53 54 52 46 54 49 4d 45 28 27 25  ' '||STRFTIME('%
8830: 64 2f 25 6d 2f 25 59 27 2c 64 5f 64 61 74 65 29  d/%m/%Y',d_date)
8840: 20 41 53 20 74 5f 64 69 73 70 6c 61 79 6e 61 6d   AS t_displaynam
8850: 65 20 46 52 4f 4d 20 75 6e 69 74 76 61 6c 75 65  e FROM unitvalue
8860: 3b 0a 43 52 45 41 54 45 20 56 49 45 57 20 76 5f  ;.CREATE VIEW v_
8870: 75 6e 69 74 76 61 6c 75 65 20 41 53 20 53 45 4c  unitvalue AS SEL
8880: 45 43 54 20 2a 20 46 52 4f 4d 20 75 6e 69 74 76  ECT * FROM unitv
8890: 61 6c 75 65 3b 0a 43 52 45 41 54 45 20 56 49 45  alue;.CREATE VIE
88a0: 57 20 76 5f 73 75 62 6f 70 65 72 61 74 69 6f 6e  W v_suboperation
88b0: 20 41 53 20 53 45 4c 45 43 54 20 2a 20 46 52 4f   AS SELECT * FRO
88c0: 4d 20 73 75 62 6f 70 65 72 61 74 69 6f 6e 3b 0a  M suboperation;.
88d0: 43 52 45 41 54 45 20 56 49 45 57 20 76 5f 6f 70  CREATE VIEW v_op
88e0: 65 72 61 74 69 6f 6e 5f 6e 75 6d 62 65 72 73 20  eration_numbers 
88f0: 41 53 20 53 45 4c 45 43 54 20 44 49 53 54 49 4e  AS SELECT DISTIN
8900: 43 54 20 69 5f 6e 75 6d 62 65 72 2c 20 72 64 5f  CT i_number, rd_
8910: 61 63 63 6f 75 6e 74 5f 69 64 20 46 52 4f 4d 20  account_id FROM 
8920: 6f 70 65 72 61 74 69 6f 6e 3b 0a 43 52 45 41 54  operation;.CREAT
8930: 45 20 56 49 45 57 20 76 5f 6f 70 65 72 61 74 69  E VIEW v_operati
8940: 6f 6e 5f 6e 65 78 74 5f 6e 75 6d 62 65 72 73 20  on_next_numbers 
8950: 41 53 20 53 45 4c 45 43 54 20 54 31 2e 69 5f 6e  AS SELECT T1.i_n
8960: 75 6d 62 65 72 2b 31 20 41 53 20 69 5f 6e 75 6d  umber+1 AS i_num
8970: 62 65 72 20 46 52 4f 4d 20 76 5f 6f 70 65 72 61  ber FROM v_opera
8980: 74 69 6f 6e 5f 6e 75 6d 62 65 72 73 20 41 53 20  tion_numbers AS 
8990: 54 31 20 4c 45 46 54 20 4f 55 54 45 52 20 4a 4f  T1 LEFT OUTER JO
89a0: 49 4e 20 76 5f 6f 70 65 72 61 74 69 6f 6e 5f 6e  IN v_operation_n
89b0: 75 6d 62 65 72 73 20 54 32 20 4f 4e 20 54 32 2e  umbers T2 ON T2.
89c0: 72 64 5f 61 63 63 6f 75 6e 74 5f 69 64 3d 54 31  rd_account_id=T1
89d0: 2e 72 64 5f 61 63 63 6f 75 6e 74 5f 69 64 20 41  .rd_account_id A
89e0: 4e 44 20 54 32 2e 69 5f 6e 75 6d 62 65 72 3d 54  ND T2.i_number=T
89f0: 31 2e 69 5f 6e 75 6d 62 65 72 2b 31 20 57 48 45  1.i_number+1 WHE
8a00: 52 45 20 54 31 2e 69 5f 6e 75 6d 62 65 72 21 3d  RE T1.i_number!=
8a10: 30 20 41 4e 44 20 28 54 32 2e 69 5f 6e 75 6d 62  0 AND (T2.i_numb
8a20: 65 72 20 49 53 20 4e 55 4c 4c 29 20 4f 52 44 45  er IS NULL) ORDE
8a30: 52 20 42 59 20 54 31 2e 69 5f 6e 75 6d 62 65 72  R BY T1.i_number
8a40: 3b 0a 43 52 45 41 54 45 20 56 49 45 57 20 76 5f  ;.CREATE VIEW v_
8a50: 6f 70 65 72 61 74 69 6f 6e 5f 74 6d 70 31 20 41  operation_tmp1 A
8a60: 53 20 53 45 4c 45 43 54 20 2a 2c 28 53 45 4c 45  S SELECT *,(SELE
8a70: 43 54 20 74 5f 6e 61 6d 65 20 46 52 4f 4d 20 70  CT t_name FROM p
8a80: 61 79 65 65 20 73 20 57 48 45 52 45 20 73 2e 69  ayee s WHERE s.i
8a90: 64 3d 6f 70 65 72 61 74 69 6f 6e 2e 72 5f 70 61  d=operation.r_pa
8aa0: 79 65 65 5f 69 64 29 20 41 53 20 74 5f 50 41 59  yee_id) AS t_PAY
8ab0: 45 45 2c 28 53 45 4c 45 43 54 20 54 4f 54 41 4c  EE,(SELECT TOTAL
8ac0: 28 73 2e 66 5f 76 61 6c 75 65 29 20 46 52 4f 4d  (s.f_value) FROM
8ad0: 20 73 75 62 6f 70 65 72 61 74 69 6f 6e 20 73 20   suboperation s 
8ae0: 57 48 45 52 45 20 73 2e 72 64 5f 6f 70 65 72 61  WHERE s.rd_opera
8af0: 74 69 6f 6e 5f 69 64 3d 6f 70 65 72 61 74 69 6f  tion_id=operatio
8b00: 6e 2e 49 44 29 20 41 53 20 66 5f 51 55 41 4e 54  n.ID) AS f_QUANT
8b10: 49 54 59 2c 28 53 45 4c 45 43 54 20 63 6f 75 6e  ITY,(SELECT coun
8b20: 74 28 31 29 20 46 52 4f 4d 20 73 75 62 6f 70 65  t(1) FROM subope
8b30: 72 61 74 69 6f 6e 20 73 20 57 48 45 52 45 20 73  ration s WHERE s
8b40: 2e 72 64 5f 6f 70 65 72 61 74 69 6f 6e 5f 69 64  .rd_operation_id
8b50: 3d 6f 70 65 72 61 74 69 6f 6e 2e 49 44 29 20 41  =operation.ID) A
8b60: 53 20 69 5f 4e 42 53 55 42 43 41 54 45 47 4f 52  S i_NBSUBCATEGOR
8b70: 59 20 46 52 4f 4d 20 6f 70 65 72 61 74 69 6f 6e  Y FROM operation
8b80: 3b 0a 43 52 45 41 54 45 20 56 49 45 57 20 76 5f  ;.CREATE VIEW v_
8b90: 6f 70 65 72 61 74 69 6f 6e 20 41 53 20 53 45 4c  operation AS SEL
8ba0: 45 43 54 20 2a 2c 28 53 45 4c 45 43 54 20 73 2e  ECT *,(SELECT s.
8bb0: 69 64 20 46 52 4f 4d 20 73 75 62 6f 70 65 72 61  id FROM subopera
8bc0: 74 69 6f 6e 20 73 20 57 48 45 52 45 20 73 2e 72  tion s WHERE s.r
8bd0: 64 5f 6f 70 65 72 61 74 69 6f 6e 5f 69 64 3d 76  d_operation_id=v
8be0: 5f 6f 70 65 72 61 74 69 6f 6e 5f 74 6d 70 31 2e  _operation_tmp1.
8bf0: 69 64 20 41 4e 44 20 41 42 53 28 73 2e 66 5f 76  id AND ABS(s.f_v
8c00: 61 6c 75 65 29 3d 28 53 45 4c 45 43 54 20 4d 41  alue)=(SELECT MA
8c10: 58 28 41 42 53 28 73 32 2e 66 5f 76 61 6c 75 65  X(ABS(s2.f_value
8c20: 29 29 20 46 52 4f 4d 20 73 75 62 6f 70 65 72 61  )) FROM subopera
8c30: 74 69 6f 6e 20 73 32 20 57 48 45 52 45 20 73 32  tion s2 WHERE s2
8c40: 2e 72 64 5f 6f 70 65 72 61 74 69 6f 6e 5f 69 64  .rd_operation_id
8c50: 3d 76 5f 6f 70 65 72 61 74 69 6f 6e 5f 74 6d 70  =v_operation_tmp
8c60: 31 2e 69 64 29 29 20 41 53 20 69 5f 4d 4f 53 54  1.id)) AS i_MOST
8c70: 49 4d 50 53 55 42 4f 50 2c 28 28 53 45 4c 45 43  IMPSUBOP,((SELEC
8c80: 54 20 73 2e 66 5f 43 55 52 52 45 4e 54 41 4d 4f  T s.f_CURRENTAMO
8c90: 55 4e 54 20 46 52 4f 4d 20 76 5f 75 6e 69 74 20  UNT FROM v_unit 
8ca0: 73 20 57 48 45 52 45 20 73 2e 69 64 3d 76 5f 6f  s WHERE s.id=v_o
8cb0: 70 65 72 61 74 69 6f 6e 5f 74 6d 70 31 2e 72 63  peration_tmp1.rc
8cc0: 5f 75 6e 69 74 5f 69 64 29 2a 76 5f 6f 70 65 72  _unit_id)*v_oper
8cd0: 61 74 69 6f 6e 5f 74 6d 70 31 2e 66 5f 51 55 41  ation_tmp1.f_QUA
8ce0: 4e 54 49 54 59 29 20 41 53 20 66 5f 43 55 52 52  NTITY) AS f_CURR
8cf0: 45 4e 54 41 4d 4f 55 4e 54 2c 20 28 43 41 53 45  ENTAMOUNT, (CASE
8d00: 20 57 48 45 4e 20 76 5f 6f 70 65 72 61 74 69 6f   WHEN v_operatio
8d10: 6e 5f 74 6d 70 31 2e 69 5f 67 72 6f 75 70 5f 69  n_tmp1.i_group_i
8d20: 64 3c 3e 30 20 41 4e 44 20 45 58 49 53 54 53 20  d<>0 AND EXISTS 
8d30: 28 53 45 4c 45 43 54 20 31 20 46 52 4f 4d 20 61  (SELECT 1 FROM a
8d40: 63 63 6f 75 6e 74 20 61 20 57 48 45 52 45 20 76  ccount a WHERE v
8d50: 5f 6f 70 65 72 61 74 69 6f 6e 5f 74 6d 70 31 2e  _operation_tmp1.
8d60: 72 64 5f 61 63 63 6f 75 6e 74 5f 69 64 3d 61 2e  rd_account_id=a.
8d70: 69 64 20 41 4e 44 20 61 2e 74 5f 74 79 70 65 3c  id AND a.t_type<
8d80: 3e 27 4c 27 29 20 41 4e 44 20 45 58 49 53 54 53  >'L') AND EXISTS
8d90: 20 28 53 45 4c 45 43 54 20 31 20 46 52 4f 4d 20   (SELECT 1 FROM 
8da0: 76 5f 6f 70 65 72 61 74 69 6f 6e 5f 74 6d 70 31  v_operation_tmp1
8db0: 20 6f 70 32 2c 20 61 63 63 6f 75 6e 74 20 61 20   op2, account a 
8dc0: 57 48 45 52 45 20 6f 70 32 2e 69 5f 67 72 6f 75  WHERE op2.i_grou
8dd0: 70 5f 69 64 3d 76 5f 6f 70 65 72 61 74 69 6f 6e  p_id=v_operation
8de0: 5f 74 6d 70 31 2e 69 5f 67 72 6f 75 70 5f 69 64  _tmp1.i_group_id
8df0: 20 41 4e 44 20 6f 70 32 2e 72 64 5f 61 63 63 6f   AND op2.rd_acco
8e00: 75 6e 74 5f 69 64 3d 61 2e 69 64 20 41 4e 44 20  unt_id=a.id AND 
8e10: 61 2e 74 5f 74 79 70 65 3c 3e 27 4c 27 20 41 4e  a.t_type<>'L' AN
8e20: 44 20 6f 70 32 2e 72 63 5f 75 6e 69 74 5f 69 64  D op2.rc_unit_id
8e30: 3d 76 5f 6f 70 65 72 61 74 69 6f 6e 5f 74 6d 70  =v_operation_tmp
8e40: 31 2e 72 63 5f 75 6e 69 74 5f 69 64 20 41 4e 44  1.rc_unit_id AND
8e50: 20 6f 70 32 2e 66 5f 51 55 41 4e 54 49 54 59 3d   op2.f_QUANTITY=
8e60: 2d 76 5f 6f 70 65 72 61 74 69 6f 6e 5f 74 6d 70  -v_operation_tmp
8e70: 31 2e 66 5f 51 55 41 4e 54 49 54 59 29 20 54 48  1.f_QUANTITY) TH
8e80: 45 4e 20 27 59 27 20 45 4c 53 45 20 27 4e 27 20  EN 'Y' ELSE 'N' 
8e90: 45 4e 44 29 20 41 53 20 74 5f 54 52 41 4e 53 46  END) AS t_TRANSF
8ea0: 45 52 20 46 52 4f 4d 20 76 5f 6f 70 65 72 61 74  ER FROM v_operat
8eb0: 69 6f 6e 5f 74 6d 70 31 3b 0a 43 52 45 41 54 45  ion_tmp1;.CREATE
8ec0: 20 56 49 45 57 20 76 5f 6f 70 65 72 61 74 69 6f   VIEW v_operatio
8ed0: 6e 5f 64 69 73 70 6c 61 79 6e 61 6d 65 20 41 53  n_displayname AS
8ee0: 20 53 45 4c 45 43 54 20 2a 2c 20 53 54 52 46 54   SELECT *, STRFT
8ef0: 49 4d 45 28 27 25 64 2f 25 6d 2f 25 59 27 2c 64  IME('%d/%m/%Y',d
8f00: 5f 64 61 74 65 29 7c 7c 27 20 27 7c 7c 49 46 4e  _date)||' '||IFN
8f10: 55 4c 4c 28 74 5f 50 41 59 45 45 2c 27 27 29 7c  ULL(t_PAYEE,'')|
8f20: 7c 27 20 27 7c 7c 76 5f 6f 70 65 72 61 74 69 6f  |' '||v_operatio
8f30: 6e 2e 66 5f 43 55 52 52 45 4e 54 41 4d 4f 55 4e  n.f_CURRENTAMOUN
8f40: 54 7c 7c 27 20 27 7c 7c 28 53 45 4c 45 43 54 20  T||' '||(SELECT 
8f50: 28 43 41 53 45 20 57 48 45 4e 20 73 2e 74 5f 73  (CASE WHEN s.t_s
8f60: 79 6d 62 6f 6c 21 3d 27 27 20 54 48 45 4e 20 73  ymbol!='' THEN s
8f70: 2e 74 5f 73 79 6d 62 6f 6c 20 45 4c 53 45 20 73  .t_symbol ELSE s
8f80: 2e 74 5f 6e 61 6d 65 20 45 4e 44 29 20 46 52 4f  .t_name END) FRO
8f90: 4d 20 75 6e 69 74 20 73 20 57 48 45 52 45 20 73  M unit s WHERE s
8fa0: 2e 69 64 3d 76 5f 6f 70 65 72 61 74 69 6f 6e 2e  .id=v_operation.
8fb0: 72 63 5f 75 6e 69 74 5f 69 64 29 20 41 53 20 74  rc_unit_id) AS t
8fc0: 5f 64 69 73 70 6c 61 79 6e 61 6d 65 20 46 52 4f  _displayname FRO
8fd0: 4d 20 76 5f 6f 70 65 72 61 74 69 6f 6e 3b 0a 43  M v_operation;.C
8fe0: 52 45 41 54 45 20 56 49 45 57 20 76 5f 6f 70 65  REATE VIEW v_ope
8ff0: 72 61 74 69 6f 6e 5f 64 65 6c 65 74 65 20 41 53  ration_delete AS
9000: 20 53 45 4c 45 43 54 20 2a 2c 20 28 43 41 53 45   SELECT *, (CASE
9010: 20 57 48 45 4e 20 74 5f 73 74 61 74 75 73 3d 27   WHEN t_status='
9020: 59 27 20 54 48 45 4e 20 27 56 6f 75 73 20 6e 27  Y' THEN 'Vous n'
9030: 27 c3 aa 74 65 73 20 70 61 73 20 61 75 74 6f 72  '..tes pas autor
9040: 69 73 c3 a9 20 c3 a0 20 64 c3 a9 74 72 75 69 72  is.. .. d..truir
9050: 65 20 63 65 74 74 65 20 6f 70 c3 a9 72 61 74 69  e cette op..rati
9060: 6f 6e 20 63 61 72 20 65 6e 20 c3 a9 74 61 74 20  on car en ..tat 
9070: c2 ab c2 a0 72 61 70 70 72 6f 63 68 c3 a9 c2 a0  ....rapproch....
9080: c2 bb 27 20 45 4e 44 29 20 74 5f 64 65 6c 65 74  ..' END) t_delet
9090: 65 5f 6d 65 73 73 61 67 65 20 46 52 4f 4d 20 6f  e_message FROM o
90a0: 70 65 72 61 74 69 6f 6e 3b 0a 43 52 45 41 54 45  peration;.CREATE
90b0: 20 56 49 45 57 20 76 5f 61 63 63 6f 75 6e 74 20   VIEW v_account 
90c0: 41 53 20 53 45 4c 45 43 54 20 2a 2c 28 53 45 4c  AS SELECT *,(SEL
90d0: 45 43 54 20 4d 41 58 28 73 2e 64 5f 64 61 74 65  ECT MAX(s.d_date
90e0: 29 20 46 52 4f 4d 20 20 69 6e 74 65 72 65 73 74  ) FROM  interest
90f0: 20 73 20 57 48 45 52 45 20 73 2e 72 64 5f 61 63   s WHERE s.rd_ac
9100: 63 6f 75 6e 74 5f 69 64 3d 61 63 63 6f 75 6e 74  count_id=account
9110: 2e 69 64 29 20 41 53 20 64 5f 4d 41 58 44 41 54  .id) AS d_MAXDAT
9120: 45 2c 20 28 53 45 4c 45 43 54 20 54 4f 54 41 4c  E, (SELECT TOTAL
9130: 28 73 2e 66 5f 43 55 52 52 45 4e 54 41 4d 4f 55  (s.f_CURRENTAMOU
9140: 4e 54 29 20 46 52 4f 4d 20 76 5f 6f 70 65 72 61  NT) FROM v_opera
9150: 74 69 6f 6e 20 73 20 57 48 45 52 45 20 73 2e 72  tion s WHERE s.r
9160: 64 5f 61 63 63 6f 75 6e 74 5f 69 64 3d 61 63 63  d_account_id=acc
9170: 6f 75 6e 74 2e 69 64 20 41 4e 44 20 73 2e 74 5f  ount.id AND s.t_
9180: 74 65 6d 70 6c 61 74 65 3d 27 4e 27 29 20 41 53  template='N') AS
9190: 20 66 5f 43 55 52 52 45 4e 54 41 4d 4f 55 4e 54   f_CURRENTAMOUNT
91a0: 20 46 52 4f 4d 20 61 63 63 6f 75 6e 74 3b 0a 43   FROM account;.C
91b0: 52 45 41 54 45 20 56 49 45 57 20 76 5f 61 63 63  REATE VIEW v_acc
91c0: 6f 75 6e 74 5f 64 65 6c 65 74 65 20 41 53 20 53  ount_delete AS S
91d0: 45 4c 45 43 54 20 2a 2c 20 28 43 41 53 45 20 57  ELECT *, (CASE W
91e0: 48 45 4e 20 45 58 49 53 54 53 28 53 45 4c 45 43  HEN EXISTS(SELEC
91f0: 54 20 31 20 46 52 4f 4d 20 6f 70 65 72 61 74 69  T 1 FROM operati
9200: 6f 6e 20 57 48 45 52 45 20 72 64 5f 61 63 63 6f  on WHERE rd_acco
9210: 75 6e 74 5f 69 64 3d 61 63 63 6f 75 6e 74 2e 69  unt_id=account.i
9220: 64 20 41 4e 44 20 64 5f 64 61 74 65 3c 3e 27 30  d AND d_date<>'0
9230: 30 30 30 2d 30 30 2d 30 30 27 20 41 4e 44 20 74  000-00-00' AND t
9240: 5f 74 65 6d 70 6c 61 74 65 3d 27 4e 27 20 41 4e  _template='N' AN
9250: 44 20 74 5f 73 74 61 74 75 73 3d 27 59 27 29 20  D t_status='Y') 
9260: 54 48 45 4e 20 27 56 6f 75 73 20 6e 27 27 c3 aa  THEN 'Vous n''..
9270: 74 65 73 20 70 61 73 20 61 75 74 6f 72 69 73 c3  tes pas autoris.
9280: a9 20 c3 a0 20 64 c3 a9 74 72 75 69 72 65 20 63  . .. d..truire c
9290: 65 20 63 6f 6d 70 74 65 20 63 61 72 20 69 6c 20  e compte car il 
92a0: 63 6f 6e 74 69 65 6e 74 20 64 65 73 20 6f 70 c3  contient des op.
92b0: a9 72 61 74 69 6f 6e 73 20 72 61 70 70 72 6f 63  .rations rapproc
92c0: 68 c3 a9 65 73 27 20 45 4e 44 29 20 74 5f 64 65  h..es' END) t_de
92d0: 6c 65 74 65 5f 6d 65 73 73 61 67 65 20 46 52 4f  lete_message FRO
92e0: 4d 20 61 63 63 6f 75 6e 74 3b 0a 43 52 45 41 54  M account;.CREAT
92f0: 45 20 56 49 45 57 20 76 5f 62 61 6e 6b 5f 64 69  E VIEW v_bank_di
9300: 73 70 6c 61 79 6e 61 6d 65 20 41 53 20 53 45 4c  splayname AS SEL
9310: 45 43 54 20 2a 2c 20 74 5f 6e 61 6d 65 20 41 53  ECT *, t_name AS
9320: 20 74 5f 64 69 73 70 6c 61 79 6e 61 6d 65 20 46   t_displayname F
9330: 52 4f 4d 20 62 61 6e 6b 3b 0a 43 52 45 41 54 45  ROM bank;.CREATE
9340: 20 56 49 45 57 20 76 5f 61 63 63 6f 75 6e 74 5f   VIEW v_account_
9350: 64 69 73 70 6c 61 79 6e 61 6d 65 20 41 53 20 53  displayname AS S
9360: 45 4c 45 43 54 20 2a 2c 20 28 53 45 4c 45 43 54  ELECT *, (SELECT
9370: 20 74 5f 64 69 73 70 6c 61 79 6e 61 6d 65 20 46   t_displayname F
9380: 52 4f 4d 20 76 5f 62 61 6e 6b 5f 64 69 73 70 6c  ROM v_bank_displ
9390: 61 79 6e 61 6d 65 20 57 48 45 52 45 20 61 63 63  ayname WHERE acc
93a0: 6f 75 6e 74 2e 72 64 5f 62 61 6e 6b 5f 69 64 3d  ount.rd_bank_id=
93b0: 76 5f 62 61 6e 6b 5f 64 69 73 70 6c 61 79 6e 61  v_bank_displayna
93c0: 6d 65 2e 69 64 29 7c 7c 27 2d 27 7c 7c 74 5f 6e  me.id)||'-'||t_n
93d0: 61 6d 65 20 41 53 20 74 5f 64 69 73 70 6c 61 79  ame AS t_display
93e0: 6e 61 6d 65 20 46 52 4f 4d 20 61 63 63 6f 75 6e  name FROM accoun
93f0: 74 3b 0a 43 52 45 41 54 45 20 56 49 45 57 20 76  t;.CREATE VIEW v
9400: 5f 62 61 6e 6b 20 41 53 20 53 45 4c 45 43 54 20  _bank AS SELECT 
9410: 2a 2c 28 53 45 4c 45 43 54 20 54 4f 54 41 4c 28  *,(SELECT TOTAL(
9420: 73 2e 66 5f 43 55 52 52 45 4e 54 41 4d 4f 55 4e  s.f_CURRENTAMOUN
9430: 54 29 20 46 52 4f 4d 20 76 5f 61 63 63 6f 75 6e  T) FROM v_accoun
9440: 74 20 73 20 57 48 45 52 45 20 73 2e 72 64 5f 62  t s WHERE s.rd_b
9450: 61 6e 6b 5f 69 64 3d 62 61 6e 6b 2e 69 64 29 20  ank_id=bank.id) 
9460: 41 53 20 66 5f 43 55 52 52 45 4e 54 41 4d 4f 55  AS f_CURRENTAMOU
9470: 4e 54 20 46 52 4f 4d 20 62 61 6e 6b 3b 0a 43 52  NT FROM bank;.CR
9480: 45 41 54 45 20 56 49 45 57 20 76 5f 63 61 74 65  EATE VIEW v_cate
9490: 67 6f 72 79 5f 64 69 73 70 6c 61 79 6e 61 6d 65  gory_displayname
94a0: 20 41 53 20 53 45 4c 45 43 54 20 2a 2c 20 74 5f   AS SELECT *, t_
94b0: 66 75 6c 6c 6e 61 6d 65 20 41 53 20 74 5f 64 69  fullname AS t_di
94c0: 73 70 6c 61 79 6e 61 6d 65 20 46 52 4f 4d 20 63  splayname FROM c
94d0: 61 74 65 67 6f 72 79 3b 0a 43 52 45 41 54 45 20  ategory;.CREATE 
94e0: 56 49 45 57 20 76 5f 63 61 74 65 67 6f 72 79 20  VIEW v_category 
94f0: 41 53 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  AS SELECT * FROM
9500: 20 63 61 74 65 67 6f 72 79 3b 0a 43 52 45 41 54   category;.CREAT
9510: 45 20 56 49 45 57 20 76 5f 72 65 63 75 72 72 65  E VIEW v_recurre
9520: 6e 74 6f 70 65 72 61 74 69 6f 6e 20 41 53 20 53  ntoperation AS S
9530: 45 4c 45 43 54 20 2a 2c 69 5f 70 65 72 69 6f 64  ELECT *,i_period
9540: 5f 69 6e 63 72 65 6d 65 6e 74 7c 7c 27 20 27 7c  _increment||' '|
9550: 7c 28 43 41 53 45 20 74 5f 70 65 72 69 6f 64 5f  |(CASE t_period_
9560: 75 6e 69 74 20 57 48 45 4e 20 27 59 27 20 54 48  unit WHEN 'Y' TH
9570: 45 4e 20 27 61 6e 6e c3 a9 65 28 73 29 27 20 57  EN 'ann..e(s)' W
9580: 48 45 4e 20 27 4d 27 20 54 48 45 4e 20 27 6d 6f  HEN 'M' THEN 'mo
9590: 69 73 27 20 57 48 45 4e 20 27 57 27 20 54 48 45  is' WHEN 'W' THE
95a0: 4e 20 27 73 65 6d 61 69 6e 65 28 73 29 27 20 45  N 'semaine(s)' E
95b0: 4c 53 45 20 27 6a 6f 75 72 28 73 29 27 20 45 4e  LSE 'jour(s)' EN
95c0: 44 29 20 41 53 20 74 5f 50 45 52 49 4f 44 4e 4c  D) AS t_PERIODNL
95d0: 53 20 46 52 4f 4d 20 72 65 63 75 72 72 65 6e 74  S FROM recurrent
95e0: 6f 70 65 72 61 74 69 6f 6e 3b 0a 43 52 45 41 54  operation;.CREAT
95f0: 45 20 56 49 45 57 20 76 5f 72 65 63 75 72 72 65  E VIEW v_recurre
9600: 6e 74 6f 70 65 72 61 74 69 6f 6e 5f 64 69 73 70  ntoperation_disp
9610: 6c 61 79 6e 61 6d 65 20 41 53 20 53 45 4c 45 43  layname AS SELEC
9620: 54 20 2a 2c 20 53 54 52 46 54 49 4d 45 28 27 25  T *, STRFTIME('%
9630: 64 2f 25 6d 2f 25 59 27 2c 64 5f 64 61 74 65 29  d/%m/%Y',d_date)
9640: 7c 7c 27 20 27 7c 7c 53 55 42 53 54 52 28 28 53  ||' '||SUBSTR((S
9650: 45 4c 45 43 54 20 74 5f 64 69 73 70 6c 61 79 6e  ELECT t_displayn
9660: 61 6d 65 20 46 52 4f 4d 20 76 5f 6f 70 65 72 61  ame FROM v_opera
9670: 74 69 6f 6e 5f 64 69 73 70 6c 61 79 6e 61 6d 65  tion_displayname
9680: 20 57 48 45 52 45 20 76 5f 6f 70 65 72 61 74 69   WHERE v_operati
9690: 6f 6e 5f 64 69 73 70 6c 61 79 6e 61 6d 65 2e 69  on_displayname.i
96a0: 64 3d 76 5f 72 65 63 75 72 72 65 6e 74 6f 70 65  d=v_recurrentope
96b0: 72 61 74 69 6f 6e 2e 72 64 5f 6f 70 65 72 61 74  ration.rd_operat
96c0: 69 6f 6e 5f 69 64 29 2c 20 31 31 29 20 41 53 20  ion_id), 11) AS 
96d0: 74 5f 64 69 73 70 6c 61 79 6e 61 6d 65 20 46 52  t_displayname FR
96e0: 4f 4d 20 76 5f 72 65 63 75 72 72 65 6e 74 6f 70  OM v_recurrentop
96f0: 65 72 61 74 69 6f 6e 3b 0a 43 52 45 41 54 45 20  eration;.CREATE 
9700: 56 49 45 57 20 76 5f 75 6e 69 74 76 61 6c 75 65  VIEW v_unitvalue
9710: 5f 64 69 73 70 6c 61 79 20 41 53 20 53 45 4c 45  _display AS SELE
9720: 43 54 20 2a 2c 49 46 4e 55 4c 4c 28 28 53 45 4c  CT *,IFNULL((SEL
9730: 45 43 54 20 28 43 41 53 45 20 57 48 45 4e 20 73  ECT (CASE WHEN s
9740: 2e 74 5f 73 79 6d 62 6f 6c 21 3d 27 27 20 54 48  .t_symbol!='' TH
9750: 45 4e 20 73 2e 74 5f 73 79 6d 62 6f 6c 20 45 4c  EN s.t_symbol EL
9760: 53 45 20 73 2e 74 5f 6e 61 6d 65 20 45 4e 44 29  SE s.t_name END)
9770: 20 46 52 4f 4d 20 75 6e 69 74 20 73 20 57 48 45   FROM unit s WHE
9780: 52 45 20 73 2e 69 64 3d 28 53 45 4c 45 43 54 20  RE s.id=(SELECT 
9790: 73 32 2e 72 64 5f 75 6e 69 74 5f 69 64 20 46 52  s2.rd_unit_id FR
97a0: 4f 4d 20 75 6e 69 74 20 73 32 20 57 48 45 52 45  OM unit s2 WHERE
97b0: 20 73 32 2e 69 64 3d 75 6e 69 74 76 61 6c 75 65   s2.id=unitvalue
97c0: 2e 72 64 5f 75 6e 69 74 5f 69 64 29 29 2c 27 27  .rd_unit_id)),''
97d0: 29 20 41 53 20 74 5f 55 4e 49 54 2c 53 54 52 46  ) AS t_UNIT,STRF
97e0: 54 49 4d 45 28 27 25 59 2d 25 6d 27 2c 75 6e 69  TIME('%Y-%m',uni
97f0: 74 76 61 6c 75 65 2e 64 5f 64 61 74 65 29 20 41  tvalue.d_date) A
9800: 53 20 64 5f 44 41 54 45 4d 4f 4e 54 48 2c 53 54  S d_DATEMONTH,ST
9810: 52 46 54 49 4d 45 28 27 25 59 27 2c 75 6e 69 74  RFTIME('%Y',unit
9820: 76 61 6c 75 65 2e 64 5f 64 61 74 65 29 20 41 53  value.d_date) AS
9830: 20 64 5f 44 41 54 45 59 45 41 52 20 46 52 4f 4d   d_DATEYEAR FROM
9840: 20 75 6e 69 74 76 61 6c 75 65 3b 0a 43 52 45 41   unitvalue;.CREA
9850: 54 45 20 56 49 45 57 20 76 5f 73 75 62 6f 70 65  TE VIEW v_subope
9860: 72 61 74 69 6f 6e 5f 64 69 73 70 6c 61 79 20 41  ration_display A
9870: 53 20 53 45 4c 45 43 54 20 2a 2c 49 46 4e 55 4c  S SELECT *,IFNUL
9880: 4c 28 28 53 45 4c 45 43 54 20 73 2e 74 5f 66 75  L((SELECT s.t_fu
9890: 6c 6c 6e 61 6d 65 20 46 52 4f 4d 20 63 61 74 65  llname FROM cate
98a0: 67 6f 72 79 20 73 20 57 48 45 52 45 20 73 2e 69  gory s WHERE s.i
98b0: 64 3d 76 5f 73 75 62 6f 70 65 72 61 74 69 6f 6e  d=v_suboperation
98c0: 2e 72 5f 63 61 74 65 67 6f 72 79 5f 69 64 29 2c  .r_category_id),
98d0: 27 27 29 20 41 53 20 74 5f 43 41 54 45 47 4f 52  '') AS t_CATEGOR
98e0: 59 2c 20 49 46 4e 55 4c 4c 28 28 53 45 4c 45 43  Y, IFNULL((SELEC
98f0: 54 20 73 2e 74 5f 6e 61 6d 65 20 46 52 4f 4d 20  T s.t_name FROM 
9900: 72 65 66 75 6e 64 20 73 20 57 48 45 52 45 20 73  refund s WHERE s
9910: 2e 69 64 3d 76 5f 73 75 62 6f 70 65 72 61 74 69  .id=v_suboperati
9920: 6f 6e 2e 72 5f 72 65 66 75 6e 64 5f 69 64 29 2c  on.r_refund_id),
9930: 27 27 29 20 41 53 20 74 5f 52 45 46 55 4e 44 2c  '') AS t_REFUND,
9940: 20 28 43 41 53 45 20 57 48 45 4e 20 76 5f 73 75   (CASE WHEN v_su
9950: 62 6f 70 65 72 61 74 69 6f 6e 2e 66 5f 76 61 6c  boperation.f_val
9960: 75 65 3e 3d 30 20 54 48 45 4e 20 76 5f 73 75 62  ue>=0 THEN v_sub
9970: 6f 70 65 72 61 74 69 6f 6e 2e 66 5f 76 61 6c 75  operation.f_valu
9980: 65 20 45 4c 53 45 20 30 20 45 4e 44 29 20 41 53  e ELSE 0 END) AS
9990: 20 66 5f 56 41 4c 55 45 5f 49 4e 43 4f 4d 45 2c   f_VALUE_INCOME,
99a0: 20 28 43 41 53 45 20 57 48 45 4e 20 76 5f 73 75   (CASE WHEN v_su
99b0: 62 6f 70 65 72 61 74 69 6f 6e 2e 66 5f 76 61 6c  boperation.f_val
99c0: 75 65 3c 3d 30 20 54 48 45 4e 20 76 5f 73 75 62  ue<=0 THEN v_sub
99d0: 6f 70 65 72 61 74 69 6f 6e 2e 66 5f 76 61 6c 75  operation.f_valu
99e0: 65 20 45 4c 53 45 20 30 20 45 4e 44 29 20 41 53  e ELSE 0 END) AS
99f0: 20 66 5f 56 41 4c 55 45 5f 45 58 50 45 4e 53 45   f_VALUE_EXPENSE
9a00: 20 46 52 4f 4d 20 76 5f 73 75 62 6f 70 65 72 61   FROM v_subopera
9a10: 74 69 6f 6e 3b 0a 43 52 45 41 54 45 20 56 49 45  tion;.CREATE VIE
9a20: 57 20 76 5f 73 75 62 6f 70 65 72 61 74 69 6f 6e  W v_suboperation
9a30: 5f 64 69 73 70 6c 61 79 6e 61 6d 65 20 41 53 20  _displayname AS 
9a40: 53 45 4c 45 43 54 20 2a 2c 20 74 5f 43 41 54 45  SELECT *, t_CATE
9a50: 47 4f 52 59 7c 7c 27 20 3a 20 27 7c 7c 66 5f 76  GORY||' : '||f_v
9a60: 61 6c 75 65 20 41 53 20 74 5f 64 69 73 70 6c 61  alue AS t_displa
9a70: 79 6e 61 6d 65 20 46 52 4f 4d 20 76 5f 73 75 62  yname FROM v_sub
9a80: 6f 70 65 72 61 74 69 6f 6e 5f 64 69 73 70 6c 61  operation_displa
9a90: 79 3b 0a 43 52 45 41 54 45 20 56 49 45 57 20 76  y;.CREATE VIEW v
9aa0: 5f 6f 70 65 72 61 74 69 6f 6e 5f 64 69 73 70 6c  _operation_displ
9ab0: 61 79 5f 61 6c 6c 20 41 53 20 53 45 4c 45 43 54  ay_all AS SELECT
9ac0: 20 2a 2c 28 53 45 4c 45 43 54 20 73 2e 74 5f 6e   *,(SELECT s.t_n
9ad0: 61 6d 65 20 46 52 4f 4d 20 61 63 63 6f 75 6e 74  ame FROM account
9ae0: 20 73 20 57 48 45 52 45 20 73 2e 69 64 3d 76 5f   s WHERE s.id=v_
9af0: 6f 70 65 72 61 74 69 6f 6e 2e 72 64 5f 61 63 63  operation.rd_acc
9b00: 6f 75 6e 74 5f 69 64 29 20 41 53 20 74 5f 41 43  ount_id) AS t_AC
9b10: 43 4f 55 4e 54 2c 28 53 45 4c 45 43 54 20 28 43  COUNT,(SELECT (C
9b20: 41 53 45 20 57 48 45 4e 20 73 2e 74 5f 73 79 6d  ASE WHEN s.t_sym
9b30: 62 6f 6c 21 3d 27 27 20 54 48 45 4e 20 73 2e 74  bol!='' THEN s.t
9b40: 5f 73 79 6d 62 6f 6c 20 45 4c 53 45 20 73 2e 74  _symbol ELSE s.t
9b50: 5f 6e 61 6d 65 20 45 4e 44 29 20 46 52 4f 4d 20  _name END) FROM 
9b60: 75 6e 69 74 20 73 20 57 48 45 52 45 20 73 2e 69  unit s WHERE s.i
9b70: 64 3d 76 5f 6f 70 65 72 61 74 69 6f 6e 2e 72 63  d=v_operation.rc
9b80: 5f 75 6e 69 74 5f 69 64 29 20 41 53 20 74 5f 55  _unit_id) AS t_U
9b90: 4e 49 54 2c 28 53 45 4c 45 43 54 20 73 2e 74 5f  NIT,(SELECT s.t_
9ba0: 43 41 54 45 47 4f 52 59 20 46 52 4f 4d 20 76 5f  CATEGORY FROM v_
9bb0: 73 75 62 6f 70 65 72 61 74 69 6f 6e 5f 64 69 73  suboperation_dis
9bc0: 70 6c 61 79 20 73 20 57 48 45 52 45 20 73 2e 69  play s WHERE s.i
9bd0: 64 3d 76 5f 6f 70 65 72 61 74 69 6f 6e 2e 69 5f  d=v_operation.i_
9be0: 4d 4f 53 54 49 4d 50 53 55 42 4f 50 29 20 41 53  MOSTIMPSUBOP) AS
9bf0: 20 74 5f 43 41 54 45 47 4f 52 59 2c 28 53 45 4c   t_CATEGORY,(SEL
9c00: 45 43 54 20 73 2e 74 5f 52 45 46 55 4e 44 20 46  ECT s.t_REFUND F
9c10: 52 4f 4d 20 76 5f 73 75 62 6f 70 65 72 61 74 69  ROM v_suboperati
9c20: 6f 6e 5f 64 69 73 70 6c 61 79 20 73 20 57 48 45  on_display s WHE
9c30: 52 45 20 73 2e 69 64 3d 76 5f 6f 70 65 72 61 74  RE s.id=v_operat
9c40: 69 6f 6e 2e 69 5f 4d 4f 53 54 49 4d 50 53 55 42  ion.i_MOSTIMPSUB
9c50: 4f 50 29 20 41 53 20 74 5f 52 45 46 55 4e 44 2c  OP) AS t_REFUND,
9c60: 28 43 41 53 45 20 57 48 45 4e 20 76 5f 6f 70 65  (CASE WHEN v_ope
9c70: 72 61 74 69 6f 6e 2e 66 5f 51 55 41 4e 54 49 54  ration.f_QUANTIT
9c80: 59 3c 30 20 54 48 45 4e 20 27 2d 27 20 57 48 45  Y<0 THEN '-' WHE
9c90: 4e 20 76 5f 6f 70 65 72 61 74 69 6f 6e 2e 66 5f  N v_operation.f_
9ca0: 51 55 41 4e 54 49 54 59 3d 30 20 54 48 45 4e 20  QUANTITY=0 THEN 
9cb0: 27 27 20 45 4c 53 45 20 27 2b 27 20 45 4e 44 29  '' ELSE '+' END)
9cc0: 20 41 53 20 74 5f 54 59 50 45 45 58 50 45 4e 53   AS t_TYPEEXPENS
9cd0: 45 2c 20 28 43 41 53 45 20 57 48 45 4e 20 76 5f  E, (CASE WHEN v_
9ce0: 6f 70 65 72 61 74 69 6f 6e 2e 66 5f 51 55 41 4e  operation.f_QUAN
9cf0: 54 49 54 59 3c 3d 30 20 54 48 45 4e 20 27 44 c3  TITY<=0 THEN 'D.
9d00: a9 70 65 6e 73 65 27 20 45 4c 53 45 20 27 52 65  .pense' ELSE 'Re
9d10: 76 65 6e 75 27 20 45 4e 44 29 20 41 53 20 74 5f  venu' END) AS t_
9d20: 54 59 50 45 45 58 50 45 4e 53 45 4e 4c 53 2c 20  TYPEEXPENSENLS, 
9d30: 53 54 52 46 54 49 4d 45 28 27 25 59 2d 57 25 57  STRFTIME('%Y-W%W
9d40: 27 2c 76 5f 6f 70 65 72 61 74 69 6f 6e 2e 64 5f  ',v_operation.d_
9d50: 64 61 74 65 29 20 41 53 20 64 5f 44 41 54 45 57  date) AS d_DATEW
9d60: 45 45 4b 2c 53 54 52 46 54 49 4d 45 28 27 25 59  EEK,STRFTIME('%Y
9d70: 2d 25 6d 27 2c 76 5f 6f 70 65 72 61 74 69 6f 6e  -%m',v_operation
9d80: 2e 64 5f 64 61 74 65 29 20 41 53 20 64 5f 44 41  .d_date) AS d_DA
9d90: 54 45 4d 4f 4e 54 48 2c 53 54 52 46 54 49 4d 45  TEMONTH,STRFTIME
9da0: 28 27 25 59 27 2c 76 5f 6f 70 65 72 61 74 69 6f  ('%Y',v_operatio
9db0: 6e 2e 64 5f 64 61 74 65 29 7c 7c 27 2d 51 27 7c  n.d_date)||'-Q'|
9dc0: 7c 28 43 41 53 45 20 57 48 45 4e 20 53 54 52 46  |(CASE WHEN STRF
9dd0: 54 49 4d 45 28 27 25 6d 27 2c 76 5f 6f 70 65 72  TIME('%m',v_oper
9de0: 61 74 69 6f 6e 2e 64 5f 64 61 74 65 29 3c 3d 27  ation.d_date)<='
9df0: 30 33 27 20 54 48 45 4e 20 27 31 27 20 57 48 45  03' THEN '1' WHE
9e00: 4e 20 53 54 52 46 54 49 4d 45 28 27 25 6d 27 2c  N STRFTIME('%m',
9e10: 76 5f 6f 70 65 72 61 74 69 6f 6e 2e 64 5f 64 61  v_operation.d_da
9e20: 74 65 29 3c 3d 27 30 36 27 20 54 48 45 4e 20 27  te)<='06' THEN '
9e30: 32 27 20 57 48 45 4e 20 53 54 52 46 54 49 4d 45  2' WHEN STRFTIME
9e40: 28 27 25 6d 27 2c 76 5f 6f 70 65 72 61 74 69 6f  ('%m',v_operatio
9e50: 6e 2e 64 5f 64 61 74 65 29 3c 3d 27 30 39 27 20  n.d_date)<='09' 
9e60: 54 48 45 4e 20 27 33 27 20 45 4c 53 45 20 27 34  THEN '3' ELSE '4
9e70: 27 20 45 4e 44 29 20 41 53 20 64 5f 44 41 54 45  ' END) AS d_DATE
9e80: 51 55 41 52 54 45 52 2c 20 53 54 52 46 54 49 4d  QUARTER, STRFTIM
9e90: 45 28 27 25 59 27 2c 76 5f 6f 70 65 72 61 74 69  E('%Y',v_operati
9ea0: 6f 6e 2e 64 5f 64 61 74 65 29 7c 7c 27 2d 53 27  on.d_date)||'-S'
9eb0: 7c 7c 28 43 41 53 45 20 57 48 45 4e 20 53 54 52  ||(CASE WHEN STR
9ec0: 46 54 49 4d 45 28 27 25 6d 27 2c 76 5f 6f 70 65  FTIME('%m',v_ope
9ed0: 72 61 74 69 6f 6e 2e 64 5f 64 61 74 65 29 3c 3d  ration.d_date)<=
9ee0: 27 30 36 27 20 54 48 45 4e 20 27 31 27 20 45 4c  '06' THEN '1' EL
9ef0: 53 45 20 27 32 27 20 45 4e 44 29 20 41 53 20 64  SE '2' END) AS d
9f00: 5f 44 41 54 45 53 45 4d 45 53 54 45 52 2c 20 53  _DATESEMESTER, S
9f10: 54 52 46 54 49 4d 45 28 27 25 59 27 2c 76 5f 6f  TRFTIME('%Y',v_o
9f20: 70 65 72 61 74 69 6f 6e 2e 64 5f 64 61 74 65 29  peration.d_date)
9f30: 20 41 53 20 64 5f 44 41 54 45 59 45 41 52 2c 20   AS d_DATEYEAR, 
9f40: 28 53 45 4c 45 43 54 20 63 6f 75 6e 74 28 31 29  (SELECT count(1)
9f50: 20 46 52 4f 4d 20 76 5f 72 65 63 75 72 72 65 6e   FROM v_recurren
9f60: 74 6f 70 65 72 61 74 69 6f 6e 20 73 20 57 48 45  toperation s WHE
9f70: 52 45 20 73 2e 72 64 5f 6f 70 65 72 61 74 69 6f  RE s.rd_operatio
9f80: 6e 5f 69 64 3d 76 5f 6f 70 65 72 61 74 69 6f 6e  n_id=v_operation
9f90: 2e 69 64 29 20 41 53 20 69 5f 4e 42 52 45 43 55  .id) AS i_NBRECU
9fa0: 52 52 45 4e 54 2c 20 20 28 43 41 53 45 20 57 48  RRENT,  (CASE WH
9fb0: 45 4e 20 76 5f 6f 70 65 72 61 74 69 6f 6e 2e 66  EN v_operation.f
9fc0: 5f 51 55 41 4e 54 49 54 59 3e 3d 30 20 54 48 45  _QUANTITY>=0 THE
9fd0: 4e 20 76 5f 6f 70 65 72 61 74 69 6f 6e 2e 66 5f  N v_operation.f_
9fe0: 51 55 41 4e 54 49 54 59 20 45 4c 53 45 20 30 20  QUANTITY ELSE 0 
9ff0: 45 4e 44 29 20 41 53 20 66 5f 51 55 41 4e 54 49  END) AS f_QUANTI
a000: 54 59 5f 49 4e 43 4f 4d 45 2c 20 28 43 41 53 45  TY_INCOME, (CASE
a010: 20 57 48 45 4e 20 76 5f 6f 70 65 72 61 74 69 6f   WHEN v_operatio
a020: 6e 2e 66 5f 51 55 41 4e 54 49 54 59 3c 3d 30 20  n.f_QUANTITY<=0 
a030: 54 48 45 4e 20 76 5f 6f 70 65 72 61 74 69 6f 6e  THEN v_operation
a040: 2e 66 5f 51 55 41 4e 54 49 54 59 20 45 4c 53 45  .f_QUANTITY ELSE
a050: 20 30 20 45 4e 44 29 20 41 53 20 66 5f 51 55 41   0 END) AS f_QUA
a060: 4e 54 49 54 59 5f 45 58 50 45 4e 53 45 2c 20 28  NTITY_EXPENSE, (
a070: 53 45 4c 45 43 54 20 6f 32 2e 66 5f 62 61 6c 61  SELECT o2.f_bala
a080: 6e 63 65 20 46 52 4f 4d 20 6f 70 65 72 61 74 69  nce FROM operati
a090: 6f 6e 62 61 6c 61 6e 63 65 20 6f 32 20 57 48 45  onbalance o2 WHE
a0a0: 52 45 20 6f 32 2e 72 5f 6f 70 65 72 61 74 69 6f  RE o2.r_operatio
a0b0: 6e 5f 69 64 3d 76 5f 6f 70 65 72 61 74 69 6f 6e  n_id=v_operation
a0c0: 2e 69 64 20 29 20 41 53 20 66 5f 42 41 4c 41 4e  .id ) AS f_BALAN
a0d0: 43 45 2c 20 28 43 41 53 45 20 57 48 45 4e 20 76  CE, (CASE WHEN v
a0e0: 5f 6f 70 65 72 61 74 69 6f 6e 2e 66 5f 51 55 41  _operation.f_QUA
a0f0: 4e 54 49 54 59 3e 3d 30 20 54 48 45 4e 20 76 5f  NTITY>=0 THEN v_
a100: 6f 70 65 72 61 74 69 6f 6e 2e 66 5f 43 55 52 52  operation.f_CURR
a110: 45 4e 54 41 4d 4f 55 4e 54 20 45 4c 53 45 20 30  ENTAMOUNT ELSE 0
a120: 20 45 4e 44 29 20 41 53 20 66 5f 43 55 52 52 45   END) AS f_CURRE
a130: 4e 54 41 4d 4f 55 4e 54 5f 49 4e 43 4f 4d 45 2c  NTAMOUNT_INCOME,
a140: 20 28 43 41 53 45 20 57 48 45 4e 20 76 5f 6f 70   (CASE WHEN v_op
a150: 65 72 61 74 69 6f 6e 2e 66 5f 51 55 41 4e 54 49  eration.f_QUANTI
a160: 54 59 3c 3d 30 20 54 48 45 4e 20 76 5f 6f 70 65  TY<=0 THEN v_ope
a170: 72 61 74 69 6f 6e 2e 66 5f 43 55 52 52 45 4e 54  ration.f_CURRENT
a180: 41 4d 4f 55 4e 54 20 45 4c 53 45 20 30 20 45 4e  AMOUNT ELSE 0 EN
a190: 44 29 20 41 53 20 66 5f 43 55 52 52 45 4e 54 41  D) AS f_CURRENTA
a1a0: 4d 4f 55 4e 54 5f 45 58 50 45 4e 53 45 20 46 52  MOUNT_EXPENSE FR
a1b0: 4f 4d 20 76 5f 6f 70 65 72 61 74 69 6f 6e 3b 0a  OM v_operation;.
a1c0: 43 52 45 41 54 45 20 56 49 45 57 20 76 5f 6f 70  CREATE VIEW v_op
a1d0: 65 72 61 74 69 6f 6e 5f 74 65 6d 70 6c 61 74 65  eration_template
a1e0: 5f 64 69 73 70 6c 61 79 20 41 53 20 53 45 4c 45  _display AS SELE
a1f0: 43 54 20 2a 20 46 52 4f 4d 20 76 5f 6f 70 65 72  CT * FROM v_oper
a200: 61 74 69 6f 6e 5f 64 69 73 70 6c 61 79 5f 61 6c  ation_display_al
a210: 6c 20 57 48 45 52 45 20 74 5f 74 65 6d 70 6c 61  l WHERE t_templa
a220: 74 65 3d 27 59 27 3b 0a 43 52 45 41 54 45 20 56  te='Y';.CREATE V
a230: 49 45 57 20 76 5f 6f 70 65 72 61 74 69 6f 6e 5f  IEW v_operation_
a240: 64 69 73 70 6c 61 79 20 41 53 20 53 45 4c 45 43  display AS SELEC
a250: 54 20 2a 20 46 52 4f 4d 20 76 5f 6f 70 65 72 61  T * FROM v_opera
a260: 74 69 6f 6e 5f 64 69 73 70 6c 61 79 5f 61 6c 6c  tion_display_all
a270: 20 57 48 45 52 45 20 64 5f 64 61 74 65 21 3d 27   WHERE d_date!='
a280: 30 30 30 30 2d 30 30 2d 30 30 27 20 41 4e 44 20  0000-00-00' AND 
a290: 74 5f 74 65 6d 70 6c 61 74 65 3d 27 4e 27 3b 0a  t_template='N';.
a2a0: 43 52 45 41 54 45 20 56 49 45 57 20 76 5f 75 6e  CREATE VIEW v_un
a2b0: 69 74 5f 64 69 73 70 6c 61 79 20 41 53 20 53 45  it_display AS SE
a2c0: 4c 45 43 54 20 2a 2c 28 53 45 4c 45 43 54 20 54  LECT *,(SELECT T
a2d0: 4f 54 41 4c 28 6f 2e 66 5f 51 55 41 4e 54 49 54  OTAL(o.f_QUANTIT
a2e0: 59 29 20 46 52 4f 4d 20 76 5f 6f 70 65 72 61 74  Y) FROM v_operat
a2f0: 69 6f 6e 5f 64 69 73 70 6c 61 79 20 6f 20 57 48  ion_display o WH
a300: 45 52 45 20 6f 2e 72 63 5f 75 6e 69 74 5f 69 64  ERE o.rc_unit_id
a310: 3d 76 5f 75 6e 69 74 2e 69 64 29 20 41 53 20 66  =v_unit.id) AS f
a320: 5f 51 55 41 4e 54 49 54 59 4f 57 4e 45 44 20 46  _QUANTITYOWNED F
a330: 52 4f 4d 20 76 5f 75 6e 69 74 3b 0a 43 52 45 41  ROM v_unit;.CREA
a340: 54 45 20 56 49 45 57 20 76 5f 61 63 63 6f 75 6e  TE VIEW v_accoun
a350: 74 5f 64 69 73 70 6c 61 79 20 41 53 20 53 45 4c  t_display AS SEL
a360: 45 43 54 20 28 43 41 53 45 20 74 5f 74 79 70 65  ECT (CASE t_type
a370: 20 57 48 45 4e 20 27 43 27 20 54 48 45 4e 20 27   WHEN 'C' THEN '
a380: 43 6f 75 72 61 6e 74 27 20 57 48 45 4e 20 27 44  Courant' WHEN 'D
a390: 27 20 54 48 45 4e 20 27 43 61 72 74 65 20 64 65  ' THEN 'Carte de
a3a0: 20 63 72 c3 a9 64 69 74 27 20 57 48 45 4e 20 27   cr..dit' WHEN '
a3b0: 41 27 20 54 48 45 4e 20 27 41 63 74 69 66 27 20  A' THEN 'Actif' 
a3c0: 57 48 45 4e 20 27 49 27 20 54 48 45 4e 20 27 49  WHEN 'I' THEN 'I
a3d0: 6e 76 65 73 74 69 73 73 65 6d 65 6e 74 27 20 57  nvestissement' W
a3e0: 48 45 4e 20 27 57 27 20 54 48 45 4e 20 27 50 6f  HEN 'W' THEN 'Po
a3f0: 72 74 65 66 65 75 69 6c 6c 65 27 20 57 48 45 4e  rtefeuille' WHEN
a400: 20 27 4c 27 20 54 48 45 4e 20 27 50 72 c3 aa 74   'L' THEN 'Pr..t
a410: 27 20 57 48 45 4e 20 27 4f 27 20 54 48 45 4e 20  ' WHEN 'O' THEN 
a420: 27 41 75 74 72 65 27 20 45 4e 44 29 20 41 53 20  'Autre' END) AS 
a430: 74 5f 54 59 50 45 4e 4c 53 2c 62 61 6e 6b 2e 74  t_TYPENLS,bank.t
a440: 5f 6e 61 6d 65 20 20 41 53 20 74 5f 42 41 4e 4b  _name  AS t_BANK
a450: 2c 62 61 6e 6b 2e 74 5f 62 61 6e 6b 5f 6e 75 6d  ,bank.t_bank_num
a460: 62 65 72 20 41 53 20 74 5f 42 41 4e 4b 5f 4e 55  ber AS t_BANK_NU
a470: 4d 42 45 52 2c 62 61 6e 6b 2e 74 5f 69 63 6f 6e  MBER,bank.t_icon
a480: 20 41 53 20 74 5f 49 43 4f 4e 2c 76 5f 61 63 63   AS t_ICON,v_acc
a490: 6f 75 6e 74 2e 2a 2c 28 76 5f 61 63 63 6f 75 6e  ount.*,(v_accoun
a4a0: 74 2e 66 5f 43 55 52 52 45 4e 54 41 4d 4f 55 4e  t.f_CURRENTAMOUN
a4b0: 54 2f 28 53 45 4c 45 43 54 20 75 2e 66 5f 43 55  T/(SELECT u.f_CU
a4c0: 52 52 45 4e 54 41 4d 4f 55 4e 54 20 46 52 4f 4d  RRENTAMOUNT FROM
a4d0: 20 76 5f 75 6e 69 74 20 75 2c 20 6f 70 65 72 61   v_unit u, opera
a4e0: 74 69 6f 6e 20 73 20 57 48 45 52 45 20 75 2e 69  tion s WHERE u.i
a4f0: 64 3d 73 2e 72 63 5f 75 6e 69 74 5f 69 64 20 41  d=s.rc_unit_id A
a500: 4e 44 20 73 2e 72 64 5f 61 63 63 6f 75 6e 74 5f  ND s.rd_account_
a510: 69 64 3d 76 5f 61 63 63 6f 75 6e 74 2e 69 64 20  id=v_account.id 
a520: 41 4e 44 20 73 2e 64 5f 64 61 74 65 3d 27 30 30  AND s.d_date='00
a530: 30 30 2d 30 30 2d 30 30 27 29 29 20 41 53 20 66  00-00-00')) AS f
a540: 5f 51 55 41 4e 54 49 54 59 2c 20 28 53 45 4c 45  _QUANTITY, (SELE
a550: 43 54 20 28 43 41 53 45 20 57 48 45 4e 20 75 2e  CT (CASE WHEN u.
a560: 74 5f 73 79 6d 62 6f 6c 21 3d 27 27 20 54 48 45  t_symbol!='' THE
a570: 4e 20 75 2e 74 5f 73 79 6d 62 6f 6c 20 45 4c 53  N u.t_symbol ELS
a580: 45 20 75 2e 74 5f 6e 61 6d 65 20 45 4e 44 29 20  E u.t_name END) 
a590: 46 52 4f 4d 20 75 6e 69 74 20 75 2c 20 6f 70 65  FROM unit u, ope
a5a0: 72 61 74 69 6f 6e 20 73 20 57 48 45 52 45 20 75  ration s WHERE u
a5b0: 2e 69 64 3d 73 2e 72 63 5f 75 6e 69 74 5f 69 64  .id=s.rc_unit_id
a5c0: 20 41 4e 44 20 73 2e 72 64 5f 61 63 63 6f 75 6e   AND s.rd_accoun
a5d0: 74 5f 69 64 3d 76 5f 61 63 63 6f 75 6e 74 2e 69  t_id=v_account.i
a5e0: 64 20 41 4e 44 20 73 2e 64 5f 64 61 74 65 3d 27  d AND s.d_date='
a5f0: 30 30 30 30 2d 30 30 2d 30 30 27 29 20 41 53 20  0000-00-00') AS 
a600: 74 5f 55 4e 49 54 2c 20 28 53 45 4c 45 43 54 20  t_UNIT, (SELECT 
a610: 54 4f 54 41 4c 28 73 2e 66 5f 43 55 52 52 45 4e  TOTAL(s.f_CURREN
a620: 54 41 4d 4f 55 4e 54 29 20 46 52 4f 4d 20 76 5f  TAMOUNT) FROM v_
a630: 6f 70 65 72 61 74 69 6f 6e 20 73 20 57 48 45 52  operation s WHER
a640: 45 20 73 2e 72 64 5f 61 63 63 6f 75 6e 74 5f 69  E s.rd_account_i
a650: 64 3d 76 5f 61 63 63 6f 75 6e 74 2e 69 64 20 41  d=v_account.id A
a660: 4e 44 20 73 2e 74 5f 73 74 61 74 75 73 21 3d 27  ND s.t_status!='
a670: 4e 27 20 41 4e 44 20 73 2e 74 5f 74 65 6d 70 6c  N' AND s.t_templ
a680: 61 74 65 3d 27 4e 27 29 20 41 53 20 66 5f 43 48  ate='N') AS f_CH
a690: 45 43 4b 45 44 2c 20 28 53 45 4c 45 43 54 20 54  ECKED, (SELECT T
a6a0: 4f 54 41 4c 28 73 2e 66 5f 43 55 52 52 45 4e 54  OTAL(s.f_CURRENT
a6b0: 41 4d 4f 55 4e 54 29 20 46 52 4f 4d 20 76 5f 6f  AMOUNT) FROM v_o
a6c0: 70 65 72 61 74 69 6f 6e 20 73 20 57 48 45 52 45  peration s WHERE
a6d0: 20 73 2e 72 64 5f 61 63 63 6f 75 6e 74 5f 69 64   s.rd_account_id
a6e0: 3d 76 5f 61 63 63 6f 75 6e 74 2e 69 64 20 41 4e  =v_account.id AN
a6f0: 44 20 73 2e 74 5f 73 74 61 74 75 73 3d 27 4e 27  D s.t_status='N'
a700: 20 41 4e 44 20 73 2e 74 5f 74 65 6d 70 6c 61 74   AND s.t_templat
a710: 65 3d 27 4e 27 29 20 41 53 20 66 5f 43 4f 4d 49  e='N') AS f_COMI
a720: 4e 47 5f 53 4f 4f 4e 2c 20 28 53 45 4c 45 43 54  NG_SOON, (SELECT
a730: 20 54 4f 54 41 4c 28 73 2e 66 5f 43 55 52 52 45   TOTAL(s.f_CURRE
a740: 4e 54 41 4d 4f 55 4e 54 29 20 46 52 4f 4d 20 76  NTAMOUNT) FROM v
a750: 5f 6f 70 65 72 61 74 69 6f 6e 20 73 20 57 48 45  _operation s WHE
a760: 52 45 20 73 2e 72 64 5f 61 63 63 6f 75 6e 74 5f  RE s.rd_account_
a770: 69 64 3d 76 5f 61 63 63 6f 75 6e 74 2e 69 64 20  id=v_account.id 
a780: 41 4e 44 20 73 2e 64 5f 64 61 74 65 3c 3d 64 61  AND s.d_date<=da
a790: 74 65 28 27 6e 6f 77 27 29 20 41 4e 44 20 73 2e  te('now') AND s.
a7a0: 74 5f 74 65 6d 70 6c 61 74 65 3d 27 4e 27 29 20  t_template='N') 
a7b0: 41 53 20 66 5f 54 4f 44 41 59 41 4d 4f 55 4e 54  AS f_TODAYAMOUNT
a7c0: 2c 20 28 53 45 4c 45 43 54 20 63 6f 75 6e 74 28  , (SELECT count(
a7d0: 31 29 20 46 52 4f 4d 20 76 5f 6f 70 65 72 61 74  1) FROM v_operat
a7e0: 69 6f 6e 5f 64 69 73 70 6c 61 79 20 73 20 57 48  ion_display s WH
a7f0: 45 52 45 20 73 2e 72 64 5f 61 63 63 6f 75 6e 74  ERE s.rd_account
a800: 5f 69 64 3d 76 5f 61 63 63 6f 75 6e 74 2e 69 64  _id=v_account.id
a810: 29 20 41 53 20 69 5f 4e 42 4f 50 45 52 41 54 49  ) AS i_NBOPERATI
a820: 4f 4e 53 2c 20 49 46 4e 55 4c 4c 28 28 53 45 4c  ONS, IFNULL((SEL
a830: 45 43 54 20 73 2e 66 5f 72 61 74 65 20 46 52 4f  ECT s.f_rate FRO
a840: 4d 20 69 6e 74 65 72 65 73 74 20 73 20 57 48 45  M interest s WHE
a850: 52 45 20 73 2e 72 64 5f 61 63 63 6f 75 6e 74 5f  RE s.rd_account_
a860: 69 64 3d 76 5f 61 63 63 6f 75 6e 74 2e 69 64 20  id=v_account.id 
a870: 41 4e 44 20 73 2e 64 5f 64 61 74 65 3d 76 5f 61  AND s.d_date=v_a
a880: 63 63 6f 75 6e 74 2e 64 5f 4d 41 58 44 41 54 45  ccount.d_MAXDATE
a890: 29 2c 30 29 20 41 53 20 66 5f 52 41 54 45 20 46  ),0) AS f_RATE F
a8a0: 52 4f 4d 20 76 5f 61 63 63 6f 75 6e 74 2c 20 62  ROM v_account, b
a8b0: 61 6e 6b 20 57 48 45 52 45 20 62 61 6e 6b 2e 69  ank WHERE bank.i
a8c0: 64 3d 76 5f 61 63 63 6f 75 6e 74 2e 72 64 5f 62  d=v_account.rd_b
a8d0: 61 6e 6b 5f 69 64 3b 0a 43 52 45 41 54 45 20 56  ank_id;.CREATE V
a8e0: 49 45 57 20 76 5f 6f 70 65 72 61 74 69 6f 6e 5f  IEW v_operation_
a8f0: 63 6f 6e 73 6f 6c 69 64 61 74 65 64 20 41 53 20  consolidated AS 
a900: 53 45 4c 45 43 54 20 28 53 45 4c 45 43 54 20 73  SELECT (SELECT s
a910: 2e 74 5f 54 59 50 45 4e 4c 53 20 46 52 4f 4d 20  .t_TYPENLS FROM 
a920: 76 5f 61 63 63 6f 75 6e 74 5f 64 69 73 70 6c 61  v_account_displa
a930: 79 20 73 20 57 48 45 52 45 20 73 2e 69 64 3d 6f  y s WHERE s.id=o
a940: 70 2e 72 64 5f 61 63 63 6f 75 6e 74 5f 69 64 29  p.rd_account_id)
a950: 20 41 53 20 74 5f 41 43 43 4f 55 4e 54 54 59 50   AS t_ACCOUNTTYP
a960: 45 2c 28 53 45 4c 45 43 54 20 75 2e 74 5f 54 59  E,(SELECT u.t_TY
a970: 50 45 4e 4c 53 20 46 52 4f 4d 20 76 5f 75 6e 69  PENLS FROM v_uni
a980: 74 20 75 20 57 48 45 52 45 20 75 2e 69 64 3d 6f  t u WHERE u.id=o
a990: 70 2e 72 63 5f 75 6e 69 74 5f 69 64 29 20 41 53  p.rc_unit_id) AS
a9a0: 20 74 5f 55 4e 49 54 54 59 50 45 2c 73 6f 70 2e   t_UNITTYPE,sop.
a9b0: 69 64 20 41 53 20 69 5f 53 55 42 4f 50 49 44 2c  id AS i_SUBOPID,
a9c0: 20 73 6f 70 2e 72 5f 72 65 66 75 6e 64 5f 69 64   sop.r_refund_id
a9d0: 20 41 53 20 72 5f 72 65 66 75 6e 64 5f 69 64 2c   AS r_refund_id,
a9e0: 20 28 43 41 53 45 20 57 48 45 4e 20 73 6f 70 2e   (CASE WHEN sop.
a9f0: 74 5f 63 6f 6d 6d 65 6e 74 3d 27 27 20 54 48 45  t_comment='' THE
aa00: 4e 20 6f 70 2e 74 5f 63 6f 6d 6d 65 6e 74 20 45  N op.t_comment E
aa10: 4c 53 45 20 73 6f 70 2e 74 5f 63 6f 6d 6d 65 6e  LSE sop.t_commen
aa20: 74 20 45 4e 44 29 20 41 53 20 74 5f 52 45 41 4c  t END) AS t_REAL
aa30: 43 4f 4d 4d 45 4e 54 2c 20 73 6f 70 2e 74 5f 43  COMMENT, sop.t_C
aa40: 41 54 45 47 4f 52 59 20 41 53 20 74 5f 52 45 41  ATEGORY AS t_REA
aa50: 4c 43 41 54 45 47 4f 52 59 2c 20 73 6f 70 2e 74  LCATEGORY, sop.t
aa60: 5f 52 45 46 55 4e 44 20 41 53 20 74 5f 52 45 41  _REFUND AS t_REA
aa70: 4c 52 45 46 55 4e 44 2c 20 73 6f 70 2e 72 5f 63  LREFUND, sop.r_c
aa80: 61 74 65 67 6f 72 79 5f 69 64 20 41 53 20 69 5f  ategory_id AS i_
aa90: 49 44 43 41 54 45 47 4f 52 59 2c 20 28 43 41 53  IDCATEGORY, (CAS
aaa0: 45 20 57 48 45 4e 20 73 6f 70 2e 66 5f 76 61 6c  E WHEN sop.f_val
aab0: 75 65 3c 30 20 54 48 45 4e 20 27 2d 27 20 57 48  ue<0 THEN '-' WH
aac0: 45 4e 20 73 6f 70 2e 66 5f 76 61 6c 75 65 3d 30  EN sop.f_value=0
aad0: 20 54 48 45 4e 20 27 27 20 45 4c 53 45 20 27 2b   THEN '' ELSE '+
aae0: 27 20 45 4e 44 29 20 41 53 20 74 5f 54 59 50 45  ' END) AS t_TYPE
aaf0: 45 58 50 45 4e 53 45 2c 20 28 43 41 53 45 20 57  EXPENSE, (CASE W
ab00: 48 45 4e 20 73 6f 70 2e 66 5f 76 61 6c 75 65 3c  HEN sop.f_value<
ab10: 30 20 54 48 45 4e 20 27 44 c3 a9 70 65 6e 73 65  0 THEN 'D..pense
ab20: 27 20 57 48 45 4e 20 73 6f 70 2e 66 5f 76 61 6c  ' WHEN sop.f_val
ab30: 75 65 3d 30 20 54 48 45 4e 20 27 27 20 45 4c 53  ue=0 THEN '' ELS
ab40: 45 20 27 52 65 76 65 6e 75 27 20 45 4e 44 29 20  E 'Revenu' END) 
ab50: 41 53 20 74 5f 54 59 50 45 45 58 50 45 4e 53 45  AS t_TYPEEXPENSE
ab60: 4e 4c 53 2c 20 73 6f 70 2e 66 5f 76 61 6c 75 65  NLS, sop.f_value
ab70: 20 41 53 20 66 5f 52 45 41 4c 51 55 41 4e 54 49   AS f_REALQUANTI
ab80: 54 59 2c 20 73 6f 70 2e 66 5f 56 41 4c 55 45 5f  TY, sop.f_VALUE_
ab90: 49 4e 43 4f 4d 45 20 41 53 20 66 5f 52 45 41 4c  INCOME AS f_REAL
aba0: 51 55 41 4e 54 49 54 59 5f 49 4e 43 4f 4d 45 2c  QUANTITY_INCOME,
abb0: 20 73 6f 70 2e 66 5f 56 41 4c 55 45 5f 45 58 50   sop.f_VALUE_EXP
abc0: 45 4e 53 45 20 41 53 20 66 5f 52 45 41 4c 51 55  ENSE AS f_REALQU
abd0: 41 4e 54 49 54 59 5f 45 58 50 45 4e 53 45 2c 20  ANTITY_EXPENSE, 
abe0: 28 28 53 45 4c 45 43 54 20 75 2e 66 5f 43 55 52  ((SELECT u.f_CUR
abf0: 52 45 4e 54 41 4d 4f 55 4e 54 20 46 52 4f 4d 20  RENTAMOUNT FROM 
ac00: 76 5f 75 6e 69 74 20 75 20 57 48 45 52 45 20 75  v_unit u WHERE u
ac10: 2e 69 64 3d 6f 70 2e 72 63 5f 75 6e 69 74 5f 69  .id=op.rc_unit_i
ac20: 64 29 2a 73 6f 70 2e 66 5f 76 61 6c 75 65 29 20  d)*sop.f_value) 
ac30: 41 53 20 66 5f 52 45 41 4c 43 55 52 52 45 4e 54  AS f_REALCURRENT
ac40: 41 4d 4f 55 4e 54 2c 20 28 28 53 45 4c 45 43 54  AMOUNT, ((SELECT
ac50: 20 75 2e 66 5f 43 55 52 52 45 4e 54 41 4d 4f 55   u.f_CURRENTAMOU
ac60: 4e 54 20 46 52 4f 4d 20 76 5f 75 6e 69 74 20 75  NT FROM v_unit u
ac70: 20 57 48 45 52 45 20 75 2e 69 64 3d 6f 70 2e 72   WHERE u.id=op.r
ac80: 63 5f 75 6e 69 74 5f 69 64 29 2a 73 6f 70 2e 66  c_unit_id)*sop.f
ac90: 5f 56 41 4c 55 45 5f 49 4e 43 4f 4d 45 29 20 41  _VALUE_INCOME) A
aca0: 53 20 66 5f 52 45 41 4c 43 55 52 52 45 4e 54 41  S f_REALCURRENTA
acb0: 4d 4f 55 4e 54 5f 49 4e 43 4f 4d 45 2c 20 28 28  MOUNT_INCOME, ((
acc0: 53 45 4c 45 43 54 20 75 2e 66 5f 43 55 52 52 45  SELECT u.f_CURRE
acd0: 4e 54 41 4d 4f 55 4e 54 20 46 52 4f 4d 20 76 5f  NTAMOUNT FROM v_
ace0: 75 6e 69 74 20 75 20 57 48 45 52 45 20 75 2e 69  unit u WHERE u.i
acf0: 64 3d 6f 70 2e 72 63 5f 75 6e 69 74 5f 69 64 29  d=op.rc_unit_id)
ad00: 2a 73 6f 70 2e 66 5f 56 41 4c 55 45 5f 45 58 50  *sop.f_VALUE_EXP
ad10: 45 4e 53 45 29 20 41 53 20 66 5f 52 45 41 4c 43  ENSE) AS f_REALC
ad20: 55 52 52 45 4e 54 41 4d 4f 55 4e 54 5f 45 58 50  URRENTAMOUNT_EXP
ad30: 45 4e 53 45 2c 20 6f 70 2e 2a 20 46 52 4f 4d 20  ENSE, op.* FROM 
ad40: 76 5f 6f 70 65 72 61 74 69 6f 6e 5f 64 69 73 70  v_operation_disp
ad50: 6c 61 79 5f 61 6c 6c 20 41 53 20 6f 70 2c 20 76  lay_all AS op, v
ad60: 5f 73 75 62 6f 70 65 72 61 74 69 6f 6e 5f 64 69  _suboperation_di
ad70: 73 70 6c 61 79 20 41 53 20 73 6f 70 20 57 48 45  splay AS sop WHE
ad80: 52 45 20 6f 70 2e 74 5f 74 65 6d 70 6c 61 74 65  RE op.t_template
ad90: 3d 27 4e 27 20 41 4e 44 20 73 6f 70 2e 72 64 5f  ='N' AND sop.rd_
ada0: 6f 70 65 72 61 74 69 6f 6e 5f 69 64 3d 6f 70 2e  operation_id=op.
adb0: 49 44 3b 0a 43 52 45 41 54 45 20 56 49 45 57 20  ID;.CREATE VIEW 
adc0: 76 5f 6f 70 65 72 61 74 69 6f 6e 5f 70 72 6f 70  v_operation_prop
add0: 20 41 53 20 53 45 4c 45 43 54 20 70 2e 69 64 20   AS SELECT p.id 
ade0: 41 53 20 69 5f 50 52 4f 50 50 49 44 2c 20 70 2e  AS i_PROPPID, p.
adf0: 74 5f 6e 61 6d 65 20 41 53 20 69 5f 50 52 4f 50  t_name AS i_PROP
ae00: 50 4e 41 4d 45 2c 20 70 2e 74 5f 76 61 6c 75 65  PNAME, p.t_value
ae10: 20 41 53 20 69 5f 50 52 4f 50 56 41 4c 55 45 2c   AS i_PROPVALUE,
ae20: 20 6f 70 2e 2a 20 46 52 4f 4d 20 76 5f 6f 70 65   op.* FROM v_ope
ae30: 72 61 74 69 6f 6e 5f 63 6f 6e 73 6f 6c 69 64 61  ration_consolida
ae40: 74 65 64 20 41 53 20 6f 70 20 4c 45 46 54 20 4f  ted AS op LEFT O
ae50: 55 54 45 52 20 4a 4f 49 4e 20 70 61 72 61 6d 65  UTER JOIN parame
ae60: 74 65 72 73 20 41 53 20 70 20 4f 4e 20 70 2e 74  ters AS p ON p.t
ae70: 5f 75 75 69 64 5f 70 61 72 65 6e 74 3d 6f 70 2e  _uuid_parent=op.
ae80: 69 64 7c 7c 27 2d 6f 70 65 72 61 74 69 6f 6e 27  id||'-operation'
ae90: 3b 0a 43 52 45 41 54 45 20 56 49 45 57 20 76 5f  ;.CREATE VIEW v_
aea0: 72 65 66 75 6e 64 5f 64 65 6c 65 74 65 20 41 53  refund_delete AS
aeb0: 20 53 45 4c 45 43 54 20 2a 2c 20 28 43 41 53 45   SELECT *, (CASE
aec0: 20 57 48 45 4e 20 45 58 49 53 54 53 28 53 45 4c   WHEN EXISTS(SEL
aed0: 45 43 54 20 31 20 46 52 4f 4d 20 76 5f 6f 70 65  ECT 1 FROM v_ope
aee0: 72 61 74 69 6f 6e 5f 63 6f 6e 73 6f 6c 69 64 61  ration_consolida
aef0: 74 65 64 20 57 48 45 52 45 20 72 5f 72 65 66 75  ted WHERE r_refu
af00: 6e 64 5f 69 64 3d 72 65 66 75 6e 64 2e 69 64 20  nd_id=refund.id 
af10: 41 4e 44 20 74 5f 73 74 61 74 75 73 3d 27 59 27  AND t_status='Y'
af20: 29 20 54 48 45 4e 20 27 56 6f 75 73 20 6e 27 27  ) THEN 'Vous n''
af30: c3 aa 74 65 73 20 70 61 73 20 61 75 74 6f 72 69  ..tes pas autori
af40: 73 c3 a9 20 c3 a0 20 64 c3 a9 74 72 75 69 72 65  s.. .. d..truire
af50: 20 63 65 20 73 75 69 76 65 75 72 20 63 61 72 20   ce suiveur car 
af60: 75 74 69 6c 69 73 c3 a9 20 70 61 72 20 64 65 73  utilis.. par des
af70: 20 6f 70 c3 a9 72 61 74 69 6f 6e 73 20 72 61 70   op..rations rap
af80: 70 72 6f 63 68 c3 a9 65 73 27 20 45 4e 44 29 20  proch..es' END) 
af90: 74 5f 64 65 6c 65 74 65 5f 6d 65 73 73 61 67 65  t_delete_message
afa0: 20 46 52 4f 4d 20 72 65 66 75 6e 64 3b 0a 43 52   FROM refund;.CR
afb0: 45 41 54 45 20 56 49 45 57 20 76 5f 72 65 66 75  EATE VIEW v_refu
afc0: 6e 64 20 41 53 20 53 45 4c 45 43 54 20 2a 2c 20  nd AS SELECT *, 
afd0: 28 53 45 4c 45 43 54 20 54 4f 54 41 4c 28 6f 2e  (SELECT TOTAL(o.
afe0: 66 5f 52 45 41 4c 43 55 52 52 45 4e 54 41 4d 4f  f_REALCURRENTAMO
aff0: 55 4e 54 29 20 46 52 4f 4d 20 76 5f 6f 70 65 72  UNT) FROM v_oper
b000: 61 74 69 6f 6e 5f 63 6f 6e 73 6f 6c 69 64 61 74  ation_consolidat
b010: 65 64 20 6f 20 57 48 45 52 45 20 6f 2e 72 5f 72  ed o WHERE o.r_r
b020: 65 66 75 6e 64 5f 69 64 3d 72 65 66 75 6e 64 2e  efund_id=refund.
b030: 69 64 29 20 41 53 20 66 5f 43 55 52 52 45 4e 54  id) AS f_CURRENT
b040: 41 4d 4f 55 4e 54 20 46 52 4f 4d 20 72 65 66 75  AMOUNT FROM refu
b050: 6e 64 3b 0a 43 52 45 41 54 45 20 56 49 45 57 20  nd;.CREATE VIEW 
b060: 76 5f 72 65 66 75 6e 64 5f 64 69 73 70 6c 61 79  v_refund_display
b070: 20 41 53 20 53 45 4c 45 43 54 20 2a 2c 28 53 45   AS SELECT *,(SE
b080: 4c 45 43 54 20 4d 49 4e 28 6f 2e 64 5f 64 61 74  LECT MIN(o.d_dat
b090: 65 29 20 46 52 4f 4d 20 76 5f 6f 70 65 72 61 74  e) FROM v_operat
b0a0: 69 6f 6e 5f 63 6f 6e 73 6f 6c 69 64 61 74 65 64  ion_consolidated
b0b0: 20 6f 20 57 48 45 52 45 20 6f 2e 72 5f 72 65 66   o WHERE o.r_ref
b0c0: 75 6e 64 5f 69 64 3d 76 5f 72 65 66 75 6e 64 2e  und_id=v_refund.
b0d0: 69 64 29 20 41 53 20 64 5f 46 49 52 53 54 44 41  id) AS d_FIRSTDA
b0e0: 54 45 2c 20 28 53 45 4c 45 43 54 20 4d 41 58 28  TE, (SELECT MAX(
b0f0: 6f 2e 64 5f 64 61 74 65 29 20 46 52 4f 4d 20 76  o.d_date) FROM v
b100: 5f 6f 70 65 72 61 74 69 6f 6e 5f 63 6f 6e 73 6f  _operation_conso
b110: 6c 69 64 61 74 65 64 20 6f 20 57 48 45 52 45 20  lidated o WHERE 
b120: 6f 2e 72 5f 72 65 66 75 6e 64 5f 69 64 3d 76 5f  o.r_refund_id=v_
b130: 72 65 66 75 6e 64 2e 69 64 29 20 41 53 20 64 5f  refund.id) AS d_
b140: 4c 41 53 54 44 41 54 45 20 20 46 52 4f 4d 20 76  LASTDATE  FROM v
b150: 5f 72 65 66 75 6e 64 3b 0a 43 52 45 41 54 45 20  _refund;.CREATE 
b160: 56 49 45 57 20 76 5f 72 65 66 75 6e 64 5f 64 69  VIEW v_refund_di
b170: 73 70 6c 61 79 6e 61 6d 65 20 41 53 20 53 45 4c  splayname AS SEL
b180: 45 43 54 20 2a 2c 20 74 5f 6e 61 6d 65 20 41 53  ECT *, t_name AS
b190: 20 74 5f 64 69 73 70 6c 61 79 6e 61 6d 65 20 46   t_displayname F
b1a0: 52 4f 4d 20 72 65 66 75 6e 64 3b 0a 43 52 45 41  ROM refund;.CREA
b1b0: 54 45 20 56 49 45 57 20 76 5f 70 61 79 65 65 5f  TE VIEW v_payee_
b1c0: 64 65 6c 65 74 65 20 41 53 20 53 45 4c 45 43 54  delete AS SELECT
b1d0: 20 2a 2c 20 28 43 41 53 45 20 57 48 45 4e 20 45   *, (CASE WHEN E
b1e0: 58 49 53 54 53 28 53 45 4c 45 43 54 20 31 20 46  XISTS(SELECT 1 F
b1f0: 52 4f 4d 20 6f 70 65 72 61 74 69 6f 6e 20 57 48  ROM operation WH
b200: 45 52 45 20 72 5f 70 61 79 65 65 5f 69 64 3d 70  ERE r_payee_id=p
b210: 61 79 65 65 2e 69 64 20 41 4e 44 20 74 5f 73 74  ayee.id AND t_st
b220: 61 74 75 73 3d 27 59 27 29 20 54 48 45 4e 20 27  atus='Y') THEN '
b230: 56 6f 75 73 20 6e 27 27 c3 aa 74 65 73 20 70 61  Vous n''..tes pa
b240: 73 20 61 75 74 6f 72 69 73 c3 a9 20 c3 a0 20 64  s autoris.. .. d
b250: c3 a9 74 72 75 69 72 65 20 63 65 20 74 69 65 72  ..truire ce tier
b260: 73 20 63 61 72 20 75 74 69 6c 69 73 c3 a9 20 70  s car utilis.. p
b270: 61 72 20 64 65 73 20 6f 70 c3 a9 72 61 74 69 6f  ar des op..ratio
b280: 6e 73 20 72 61 70 70 72 6f 63 68 c3 a9 65 73 27  ns rapproch..es'
b290: 20 45 4e 44 29 20 74 5f 64 65 6c 65 74 65 5f 6d   END) t_delete_m
b2a0: 65 73 73 61 67 65 20 46 52 4f 4d 20 70 61 79 65  essage FROM paye
b2b0: 65 3b 0a 43 52 45 41 54 45 20 56 49 45 57 20 76  e;.CREATE VIEW v
b2c0: 5f 70 61 79 65 65 20 41 53 20 53 45 4c 45 43 54  _payee AS SELECT
b2d0: 20 2a 2c 20 28 53 45 4c 45 43 54 20 54 4f 54 41   *, (SELECT TOTA
b2e0: 4c 28 6f 2e 66 5f 43 55 52 52 45 4e 54 41 4d 4f  L(o.f_CURRENTAMO
b2f0: 55 4e 54 29 20 46 52 4f 4d 20 76 5f 6f 70 65 72  UNT) FROM v_oper
b300: 61 74 69 6f 6e 20 6f 20 57 48 45 52 45 20 6f 2e  ation o WHERE o.
b310: 72 5f 70 61 79 65 65 5f 69 64 3d 70 61 79 65 65  r_payee_id=payee
b320: 2e 69 64 20 41 4e 44 20 6f 2e 74 5f 74 65 6d 70  .id AND o.t_temp
b330: 6c 61 74 65 3d 27 4e 27 29 20 41 53 20 66 5f 43  late='N') AS f_C
b340: 55 52 52 45 4e 54 41 4d 4f 55 4e 54 20 46 52 4f  URRENTAMOUNT FRO
b350: 4d 20 70 61 79 65 65 3b 0a 43 52 45 41 54 45 20  M payee;.CREATE 
b360: 56 49 45 57 20 76 5f 70 61 79 65 65 5f 64 69 73  VIEW v_payee_dis
b370: 70 6c 61 79 20 41 53 20 53 45 4c 45 43 54 20 2a  play AS SELECT *
b380: 20 20 46 52 4f 4d 20 76 5f 70 61 79 65 65 3b 0a    FROM v_payee;.
b390: 43 52 45 41 54 45 20 56 49 45 57 20 76 5f 70 61  CREATE VIEW v_pa
b3a0: 79 65 65 5f 64 69 73 70 6c 61 79 6e 61 6d 65 20  yee_displayname 
b3b0: 41 53 20 53 45 4c 45 43 54 20 2a 2c 20 74 5f 6e  AS SELECT *, t_n
b3c0: 61 6d 65 20 41 53 20 74 5f 64 69 73 70 6c 61 79  ame AS t_display
b3d0: 6e 61 6d 65 20 46 52 4f 4d 20 70 61 79 65 65 3b  name FROM payee;
b3e0: 0a 43 52 45 41 54 45 20 56 49 45 57 20 76 5f 63  .CREATE VIEW v_c
b3f0: 61 74 65 67 6f 72 79 5f 64 65 6c 65 74 65 20 41  ategory_delete A
b400: 53 20 53 45 4c 45 43 54 20 2a 2c 20 28 43 41 53  S SELECT *, (CAS
b410: 45 20 57 48 45 4e 20 45 58 49 53 54 53 28 53 45  E WHEN EXISTS(SE
b420: 4c 45 43 54 20 31 20 46 52 4f 4d 20 76 5f 6f 70  LECT 1 FROM v_op
b430: 65 72 61 74 69 6f 6e 5f 63 6f 6e 73 6f 6c 69 64  eration_consolid
b440: 61 74 65 64 20 57 48 45 52 45 20 28 74 5f 52 45  ated WHERE (t_RE
b450: 41 4c 43 41 54 45 47 4f 52 59 3d 63 61 74 65 67  ALCATEGORY=categ
b460: 6f 72 79 2e 74 5f 66 75 6c 6c 6e 61 6d 65 20 4f  ory.t_fullname O
b470: 52 20 74 5f 52 45 41 4c 43 41 54 45 47 4f 52 59  R t_REALCATEGORY
b480: 20 6c 69 6b 65 20 63 61 74 65 67 6f 72 79 2e 74   like category.t
b490: 5f 66 75 6c 6c 6e 61 6d 65 7c 7c 27 25 27 29 20  _fullname||'%') 
b4a0: 41 4e 44 20 74 5f 73 74 61 74 75 73 3d 27 59 27  AND t_status='Y'
b4b0: 29 20 54 48 45 4e 20 27 56 6f 75 73 20 6e 27 27  ) THEN 'Vous n''
b4c0: c3 aa 74 65 73 20 70 61 73 20 61 75 74 6f 72 69  ..tes pas autori
b4d0: 73 c3 a9 20 c3 a0 20 64 c3 a9 74 72 75 69 72 65  s.. .. d..truire
b4e0: 20 63 65 74 74 65 20 63 61 74 c3 a9 67 6f 72 69   cette cat..gori
b4f0: 65 20 63 61 72 20 75 74 69 6c 69 73 c3 a9 65 20  e car utilis..e 
b500: 70 61 72 20 64 65 73 20 6f 70 c3 a9 72 61 74 69  par des op..rati
b510: 6f 6e 73 20 72 61 70 70 72 6f 63 68 c3 a9 65 73  ons rapproch..es
b520: 27 20 45 4e 44 29 20 74 5f 64 65 6c 65 74 65 5f  ' END) t_delete_
b530: 6d 65 73 73 61 67 65 20 46 52 4f 4d 20 63 61 74  message FROM cat
b540: 65 67 6f 72 79 3b 0a 43 52 45 41 54 45 20 56 49  egory;.CREATE VI
b550: 45 57 20 76 5f 63 61 74 65 67 6f 72 79 5f 64 69  EW v_category_di
b560: 73 70 6c 61 79 5f 74 6d 70 20 41 53 20 53 45 4c  splay_tmp AS SEL
b570: 45 43 54 20 2a 2c 28 53 45 4c 45 43 54 20 63 6f  ECT *,(SELECT co
b580: 75 6e 74 28 64 69 73 74 69 6e 63 74 28 73 6f 2e  unt(distinct(so.
b590: 72 64 5f 6f 70 65 72 61 74 69 6f 6e 5f 69 64 29  rd_operation_id)
b5a0: 29 20 46 52 4f 4d 20 6f 70 65 72 61 74 69 6f 6e  ) FROM operation
b5b0: 20 6f 2c 20 73 75 62 6f 70 65 72 61 74 69 6f 6e   o, suboperation
b5c0: 20 73 6f 20 57 48 45 52 45 20 73 6f 2e 72 64 5f   so WHERE so.rd_
b5d0: 6f 70 65 72 61 74 69 6f 6e 5f 69 64 3d 6f 2e 69  operation_id=o.i
b5e0: 64 20 41 4e 44 20 73 6f 2e 72 5f 63 61 74 65 67  d AND so.r_categ
b5f0: 6f 72 79 5f 69 64 3d 76 5f 63 61 74 65 67 6f 72  ory_id=v_categor
b600: 79 2e 49 44 20 41 4e 44 20 6f 2e 74 5f 74 65 6d  y.ID AND o.t_tem
b610: 70 6c 61 74 65 3d 27 4e 27 29 20 41 53 20 69 5f  plate='N') AS i_
b620: 4e 42 4f 50 45 52 41 54 49 4f 4e 53 2c 20 28 53  NBOPERATIONS, (S
b630: 45 4c 45 43 54 20 54 4f 54 41 4c 28 6f 2e 66 5f  ELECT TOTAL(o.f_
b640: 52 45 41 4c 43 55 52 52 45 4e 54 41 4d 4f 55 4e  REALCURRENTAMOUN
b650: 54 29 20 46 52 4f 4d 20 76 5f 6f 70 65 72 61 74  T) FROM v_operat
b660: 69 6f 6e 5f 63 6f 6e 73 6f 6c 69 64 61 74 65 64  ion_consolidated
b670: 20 6f 20 57 48 45 52 45 20 6f 2e 69 5f 49 44 43   o WHERE o.i_IDC
b680: 41 54 45 47 4f 52 59 3d 76 5f 63 61 74 65 67 6f  ATEGORY=v_catego
b690: 72 79 2e 49 44 29 20 41 53 20 66 5f 52 45 41 4c  ry.ID) AS f_REAL
b6a0: 43 55 52 52 45 4e 54 41 4d 4f 55 4e 54 20 46 52  CURRENTAMOUNT FR
b6b0: 4f 4d 20 76 5f 63 61 74 65 67 6f 72 79 3b 0a 43  OM v_category;.C
b6c0: 52 45 41 54 45 20 56 49 45 57 20 76 5f 63 61 74  REATE VIEW v_cat
b6d0: 65 67 6f 72 79 5f 64 69 73 70 6c 61 79 20 41 53  egory_display AS
b6e0: 20 53 45 4c 45 43 54 20 2a 2c 66 5f 52 45 41 4c   SELECT *,f_REAL
b6f0: 43 55 52 52 45 4e 54 41 4d 4f 55 4e 54 2b 28 53  CURRENTAMOUNT+(S
b700: 45 4c 45 43 54 20 54 4f 54 41 4c 28 63 2e 66 5f  ELECT TOTAL(c.f_
b710: 52 45 41 4c 43 55 52 52 45 4e 54 41 4d 4f 55 4e  REALCURRENTAMOUN
b720: 54 29 20 46 52 4f 4d 20 76 6d 5f 63 61 74 65 67  T) FROM vm_categ
b730: 6f 72 79 5f 64 69 73 70 6c 61 79 5f 74 6d 70 20  ory_display_tmp 
b740: 63 20 57 48 45 52 45 20 63 2e 74 5f 66 75 6c 6c  c WHERE c.t_full
b750: 6e 61 6d 65 20 4c 49 4b 45 20 76 6d 5f 63 61 74  name LIKE vm_cat
b760: 65 67 6f 72 79 5f 64 69 73 70 6c 61 79 5f 74 6d  egory_display_tm
b770: 70 2e 74 5f 66 75 6c 6c 6e 61 6d 65 7c 7c 27 20  p.t_fullname||' 
b780: 3e 20 25 27 29 20 41 53 20 66 5f 53 55 4d 43 55  > %') AS f_SUMCU
b790: 52 52 45 4e 54 41 4d 4f 55 4e 54 2c 20 69 5f 4e  RRENTAMOUNT, i_N
b7a0: 42 4f 50 45 52 41 54 49 4f 4e 53 2b 28 53 45 4c  BOPERATIONS+(SEL
b7b0: 45 43 54 20 43 41 53 54 28 54 4f 54 41 4c 28 63  ECT CAST(TOTAL(c
b7c0: 2e 69 5f 4e 42 4f 50 45 52 41 54 49 4f 4e 53 29  .i_NBOPERATIONS)
b7d0: 20 41 53 20 49 4e 54 45 47 45 52 29 20 46 52 4f   AS INTEGER) FRO
b7e0: 4d 20 76 6d 5f 63 61 74 65 67 6f 72 79 5f 64 69  M vm_category_di
b7f0: 73 70 6c 61 79 5f 74 6d 70 20 63 20 57 48 45 52  splay_tmp c WHER
b800: 45 20 63 2e 74 5f 66 75 6c 6c 6e 61 6d 65 20 6c  E c.t_fullname l
b810: 69 6b 65 20 76 6d 5f 63 61 74 65 67 6f 72 79 5f  ike vm_category_
b820: 64 69 73 70 6c 61 79 5f 74 6d 70 2e 74 5f 66 75  display_tmp.t_fu
b830: 6c 6c 6e 61 6d 65 7c 7c 27 20 3e 20 25 27 29 20  llname||' > %') 
b840: 41 53 20 69 5f 53 55 4d 4e 42 4f 50 45 52 41 54  AS i_SUMNBOPERAT
b850: 49 4f 4e 53 2c 20 28 43 41 53 45 20 57 48 45 4e  IONS, (CASE WHEN
b860: 20 74 5f 62 6f 6f 6b 6d 61 72 6b 65 64 3d 27 59   t_bookmarked='Y
b870: 27 20 54 48 45 4e 20 27 59 27 20 57 48 45 4e 20  ' THEN 'Y' WHEN 
b880: 45 58 49 53 54 53 28 53 45 4c 45 43 54 20 31 20  EXISTS(SELECT 1 
b890: 46 52 4f 4d 20 63 61 74 65 67 6f 72 79 20 63 20  FROM category c 
b8a0: 57 48 45 52 45 20 63 2e 74 5f 62 6f 6f 6b 6d 61  WHERE c.t_bookma
b8b0: 72 6b 65 64 3d 27 59 27 20 41 4e 44 20 63 2e 74  rked='Y' AND c.t
b8c0: 5f 66 75 6c 6c 6e 61 6d 65 20 6c 69 6b 65 20 76  _fullname like v
b8d0: 6d 5f 63 61 74 65 67 6f 72 79 5f 64 69 73 70 6c  m_category_displ
b8e0: 61 79 5f 74 6d 70 2e 74 5f 66 75 6c 6c 6e 61 6d  ay_tmp.t_fullnam
b8f0: 65 7c 7c 27 20 3e 20 25 27 29 20 54 48 45 4e 20  e||' > %') THEN 
b900: 27 43 27 20 45 4c 53 45 20 27 4e 27 20 45 4e 44  'C' ELSE 'N' END
b910: 29 20 41 53 20 74 5f 48 41 53 42 4f 4f 4b 4d 41  ) AS t_HASBOOKMA
b920: 52 4b 45 44 43 48 49 4c 44 2c 20 28 43 41 53 45  RKEDCHILD, (CASE
b930: 20 57 48 45 4e 20 76 6d 5f 63 61 74 65 67 6f 72   WHEN vm_categor
b940: 79 5f 64 69 73 70 6c 61 79 5f 74 6d 70 2e 66 5f  y_display_tmp.f_
b950: 52 45 41 4c 43 55 52 52 45 4e 54 41 4d 4f 55 4e  REALCURRENTAMOUN
b960: 54 3c 30 20 54 48 45 4e 20 27 2d 27 20 57 48 45  T<0 THEN '-' WHE
b970: 4e 20 76 6d 5f 63 61 74 65 67 6f 72 79 5f 64 69  N vm_category_di
b980: 73 70 6c 61 79 5f 74 6d 70 2e 66 5f 52 45 41 4c  splay_tmp.f_REAL
b990: 43 55 52 52 45 4e 54 41 4d 4f 55 4e 54 3d 30 20  CURRENTAMOUNT=0 
b9a0: 54 48 45 4e 20 27 27 20 45 4c 53 45 20 27 2b 27  THEN '' ELSE '+'
b9b0: 20 45 4e 44 29 20 41 53 20 74 5f 54 59 50 45 45   END) AS t_TYPEE
b9c0: 58 50 45 4e 53 45 2c 28 43 41 53 45 20 57 48 45  XPENSE,(CASE WHE
b9d0: 4e 20 76 6d 5f 63 61 74 65 67 6f 72 79 5f 64 69  N vm_category_di
b9e0: 73 70 6c 61 79 5f 74 6d 70 2e 66 5f 52 45 41 4c  splay_tmp.f_REAL
b9f0: 43 55 52 52 45 4e 54 41 4d 4f 55 4e 54 3c 30 20  CURRENTAMOUNT<0 
ba00: 54 48 45 4e 20 27 44 c3 a9 70 65 6e 73 65 27 20  THEN 'D..pense' 
ba10: 57 48 45 4e 20 76 6d 5f 63 61 74 65 67 6f 72 79  WHEN vm_category
ba20: 5f 64 69 73 70 6c 61 79 5f 74 6d 70 2e 66 5f 52  _display_tmp.f_R
ba30: 45 41 4c 43 55 52 52 45 4e 54 41 4d 4f 55 4e 54  EALCURRENTAMOUNT
ba40: 3d 30 20 54 48 45 4e 20 27 27 20 45 4c 53 45 20  =0 THEN '' ELSE 
ba50: 27 52 65 76 65 6e 75 27 20 45 4e 44 29 20 41 53  'Revenu' END) AS
ba60: 20 74 5f 54 59 50 45 45 58 50 45 4e 53 45 4e 4c   t_TYPEEXPENSENL
ba70: 53 20 46 52 4f 4d 20 76 6d 5f 63 61 74 65 67 6f  S FROM vm_catego
ba80: 72 79 5f 64 69 73 70 6c 61 79 5f 74 6d 70 3b 0a  ry_display_tmp;.
ba90: 43 52 45 41 54 45 20 56 49 45 57 20 76 5f 72 65  CREATE VIEW v_re
baa0: 63 75 72 72 65 6e 74 6f 70 65 72 61 74 69 6f 6e  currentoperation
bab0: 5f 64 69 73 70 6c 61 79 20 41 53 20 53 45 4c 45  _display AS SELE
bac0: 43 54 20 72 6f 70 2e 2a 2c 20 6f 70 2e 74 5f 41  CT rop.*, op.t_A
bad0: 43 43 4f 55 4e 54 2c 20 6f 70 2e 69 5f 6e 75 6d  CCOUNT, op.i_num
bae0: 62 65 72 2c 20 6f 70 2e 74 5f 6d 6f 64 65 2c 20  ber, op.t_mode, 
baf0: 6f 70 2e 69 5f 67 72 6f 75 70 5f 69 64 2c 20 6f  op.i_group_id, o
bb00: 70 2e 74 5f 54 52 41 4e 53 46 45 52 2c 20 6f 70  p.t_TRANSFER, op
bb10: 2e 74 5f 50 41 59 45 45 2c 20 6f 70 2e 74 5f 63  .t_PAYEE, op.t_c
bb20: 6f 6d 6d 65 6e 74 2c 20 6f 70 2e 74 5f 43 41 54  omment, op.t_CAT
bb30: 45 47 4f 52 59 2c 20 6f 70 2e 74 5f 73 74 61 74  EGORY, op.t_stat
bb40: 75 73 2c 20 6f 70 2e 66 5f 43 55 52 52 45 4e 54  us, op.f_CURRENT
bb50: 41 4d 4f 55 4e 54 20 46 52 4f 4d 20 76 5f 72 65  AMOUNT FROM v_re
bb60: 63 75 72 72 65 6e 74 6f 70 65 72 61 74 69 6f 6e  currentoperation
bb70: 20 72 6f 70 2c 20 76 5f 6f 70 65 72 61 74 69 6f   rop, v_operatio
bb80: 6e 5f 64 69 73 70 6c 61 79 5f 61 6c 6c 20 41 53  n_display_all AS
bb90: 20 6f 70 20 57 48 45 52 45 20 72 6f 70 2e 72 64   op WHERE rop.rd
bba0: 5f 6f 70 65 72 61 74 69 6f 6e 5f 69 64 3d 6f 70  _operation_id=op
bbb0: 2e 49 44 3b 0a 43 52 45 41 54 45 20 56 49 45 57  .ID;.CREATE VIEW
bbc0: 20 76 5f 72 75 6c 65 20 41 53 20 53 45 4c 45 43   v_rule AS SELEC
bbd0: 54 20 2a 2c 28 53 45 4c 45 43 54 20 43 4f 55 4e  T *,(SELECT COUN
bbe0: 54 28 31 29 20 46 52 4f 4d 20 72 75 6c 65 20 72  T(1) FROM rule r
bbf0: 20 57 48 45 52 45 20 72 2e 66 5f 73 6f 72 74 6f   WHERE r.f_sorto
bc00: 72 64 65 72 3c 3d 72 75 6c 65 2e 66 5f 73 6f 72  rder<=rule.f_sor
bc10: 74 6f 72 64 65 72 29 20 41 53 20 69 5f 4f 52 44  torder) AS i_ORD
bc20: 45 52 20 46 52 4f 4d 20 72 75 6c 65 3b 0a 43 52  ER FROM rule;.CR
bc30: 45 41 54 45 20 56 49 45 57 20 76 5f 72 75 6c 65  EATE VIEW v_rule
bc40: 5f 64 69 73 70 6c 61 79 6e 61 6d 65 20 41 53 20  _displayname AS 
bc50: 53 45 4c 45 43 54 20 2a 2c 20 74 5f 64 65 66 69  SELECT *, t_defi
bc60: 6e 69 74 69 6f 6e 20 41 53 20 74 5f 64 69 73 70  nition AS t_disp
bc70: 6c 61 79 6e 61 6d 65 20 46 52 4f 4d 20 72 75 6c  layname FROM rul
bc80: 65 3b 0a 43 52 45 41 54 45 20 56 49 45 57 20 76  e;.CREATE VIEW v
bc90: 5f 69 6e 74 65 72 65 73 74 20 41 53 20 53 45 4c  _interest AS SEL
bca0: 45 43 54 20 2a 2c 28 53 45 4c 45 43 54 20 73 2e  ECT *,(SELECT s.
bcb0: 74 5f 6e 61 6d 65 20 46 52 4f 4d 20 61 63 63 6f  t_name FROM acco
bcc0: 75 6e 74 20 73 20 57 48 45 52 45 20 73 2e 69 64  unt s WHERE s.id
bcd0: 3d 69 6e 74 65 72 65 73 74 2e 72 64 5f 61 63 63  =interest.rd_acc
bce0: 6f 75 6e 74 5f 69 64 29 20 41 53 20 74 5f 41 43  ount_id) AS t_AC
bcf0: 43 4f 55 4e 54 20 20 46 52 4f 4d 20 69 6e 74 65  COUNT  FROM inte
bd00: 72 65 73 74 3b 0a 43 52 45 41 54 45 20 56 49 45  rest;.CREATE VIE
bd10: 57 20 76 5f 69 6e 74 65 72 65 73 74 5f 64 69 73  W v_interest_dis
bd20: 70 6c 61 79 6e 61 6d 65 20 41 53 20 53 45 4c 45  playname AS SELE
bd30: 43 54 20 2a 2c 20 53 54 52 46 54 49 4d 45 28 27  CT *, STRFTIME('
bd40: 25 64 2f 25 6d 2f 25 59 27 2c 64 5f 64 61 74 65  %d/%m/%Y',d_date
bd50: 29 7c 7c 27 20 27 7c 7c 66 5f 72 61 74 65 7c 7c  )||' '||f_rate||
bd60: 27 25 27 20 41 53 20 74 5f 64 69 73 70 6c 61 79  '%' AS t_display
bd70: 6e 61 6d 65 20 46 52 4f 4d 20 69 6e 74 65 72 65  name FROM intere
bd80: 73 74 3b 0a 43 52 45 41 54 45 20 56 49 45 57 20  st;.CREATE VIEW 
bd90: 76 5f 62 75 64 67 65 74 72 75 6c 65 20 41 53 20  v_budgetrule AS 
bda0: 53 45 4c 45 43 54 20 2a 2c 20 49 46 4e 55 4c 4c  SELECT *, IFNULL
bdb0: 28 28 53 45 4c 45 43 54 20 73 2e 74 5f 66 75 6c  ((SELECT s.t_ful
bdc0: 6c 6e 61 6d 65 20 46 52 4f 4d 20 63 61 74 65 67  lname FROM categ
bdd0: 6f 72 79 20 73 20 57 48 45 52 45 20 73 2e 69 64  ory s WHERE s.id
bde0: 3d 62 75 64 67 65 74 72 75 6c 65 2e 72 63 5f 63  =budgetrule.rc_c
bdf0: 61 74 65 67 6f 72 79 5f 69 64 29 2c 27 27 29 20  ategory_id),'') 
be00: 41 53 20 74 5f 43 41 54 45 47 4f 52 59 43 4f 4e  AS t_CATEGORYCON
be10: 44 49 54 49 4f 4e 2c 20 49 46 4e 55 4c 4c 28 28  DITION, IFNULL((
be20: 53 45 4c 45 43 54 20 73 2e 74 5f 66 75 6c 6c 6e  SELECT s.t_fulln
be30: 61 6d 65 20 46 52 4f 4d 20 63 61 74 65 67 6f 72  ame FROM categor
be40: 79 20 73 20 57 48 45 52 45 20 73 2e 69 64 3d 62  y s WHERE s.id=b
be50: 75 64 67 65 74 72 75 6c 65 2e 72 63 5f 63 61 74  udgetrule.rc_cat
be60: 65 67 6f 72 79 5f 69 64 5f 74 61 72 67 65 74 29  egory_id_target)
be70: 2c 27 27 29 20 41 53 20 74 5f 43 41 54 45 47 4f  ,'') AS t_CATEGO
be80: 52 59 2c 20 28 43 41 53 45 20 57 48 45 4e 20 62  RY, (CASE WHEN b
be90: 75 64 67 65 74 72 75 6c 65 2e 69 5f 63 6f 6e 64  udgetrule.i_cond
bea0: 69 74 69 6f 6e 3d 2d 31 20 54 48 45 4e 20 27 4e  ition=-1 THEN 'N
beb0: c3 a9 67 61 74 69 66 27 20 57 48 45 4e 20 62 75  ..gatif' WHEN bu
bec0: 64 67 65 74 72 75 6c 65 2e 69 5f 63 6f 6e 64 69  dgetrule.i_condi
bed0: 74 69 6f 6e 3d 31 20 54 48 45 4e 20 27 50 6f 73  tion=1 THEN 'Pos
bee0: 69 74 69 66 27 20 57 48 45 4e 20 62 75 64 67 65  itif' WHEN budge
bef0: 74 72 75 6c 65 2e 69 5f 63 6f 6e 64 69 74 69 6f  trule.i_conditio
bf00: 6e 3d 30 20 54 48 45 4e 20 27 54 6f 75 73 27 20  n=0 THEN 'Tous' 
bf10: 45 4e 44 29 20 41 53 20 74 5f 57 48 45 4e 4e 4c  END) AS t_WHENNL
bf20: 53 2c 20 66 5f 71 75 61 6e 74 69 74 79 7c 7c 28  S, f_quantity||(
bf30: 43 41 53 45 20 57 48 45 4e 20 62 75 64 67 65 74  CASE WHEN budget
bf40: 72 75 6c 65 2e 74 5f 61 62 73 6f 6c 75 74 65 3d  rule.t_absolute=
bf50: 27 4e 27 20 54 48 45 4e 20 27 25 27 20 45 4c 53  'N' THEN '%' ELS
bf60: 45 20 28 53 45 4c 45 43 54 20 74 5f 73 79 6d 62  E (SELECT t_symb
bf70: 6f 6c 20 46 52 4f 4d 20 75 6e 69 74 20 57 48 45  ol FROM unit WHE
bf80: 52 45 20 74 5f 74 79 70 65 3d 27 31 27 29 20 45  RE t_type='1') E
bf90: 4e 44 29 20 41 53 20 74 5f 57 48 41 54 4e 4c 53  ND) AS t_WHATNLS
bfa0: 2c 28 43 41 53 45 20 57 48 45 4e 20 62 75 64 67  ,(CASE WHEN budg
bfb0: 65 74 72 75 6c 65 2e 74 5f 72 75 6c 65 3d 27 4e  etrule.t_rule='N
bfc0: 27 20 54 48 45 4e 20 27 53 75 69 76 61 6e 74 27  ' THEN 'Suivant'
bfd0: 20 57 48 45 4e 20 62 75 64 67 65 74 72 75 6c 65   WHEN budgetrule
bfe0: 2e 74 5f 72 75 6c 65 3d 27 43 27 20 54 48 45 4e  .t_rule='C' THEN
bff0: 20 27 43 6f 75 72 61 6e 74 27 20 57 48 45 4e 20   'Courant' WHEN 
c000: 62 75 64 67 65 74 72 75 6c 65 2e 74 5f 72 75 6c  budgetrule.t_rul
c010: 65 3d 27 59 27 20 54 48 45 4e 20 27 41 6e 6e c3  e='Y' THEN 'Ann.
c020: a9 65 27 20 45 4e 44 29 20 41 53 20 74 5f 52 55  .e' END) AS t_RU
c030: 4c 45 4e 4c 53 20 46 52 4f 4d 20 62 75 64 67 65  LENLS FROM budge
c040: 74 72 75 6c 65 3b 0a 43 52 45 41 54 45 20 56 49  trule;.CREATE VI
c050: 45 57 20 76 5f 62 75 64 67 65 74 72 75 6c 65 5f  EW v_budgetrule_
c060: 64 69 73 70 6c 61 79 20 41 53 20 53 45 4c 45 43  display AS SELEC
c070: 54 20 2a 20 20 46 52 4f 4d 20 76 5f 62 75 64 67  T *  FROM v_budg
c080: 65 74 72 75 6c 65 3b 0a 43 52 45 41 54 45 20 56  etrule;.CREATE V
c090: 49 45 57 20 76 5f 62 75 64 67 65 74 72 75 6c 65  IEW v_budgetrule
c0a0: 5f 64 69 73 70 6c 61 79 6e 61 6d 65 20 41 53 20  _displayname AS 
c0b0: 53 45 4c 45 43 54 20 2a 2c 20 74 5f 57 48 45 4e  SELECT *, t_WHEN
c0c0: 4e 4c 53 7c 7c 27 20 27 7c 7c 74 5f 57 48 41 54  NLS||' '||t_WHAT
c0d0: 4e 4c 53 7c 7c 27 20 27 7c 7c 74 5f 52 55 4c 45  NLS||' '||t_RULE
c0e0: 4e 4c 53 7c 7c 27 20 27 7c 7c 74 5f 43 41 54 45  NLS||' '||t_CATE
c0f0: 47 4f 52 59 20 41 53 20 74 5f 64 69 73 70 6c 61  GORY AS t_displa
c100: 79 6e 61 6d 65 20 46 52 4f 4d 20 76 5f 62 75 64  yname FROM v_bud
c110: 67 65 74 72 75 6c 65 3b 0a 43 52 45 41 54 45 20  getrule;.CREATE 
c120: 56 49 45 57 20 76 5f 62 75 64 67 65 74 5f 74 6d  VIEW v_budget_tm
c130: 70 20 41 53 20 53 45 4c 45 43 54 20 2a 2c 20 49  p AS SELECT *, I
c140: 46 4e 55 4c 4c 28 28 53 45 4c 45 43 54 20 73 2e  FNULL((SELECT s.
c150: 74 5f 66 75 6c 6c 6e 61 6d 65 20 46 52 4f 4d 20  t_fullname FROM 
c160: 63 61 74 65 67 6f 72 79 20 73 20 57 48 45 52 45  category s WHERE
c170: 20 73 2e 69 64 3d 62 75 64 67 65 74 2e 72 63 5f   s.id=budget.rc_
c180: 63 61 74 65 67 6f 72 79 5f 69 64 29 2c 27 27 29  category_id),'')
c190: 20 41 53 20 74 5f 43 41 54 45 47 4f 52 59 2c 20   AS t_CATEGORY, 
c1a0: 28 69 5f 79 65 61 72 7c 7c 28 43 41 53 45 20 57  (i_year||(CASE W
c1b0: 48 45 4e 20 69 5f 6d 6f 6e 74 68 3d 30 20 54 48  HEN i_month=0 TH
c1c0: 45 4e 20 27 27 20 57 48 45 4e 20 69 5f 6d 6f 6e  EN '' WHEN i_mon
c1d0: 74 68 3c 31 30 20 54 48 45 4e 20 27 2d 30 27 7c  th<10 THEN '-0'|
c1e0: 7c 69 5f 6d 6f 6e 74 68 20 45 4c 53 45 20 27 2d  |i_month ELSE '-
c1f0: 27 7c 7c 69 5f 6d 6f 6e 74 68 20 45 4e 44 29 29  '||i_month END))
c200: 20 41 53 20 74 5f 50 45 52 49 4f 44 2c 20 28 53   AS t_PERIOD, (S
c210: 45 4c 45 43 54 20 54 4f 54 41 4c 28 6f 2e 66 5f  ELECT TOTAL(o.f_
c220: 52 45 41 4c 43 55 52 52 45 4e 54 41 4d 4f 55 4e  REALCURRENTAMOUN
c230: 54 29 20 46 52 4f 4d 20 76 5f 6f 70 65 72 61 74  T) FROM v_operat
c240: 69 6f 6e 5f 63 6f 6e 73 6f 6c 69 64 61 74 65 64  ion_consolidated
c250: 20 6f 20 57 48 45 52 45 20 53 54 52 46 54 49 4d   o WHERE STRFTIM
c260: 45 28 27 25 59 27 2c 20 6f 2e 64 5f 64 61 74 65  E('%Y', o.d_date
c270: 29 3d 69 5f 79 65 61 72 20 41 4e 44 20 28 69 5f  )=i_year AND (i_
c280: 6d 6f 6e 74 68 3d 30 20 4f 52 20 53 54 52 46 54  month=0 OR STRFT
c290: 49 4d 45 28 27 25 6d 27 2c 20 6f 2e 64 5f 64 61  IME('%m', o.d_da
c2a0: 74 65 29 3d 69 5f 6d 6f 6e 74 68 29 20 41 4e 44  te)=i_month) AND
c2b0: 20 6f 2e 69 5f 49 44 43 41 54 45 47 4f 52 59 20   o.i_IDCATEGORY 
c2c0: 49 4e 20 28 53 45 4c 45 43 54 20 62 32 2e 69 64  IN (SELECT b2.id
c2d0: 5f 63 61 74 65 67 6f 72 79 20 46 52 4f 4d 20 62  _category FROM b
c2e0: 75 64 67 65 74 63 61 74 65 67 6f 72 79 20 62 32  udgetcategory b2
c2f0: 20 57 48 45 52 45 20 62 32 2e 69 64 3d 62 75 64   WHERE b2.id=bud
c300: 67 65 74 2e 69 64 29 29 20 41 53 20 66 5f 43 55  get.id)) AS f_CU
c310: 52 52 45 4e 54 41 4d 4f 55 4e 54 2c 20 28 53 45  RRENTAMOUNT, (SE
c320: 4c 45 43 54 20 47 52 4f 55 50 5f 43 4f 4e 43 41  LECT GROUP_CONCA
c330: 54 28 76 5f 62 75 64 67 65 74 72 75 6c 65 5f 64  T(v_budgetrule_d
c340: 69 73 70 6c 61 79 6e 61 6d 65 2e 74 5f 64 69 73  isplayname.t_dis
c350: 70 6c 61 79 6e 61 6d 65 2c 27 2c 27 29 20 46 52  playname,',') FR
c360: 4f 4d 20 76 5f 62 75 64 67 65 74 72 75 6c 65 5f  OM v_budgetrule_
c370: 64 69 73 70 6c 61 79 6e 61 6d 65 20 57 48 45 52  displayname WHER
c380: 45 20 28 76 5f 62 75 64 67 65 74 72 75 6c 65 5f  E (v_budgetrule_
c390: 64 69 73 70 6c 61 79 6e 61 6d 65 2e 74 5f 79 65  displayname.t_ye
c3a0: 61 72 5f 63 6f 6e 64 69 74 69 6f 6e 3d 27 4e 27  ar_condition='N'
c3b0: 20 4f 52 20 62 75 64 67 65 74 2e 69 5f 79 65 61   OR budget.i_yea
c3c0: 72 3d 76 5f 62 75 64 67 65 74 72 75 6c 65 5f 64  r=v_budgetrule_d
c3d0: 69 73 70 6c 61 79 6e 61 6d 65 2e 69 5f 79 65 61  isplayname.i_yea
c3e0: 72 29 20 41 4e 44 20 28 76 5f 62 75 64 67 65 74  r) AND (v_budget
c3f0: 72 75 6c 65 5f 64 69 73 70 6c 61 79 6e 61 6d 65  rule_displayname
c400: 2e 74 5f 6d 6f 6e 74 68 5f 63 6f 6e 64 69 74 69  .t_month_conditi
c410: 6f 6e 3d 27 4e 27 20 4f 52 20 62 75 64 67 65 74  on='N' OR budget
c420: 2e 69 5f 6d 6f 6e 74 68 3d 76 5f 62 75 64 67 65  .i_month=v_budge
c430: 74 72 75 6c 65 5f 64 69 73 70 6c 61 79 6e 61 6d  trule_displaynam
c440: 65 2e 69 5f 6d 6f 6e 74 68 29 20 41 4e 44 20 28  e.i_month) AND (
c450: 76 5f 62 75 64 67 65 74 72 75 6c 65 5f 64 69 73  v_budgetrule_dis
c460: 70 6c 61 79 6e 61 6d 65 2e 74 5f 63 61 74 65 67  playname.t_categ
c470: 6f 72 79 5f 63 6f 6e 64 69 74 69 6f 6e 3d 27 4e  ory_condition='N
c480: 27 20 4f 52 20 62 75 64 67 65 74 2e 72 63 5f 63  ' OR budget.rc_c
c490: 61 74 65 67 6f 72 79 5f 69 64 3d 76 5f 62 75 64  ategory_id=v_bud
c4a0: 67 65 74 72 75 6c 65 5f 64 69 73 70 6c 61 79 6e  getrule_displayn
c4b0: 61 6d 65 2e 72 63 5f 63 61 74 65 67 6f 72 79 5f  ame.rc_category_
c4c0: 69 64 29 20 4f 52 44 45 52 20 42 59 20 76 5f 62  id) ORDER BY v_b
c4d0: 75 64 67 65 74 72 75 6c 65 5f 64 69 73 70 6c 61  udgetrule_displa
c4e0: 79 6e 61 6d 65 2e 74 5f 61 62 73 6f 6c 75 74 65  yname.t_absolute
c4f0: 20 44 45 53 43 2c 20 76 5f 62 75 64 67 65 74 72   DESC, v_budgetr
c500: 75 6c 65 5f 64 69 73 70 6c 61 79 6e 61 6d 65 2e  ule_displayname.
c510: 69 64 29 20 41 53 20 74 5f 52 55 4c 45 53 20 46  id) AS t_RULES F
c520: 52 4f 4d 20 62 75 64 67 65 74 3b 0a 43 52 45 41  ROM budget;.CREA
c530: 54 45 20 56 49 45 57 20 76 5f 62 75 64 67 65 74  TE VIEW v_budget
c540: 20 41 53 20 53 45 4c 45 43 54 20 2a 2c 20 28 66   AS SELECT *, (f
c550: 5f 43 55 52 52 45 4e 54 41 4d 4f 55 4e 54 2d 66  _CURRENTAMOUNT-f
c560: 5f 62 75 64 67 65 74 65 64 5f 6d 6f 64 69 66 69  _budgeted_modifi
c570: 65 64 29 20 41 53 20 66 5f 44 45 4c 54 41 42 45  ed) AS f_DELTABE
c580: 46 4f 52 45 54 52 41 4e 53 46 45 52 2c 20 28 66  FORETRANSFER, (f
c590: 5f 43 55 52 52 45 4e 54 41 4d 4f 55 4e 54 2d 66  _CURRENTAMOUNT-f
c5a0: 5f 62 75 64 67 65 74 65 64 5f 6d 6f 64 69 66 69  _budgeted_modifi
c5b0: 65 64 2d 66 5f 74 72 61 6e 73 66 65 72 72 65 64  ed-f_transferred
c5c0: 29 20 41 53 20 66 5f 44 45 4c 54 41 20 46 52 4f  ) AS f_DELTA FRO
c5d0: 4d 20 76 5f 62 75 64 67 65 74 5f 74 6d 70 3b 0a  M v_budget_tmp;.
c5e0: 43 52 45 41 54 45 20 56 49 45 57 20 76 5f 62 75  CREATE VIEW v_bu
c5f0: 64 67 65 74 5f 64 69 73 70 6c 61 79 20 41 53 20  dget_display AS 
c600: 53 45 4c 45 43 54 20 2a 2c 20 28 66 5f 43 55 52  SELECT *, (f_CUR
c610: 52 45 4e 54 41 4d 4f 55 4e 54 2d 66 5f 62 75 64  RENTAMOUNT-f_bud
c620: 67 65 74 65 64 5f 6d 6f 64 69 66 69 65 64 29 20  geted_modified) 
c630: 41 53 20 66 5f 44 45 4c 54 41 42 45 46 4f 52 45  AS f_DELTABEFORE
c640: 54 52 41 4e 53 46 45 52 2c 20 28 66 5f 43 55 52  TRANSFER, (f_CUR
c650: 52 45 4e 54 41 4d 4f 55 4e 54 2d 66 5f 62 75 64  RENTAMOUNT-f_bud
c660: 67 65 74 65 64 5f 6d 6f 64 69 66 69 65 64 2d 66  geted_modified-f
c670: 5f 74 72 61 6e 73 66 65 72 72 65 64 29 20 41 53  _transferred) AS
c680: 20 66 5f 44 45 4c 54 41 20 46 52 4f 4d 20 76 6d   f_DELTA FROM vm
c690: 5f 62 75 64 67 65 74 5f 74 6d 70 3b 0a 43 52 45  _budget_tmp;.CRE
c6a0: 41 54 45 20 56 49 45 57 20 76 5f 62 75 64 67 65  ATE VIEW v_budge
c6b0: 74 5f 64 69 73 70 6c 61 79 6e 61 6d 65 20 41 53  t_displayname AS
c6c0: 20 53 45 4c 45 43 54 20 2a 2c 20 74 5f 43 41 54   SELECT *, t_CAT
c6d0: 45 47 4f 52 59 7c 7c 27 20 27 7c 7c 74 5f 50 45  EGORY||' '||t_PE
c6e0: 52 49 4f 44 7c 7c 27 20 27 7c 7c 66 5f 62 75 64  RIOD||' '||f_bud
c6f0: 67 65 74 65 64 5f 6d 6f 64 69 66 69 65 64 20 41  geted_modified A
c700: 53 20 74 5f 64 69 73 70 6c 61 79 6e 61 6d 65 20  S t_displayname 
c710: 46 52 4f 4d 20 76 5f 62 75 64 67 65 74 3b 0a 43  FROM v_budget;.C
c720: 52 45 41 54 45 20 54 52 49 47 47 45 52 20 66 6b  REATE TRIGGER fk
c730: 64 63 5f 62 61 6e 6b 5f 70 61 72 61 6d 65 74 65  dc_bank_paramete
c740: 72 73 5f 75 75 69 64 20 42 45 46 4f 52 45 20 44  rs_uuid BEFORE D
c750: 45 4c 45 54 45 20 4f 4e 20 62 61 6e 6b 20 46 4f  ELETE ON bank FO
c760: 52 20 45 41 43 48 20 52 4f 57 20 42 45 47 49 4e  R EACH ROW BEGIN
c770: 20 20 20 20 20 44 45 4c 45 54 45 20 46 52 4f 4d       DELETE FROM
c780: 20 70 61 72 61 6d 65 74 65 72 73 20 57 48 45 52   parameters WHER
c790: 45 20 70 61 72 61 6d 65 74 65 72 73 2e 74 5f 75  E parameters.t_u
c7a0: 75 69 64 5f 70 61 72 65 6e 74 3d 4f 4c 44 2e 69  uid_parent=OLD.i
c7b0: 64 7c 7c 27 2d 27 7c 7c 27 62 61 6e 6b 27 3b 20  d||'-'||'bank'; 
c7c0: 45 4e 44 3b 0a 43 52 45 41 54 45 20 54 52 49 47  END;.CREATE TRIG
c7d0: 47 45 52 20 66 6b 64 63 5f 61 63 63 6f 75 6e 74  GER fkdc_account
c7e0: 5f 70 61 72 61 6d 65 74 65 72 73 5f 75 75 69 64  _parameters_uuid
c7f0: 20 42 45 46 4f 52 45 20 44 45 4c 45 54 45 20 4f   BEFORE DELETE O
c800: 4e 20 61 63 63 6f 75 6e 74 20 46 4f 52 20 45 41  N account FOR EA
c810: 43 48 20 52 4f 57 20 42 45 47 49 4e 20 20 20 20  CH ROW BEGIN    
c820: 20 44 45 4c 45 54 45 20 46 52 4f 4d 20 70 61 72   DELETE FROM par
c830: 61 6d 65 74 65 72 73 20 57 48 45 52 45 20 70 61  ameters WHERE pa
c840: 72 61 6d 65 74 65 72 73 2e 74 5f 75 75 69 64 5f  rameters.t_uuid_
c850: 70 61 72 65 6e 74 3d 4f 4c 44 2e 69 64 7c 7c 27  parent=OLD.id||'
c860: 2d 27 7c 7c 27 61 63 63 6f 75 6e 74 27 3b 20 45  -'||'account'; E
c870: 4e 44 3b 0a 43 52 45 41 54 45 20 54 52 49 47 47  ND;.CREATE TRIGG
c880: 45 52 20 66 6b 64 63 5f 75 6e 69 74 5f 70 61 72  ER fkdc_unit_par
c890: 61 6d 65 74 65 72 73 5f 75 75 69 64 20 42 45 46  ameters_uuid BEF
c8a0: 4f 52 45 20 44 45 4c 45 54 45 20 4f 4e 20 75 6e  ORE DELETE ON un
c8b0: 69 74 20 46 4f 52 20 45 41 43 48 20 52 4f 57 20  it FOR EACH ROW 
c8c0: 42 45 47 49 4e 20 20 20 20 20 44 45 4c 45 54 45  BEGIN     DELETE
c8d0: 20 46 52 4f 4d 20 70 61 72 61 6d 65 74 65 72 73   FROM parameters
c8e0: 20 57 48 45 52 45 20 70 61 72 61 6d 65 74 65 72   WHERE parameter
c8f0: 73 2e 74 5f 75 75 69 64 5f 70 61 72 65 6e 74 3d  s.t_uuid_parent=
c900: 4f 4c 44 2e 69 64 7c 7c 27 2d 27 7c 7c 27 75 6e  OLD.id||'-'||'un
c910: 69 74 27 3b 20 45 4e 44 3b 0a 43 52 45 41 54 45  it'; END;.CREATE
c920: 20 54 52 49 47 47 45 52 20 66 6b 64 63 5f 75 6e   TRIGGER fkdc_un
c930: 69 74 76 61 6c 75 65 5f 70 61 72 61 6d 65 74 65  itvalue_paramete
c940: 72 73 5f 75 75 69 64 20 42 45 46 4f 52 45 20 44  rs_uuid BEFORE D
c950: 45 4c 45 54 45 20 4f 4e 20 75 6e 69 74 76 61 6c  ELETE ON unitval
c960: 75 65 20 46 4f 52 20 45 41 43 48 20 52 4f 57 20  ue FOR EACH ROW 
c970: 42 45 47 49 4e 20 20 20 20 20 44 45 4c 45 54 45  BEGIN     DELETE
c980: 20 46 52 4f 4d 20 70 61 72 61 6d 65 74 65 72 73   FROM parameters
c990: 20 57 48 45 52 45 20 70 61 72 61 6d 65 74 65 72   WHERE parameter
c9a0: 73 2e 74 5f 75 75 69 64 5f 70 61 72 65 6e 74 3d  s.t_uuid_parent=
c9b0: 4f 4c 44 2e 69 64 7c 7c 27 2d 27 7c 7c 27 75 6e  OLD.id||'-'||'un
c9c0: 69 74 76 61 6c 75 65 27 3b 20 45 4e 44 3b 0a 43  itvalue'; END;.C
c9d0: 52 45 41 54 45 20 54 52 49 47 47 45 52 20 66 6b  REATE TRIGGER fk
c9e0: 64 63 5f 63 61 74 65 67 6f 72 79 5f 70 61 72 61  dc_category_para
c9f0: 6d 65 74 65 72 73 5f 75 75 69 64 20 42 45 46 4f  meters_uuid BEFO
ca00: 52 45 20 44 45 4c 45 54 45 20 4f 4e 20 63 61 74  RE DELETE ON cat
ca10: 65 67 6f 72 79 20 46 4f 52 20 45 41 43 48 20 52  egory FOR EACH R
ca20: 4f 57 20 42 45 47 49 4e 20 20 20 20 20 44 45 4c  OW BEGIN     DEL
ca30: 45 54 45 20 46 52 4f 4d 20 70 61 72 61 6d 65 74  ETE FROM paramet
ca40: 65 72 73 20 57 48 45 52 45 20 70 61 72 61 6d 65  ers WHERE parame
ca50: 74 65 72 73 2e 74 5f 75 75 69 64 5f 70 61 72 65  ters.t_uuid_pare
ca60: 6e 74 3d 4f 4c 44 2e 69 64 7c 7c 27 2d 27 7c 7c  nt=OLD.id||'-'||
ca70: 27 63 61 74 65 67 6f 72 79 27 3b 20 45 4e 44 3b  'category'; END;
ca80: 0a 43 52 45 41 54 45 20 54 52 49 47 47 45 52 20  .CREATE TRIGGER 
ca90: 66 6b 64 63 5f 6f 70 65 72 61 74 69 6f 6e 5f 70  fkdc_operation_p
caa0: 61 72 61 6d 65 74 65 72 73 5f 75 75 69 64 20 42  arameters_uuid B
cab0: 45 46 4f 52 45 20 44 45 4c 45 54 45 20 4f 4e 20  EFORE DELETE ON 
cac0: 6f 70 65 72 61 74 69 6f 6e 20 46 4f 52 20 45 41  operation FOR EA
cad0: 43 48 20 52 4f 57 20 42 45 47 49 4e 20 20 20 20  CH ROW BEGIN    
cae0: 20 44 45 4c 45 54 45 20 46 52 4f 4d 20 70 61 72   DELETE FROM par
caf0: 61 6d 65 74 65 72 73 20 57 48 45 52 45 20 70 61  ameters WHERE pa
cb00: 72 61 6d 65 74 65 72 73 2e 74 5f 75 75 69 64 5f  rameters.t_uuid_
cb10: 70 61 72 65 6e 74 3d 4f 4c 44 2e 69 64 7c 7c 27  parent=OLD.id||'
cb20: 2d 27 7c 7c 27 6f 70 65 72 61 74 69 6f 6e 27 3b  -'||'operation';
cb30: 20 45 4e 44 3b 0a 43 52 45 41 54 45 20 54 52 49   END;.CREATE TRI
cb40: 47 47 45 52 20 66 6b 64 63 5f 69 6e 74 65 72 65  GGER fkdc_intere
cb50: 73 74 5f 70 61 72 61 6d 65 74 65 72 73 5f 75 75  st_parameters_uu
cb60: 69 64 20 42 45 46 4f 52 45 20 44 45 4c 45 54 45  id BEFORE DELETE
cb70: 20 4f 4e 20 69 6e 74 65 72 65 73 74 20 46 4f 52   ON interest FOR
cb80: 20 45 41 43 48 20 52 4f 57 20 42 45 47 49 4e 20   EACH ROW BEGIN 
cb90: 20 20 20 20 44 45 4c 45 54 45 20 46 52 4f 4d 20      DELETE FROM 
cba0: 70 61 72 61 6d 65 74 65 72 73 20 57 48 45 52 45  parameters WHERE
cbb0: 20 70 61 72 61 6d 65 74 65 72 73 2e 74 5f 75 75   parameters.t_uu
cbc0: 69 64 5f 70 61 72 65 6e 74 3d 4f 4c 44 2e 69 64  id_parent=OLD.id
cbd0: 7c 7c 27 2d 27 7c 7c 27 69 6e 74 65 72 65 73 74  ||'-'||'interest
cbe0: 27 3b 20 45 4e 44 3b 0a 43 52 45 41 54 45 20 54  '; END;.CREATE T
cbf0: 52 49 47 47 45 52 20 66 6b 64 63 5f 73 75 62 6f  RIGGER fkdc_subo
cc00: 70 65 72 61 74 69 6f 6e 5f 70 61 72 61 6d 65 74  peration_paramet
cc10: 65 72 73 5f 75 75 69 64 20 42 45 46 4f 52 45 20  ers_uuid BEFORE 
cc20: 44 45 4c 45 54 45 20 4f 4e 20 73 75 62 6f 70 65  DELETE ON subope
cc30: 72 61 74 69 6f 6e 20 46 4f 52 20 45 41 43 48 20  ration FOR EACH 
cc40: 52 4f 57 20 42 45 47 49 4e 20 20 20 20 20 44 45  ROW BEGIN     DE
cc50: 4c 45 54 45 20 46 52 4f 4d 20 70 61 72 61 6d 65  LETE FROM parame
cc60: 74 65 72 73 20 57 48 45 52 45 20 70 61 72 61 6d  ters WHERE param
cc70: 65 74 65 72 73 2e 74 5f 75 75 69 64 5f 70 61 72  eters.t_uuid_par
cc80: 65 6e 74 3d 4f 4c 44 2e 69 64 7c 7c 27 2d 27 7c  ent=OLD.id||'-'|
cc90: 7c 27 73 75 62 6f 70 65 72 61 74 69 6f 6e 27 3b  |'suboperation';
cca0: 20 45 4e 44 3b 0a 43 52 45 41 54 45 20 54 52 49   END;.CREATE TRI
ccb0: 47 47 45 52 20 66 6b 64 63 5f 72 65 66 75 6e 64  GGER fkdc_refund
ccc0: 5f 70 61 72 61 6d 65 74 65 72 73 5f 75 75 69 64  _parameters_uuid
ccd0: 20 42 45 46 4f 52 45 20 44 45 4c 45 54 45 20 4f   BEFORE DELETE O
cce0: 4e 20 72 65 66 75 6e 64 20 46 4f 52 20 45 41 43  N refund FOR EAC
ccf0: 48 20 52 4f 57 20 42 45 47 49 4e 20 20 20 20 20  H ROW BEGIN     
cd00: 44 45 4c 45 54 45 20 46 52 4f 4d 20 70 61 72 61  DELETE FROM para
cd10: 6d 65 74 65 72 73 20 57 48 45 52 45 20 70 61 72  meters WHERE par
cd20: 61 6d 65 74 65 72 73 2e 74 5f 75 75 69 64 5f 70  ameters.t_uuid_p
cd30: 61 72 65 6e 74 3d 4f 4c 44 2e 69 64 7c 7c 27 2d  arent=OLD.id||'-
cd40: 27 7c 7c 27 72 65 66 75 6e 64 27 3b 20 45 4e 44  '||'refund'; END
cd50: 3b 0a 43 52 45 41 54 45 20 54 52 49 47 47 45 52  ;.CREATE TRIGGER
cd60: 20 66 6b 64 63 5f 70 61 79 65 65 5f 70 61 72 61   fkdc_payee_para
cd70: 6d 65 74 65 72 73 5f 75 75 69 64 20 42 45 46 4f  meters_uuid BEFO
cd80: 52 45 20 44 45 4c 45 54 45 20 4f 4e 20 70 61 79  RE DELETE ON pay
cd90: 65 65 20 46 4f 52 20 45 41 43 48 20 52 4f 57 20  ee FOR EACH ROW 
cda0: 42 45 47 49 4e 20 20 20 20 20 44 45 4c 45 54 45  BEGIN     DELETE
cdb0: 20 46 52 4f 4d 20 70 61 72 61 6d 65 74 65 72 73   FROM parameters
cdc0: 20 57 48 45 52 45 20 70 61 72 61 6d 65 74 65 72   WHERE parameter
cdd0: 73 2e 74 5f 75 75 69 64 5f 70 61 72 65 6e 74 3d  s.t_uuid_parent=
cde0: 4f 4c 44 2e 69 64 7c 7c 27 2d 27 7c 7c 27 70 61  OLD.id||'-'||'pa
cdf0: 79 65 65 27 3b 20 45 4e 44 3b 0a 43 52 45 41 54  yee'; END;.CREAT
ce00: 45 20 54 52 49 47 47 45 52 20 66 6b 64 63 5f 72  E TRIGGER fkdc_r
ce10: 65 63 75 72 72 65 6e 74 6f 70 65 72 61 74 69 6f  ecurrentoperatio
ce20: 6e 5f 70 61 72 61 6d 65 74 65 72 73 5f 75 75 69  n_parameters_uui
ce30: 64 20 42 45 46 4f 52 45 20 44 45 4c 45 54 45 20  d BEFORE DELETE 
ce40: 4f 4e 20 72 65 63 75 72 72 65 6e 74 6f 70 65 72  ON recurrentoper
ce50: 61 74 69 6f 6e 20 46 4f 52 20 45 41 43 48 20 52  ation FOR EACH R
ce60: 4f 57 20 42 45 47 49 4e 20 20 20 20 20 44 45 4c  OW BEGIN     DEL
ce70: 45 54 45 20 46 52 4f 4d 20 70 61 72 61 6d 65 74  ETE FROM paramet
ce80: 65 72 73 20 57 48 45 52 45 20 70 61 72 61 6d 65  ers WHERE parame
ce90: 74 65 72 73 2e 74 5f 75 75 69 64 5f 70 61 72 65  ters.t_uuid_pare
cea0: 6e 74 3d 4f 4c 44 2e 69 64 7c 7c 27 2d 27 7c 7c  nt=OLD.id||'-'||
ceb0: 27 72 65 63 75 72 72 65 6e 74 6f 70 65 72 61 74  'recurrentoperat
cec0: 69 6f 6e 27 3b 20 45 4e 44 3b 0a 43 52 45 41 54  ion'; END;.CREAT
ced0: 45 20 54 52 49 47 47 45 52 20 66 6b 64 63 5f 72  E TRIGGER fkdc_r
cee0: 75 6c 65 5f 70 61 72 61 6d 65 74 65 72 73 5f 75  ule_parameters_u
cef0: 75 69 64 20 42 45 46 4f 52 45 20 44 45 4c 45 54  uid BEFORE DELET
cf00: 45 20 4f 4e 20 72 75 6c 65 20 46 4f 52 20 45 41  E ON rule FOR EA
cf10: 43 48 20 52 4f 57 20 42 45 47 49 4e 20 20 20 20  CH ROW BEGIN    
cf20: 20 44 45 4c 45 54 45 20 46 52 4f 4d 20 70 61 72   DELETE FROM par
cf30: 61 6d 65 74 65 72 73 20 57 48 45 52 45 20 70 61  ameters WHERE pa
cf40: 72 61 6d 65 74 65 72 73 2e 74 5f 75 75 69 64 5f  rameters.t_uuid_
cf50: 70 61 72 65 6e 74 3d 4f 4c 44 2e 69 64 7c 7c 27  parent=OLD.id||'
cf60: 2d 27 7c 7c 27 72 75 6c 65 27 3b 20 45 4e 44 3b  -'||'rule'; END;
cf70: 0a 43 52 45 41 54 45 20 54 52 49 47 47 45 52 20  .CREATE TRIGGER 
cf80: 66 6b 64 63 5f 62 75 64 67 65 74 5f 70 61 72 61  fkdc_budget_para
cf90: 6d 65 74 65 72 73 5f 75 75 69 64 20 42 45 46 4f  meters_uuid BEFO
cfa0: 52 45 20 44 45 4c 45 54 45 20 4f 4e 20 62 75 64  RE DELETE ON bud
cfb0: 67 65 74 20 46 4f 52 20 45 41 43 48 20 52 4f 57  get FOR EACH ROW
cfc0: 20 42 45 47 49 4e 20 20 20 20 20 44 45 4c 45 54   BEGIN     DELET
cfd0: 45 20 46 52 4f 4d 20 70 61 72 61 6d 65 74 65 72  E FROM parameter
cfe0: 73 20 57 48 45 52 45 20 70 61 72 61 6d 65 74 65  s WHERE paramete
cff0: 72 73 2e 74 5f 75 75 69 64 5f 70 61 72 65 6e 74  rs.t_uuid_parent
d000: 3d 4f 4c 44 2e 69 64 7c 7c 27 2d 27 7c 7c 27 62  =OLD.id||'-'||'b
d010: 75 64 67 65 74 27 3b 20 45 4e 44 3b 0a 43 52 45  udget'; END;.CRE
d020: 41 54 45 20 54 52 49 47 47 45 52 20 66 6b 64 63  ATE TRIGGER fkdc
d030: 5f 62 75 64 67 65 74 72 75 6c 65 5f 70 61 72 61  _budgetrule_para
d040: 6d 65 74 65 72 73 5f 75 75 69 64 20 42 45 46 4f  meters_uuid BEFO
d050: 52 45 20 44 45 4c 45 54 45 20 4f 4e 20 62 75 64  RE DELETE ON bud
d060: 67 65 74 72 75 6c 65 20 46 4f 52 20 45 41 43 48  getrule FOR EACH
d070: 20 52 4f 57 20 42 45 47 49 4e 20 20 20 20 20 44   ROW BEGIN     D
d080: 45 4c 45 54 45 20 46 52 4f 4d 20 70 61 72 61 6d  ELETE FROM param
d090: 65 74 65 72 73 20 57 48 45 52 45 20 70 61 72 61  eters WHERE para
d0a0: 6d 65 74 65 72 73 2e 74 5f 75 75 69 64 5f 70 61  meters.t_uuid_pa
d0b0: 72 65 6e 74 3d 4f 4c 44 2e 69 64 7c 7c 27 2d 27  rent=OLD.id||'-'
d0c0: 7c 7c 27 62 75 64 67 65 74 72 75 6c 65 27 3b 20  ||'budgetrule'; 
d0d0: 45 4e 44 3b 0a 43 52 45 41 54 45 20 54 52 49 47  END;.CREATE TRIG
d0e0: 47 45 52 20 63 70 74 5f 63 61 74 65 67 6f 72 79  GER cpt_category
d0f0: 5f 66 75 6c 6c 6e 61 6d 65 31 20 41 46 54 45 52  _fullname1 AFTER
d100: 20 49 4e 53 45 52 54 20 4f 4e 20 63 61 74 65 67   INSERT ON categ
d110: 6f 72 79 20 42 45 47 49 4e 20 55 50 44 41 54 45  ory BEGIN UPDATE
d120: 20 63 61 74 65 67 6f 72 79 20 53 45 54 20 74 5f   category SET t_
d130: 66 75 6c 6c 6e 61 6d 65 3d 43 41 53 45 20 57 48  fullname=CASE WH
d140: 45 4e 20 72 64 5f 63 61 74 65 67 6f 72 79 5f 69  EN rd_category_i
d150: 64 20 49 53 20 4e 55 4c 4c 20 4f 52 20 72 64 5f  d IS NULL OR rd_
d160: 63 61 74 65 67 6f 72 79 5f 69 64 3d 27 27 20 4f  category_id='' O
d170: 52 20 72 64 5f 63 61 74 65 67 6f 72 79 5f 69 64  R rd_category_id
d180: 3d 30 20 54 48 45 4e 20 6e 65 77 2e 74 5f 6e 61  =0 THEN new.t_na
d190: 6d 65 20 45 4c 53 45 20 28 53 45 4c 45 43 54 20  me ELSE (SELECT 
d1a0: 63 2e 74 5f 66 75 6c 6c 6e 61 6d 65 20 46 52 4f  c.t_fullname FRO
d1b0: 4d 20 63 61 74 65 67 6f 72 79 20 63 20 57 48 45  M category c WHE
d1c0: 52 45 20 63 2e 69 64 3d 6e 65 77 2e 72 64 5f 63  RE c.id=new.rd_c
d1d0: 61 74 65 67 6f 72 79 5f 69 64 29 7c 7c 27 20 3e  ategory_id)||' >
d1e0: 20 27 7c 7c 6e 65 77 2e 74 5f 6e 61 6d 65 20 45   '||new.t_name E
d1f0: 4e 44 20 57 48 45 52 45 20 69 64 3d 6e 65 77 2e  ND WHERE id=new.
d200: 69 64 3b 45 4e 44 3b 0a 43 52 45 41 54 45 20 54  id;END;.CREATE T
d210: 52 49 47 47 45 52 20 63 70 74 5f 63 61 74 65 67  RIGGER cpt_categ
d220: 6f 72 79 5f 66 75 6c 6c 6e 61 6d 65 32 20 41 46  ory_fullname2 AF
d230: 54 45 52 20 55 50 44 41 54 45 20 4f 46 20 74 5f  TER UPDATE OF t_
d240: 6e 61 6d 65 2c 20 72 64 5f 63 61 74 65 67 6f 72  name, rd_categor
d250: 79 5f 69 64 20 4f 4e 20 63 61 74 65 67 6f 72 79  y_id ON category
d260: 20 42 45 47 49 4e 20 55 50 44 41 54 45 20 63 61   BEGIN UPDATE ca
d270: 74 65 67 6f 72 79 20 53 45 54 20 74 5f 66 75 6c  tegory SET t_ful
d280: 6c 6e 61 6d 65 3d 43 41 53 45 20 57 48 45 4e 20  lname=CASE WHEN 
d290: 72 64 5f 63 61 74 65 67 6f 72 79 5f 69 64 20 49  rd_category_id I
d2a0: 53 20 4e 55 4c 4c 20 4f 52 20 72 64 5f 63 61 74  S NULL OR rd_cat
d2b0: 65 67 6f 72 79 5f 69 64 3d 27 27 20 4f 52 20 72  egory_id='' OR r
d2c0: 64 5f 63 61 74 65 67 6f 72 79 5f 69 64 3d 30 20  d_category_id=0 
d2d0: 54 48 45 4e 20 6e 65 77 2e 74 5f 6e 61 6d 65 20  THEN new.t_name 
d2e0: 45 4c 53 45 20 28 53 45 4c 45 43 54 20 63 2e 74  ELSE (SELECT c.t
d2f0: 5f 66 75 6c 6c 6e 61 6d 65 20 46 52 4f 4d 20 63  _fullname FROM c
d300: 61 74 65 67 6f 72 79 20 63 20 57 48 45 52 45 20  ategory c WHERE 
d310: 63 2e 69 64 3d 6e 65 77 2e 72 64 5f 63 61 74 65  c.id=new.rd_cate
d320: 67 6f 72 79 5f 69 64 29 7c 7c 27 20 3e 20 27 7c  gory_id)||' > '|
d330: 7c 6e 65 77 2e 74 5f 6e 61 6d 65 20 45 4e 44 20  |new.t_name END 
d340: 57 48 45 52 45 20 69 64 3d 6e 65 77 2e 69 64 3b  WHERE id=new.id;
d350: 55 50 44 41 54 45 20 63 61 74 65 67 6f 72 79 20  UPDATE category 
d360: 53 45 54 20 74 5f 6e 61 6d 65 3d 74 5f 6e 61 6d  SET t_name=t_nam
d370: 65 20 57 48 45 52 45 20 72 64 5f 63 61 74 65 67  e WHERE rd_categ
d380: 6f 72 79 5f 69 64 3d 6e 65 77 2e 69 64 3b 45 4e  ory_id=new.id;EN
d390: 44 3b 0a 43 52 45 41 54 45 20 54 52 49 47 47 45  D;.CREATE TRIGGE
d3a0: 52 20 66 6b 64 63 5f 63 61 74 65 67 6f 72 79 5f  R fkdc_category_
d3b0: 64 65 6c 65 74 65 20 42 45 46 4f 52 45 20 44 45  delete BEFORE DE
d3c0: 4c 45 54 45 20 4f 4e 20 63 61 74 65 67 6f 72 79  LETE ON category
d3d0: 20 46 4f 52 20 45 41 43 48 20 52 4f 57 20 42 45   FOR EACH ROW BE
d3e0: 47 49 4e 20 20 20 20 20 55 50 44 41 54 45 20 73  GIN     UPDATE s
d3f0: 75 62 6f 70 65 72 61 74 69 6f 6e 20 53 45 54 20  uboperation SET 
d400: 72 5f 63 61 74 65 67 6f 72 79 5f 69 64 3d 4f 4c  r_category_id=OL
d410: 44 2e 72 64 5f 63 61 74 65 67 6f 72 79 5f 69 64  D.rd_category_id
d420: 20 57 48 45 52 45 20 72 5f 63 61 74 65 67 6f 72   WHERE r_categor
d430: 79 5f 69 64 3d 4f 4c 44 2e 69 64 3b 20 45 4e 44  y_id=OLD.id; END
d440: 3b 0a 0a 20 20 20 20 20 20 20 53 45 4c 45 43 54  ;..       SELECT
d450: 20 54 4f 54 41 4c 28 66 5f 43 55 52 52 45 4e 54   TOTAL(f_CURRENT
d460: 41 4d 4f 55 4e 54 29 2c 20 64 5f 44 41 54 45 4d  AMOUNT), d_DATEM
d470: 4f 4e 54 48 0a 20 20 20 20 20 20 20 66 72 6f 6d  ONTH.       from
d480: 20 76 5f 6f 70 65 72 61 74 69 6f 6e 5f 64 69 73   v_operation_dis
d490: 70 6c 61 79 0a 20 20 20 20 20 20 20 57 48 45 52  play.       WHER
d4a0: 45 20 64 5f 44 41 54 45 4d 4f 4e 54 48 20 49 4e  E d_DATEMONTH IN
d4b0: 20 28 27 32 30 31 32 2d 30 35 27 2c 20 27 32 30   ('2012-05', '20
d4c0: 31 32 2d 30 34 27 29 0a 20 20 20 20 20 20 20 67  12-04').       g
d4d0: 72 6f 75 70 20 62 79 20 64 5f 44 41 54 45 4d 4f  roup by d_DATEMO
d4e0: 4e 54 48 2c 20 74 5f 54 59 50 45 45 58 50 45 4e  NTH, t_TYPEEXPEN
d4f0: 53 45 3b 0a                                      SE;.