====>>>> 2014/06/04 <<<<=====
VERSION ACTUAL: LIO 1.3.5 (Juniol 2014) –> LIO 1.3.5.x
Evolución: => Revisión Junio 2014. OK.
Se Basa en un procedimiento que pasa por parámetros un tipo de Cálculo codificado según el tipo de interés que se demande por flags.
VERSION ESTABLE EN ENTORNO GRAFICO LIO 1.5 (Basada en LIO 1.3.x Estable) –>> en chequeo final. Previsión de Publicación en Junio/Julio 2014. Entorno: Java, Php, MySQL, …
Previsión de Plataforma: ScriptCase 7.4 -> 8.x
___________________________________________________________________________
A continuación se muestra una circunstancia típica de cargos improcedentes por –Servicios NO Prestados–.
Ejemplo:
Vuestro banco os cobra de forma indebida lo siguiente:
Fecha cargo |Fecha Valor |Concepto |Comisión
2006-03-02 2006-03-01 COMISION-1 37.35
2004-01-28 2004-01-25 COMISION-2 37.35
2010-10-12 2010-10-11 COMISION-3 38.95
2012-11-13 2012-11-09 COMISION-4 39.93
2012-11-13 2012-11-07 RETROCESION-1 -28.95 > Negativo
El procedimiento de Cálculo es:
Bueno debemos especificar previamente en que fecha realizamos el cálculo, y es mas si consideramos ese día a efecto de cálculos de interés (por defecto no debería incluirse y por tanto yo no lo incluyo).
La fecha de cálculo del ejemplo es: 2014-04-27
(La fecha de cargo es informativa. Puede ser Nula. Pero no la Valor. Si el importe es negativo se retrocede con Fecha Valor)
** Con interés Legal:
mysql> call p_cal_interes_legal(‘2014-04-27’);
+——–+————-+————+——-+————+———————————————+————+—————-+
| Apunte | Per. Inicio | Per. Fin | Días | Comisión | Concepto | % Interés | interes legal |
+——–+————-+————+——-+————+———————————————+————+—————-+
| 00001 | 2004-01-25 | 2004-12-31 | 342 | 37,35 | Periodo: 01 de 11 ** Sub-Periodo: 01 de 01 | 3.75 % | 1,31 € |
| 00001 | 2005-01-01 | 2005-12-31 | 365 | 37,35 | Periodo: 02 de 11 ** Sub-Periodo: 01 de 01 | 4.00 % | 1,49 € |
| 00001 | 2006-01-01 | 2006-12-31 | 365 | 37,35 | Periodo: 03 de 11 ** Sub-Periodo: 01 de 01 | 4.00 % | 1,49 € |
| 00001 | 2007-01-01 | 2007-12-31 | 365 | 37,35 | Periodo: 04 de 11 ** Sub-Periodo: 01 de 01 | 5.00 % | 1,87 € |
| 00001 | 2008-01-01 | 2008-12-31 | 366 | 37,35 | Periodo: 05 de 11 ** Sub-Periodo: 01 de 01 | 5.50 % | 2,06 € |
| 00001 | 2009-01-01 | 2009-03-31 | 90 | 37,35 | Periodo: 06 de 11 ** Sub-Periodo: 01 de 02 | 5.50 % | 0,51 € |
| 00001 | 2009-04-01 | 2009-12-31 | 275 | 37,35 | Periodo: 06 de 11 ** Sub-Periodo: 02 de 02 | 4.00 % | 1,13 € |
| 00001 | 2010-01-01 | 2010-12-31 | 365 | 37,35 | Periodo: 07 de 11 ** Sub-Periodo: 01 de 01 | 4.00 % | 1,49 € |
| 00001 | 2011-01-01 | 2011-12-31 | 365 | 37,35 | Periodo: 08 de 11 ** Sub-Periodo: 01 de 01 | 4.00 % | 1,49 € |
| 00001 | 2012-01-01 | 2012-12-31 | 366 | 37,35 | Periodo: 09 de 11 ** Sub-Periodo: 01 de 01 | 4.00 % | 1,50 € |
| 00001 | 2013-01-01 | 2013-12-31 | 365 | 37,35 | Periodo: 10 de 11 ** Sub-Periodo: 01 de 01 | 4.00 % | 1,49 € |
| 00001 | 2014-01-01 | 2014-04-27 | 116 | 37,35 | Periodo: 11 de 11 ** Sub-Periodo: 01 de 01 | 4.00 % | 0,47 € |
| 00002 | 2006-03-01 | 2006-12-31 | 306 | 37,35 | Periodo: 01 de 09 ** Sub-Periodo: 01 de 01 | 4.00 % | 1,25 € |
| 00002 | 2007-01-01 | 2007-12-31 | 365 | 37,35 | Periodo: 02 de 09 ** Sub-Periodo: 01 de 01 | 5.00 % | 1,87 € |
| 00002 | 2008-01-01 | 2008-12-31 | 366 | 37,35 | Periodo: 03 de 09 ** Sub-Periodo: 01 de 01 | 5.50 % | 2,06 € |
| 00002 | 2009-01-01 | 2009-03-31 | 90 | 37,35 | Periodo: 04 de 09 ** Sub-Periodo: 01 de 02 | 5.50 % | 0,51 € |
| 00002 | 2009-04-01 | 2009-12-31 | 275 | 37,35 | Periodo: 04 de 09 ** Sub-Periodo: 02 de 02 | 4.00 % | 1,13 € |
| 00002 | 2010-01-01 | 2010-12-31 | 365 | 37,35 | Periodo: 05 de 09 ** Sub-Periodo: 01 de 01 | 4.00 % | 1,49 € |
| 00002 | 2011-01-01 | 2011-12-31 | 365 | 37,35 | Periodo: 06 de 09 ** Sub-Periodo: 01 de 01 | 4.00 % | 1,49 € |
| 00002 | 2012-01-01 | 2012-12-31 | 366 | 37,35 | Periodo: 07 de 09 ** Sub-Periodo: 01 de 01 | 4.00 % | 1,50 € |
| 00002 | 2013-01-01 | 2013-12-31 | 365 | 37,35 | Periodo: 08 de 09 ** Sub-Periodo: 01 de 01 | 4.00 % | 1,49 € |
| 00002 | 2014-01-01 | 2014-04-27 | 116 | 37,35 | Periodo: 09 de 09 ** Sub-Periodo: 01 de 01 | 4.00 % | 0,47 € |
| 00003 | 2010-10-11 | 2010-12-31 | 82 | 38,95 | Periodo: 01 de 05 ** Sub-Periodo: 01 de 01 | 4.00 % | 0,35 € |
| 00003 | 2011-01-01 | 2011-12-31 | 365 | 38,95 | Periodo: 02 de 05 ** Sub-Periodo: 01 de 01 | 4.00 % | 1,56 € |
| 00003 | 2012-01-01 | 2012-12-31 | 366 | 38,95 | Periodo: 03 de 05 ** Sub-Periodo: 01 de 01 | 4.00 % | 1,56 € |
| 00003 | 2013-01-01 | 2013-12-31 | 365 | 38,95 | Periodo: 04 de 05 ** Sub-Periodo: 01 de 01 | 4.00 % | 1,56 € |
| 00003 | 2014-01-01 | 2014-04-27 | 116 | 38,95 | Periodo: 05 de 05 ** Sub-Periodo: 01 de 01 | 4.00 % | 0,50 € |
| 00004 | 2012-11-07 | 2012-12-31 | 55 | 39,93 | Periodo: 01 de 03 ** Sub-Periodo: 01 de 01 | 4.00 % | 0,24 € |
| 00004 | 2013-01-01 | 2013-12-31 | 365 | 39,93 | Periodo: 02 de 03 ** Sub-Periodo: 01 de 01 | 4.00 % | 1,60 € |
| 00004 | 2014-01-01 | 2014-04-27 | 116 | 39,93 | Periodo: 03 de 03 ** Sub-Periodo: 01 de 01 | 4.00 % | 0,51 € |
| 00005 | 2012-11-09 | 2012-12-31 | 53 | -28,95 | Periodo: 01 de 03 ** Sub-Periodo: 01 de 01 | 4.00 % | -0,17 € |
| 00005 | 2013-01-01 | 2013-12-31 | 365 | -28,95 | Periodo: 02 de 03 ** Sub-Periodo: 01 de 01 | 4.00 % | -1,16 € |
| 00005 | 2014-01-01 | 2014-04-27 | 116 | -28,95 | Periodo: 03 de 03 ** Sub-Periodo: 01 de 01 | 4.00 % | -0,37 € |
+——–+————-+————+——-+————+———————————————+————+—————-+
33 rows in set (0.04 sec)
** Con demora comercial:
mysql> call p_cal_demora_comercial(‘2014-04-27’);
+——–+————-+————+——-+————+———————————————+————+—————-+
| Apunte | Per. Inicio | Per. Fin | Días | Comisión | Concepto | % Interés | demora comer. |
+——–+————-+————+——-+————+———————————————+————+—————-+
| 00001 | 2004-01-25 | 2004-06-30 | 158 | 37,35 | Periodo: 01 de 11 ** Sub-Periodo: 01 de 02 | 9.02 % | 1,46 € |
| 00001 | 2004-07-01 | 2004-12-31 | 184 | 37,35 | Periodo: 01 de 11 ** Sub-Periodo: 02 de 02 | 9.01 % | 1,70 € |
| 00001 | 2005-01-01 | 2005-06-30 | 181 | 37,35 | Periodo: 02 de 11 ** Sub-Periodo: 01 de 02 | 9.09 % | 1,68 € |
| 00001 | 2005-07-01 | 2005-12-31 | 184 | 37,35 | Periodo: 02 de 11 ** Sub-Periodo: 02 de 02 | 9.05 % | 1,70 € |
| 00001 | 2006-01-01 | 2006-06-30 | 181 | 37,35 | Periodo: 03 de 11 ** Sub-Periodo: 01 de 02 | 9.25 % | 1,71 € |
| 00001 | 2006-07-01 | 2006-12-31 | 184 | 37,35 | Periodo: 03 de 11 ** Sub-Periodo: 02 de 02 | 9.83 % | 1,85 € |
| 00001 | 2007-01-01 | 2007-06-30 | 181 | 37,35 | Periodo: 04 de 11 ** Sub-Periodo: 01 de 02 | 10.58 % | 1,96 € |
| 00001 | 2007-07-01 | 2007-12-31 | 184 | 37,35 | Periodo: 04 de 11 ** Sub-Periodo: 02 de 02 | 11.07 % | 2,08 € |
| 00001 | 2008-01-01 | 2008-06-30 | 182 | 37,35 | Periodo: 05 de 11 ** Sub-Periodo: 01 de 02 | 11.20 % | 2,09 € |
| 00001 | 2008-07-01 | 2008-12-31 | 184 | 37,35 | Periodo: 05 de 11 ** Sub-Periodo: 02 de 02 | 11.07 % | 2,08 € |
| 00001 | 2009-01-01 | 2009-06-30 | 181 | 37,35 | Periodo: 06 de 11 ** Sub-Periodo: 01 de 02 | 9.50 % | 1,76 € |
| 00001 | 2009-07-01 | 2009-12-31 | 184 | 37,35 | Periodo: 06 de 11 ** Sub-Periodo: 02 de 02 | 8.00 % | 1,51 € |
| 00001 | 2010-01-01 | 2010-06-30 | 181 | 37,35 | Periodo: 07 de 11 ** Sub-Periodo: 01 de 02 | 8.00 % | 1,48 € |
| 00001 | 2010-07-01 | 2010-12-31 | 184 | 37,35 | Periodo: 07 de 11 ** Sub-Periodo: 02 de 02 | 8.00 % | 1,51 € |
| 00001 | 2011-01-01 | 2011-06-30 | 181 | 37,35 | Periodo: 08 de 11 ** Sub-Periodo: 01 de 02 | 8.00 % | 1,48 € |
| 00001 | 2011-07-01 | 2011-12-31 | 184 | 37,35 | Periodo: 08 de 11 ** Sub-Periodo: 02 de 02 | 8.25 % | 1,55 € |
| 00001 | 2012-01-01 | 2012-06-30 | 182 | 37,35 | Periodo: 09 de 11 ** Sub-Periodo: 01 de 02 | 8.00 % | 1,49 € |
| 00001 | 2012-07-01 | 2012-12-31 | 184 | 37,35 | Periodo: 09 de 11 ** Sub-Periodo: 02 de 02 | 8.00 % | 1,51 € |
| 00001 | 2013-01-01 | 2013-02-23 | 54 | 37,35 | Periodo: 10 de 11 ** Sub-Periodo: 01 de 03 | 7.75 % | 0,43 € |
| 00001 | 2013-02-24 | 2013-06-30 | 127 | 37,35 | Periodo: 10 de 11 ** Sub-Periodo: 02 de 03 | 8.75 % | 1,14 € |
| 00001 | 2013-07-01 | 2013-12-31 | 184 | 37,35 | Periodo: 10 de 11 ** Sub-Periodo: 03 de 03 | 8.50 % | 1,60 € |
| 00001 | 2014-01-01 | 2014-04-27 | 116 | 37,35 | Periodo: 11 de 11 ** Sub-Periodo: 01 de 01 | 8.25 % | 0,98 € |
| 00002 | 2006-03-01 | 2006-06-30 | 122 | 37,35 | Periodo: 01 de 09 ** Sub-Periodo: 01 de 02 | 9.25 % | 1,15 € |
| 00002 | 2006-07-01 | 2006-12-31 | 184 | 37,35 | Periodo: 01 de 09 ** Sub-Periodo: 02 de 02 | 9.83 % | 1,85 € |
| 00002 | 2007-01-01 | 2007-06-30 | 181 | 37,35 | Periodo: 02 de 09 ** Sub-Periodo: 01 de 02 | 10.58 % | 1,96 € |
| 00002 | 2007-07-01 | 2007-12-31 | 184 | 37,35 | Periodo: 02 de 09 ** Sub-Periodo: 02 de 02 | 11.07 % | 2,08 € |
| 00002 | 2008-01-01 | 2008-06-30 | 182 | 37,35 | Periodo: 03 de 09 ** Sub-Periodo: 01 de 02 | 11.20 % | 2,09 € |
| 00002 | 2008-07-01 | 2008-12-31 | 184 | 37,35 | Periodo: 03 de 09 ** Sub-Periodo: 02 de 02 | 11.07 % | 2,08 € |
| 00002 | 2009-01-01 | 2009-06-30 | 181 | 37,35 | Periodo: 04 de 09 ** Sub-Periodo: 01 de 02 | 9.50 % | 1,76 € |
| 00002 | 2009-07-01 | 2009-12-31 | 184 | 37,35 | Periodo: 04 de 09 ** Sub-Periodo: 02 de 02 | 8.00 % | 1,51 € |
| 00002 | 2010-01-01 | 2010-06-30 | 181 | 37,35 | Periodo: 05 de 09 ** Sub-Periodo: 01 de 02 | 8.00 % | 1,48 € |
| 00002 | 2010-07-01 | 2010-12-31 | 184 | 37,35 | Periodo: 05 de 09 ** Sub-Periodo: 02 de 02 | 8.00 % | 1,51 € |
| 00002 | 2011-01-01 | 2011-06-30 | 181 | 37,35 | Periodo: 06 de 09 ** Sub-Periodo: 01 de 02 | 8.00 % | 1,48 € |
| 00002 | 2011-07-01 | 2011-12-31 | 184 | 37,35 | Periodo: 06 de 09 ** Sub-Periodo: 02 de 02 | 8.25 % | 1,55 € |
| 00002 | 2012-01-01 | 2012-06-30 | 182 | 37,35 | Periodo: 07 de 09 ** Sub-Periodo: 01 de 02 | 8.00 % | 1,49 € |
| 00002 | 2012-07-01 | 2012-12-31 | 184 | 37,35 | Periodo: 07 de 09 ** Sub-Periodo: 02 de 02 | 8.00 % | 1,51 € |
| 00002 | 2013-01-01 | 2013-02-23 | 54 | 37,35 | Periodo: 08 de 09 ** Sub-Periodo: 01 de 03 | 7.75 % | 0,43 € |
| 00002 | 2013-02-24 | 2013-06-30 | 127 | 37,35 | Periodo: 08 de 09 ** Sub-Periodo: 02 de 03 | 8.75 % | 1,14 € |
| 00002 | 2013-07-01 | 2013-12-31 | 184 | 37,35 | Periodo: 08 de 09 ** Sub-Periodo: 03 de 03 | 8.50 % | 1,60 € |
| 00002 | 2014-01-01 | 2014-04-27 | 116 | 37,35 | Periodo: 09 de 09 ** Sub-Periodo: 01 de 01 | 8.25 % | 0,98 € |
| 00003 | 2010-10-11 | 2010-12-31 | 82 | 38,95 | Periodo: 01 de 05 ** Sub-Periodo: 01 de 01 | 8.00 % | 0,70 € |
| 00003 | 2011-01-01 | 2011-06-30 | 181 | 38,95 | Periodo: 02 de 05 ** Sub-Periodo: 01 de 02 | 8.00 % | 1,55 € |
| 00003 | 2011-07-01 | 2011-12-31 | 184 | 38,95 | Periodo: 02 de 05 ** Sub-Periodo: 02 de 02 | 8.25 % | 1,62 € |
| 00003 | 2012-01-01 | 2012-06-30 | 182 | 38,95 | Periodo: 03 de 05 ** Sub-Periodo: 01 de 02 | 8.00 % | 1,55 € |
| 00003 | 2012-07-01 | 2012-12-31 | 184 | 38,95 | Periodo: 03 de 05 ** Sub-Periodo: 02 de 02 | 8.00 % | 1,57 € |
| 00003 | 2013-01-01 | 2013-02-23 | 54 | 38,95 | Periodo: 04 de 05 ** Sub-Periodo: 01 de 03 | 7.75 % | 0,45 € |
| 00003 | 2013-02-24 | 2013-06-30 | 127 | 38,95 | Periodo: 04 de 05 ** Sub-Periodo: 02 de 03 | 8.75 % | 1,19 € |
| 00003 | 2013-07-01 | 2013-12-31 | 184 | 38,95 | Periodo: 04 de 05 ** Sub-Periodo: 03 de 03 | 8.50 % | 1,67 € |
| 00003 | 2014-01-01 | 2014-04-27 | 116 | 38,95 | Periodo: 05 de 05 ** Sub-Periodo: 01 de 01 | 8.25 % | 1,02 € |
| 00004 | 2012-11-07 | 2012-12-31 | 55 | 39,93 | Periodo: 01 de 03 ** Sub-Periodo: 01 de 01 | 8.00 % | 0,48 € |
| 00004 | 2013-01-01 | 2013-02-23 | 54 | 39,93 | Periodo: 02 de 03 ** Sub-Periodo: 01 de 03 | 7.75 % | 0,46 € |
| 00004 | 2013-02-24 | 2013-06-30 | 127 | 39,93 | Periodo: 02 de 03 ** Sub-Periodo: 02 de 03 | 8.75 % | 1,22 € |
| 00004 | 2013-07-01 | 2013-12-31 | 184 | 39,93 | Periodo: 02 de 03 ** Sub-Periodo: 03 de 03 | 8.50 % | 1,71 € |
| 00004 | 2014-01-01 | 2014-04-27 | 116 | 39,93 | Periodo: 03 de 03 ** Sub-Periodo: 01 de 01 | 8.25 % | 1,05 € |
| 00005 | 2012-11-09 | 2012-12-31 | 53 | -28,95 | Periodo: 01 de 03 ** Sub-Periodo: 01 de 01 | 8.00 % | -0,34 € |
| 00005 | 2013-01-01 | 2013-02-23 | 54 | -28,95 | Periodo: 02 de 03 ** Sub-Periodo: 01 de 03 | 7.75 % | -0,33 € |
| 00005 | 2013-02-24 | 2013-06-30 | 127 | -28,95 | Periodo: 02 de 03 ** Sub-Periodo: 02 de 03 | 8.75 % | -0,88 € |
| 00005 | 2013-07-01 | 2013-12-31 | 184 | -28,95 | Periodo: 02 de 03 ** Sub-Periodo: 03 de 03 | 8.50 % | -1,24 € |
| 00005 | 2014-01-01 | 2014-04-27 | 116 | -28,95 | Periodo: 03 de 03 ** Sub-Periodo: 01 de 01 | 8.25 % | -0,76 € |
+——–+————-+————+——-+————+———————————————+————+—————-+
59 rows in set (0.04 sec)
Impresentable la situación en este entorno. En cualquier caso los cálculos se han sumarizado en la base de datos de apuntes totalizados.
mysql> select * from bd_apunte;
+———–+————-+————-+———-+—————+—————+————–+
| Id_apunte | fecha_cargo | fecha_valor | comision | concepto | total_interes | total_demora |
+———–+————-+————-+———-+—————+—————+————–+
| 1 | 2006-03-02 | 2006-03-01 | 37.35 | COMISION-1 | 16.30 | 34.75 |
| 2 | 2004-01-28 | 2004-01-25 | 37.35 | COMISION-2 | 13.26 | 27.65 |
| 3 | 2010-10-12 | 2010-10-11 | 38.95 | COMISION-3 | 5.53 | 11.32 |
| 4 | 2012-11-13 | 2012-11-09 | 39.93 | COMISION-4 | 2.35 | 4.92 |
| 5 | 2012-11-13 | 2012-11-07 | -28.95 | RETROCESION-1 | -1.70 | -3.55 |
+———–+————-+————-+———-+—————+—————+————–+
5 rows in set (0.00 sec)
El interes legal y la demora comercial se han sumarizado correctamente. El Resúmen de esta forma es poco presentable aunque exacto. Se respeta la totalizarización por apuntes. Por eso incidimos en una presentación exportada a entornos mas amigables.
Es de destacar la descomposición en Períodos y Subperíodos para el cálculo. Para estos cálculos ha sido preciso efectuar 33 + 59. la diferencia la marcan los diferentes tipos de interés dentro del período (1 año), son diferentes si aplicamos un tipo de interés u otro. El tipo de cálculo lo determina el tipo de procedimiento a utilizar y por ende sus tablas vinculadas.
Carlos Briso (2014-06-04)
_____________________________________________________________________________
** DISPONIBLE -YA- VERSION: -LIO 1.3.5 Estable- 04/06/2014
— Carlos Briso (c) 2014 —————————————————
– Puede utilizar este código, o modificarlo, unicamente cite a su autor. Happy Hacking. ———————————————————-
*******************************************************************************
1.- Enlace de Descarga Creación de BB. de DD. y Ejemplos:
Ejecutar desde el shell:
$ mysql -u root -p < respaldo_BBDD.txt
(Nos creará las Bases de Datos con algún Ejemplo).
2.-Enlace de descarga de los Procedimientos de Cálculo:
Incorporamos 5 procedimientos de Cálculo totalmente reescritos. Ambos son idénticos excepto que atacan diferentes tablas de tipos de interés según el calculo que deseemos realizar:
2-1.- Para interés legal:
Enlace de Descarga: p_cal_interes_legal
2-2.- Para interés pactado:
Enlace de Descarga: p_cal_interes_pactado
2-2.- Para interés legal + 5%:
Enlace de Descarga: p_cal_interes_legal_mas5
2-4.- Para demora legal:
Enlace de Descarga: p_cal_demora_legal
2-5.- Para demora comercial:
Enlace de Descarga: p_cal_demora_comercial
3.- Ejemplo de Resultados Obtenidos formato PDF en Modo Comando:
Enlace de Descarga: Ejemplo de Resultados Obtenidos
4.- Modelo de Carta de Reclamación:
Enlace de Descarga: Publicación Prevista: Abril 2014
(Cargar Procedimiento y ejecutar en WorkBench por ejemplo. Una vez cargado el script en WorkBench generar el procedimiento con <Ctrl>+<Intro>).
Desde MySQL ejecutar (una vez hecho lo anterior):
Para comprobar que el procedimiento o procedimientos estan creados:
mysql> show procedure status;
Para ejecutar el procedimiento deseado:
mysql> call p_cal_interes_legal(current_date());
Nos generará los resultados en la fecha actual.
Si queremos realizar cálculos en otra fecha, por ejemplo para el 25 de Febrero de 2014:
mysql> call p_cal_interes_legal(‘2014-02-25’);
OBSERVACIONES: Se ha modificado totalmente la Estructura de las BB. de DD. y reescrito de nuevo los procedimientos. Al ser idénticos excepto en algún campo, y la tabla de tipos de ataque. S e esta trabajando actualmente en una generalización que parametrizada en la llamada del procedimiento especifique el tipo de cálculo deseado.
(versión LIO 1.5)
La versión actual contempla ABONOS, o ENTREGAS A CUENTA, recalculando los resultados por fecha valor.
(La documentación se esta desarrollando. Se recomienda leer lo que sigue a continuación, aunque lo único de la versión anterior interesante es el concepto). Finalizada la versión LIO 1.5 se procederá al desarrollo en entorno PHP. No será entonces ya necesario tener conocimientos avanzados sobre MySQL
******************************************************************* ***********
Versión: 0.11d (2014-12-22) – ** PARTE 1 => Entorno MySQL **
ENTROPIA.
A veces la falta de respuesta, es la consecuencia de mas consecuencias graves y evidentes. Es importante compartir, pero no casi siempre. Todo lo que sucede es tan evidente que lo envuelve su propia entropia y entonces, y al final, todo parece estar bien; Por eso casi nunca, nadie hace nada.
La Usura es entropia. Es una forma de robo, de energia. Hace centenares de años que se habla sobre ello. En España y en el anterior siglo se Legisló al respecto: –Ley Azcarate–, o simplemente: «Ley de la Usura de 23 de Junio de 1908». Lo peor, es que esa Ley: todavia esta vigente, pero: -a su manera-.
La mayor estafa de la historia bancaria se ha producido ahora, hace 2, 3 o 4 años. Lo peor es que ha sido descubierta. Como no, sus protagonistas principales eran entre otros: Todos bancos europeos.
Ya han sido juzgados, y en esta cuestión creo recordar que su multa a pagar ha sido de mil y pico millones de euros,… En cualquier caso se cálcula, que en paises como Italia, el beneficio del complot pudo ocasionar pérdidas a los pobres hipotecados de 35.000 millones de euros, en Inglaterra de 50.000, en Francia de 40.000, en España no menos de 30.000, y así hasta 27 paises ó que mas dá.
El asunto parece ser que es una trampa en el cálculo del euribor como referencia para el cálculo a su vez de los diferenciales pactados en las operaciones hipotecarias de la banca europea. En realidad esta referencia -euribor- nunca ha existido, y cualquier europeo hipotecado en una u otra condición ha sido estafado.
Se aplica el truco del almendruco. Se supone lo que han robado, mas un porcentaje de sanción y ya está. Un chollo vamos. Pero incluso con técnicas de matematica borrosa, y con una pequeña colaboración de las autoridades financieras, puede estimarse el índice al alza como diferencial del perjudicado, de la misma forma que han calculado alegremente un monto de estafa materializado en una cantidad fisicamente sancionable.
Y puesto que se aplica una matemática borrosa para la sanción del condenado, es evidente que en su descargo la parte afectada argumente en su defensa un diferencial «borroso», pero a su favor, y exigible ante los tribunales.
En esta cuestión el delincuente tiene muchas ventajas:
– Es inocente.
– Cuando alguien roba con esa frescura y es interceptado declarará como mucho su botín actual.
– Que porcentaje de sanción se le impone?. La de su pais, la del pais donde le interceptan ?.
– Como se devuelve el monto robado, si ya no es tangible ?.
En fin, un debate complicado y con muchos implicados….
Es por todo eso por lo que escribo, y a continuación lo que sigue:
0.- PREAMBULO.
¿ Que me motivó a escribir un código sencillo para calcular y volver a recálcular; y además sobre unas comisiones, usureras, indignas y legalmente bancarias; y analizar además un tipo injusto de interés legal ó de demora ?.
En primer lugar, no programo hace años. Esa época pensé que para mi ya había pasado. Soy lento, muy lento, en definitiva poco rentable.
Me explicaré, y puede parecéros: correcto, incorrecto ó baladí.
El caso: y que no hace mas de dos meses necesitaba efectuar un reintegro de mi modesta cuenta corriente. No utilizo tarjetas ni de débito ni de crédito. Simplemente cuando necesito dinero lo tomo en efectivo de mi cuenta corriente (si lo tengo). La cola era terrible y desesperante !!.
En fin es el precio de la desesperación !!. Nadie protesta por nada, pero todo el mundo se entera de todo….
A un metro de distancia un buen hombre quiere pedir explicaciones de su cuenta corriente. Creo que todo el mundo se enteró de -todo-. En cualquier caso apliqué mi oreja, y escuche lo siguiente:
–Hola: mire tengo la cuenta en descubierto, …. — Soy marinero y mi hija es muy lista– Me llamó el otro día para que le ingresase –50,00 €– para pagar lo que debía de libros y sus cosas, en Santiago de Compostela. Ella estudia Biología y está en el tercer año. -Le dije que sacase ese dinero con la tarjeta, y no tuvo problema -. Yo no sabía que en la cuenta no había dinero. Cuando pude, -y tarde dos días- , ingresé todo, pero ya no llegaba -les debía 35,37 € , de comisión-, menos mal que estaba mi hermano y pudo ayudarme. Ingresé todo, y al cabo de dos días me cobran otros -35,37 €-, al parecer les dejó a deber 1 euro. No quiero que a mi hija le falte de nada, -Ingresé 30 €-, y veo que me han vuelto a cobrar otros -35,37 €-, porque mi hija necesitaba 32 € y dejó la cuenta en descubierto otra vez y en 1 €, un día. De haberlo sabido les hubiese ingresado antes. Al final lo hice, pero resulta que yo no sabía nada. Mi hija es muy lista, yo soy marinero y quiero que estudie, no quiero que se preocupe, pero no entiendo: ¿Como en un mes vdes. me han cobrado 5 veces -35,37 €- , que son mucho mas de -150,00 €-?. Y Todavía la cuenta de mi hija está en descubierto ?.
(Claro el hombre a lo mejor todavía no sabe que además también debe entre un 19,00 % y un 29,00% de intereses de descubierto, …)
— Fui tan cobarde como todo el mundo que escuchó la Estafa —
! Pretendo pedir disculpas ahora, y Espero que no sea muy tarde !.
En cualquier caso; Los Resultados que se muestren al final serán reales. Esto es solo una pequeña versión beta. Estoy poniendo una base de datos de ejemplo para el test, y a pesar de esto los resultados son increibles: la banca, el estado, la autoridad monetaria y la justicia displicente.
1.- OBJETIVOS.
1.1 Generales.
Desarrollar un sistema de cálculo independiente, y que cuantifique el exceso de Comisiones Bancarias, y su tipo de interés legal y/o de demora, y en una fecha especificada.
En realidad, para que os voy a engañar: — Cuantificar la avaricia bancaria –.
Lo que si tengo claro, es que todo esto no es consecuencia del comportamiento de un banco en especial: — Es un comportamiento habitual y negligente de la autoridad Monetaria y los Estados –.
Espero que la aptitud o falta de ella, no se cristalice en una entidad financiera concreta.
A fin de cuentas: — Son todas Iguales –.
1.2 Técnicos.
Realizar todo, de la forma mas sencilla y comprensible.
Elegí MySQL por su simplicidad. Además; fue también el -elegido-, por que es : parco, sencillo, elegante y discreto, … y potente, muy potente, ….
El volcado de resultados: -arcaico- y a pesar de todo relevante, si ejecutamos el comando –SELECT– adecuado.
En cualquier caso nos mostrará los resultados en un formato complicado, y por supuesto todo lo que exijamos.
1.3 De aprendizaje.
SQL es lenguaje natural. Solo se precisa un poco de lógica y un inglés incluso apto para políticos.
1.4 Por evolución, y técnica.
Es ya evidente, que con estos conocimientos básicos deseemos hablar ya con mas precisión.
Toda esa bateria de resultados debemos presentarla de forma mas elegante. En esto, las alternativas son múltiples:
– Html.
– Php.
– Java.
– etc, …
1.5 Para ayudaros en vuestro cálculo.
No todo el mundo sabe de todo, … menos mal.
1.6 Si necesitais ayuda en el cálculo, ..
Estaremos encantados de echaros una mano.
1.7 Para evitar que os engañen….
En eso, creo que no podré ayudaros mucho, salvo que estéis avizor, y por eso os recomiendo:
2.- DESPLIEGUE DE MEDIOS Y REQUERIMIENTOS.
Utilización de MySQL para el cálculo, y como soporte de Base de Datos.
Requerimientos Necesarios:
Gnu con Linux, MySQL, MySQL WorkBench, PHPMyAdmin.
Bases de Datos y Procedimientos necesarios:
a) cc_interes : Contendrá los tipos de interés legal y de demora por períodos publicados oficialmente desde 1990 hasta el año en curso.
Estructura:
+————–+————–+——+—–+———+—————-+
| Field | Type | Null | Key | Default | Extra
+————–+————–+——+—–+———+—————-+
| Id_interes | int(4) | NO | PRI | NULL | auto_increment
| fecha_inicio | date | NO | | NULL |
| fecha_fin | date | NO | | NULL |
| interes | decimal(4,2) | NO | | NULL |
| demora | decimal(4,2) | NO | | NULL |
+————–+————–+——+—–+———+—————-+
Indices:
+————+————+———-+————–+————-+———–+————-+———-+——–+——+————+———+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+————+————+———-+————–+————-+———–+————-+———-+——–+——+————+———+
| cc_interes | 0 | PRIMARY | 1 | Id_interes | A | 26 | NULL | NULL | | BTREE | |
+————+————+———-+————–+————-+———–+————-+———-+——–+——+————+———+
b) cc_personal : Contendrá apuntes bancarios.
Estructura:
+—————+————–+——+—–+———————————+—————-+
| Field | Type | Null | Key | Default | Extra |
+—————+————–+——+—–+———————————+—————-+
| Id_personal | int(4) | NO | PRI | NULL |auto_increment |
| fecha_cargo | date | NO | MUL | NULL |
| fecha_valor | date | NO | | NULL | |
| comision | decimal(5,2) | NO | | NULL | |
| concepto | varchar(40) | YES | | Gastos Reclamacion Saldo Deudor | |
| total_interes | decimal(5,2) | YES | | NULL |
| total_demora | decimal(5,2) | YES | | NULL | |
+—————+————–+——+—–+———————————+—————-+
Indices:
+————-+————+———-+————–+————-+———–+————-+———-+——–+——+————+———+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+————-+————+———-+————–+————-+———–+————-+———-+——–+——+————+———+
| cc_personal | 0 | PRIMARY | 1 | Id_personal | A | 5 | NULL | NULL | | BTREE | |
| cc_personal | 1 | k_fechas | 1 | fecha_cargo | A | 5 | NULL | NULL | | BTREE | |
| cc_personal | 1 | k_fechas | 2 | fecha_valor | A | 5 | NULL | NULL | | BTREE | |
+————-+————+———-+————–+————-+———–+————-+———-+——–+——+————+———+
c) cc_detail : Contendrá los cálculos detallados por Períodos y Subperíodos.
Estructura:
+—————+————–+——+—–+———+—————-+
| Field | Type | Null | Key | Default | Extra |
+—————+————–+——+—–+———+—————-+
| id_detail | int(4) | NO | PRI | NULL | auto_increment |
| fecha_cargo | date | NO | MUL | NULL | |
| fecha_valor | date | NO | | NULL | |
| per_ini | date | YES | | NULL | |
| per_fin | date | YES | | NULL | |
| dias | int(4) | YES | | NULL | |
| comision | decimal(5,2) | NO | | 0.00 | |
| concepto | varchar(40) | YES | | NULL | |
| interes | decimal(4,2) | YES | | NULL | |
| demora | decimal(4,2) | YES | | NULL | |
| total_interes | decimal(5,2) | YES | | NULL | |
| total_demora | decimal(5,2) | YES | | NULL | |
+—————+————–+——+—–+———+—————-+
Indices:
+———–+————+———-+————–+————-+———–+————-+———-+——–+——+————+———+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+———–+————+———-+————–+————-+———–+————-+———-+——–+——+————+———+
| cc_detail | 0 | PRIMARY | 1 | id_detail | A | 20 | NULL | NULL | | BTREE | |
| cc_detail | 1 | k_fechas | 1 | fecha_cargo | A | NULL | NULL | NULL | | BTREE | |
| cc_detail | 1 | k_fechas | 2 | fecha_valor | A | NULL | NULL | NULL | | BTREE | |
+———–+————+———-+————–+————-+———–+————-+———-+——–+——+————+———+
d) sp_cal_detail() : Procedimiento de Cálculo.
3.- CREACIÓN DE MEDIOS.
3.1.- Iniciamos sesión en MySQL como usuario root:
$ mysql -u root -p
mysql> create schema santander; — Creamos BB. de DD.
mysql> use santander; — Nos posicionamos en la BB. de DD.
3.2.- Creamos usuario ‘carlos’ para el schema santander, y asignamos privilegios:
mysql> create user carlos identified by ‘briso’;
mysql> grant all privileges on santander.* to ‘carlos’@’%’;
Comprobamos:
mysql> select user, host from mysql.user;
+——–+———–+
| user | host |
+——–+———–+
| carlos | % |
| root | 127.0.0.1 |
| root | localhost |
+——–+———–+
mysql> show grants for carlos;
+——————————————————————————————————-+
| Grants for carlos@% |
+——————————————————————————————————-+
| GRANT USAGE ON *.* TO ‘carlos’@’%’ IDENTIFIED BY PASSWORD ‘*9CEE89A60BABCFF9BB7DFFB8C4173E2C65DE5E1F’ |
| GRANT ALL PRIVILEGES ON `santander`.* TO ‘carlos’@’%’ |
+——————————————————————————————————-+
— Salimos
mysql> exit
3.3.- Creamos Bases de Datos (Con datos de Ejemplo).
Utilizaremos un script que nos crea las BB. de DD. con sus índices y con algunos datos de ejemplo.
Copiar el contenido del siguiente enlace en un archivo al que por ejemplo denominamos: crea_bases_de_datos.txt
Enlace: crea_bases_de_datos
Desde el prompt Linux:
$ mysql -u carlos -p santander < crea_bases_de_datos.txt
3.4.- Copiamos el procedimiento de cálculo desde el enlace siguiente y lo pegamos en un archivo denominado sp_cal_detail.sql
Enlace: sp_cal_detail
Lo mas sencillo ahora es importarlo a través de WorkBench. Ejecutamos la Query con <Ctrl> <Intro>. Ahora podemos ya ejecutar el procedimiento desde la línea de comandos de MySql.
3.5.- Ejecución del Procedimiento de Cálculo:
Desde el shell Linux:
$ mysql -u carlos -p santander
(El password habíamos dicho que era ‘briso’)
mysql> call sp_cal_detail(current_date());
4.- CARGA REAL DE INFORMACIÓN.
4.1.- De la Entidad Financiera.
Debemos obtener un fichero en formato LibreOffice de la entidad financiera, en los rangos de fechas para los apuntes que deseamos incorporar. Lo obtenemos como hoja de cálculo para realizar una exportación a formato CSV. Es muy importante cambiar las «,» (comas) por «.» (puntos).
Al fichero lo denominaremos cc_personal.csv
Procedimiento de importación:
$ mysql -u carlos -p santander
mysql> truncate cc_personal; — Eliminamos Datos de Ejemplo.
mysql> load data
infile ‘cc_personal.csv’
into table cc_personal
fields terminated by ‘,’
lines terminated by ‘\n’
ignore 1 lines
(fecha_cargo, fecha_valor, comision) ;
4.2.- De interés legal y de demora.
Podemos realizar la carga por 2 métodos diferentes:
Método A:
Partimos de un fichero denominado cc_interes.csv
Tendrá un aspecto similar a:
fecha_inicio,fecha_fin,interes,demora
1990-01-01,1990-12-31,10.00,12.00
1991-01-01,1991-12-31,10.00,12.00
1992-01-01,1992-12-31,10.00,12.00
1993-01-01,1993-12-31,10.00,12.00
1994-01-01,1994-12-31,09.00,11.00
1995-01-01,1995-12-31,09.00,11.00
1996-01-01,1996-12-31,09.00,11.00
1997-01-01,1997-12-31,07.50,09.50
1998-01-01,1998-12-31,05.50,07.50
1999-01-01,1999-12-31,04.25,05.50
2000-01-01,2000-12-31,04.25,05.50
2001-01-01,2001-12-31,05.50,06.50
2002-01-01,2002-12-31,04.25,05.50
2003-01-01,2003-12-31,04.25,05.50
2004-01-01,2001-12-31,03.75,04.75
2005-01-01,2005-12-31,04.00,05.00
2006-01-01,2006-12-31,04.00,05.00
2007-01-01,2007-12-31,05.00,06.25
2008-01-01,2008-12-31,05.50,07.00
2009-01-01,2009-03-31,05.50,07.00
2009-04-01,2009-12-31,04.00,05.00
2010-01-01,2010-12-31,04.00,05.00
2011-01-01,2011-12-31,04.00,05.00
2012-01-01,2012-12-31,04.00,05.00
2013-01-01,2013-12-31,04.00,05.00
2014-01-01,2014-12-31,04.00,05.00
mysql> truncate cc_interes; — Eliminamos Datos de Ejemplo.
mysql> load data
infile ‘cc_interes.csv’
into table cc_interes
fields terminated by ‘,’
lines terminated by ‘\n’
ignore 1 lines
(fecha_inicio, fecha_fin, interes, demora);
Método B:
mysql> truncate cc_interes; — Eliminamos Datos de Ejemplo.
insert into cc_interes (fecha_inicio, fecha_fin, interes, demora) values
(‘1990-01-01′,’1990-12-31’,10.00,12.00),
(‘1991-01-01′,’1991-12-31’,10.00,12.00),
(‘1992-01-01′,’1992-12-31’,10.00,12.00),
(‘1993-01-01′,’1993-12-31’,10.00,12.00),
(‘1994-01-01′,’1994-12-31’,09.00,11.00),
(‘1995-01-01′,’1995-12-31’,09.00,11.00),
(‘1996-01-01′,’1996-12-31’,09.00,11.00),
(‘1997-01-01′,’1997-12-31’,07.50,09.50),
(‘1998-01-01′,’1998-12-31’,05.50,07.50),
(‘1999-01-01′,’1999-12-31’,04.25,05.50),
(‘2000-01-01′,’2000-12-31’,04.25,05.50),
(‘2001-01-01′,’2001-12-31’,05.50,06.50),
(‘2002-01-01′,’2002-12-31’,04.25,05.50),
(‘2003-01-01′,’2003-12-31’,04.25,05.50),
(‘2004-01-01′,’2001-12-31’,03.75,04.75),
(‘2005-01-01′,’2005-12-31’,04.00,05.00),
(‘2006-01-01′,’2006-12-31’,04.00,05.00),
(‘2007-01-01′,’2007-12-31’,05.00,06.25),
(‘2008-01-01′,’2008-12-31’,05.50,07.00),
(‘2009-01-01′,’2009-03-31’,05.50,07.00),
(‘2009-04-01′,’2009-12-31’,04.00,05.00),
(‘2010-01-01′,’2010-12-31’,04.00,05.00),
(‘2011-01-01′,’2011-12-31’,04.00,05.00),
(‘2012-01-01′,’2012-12-31’,04.00,05.00),
(‘2013-01-01′,’2013-12-31’,04.00,05.00),
(‘2014-01-01′,’2014-12-31’,04.00,05.00) ;
5.- RESULTADOS.
Analizando el procedimiento sp-cal_detail podemos observar que realiza un –truncate– en la BB. de DD. cc_detail , puesto que actualiza la BB. de DD. con cada nuevo cálculo, y por otra parte efectua una actualización en la BB. de DD. cc_personal incorporando los totales acumulados por fecha valor y con el desglose de Períodos y/o Subperiodos de la BB. de DD. cc_personal. Con la ejecución del procedimiento se refrescan los acumulados. El cálculo debe efectuarse en ciertas condiciones:
1.- Debe ser superior al año 1.990, puesto que no tiene sentido efectuar ningún cálculo de reclamación sin tarifas de tipo de interés legal o de démora no publicadas.
2.- Si se supera el año de cálculo de publicación de tipos de interés legal ó de démora, los resultados se efectuarán a unos tipos de interés de 0,00%. Por otra parte una situación de reclamación con poco sentido.
3.- En la circunstancia que la entidad financiera haya efectuado abonos parciales: deben indicarse en signo: —negativo — y por el monto del importe reconocido–. La variable crucial es la -fecha valor-, la fecha de cargo es meramente indicativa para la situación del apunte contable. Las correcciones negativas se aplicarán también por fecha valor.
En Resúmen:
>> Necesitamos una BB. de DD. de tipos de interés -> cc_interes >>> Es Publicada de forma Legal y Anualmente (Presupuestos Generales del Estado). Es incorporable con los procedimientos descritos. En España la reclamación deja de ser legal pasados 10 años. Pero puede no obstante realizarse con muchas posibilidades de éxito.
La base de datos de tipos de interés legales como ya indicamos se publica anualmente. Solo existe una excepción para el año 2009, donde se publican tipos de interés legales y de demora en 2 períodos. A nivel informático: la versión actual contempla ese extremo, y los cálculos son exáctos. De todas formas ante la duda del comportamiento de la autoridad financiera se desarrollará en breve una nueva versión que contemple infiinitos Subperiodos. El código fuente actual que se comparte es para la versión de 2 Sub-Periodos. Procuraremos en breve un entorno mas asequible (ejecutables Java ó PHP).
6.- BIBLIOGRAFIA.
Toda técnica ó arte se la deseamos para el que se considere artista, porque necesitará de estudio y reflexión. Los medios pueden ser muy diversos siempre que se tenga claro un objetivo: La resolución de algún problema. El problema habitualmente suele ser cotidiano. Este es el caso. Hemos utilizado la siguiente información bibliográfica muy básica:
* MySQL 5 – Guia de Referencia del desarrollador.
Autor: Didier Deléglise
ISBN: 978-2-7460-8388-2
(Editorial ENI)
* PHP 5.3 – Desarrollar un sitio Web dinámico e interactivo
Autor: Olivier Heurtel
ISBN: 978-2-7460-6666-3
(Editorial ENI)
* Seguridad Informática – Ethical Hacking. Conocer el ataque para una mejor defensa.
Autor: Varios. ACISSI
ISBN: 978-2-7460-79281-1
(Editorial ENI)
* Oracle 11g – SQL, PL/SQL, SQL*PLUS
Autor: Jérome Gabillaud
ISBN: 978-2-7460-5360-1
(Editorial ENI)
* Oracle 11g – Administración
Autor: Olivier Heurtel
ISBN: 978-2-7460-5169-0
(Editorial ENI)
* Aprender a Desarrollar un sitio Web con PHP y MySQL
Autor: Olivier Rollet
ISBN: 978-2-7460-8288-5 (Edición Marzo 2014)
(Editorial ENI)
Happy Hacking.
** Última Fecha de Actualización de Contenido >> 2014-03-03 << **
__________________________________________________________________
— Versión Actual Software LIO 1.2 (2014-02-24) – (c) carlos briso —
__________________________________________________________________
–>> En breve:
Conexión a través de PHP, por los tres métodos clásicos:
– mysql_
-mysqli_
-clases PDO
–>> Entornos Previstos:
– PHP. ** PARTE 2 => Entorno PHP **
– Java. ** PARTE 3 => Entorno Java **
_______________________________________________________________________
NOTA TECNICA: Previo al desarrollo de una versión en un entorno de Programación y empezar a liar la cuestión con matrices multidimensionales: de períodos, sub-períodos, etc, .. Preferimos un check exhaustivo de la versión actual, y la actualización para infinitos sub-períodos dentro del período. Con lo cual el desarrollo sería mas completo, y a nuestro pesar mas complejo.
— CHEQUEO EFECTUADO OK. –24-02-2014 —
-> PROCESO SIGUIENTE: Generalización Modelo –> LIO 1.5
Estimamos que la versión LIO estará operativa antes de 15 ó 20 días. En cualquier caso la versión actual es la DUO (o sea que Hacienda cambia, y puede cambiar el tipo de interés legal y de demora 2 veces como máximo en el mismo ejercicio -Ejemplo año 2009-).
–> VERSION DUO –> DESCATALOGADA
Mientras tanto a ver si no se lian tanto, … porque entonces estará ya programada la versión: LIO.
** YA DISPONIBLE desde 24/02/2014 **
_____________________________________________________________________________
2167