Proyecto

General

Perfil

Funcionalidad #11 » Script-11.sql

SQL todos los módulos sin pagos y cuota - Diego Ovando, 2022-05-24 16:07

 
1
-- m?dulo de socio y admisi?n
2

    
3
create table pais(
4
id int not null,
5
nombre character varying(100) not null,
6
constraint pk_pais primary key(id),
7
constraint uq_pais_nombre unique(nombre)
8
);
9

    
10
create table ciudad(
11
id int not null,
12
nombre character varying(100) not null,
13
pais_id int not null,
14
constraint pk_ciudad primary key(id),
15
constraint fk_ciudad_pais_id foreign key(pais_id) references pais
16
);
17

    
18
create table barrio(
19
id int not null,
20
nombre character varying(100) not null,
21
ciudad_id int not null,
22
constraint pk_barrio primary key(id),
23
constraint fk_barrio_ciudad_id foreign key(ciudad_id) references ciudad(id)
24
);
25

    
26
-- casa propia, alquilada, otros
27
create table tipo_casa(
28
id int not null,
29
nombre character varying(100) not null,
30
constraint pk_tipo_casa primary key(id),
31
constraint uq_tipo_casa_nombre unique(nombre)
32
);
33

    
34
create table actividad_economica(
35
id int not null,
36
nombre character varying(100) not null,
37
constraint pk_actividad_economica primary key(id),
38
constraint uq_actividad_economica_nombre unique(nombre)
39
);
40

    
41
create table nivel_academico(
42
id int not null,
43
nombre character varying(100) not null,
44
constraint pk_nivel_academico primary key(id),
45
constraint uq_nivel_academico_nombre unique(nombre)
46
);
47

    
48
create table estado_civil(
49
id int not null,
50
nombre character varying(100) not null,
51
constraint pk_estado_civil primary key(id),
52
constraint uq_estado_civil_nombre unique(nombre)
53
);
54

    
55
create table profesion(
56
id int not null,
57
nombre character varying(100) not null,
58
constraint pk_profesion primary key(id),
59
constraint uq_profesion_nombre unique(nombre)
60
);
61
-- entidad para cargo publico
62
create table entidad(
63
id int not null,
64
nombre character varying(100) not null,
65
constraint pk_entidad primary key(id),
66
constraint uq_entidad_nombre unique(nombre)
67
);
68

    
69
create table cargo(
70
id int not null,
71
nombre character varying(100) not null,
72
constraint pk_cargo primary key(id),
73
constraint uq_cargo_nombre unique(nombre)
74
);
75

    
76
create table tipo_sociedad(
77
id int not null,
78
nombre character varying(100) not null,
79
constraint pk_tipo_sociedad primary key(id),
80
constraint uq_tipo_sociedad_nombre unique(nombre)
81
);
82

    
83
create table tipo_parentesco(
84
id int not null,
85
nombre character varying(100) not null,
86
constraint pk_tipo_parentesco primary key(id),
87
constraint uq_tipo_parentesco_nombre unique(nombre)
88
);
89

    
90
-- asalariado, informal, jubilado
91
create table tipo_ingreso(
92
id int not null,
93
nombre character varying(100) not null,
94
constraint pk_tipo_ingreso primary key(id),
95
constraint uq_tipo_ingreso_nombre unique(nombre)
96
);
97

    
98
create table estado_socio(
99
id int not null,
100
nombre character varying(100) not null,
101
constraint pk_estado_socio primary key(id),
102
constraint uq_estado_socio_nombre unique(nombre)
103
);
104

    
105
create table estado(
106
id int not null,
107
nombre character varying(100) not null,
108
constraint pk_estado primary key(id),
109
constraint uq_estado unique(nombre)
110
);
111

    
112
-- ci, ruc, pasaporte
113
create table tipo_documento(
114
id int not null,
115
nombre character varying(100) not null,
116
constraint pk_tipo_documento primary key(id),
117
constraint uq_tipo_documento_nombre unique(nombre)
118
);
119

    
120
create table persona(
121
id int not null,
122
nombres_razon_social character varying(100) not null,
123
apellidos character varying(100) not null,
124
tipo_persona char(1) not null,
125
documento_ruc character varying(50) not null,
126
tipo_documento_id int not null,
127
fecha_nacimiento_constitucion date not null,
128
constraint pk_persona primary key(id),
129
constraint ck_persona check ((tipo_persona = ANY (ARRAY['F'::bpchar, 'J'::bpchar]))),
130
constraint fk_persona_tipo_documento_id foreign key(tipo_documento_id) references tipo_documento(id)
131
);
132

    
133
create table socio(
134
id int not null,
135
persona_id int not null,
136
tipo_persona char(1) not null,
137
socio_nro character varying(100) not null,
138
fecha_nacimiento_constitucion date not null,
139
direccion character varying(200) not null,
140
barrio_id int not null,
141
telefonos character varying(50),
142
celular character varying(50),
143
correo_electronico character varying(50),
144
pais_id int not null,
145
tipo_ingreso_id int not null,
146
estado_socio_id int not null,
147
constraint pk_socio primary key(id),
148
constraint fk_socio_persona_id foreign key(persona_id) references persona(id),
149
constraint ck_socio check ((tipo_persona = ANY (ARRAY['F'::bpchar, 'J'::bpchar]))),
150
constraint fk_socio_estado_socio_id foreign key(estado_socio_id) references estado_socio(id),
151
constraint fk_socio_barrio_id foreign key(barrio_id) references barrio(id),
152
constraint fk_socio_tipo_ingreso_id foreign key(tipo_ingreso_id) references tipo_ingreso(id),
153
constraint fk_socio_pais_id foreign key(pais_id) references pais(id)
154
);
155

    
156
create table socio_fisico(
157
id int not null,
158
socio_id int not null,
159
es_funcionario boolean not null,
160
es_directivo boolean not null,
161
extranjero boolean not null,
162
cant_personas_cargo int, 
163
separacion_bienes boolean not null,
164
grupo_sanguineo character varying(20),
165
ciudad_nacimiento_id int not null,
166
nivel_academico_id int not null,
167
profesion_id int not null,
168
nro_carnet_admision character varying(20),
169
estado_civil_id int not null,
170
constraint pk_socio_fisico primary key(id),
171
constraint fk_socio_fisico_socio_id foreign key(socio_id) references socio(id),
172
constraint fk_socio_fisico_nivel_academico_id foreign key(nivel_academico_id) references nivel_academico(id),
173
constraint fk_socio_fisico_profesion_id foreign key(profesion_id) references profesion(id),
174
constraint fk_socio_fisico_ciudad_nacimiento_id foreign key(ciudad_nacimiento_id) references ciudad(id),
175
constraint fk_socio_fisico_estado_civil_id foreign key(estado_civil_id) references estado_civil(id)
176
);
177

    
178
create table socio_fisico_domicilio(
179
id int not null,
180
socio_fisico_id int not null,
181
direccion character varying(200) not null,
182
tipo_casa_id int not null,
183
barrio_id int not null,
184
valor_casa numeric,
185
nro_domicilio character varying(20),
186
constraint pk_socio_fisico_domicilio primary key(id),
187
constraint fk_socio_fisico_domicilio_socio_fisico__id foreign key(socio_fisico_id) references socio_fisico(id),
188
constraint fk_socio_fisico_domicilio_tipo_casa_id foreign key(tipo_casa_id) references tipo_casa(id),
189
constraint fk_socio_fisico_domicilio_barrio_id foreign key(barrio_id) references barrio(id)
190
);
191

    
192
create table socio_fisico_laboral(
193
id int not null,
194
socio_fisico_id int not null,
195
direccion_laboral character varying(200),
196
barrio_id int not null,
197
entidad_id int not null,
198
telefono character varying(50),
199
antiguedad character varying(50),
200
correo character varying(50),
201
activdad_economica_id int not null,
202
actividad_laboral character varying(100),
203
constraint pk_socio_fisico_laboral primary key(id),
204
constraint fk_socio_fisico_laboral_socio_fisico__id foreign key(socio_fisico_id) references socio_fisico(id),
205
constraint fk_socio_fisico_laboral_entidad_id foreign key(entidad_id) references entidad(id),
206
constraint fk_socio_fisico_laboral_barrio_id foreign key(barrio_id) references barrio(id),
207
constraint fk_socio_fisico_laboral_economica_id foreign key(activdad_economica_id) references actividad_economica(id)
208
);
209

    
210
create table persona_expuesta(
211
id int not null,
212
socio_fisico_id int not null,
213
cargo_laboral_id int not null, 
214
cargo_publico boolean not null, 
215
entidad_cargo_publico_id int, 
216
periodo_inicio int, 
217
periodo_fin int,
218
es_conyuge_pariente boolean not null,
219
es_accionista_asociado boolean not null,
220
miembro_gerencia_organizacion boolean not null,
221
es_proveedor_estado boolean not null,
222
registro_informacion_proveedores boolean not null,
223
obs character varying,
224
constraint pk_persona_expuesta primary key(id),
225
constraint fk_persona_expuesta_socio_fisico_id foreign key(socio_fisico_id) references socio_fisico(id),
226
constraint fk_persona_expuesta_cargo_laboral_id foreign key(cargo_laboral_id) references cargo(id),
227
constraint fk_persona_expuesta_entidad_cargo_publico_id foreign key(entidad_cargo_publico_id) references entidad(id)
228
);
229

    
230
create table socio_juridico(
231
id int not null,
232
socio_id int not null,
233
pais_residencia_id int not null,
234
actividad_economica_id int not null,
235
proposito_relacion character varying(100) not null,
236
tipo_sociedad_id int not null,
237
tipo_sociedad_otro character varying(100),
238
cant_sucursales int, 
239
cant_empleados int,
240
url_web character varying(100),
241
constraint pk_socio_juridico primary key(id),
242
constraint fk_socio_juridico_socio_id foreign key(socio_id) references socio(id),
243
constraint fk_socio_juridico_pais_residencia_id foreign key(pais_residencia_id) references pais(id),
244
constraint fk_socio_juridico_actividad_economica_id foreign key(actividad_economica_id) references actividad_economica(id),
245
constraint fk_socio_juridico_tipo_sociedad_id foreign key(tipo_sociedad_id) references tipo_sociedad(id)
246
);
247

    
248
create table accionista(
249
id int not null,
250
socio_juridico_id int not null,
251
persona_id int not null,
252
cargo_id int not null,
253
duracion_mandato character varying(30) not null,
254
direccion_particular character varying(200) not null,
255
telefono character varying(50) not null,
256
constraint pk_accionista primary key(id),
257
constraint fk_accionista_socio_juridico_id foreign key(socio_juridico_id) references socio_juridico(id),
258
constraint fk_accionista_persona_id foreign key(persona_id) references persona(id),
259
constraint fk_accionista_cargo_id foreign key(cargo_id) references cargo(id)
260
);
261

    
262
create table parentesco(
263
id int not null,
264
socio_fisico_id int not null,
265
persona_id int not null,
266
tipo_parentesco_id int not null,
267
ciudad_nacimiento_id int not null,
268
direccion character varying(200),
269
telefono character varying(50),
270
correo character varying(60),
271
nivel_academico_id int,
272
profesion_id int,
273
entidad_laboral_id int,
274
direccion_laboral character varying(200),
275
barrio_laboral_id int,
276
telefono_laboral character varying(50),
277
cargo_laboral_id int,
278
constraint pk_parentesco primary key(id),
279
constraint fk_parentesco_persona_id foreign key(persona_id) references persona(id),
280
constraint fk_parentesco_socio_fisico_id foreign key(socio_fisico_id) references socio_fisico(id),
281
constraint fk_parentesco_tipo_parentesco_id foreign key(tipo_parentesco_id) references tipo_parentesco(id),
282
constraint fk_parentesco_ciudad_nacimiento_id foreign key(ciudad_nacimiento_id) references ciudad(id),
283
constraint fk_parentesco_nivel_academico_id foreign key(nivel_academico_id) references nivel_academico(id),
284
constraint fk_parentesco_profesion_id foreign key(profesion_id) references profesion(id),
285
constraint fk_parentesco_entidad_laboral_id foreign key(entidad_laboral_id) references entidad(id),
286
constraint fk_parentesco_barrio_laboral_id foreign key(barrio_laboral_id) references barrio(id),
287
constraint fk_parentesco_cargo_laboral_id foreign key(cargo_laboral_id) references cargo(id)
288
);
289

    
290
create table inmueble(
291
id int not null,
292
socio_id int not null,
293
ciudad_id int not null,
294
finca_nro character varying(50) not null,
295
hipotecado boolean not null,
296
edificado boolean not null,
297
valor_actual numeric not null,
298
cta_cte_catastral character varying(50) not null,
299
superficie_terreno numeric,
300
superficie_edificio numeric,
301
a_nombre_de character varying(100) not null,
302
url_google_maps character varying(200) not null,
303
latitud character varying(50),
304
longitud character varying(50),
305
constraint pk_inmueble primary key(id),
306
constraint fk_inmueble_socio_id foreign key(socio_id) references socio(id),
307
constraint fk_inmueble_ciudad_id foreign key(ciudad_id) references ciudad(id)
308
);
309

    
310
create table tipo_vehiculo(
311
id int not null,
312
nombre character varying(100) not null,
313
constraint pk_tipo_vehiculo primary key(id),
314
constraint uq_tipo_vehiculo unique(nombre));
315

    
316
create table marca(
317
id int not null,
318
nombre character varying(100) not null,
319
constraint pk_marca primary key(id),
320
constraint uq_marca unique(nombre));
321

    
322
create table rodado(
323
id int not null,
324
socio_id int not null,
325
tipo_vehiculo_id int not null,
326
marca_id int not null,
327
modelo character varying(50) not null,
328
a?o_fabricacion int not null,
329
prendado boolean not null,
330
asegurado boolean not null,
331
valor_actual numeric not null,
332
constraint pk_rodado primary key(id),
333
constraint fk_rodado_socio_id foreign key(socio_id) references socio(id),
334
constraint fk_rodado_tipo_vehiculo_id foreign key(tipo_vehiculo_id) references tipo_vehiculo(id),
335
constraint fk_rodado_marca_id foreign key(marca_id) references marca(id)
336
);
337

    
338
create table cuentas_externas(
339
id int not null,
340
socio_id int not null,
341
entidad_financiera_id int not null,
342
porcentaje_participacion int,
343
nro_cuenta character varying(50) not null,
344
valor numeric not null,
345
modalidad character varying(50) not null,
346
vencimiento date,
347
constraint pk_cuentas_externas primary key(id),
348
constraint fk_cuentas_externas_socio_id foreign key(socio_id) references socio(id),
349
constraint fk_cuentas_externas_entidad_financiera_id foreign key(entidad_financiera_id) references entidad(id));
350

    
351
create table otros_bienes(
352
id int not null,
353
socio_id int not null,
354
descripcion character varying(100) not null,
355
valor numeric not null,
356
constraint pk_otros_bienes primary key(id),
357
constraint fk_otros_bienes_socio_id foreign key(socio_id) references socio(id)
358
);
359

    
360
create table deudas_externas(
361
id int not null,
362
socio_id int not null,
363
entidad_financiera_id int not null,
364
vencimiento date,
365
nro_cuota int,
366
garant?a numeric,
367
deuda_inicial numeric,
368
saldo numeric,
369
constraint pk_deudas_externas primary key(id),
370
constraint fk_deudas_externas_socio_id foreign key(socio_id) references socio(id),
371
constraint fk_deudas_externas_entidad_financiera_id foreign key(entidad_financiera_id) references entidad(id)
372
);
373

    
374
create table referencias(
375
id int not null,
376
socio_id int not null,
377
nombre_completo character varying(100) not null,
378
telefono character varying(50) not null,
379
entidad_id int not null,
380
constraint pk_referencias primary key(id),
381
constraint fk_referencias_socio_id foreign key(socio_id) references socio(id),
382
constraint fk_referencias_entidad_id foreign key(entidad_id) references entidad(id)
383
);
384

    
385
create table deudas_hipotecarias(
386
id int not null,
387
socio_id int not null,
388
nombre_apellido_acreedor character varying(500) not null,
389
objeto_prendario character varying(50) not null,
390
vencimiento date, 
391
importe_deuda numeric,
392
constraint pk_deudas_hipotecarias primary key(id),
393
constraint fk_deudas_hipotecarias_socio_id foreign key(socio_id) references socio(id)
394
);
395

    
396
create table concepto_renta(
397
id int not null,
398
nombre character varying(100) not null,
399
egreso boolean not null,
400
constraint pk_concepto_renta primary key(id),
401
constraint uq_concepto_renta_nombre unique(nombre)
402
);
403

    
404
create table renta_mensual(
405
id int not null,
406
socio_id int not null,
407
concepto_renta_id int not null,
408
importe numeric not null,
409
constraint pk_renta_mensual primary key(id),
410
constraint fk_renta_mensual_socio_id foreign key(socio_id) references socio(id),
411
constraint fk_renta_mensual_concepto_renta_id foreign key(concepto_renta_id) references concepto_renta(id)
412
);
413

    
414
create table socio_historico(
415
id int not null,
416
socio_id int not null,
417
fecha_evento date not null,
418
nro_socio character varying(50),
419
estado_socio_id int not null,
420
obs character varying(50),
421
constraint pk_socio_historico primary key(id),
422
constraint fk_socio_historico_socio_id foreign key(socio_id) references socio(id),
423
constraint fk_socio_historico_estado_socio_id foreign key(estado_socio_id) references estado_socio(id)
424
);
425

    
426
create table solicitud(
427
id int not null,
428
fecha_solicitud date not null,
429
nro_solicitud character varying(20) not null,
430
fecha_sesion date,
431
acta_nro character varying(50),
432
sesion character varying(50),
433
observacion character varying(200),
434
persona_id int not null,
435
nombre_pariente_proximo character varying(100),
436
telefono_pariente_proximo character varying(50),
437
telefono_vecino_proximo character varying(50),
438
nombre_vecino_proximo character varying(100),
439
constraint pk_solicitud primary key(id),
440
constraint fk_solicitud_persona_id foreign key(persona_id) references persona(id)
441
);
442

    
443
create table tipo_archivo(
444
id int not null,
445
nombre character varying(100) not null,
446
constraint pk_tipo_archivo primary key(id),
447
constraint uq_tipo_archivo_nombre unique(nombre)
448
);
449

    
450
create table archivo(
451
id int not null,
452
fecha_subida date not null,
453
tipo_archivo_id int not null,
454
ruta character varying(200) not null,
455
nombre_archivo character varying(100) not null,
456
tipo_extension character varying(30) not null,
457
solicitud_id int,
458
constraint pk_archivo primary key(id),
459
constraint fk_archivo_tipo_archivo_id foreign key(tipo_archivo_id) references tipo_archivo(id),
460
constraint fk_archivo_solicitud_id foreign key(solicitud_id) references solicitud(id)
461
);
462

    
463
create table tipo_cuenta(
464
id int not null,
465
nombre character varying(100) not null,
466
constraint pk_tipo_cuenta primary key(id),
467
constraint uq_tipo_cuenta_nombre unique(nombre)
468
);
469

    
470
create table estado_cuenta(
471
id int not null,
472
nombre character varying(100) not null,
473
constraint pk_estado_cuenta primary key(id),
474
constraint uq_estado_cuenta_nombre unique(nombre)
475
);
476

    
477
create table titular_cuenta(
478
id int not null,
479
cuenta_id int not null,
480
socio_titular_id int not null,
481
co_titular_id int not null,
482
constraint pk_titular_cuenta primary key(id),
483
constraint fk_titular_cuenta_socio_titular_id foreign key(socio_titular_id) references socio(id),
484
constraint fk_titular_cuenta_co_titular_id foreign key(co_titular_id) references persona(id),
485
constraint fk_titular_cuenta_cuenta_id foreign key(cuenta_id) references cuenta(id)
486
);
487

    
488
-- se preve sucursal?
489
create table cuenta(
490
id int not null,
491
socio_id int not null, --titular de cuenta
492
fecha_apertura date not null,
493
fecha_expiracion date,
494
solicitud_id int,
495
saldo numeric,
496
saldo_promedio numeric,
497
saldo_contable numeric,
498
saldo_bloqueado numeric,
499
saldo_retenido numeric,
500
dias_atraso int,
501
maximo_atraso int,
502
monto_atraso numeric,
503
motivo_cancelacion character varying(100) not null,
504
fecha_cancelacion date,
505
fecha_ultimo_movimiento date,
506
estado_cuenta_id int not null,
507
tipo_cuenta_id int not null,
508
constraint pk_cuenta primary key(id),
509
constraint fk_cuenta_socio_id foreign key(socio_id) references socio(id),
510
constraint fk_cuenta_solicitud_id foreign key(solicitud_id) references solicitud(id),
511
constraint fk_cuenta_estado_cuenta_id foreign key(estado_cuenta_id) references estado_cuenta(id),
512
constraint fk_cuenta_tipo_cuenta_id foreign key(tipo_cuenta_id) references tipo_cuenta(id)
513
);
514

    
515
create table cuenta_socio(
516
id int not null,
517
persona_id int not null,
518
cuenta_id int not null,
519
es_titular boolean not null,
520
constraint pk_cuenta_socio primary key(id),
521
constraint fk_cuenta_estado_persona_id foreign key(persona_id) references persona(id),
522
constraint fk_cuenta_estado_cuenta_id foreign key(cuenta_id) references cuenta(id)
523
);
524

    
525
create table aporte(
526
id int not null,
527
cuenta_id int not null,
528
nro_cuota int not null,
529
monto_pagar numeric not null,
530
vencimiento date not null,
531
pagado numeric,
532
descuento numeric,
533
saldo numeric,
534
constraint pk_aporte primary key(id),
535
constraint fk_aporte_cuenta_id foreign key(cuenta_id) references cuenta(id)
536
);
537

    
538
create table solidaridad(
539
id int not null,
540
cuenta_id int not null,
541
nro_cuota int not null,
542
monto_pagar numeric not null,
543
vencimiento date not null,
544
pagado numeric,
545
descuento numeric,
546
saldo numeric,
547
constraint pk_solidaridad primary key(id),
548
constraint fk_solidaridad_cuenta_id foreign key(cuenta_id) references cuenta(id)
549
);
550

    
551
-- persona, indistina, 
552
create table tipo_ahorro(
553
id int not null,
554
nombre character varying(100) not null,
555
constraint pk_tipo_ahorro primary key(id),
556
constraint uq_tipo_ahorro_nombre unique(nombre)
557
);
558

    
559
-- a la vista, plazo fijo, etc 
560
create table modalidad(
561
id int not null,
562
nombre character varying(100) not null,
563
constraint pk_modalidad primary key(id),
564
constraint uq_modalidad_nombre unique(nombre)
565
);
566

    
567
create table solicitud_ahorro(
568
id int not null,
569
tipo_ahorro_id int not null,
570
fecha date not null,
571
modalidad_id int not null,
572
socio_id int not null,
573
monto_solicitado numeric,
574
estado_id int not null,
575
constraint pk_solicitud_ahorro primary key(id),
576
constraint fk_solicitud_ahorro_tipo_ahorro_id foreign key(tipo_ahorro_id) references tipo_ahorro(id),
577
constraint fk_solicitud_ahorro_modalidad_id foreign key(modalidad_id) references modalidad(id),
578
constraint fk_solicitud_ahorro_socio_id foreign key(socio_id) references socio(id),
579
constraint fk_solicitud_estado_id foreign key(estado_id) references estado(id)
580
);
581

    
582
create table ahorro(
583
id int not null,
584
cuenta_id int not null,
585
tipo_cuenta_id int not null,
586
modalidad_id int not null,
587
total_inversion numeric not null,
588
total_interes numeric not null,
589
saldo numeric,
590
plazo int not null,
591
tasa int not null,
592
forma_pago varying(20), 
593
hecho_por varying(20),
594
verificado_por varying(20),
595
visto_bueno_por varying(20),
596
contrato_nro varying(20),
597
proforma_nro varying(20),
598
constraint pk_ahorro primary key(id),
599
constraint fk_ahorro_cuenta_id foreign key(cuenta_id) references cuenta(id),
600
constraint fk_ahorro_tipo_cuenta_id foreign key(tipo_cuenta_id) references tipo_cuenta(id),
601
constraint fk_ahorro_modalidad_id foreign key(modalidad_id) references modalidad(id)
602
);
603

    
604
create table liquidacion_ahorro(
605
id int not null,
606
ahorro_id int not null,
607
nro_cuota int,
608
fecha_vencimiento date not null,
609
monto_capital numeric not null,
610
monto_interes numeric not null,
611
constraint pk_liquidacion_ahorro primary key(id),
612
constraint fk_liquidacion_ahorro_ahorro_id foreign key(ahorro_id) references ahorro(id)
613
);
614

    
615
-- efectivo, otros banco, cheque
616
create table tipo_deposito(
617
id int not null,
618
nombre character varying(100) not null,
619
constraint pk_tipo_deposito primary key(id),
620
constraint uq_tipo_deposito_nombre unique(nombre)
621
);
622

    
623
-- bancos para cheques
624
create table institucion_financiera(
625
id int not null,
626
nombre character varying(100) not null,
627
constraint pk_institucion_financiera primary key(id),
628
constraint uq_institucion_financiera_nombre unique(nombre)
629
);
630

    
631
-- extracci?n/deposito/interes
632
create table movimiento_ahorro(
633
id int not null,
634
ahorro_id int not null,
635
tipo char(3) not null, -- EXT/DEP/INT
636
fecha date not null,
637
depositado_por character varying(100) not null,
638
extraido_por character varying(100) not null,
639
monto numeric not null,
640
saldo numeric,
641
nro_boleta character varying(50),
642
constraint pk_comprobante primary key(id),
643
constraint fk_comprobante_ahorro_id foreign key(ahorro_id) references ahorro(id)
644
);
645

    
646
create table movimiento_ahorro_tipo_deposito(
647
id int not null,
648
movimiento_ahorro_id int not null,
649
monto_depositado numeric not null,
650
tipo_deposito_id int not null,
651
institucion_financiera_id int,
652
cheque_nro character varying(50) not null,
653
constraint pk_movimiento_ahorro_tipo_deposito primary key(id),
654
constraint fk_movimiento_ahorro_tipo_deposito_tipo_deposito_id foreign key(tipo_deposito_id) references tipo_deposito(id),
655
constraint fk_movimiento_ahorro_tipo_deposito_movimiento_ahorro_id foreign key(movimiento_ahorro_id) references movimiento_ahorro(id),
656
constraint fk_comprobante_tipo_deposito_institucion_financiera_id foreign key(institucion_financiera_id) references institucion_financiera(id),
657
);
658

    
659
create table tarjeta_debito(
660
id int not null,
661
nro_tarjeta character varying(100) not null,
662
marca_id int, --visa/ mastercard
663
cuenta_id int not null,
664
vencimiento date not null
665
estado_tarjeta int,
666
constraint pk_tarjeta primary key(id),
667
constraint fk_tarjeta_cuenta_id foreign key(cuenta_id) references ahorro(id)
668
);
669

    
670
create table tipo_transaccion(
671
id int not null,
672
nombre character varying(100) not null,
673
constraint pk_tipo_transaccion primary key(id),
674
constraint uq_tipo_transaccion_nombre unique(nombre)
675
);
676

    
677
create table transaccion(
678
id int not null,
679
fecha date not null,
680
tipo_transaccion_id int not null,
681
nro_comprobante character varying(50) not null,
682
cuenta_id int not null,
683
total_transaccion numeric,
684
constraint pk_transaccion primary key(id),
685
constraint fk_transaccion_cuenta_id foreign key(cuenta_id) references cuenta(id),
686
constraint fk_transaccion_tipo_transaccion_id foreign key(tipo_transaccion_id) references tipo_transaccion(id)
687
);
688

    
689
create table cobro(
690
id int not null,
691
transaccion_id int not null,
692
monto_cobrado numeric,
693
constraint pk_cobro primary key(id),
694
constraint fk_cobro_transaccion_id foreign key(transaccion_id) references transaccion(id)
695
);
696

    
697

    
698
-- m?dulo pr?stamos
699

    
700
create table tipo_archivo(
701
id int not null,
702
nombre character varying(100) not null,
703
constraint pk_tipo_archivo primary key(id),
704
constraint uq_tipo_archivo_nombre unique(nombre)
705
);
706

    
707
create table estado(
708
id int not null,
709
nombre character varying(100) not null,
710
constraint pk_estado primary key(id),
711
constraint uq_estado_nombre unique(nombre)
712
);
713

    
714
create table destino(
715
id int not null,
716
nombre character varying(100) not null,
717
constraint pk_destino primary key(id),
718
constraint uq_destino_nombre unique(nombre)
719
);
720

    
721
create table tipo_garantia(
722
id int not null,
723
nombre character varying(100) not null,
724
constraint pk_tipo_garantia primary key(id),
725
constraint uq_tipo_garantia_nombre unique(nombre)
726
);
727

    
728
create table tipo_plazo(
729
id int not null,
730
nombre character varying(100) not null,
731
constraint pk_tipo_plazo primary key(id),
732
constraint uq_tipo_plazo_nombre unique(nombre)
733
);
734

    
735
create table archivo_solicitud(
736
id int not null,
737
archivo_id int not null,
738
solicitud_id int not null,
739
constraint pk_archivo_solicitud primary key(id),
740
constraint fk_archivo_solicitud_archivo_id foreign key(archivo_id) references archivo(id),
741
constraint fk_archivo_solicitud_solicitud_id foreign key(solicitud_id) references solicitud(id)
742
);
743

    
744
create table archivo(
745
id int not null,
746
fecha_subida date not null,
747
tipo_archivo_id int not null,
748
ruta character varying(200) not null,
749
nombre_archivo character varying(100) not null,
750
tipo_extension character varying(30) not null,
751
solicitud_id int,
752
constraint pk_archivo primary key(id),
753
constraint fk_archivo_tipo_archivo_id foreign key(tipo_archivo_id) references tipo_archivo(id),
754
constraint fk_archivo_solicitud_id foreign key(solicitud_id) references solicitud(id)
755
);
756

    
757
create table cuenta(
758
id int not null,
759
socio_id int not null, --titular de cuenta
760
fecha_apertura date not null,
761
fecha_expiracion date,
762
solicitud_id int,
763
saldo numeric,
764
saldo_promedio numeric,
765
saldo_contable numeric,
766
saldo_bloqueado numeric,
767
saldo_retenido numeric,
768
dias_atraso int,
769
maximo_atraso int,
770
monto_atraso numeric,
771
motivo_cancelacion character varying(100) not null,
772
fecha_cancelacion date,
773
fecha_ultimo_movimiento date,
774
estado_cuenta_id int not null,
775
tipo_cuenta_id int not null,
776
constraint pk_cuenta primary key(id),
777
constraint fk_cuenta_socio_id foreign key(socio_id) references socio(id),
778
constraint fk_cuenta_solicitud_id foreign key(solicitud_id) references solicitud(id),
779
constraint fk_cuenta_estado_cuenta_id foreign key(estado_cuenta_id) references estado_cuenta(id),
780
constraint fk_cuenta_tipo_cuenta_id foreign key(tipo_cuenta_id) references tipo_cuenta(id)
781
);
782

    
783
create table cuenta_socio(
784
id int not null,
785
persona_id int not null,
786
cuenta_id int not null,
787
es_titular boolean not null,
788
constraint pk_cuenta_socio primary key(id),
789
constraint fk_cuenta_estado_persona_id foreign key(persona_id) references persona(id),
790
constraint fk_cuenta_estado_cuenta_id foreign key(cuenta_id) references cuenta(id)
791
);
792

    
793
create table perfil_economico(
794
id int not null,
795
fecha date not null,
796
persona_id int not null,
797
inmueble_id int not null,
798
rodado_id int not null,
799
cuentas_externas_id int not null,
800
otros_bienes_id int not null,
801
deudas_externas_id int not null,
802
deudas_hipotecarias_id int not null,
803
renta_mensual_id int not null,
804
constraint pk_perfil_economico primary key(id),
805
constraint fk_perfil_economico_persona_id foreign key(persona_id) references persona(id),
806
constraint fk_perfil_economico_inmueble_id foreign key(inmueble_id) references inmueble(id),
807
constraint fk_perfil_economico_rodado_id foreign key(rodado_id) references rodado(id),
808
constraint fk_perfil_economico_cuentas_externas_id foreign key(cuentas_externas_id) references cuentas_externas(id),
809
constraint fk_perfil_economico_otros_bienes_id foreign key(otros_bienes_id) references otros_bienes(id),
810
constraint fk_perfil_economico_deudas_externas_id foreign key(deudas_externas_id) references deudas_externas(id),
811
constraint fk_perfil_economico_deudas_hipotecarias_id foreign key(deudas_hipotecarias_id) references deudas_hipotecarias(id),
812
constraint fk_perfil_economico_renta_mensual_id foreign key(renta_mensual_id) references renta_mensual(id)
813
);
814

    
815
-- individual, intercooperativo, empleados
816
create table tipo_sujeto_credito(
817
id int not null,
818
nombre character varying(100) not null,
819
constraint pk_tipo_sujeto_credito primary key(id),
820
constraint uq_tipo_sujeto_credito_nombre unique(nombre)
821
);
822

    
823
-- normal, tarjeta cr?dito, vivienda
824
create table tipo_credito(
825
id int not null,
826
nombre character varying(100) not null,
827
constraint pk_tipo_credito primary key(id),
828
constraint uq_tipo_credito_nombre unique(nombre)
829
);
830

    
831
create table tipo_credito(
832
id int not null,
833
nombre character varying(100) not null,
834
constraint pk_tipo_credito primary key(id),
835
constraint uq_tipo_credito_nombre unique(nombre)
836
);
837

    
838
create table calificacion_socio(
839
id int not null,
840
socio_id int not null,
841
fecha date not null,
842
calificacion character varying(10) not null,
843
constraint pk_calificacion_socio primary key(id),
844
constraint fk_calificacion_socio_socio_id foreign key(socio_id) references socio(id)
845
);
846

    
847
create table solicitud_prorroga(
848
id int not null,
849
cuota_id int not null,
850
fecha_solicitud date not null,
851
motivo character varying(100) not null,
852
estado_solicitud_id int not null,
853
constraint pk_solicitud_prorroga primary key(id),
854
constraint fk_solicitud_prorroga_cuota_id foreign key(cuota_id) references cuota(id),
855
constraint fk_solicitud_prorroga_estado_id foreign key(estado_id) references estado(id)
856
);
857

    
858
create table solicitud_amplicacion(
859
id int not null,
860
prestamo_id int not null,
861
fecha_solicitud date not null,
862
motivo character varying(100) not null,
863
estado_solicitud_id int not null,
864
constraint pk_solicitud_amplicacion primary key(id),
865
constraint fk_solicitud_amplicacion_prestamo_id foreign key(prestamo_id) references prestamo(id),
866
constraint fk_solicitud_amplicacion_estado_id foreign key(estado_id) references estado(id)
867
);
868

    
869
create table solicitud_refinanciacion(
870
id int not null,
871
prestamo_id int not null,
872
fecha_solicitud date not null,
873
motivo character varying(100) not null,
874
estado_solicitud_id int not null,
875
constraint pk_solicitud_amplicacion primary key(id),
876
constraint fk_solicitud_prorroga_prestamo_id foreign key(prestamo_id) references prestamo(id),
877
constraint fk_solicitud_prorroga_estado_id foreign key(estado_id) references estado(id)
878
);
879

    
880
create table solicitud_consolidacion(
881
id int not null,
882
fecha_solicitud date not null,
883
motivo character varying(100) not null,
884
estado_solicitud_id int not null,
885
constraint pk_solicitud_amplicacion primary key(id),
886
constraint fk_solicitud_prorroga_estado_id foreign key(estado_id) references estado(id)
887
);
888

    
889
create table prestamo_consolidacion(
890
id int not null,
891
prestamo_id int not null,
892
solicitud_id int not null,
893
constraint pk_prestamo_consolidacion primary key(id),
894
constraint fk_prestamo_consolidacion_prestamo_id foreign key(prestamo_id) references prestamo(id),
895
constraint fk_prestamo_consolidacion_solicitud_id foreign key(solicitud_id) references solicitud_consolidacion(id)
896
);
897

    
898
create table solicitud_prestamo(
899
id int not null,
900
socio_id int not null,
901
fecha_solicitud date not null,
902
nro_solicitud character varying(20) not null,
903
monto_solicitado numeric not null,
904
cant_cuotas int not null, 
905
observacion character varying(200),
906
perfil_economico_id int not null,
907
destino_id int not null,
908
tipo_credito_id int not null,
909
tipo_garantia_id int not null,
910
tipo_plazo_id int not null,
911
producto_credito_id int not null,
912
constraint pk_solicitud primary key(id),
913
constraint fk_solicitud_persona_id foreign key(persona_id) references persona(id)
914
);
915

    
916
create table analisis_credito(
917
id int not null,
918
solicitud_prestamo_id int not null,
919
analizado_por int not null, 
920
fecha_analisis date,
921
recomendacion_analista character varying(100),
922
jefe_por int not null, 
923
fecha_analisis_jefe date,
924
recomendacion_jefe character varying(100),
925
gerente_por int not null,
926
fecha_analisis_gerente date,
927
recomendacion_gerente character varying(100),
928
comite_por int not null, 
929
fecha_analisis_comite date,
930
recomendacion_comite character varying(100),
931
consejo_por int not null, 
932
fecha_analisis_consejo date,
933
recomendacion_consejo character varying(100),
934
estado_id int not null,
935
fecha_estado date not null,
936
constraint pk_analisis_credito primary key(id)
937
-- falta agregar los fks
938
);
939

    
940
create table prestamo(
941
id int not null,
942
cuenta_id int not null,
943
fecha_aprobacion date not null,
944
saldo numeric,
945
saldo_capital numeric,
946
saldo_interes numeric,
947
capital_pagado numeric,
948
interes_pagado numeric,
949
prevision numeric,
950
prevision_heredada numeric,
951
cantidad_cuotas int, 
952
monto_aprobado numeric, 
953
cantidad_cuotas_pagadas int,
954
producto_credito_id int not null,
955
constraint pk_prestamo primary key(id),
956
constraint fk_prestamo_cuenta_id foreign key(cuenta_id) references cuenta(id),
957
-- falta agregar los mismo
958
);
959

    
960
create table codeudor(
961
id int not null,
962
persona_id int not null,
963
prestamo_id int not null,
964
es_socio boolean not null,
965
es_conyuge boolean not null,
966
constraint pk_deudor primary key(id),
967
constraint fk_deudor_persona_id foreign key(persona_id) references persona(id),
968
constraint fk_deudor_prestamo_id foreign key(prestamo_id) references prestamo(id)
969
);
970

    
971
create table tipo_accion(
972
id int not null,
973
nombre character varying(100) not null,
974
constraint pk_tipo_accion primary key(id),
975
constraint uq_tipo_accion_nombre unique(nombre)
976
);
977

    
978
create table recuperacion(
979
id int not null,
980
prestamo_id int not null,
981
etapa int not null,
982
tipo_accion_id int not null,
983
tratamiento character varying(200) not null,
984
constraint pk_tipo_archivo primary key(id),
985
constraint fk_recuperacion_prestamo_id foreign key(prestamo_id) references prestamo(id),
986
constraint fk_recuperacion_tipo_accion_id foreign key(tipo_accion_id) references tipo_accion(id)
987
);
988

    
989
-- cheque, deposito ahorro
990
create table tipo_desembolso(
991
id int not null,
992
nombre character varying(100) not null,
993
constraint pk_tipo_desembolso primary key(id),
994
constraint uq_tipo_desembolso_nombre unique(nombre)
995
);
996

    
997
create table descuento_desembolso(
998
id int not null,
999
nombre character varying(100) not null,
1000
constraint pk_descuento_desembolso primary key(id),
1001
constraint uq_descuento_desembolso_nombre unique(nombre)
1002
);
1003

    
1004
create table desembolso(
1005
id int not null,
1006
prestamo_id int not null,
1007
fecha date not null,
1008
constraint pk_desembolso primary key(id),
1009
constraint fk_desembolso_prestamo_id foreign key(prestamo_id) references prestamo(id)
1010
);
1011

    
1012
create table detalle_desembolso(
1013
id int not null,
1014
desembolso_id int not null,
1015
tipo_desembolso_id int not null, 
1016
monto numeric not null, 
1017
ahorro_id int,
1018
cheque_id int,
1019
constraint pk_detalle_desembolso primary key(id),
1020
constraint fk_detalle_desembolso_tipo_desembolso_id foreign key(tipo_desembolso_id) references tipo_desembolso(id)
1021
);
1022

    
1023
create table detalle_descuento(
1024
id int not null,
1025
desembolso_id int not null,
1026
descuento_id int not null,
1027
monto numeric not null,
1028
constraint pk_detalle_descuento primary key(id),
1029
constraint fk_detalle_descuento_desembolso_id foreign key(desembolso_id) references desembolso(id),
1030
constraint fk_detalle_descuento_descuento_id foreign key(descuento_id) references descuento(id)
1031
);
1032

    
1033
-- plan de pago (ideal)
1034
create table plan_pago(
1035
id int not null,
1036
cuenta_id int not null, -- 12548
1037
monto_capital numeric not null, -- 100
1038
interes numeric not null, -- 10
1039
saldo numeric, 
1040
nro_cuota int,
1041
fecha_vencimiento date not null,
1042
constraint pk_cuota primary key(id),
1043
constraint fk_cuota_cuenta_id foreign key(cuenta_id) references cuenta(id)
1044
);
1045

    
1046
create table cuota(
1047
id int not null,
1048
cuenta_id int not null, -- 12548
1049
monto_capital numeric not null, -- 100
1050
interes numeric not null, -- 10
1051
interes_moratorio numeric, 
1052
interes_punitorio numeric,
1053
saldo numeric, 
1054
nro_cuota int,
1055
fecha_vencimiento date not null,
1056
constraint pk_cuota primary key(id),
1057
constraint fk_cuota_cuenta_id foreign key(cuenta_id) references cuenta(id)
1058
);
1059

    
1060
create table producto_credito(
1061
id int not null,
1062
nombre character varying(100) not null,
1063
tipo_credito_id int not null, -- consumo
1064
sub_tipo_id int not null, -- compra anteojos 
1065
monto_hasta numeric not null, -- 5.000.000
1066
relacion_aporte character varying(20) not null, -- 1/15
1067
plazo_minimo int not null, -- 6
1068
plazo_maximo int not null, -- 36
1069
constraint pk_producto_credito primary key(id),
1070
constraint fk_producto_credito_tipo_credito_id foreign key(tipo_credito_id) references tipo_credito(id),
1071
constraint fk_producto_credito_sub_tipo_id foreign key(sub_tipo_id) references sub_tipo_credito(id)
1072
);
1073

    
1074
create table producto_detalle(
1075
id int not null,
1076
producto_credito_id int not null,
1077
cuota_desde int not null, -- 13   
1078
cuota_hasta int not null, -- 16
1079
tasa numeric not null, -- 18
1080
constraint pk_producto_detalle primary key(id),
1081
constraint fk_producto_detalle_producto_credito_id foreign key(tipo_credito_id) references tipo_credito(id),
1082
);
(2-2/3)