Advertisement
Guest User

Untitled

a guest
Aug 3rd, 2015
241
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 78.56 KB | None | 0 0
  1. /***************************************************************************************************
  2.  
  3. _____ _ _ _ _____ _ _
  4. / ____| | | | | | | / ____| | (_)
  5. | | ___ _ _ _ __ | |_ ___ _ __ | | ___ __ _| | ___ | | ___ __| |_ _ __ __ _
  6. | | / _ \| | | | '_ \| __/ _ \ '__| | | / _ \ / _` | |/ __| | | / _ \ / _` | | '_ \ / _` |
  7. | |___| (_) | |_| | | | | || __/ | | |___| (_) | (_| |_| (__ | |___| (_) | (_| | | | | | (_| |
  8. \_____\___/ \__,_|_| |_|\__\___|_| |______\___/ \__, (_)\___| \_____\___/ \__,_|_|_| |_|\__, |
  9. __/ | __/ |
  10. |___/ |___/
  11.  
  12.  
  13. _ _
  14. (c).-.(c)
  15. / ._. \
  16. __\( Y )/__
  17. (_.-/'-'\-._)
  18. || ||
  19. _.' `-' '._
  20. (.-./`-'\.-.)
  21. `-' `-'
  22.  
  23. ****************************************************************************************************/
  24.  
  25. USE GD1C2015
  26. GO
  27.  
  28. -- ***********************************************************************************************
  29. -- ***********************************************************************************************
  30. -- ***********************************************************************************************
  31. -- PARTE I - Generación de esquema COUNTER_LOGIC_CODING e incorporación de datos desde MAESTRA
  32. -- ***********************************************************************************************
  33.  
  34. -- ---------------------------------------------------------------------------------
  35. -- Eliminacion ordenada de objetos existentes generados en ejecuciones anteriores
  36. -- para que haya indepENDencia entre corridas del script de creación inicial
  37. ------------------------------------------------------------------------------------
  38.  
  39. IF OBJECT_ID('COUNTER_LOGIC_CODING.INHABILITACION_TRANSACCION') is not null
  40. DROP TABLE COUNTER_LOGIC_CODING.INHABILITACION_TRANSACCION
  41.  
  42. IF OBJECT_ID('COUNTER_LOGIC_CODING.LOG_LOGIN') IS NOT NULL
  43. DROP TABLE COUNTER_LOGIC_CODING.LOG_LOGIN;
  44.  
  45. IF OBJECT_ID('COUNTER_LOGIC_CODING.TRANSFERENCIA') IS NOT NULL
  46. DROP TABLE COUNTER_LOGIC_CODING.TRANSFERENCIA;
  47.  
  48. IF OBJECT_ID('COUNTER_LOGIC_CODING.RETIRO') IS NOT NULL
  49. DROP TABLE COUNTER_LOGIC_CODING.RETIRO;
  50.  
  51. IF OBJECT_ID('COUNTER_LOGIC_CODING.DEPOSITO') IS NOT NULL
  52. DROP TABLE COUNTER_LOGIC_CODING.DEPOSITO;
  53.  
  54. IF OBJECT_ID('COUNTER_LOGIC_CODING.ITEM') IS NOT NULL --BORRAR
  55. DROP TABLE COUNTER_LOGIC_CODING.ITEM;
  56.  
  57. IF OBJECT_ID('COUNTER_LOGIC_CODING.COMISION') IS NOT NULL
  58. DROP TABLE COUNTER_LOGIC_CODING.COMISION;
  59.  
  60. IF OBJECT_ID('COUNTER_LOGIC_CODING.CAMBIO_DE_TIPO_CUENTA') IS NOT NULL
  61. DROP TABLE COUNTER_LOGIC_CODING.CAMBIO_DE_TIPO_CUENTA
  62.  
  63. IF OBJECT_ID('COUNTER_LOGIC_CODING.APERTURA_CUENTA') IS NOT NULL
  64. DROP TABLE COUNTER_LOGIC_CODING.APERTURA_CUENTA
  65.  
  66. IF OBJECT_ID('COUNTER_LOGIC_CODING.OPERACION') IS NOT NULL
  67. DROP TABLE COUNTER_LOGIC_CODING.OPERACION;
  68.  
  69. IF OBJECT_ID('COUNTER_LOGIC_CODING.ROL_X_USUARIO') IS NOT NULL
  70. DROP TABLE COUNTER_LOGIC_CODING.ROL_X_USUARIO;
  71.  
  72. IF OBJECT_ID('COUNTER_LOGIC_CODING.FUNCIONALIdAD_X_ROL') IS NOT NULL
  73. DROP TABLE COUNTER_LOGIC_CODING.FUNCIONALIdAD_X_ROL;
  74.  
  75. IF OBJECT_ID('COUNTER_LOGIC_CODING.TARJETA') IS NOT NULL
  76. DROP TABLE COUNTER_LOGIC_CODING.TARJETA;
  77.  
  78. IF OBJECT_ID('COUNTER_LOGIC_CODING.EMISOR') IS NOT NULL
  79. DROP TABLE COUNTER_LOGIC_CODING.EMISOR;
  80.  
  81. IF OBJECT_ID('COUNTER_LOGIC_CODING.CHEQUE') IS NOT NULL
  82. DROP TABLE COUNTER_LOGIC_CODING.CHEQUE;
  83.  
  84. IF OBJECT_ID('COUNTER_LOGIC_CODING.FACTURA') IS NOT NULL
  85. DROP TABLE COUNTER_LOGIC_CODING.FACTURA;
  86.  
  87. IF OBJECT_ID('COUNTER_LOGIC_CODING.CUENTA') IS NOT NULL
  88. DROP TABLE COUNTER_LOGIC_CODING.CUENTA;
  89.  
  90. IF OBJECT_ID('COUNTER_LOGIC_CODING.ESTADOS_CUENTA') IS NOT NULL
  91. DROP TABLE COUNTER_LOGIC_CODING.ESTADOS_CUENTA;
  92.  
  93. IF OBJECT_ID('COUNTER_LOGIC_CODING.BANCO') IS NOT NULL
  94. DROP TABLE COUNTER_LOGIC_CODING.BANCO;
  95.  
  96. IF OBJECT_ID('COUNTER_LOGIC_CODING.FUNCIONALIDAD') IS NOT NULL
  97. DROP TABLE COUNTER_LOGIC_CODING.FUNCIONALIDAD;
  98.  
  99. IF OBJECT_ID('COUNTER_LOGIC_CODING.CLIENTE') IS NOT NULL
  100. DROP TABLE COUNTER_LOGIC_CODING.CLIENTE;
  101.  
  102. IF OBJECT_ID('COUNTER_LOGIC_CODING.USUARIO') IS NOT NULL
  103. DROP TABLE COUNTER_LOGIC_CODING.USUARIO;
  104.  
  105. IF OBJECT_ID('COUNTER_LOGIC_CODING.ROL') IS NOT NULL
  106. DROP TABLE COUNTER_LOGIC_CODING.ROL;
  107.  
  108. IF OBJECT_ID('COUNTER_LOGIC_CODING.TIPO_CUENTA') IS NOT NULL
  109. DROP TABLE COUNTER_LOGIC_CODING.TIPO_CUENTA;
  110.  
  111. IF OBJECT_ID('COUNTER_LOGIC_CODING.TIPO_DOCUMENTO') IS NOT NULL
  112. DROP TABLE COUNTER_LOGIC_CODING.TIPO_DOCUMENTO;
  113.  
  114. IF OBJECT_ID('COUNTER_LOGIC_CODING.PAIS') IS NOT NULL
  115. DROP TABLE COUNTER_LOGIC_CODING.PAIS;
  116.  
  117. IF OBJECT_ID('COUNTER_LOGIC_CODING.MONEDA') IS NOT NULL
  118. DROP TABLE COUNTER_LOGIC_CODING.MONEDA;
  119.  
  120. IF OBJECT_ID('COUNTER_LOGIC_CODING.INCONSISTENCIAS') IS NOT NULL
  121. DROP TABLE COUNTER_LOGIC_CODING.INCONSISTENCIAS;
  122.  
  123. IF OBJECT_ID('COUNTER_LOGIC_CODING.validar_login') IS NOT NULL
  124. DROP PROCEDURE COUNTER_LOGIC_CODING.validar_login
  125.  
  126. IF OBJECT_ID('COUNTER_LOGIC_CODING.validar_pregunta') IS NOT NULL
  127. DROP PROCEDURE COUNTER_LOGIC_CODING.validar_pregunta
  128.  
  129. IF OBJECT_ID('COUNTER_LOGIC_CODING.actualizarIntentos') IS NOT NULL
  130. DROP PROCEDURE COUNTER_LOGIC_CODING.actualizarIntentos
  131.  
  132. IF OBJECT_ID('COUNTER_LOGIC_CODING.funcionalidadDeRol') IS NOT NULL
  133. DROP PROCEDURE COUNTER_LOGIC_CODING.funcionalidadDeRol
  134.  
  135. IF OBJECT_ID('COUNTER_LOGIC_CODING.funcionalidades') IS NOT NULL
  136. DROP PROCEDURE COUNTER_LOGIC_CODING.funcionalidades
  137.  
  138. IF OBJECT_ID('COUNTER_LOGIC_CODING.getRolesById') IS NOT NULL
  139. DROP PROCEDURE COUNTER_LOGIC_CODING.getRolesById
  140.  
  141. IF OBJECT_ID('COUNTER_LOGIC_CODING.getUsuario') IS NOT NULL
  142. DROP PROCEDURE COUNTER_LOGIC_CODING.getUsuario
  143.  
  144. if OBJECT_ID('COUNTER_LOGIC_CODING.getPreguntaUsuario') IS NOT NULL
  145. DROP PROCEDURE COUNTER_LOGIC_CODING.getPreguntaUsuario
  146.  
  147. if OBJECT_ID('COUNTER_LOGIC_CODING.setPassword') IS NOT NULL
  148. DROP PROCEDURE COUNTER_LOGIC_CODING.setPassword
  149.  
  150. IF OBJECT_ID('COUNTER_LOGIC_CODING.getClientes') is not null
  151. DROP PROCEDURE COUNTER_LOGIC_CODING.getClientes
  152.  
  153. IF OBJECT_ID('COUNTER_LOGIC_CODING.getCliente') is not null
  154. DROP PROCEDURE COUNTER_LOGIC_CODING.getCliente
  155.  
  156. IF OBJECT_ID('COUNTER_LOGIC_CODING.find_clientes') is not null
  157. DROP PROCEDURE COUNTER_LOGIC_CODING.find_clientes
  158.  
  159. IF OBJECT_ID('COUNTER_LOGIC_CODING.calcularEstadoCliente') is not null
  160. DROP FUNCTION COUNTER_LOGIC_CODING.calcularEstadoCliente
  161.  
  162. if OBJECT_ID('COUNTER_LOGIC_CODING.getPais') is not null
  163. DROP PROCEDURE COUNTER_LOGIC_CODING.getPais
  164.  
  165. if OBJECT_ID('COUNTER_LOGIC_CODING.getTipoDoc') is not null
  166. DROP PROCEDURE COUNTER_LOGIC_CODING.getTipoDoc
  167.  
  168. IF OBJECT_ID('COUNTER_LOGIC_CODING.darDeBajaCliente') is not null
  169. DROP PROCEDURE COUNTER_LOGIC_CODING.darDeBajaCliente
  170.  
  171. IF OBJECT_ID('COUNTER_LOGIC_CODING.COINCIDE_DOCUMENTO') is not null
  172. DROP PROCEDURE COUNTER_LOGIC_CODING.COINCIDE_DOCUMENTO
  173.  
  174. IF OBJECT_ID('COUNTER_LOGIC_CODING.getRoles') is not null
  175. DROP PROCEDURE COUNTER_LOGIC_CODING.getRoles
  176.  
  177. IF OBJECT_ID('COUNTER_LOGIC_CODING.getTipoCuenta') is not null
  178. DROP PROCEDURE COUNTER_LOGIC_CODING.getTipoCuenta
  179.  
  180. IF OBJECT_ID('COUNTER_LOGIC_CODING.getEstado') is not null
  181. DROP PROCEDURE COUNTER_LOGIC_CODING.getEstado
  182.  
  183. IF OBJECT_ID('COUNTER_LOGIC_CODING.getMoneda') is not null
  184. DROP PROCEDURE COUNTER_LOGIC_CODING.getMoneda
  185.  
  186. IF OBJECT_ID('COUNTER_LOGIC_CODING.getCuentasByUserId') is not null
  187. DROP PROCEDURE COUNTER_LOGIC_CODING.getCuentasByUserId
  188.  
  189. IF OBJECT_ID('COUNTER_LOGIC_CODING.getCuentasByClienteId') is not null
  190. DROP PROCEDURE COUNTER_LOGIC_CODING.getCuentasByClienteId
  191.  
  192. IF OBJECT_ID('COUNTER_LOGIC_CODING.getCuentasByUserIdAndType') is not null
  193. DROP PROCEDURE COUNTER_LOGIC_CODING.getCuentasByUserIdAndType
  194.  
  195. IF OBJECT_ID('COUNTER_LOGIC_CODING.getTiposCuentas') is not null
  196. DROP PROCEDURE COUNTER_LOGIC_CODING.getTiposCuentas
  197.  
  198. IF OBJECT_ID('COUNTER_LOGIC_CODING.getMonedas') is not null
  199. DROP PROCEDURE COUNTER_LOGIC_CODING.getMonedas
  200.  
  201. IF OBJECT_ID('COUNTER_LOGIC_CODING.getTiposCuentas') is not null
  202. DROP PROCEDURE COUNTER_LOGIC_CODING.getTiposCuentas
  203.  
  204. IF OBJECT_ID('COUNTER_LOGIC_CODING.getPaises') is not null
  205. DROP PROCEDURE COUNTER_LOGIC_CODING.getPaises
  206.  
  207. IF OBJECT_ID('COUNTER_LOGIC_CODING.ABMROL_AltaRol') is not null
  208. DROP PROCEDURE COUNTER_LOGIC_CODING.ABMROL_AltaRol
  209.  
  210. IF OBJECT_ID('COUNTER_LOGIC_CODING.ABMROL_AltaRolFuncionalidad') is not null
  211. DROP PROCEDURE COUNTER_LOGIC_CODING.ABMROL_AltaRolFuncionalidad
  212.  
  213. IF OBJECT_ID('COUNTER_LOGIC_CODING.ABMROL_getRoles') is not null
  214. DROP PROCEDURE COUNTER_LOGIC_CODING.ABMROL_getRoles
  215.  
  216. IF OBJECT_ID('COUNTER_LOGIC_CODING.ABMROL_bajaRolFuncionalidad') is not null
  217. DROP PROCEDURE COUNTER_LOGIC_CODING.ABMROL_bajaRolFuncionalidad
  218.  
  219. IF OBJECT_ID('COUNTER_LOGIC_CODING.ABMROL_habilitarRol') is not null
  220. DROP PROCEDURE COUNTER_LOGIC_CODING.ABMROL_habilitarRol
  221.  
  222. IF OBJECT_ID('COUNTER_LOGIC_CODING.ABMROL_inhabilitarRol') is not null
  223. DROP PROCEDURE COUNTER_LOGIC_CODING.ABMROL_inhabilitarRol
  224.  
  225. IF OBJECT_ID('COUNTER_LOGIC_CODING.Consulta_Saldos_Ultimas10Transferencias') is not null
  226. DROP PROCEDURE COUNTER_LOGIC_CODING.Consulta_Saldos_Ultimas10Transferencias
  227.  
  228. IF OBJECT_ID('COUNTER_LOGIC_CODING.Consulta_Saldos_Ultimos5Depositos') is not null
  229. DROP PROCEDURE COUNTER_LOGIC_CODING.Consulta_Saldos_Ultimos5Depositos
  230.  
  231. IF OBJECT_ID('COUNTER_LOGIC_CODING.Consulta_Saldos_Ultimos5Retiros') is not null
  232. DROP PROCEDURE COUNTER_LOGIC_CODING.Consulta_Saldos_Ultimos5Retiros
  233.  
  234. IF OBJECT_ID('COUNTER_LOGIC_CODING.darDeAltaCliente') is not null
  235. DROP PROCEDURE COUNTER_LOGIC_CODING.darDeAltaCliente
  236.  
  237. IF OBJECT_ID('COUNTER_LOGIC_CODING.darDeBajaUsuario') is not null
  238. DROP PROCEDURE COUNTER_LOGIC_CODING.darDeBajaUsuario
  239.  
  240. IF OBJECT_ID('COUNTER_LOGIC_CODING.darAltaCuenta') is not null
  241. DROP PROCEDURE COUNTER_LOGIC_CODING.darAltaCuenta
  242.  
  243. IF OBJECT_ID('COUNTER_LOGIC_CODING.darBajaCuenta') is not null
  244. DROP PROCEDURE COUNTER_LOGIC_CODING.darBajaCuenta
  245.  
  246. IF OBJECT_ID('COUNTER_LOGIC_CODING.getCuentasHabilitadasByUserID') is not null
  247. DROP PROCEDURE COUNTER_LOGIC_CODING.getCuentasHabilitadasByUserID
  248.  
  249. IF OBJECT_ID('COUNTER_LOGIC_CODING.getCuentasHabilitadas') is not null
  250. DROP PROCEDURE COUNTER_LOGIC_CODING.getCuentasHabilitadas
  251.  
  252. IF OBJECT_ID('COUNTER_LOGIC_CODING.getTarjetas') is not null
  253. DROP PROCEDURE COUNTER_LOGIC_CODING.getTarjetas
  254.  
  255. IF OBJECT_ID('COUNTER_LOGIC_CODING.calcularFechaExpiracion') is not null
  256. DROP FUNCTION COUNTER_LOGIC_CODING.calcularFechaExpiracion
  257.  
  258. IF OBJECT_ID('COUNTER_LOGIC_CODING.editCuenta') is not null
  259. DROP PROCEDURE COUNTER_LOGIC_CODING.editCuenta
  260.  
  261. IF OBJECT_ID('COUNTER_LOGIC_CODING.getCuentas') is not null
  262. DROP PROCEDURE COUNTER_LOGIC_CODING.getCuentas
  263.  
  264. IF OBJECT_ID('COUNTER_LOGIC_CODING.getIdUsuarioByClientName') is not null
  265. DROP PROCEDURE COUNTER_LOGIC_CODING.getIdUsuarioByClientName
  266.  
  267. IF OBJECT_ID('COUNTER_LOGIC_CODING.tieneDeudas') is not null
  268. DROP PROCEDURE COUNTER_LOGIC_CODING.tieneDeudas
  269.  
  270. IF OBJECT_ID('COUNTER_LOGIC_CODING.getCuentasClientNameLike') is not null
  271. DROP PROCEDURE COUNTER_LOGIC_CODING.getCuentasClientNameLike
  272.  
  273. IF OBJECT_ID('COUNTER_LOGIC_CODING.modificarCliente') is not null
  274. DROP PROCEDURE COUNTER_LOGIC_CODING.modificarCliente
  275.  
  276. IF OBJECT_ID('COUNTER_LOGIC_CODING.getUsuariosConCuentasActivas') is not null
  277. DROP PROCEDURE COUNTER_LOGIC_CODING.getUsuariosConCuentasActivas
  278.  
  279. IF OBJECT_ID('COUNTER_LOGIC_CODING.getUserIdByUsername') is not null
  280. DROP PROCEDURE COUNTER_LOGIC_CODING.getUserIdByUsername
  281.  
  282. IF OBJECT_ID('COUNTER_LOGIC_CODING.getCuentaById') is not null
  283. DROP PROCEDURE COUNTER_LOGIC_CODING.getCuentaById
  284.  
  285. IF OBJECT_ID('COUNTER_LOGIC_CODING.altaTransferencia') is not null
  286. DROP PROCEDURE COUNTER_LOGIC_CODING.altaTransferencia
  287.  
  288. IF OBJECT_ID('COUNTER_LOGIC_CODING.getBanco') is not null
  289. DROP PROCEDURE COUNTER_LOGIC_CODING.getBanco
  290.  
  291. IF OBJECT_ID('COUNTER_LOGIC_CODING.getClienteByUserId') is not null
  292. DROP PROCEDURE COUNTER_LOGIC_CODING.getClienteByUserId
  293.  
  294. IF OBJECT_ID('COUNTER_LOGIC_CODING.getEmisor') is not null
  295. DROP PROCEDURE COUNTER_LOGIC_CODING.getEmisor
  296.  
  297. IF OBJECT_ID('COUNTER_LOGIC_CODING.asociarTarjeta') is not null
  298. DROP PROCEDURE COUNTER_LOGIC_CODING.asociarTarjeta
  299.  
  300. IF OBJECT_ID('COUNTER_LOGIC_CODING.getTarjetaByCliente') is not null
  301. DROP PROCEDURE COUNTER_LOGIC_CODING.getTarjetaByCliente
  302.  
  303. IF OBJECT_ID('COUNTER_LOGIC_CODING.modificarTarjeta') is not null
  304. DROP PROCEDURE COUNTER_LOGIC_CODING.modificarTarjeta
  305.  
  306. IF OBJECT_ID('COUNTER_LOGIC_CODING.esDocumentoCorrectoParaElUsuarioLogeado') IS NOT NULL
  307. DROP PROCEDURE COUNTER_LOGIC_CODING.esDocumentoCorrectoParaElUsuarioLogeado;
  308.  
  309. IF OBJECT_ID('COUNTER_LOGIC_CODING.altaRetiro') IS NOT NULL
  310. DROP PROCEDURE COUNTER_LOGIC_CODING.altaRetiro;
  311.  
  312. IF OBJECT_ID('COUNTER_LOGIC_CODING.DEPOSITAR') IS NOT NULL
  313. DROP PROCEDURE COUNTER_LOGIC_CODING.DEPOSITAR;
  314.  
  315. IF OBJECT_ID('COUNTER_LOGIC_CODING.getComisionesById') IS NOT NULL
  316. DROP PROCEDURE COUNTER_LOGIC_CODING.getComisionesById;
  317.  
  318. IF OBJECT_ID('COUNTER_LOGIC_CODING.getComisionesImpagasFromCuenta') IS NOT NULL
  319. DROP PROCEDURE COUNTER_LOGIC_CODING.getComisionesImpagasFromCuenta;
  320.  
  321. IF OBJECT_ID('COUNTER_LOGIC_CODING.cambiarEstadoCuenta') is not null
  322. DROP PROCEDURE COUNTER_LOGIC_CODING.cambiarEstadoCuenta
  323.  
  324. IF OBJECT_ID('COUNTER_LOGIC_CODING.cantidadComisionesImpagas') is not null
  325. DROP PROCEDURE COUNTER_LOGIC_CODING.cantidadComisionesImpagas
  326.  
  327.  
  328. IF OBJECT_ID('COUNTER_LOGIC_CODING.getComisionesById') IS NOT NULL
  329. DROP PROCEDURE COUNTER_LOGIC_CODING.getComisionesById;
  330.  
  331. IF OBJECT_ID('COUNTER_LOGIC_CODING.getComisionesImpagasFromCuenta') IS NOT NULL
  332. DROP PROCEDURE COUNTER_LOGIC_CODING.getComisionesImpagasFromCuenta;
  333.  
  334. IF OBJECT_ID('COUNTER_LOGIC_CODING.cambiarEstadoCuenta') is not null
  335. drop procedure COUNTER_LOGIC_CODING.cambiarEstadoCuenta
  336.  
  337. IF OBJECT_ID('COUNTER_LOGIC_CODING.tieneDeudasByID') is not null
  338. DROP PROCEDURE COUNTER_LOGIC_CODING.tieneDeudasByID
  339.  
  340.  
  341. IF OBJECT_ID('COUNTER_LOGIC_CODING.renovarSubscripcion') is not null
  342. DROP PROCEDURE COUNTER_LOGIC_CODING.renovarSubscripcion
  343.  
  344. IF OBJECT_ID('COUNTER_LOGIC_CODING.editCuentaAdmin') is not null
  345. DROP PROCEDURE COUNTER_LOGIC_CODING.editCuentaAdmin
  346.  
  347. IF OBJECT_ID('COUNTER_LOGIC_CODING.getEstados') is not null
  348. DROP PROCEDURE COUNTER_LOGIC_CODING.getEstados
  349.  
  350. IF OBJECT_ID('COUNTER_LOGIC_CODING.registrarInhabilitacion') is not null
  351. DROP PROCEDURE COUNTER_LOGIC_CODING.registrarInhabilitacion
  352.  
  353. IF OBJECT_ID('COUNTER_LOGIC_CODING.getFacturasCli') is not null
  354. drop procedure COUNTER_LOGIC_CODING.getFacturasCli
  355.  
  356. IF OBJECT_ID('COUNTER_LOGIC_CODING.getComisionesFactura') is not null
  357. drop procedure COUNTER_LOGIC_CODING.getComisionesFactura
  358.  
  359. IF OBJECT_ID('COUNTER_LOGIC_CODING.getFacturaById') is not null
  360. drop procedure COUNTER_LOGIC_CODING.getFacturaById
  361.  
  362. IF OBJECT_ID('COUNTER_LOGIC_CODING.crearFactura') is not null
  363. DROP PROCEDURE COUNTER_LOGIC_CODING.crearFactura
  364.  
  365. IF OBJECT_ID('COUNTER_LOGIC_CODING.agregarComisionPagada') is not null
  366. DROP PROCEDURE COUNTER_LOGIC_CODING.agregarComisionPagada
  367.  
  368. IF OBJECT_ID('COUNTER_LOGIC_CODING.cantidadComisionesImpagas') is not null
  369. DROP PROCEDURE COUNTER_LOGIC_CODING.cantidadComisionesImpagas
  370.  
  371. IF OBJECT_ID('COUNTER_LOGIC_CODING.TOTAL_FACTURADO_PARA_DISTINTOS_TIPOS_DE_CUENTAS') is not null
  372. drop procedure COUNTER_LOGIC_CODING.TOTAL_FACTURADO_PARA_DISTINTOS_TIPOS_DE_CUENTAS
  373.  
  374. IF OBJECT_ID('COUNTER_LOGIC_CODING.PAISES_CON_MAYOR_CANTIDAD_DE_MOVIMIENTOS') is not null
  375. drop procedure COUNTER_LOGIC_CODING.PAISES_CON_MAYOR_CANTIDAD_DE_MOVIMIENTOS
  376.  
  377. IF OBJECT_ID('COUNTER_LOGIC_CODING.CLIENTES_CON_MAYOR_CANTIDAD_DE_TRANSACCIONES_ENTRE_CUENTAS_PROPIAS') is not null
  378. drop procedure COUNTER_LOGIC_CODING.CLIENTES_CON_MAYOR_CANTIDAD_DE_TRANSACCIONES_ENTRE_CUENTAS_PROPIAS
  379.  
  380. IF OBJECT_ID('COUNTER_LOGIC_CODING.CLIENTES_CON_MAYOR_CANTIDAD_DE_COMISIONES') is not null
  381. drop procedure COUNTER_LOGIC_CODING.CLIENTES_CON_MAYOR_CANTIDAD_DE_COMISIONES
  382.  
  383. IF OBJECT_ID('COUNTER_LOGIC_CODING.CLIENTES_CON_CUENTAS_INHABILITADAS_POR_AUSENCIA_DE_PAGO') is not null
  384. drop procedure COUNTER_LOGIC_CODING.CLIENTES_CON_CUENTAS_INHABILITADAS_POR_AUSENCIA_DE_PAGO
  385.  
  386.  
  387. ------------------------------------------------
  388. -- Eliminación de schema
  389. ------------------------------------------------
  390.  
  391. IF EXISTS (SELECT * FROM sys.schemas WHERE name = N'COUNTER_LOGIC_CODING')
  392. DROP SCHEMA COUNTER_LOGIC_CODING
  393.  
  394.  
  395. --**************************************************************************
  396. -- CREACION DE OBJETOS DE LA EJECUCION ACTUAL
  397. --**************************************************************************
  398.  
  399. ---------------------------
  400. -- Creacin de schema -----
  401. ---------------------------
  402. USE GD1C2015
  403. GO
  404.  
  405. CREATE SCHEMA COUNTER_LOGIC_CODING AUTHORIZATION gd
  406. GO
  407.  
  408. SET ANSI_NULLS ON
  409. GO
  410.  
  411. SET QUOTED_IDENTIFIER ON
  412. GO
  413.  
  414. SET ANSI_PADDING ON
  415. GO
  416.  
  417. -------------------------------------------------------------
  418. -- Creacion de Tabla INCONSISTENCIAS
  419. -- ----------------------------------------------------------
  420.  
  421. CREATE TABLE COUNTER_LOGIC_CODING.INCONSISTENCIAS(
  422. Codigo_Banco INT,
  423. Nombre_Banco VARCHAR(250),
  424. Direccion_Banco VARCHAR(250),
  425. Cheque_Numero NUMERIC(18,0),
  426. Cheque_Fecha DATETIME,
  427. Cheque_Importe NUMERIC(18,2),
  428. Retiro_Codigo NUMERIC(18,0),
  429. Retiro_Fecha DATETIME,
  430. Retiro_Importe NUMERIC(18,2)
  431. );
  432.  
  433. ------------------------------------------------------------
  434. -- Creacion de Tabla Emisores
  435. -- ---------------------------------------------------------
  436.  
  437. CREATE TABLE COUNTER_LOGIC_CODING.EMISOR(
  438. Id INT IDENTITY(1,1) PRIMARY KEY,
  439. Descripcion VARCHAR(255)
  440. );
  441.  
  442. ------------------------------------------------------------
  443. -- Creacion de Tabla BANCO
  444. -- ---------------------------------------------------------
  445.  
  446. CREATE TABLE COUNTER_LOGIC_CODING.BANCO (
  447. Id INT IDENTITY(0,1) PRIMARY KEY,
  448. Nombre VARCHAR(255),
  449. Direccion VARCHAR(255)
  450. );
  451.  
  452. -------------------------------------------------------------
  453. -- Creacion de Tabla MONEDA
  454. -- ----------------------------------------------------------
  455.  
  456. CREATE TABLE COUNTER_LOGIC_CODING.MONEDA (
  457. Id INT IDENTITY(0,1) PRIMARY KEY,
  458. Descripcion VARCHAR(255) NOT NULL
  459. );
  460.  
  461. -------------------------------------------------------------
  462. -- Creacion de Tabla TIPO_CUENTA
  463. -- ----------------------------------------------------------
  464.  
  465. CREATE TABLE COUNTER_LOGIC_CODING.TIPO_CUENTA (
  466. Id INT IDENTITY(0,1) PRIMARY KEY,
  467. Descripcion VARCHAR(255) NOT NULL,
  468. Duracion INT,
  469. Costo_Subscripcion NUMERIC(18,2) NOT NULL,
  470. Costo_Transferencia_A_Terceros NUMERIC(18,2) NOT NULL,
  471. CONSTRAINT Chk_Costos_Tipo_Datos CHECK(Costo_Subscripcion >= 0 AND Costo_Transferencia_A_Terceros >= 0)
  472. );
  473.  
  474. -------------------------------------------------------------
  475. -- Creacion de Tabla FUNCIONALIDAD
  476. -- ----------------------------------------------------------
  477. CREATE TABLE COUNTER_LOGIC_CODING.FUNCIONALIDAD (
  478. Id INT IDENTITY(0,1) PRIMARY KEY,
  479. Descripcion VARCHAR(255) NOT NULL
  480. );
  481.  
  482. -------------------------------------------------------------
  483. -- Creacion de Tabla ROL
  484. -- ----------------------------------------------------------
  485. CREATE TABLE COUNTER_LOGIC_CODING.ROL (
  486. Id INT IDENTITY(0,1) PRIMARY KEY,
  487. Descripcion VARCHAR(25) NOT NULL,
  488. Estado BIT NOT NULL DEFAULT(1)
  489. );
  490.  
  491. -------------------------------------------------------------
  492. -- Creacion de Tabla USUARIO
  493. -- ----------------------------------------------------------
  494.  
  495. CREATE TABLE COUNTER_LOGIC_CODING.USUARIO (
  496. Id INT IDENTITY(0,1) PRIMARY KEY,
  497. Username VARCHAR(255) NOT NULL unique,
  498. Fecha_Creacion DATETIME NOT NULL,
  499. Fecha_Ultima_Modificacion DATETIME NOT NULL,
  500. Pregunta_Secreta VARCHAR(255) NOT NULL,
  501. Respuesta_Secreta varbinary(32) NOT NULL, /* Hash SHA256 */
  502. Contrasenia varbinary(32) NOT NULL, /* Hash SHA256 */
  503. Estado BIT NOT NULL,
  504. Intentos_Login INT NOT NULL DEFAULT 0
  505. );
  506.  
  507. -------------------------------------------------------------
  508. -- Creacion de Tabla PAIS
  509. -- ----------------------------------------------------------
  510.  
  511. CREATE TABLE COUNTER_LOGIC_CODING.PAIS (
  512. Id INT IDENTITY(0,1) PRIMARY KEY,
  513. Descripcion VARCHAR(250) UNIQUE NOT NULL
  514. );
  515.  
  516. -------------------------------------------------------------
  517. -- Creacion de Tabla ROL_X_USUARIO
  518. -- ----------------------------------------------------------
  519.  
  520. CREATE TABLE COUNTER_LOGIC_CODING.ROL_X_USUARIO (
  521. Usuario INT NOT NULL, /*FK*/
  522. Rol INT NOT NULL, /*FK*/
  523. CONSTRAINT Pk_Compuesta_Rol_X_Usuario PRIMARY KEY(Usuario,Rol),
  524. CONSTRAINT Fk_Rol_X_Usuario_Usuario FOREIGN KEY (Usuario) REFERENCES COUNTER_LOGIC_CODING.USUARIO(Id),
  525. CONSTRAINT Fk_Rol_X_Usuario_Rol FOREIGN KEY (Rol) REFERENCES COUNTER_LOGIC_CODING.ROL(Id)
  526. );
  527.  
  528.  
  529. -------------------------------------------------------------
  530. -- Creacion de Tabla FUNCIONALIDAD_X_ROL
  531. -- ----------------------------------------------------------
  532.  
  533. CREATE TABLE COUNTER_LOGIC_CODING.FUNCIONALIDAD_X_ROL (
  534. Rol INT NOT NULL, /*FK*/
  535. Funcionalidad INT NOT NULL, /*FK*/
  536. CONSTRAINT Pk_Compuesta_Funcionalidad_x_Rol PRIMARY KEY(Rol,Funcionalidad),
  537. CONSTRAINT Fk_Funcionalidad_x_Rol_Rol FOREIGN KEY (Rol) REFERENCES COUNTER_LOGIC_CODING.ROL(Id),
  538. CONSTRAINT Fk_Funcionalidad_x_Rol_Funcionalidad FOREIGN KEY (Funcionalidad) REFERENCES COUNTER_LOGIC_CODING.FUNCIONALIDAD(Id)
  539. );
  540.  
  541.  
  542.  
  543. -------------------------------------------------------------
  544. -- Creacion de Tabla TIPO_DOCUMENTO
  545. -- ----------------------------------------------------------
  546.  
  547. CREATE TABLE COUNTER_LOGIC_CODING.TIPO_DOCUMENTO(
  548. Id INT IDENTITY(0,1) PRIMARY KEY,
  549. Descripcion VARCHAR(255) NOT NULL
  550. );
  551.  
  552. -------------------------------------------------------------
  553. -- Creacion de Tabla CLIENTE
  554. -- ----------------------------------------------------------
  555.  
  556. CREATE TABLE COUNTER_LOGIC_CODING.CLIENTE(
  557. ID INT IDENTITY(0,1) PRIMARY KEY,
  558. Usuario INT NOT NULL, /*FK*/
  559. Pais INT NOT NULL, /*FK*/
  560. Tipo_Documento INT NOT NULL, /*FK*/
  561. Nacionalidad INT, /*FK*/
  562. Mail VARCHAR(255) NOT NULL,
  563. Fecha_nac DATETIME NOT NULL,
  564. Dom_Calle VARCHAR(255) NOT NULL,
  565. Dom_Nro NUMERIC(18,0) NOT NULL,
  566. Dom_Depto VARCHAR(10),
  567. Dom_Piso NUMERIC(18,0),
  568. Localidad VARCHAR(60) DEFAULT '',
  569. Nombre VARCHAR(255) NOT NULL,
  570. Apellido VARCHAR(255) NOT NULL,
  571. Nro_Doc NUMERIC(18,0) NOT NULL,
  572. CONSTRAINT chk_Domicilio_y_Documento CHECK(Dom_Nro > 0 AND Nro_Doc > 0) ,
  573. CONSTRAINT Fk_Cliente_Usuario FOREIGN KEY (Usuario) REFERENCES COUNTER_LOGIC_CODING.USUARIO(Id),
  574. CONSTRAINT Fk_Cliente_PaIS FOREIGN KEY (Pais) REFERENCES COUNTER_LOGIC_CODING.PAIS(Id),
  575. CONSTRAINT Fk_Cliente_Tipo_Documento FOREIGN KEY (Tipo_Documento) REFERENCES COUNTER_LOGIC_CODING.TIPO_DOCUMENTO(Id),
  576. CONSTRAINT Fk_Cliente_Nacionalidad FOREIGN KEY (Nacionalidad) REFERENCES COUNTER_LOGIC_CODING.PAIS(Id)
  577. );
  578.  
  579.  
  580. -------------------------------------------------------------
  581. -- Creacion de Tabla CHEQUE
  582. -- ----------------------------------------------------------
  583.  
  584. CREATE TABLE COUNTER_LOGIC_CODING.CHEQUE (
  585. Id NUMERIC(18,0) IDENTITY(0,1) PRIMARY KEY,
  586. Banco INT NOT NULL, /*FK*/
  587. Cliente INT NOT NULL,
  588. CONSTRAINT Fk_Cheque_Cliente FOREIGN KEY (Cliente) REFERENCES COUNTER_LOGIC_CODING.CLIENTE(Id)
  589. );
  590.  
  591. -------------------------------------------------------------
  592. -- Creacion de Tabla TARJETA
  593. -- ----------------------------------------------------------
  594.  
  595. CREATE TABLE COUNTER_LOGIC_CODING.TARJETA(
  596. id BIGINT IDENTITY(0,1) PRIMARY KEY,
  597. Numero varbinary(250) NOT NULL,
  598. Banco_Emisor INT NOT NULL, /*FK*/
  599. Cliente INT NOT NULL, /*FK*/
  600. Fecha_Emision DATETIME NOT NULL,
  601. Fecha_Vencimiento DATETIME NOT NULL,
  602. Codigo_Seguridad varbinary(250) NOT NULL,
  603. Ultimos_Digitos VARCHAR(4) NOT NULL,
  604. Estado bit default 1,
  605. Titular varchar(255),
  606. CONSTRAINT chk_Fecha_Emision_Menor_Fecha_Vencimiento CHECK(Fecha_Emision <= Fecha_Vencimiento),
  607. CONSTRAINT Fk_Tarjeta_Cliente FOREIGN KEY (Cliente) REFERENCES COUNTER_LOGIC_CODING.CLIENTE(Id),
  608. CONSTRAINT Fk_Tarjeta_Emisor FOREIGN KEY (Banco_Emisor) REFERENCES COUNTER_LOGIC_CODING.EMISOR(Id)
  609. );
  610.  
  611.  
  612.  
  613. -------------------------------------------------------------
  614. -- Creacion de Tabla CUENTA y ESTADOS_CUENTA
  615. -- ----------------------------------------------------------
  616. CREATE TABLE COUNTER_LOGIC_CODING.ESTADOS_CUENTA(
  617. Id INT IDENTITY(1,1) PRIMARY KEY,
  618. Descripcion VARCHAR(255) );
  619.  
  620. CREATE TABLE COUNTER_LOGIC_CODING.CUENTA (
  621. Id NUMERIC(18,0) IDENTITY(0,1) PRIMARY KEY,
  622. Tipo_Cuenta INT NOT NULL, /*FK*/
  623. Moneda INT NOT NULL, /*FK*/
  624. Pais INT NOT NULL, /*FK*/
  625. Cliente INT NOT NULL, /*FK*/
  626. Fecha_Creacion DATETIME NOT NULL,
  627. Fecha_Cierre DATETIME,
  628. Fecha_Expiracion datetime,
  629. Estado INT NOT NULL ,
  630. Saldo NUMERIC(18,2) CHECK(Saldo >= 0),
  631. CONSTRAINT Fk_Cuenta_Tipo_Cuenta FOREIGN KEY (Tipo_Cuenta) REFERENCES COUNTER_LOGIC_CODING.TIPO_CUENTA(Id),
  632. CONSTRAINT Fk_Cuenta_Moneda FOREIGN KEY (Moneda) REFERENCES COUNTER_LOGIC_CODING.MONEDA(Id),
  633. CONSTRAINT Fk_Cuenta_PaIS FOREIGN KEY (Pais) REFERENCES COUNTER_LOGIC_CODING.PAIS(Id),
  634. CONSTRAINT Fk_Cuenta_Cliente FOREIGN KEY (Cliente) REFERENCES COUNTER_LOGIC_CODING.CLIENTE(Id),
  635. CONSTRAINT Fk_Cuenta_EstadoCuenta FOREIGN KEY (Estado) REFERENCES COUNTER_LOGIC_CODING.ESTADOS_CUENTA(Id)
  636.  
  637. );
  638. -------------------------------------------------------------
  639. -- Creacion de Tabla INHABILITACION_TRANSACCION
  640. -- ----------------------------------------------------------
  641. CREATE TABLE COUNTER_LOGIC_CODING.INHABILITACION_TRANSACCION(
  642. Id NUMERIC(18,0) IDENTITY(1,1) PRIMARY KEY,
  643. Cuenta NUMERIC(18,0) not null,
  644. Fecha DATETIME not null,
  645. CONSTRAINT Fk_Inhabilitacion_Cuenta FOREIGN KEY (Cuenta) REFERENCES COUNTER_LOGIC_CODING.CUENTA(Id)
  646. );
  647.  
  648. -------------------------------------------------------------
  649. -- Creacion de Tabla Operaciones
  650. -- ----------------------------------------------------------
  651. CREATE TABLE COUNTER_LOGIC_CODING.OPERACION (
  652. Id NUMERIC(18,0) IDENTITY(1,1) PRIMARY KEY,
  653. Cuenta NUMERIC(18,0), /*FK*/
  654. Moneda INT, /*FK*/
  655. Fecha DATETIME,
  656. Importe REAL CHECK (Importe >= 0),
  657. CONSTRAINT Fk_Operacion_Cuenta FOREIGN KEY (Cuenta) REFERENCES COUNTER_LOGIC_CODING.CUENTA(Id),
  658. CONSTRAINT FK_Operacion_Moneda FOREIGN KEY (Moneda) REFERENCES COUNTER_LOGIC_CODING.MONEDA(Id)
  659. );
  660.  
  661. -------------------------------------------------------------
  662. -- Creacion de Tabla Cambio de Cuenta y Apertura Cuenta
  663. -- ----------------------------------------------------------
  664. CREATE TABLE COUNTER_LOGIC_CODING.CAMBIO_DE_TIPO_CUENTA(
  665. Id NUMERIC(18,0) PRIMARY KEY,
  666. Cuenta NUMERIC(18,0) NOT NULL,
  667. Tipo_Original INT NOT NULL,
  668. Tipo_Destino INT NOT NULL,
  669. Fecha DATETIME,
  670. CONSTRAINT Fk_OP_CambioCuenta FOREIGN KEY (Id) REFERENCES COUNTER_LOGIC_CODING.OPERACION(Id),
  671. CONSTRAINT Fk_Cuenta_CambioCuenta FOREIGN KEY (Cuenta) REFERENCES COUNTER_LOGIC_CODING.CUENTA(Id),
  672. CONSTRAINT Fk_Cuenta_CambioCuenta_TipoOriginal FOREIGN KEY (Tipo_Original) REFERENCES COUNTER_LOGIC_CODING.TIPO_CUENTA(Id),
  673. CONSTRAINT Fk_Cuenta_CambioCuenta_TipoDestino FOREIGN KEY (Tipo_Destino) REFERENCES COUNTER_LOGIC_CODING.TIPO_CUENTA(Id)
  674. )
  675.  
  676. CREATE TABLE COUNTER_LOGIC_CODING.APERTURA_CUENTA(
  677. Id NUMERIC(18,0) PRIMARY KEY, /*FK*/
  678. Cuenta NUMERIC(18,0), /*FK*/
  679. Tipo_Cuenta INT, /*FK*/
  680. Cliente INT, /*FK*/
  681. CONSTRAINT Fk_Apertura_Operacion FOREIGN KEY (Id) REFERENCES COUNTER_LOGIC_CODING.OPERACION(Id),
  682. CONSTRAINT Fk_Apertura_Cuenta FOREIGN KEY (Cuenta) REFERENCES COUNTER_LOGIC_CODING.CUENTA(Id),
  683. CONSTRAINT Fk_Apertura_TipoCuenta FOREIGN KEY (Tipo_Cuenta) REFERENCES COUNTER_LOGIC_CODING.TIPO_CUENTA(Id),
  684. CONSTRAINT Fk_Apertura_Cliente FOREIGN KEY (Cliente) REFERENCES COUNTER_LOGIC_CODING.CLIENTE(Id)
  685. )
  686. -------------------------------------------------------------
  687. -- Creacion de Tabla RETIRO
  688. -- ----------------------------------------------------------
  689.  
  690. CREATE TABLE COUNTER_LOGIC_CODING.RETIRO (
  691. Id NUMERIC(18,0) PRIMARY KEY, /*FK*/
  692. Cheque NUMERIC(18,0) NOT NULL, /*FK*/
  693. ID_retiro numeric(18,0) identity(1,1) unique,
  694. CONSTRAINT Fk_Retiro_Cheque FOREIGN KEY (Cheque) REFERENCES COUNTER_LOGIC_CODING.CHEQUE(Id),
  695. CONSTRAINT Fk_Retiro_Operacion FOREIGN KEY (Id) REFERENCES COUNTER_LOGIC_CODING.OPERACION(Id)
  696. );
  697.  
  698. -------------------------------------------------------------
  699. -- Creacion de tabla FACTURA
  700. -- ----------------------------------------------------------
  701.  
  702. CREATE TABLE COUNTER_LOGIC_CODING.FACTURA (
  703. Id NUMERIC(18,0) IDENTITY(0,1) PRIMARY KEY,
  704. Cliente INT NOT NULL, /*FK*/
  705. Fecha DATETIME NOT NULL,
  706. CONSTRAINT Fk_Factura_Cliente FOREIGN KEY (Cliente) REFERENCES COUNTER_LOGIC_CODING.CLIENTE(Id)
  707. );
  708.  
  709. -------------------------------------------------------------
  710. -- Creacion de tabla DEPOSITO
  711. -- ----------------------------------------------------------
  712.  
  713. CREATE TABLE COUNTER_LOGIC_CODING.DEPOSITO (
  714. Id NUMERIC(18,0) PRIMARY KEY, /*FK*/
  715. Tarjeta BIGINT NOT NULL, /*FK*/
  716. ID_Depo numeric(18,0) identity(1,1) unique,
  717. CONSTRAINT Fk_Deposito_Tarjeta FOREIGN KEY (tarjeta) REFERENCES COUNTER_LOGIC_CODING.TARJETA(Id),
  718. CONSTRAINT FK_Deposito_Operacion FOREIGN KEY (Id) REFERENCES COUNTER_LOGIC_CODING.OPERACION(Id)
  719. );
  720.  
  721.  
  722. -------------------------------------------------------------
  723. -- Creacion de tabla TRANSFERENCIA
  724. -- ----------------------------------------------------------
  725.  
  726.  
  727. CREATE TABLE COUNTER_LOGIC_CODING.TRANSFERENCIA(
  728. Id NUMERIC(18,0) PRIMARY KEY, /*FK*/
  729. Cuenta_Destino NUMERIC(18,0) NOT NULL, /*FK*/
  730. Costo REAL CHECK (Costo >= 0),
  731. ID_Transf numeric(18,0) identity(1,1) unique,
  732. CONSTRAINT Fk_Transferencia_Cuenta_Destino FOREIGN KEY (Cuenta_Destino) REFERENCES COUNTER_LOGIC_CODING.CUENTA(Id),
  733. CONSTRAINT FK_Transferencia_Oeracion FOREIGN KEY (Id) REFERENCES COUNTER_LOGIC_CODING.OPERACION(Id)
  734. );
  735.  
  736. -------------------------------------------------------------
  737. -- Creacion de Tabla ITEM && Comision
  738. -- ----------------------------------------------------------
  739. CREATE TABLE COUNTER_LOGIC_CODING.COMISION(
  740. Id BIGINT IDENTITY(0,1) PRIMARY KEY,
  741. Cuenta NUMERIC(18,0) NOT NULL,
  742. Factura NUMERIC(18,0),
  743. Descripcion VARCHAR(255) NOT NULL,
  744. Operacion NUMERIC(18,0),
  745. Tipo_Cuenta INT NOT NULL,
  746. Monto NUMERIC(18,2) NOT NULL,
  747. CONSTRAINT FK_Comision_Cuenta FOREIGN KEY (Cuenta) REFERENCES COUNTER_LOGIC_CODING.CUENTA(Id),
  748. CONSTRAINT FK_Comision_TipoCuenta FOREIGN KEY (Tipo_Cuenta) REFERENCES COUNTER_LOGIC_CODING.TIPO_CUENTA(Id),
  749. CONSTRAINT FK_Comision_Operacion FOREIGN KEY (Operacion) REFERENCES COUNTER_LOGIC_CODING.OPERACION(Id),
  750. CONSTRAINT FK_Comision_Factura FOREIGN KEY (Factura) REFERENCES COUNTER_LOGIC_CODING.Factura(Id)
  751. );
  752.  
  753. CREATE TABLE COUNTER_LOGIC_CODING.ITEM (
  754. Id INT IDENTITY(0,1) PRIMARY KEY,
  755. Factura NUMERIC(18,0) NOT NULL,
  756. Comision BIGINT NOT NULL,
  757. CONSTRAINT FK_Item_Comision FOREIGN KEY (Comision) REFERENCES COUNTER_LOGIC_CODING.COMISION(Id),
  758. CONSTRAINT Fk_item_Factura FOREIGN KEY (Factura) REFERENCES COUNTER_LOGIC_CODING.FACTURA(Id),
  759. );
  760.  
  761. -------------------------------------------------------------
  762. -- Creacion de Tabla LOG_LOGIN
  763. -- ----------------------------------------------------------
  764.  
  765. CREATE TABLE COUNTER_LOGIC_CODING.LOG_LOGIN (
  766. Id INT IDENTITY(0,1) PRIMARY KEY,
  767. Usuario INT NOT NULL, /*FK*/
  768. Fecha DATETIME NOT NULL DEFAULT GETDATE(),
  769. Estado BIT NOT NULL,
  770. Numero_De_Intento INT,
  771. CONSTRAINT Fk_Login_Usuario FOREIGN KEY (Usuario) REFERENCES COUNTER_LOGIC_CODING.USUARIO(Id)
  772. );
  773.  
  774.  
  775.  
  776. -------------------------------------------------------------
  777. --
  778. --
  779. --
  780. -- Migraciones
  781. --
  782. --
  783. --
  784. ------------------------------------------------------------
  785. -- Migracion de Pais
  786. -- ---------------------------------------------------------
  787.  
  788. SET IDENTITY_INSERT COUNTER_LOGIC_CODING.PAIS ON
  789. INSERT INTO COUNTER_LOGIC_CODING.PAIS (Id, Descripcion)
  790. (
  791. SELECT Cuenta_Pais_Codigo, Cuenta_Pais_Desc
  792. FROM GD1C2015.gd_esquema.Maestra
  793. UNION (SELECT Cli_Pais_Codigo,Cli_Pais_Desc FROM GD1C2015.gd_esquema.Maestra)
  794. );
  795. SET IDENTITY_INSERT COUNTER_LOGIC_CODING.PAIS OFF
  796.  
  797. ------------------------------------------------------------
  798. -- Migracion de Tipo_Documento
  799. -- ---------------------------------------------------------
  800. SET IDENTITY_INSERT COUNTER_LOGIC_CODING.TIPO_DOCUMENTO ON
  801. INSERT INTO COUNTER_LOGIC_CODING.TIPO_DOCUMENTO(Id,Descripcion)
  802. SELECT DISTINCT Cli_Tipo_Doc_Cod, Cli_Tipo_Doc_Desc FROM gd_esquema.Maestra;
  803. SET IDENTITY_INSERT COUNTER_LOGIC_CODING.TIPO_DOCUMENTO OFF
  804.  
  805. ------------------------------------------------------------
  806. -- Creacion de Moneda
  807. -- ---------------------------------------------------------
  808.  
  809. INSERT INTO COUNTER_LOGIC_CODING.MONEDA (Descripcion) VALUES ('Dolares');
  810.  
  811. ------------------------------------------------------------
  812. -- Creacion de Estados_Cuenta
  813. -- ---------------------------------------------------------
  814. INSERT INTO COUNTER_LOGIC_CODING.ESTADOS_CUENTA (descripcion) VALUES ('Habilitada'), ('Deshabilitada'), ('Pendiente de Activacion')
  815. ,('Cerrada')
  816. ------------------------------------------------------------
  817. -- Migracion Emisores
  818. -- ---------------------------------------------------------
  819. INSERT INTO COUNTER_LOGIC_CODING.EMISOR(descripcion)
  820. SELECT DISTINCT Tarjeta_Emisor_Descripcion FROM gd_esquema.Maestra WHERE Tarjeta_Emisor_Descripcion IS NOT NULL;
  821.  
  822. ------------------------------------------------------------
  823. -- Creacion de Tipo_Cuenta
  824. -- ---------------------------------------------------------
  825.  
  826. INSERT INTO COUNTER_LOGIC_CODING.TIPO_CUENTA(Descripcion,Duracion,Costo_Subscripcion,Costo_Transferencia_A_Terceros)
  827. VALUES ('Gratuita',null,0,0),
  828. ('Bronce',30,150,100),
  829. ('Plata',60,350,60),
  830. ('Oro',60,550,30);
  831.  
  832. ------------------------------------------------------------
  833. -- Creacion de Rol
  834. -- ---------------------------------------------------------
  835.  
  836. INSERT INTO COUNTER_LOGIC_CODING.ROL(Descripcion) VALUES ('Administrador'), ('Cliente');
  837.  
  838. ------------------------------------------------------------
  839. -- Migracion de Banco
  840. -- ---------------------------------------------------------
  841.  
  842. SET IDENTITY_INSERT COUNTER_LOGIC_CODING.BANCO ON
  843. INSERT INTO COUNTER_LOGIC_CODING.BANCO(Id,Nombre,Direccion)
  844. (
  845. SELECT DISTINCT Banco_Cogido,Banco_Nombre,Banco_Direccion
  846. FROM GD1C2015.gd_esquema.Maestra
  847. WHERE Banco_Cogido IS NOT NULL AND Banco_Nombre IS NOT NULL AND Banco_Direccion IS NOT NULL AND NOT (Banco_Cogido = 10004)
  848. );
  849. SET IDENTITY_INSERT COUNTER_LOGIC_CODING.BANCO OFF
  850.  
  851.  
  852. INSERT INTO COUNTER_LOGIC_CODING.INCONSISTENCIAS(Codigo_Banco,Nombre_Banco,Direccion_Banco)
  853. (
  854. SELECT DISTINCT Banco_Cogido,Banco_Nombre,Banco_Direccion
  855. FROM GD1C2015.gd_esquema.Maestra
  856. WHERE Banco_Cogido IS NOT NULL AND Banco_Nombre IS NOT NULL AND Banco_Direccion IS NOT NULL AND Banco_Cogido = 10004
  857. );
  858.  
  859. ------------------------------------------------------------
  860. -- Migracion de Usuarios
  861. -- ---------------------------------------------------------
  862.  
  863. INSERT INTO COUNTER_LOGIC_CODING.USUARIO(Username,Fecha_Creacion,Fecha_Ultima_Modificacion,Pregunta_Secreta,Respuesta_Secreta,Contrasenia,Estado,Intentos_Login)
  864. ( SELECT DISTINCT Cli_Nombre + Cli_Apellido,Cuenta_Fecha_Creacion,Cuenta_Fecha_Creacion,'',convert(varbinary(32),'5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8'),convert(varbinary(32),'5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8'),1,0 FROM gd_esquema.Maestra);
  865.  
  866. INSERT INTO COUNTER_LOGIC_CODING.ROL_X_USUARIO(Rol,Usuario) SELECT 1,Id FROM COUNTER_LOGIC_CODING.USUARIO
  867.  
  868. ------------------------------------------------------------
  869. -- Migracion de Cliente
  870. -- ---------------------------------------------------------
  871.  
  872. INSERT INTO COUNTER_LOGIC_CODING.CLIENTE(Usuario,Nombre,Apellido,Pais,Mail,Fecha_nac,Dom_Calle,Dom_Nro,Dom_Depto,Dom_Piso,Tipo_Documento,Nro_Doc,Nacionalidad)
  873. (SELECT DISTINCT (SELECT Id FROM COUNTER_LOGIC_CODING.USUARIO WHERE Username = (Cli_Nombre + Cli_Apellido)),Cli_Nombre,Cli_Apellido,Cli_Pais_Codigo,Cli_Mail,Cli_Fecha_Nac,Cli_Dom_Calle,Cli_Dom_Nro,Cli_Dom_Depto,Cli_Dom_Piso,Cli_Tipo_Doc_Cod,Cli_Nro_Doc,
  874. Cli_Pais_Codigo FROM gd_esquema.Maestra);
  875.  
  876. ------------------------------------------------------------
  877. -- Migracion de Tarjeta
  878. -- ---------------------------------------------------------
  879.  
  880. INSERT INTO COUNTER_LOGIC_CODING.TARJETA(Numero,Banco_Emisor,Cliente,Fecha_Emision,Fecha_Vencimiento,Codigo_Seguridad,Ultimos_Digitos,Titular)
  881. SELECT DISTINCT HashBytes('MD5',replicate('0',16 - len(Tarjeta_Numero)) + Tarjeta_Numero),(SELECT id FROM COUNTER_LOGIC_CODING.EMISOR WHERE descripcion = Tarjeta_Emisor_Descripcion ),
  882. (SELECT cli.Id FROM COUNTER_LOGIC_CODING.CLIENTE cli WHERE Nro_Doc = Cli_Nro_Doc AND Tipo_Documento = (SELECT Id FROM COUNTER_LOGIC_CODING.TIPO_DOCUMENTO WHERE Descripcion = 'Pasaporte')),
  883. Tarjeta_Fecha_Emision,Tarjeta_Fecha_Vencimiento,HashBytes('MD5',Tarjeta_Codigo_Seg), RIGHT(Tarjeta_Numero,4),Cli_Nombre + '' + Cli_Apellido FROM gd_esquema.Maestra
  884. WHERE Tarjeta_Numero IS NOT NULL
  885.  
  886. ------------------------------------------------------------
  887. -- Migracion de Cuenta. Primero pone como DEFAULT a todas como habilitadas, luego hace un update para ver su estado REAL
  888. -- ---------------------------------------------------------
  889.  
  890. SET IDENTITY_INSERT COUNTER_LOGIC_CODING.CUENTA ON --Fecha de expiracion en null significa cuenta gratuita
  891. INSERT INTO COUNTER_LOGIC_CODING.CUENTA(Id,Tipo_Cuenta,Moneda,Pais,Cliente,Fecha_Creacion,Fecha_Cierre,Estado,Saldo)
  892. (
  893. SELECT DISTINCT Cuenta_Numero,0,0,
  894. (SELECT Id FROM COUNTER_LOGIC_CODING.PAIS WHERE Id = Cuenta_Pais_Codigo AND Descripcion = Cuenta_Pais_Desc),
  895. (SELECT id FROM COUNTER_LOGIC_CODING.CLIENTE WHERE
  896. Tipo_Documento = Cli_Tipo_Doc_Cod AND Nro_Doc = Cli_Nro_Doc ) ,Cuenta_Fecha_Creacion,Cuenta_Fecha_Cierre,1,1 FROM gd_esquema.Maestra)
  897.  
  898. SET IDENTITY_INSERT COUNTER_LOGIC_CODING.CUENTA OFF
  899.  
  900. ------------------------------------------------------------
  901. -- Migracion de Cheques
  902. -- ---------------------------------------------------------
  903. SET IDENTITY_INSERT COUNTER_LOGIC_CODING.CHEQUE ON
  904. INSERT INTO COUNTER_LOGIC_CODING.CHEQUE(Id,Banco,Cliente)
  905. SELECT Cheque_Numero,case Banco_Cogido when 10004 then 10003 else Banco_Cogido END,(
  906. SELECT id FROM COUNTER_LOGIC_CODING.CLIENTE WHERE Tipo_Documento = Cli_Tipo_Doc_Cod AND Nro_Doc = Cli_Nro_Doc)
  907. FROM gd_esquema.Maestra WHERE Cheque_Numero IS NOT NULL AND Cheque_Importe > 0
  908. SET IDENTITY_INSERT COUNTER_LOGIC_CODING.CHEQUE OFF
  909.  
  910. ------------------------------------------------------------
  911. -- Migracion de datos inconsistentes de Retiros y cheques a inconsistencias
  912. ------------------------------------------------------------
  913.  
  914. INSERT INTO COUNTER_LOGIC_CODING.INCONSISTENCIAS(Cheque_Numero,Cheque_Importe,Cheque_Fecha,Retiro_Codigo,Retiro_Fecha,Retiro_Importe)
  915. SELECT Cheque_Numero,Cheque_Importe,Cheque_Fecha,Retiro_Codigo,Retiro_Fecha,Retiro_Importe FROM gd_esquema.Maestra WHERE Retiro_Codigo IS NOT NULL AND Retiro_Importe <= 0
  916.  
  917.  
  918. -------------------------------------------------------------
  919. -- Migracion de Operaciones pre-existentes (DEPO,RET,TRAN)
  920. -------------------------------------------------------------
  921.  
  922. --Retiros
  923. SET IDENTITY_INSERT COUNTER_LOGIC_CODING.OPERACION ON
  924. INSERT INTO COUNTER_LOGIC_CODING.OPERACION(Id,Cuenta,Moneda,Fecha,Importe)
  925. SELECT DISTINCT Retiro_Codigo,Cuenta_Numero,0,Retiro_Fecha,Retiro_Importe FROM gd_esquema.Maestra WHERE Retiro_Codigo IS NOT NULL AND Retiro_Importe > 0
  926. SET IDENTITY_INSERT COUNTER_LOGIC_CODING.OPERACION OFF
  927.  
  928.  
  929. INSERT INTO COUNTER_LOGIC_CODING.RETIRO(Id,cheque)
  930. SELECT Id,Cheque_Numero FROM gd_esquema.Maestra,COUNTER_LOGIC_CODING.OPERACION WHERE Retiro_Codigo = Id
  931.  
  932. --Depositos
  933. SET IDENTITY_INSERT COUNTER_LOGIC_CODING.OPERACION ON
  934. INSERT INTO COUNTER_LOGIC_CODING.OPERACION(Id,Cuenta,Moneda,Fecha,Importe)
  935. SELECT DISTINCT Deposito_Codigo,Cuenta_Numero,0,Deposito_Fecha,Deposito_Importe FROM gd_esquema.Maestra WHERE Deposito_Codigo IS NOT NULL
  936. SET IDENTITY_INSERT COUNTER_LOGIC_CODING.OPERACION OFF
  937.  
  938.  
  939. INSERT INTO COUNTER_LOGIC_CODING.DEPOSITO(Id,Tarjeta)
  940. SELECT Id,
  941. (SELECT id FROM COUNTER_LOGIC_CODING.TARJETA WHERE Numero = HashBytes('MD5',replicate('0',16 - len(Tarjeta_Numero)) + Tarjeta_Numero)) FROM COUNTER_LOGIC_CODING.OPERACION,gd_esquema.Maestra
  942. WHERE Deposito_Codigo = Id
  943.  
  944. --Transferencias
  945.  
  946. CREATE TABLE COUNTER_LOGIC_CODING.#generadora_id_transferencia(
  947. Operacion NUMERIC(18,0) IDENTITY(1,1),
  948. Cuenta_origen NUMERIC(18,0),
  949. Moneda INT,
  950. Fecha DATETIME,
  951. Importe REAL,
  952. Cuenta_destino NUMERIC(18,0),
  953. Costo REAL,
  954. nro_fac NUMERIC(18,0),
  955. factura_Fecha DATETIME,
  956. item_desc VARCHAR(150))
  957.  
  958. INSERT INTO COUNTER_LOGIC_CODING.#generadora_id_transferencia(Cuenta_origen,Moneda,Fecha,Importe,Cuenta_destino,Costo,nro_fac,factura_Fecha,item_desc)
  959. SELECT DISTINCT Cuenta_Numero,0,Transf_Fecha,Trans_Importe,Cuenta_Dest_Numero,Item_Factura_Importe,Factura_Numero,Factura_Fecha,Item_Factura_Descr FROM gd_esquema.Maestra
  960. WHERE Factura_Numero IS NOT NULL AND Trans_Importe IS NOT NULL
  961.  
  962. SET IDENTITY_INSERT COUNTER_LOGIC_CODING.OPERACION ON
  963. INSERT INTO COUNTER_LOGIC_CODING.OPERACION(Id,Cuenta,Importe,Moneda,Fecha)
  964. SELECT Operacion,Cuenta_origen,Importe,0,Fecha FROM COUNTER_LOGIC_CODING.#generadora_id_transferencia
  965. SET IDENTITY_INSERT COUNTER_LOGIC_CODING.OPERACION OFF
  966.  
  967. INSERT INTO COUNTER_LOGIC_CODING.TRANSFERENCIA(Id,Cuenta_destino,Costo)
  968. SELECT Operacion,Cuenta_destino,Costo FROM COUNTER_LOGIC_CODING.#generadora_id_transferencia
  969.  
  970. ------------------------------------------------------------
  971. -- Migracion de Facturas e Items -- Salen a partir de la anterior tabla temporal
  972. ------------------------------------------------------------
  973.  
  974. SET IDENTITY_INSERT COUNTER_LOGIC_CODING.FACTURA ON
  975. INSERT INTO COUNTER_LOGIC_CODING.FACTURA(Id,Fecha,Cliente)
  976. SELECT DISTINCT Factura_Numero,factura_Fecha,(SELECT id FROM COUNTER_LOGIC_CODING.CLIENTE WHERE Tipo_Documento = Cli_Tipo_Doc_Cod AND Nro_Doc = Cli_Nro_Doc) FROM gd_esquema.Maestra WHERE Factura_Numero IS NOT NULL
  977. SET IDENTITY_INSERT COUNTER_LOGIC_CODING.FACTURA OFF;
  978.  
  979. INSERT INTO COUNTER_LOGIC_CODING.COMISION(Cuenta,Descripcion,Factura,Monto,Operacion,Tipo_Cuenta)
  980. SELECT Cuenta_origen,item_desc,nro_fac,Importe,Operacion,0 FROM COUNTER_LOGIC_CODING.#generadora_id_transferencia
  981.  
  982.  
  983. DROP TABLE COUNTER_LOGIC_CODING.#generadora_id_transferencia
  984. ------------------------------------------------------------
  985. -- Update de Cuentas: habilitadas e inhabilitadas y saldo
  986. ------------------------------------------------------------
  987.  
  988. UPDATE COUNTER_LOGIC_CODING.CUENTA
  989. SET Saldo = (SELECT ISNULL(SUM(a.Deposito_Importe),0) - ISNULL(SUM(a.Retiro_Importe),0) + ISNULL(SUM(b.Trans_Importe),0) - ISNULL(SUM(a.Trans_Importe),0)
  990. FROM gd_esquema.Maestra a ,gd_esquema.Maestra b
  991. WHERE Id = a.Cuenta_Numero AND Id = b.Cuenta_Numero AND b.Cuenta_Dest_Numero = a.Cuenta_Numero)
  992.  
  993. ------------------------------------------------------------
  994. --
  995. --
  996. -- Creacion de administrador
  997. --
  998. --
  999. ------------------------------------------------------------
  1000.  
  1001. INSERT INTO COUNTER_LOGIC_CODING.FUNCIONALIdAD(Descripcion)
  1002. VALUES ('ABM Rol'),('ABM Usuario'),('ABM Cliente'), ('ABM Cuenta'), ('Depositar'), ('Retirar'), ('Transferir'), ('Facturar'), ('Consultar Saldo'),('ListadosEstadisticos'), ('Asociar/Desasociar Tarjetas')
  1003.  
  1004. INSERT INTO COUNTER_LOGIC_CODING.USUARIO(Username,Contrasenia,Fecha_Creacion,Fecha_Ultima_Modificacion,Pregunta_Secreta,Respuesta_Secreta,Estado) --La respuesta es 'bien'
  1005. VALUES('admin',CONVERT(varbinary(32),'e6b87050bfcb8143fcb8db0170a4dc9ed00d904ddd3e2a4ad1b1e8dc0fdc9be7'),GETDATE(),GETDATE(),'hola que tal?',CONVERT(varbinary(32),'48b3f8392fb766ae5aa762acd11fd9d1ad1ac82a5f54ca5fb70fe4aa71dc6ba1'),1),
  1006. ('fer',CONVERT(varbinary(32),'e6b87050bfcb8143fcb8db0170a4dc9ed00d904ddd3e2a4ad1b1e8dc0fdc9be7'),GETDATE(),GETDATE(),'hola que tal?',CONVERT(varbinary(32),'48b3f8392fb766ae5aa762acd11fd9d1ad1ac82a5f54ca5fb70fe4aa71dc6ba1'),1)
  1007.  
  1008. --Fer usuario extra agregado
  1009. INSERT INTO COUNTER_LOGIC_CODING.CLIENTE(Nombre,Apellido,Nro_Doc,Tipo_Documento,Fecha_nac,Dom_Calle,Dom_Depto,Dom_Nro,Dom_Piso,Localidad,Mail,Nacionalidad,Pais,Usuario)
  1010. values ('Fernando','Petryszyn',123456789411,10002,GETDATE(),'Calle','Depto',1234566,24,'Localidad','Mail',1,1,(SELECT ID from COUNTER_LOGIC_CODING.USUARIO where Username = 'fer'))
  1011.  
  1012. INSERT INTO COUNTER_LOGIC_CODING.CUENTA(Cliente,Estado,Fecha_Cierre,Fecha_Creacion,Fecha_Expiracion,Moneda,Pais,Saldo,Tipo_Cuenta)
  1013. values ((SELECT id from COUNTER_LOGIC_CODING.Cliente where Nro_Doc = 123456789411 ),1,null,GETDATE(),GETDATE(),0,1,999999999,3)
  1014.  
  1015. INSERT INTO COUNTER_LOGIC_CODING.TARJETA(Cliente,Banco_Emisor,Codigo_Seguridad,Numero,Estado,Ultimos_Digitos,Fecha_Emision,Fecha_Vencimiento,Titular)
  1016. values((SELECT ID from COUNTER_LOGIC_CODING.CLIENTE where Nro_Doc = 123456789411),1,HASHBYTES('MD5','123444123'),HASHBYTES('MD5','1234567890987654'),1,'7654',GETDATE(),GETDATE(),'Fernando')
  1017.  
  1018. INSERT INTO COUNTER_LOGIC_CODING.ROL_X_USUARIO(Usuario,Rol)
  1019. SELECT Id,0 FROM COUNTER_LOGIC_CODING.USUARIO WHERE Username = 'admin' or Username = 'fer'
  1020. INSERT INTO COUNTER_LOGIC_CODING.ROL_X_USUARIO(Usuario,Rol)
  1021. SELECT Id,1 FROM COUNTER_LOGIC_CODING.USUARIO WHERE Username = 'fer'
  1022.  
  1023.  
  1024. INSERT INTO COUNTER_LOGIC_CODING.FUNCIONALIDAD_X_ROL(Rol,Funcionalidad)
  1025. VALUES(0,0), (0,1), (0,2), (0,3), (0,4), (0,5), (0,6), (0,7), (0,8) ,(0,9), (0,10),
  1026. (1,10), (1,4), (1,5), (1,6), (1,7), (1,8), (1,3)
  1027.  
  1028. -------------------------------------------------------------
  1029. --
  1030. --
  1031. --
  1032. -- Creacion de Procedures
  1033. --
  1034. --
  1035. --
  1036. ------------------------------------------------------------
  1037.  
  1038. GO
  1039. CREATE procedure COUNTER_LOGIC_CODING.getUsuario(@username VARCHAR(255)) as
  1040. BEGIN
  1041. SELECT Id,Username,Estado,Intentos_Login FROM COUNTER_LOGIC_CODING.USUARIO WHERE Username = @username
  1042. END
  1043. GO
  1044. CREATE procedure COUNTER_LOGIC_CODING.funcionalidadDeRol(@rolId INT) as
  1045. BEGIN
  1046. SELECT f.Id,f.Descripcion FROM COUNTER_LOGIC_CODING.FUNCIONALIdAD_X_ROL fxr, COUNTER_LOGIC_CODING.FUNCIONALIdAD f
  1047. WHERE f.Id = fxr.Funcionalidad
  1048. AND @rolId = fxr.Rol
  1049. END
  1050. go
  1051. CREATE PROCEDURE COUNTER_LOGIC_CODING.funcionalidades as
  1052. BEGIN
  1053. SELECT f.Id,f.Descripcion from COUNTER_LOGIC_CODING.FUNCIONALIDAD as f
  1054. END
  1055. GO
  1056.  
  1057. CREATE procedure COUNTER_LOGIC_CODING.getRolesById(@userId INT) as
  1058. BEGIN
  1059. SELECT r.Id,r.Descripcion,r.Estado FROM COUNTER_LOGIC_CODING.ROL r, COUNTER_LOGIC_CODING.ROL_X_USUARIO rxu
  1060. WHERE r.Id = rxu.Rol
  1061. AND rxu.Usuario = @userId
  1062. END
  1063. GO
  1064.  
  1065. CREATE procedure COUNTER_LOGIC_CODING.actualizarIntentos(@username VARCHAR(255),@Cantidad INT) as
  1066. BEGIN
  1067. if @Cantidad = 0 BEGIN
  1068. declare @IntentosActuales INT
  1069. update COUNTER_LOGIC_CODING.USUARIO SET Intentos_Login = Intentos_Login + 1 WHERE Username = @username
  1070. SELECT @IntentosActuales = Intentos_Login FROM COUNTER_LOGIC_CODING.USUARIO WHERE Username = @username
  1071. if (@IntentosActuales) >= 3 BEGIN
  1072. update COUNTER_LOGIC_CODING.USUARIO SET Estado = 0 WHERE Username = @username
  1073. END
  1074. INSERT INTO COUNTER_LOGIC_CODING.LOG_LOGIN(Usuario,Estado,Numero_De_Intento)
  1075. VALUES((SELECT Id FROM COUNTER_LOGIC_CODING.USUARIO WHERE Username = @username)
  1076. ,0,@IntentosActuales)
  1077. END
  1078. else
  1079. BEGIN
  1080. update COUNTER_LOGIC_CODING.USUARIO SET Intentos_Login = 0 WHERE Username = @username
  1081. INSERT INTO COUNTER_LOGIC_CODING.LOG_LOGIN(Usuario,Estado)
  1082. VALUES((SELECT Id FROM COUNTER_LOGIC_CODING.USUARIO WHERE Username = @username),
  1083. 1)
  1084. END
  1085. END
  1086.  
  1087. GO
  1088.  
  1089. CREATE procedure COUNTER_LOGIC_CODING.validar_login(@username VARCHAR(255),@password VARCHAR(255)) as
  1090. BEGIN
  1091. declare @HASH_PASS varbinary(32), @Cantidad INT
  1092. SET @HASH_PASS = CONVERT(VARBINARY(32), @PASSWORD)
  1093. SELECT @Cantidad = COUNT(Username) FROM COUNTER_LOGIC_CODING.USUARIO
  1094. WHERE Estado = 1 AND
  1095. USERNAME = @username AND
  1096. Contrasenia = @HASH_PASS
  1097. exec COUNTER_LOGIC_CODING.actualizarIntentos @username,@Cantidad
  1098. RETURN @Cantidad
  1099. END
  1100.  
  1101. GO
  1102.  
  1103. CREATE procedure COUNTER_LOGIC_CODING.validar_pregunta(@username VARCHAR(255),@respuesta VARCHAR(255)) as
  1104. BEGIN
  1105. declare @HASH_PASS varbinary(32), @Cantidad INT
  1106. SET @HASH_PASS = CONVERT(VARBINARY(32), @respuesta)
  1107. SELECT @Cantidad = COUNT(Username) FROM COUNTER_LOGIC_CODING.USUARIO WHERE Estado = 1 AND
  1108. Username = @username AND
  1109. Respuesta_Secreta = @HASH_PASS
  1110. exec COUNTER_LOGIC_CODING.actualizarIntentos @username,@Cantidad
  1111. return @Cantidad
  1112. END
  1113.  
  1114. GO
  1115.  
  1116. CREATE procedure COUNTER_LOGIC_CODING.getPreguntaUsuario(@username VARCHAR(255)) as BEGIN
  1117. SELECT Pregunta_Secreta FROM COUNTER_LOGIC_CODING.USUARIO WHERE @username = Username
  1118. END
  1119. GO
  1120.  
  1121. CREATE procedure COUNTER_LOGIC_CODING.setPassword(@username VARCHAR(255), @password VARCHAR(255)) as BEGIN
  1122. declare @hash varbinary(32)
  1123. SET @hash = CONVERT(varbinary(32),@password)
  1124. update COUNTER_LOGIC_CODING.USUARIO SET Contrasenia = @hash WHERE Username = @username
  1125. END
  1126.  
  1127. GO
  1128.  
  1129. create function COUNTER_LOGIC_CODING.calcularEstadoCliente(@ID int) returns bit as BEGIN
  1130. return (SELECT Count(*) from COUNTER_LOGIC_CODING.CLIENTE cli,COUNTER_LOGIC_CODING.ROL_X_USUARIO rxu
  1131. where cli.ID = @ID and rxu.Rol = 1 and rxu.Usuario = cli.Usuario)
  1132. END
  1133. GO
  1134.  
  1135.  
  1136. CREATE PROCEDURE COUNTER_LOGIC_CODING.getClientes as BEGIN
  1137. SELECT*,COUNTER_LOGIC_CODING.calcularEstadoCliente(ID) as 'Estado' from COUNTER_LOGIC_CODING.CLIENTE;
  1138. END
  1139.  
  1140.  
  1141. GO
  1142.  
  1143. CREATE PROCEDURE COUNTER_LOGIC_CODING.find_clientes(@Nombre varchar(255) = null,@Apellido varchar(255) = null,@Tipo_Doc int,@Mail varchar(255) = null,@Nro_Doc int = null) as
  1144.  
  1145. BEGIN
  1146. SELECT*,COUNTER_LOGIC_CODING.calcularEstadoCliente(ID) as 'Estado' from COUNTER_LOGIC_CODING.CLIENTE where
  1147. (Nombre like '%' + @Nombre + '%' or @Nombre is null) and
  1148. (Apellido like '%' + @Apellido + '%' or @Apellido is null) and
  1149. (Mail like '%' + @Mail + '%' or @Mail is null) and
  1150. (Tipo_Documento = @Tipo_Doc or @Tipo_Doc = -1) and
  1151. (CONVERT(varchar(255),Nro_Doc) like '%' + CONVERT(varchar(255),@Nro_Doc) + '%' or @Nro_Doc is null)
  1152.  
  1153. END
  1154.  
  1155. GO
  1156.  
  1157. CREATE PROCEDURE COUNTER_LOGIC_CODING.getPais(@id int = null) as BEGIN
  1158. SELECT* from COUNTER_LOGIC_CODING.PAIS where ID = @id or @id is null
  1159. END
  1160. GO
  1161.  
  1162. CREATE PROCEDURE COUNTER_LOGIC_CODING.getTipoDoc(@id int = null) as BEGIN
  1163. SELECT* from COUNTER_LOGIC_CODING.TIPO_DOCUMENTO where (ID = @id or @id is null)
  1164. END
  1165.  
  1166. GO
  1167.  
  1168.  
  1169. CREATE PROCEDURE COUNTER_LOGIC_CODING.getCliente(@ID int = null) as BEGIN
  1170. SELECT*,COUNTER_LOGIC_CODING.calcularEstadoCliente(ID) as 'Estado' from COUNTER_LOGIC_CODING.CLIENTE
  1171. where ID = @ID or @ID is null
  1172. END
  1173.  
  1174. GO
  1175.  
  1176. CREATE PROCEDURE COUNTER_LOGIC_CODING.darDeBajaUsuario(@ID_U int) as BEGIN
  1177. update COUNTER_LOGIC_CODING.USUARIO set Estado = 0 where ID = @ID_U
  1178. END
  1179.  
  1180. GO
  1181.  
  1182. CREATE PROCEDURE COUNTER_LOGIC_CODING.darDeBajaCliente(@ID int) as BEGIN
  1183. declare @U_ID int
  1184. set @U_ID = (SELECT ID from COUNTER_LOGIC_CODING.USUARIO c where c.ID = @ID)
  1185. delete from COUNTER_LOGIC_CODING.ROL_X_USUARIO where Usuario = @U_ID and Rol = 1
  1186. declare @CantidadRoles int
  1187. SELECT @CantidadRoles = COUNT(Rol) from COUNTER_LOGIC_CODING.ROL_X_USUARIO where Usuario = @U_ID group by Usuario
  1188. if @CantidadRoles = 0
  1189. exec COUNTER_LOGIC_CODING.darDeBajaUsuario @ID_U = @U_ID
  1190. END
  1191.  
  1192. go
  1193.  
  1194. CREATE PROCEDURE COUNTER_LOGIC_CODING.COINCIDE_DOCUMENTO(@tipo int, @documento varchar(10)) as BEGIN
  1195. SELECT Id from COUNTER_LOGIC_CODING.CLIENTE where Tipo_Documento = @tipo and Nro_Doc = @documento
  1196. END
  1197.  
  1198. GO
  1199.  
  1200.  
  1201.  
  1202. CREATE PROCEDURE COUNTER_LOGIC_CODING.getTipoCuenta (@IdTipoCuenta INT)
  1203. AS
  1204. BEGIN
  1205. SELECT *
  1206. FROM COUNTER_LOGIC_CODING.TIPO_CUENTA TipoCuenta
  1207. WHERE @IdTipoCuenta = TipoCuenta.Id
  1208. END
  1209.  
  1210. GO
  1211.  
  1212. CREATE PROCEDURE COUNTER_LOGIC_CODING.getRoles as BEGIN
  1213. SELECT * from COUNTER_LOGIC_CODING.ROL
  1214. END
  1215.  
  1216. GO
  1217.  
  1218. CREATE PROCEDURE COUNTER_LOGIC_CODING.darDeAltaCliente(@cli_nombre varchar(255),@cli_appelido varchar(255),
  1219. @cli_fechaNac datetime,@cli_mail varchar(255),
  1220. @cli_pais int,@cli_doc_nro numeric(18,0),@cli_doc_tipo int, @cli_dom_calle varchar(255), @cli_dom_numero numeric(18,0),
  1221. @cli_dom_Depto varchar(255), @cli_dom_piso int, @cli_dom_localidad varchar(255),
  1222. @cli_nacionalidad int, @username varchar(255),@password varchar(255), @pregunta varchar(255),
  1223. @respuesta varchar(255),@fecha_creacion datetime,@fecha_ultimaModif datetime)
  1224. as BEGIN
  1225.  
  1226. declare @HASH_PASS varbinary(32), @HASH_REP varbinary(32),@U_ID INT
  1227. set @HASH_PASS = CONVERT(varbinary(32),@password)
  1228. set @HASH_REP = CONVERT(varbinary(32),@respuesta)
  1229.  
  1230. INSERT INTO COUNTER_LOGIC_CODING.USUARIO(Username,Fecha_Creacion,Fecha_Ultima_Modificacion,Contrasenia,Pregunta_Secreta,Respuesta_Secreta,Intentos_Login,Estado)
  1231. values(@username,@fecha_creacion,@fecha_ultimaModif,@HASH_PASS,@pregunta,@HASH_REP,0,1)
  1232.  
  1233. set @U_ID = SCOPE_IDENTITY()
  1234.  
  1235. insert into COUNTER_LOGIC_CODING.ROL_X_USUARIO(Usuario,Rol) values (@U_ID,1)
  1236.  
  1237.  
  1238. insert into COUNTER_LOGIC_CODING.CLIENTE(Nombre,Apellido,Fecha_nac,Nro_Doc,Tipo_Documento,Usuario,Mail,Dom_Calle,Dom_Nro,Dom_Piso,Dom_Depto,Nacionalidad,Localidad,Pais)
  1239. values (@cli_nombre,@cli_appelido,@cli_fechaNac,@cli_doc_nro,@cli_doc_tipo,@U_ID,@cli_mail,@cli_dom_calle,@cli_dom_numero,@cli_dom_piso,@cli_dom_Depto,@cli_nacionalidad,@cli_dom_localidad,@cli_pais)
  1240.  
  1241. return SCOPE_IDENTITY()
  1242. END
  1243.  
  1244. GO
  1245.  
  1246. CREATE PROCEDURE COUNTER_LOGIC_CODING.modificarCliente(@cli_id int,@cli_nombre varchar(255),@cli_appelido varchar(255),
  1247. @cli_fechaNac datetime,@cli_mail varchar(255),
  1248. @cli_pais int,@cli_doc_nro numeric(18,0),@cli_doc_tipo int, @cli_dom_calle varchar(255), @cli_dom_numero numeric(18,0),
  1249. @cli_dom_Depto varchar(255), @cli_dom_piso int, @cli_dom_localidad varchar(255),
  1250. @cli_nacionalidad int,@cli_estado bit) as BEGIN
  1251.  
  1252.  
  1253. UPDATE COUNTER_LOGIC_CODING.CLIENTE SET
  1254. Nombre = @cli_nombre,
  1255. Apellido = @cli_appelido,
  1256. Fecha_nac = @cli_fechaNac,
  1257. Mail = @cli_mail,
  1258. Pais = @cli_pais,
  1259. Nro_Doc = @cli_doc_nro,
  1260. Tipo_Documento = @cli_doc_tipo,
  1261. Dom_Calle = @cli_dom_calle,
  1262. Dom_Depto = @cli_dom_Depto,
  1263. Dom_Piso = @cli_dom_piso,
  1264. Dom_Nro = @cli_dom_numero,
  1265. Localidad = @cli_dom_localidad,
  1266. Nacionalidad = @cli_nacionalidad
  1267. where ID = @cli_id
  1268.  
  1269. BEGIN TRY
  1270. BEGIN TRAN actualizarEstado
  1271. IF @cli_estado = 1
  1272. INSERT INTO COUNTER_LOGIC_CODING.ROL_X_USUARIO(Rol,Usuario) values (1,(SELECT Usuario from COUNTER_LOGIC_CODING.CLIENTE c where c.ID = @cli_id))
  1273. ELSE
  1274. exec COUNTER_LOGIC_CODING.darDeBajaCliente @ID = @cli_id
  1275. commit TRAN actualizarEstado
  1276. END try
  1277. BEGIN catch
  1278. rollback tran actualizarEstado
  1279. END catch
  1280.  
  1281.  
  1282. END
  1283.  
  1284.  
  1285.  
  1286. GO
  1287.  
  1288. CREATE PROCEDURE COUNTER_LOGIC_CODING.getEstado (@IdEstado INT)
  1289. AS
  1290. BEGIN
  1291. SELECT *
  1292. FROM COUNTER_LOGIC_CODING.ESTADOS_CUENTA Estado
  1293. WHERE @IdEstado = Estado.Id
  1294. END
  1295.  
  1296. GO
  1297.  
  1298. CREATE PROCEDURE COUNTER_LOGIC_CODING.getMoneda (@IdMoneda INT)
  1299. AS
  1300. BEGIN
  1301. SELECT *
  1302. FROM COUNTER_LOGIC_CODING.MONEDA Moneda
  1303. WHERE @IdMoneda = Moneda.Id
  1304. END
  1305.  
  1306. GO
  1307.  
  1308. CREATE PROCEDURE COUNTER_LOGIC_CODING.getCuentasByUserId (@IdUser INT)
  1309. AS
  1310. DECLARE @IdCliente INT
  1311. SET @IdCliente = (SELECT Cliente.Id
  1312. FROM COUNTER_LOGIC_CODING.CLIENTE Cliente
  1313. WHERE @IdUser = Cliente.Usuario)
  1314. BEGIN
  1315. SELECT *
  1316. FROM COUNTER_LOGIC_CODING.CUENTA Cuenta
  1317. WHERE @IdCliente = Cuenta.Cliente
  1318. END
  1319.  
  1320. GO
  1321.  
  1322. CREATE PROCEDURE COUNTER_LOGIC_CODING.getCuentasByClienteId (@IdCliente INT,@estado int = null)
  1323. AS
  1324. BEGIN
  1325. SELECT *
  1326. FROM COUNTER_LOGIC_CODING.CUENTA Cuenta
  1327. WHERE @IdCliente = Cuenta.Cliente and (Estado = @estado or @estado is null)
  1328. END
  1329.  
  1330.  
  1331. GO
  1332.  
  1333.  
  1334.  
  1335. CREATE PROCEDURE COUNTER_LOGIC_CODING.getCuentasByUserIdAndType (@IdUser INT, @IdTipoCuenta INT)
  1336. AS
  1337. DECLARE @IdCliente INT
  1338. SET @IdCliente = (SELECT Cliente.Id
  1339. FROM COUNTER_LOGIC_CODING.CLIENTE Cliente
  1340. WHERE @IdUser = Cliente.Id)
  1341. BEGIN
  1342. SELECT *
  1343. FROM COUNTER_LOGIC_CODING.CUENTA Cuenta
  1344. WHERE @IdCliente = Cuenta.Cliente AND Cuenta.Tipo_Cuenta = @IdTipoCuenta
  1345. END
  1346.  
  1347. GO
  1348.  
  1349. CREATE PROCEDURE COUNTER_LOGIC_CODING.getTiposCuentas
  1350. AS
  1351. BEGIN
  1352. SELECT *
  1353. FROM COUNTER_LOGIC_CODING.TIPO_CUENTA
  1354. END
  1355.  
  1356. GO
  1357.  
  1358. CREATE PROCEDURE COUNTER_LOGIC_CODING.getMonedas
  1359. AS
  1360. BEGIN
  1361. SELECT *
  1362. FROM COUNTER_LOGIC_CODING.MONEDA
  1363. END
  1364. GO
  1365.  
  1366. CREATE PROCEDURE COUNTER_LOGIC_CODING.getPaises
  1367. AS
  1368. BEGIN
  1369. SELECT *
  1370. FROM COUNTER_LOGIC_CODING.PAIS
  1371. END
  1372. GO
  1373.  
  1374.  
  1375.  
  1376.  
  1377. CREATE PROCEDURE COUNTER_LOGIC_CODING.ABMROL_AltaRol (@NombreRol varchar(25))
  1378. AS
  1379. BEGIN
  1380. INSERT INTO COUNTER_LOGIC_CODING.ROL (Descripcion,Estado)
  1381. values (@NombreRol, 1)
  1382.  
  1383. return SCOPE_IDENTITY()
  1384. END
  1385.  
  1386. GO
  1387.  
  1388. CREATE PROCEDURE COUNTER_LOGIC_CODING.ABMROL_AltaRolFuncionalidad (@IdRol int, @NombreFuncionalidad varchar(255))
  1389. AS
  1390.  
  1391. DECLARE @IdFuncionalidad INT
  1392. SET @IdFuncionalidad = (SELECT Id
  1393. FROM COUNTER_LOGIC_CODING.FUNCIONALIDAD
  1394. WHERE @NombreFuncionalidad = Descripcion)
  1395.  
  1396. BEGIN
  1397. INSERT INTO COUNTER_LOGIC_CODING.FUNCIONALIDAD_X_ROL (Rol, Funcionalidad)
  1398. values (@IdRol, @IdFuncionalidad)
  1399.  
  1400. END
  1401.  
  1402. GO
  1403.  
  1404.  
  1405. CREATE PROCEDURE COUNTER_LOGIC_CODING.darAltaCuenta (@IdUsuario NUMERIC(18,0) ,@IdPais NUMERIC(18,0), @FechaCreacion DATETIME,
  1406. @IdMoneda NUMERIC(18,0), @IdTipoCuenta NUMERIC(18,0))
  1407. AS
  1408. BEGIN
  1409. DECLARE @IdCliente NUMERIC(18,0)
  1410. DECLARE @IdUltimaCuenta NUMERIC(18,0)
  1411. DECLARE @IdUltimaOperacion NUMERIC(18,0)
  1412. SET @IdCliente = (SELECT Cliente.Id
  1413. FROM COUNTER_LOGIC_CODING.CLIENTE Cliente
  1414. WHERE @IdUsuario = Cliente.Usuario)
  1415. declare @duracion int
  1416. SELECT @duracion = Duracion from COUNTER_LOGIC_CODING.TIPO_CUENTA where Id = @IdTipoCuenta
  1417.  
  1418. INSERT INTO COUNTER_LOGIC_CODING.CUENTA(Tipo_Cuenta,Moneda,Pais,Cliente,Fecha_Creacion,Fecha_Cierre,Estado,Saldo,Fecha_Expiracion)
  1419. VALUES (@IdTipoCuenta,@IdMoneda,@IdPais,
  1420. @IdCliente,@FechaCreacion,NULL,(SELECT Estado.Id
  1421. FROM COUNTER_LOGIC_CODING.ESTADOS_CUENTA Estado
  1422. WHERE Estado.Descripcion = 'Pendiente de Activacion'),0,@FechaCreacion + @duracion)
  1423.  
  1424.  
  1425. SET @IdUltimaCuenta = @@IDENTITY
  1426.  
  1427.  
  1428.  
  1429. INSERT INTO COUNTER_LOGIC_CODING.OPERACION
  1430. VALUES (@IdUltimaCuenta,@IdMoneda,@FechaCreacion,(SELECT Tipo.Costo_Subscripcion
  1431. FROM COUNTER_LOGIC_CODING.TIPO_CUENTA Tipo
  1432. WHERE Tipo.Id = @IdTipoCuenta))
  1433.  
  1434. SET @IdUltimaOperacion = @@IDENTITY
  1435.  
  1436. INSERT INTO COUNTER_LOGIC_CODING.APERTURA_CUENTA
  1437. VALUES (@IdUltimaOperacion,@IdUltimaCuenta,@IdTipoCuenta,@IdCliente)
  1438.  
  1439. INSERT INTO COUNTER_LOGIC_CODING.COMISION
  1440. VALUES (@IdUltimaCuenta,NULL,'Apertura de cuenta',@IdUltimaOperacion,@IdTipoCuenta, (SELECT Tipo.Costo_Subscripcion
  1441. FROM COUNTER_LOGIC_CODING.TIPO_CUENTA Tipo
  1442. WHERE Tipo.Id = @IdTipoCuenta))
  1443.  
  1444. SELECT @IdUltimaCuenta
  1445. END
  1446.  
  1447. GO
  1448. CREATE PROCEDURE COUNTER_LOGIC_CODING.darBajaCuenta (@IdEstado NUMERIC(18,0), @FechaCierre DATETIME)
  1449. AS
  1450. BEGIN
  1451. UPDATE COUNTER_LOGIC_CODING.CUENTA
  1452. SET Estado = (SELECT Estado.Id FROM COUNTER_LOGIC_CODING.ESTADOS_CUENTA Estado WHERE Estado.Descripcion = 'Cerrada'),
  1453. Fecha_Cierre = @FechaCierre
  1454. WHERE Id = @IdEstado
  1455. END
  1456.  
  1457. GO
  1458.  
  1459. CREATE PROCEDURE COUNTER_LOGIC_CODING.getCuentasHabilitadasByUserID(@id int) AS
  1460. BEGIN
  1461. DECLARE @IdCliente INT
  1462. SET @IdCliente = (SELECT Cliente.Id
  1463. FROM COUNTER_LOGIC_CODING.CLIENTE Cliente
  1464. WHERE @id = Cliente.Usuario)
  1465. SELECT * FROM COUNTER_LOGIC_CODING.CUENTA WHERE Cliente = @IdCliente AND Estado = 1 AND COUNTER_LOGIC_CODING.calcularEstadoCliente(@IdCliente) = 1
  1466. END
  1467.  
  1468. GO
  1469.  
  1470. CREATE PROCEDURE COUNTER_LOGIC_CODING.getCuentasHabilitadas AS
  1471. BEGIN
  1472. SELECT * FROM COUNTER_LOGIC_CODING.CUENTA WHERE Estado = 1
  1473. END
  1474. GO
  1475.  
  1476. CREATE PROCEDURE COUNTER_LOGIC_CODING.getTarjetas(@id int, @fechaSistema datetime = null,@estado int = null) AS
  1477. BEGIN
  1478. SELECT * FROM COUNTER_LOGIC_CODING.TARJETA t, COUNTER_LOGIC_CODING.CLIENTE c WHERE c.Usuario = @id and c.ID = t.Cliente and
  1479. (t.Fecha_Vencimiento >= @fechaSistema or @fechaSistema is null) and (@estado = Estado or @estado is null);
  1480. END
  1481.  
  1482. GO
  1483.  
  1484. GO
  1485.  
  1486. CREATE PROCEDURE COUNTER_LOGIC_CODING.getTarjetaByCliente(@cli_id int) as BEGIN
  1487.  
  1488. SELECT* from COUNTER_LOGIC_CODING.TARJETA where @cli_id = Cliente
  1489.  
  1490. END
  1491.  
  1492. GO
  1493.  
  1494. CREATE PROCEDURE COUNTER_LOGIC_CODING.getBanco(@ID int = null) as BEGIN
  1495. SELECT* from COUNTER_LOGIC_CODING.BANCO where Id = @ID or @ID is null
  1496. END
  1497.  
  1498. GO
  1499.  
  1500. create function COUNTER_LOGIC_CODING.calcularFechaExpiracion(@Expiracion datetime,@FechaSistema datetime, @Duracion int) returns datetime BEGIN
  1501.  
  1502. IF @Expiracion > @FechaSistema
  1503. return @Expiracion + @Duracion
  1504. return @FechaSistema + @Duracion
  1505. END
  1506.  
  1507. GO
  1508.  
  1509. CREATE PROCEDURE COUNTER_LOGIC_CODING.editCuenta (@IdCuenta NUMERIC(18,0),@IdMonedaVieja NUMERIC(18,0),@IdMonedaNueva NUMERIC(18,0),
  1510. @IdPaisViejo NUMERIC(18,0),@IdPaisNuevo NUMERIC(18,0),@IdTipoCuentaVieja NUMERIC(18,0) ,@IdTipoCuentaNueva NUMERIC(18,0),@FechaActual DATETIME)
  1511. AS
  1512. BEGIN
  1513. DECLARE @IdOperacion NUMERIC (18,0)
  1514. IF @IdMonedaNueva != @IdMonedaVieja
  1515. BEGIN
  1516. UPDATE COUNTER_LOGIC_CODING.CUENTA
  1517. SET Moneda = @IdMonedaNueva
  1518. WHERE Id = @IdCuenta
  1519. END
  1520.  
  1521. IF @IdPaisNuevo != @IdPaisViejo
  1522. BEGIN
  1523. UPDATE COUNTER_LOGIC_CODING.CUENTA
  1524. SET Pais = @IdPaisNuevo
  1525. WHERE Id = @IdCuenta
  1526. END
  1527.  
  1528. IF @IdTipoCuentaNueva != @IdTipoCuentaVieja
  1529. BEGIN
  1530.  
  1531. UPDATE COUNTER_LOGIC_CODING.CUENTA
  1532. SET Tipo_Cuenta = @IdTipoCuentaNueva
  1533. WHERE Id = @IdCuenta
  1534.  
  1535. INSERT INTO COUNTER_LOGIC_CODING.OPERACION
  1536. VALUES (@IdCuenta,(SELECT Cuenta.Moneda FROM COUNTER_LOGIC_CODING.CUENTA Cuenta WHERE Cuenta.Id = @IdCuenta),@FechaActual,(SELECT C.Costo_Subscripcion FROM COUNTER_LOGIC_CODING.TIPO_CUENTA C WHERE C.Id = @IdTipoCuentaNueva))
  1537.  
  1538. SET @IdOperacion = @@IDENTITY
  1539.  
  1540. INSERT INTO COUNTER_LOGIC_CODING.CAMBIO_DE_TIPO_CUENTA
  1541. VALUES (@IdOperacion,@IdCuenta,@IdTipoCuentaVieja,@IdTipoCuentaNueva,@FechaActual)
  1542.  
  1543.  
  1544. INSERT INTO COUNTER_LOGIC_CODING.COMISION
  1545. VALUES (@IdCuenta,NULL,'Cambio de tipo de cuenta',@IdOperacion,@IdTipoCuentaNueva,(SELECT C.Costo_Subscripcion FROM COUNTER_LOGIC_CODING.TIPO_CUENTA C WHERE C.Id = @IdTipoCuentaNueva))
  1546.  
  1547.  
  1548.  
  1549. IF @IdTipoCuentaNueva = 0
  1550. BEGIN
  1551. update COUNTER_LOGIC_CODING.CUENTA
  1552. SET Fecha_Expiracion = null
  1553. where Id = @IdCuenta
  1554. END
  1555. ELSE
  1556. BEGIN
  1557. DECLARE @Duracion INT
  1558. SELECT @duracion = Duracion
  1559. from COUNTER_LOGIC_CODING.TIPO_CUENTA
  1560. where Id = @IdTipoCuentaNueva
  1561.  
  1562. update COUNTER_LOGIC_CODING.CUENTA
  1563. set Fecha_Expiracion = COUNTER_LOGIC_CODING.calcularFechaExpiracion(Fecha_Expiracion,@FechaActual,@Duracion)
  1564. where Id = @IdCuenta
  1565. END
  1566.  
  1567. END
  1568. END
  1569. GO
  1570.  
  1571.  
  1572. CREATE PROCEDURE COUNTER_LOGIC_CODING.getCuentas
  1573. AS
  1574. BEGIN
  1575. SELECT *
  1576. FROM COUNTER_LOGIC_CODING.CUENTA
  1577. END
  1578.  
  1579. GO
  1580. CREATE PROCEDURE COUNTER_LOGIC_CODING.getCuentasClientNameLike (@NameLike VARCHAR(255))
  1581. AS
  1582. BEGIN
  1583. SELECT *
  1584. FROM COUNTER_LOGIC_CODING.CUENTA Cuenta
  1585. WHERE Cuenta.Cliente IN(
  1586. SELECT Cliente.ID
  1587. FROM COUNTER_LOGIC_CODING.CLIENTE Cliente
  1588. WHERE UPPER( Cliente.Nombre + ' ' + Cliente.Apellido ) like UPPER('%' + @NameLike + '%'))
  1589. END
  1590.  
  1591. GO
  1592.  
  1593.  
  1594.  
  1595.  
  1596.  
  1597. CREATE PROCEDURE COUNTER_LOGIC_CODING.tieneDeudas (@IdCuenta NUMERIC(18,0))
  1598. AS
  1599. BEGIN
  1600. SELECT *
  1601. FROM COUNTER_LOGIC_CODING.COMISION Comision
  1602. WHERE Comision.Cuenta = @IdCuenta AND Comision.Factura IS NULL
  1603.  
  1604.  
  1605. END
  1606.  
  1607. GO
  1608.  
  1609.  
  1610.  
  1611. CREATE PROCEDURE COUNTER_LOGIC_CODING.getIdUsuarioByClientName (@NyA VARCHAR(255))
  1612. AS
  1613. BEGIN
  1614. SELECT Cliente.Usuario
  1615. FROM COUNTER_LOGIC_CODING.CLIENTE Cliente
  1616. WHERE Cliente.Nombre +' '+ Cliente.Apellido like @NyA
  1617.  
  1618.  
  1619. END
  1620.  
  1621. GO
  1622.  
  1623. CREATE PROCEDURE COUNTER_LOGIC_CODING.ABMROL_getRoles AS
  1624. BEGIN
  1625. SELECT * from COUNTER_LOGIC_CODING.ROL
  1626. END
  1627. GO
  1628.  
  1629. CREATE PROCEDURE COUNTER_LOGIC_CODING.ABMROL_bajaRolFuncionalidad(@IdRol int, @Funcionalidad Varchar(255)) AS
  1630. DECLARE @IdFuncionalidad INT
  1631. SET @IdFuncionalidad = (SELECT Id
  1632. FROM COUNTER_LOGIC_CODING.FUNCIONALIDAD
  1633. WHERE @Funcionalidad = Descripcion)
  1634. BEGIN
  1635.  
  1636. delete from COUNTER_LOGIC_CODING.FUNCIONALIDAD_X_ROL
  1637. where Rol = @IdRol and Funcionalidad = @IdFuncionalidad
  1638.  
  1639. END
  1640. GO
  1641.  
  1642.  
  1643. CREATE PROCEDURE COUNTER_LOGIC_CODING.ABMROL_habilitarRol(@IdRol int) AS
  1644. BEGIN
  1645.  
  1646. update COUNTER_LOGIC_CODING.ROL set Estado = 1 where Id = @IdRol
  1647.  
  1648. END
  1649. GO
  1650.  
  1651.  
  1652.  
  1653. CREATE PROCEDURE COUNTER_LOGIC_CODING.ABMROL_inhabilitarRol(@IdRol int) AS
  1654. BEGIN
  1655.  
  1656. update COUNTER_LOGIC_CODING.ROL set Estado = 0 where Id = @IdRol
  1657.  
  1658. END
  1659. GO
  1660.  
  1661.  
  1662. CREATE procedure COUNTER_LOGIC_CODING.getUsuariosConCuentasActivas
  1663. AS
  1664. BEGIN
  1665. SELECT DISTINCT Usuario.Id,Usuario.Username,Usuario.Fecha_Creacion,Usuario.Fecha_Ultima_Modificacion,
  1666. Pregunta_Secreta,Usuario.Respuesta_Secreta,Usuario.Contrasenia,Usuario.Estado,Usuario.Intentos_Login
  1667. FROM COUNTER_LOGIC_CODING.CUENTA Cuenta
  1668. JOIN COUNTER_LOGIC_CODING.CLIENTE Cliente
  1669. ON Cliente.ID = Cuenta.Cliente
  1670. JOIN COUNTER_LOGIC_CODING.USUARIO Usuario
  1671. ON Usuario.Id = Cliente.Usuario
  1672. WHERE Cuenta.Estado NOT IN (3,4)
  1673. ORDER BY Usuario.Username
  1674. END
  1675.  
  1676. GO
  1677.  
  1678. CREATE procedure COUNTER_LOGIC_CODING.getUserIdByUsername( @UsernameLike VARCHAR(255))
  1679. AS
  1680. BEGIN
  1681. SELECT Usuario.Id
  1682. FROM COUNTER_LOGIC_CODING.USUARIO Usuario
  1683. WHERE Usuario.Username like @UsernameLike
  1684. END
  1685.  
  1686. GO
  1687.  
  1688. CREATE procedure COUNTER_LOGIC_CODING.getCuentaById( @IdCuenta NUMERIC (18,0))
  1689. AS
  1690. BEGIN
  1691. SELECT *
  1692. FROM COUNTER_LOGIC_CODING.CUENTA Cuenta
  1693. WHERE Cuenta.Id = @IdCuenta
  1694. END
  1695.  
  1696. GO
  1697.  
  1698. CREATE procedure COUNTER_LOGIC_CODING.altaTransferencia( @IdCuentaOrigen NUMERIC(18,0), @IdCuentaDestino NUMERIC(18,0),
  1699. @IdMoneda NUMERIC(18,0) , @Monto REAL, @FechaTransaccion DATETIME,@CostoTransaccion NUMERIC (16,2))
  1700. AS
  1701.  
  1702. DECLARE @IdOperacion NUMERIC(18,0)
  1703. BEGIN
  1704. INSERT INTO COUNTER_LOGIC_CODING.OPERACION
  1705. VALUES(@IdCuentaOrigen,@IdMoneda,@FechaTransaccion,@Monto)
  1706.  
  1707. SET @IdOperacion = @@IDENTITY
  1708.  
  1709. INSERT INTO COUNTER_LOGIC_CODING.TRANSFERENCIA
  1710. VALUES(@IdOperacion,@IdCuentaDestino,@CostoTransaccion)
  1711.  
  1712. IF (@CostoTransaccion != 0)
  1713. BEGIN
  1714. INSERT INTO COUNTER_LOGIC_CODING.COMISION
  1715. VALUES(@IdCuentaOrigen,NULL,'Transferencia de dinero',@IdOperacion,
  1716. (SELECT Cuenta.Tipo_Cuenta FROM COUNTER_LOGIC_CODING.CUENTA Cuenta WHERE Cuenta.Id = @IdCuentaOrigen),@CostoTransaccion)
  1717. END
  1718.  
  1719. UPDATE COUNTER_LOGIC_CODING.Cuenta
  1720. SET Saldo = Saldo - @Monto
  1721. WHERE Id = @IdCuentaOrigen
  1722.  
  1723.  
  1724. UPDATE COUNTER_LOGIC_CODING.Cuenta
  1725. SET Saldo = Saldo + @Monto
  1726. WHERE Id = @IdCuentaDestino
  1727.  
  1728. END
  1729.  
  1730. GO
  1731.  
  1732.  
  1733. CREATE PROCEDURE COUNTER_LOGIC_CODING.getClienteByUserId(@U_ID int) as BEGIN
  1734. SELECT*, COUNTER_LOGIC_CODING.calcularEstadoCliente(ID) AS Estado from COUNTER_LOGIC_CODING.CLIENTE where Usuario = @U_ID
  1735. END
  1736.  
  1737. GO
  1738.  
  1739. CREATE PROCEDURE COUNTER_LOGIC_CODING.getEmisor(@ID int = null) as BEGIN
  1740. SELECT* from COUNTER_LOGIC_CODING.EMISOR where Id = @ID or @ID is null
  1741. END
  1742.  
  1743. GO
  1744.  
  1745. CREATE PROCEDURE COUNTER_LOGIC_CODING.asociarTarjeta(@cli_id int,@fecha_emision datetime, @fecha_vencimimento datetime,
  1746. @tarjeta_numero varchar(16),@ultimosDigitos varchar(4),@codSeg varchar(255),@emisor int, @titular varchar(255)) as BEGIN
  1747.  
  1748. insert into COUNTER_LOGIC_CODING.TARJETA(Cliente,Banco_Emisor,Fecha_Emision,Fecha_Vencimiento,Numero,Ultimos_Digitos,Codigo_Seguridad,Titular)
  1749. values(@cli_id,@emisor,@fecha_emision,@fecha_vencimimento,HASHBYTES('MD5',@tarjeta_numero),@ultimosDigitos,HASHBYTES('MD5',@codSeg),@titular)
  1750.  
  1751. END
  1752.  
  1753. GO
  1754.  
  1755.  
  1756.  
  1757. CREATE PROCEDURE COUNTER_LOGIC_CODING.esDocumentoCorrectoParaElUsuarioLogeado(@NumeroDocumentoPosible NUMERIC (18,0),@IdTipoDocumentoPosible NUMERIC(18,0),
  1758. @IdUser NUMERIC (18,0))
  1759. AS
  1760. DECLARE @IdCliente NUMERIC(18,0)
  1761. SET @IdCliente = (SELECT Cliente.Id
  1762. FROM COUNTER_LOGIC_CODING.CLIENTE Cliente
  1763. WHERE @IdUser = Cliente.Usuario)
  1764. BEGIN
  1765. SELECT (CASE WHEN
  1766. ((SELECT Cliente.Nro_Doc FROM COUNTER_LOGIC_CODING.Cliente Cliente WHERE Cliente.ID = @IdCliente) = @NumeroDocumentoPosible AND
  1767. (SELECT Cliente.Tipo_Documento FROM COUNTER_LOGIC_CODING.Cliente Cliente WHERE Cliente.ID = @IdCliente) = @IdTipoDocumentoPosible)
  1768. THEN 1 ELSE 0 END )
  1769. END
  1770.  
  1771.  
  1772.  
  1773.  
  1774.  
  1775.  
  1776.  
  1777.  
  1778.  
  1779. GO
  1780.  
  1781.  
  1782.  
  1783. CREATE PROCEDURE COUNTER_LOGIC_CODING.altaRetiro( @IdCuenta NUMERIC(18,0), @IdMoneda NUMERIC(18,0),
  1784. @IdBanco NUMERIC(18,0) , @Monto REAL, @FechaTransaccion DATETIME, @IdUser NUMERIC(18,0))
  1785. AS
  1786. DECLARE @IdOperacion NUMERIC(18,0)
  1787. DECLARE @IdCheque NUMERIC(18,0)
  1788. DECLARE @IdCliente NUMERIC(18,0)
  1789. SET @IdCliente = (SELECT Cliente.Id
  1790. FROM COUNTER_LOGIC_CODING.CLIENTE Cliente
  1791. WHERE @IdUser = Cliente.Usuario)
  1792. BEGIN
  1793. INSERT INTO COUNTER_LOGIC_CODING.OPERACION
  1794. VALUES(@IdCuenta,@IdMoneda,@FechaTransaccion,@Monto)
  1795.  
  1796. SET @IdOperacion = @@IDENTITY
  1797.  
  1798. INSERT INTO COUNTER_LOGIC_CODING.CHEQUE
  1799. VALUES(@IdBanco,@IdCliente)
  1800.  
  1801. SET @IdCheque = @@IDENTITY
  1802.  
  1803. INSERT INTO COUNTER_LOGIC_CODING.RETIRO
  1804. VALUES(@IdOperacion,@IdCheque)
  1805.  
  1806.  
  1807. UPDATE COUNTER_LOGIC_CODING.Cuenta
  1808. SET Saldo = Saldo - @Monto
  1809. WHERE Id = @IdCuenta
  1810.  
  1811. END
  1812.  
  1813. GO
  1814.  
  1815. CREATE PROCEDURE COUNTER_LOGIC_CODING.modificarTarjeta(@tj_id int,@tj_numero varchar(16),@tj_codigoSeguridad varchar(255),
  1816. @tj_ultimosDigitos varchar(4),@fechaEmision datetime,@fechaVencimiento datetime,
  1817. @titular varchar(255),@bancoEmisor int,@estado bit) as BEGIN
  1818.  
  1819. update COUNTER_LOGIC_CODING.TARJETA SET
  1820. Ultimos_Digitos = @tj_ultimosDigitos,
  1821. Titular = @titular,
  1822. Banco_Emisor = @bancoEmisor,
  1823. Estado = @estado,
  1824. Fecha_Emision = @fechaEmision,
  1825. Fecha_Vencimiento = @fechaVencimiento
  1826. where id = @tj_id
  1827.  
  1828. IF @tj_numero is not null BEGIN
  1829. update COUNTER_LOGIC_CODING.TARJETA set
  1830. Numero = HASHBYTES('MD5',@tj_numero) where id = @tj_id
  1831. END
  1832.  
  1833. IF @tj_codigoSeguridad is not null BEGIN
  1834. update COUNTER_LOGIC_CODING.TARJETA set
  1835. Codigo_Seguridad = HASHBYTES('MD5',@tj_codigoSeguridad) where id = @tj_id
  1836. END
  1837.  
  1838. END
  1839.  
  1840. GO
  1841.  
  1842. CREATE PROCEDURE COUNTER_LOGIC_CODING.Consulta_Saldos_Ultimos5Depositos (@IdCuenta NUMERIC(18,0))
  1843. AS
  1844. BEGIN
  1845. SELECT top 5 oper.fecha as FECHA, oper.Importe as IMPORTE, mon.Descripcion as MONEDA, tar.Ultimos_Digitos as TARJETA
  1846. from COUNTER_LOGIC_CODING.OPERACION as oper, COUNTER_LOGIC_CODING.DEPOSITO as depo, COUNTER_LOGIC_CODING.MONEDA as mon, COUNTER_LOGIC_CODING.TARJETA AS tar
  1847. where oper.Id = depo.Id and
  1848. mon.Id = oper.Moneda and
  1849. depo.Tarjeta = tar.id and
  1850. oper.Cuenta = @IdCuenta
  1851.  
  1852. order by oper.Fecha desc
  1853.  
  1854. END
  1855.  
  1856. GO
  1857.  
  1858. CREATE PROCEDURE COUNTER_LOGIC_CODING.Consulta_Saldos_Ultimos5Retiros (@IdCuenta NUMERIC(18,0))
  1859. AS
  1860. BEGIN
  1861. SELECT top 5 oper.fecha as FECHA, oper.Importe as IMPORTE, mon.Descripcion as MONEDA, che.id as CHEQUE
  1862. from COUNTER_LOGIC_CODING.OPERACION as oper, COUNTER_LOGIC_CODING.RETIRO as reti, COUNTER_LOGIC_CODING.MONEDA as mon, COUNTER_LOGIC_CODING.CHEQUE AS che
  1863. where oper.Id = reti.Id and
  1864. mon.Id = oper.Moneda and
  1865. reti.Cheque = che.id and
  1866. oper.Cuenta = @IdCuenta
  1867.  
  1868. order by oper.Fecha desc
  1869. END
  1870.  
  1871. GO
  1872.  
  1873. CREATE PROCEDURE COUNTER_LOGIC_CODING.Consulta_Saldos_Ultimas10Transferencias (@IdCuenta NUMERIC(18,0))
  1874. AS
  1875. BEGIN
  1876. SELECT top 10 oper.fecha as FECHA, oper.Importe as IMPORTE, mon.Descripcion as MONEDA, trans.Cuenta_Destino AS DESTINO
  1877. from COUNTER_LOGIC_CODING.OPERACION as oper, COUNTER_LOGIC_CODING.TRANSFERENCIA AS trans, COUNTER_LOGIC_CODING.MONEDA as mon
  1878. where oper.Id = trans.Id and
  1879. mon.Id = oper.Moneda and
  1880. oper.Cuenta = @IdCuenta
  1881.  
  1882. order by oper.Fecha desc
  1883. END
  1884.  
  1885.  
  1886.  
  1887.  
  1888. GO
  1889.  
  1890.  
  1891.  
  1892. CREATE PROCEDURE COUNTER_LOGIC_CODING.DEPOSITAR(@cuenta numeric(18,0),@tarjeta int,@importe float,@moneda int,@fecha datetime) AS
  1893. BEGIN
  1894. INSERT INTO COUNTER_LOGIC_CODING.OPERACIONES VALUES (@cuenta,@moneda,@fecha,@importe)
  1895. INSERT INTO COUNTER_LOGIC_CODING.DEPOSITO VALUES (@@IDENTITY, @tarjeta)
  1896. UPDATE COUNTER_LOGIC_CODING.CUENTA SET Saldo = Saldo + @importe where Id = @cuenta
  1897. END
  1898.  
  1899. GO
  1900.  
  1901. CREATE PROCEDURE COUNTER_LOGIC_CODING.getComisionesById(@id int) AS
  1902. BEGIN
  1903. SELECT cm.Id AS ID,c.Id AS Cuenta,cm.Descripcion AS Descripcion,
  1904. (SELECT op.Fecha FROM COUNTER_LOGIC_CODING.OPERACIONES op INNER JOIN COUNTER_LOGIC_CODING.COMISION ON op.Id = Operacion) AS Fecha,
  1905. cm.Monto AS Monto, ct.Descripcion AS Tipo FROM COUNTER_LOGIC_CODING.COMISION cm, COUNTER_LOGIC_CODING.CUENTA c, COUNTER_LOGIC_CODING.TIPO_CUENTA ct, COUNTER_LOGIC_CODING.CLIENTE cl
  1906. WHERE (@id = cl.Usuario) AND cm.Cuenta = c.Id AND cl.ID = c.Cliente AND cm.Tipo_Cuenta = ct.Id AND cm.Factura = NULL
  1907. END
  1908.  
  1909. GO
  1910.  
  1911. CREATE PROCEDURE COUNTER_LOGIC_CODING.getComisionesImpagasFromCuenta(@cuenta numeric(18,0)) AS
  1912. BEGIN
  1913. SELECT Id FROM COUNTER_LOGIC_CODING.COMISION WHERE Cuenta = @cuenta AND Factura = NULL
  1914. END
  1915.  
  1916.  
  1917. GO
  1918.  
  1919. CREATE PROCEDURE COUNTER_LOGIC_CODING.cantidadComisionesImpagas(@IdCuenta NUMERIC(18,0))
  1920. AS
  1921. BEGIN
  1922. SELECT COUNT(*)
  1923. FROM COUNTER_LOGIC_CODING.COMISION Comision
  1924. WHERE Comision.Cuenta = @IdCuenta AND Comision.Factura IS NULL
  1925. END
  1926.  
  1927.  
  1928. GO
  1929.  
  1930.  
  1931. CREATE PROCEDURE COUNTER_LOGIC_CODING.tieneDeudasByID(@IdCuenta NUMERIC(18,0))
  1932. AS
  1933. BEGIN
  1934. SELECT *
  1935. FROM COUNTER_LOGIC_CODING.COMISION Comision
  1936. WHERE Comision.Cuenta = @IdCuenta AND Comision.Factura IS NULL
  1937. END
  1938.  
  1939. GO
  1940.  
  1941. CREATE PROCEDURE COUNTER_LOGIC_CODING.renovarSubscripcion(@IdCuenta NUMERIC(18,0), @Fecha DATETIME)
  1942. AS
  1943. BEGIN
  1944.  
  1945. DECLARE @IdOperacion NUMERIC(18,0)
  1946.  
  1947. DECLARE @IdTipoCuenta NUMERIC(18,0)
  1948. SET @IdTipoCuenta = (SELECT TIPO_CUENTA FROM COUNTER_LOGIC_CODING.CUENTA WHERE Id = @IdCuenta)
  1949. DECLARE @IdMoneda NUMERIC(18,0)
  1950. SET @IdMoneda = (SELECT Moneda FROM COUNTER_LOGIC_CODING.CUENTA WHERE Id = @IdCuenta)
  1951. DECLARE @Importe REAL
  1952. SET @Importe = (SELECT TC.Costo_Subscripcion FROM COUNTER_LOGIC_CODING.TIPO_CUENTA TC WHERE TC.Id = @IdTipoCuenta)
  1953.  
  1954. INSERT INTO COUNTER_LOGIC_CODING.OPERACION
  1955. VALUES (@IdCuenta,@IdMoneda,@Fecha,@Importe)
  1956.  
  1957. SET @IdOperacion = @@IDENTITY
  1958.  
  1959. INSERT INTO COUNTER_LOGIC_CODING.CAMBIO_DE_TIPO_CUENTA
  1960. VALUES (@IdOperacion,@IdCuenta,@IdTipoCuenta,@IdTipoCuenta,@Fecha)
  1961.  
  1962.  
  1963. INSERT INTO COUNTER_LOGIC_CODING.COMISION
  1964. VALUES (@IdCuenta,NULL,'Renovacion subscripcion',@IdOperacion,@IdTipoCuenta,@Importe)
  1965.  
  1966. DECLARE @Duracion INT
  1967. SELECT @duracion = Duracion
  1968. from COUNTER_LOGIC_CODING.TIPO_CUENTA
  1969. where Id = @IdTipoCuenta
  1970.  
  1971. update COUNTER_LOGIC_CODING.CUENTA
  1972. set Fecha_Expiracion = COUNTER_LOGIC_CODING.calcularFechaExpiracion(Fecha_Expiracion,@Fecha,@Duracion)
  1973. where Id = @IdCuenta
  1974.  
  1975. END
  1976.  
  1977. GO
  1978.  
  1979. CREATE PROCEDURE COUNTER_LOGIC_CODING.editCuentaAdmin (@IdCuenta NUMERIC(18,0),@IdMonedaVieja NUMERIC(18,0),@IdMonedaNueva NUMERIC(18,0),
  1980. @IdPaisViejo NUMERIC(18,0),@IdPaisNuevo NUMERIC(18,0),@IdTipoCuentaVieja NUMERIC(18,0) ,@IdTipoCuentaNueva NUMERIC(18,0),@FechaActual DATETIME,@IdEstado NUMERIC(18,0))
  1981. AS
  1982. BEGIN
  1983. DECLARE @IdOperacion NUMERIC (18,0)
  1984.  
  1985. UPDATE COUNTER_LOGIC_CODING.CUENTA
  1986. SET Estado = @IdEstado
  1987. WHERE Id = @IdCuenta
  1988.  
  1989. IF @IdMonedaNueva != @IdMonedaVieja
  1990. BEGIN
  1991. UPDATE COUNTER_LOGIC_CODING.CUENTA
  1992. SET Moneda = @IdMonedaNueva
  1993. WHERE Id = @IdCuenta
  1994. END
  1995.  
  1996. IF @IdPaisNuevo != @IdPaisViejo
  1997. BEGIN
  1998. UPDATE COUNTER_LOGIC_CODING.CUENTA
  1999. SET Pais = @IdPaisNuevo
  2000. WHERE Id = @IdCuenta
  2001. END
  2002.  
  2003. IF @IdTipoCuentaNueva != @IdTipoCuentaVieja
  2004. BEGIN
  2005.  
  2006. UPDATE COUNTER_LOGIC_CODING.CUENTA
  2007. SET Tipo_Cuenta = @IdTipoCuentaNueva
  2008. WHERE Id = @IdCuenta
  2009.  
  2010. INSERT INTO COUNTER_LOGIC_CODING.OPERACION
  2011. VALUES (@IdCuenta,(SELECT Cuenta.Moneda FROM COUNTER_LOGIC_CODING.CUENTA Cuenta WHERE Cuenta.Id = @IdCuenta),@FechaActual,(SELECT C.Costo_Subscripcion FROM COUNTER_LOGIC_CODING.TIPO_CUENTA C WHERE C.Id = @IdTipoCuentaNueva))
  2012.  
  2013. SET @IdOperacion = @@IDENTITY
  2014.  
  2015. INSERT INTO COUNTER_LOGIC_CODING.CAMBIO_DE_TIPO_CUENTA
  2016. VALUES (@IdOperacion,@IdCuenta,@IdTipoCuentaVieja,@IdTipoCuentaNueva,@FechaActual)
  2017.  
  2018.  
  2019. INSERT INTO COUNTER_LOGIC_CODING.COMISION
  2020. VALUES (@IdCuenta,NULL,'Cambio de tipo de cuenta',@IdOperacion,@IdTipoCuentaNueva,(SELECT C.Costo_Subscripcion FROM COUNTER_LOGIC_CODING.TIPO_CUENTA C WHERE C.Id = @IdTipoCuentaNueva))
  2021.  
  2022.  
  2023.  
  2024. IF @IdTipoCuentaNueva = 0
  2025. BEGIN
  2026. update COUNTER_LOGIC_CODING.CUENTA
  2027. SET Fecha_Expiracion = null
  2028. where Id = @IdCuenta
  2029. END
  2030. ELSE
  2031. BEGIN
  2032. DECLARE @Duracion INT
  2033. SELECT @duracion = Duracion
  2034. from COUNTER_LOGIC_CODING.TIPO_CUENTA
  2035. where Id = @IdTipoCuentaNueva
  2036.  
  2037. update COUNTER_LOGIC_CODING.CUENTA
  2038. set Fecha_Expiracion = COUNTER_LOGIC_CODING.calcularFechaExpiracion(Fecha_Expiracion,@FechaActual,@Duracion)
  2039. where Id = @IdCuenta
  2040. END
  2041.  
  2042. END
  2043. END
  2044. GO
  2045.  
  2046.  
  2047. CREATE PROCEDURE COUNTER_LOGIC_CODING.getEstados
  2048. AS
  2049. BEGIN
  2050. SELECT *
  2051. FROM COUNTER_LOGIC_CODING.ESTADOS_CUENTA
  2052. END
  2053.  
  2054.  
  2055. GO
  2056.  
  2057. CREATE PROCEDURE COUNTER_LOGIC_CODING.cambiarEstadoCuenta(@cuenta numeric(18,0),@estado int) as BEGIN
  2058.  
  2059. declare @estadoPasado int
  2060. SELECT @estadoPasado = Estado from COUNTER_LOGIC_CODING.CUENTA where Id = @cuenta
  2061. if @estado != @estadoPasado BEGIN
  2062. update COUNTER_LOGIC_CODING.CUENTA set Estado = @estado where Id = @cuenta
  2063. return 1
  2064. END
  2065. else
  2066. BEGIN
  2067. return 0
  2068. END
  2069. end
  2070.  
  2071.  
  2072. GO
  2073.  
  2074.  
  2075. create procedure COUNTER_LOGIC_CODING.getFacturasCli(@cliente int = null) as begin
  2076.  
  2077. select * from COUNTER_LOGIC_CODING.FACTURA where Cliente = @cliente or @cliente is null
  2078.  
  2079. end
  2080.  
  2081. GO
  2082.  
  2083. create procedure COUNTER_LOGIC_CODING.getComisionesFactura(@idFactura numeric(18,0)) as begin
  2084.  
  2085. select * from COUNTER_LOGIC_CODING.COMISION where Factura = @idFactura
  2086.  
  2087. end
  2088.  
  2089. GO
  2090.  
  2091. create procedure COUNTER_LOGIC_CODING.getFacturaById(@idFactura numeric(18,0)) as begin
  2092. select * from COUNTER_LOGIC_CODING.FACTURA where @idFactura = Id
  2093. end
  2094.  
  2095. GO
  2096.  
  2097. CREATE PROCEDURE COUNTER_LOGIC_CODING.crearFactura(@id int,@fecha DATETIME) AS
  2098. BEGIN
  2099. INSERT INTO COUNTER_LOGIC_CODING.FACTURA VALUES(@id,@fecha)
  2100. SELECT @@IDENTITY
  2101. END
  2102. GO
  2103.  
  2104. CREATE PROCEDURE COUNTER_LOGIC_CODING.agregarComisionPagada(@factura numeric(18,0), @id int) AS
  2105. BEGIN
  2106. UPDATE COUNTER_LOGIC_CODING.COMISION SET Factura = @factura WHERE Factura IS NULL AND Id = @id
  2107. END
  2108. GO
  2109.  
  2110. --PUNTO 1 CLIENTES QUE ALGUNA DE SUS CUENTAS FUERON INHABILITADAS
  2111. CREATE PROCEDURE COUNTER_LOGIC_CODING.CLIENTES_CON_CUENTAS_INHABILITADAS_POR_AUSENCIA_DE_PAGO(@FECHA_INICIO DATETIME, @FECHA_FIN DATETIME) AS
  2112. BEGIN
  2113. SELECT top 5 CLI.NOMBRE as NOMBRE, CLI.APELLIDO as APELLIDO, COUNT (CUE.ID) as CANTCOMISIONES, SUM (COM.monto) as DEUDA_TOTAL
  2114. FROM COUNTER_LOGIC_CODING.CLIENTE CLI,
  2115. COUNTER_LOGIC_CODING.CUENTA CUE,
  2116. COUNTER_LOGIC_CODING.COMISION COM
  2117. WHERE CLI.ID = CUE.Cliente and
  2118. CUE.Estado = 1 and
  2119. COM.CUENTA = CUE.Id and
  2120. COM.FACTURA IS NULL -- and
  2121. -- F.FECHA BETWEEN @FECHA_INICIO AND @FECHA_FIN
  2122. GROUP BY CLI.ID, CLI.Nombre, CLI.Apellido
  2123. ORDER BY DEUDA_TOTAL DESC
  2124. END
  2125.  
  2126. GO
  2127.  
  2128. --PUNTO 2 cliente con mayor cantidad de comisiones facturadas en todas sus cuentas
  2129.  
  2130. CREATE PROCEDURE COUNTER_LOGIC_CODING.CLIENTES_CON_MAYOR_CANTIDAD_DE_COMISIONES(@FECHA_INICIO DATETIME, @FECHA_FIN DATETIME) AS
  2131. BEGIN
  2132. SELECT top 5 cliente.Nombre as NOMBRE, cliente.Apellido as APELLIDO, COUNT(*) as CANTIDADCOMISIONES
  2133. FROM COUNTER_LOGIC_CODING.COMISION as comision, COUNTER_LOGIC_CODING.CUENTA as cuenta, COUNTER_LOGIC_CODING.CLIENTE as cliente, COUNTER_LOGIC_CODING.FACTURA as factura
  2134. WHERE comision.cuenta = cuenta.Id and cuenta.Cliente = cliente.ID and comision.factura = factura.Id and
  2135.  
  2136. factura.Fecha BETWEEN @FECHA_INICIO AND @FECHA_FIN
  2137.  
  2138. GROUP BY cuenta.Cliente, cliente.Nombre, cliente.Apellido
  2139. ORDER BY CANTIDADCOMISIONES desc
  2140. END
  2141.  
  2142.  
  2143. GO
  2144.  
  2145. --PUNTO 3 clientes con mayor cantidad de transacciones realizadas entre cuentas propias.
  2146.  
  2147. CREATE PROCEDURE COUNTER_LOGIC_CODING.CLIENTES_CON_MAYOR_CANTIDAD_DE_TRANSACCIONES_ENTRE_CUENTAS_PROPIAS(@FECHA_INICIO DATETIME, @FECHA_FIN DATETIME) AS
  2148. BEGIN
  2149. SELECT top 5 cliente.Nombre as NOMBRE, cliente.Apellido AS APELLIDO, COUNT(*) AS CANTIDADTRANSACCIONES
  2150. FROM COUNTER_LOGIC_CODING.CUENTA as cuenta1,
  2151. COUNTER_LOGIC_CODING.CUENTA as cuenta2,
  2152. COUNTER_LOGIC_CODING.TRANSFERENCIA as transferecia,
  2153. COUNTER_LOGIC_CODING.OPERACIONES as operaciones,
  2154. COUNTER_LOGIC_CODING.CLIENTE as cliente
  2155. WHERE operaciones.cuenta = cuenta1.Id and
  2156. transferecia.Cuenta_Destino = cuenta2.Id and
  2157. cuenta1.Cliente = cuenta2.Cliente and
  2158. transferecia.Id = operaciones.id and
  2159. cuenta2.Cliente = cliente.ID and
  2160. operaciones.Fecha BETWEEN @FECHA_INICIO AND @FECHA_FIN
  2161.  
  2162. GROUP BY cliente.ID, cliente.Nombre, cliente.Apellido
  2163. ORDER BY CANTIDADTRANSACCIONES DESC
  2164.  
  2165. END
  2166.  
  2167. GO
  2168.  
  2169.  
  2170.  
  2171.  
  2172.  
  2173.  
  2174. CREATE PROCEDURE COUNTER_LOGIC_CODING.registrarInhabilitacion(@IdCuenta NUMERIC(18,0), @Fecha DATETIME)
  2175. AS
  2176. BEGIN
  2177. INSERT INTO COUNTER_LOGIC_CODING.INHABILITACION_TRANSACCION
  2178. VALUES(@IdCuenta,@Fecha)
  2179. END
  2180. go
  2181.  
  2182. --PUNTO 4 paises con mayor cantidad de movimientos (ingresos y egresos)
  2183.  
  2184. CREATE PROCEDURE COUNTER_LOGIC_CODING.PAISES_CON_MAYOR_CANTIDAD_DE_MOVIMIENTOS(@FECHA_INICIO DATETIME, @FECHA_FIN DATETIME) AS
  2185. BEGIN
  2186. SELECT TOP 5 P.descripcion as PAIS, count (T.ID) as CANTIDAD_DE_MOVIMIENTOS
  2187. FROM COUNTER_LOGIC_CODING.PAIS as P,
  2188. COUNTER_LOGIC_CODING.CUENTA AS C,
  2189. COUNTER_LOGIC_CODING.TRANSFERENCIA AS T,
  2190. COUNTER_LOGIC_CODING.OPERACIONES AS O
  2191. WHERE
  2192. T.ID = O.ID and
  2193. (O.Cuenta = C.Id or
  2194. T.Cuenta_Destino = C.Id)and
  2195. P.Id = C.Pais and
  2196. O.FECHA BETWEEN @FECHA_INICIO AND @FECHA_FIN
  2197. GROUP BY P.Id, P.Descripcion
  2198. ORDER BY CANTIDAD_DE_MOVIMIENTOS DESC
  2199. END
  2200.  
  2201. GO
  2202.  
  2203. --PUNTO 5 total facturado para los distintos tipos de cuenta
  2204.  
  2205. CREATE PROCEDURE COUNTER_LOGIC_CODING.TOTAL_FACTURADO_PARA_DISTINTOS_TIPOS_DE_CUENTAS(@FECHA_INICIO DATETIME, @FECHA_FIN DATETIME) AS
  2206. BEGIN
  2207. SELECT top 5 tipo.Descripcion as TipoCuenta, sum(comision.monto) as TotalFacturado
  2208. FROM COUNTER_LOGIC_CODING.COMISION as comision,
  2209. COUNTER_LOGIC_CODING.TIPO_CUENTA as tipo,
  2210. COUNTER_LOGIC_CODING.FACTURA as fact
  2211. WHERE comision.tipo_cuenta = tipo.id and
  2212. fact.Id = comision.factura and
  2213. fact.Fecha BETWEEN @FECHA_INICIO AND @FECHA_FIN
  2214. GROUP BY tipo.Descripcion
  2215. ORDER BY TotalFacturado DESC
  2216. END
  2217.  
  2218. GO
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement