2 case 878:
3
4 $msg .= "============================ GENERANDO
TABLAS DE AMORTIZACION TCB \r\n ";
5
6
7
8 //crear tabla
de amortizaciones pagadas
9
10 $sql = "SELECT SQL_CACHE
11
12 `operaciones_mvtos`.`socio_afectado` AS `socio`,
13
14 `operaciones_mvtos`.`docto_afectado` AS `credito`,
15
16 `operaciones_mvtos`.`tipo_operacion` AS `operacion`,
17
18 `operaciones_mvtos`.`fecha_operacion` AS `fecha`,
19
20 `eacp_config_bases_de_integracion_miembros`.`codigo_de_base`,
21
22 SUM(`operaciones_mvtos`.`afectacion_real`) AS `monto`
23
24 FROM
25
26 `eacp_config_bases_de_integracion_miembros`
27
28 `eacp_config_bases_de_integracion_miembros`
29
30 INNER JOIN `operaciones_mvtos` `operaciones_mvtos`
31
32 ON `eacp_config_bases_de_integracion_miembros`.`miembro` =
33
34 `operaciones_mvtos`.`tipo_operacion`
35
36 WHERE
37
38 (`eacp_config_bases_de_integracion_miembros`.`codigo_de_base`
=8002)
39
40 AND
41
42 (`operaciones_mvtos`.`docto_afectado` != 1)
43
44 GROUP BY
45
46 `operaciones_mvtos`.`docto_afectado`,
47
48 `operaciones_mvtos`.`tipo_operacion`,
49
50 `operaciones_mvtos`.`fecha_operacion`
51
52 ORDER BY
53
54 `eacp_config_bases_de_integracion_miembros`.`codigo_de_base`,
55
56 `operaciones_mvtos`.`docto_afectado`,
57
58 `operaciones_mvtos`.`fecha_operacion`,
59
60 `operaciones_mvtos`.`tipo_operacion` /* LIMIT 0,100 */ ";
61
62 $rs = mysql_query($sql, cnnGeneral() );
63
64 $MarkCredito = false;
65
66 $MarkFecha = false;
67
68 while( $rw = mysql_fetch_array($rs) ) {
69
70 $credito = $rw["credito"];
71
72 $socio = $rw["socio"];
73
74 $fecha = $rw["fecha"];
75
76 $operacion = $rw["operacion"];
77
78 $monto = $rw["monto"];
79
80
81
82 $iva_pagado = 0;
83
84 $capital_pagado = 0;
85
86 $IM_pagado = 0;
87
88 $IN_pagado = 0;
89
90 $IvaMPagado = 0;
91
92 $comisiones = 0;
93
94 $iva_comisiones = 0;
95
96
97
98 switch ( $operacion
){
99
100 case 120:
101
102 $capital_pagado
+= $monto;
103
104 break;
105
106 case 140:
107
108 $IN_pagado += $monto;
109
110 $iva_pagado += $monto * 0.15;
111
112 break;
113
114 case 141:
115
116 $IM_pagado += $monto;
117
118 $IvaMPagado += $monto * 0.15;
119
120 break;
121
122 case 146:
123
124 $comisiones += $monto;
125
126 break;
127
128 case 145:
129
130 $comisiones += $monto;
131
132 break;
133
134 case 351:
135
136 $IN_pagado += $monto;
137
138 $iva_pagado += $monto * 0.15;
139
140 break;
141
142 case 143:
143
144 $IM_pagado += $monto;
145
146 $IvaMPagado += $monto * 0.15;
147
148 break;
149
150 case 142:
151
152 $IN_pagado += $monto;
153
154 $iva_pagado += $monto * 0.15;
155
156 break;
157
158 }
159
160 $sql = "UPDATE tcb_prestamos_movimientos
161
162 SET
163
164 capital_pagado=(capital_pagado + $capital_pagado),
165
166 interes_pagado= (interes_pagado + $IN_pagado),
167
168 iva_pagado=(iva_pagado + $iva_pagado),
169
170 interes_moratorio= (interes_moratorio + $IM_pagado),
171
172 iva_interes_moratorio=(iva_interes_moratorio + $IvaMPagado),
173
174 comisiones=(comisiones + $comisiones),
175
176 iva_comisiones=(iva_comisiones + $iva_comisiones)
177
178 WHERE
179
180 (numero_de_cliente=$socio)
181
182 AND
183
184 (numero_de_credito=$credito)
185
186 AND
187
188 (fecha_de_amortizacion='$fecha') ";
189
190 $x = my_query($sql, true);
191
192 if ( ($x["stat"] == false) OR ($x["rows"] <= 0) ){
193
194 $msg .= "$socio\t$credito\t$operacion\tWARN\tSe
fallo al actualizar el registro(" . $x["rows"] . "), se intenta uno nuevo\r\n";
195
196 $sql = "INSERT INTO tcb_prestamos_movimientos
197
198 (numero_de_cliente, numero_de_credito, numero_de_pago,
fecha_de_amortizacion,
199
200 capital_a_pagar, interes_a_pagar,
iva_por_el_interes_a_pagar,
201
202 capital_pagado, interes_pagado, iva_pagado,
203
204 interes_moratorio, iva_interes_moratorio, comisiones,
iva_comisiones)
205
206 VALUES
207
208 ($socio, $credito, 0, '$fecha',
209
210 0, 0, 0,
211
212 $capital_pagado, $IN_pagado, $iva_pagado,
213
214 $IM_pagado, $IvaMPagado, $comisiones, $iva_comisiones) ";
215
216
217
218 $x = my_query($sql);
219
220 if ( $x["stat"] == false){
221
222 $msg .= "$socio\t$credito\t$operacion\tERROR\tSe
fallo al agregar el registro\r\n";
223
224 }
225
226 } else {
227
228 $msg .= "$socio\t$credito\t$operacion\tOK\tRegistro
actualizado\r\n";
229
230 }
231
232 }
233
234 //separar de
un pago
235
236 //separar de pagos varios
237
238 //acumular operaciones por pagar
239
240 //acumular conceptos pagados
241
242 $sqlIS = "SELECT socio, credito, parcialidad,
243
244 fecha_de_vencimiento, fecha_de_abono,
245
246 saldo_vigente, saldo_vencido, interes_vigente,
interes_vencido, saldo_interes_vencido,
247
248 interes_moratorio, estatus, iva_interes_normal,
iva_interes_moratorio
249
250 FROM sisbancs_amortizaciones ";
251
252
253
254 $rs = mysql_query($sqlIS, cnnGeneral() );
255
256 while( $rw = mysql_fetch_array($rs) ) {
257
258 $credito = $rw["credito"];
259
260 $socio = $rw["socio"];
261
262 $fecha = $rw["fecha_de_vencimiento"];
263
264 $monto = $rw["monto"];
265
266 $letra = $rw["parcialidad"];
267
268 $capital = $rw["saldo_vigente"] + $rw["saldo_vencido"];
269
270 $interes = $rw["interes_vigente"] + $rw["interes_vencido"];
271
272 $iva = $rw["iva_interes_normal"];
273
274
275
276 $sqlIS = "INSERT INTO tcb_prestamos_movimientos
277
278 (numero_de_cliente, numero_de_credito, numero_de_pago,
fecha_de_amortizacion, capital_a_pagar,
279
280 interes_a_pagar, iva_por_el_interes_a_pagar, capital_pagado,
interes_pagado, iva_pagado,
281
282 interes_moratorio, iva_interes_moratorio, comisiones,
iva_comisiones)
283
284 VALUES($socio, $credito, $letra, '$fecha', $capital,
285
286 $interes, $iva, 0, 0, 0, 0, 0, 0, 0)";
287
288 my_query($sqlIS);
289
290 }
291
292 break;
293
La primera pruebas me ha arrojado buenos resultados, pero no los que esperaba.
Uno de esos errores era la no coincidencia entre el saldo y la suma de "pagados" y "pendientes de pago", por ellos elaboré un script SQL para buscar diferencias
SELECT numero_de_cliente, numero_de_credito, saldo_actual, SUM(capital_a_pagar) AS 'apagar',
SUM(capital_pagado) AS 'pagado', monto_autorizado,
(SUM(capital_a_pagar) + SUM(capital_pagado)) AS 'resultado'
FROM `creditos_solicitud` `creditos_solicitud`
INNER JOIN `tcb_prestamos_movimientos` `tcb_prestamos_movimientos`
ON `creditos_solicitud`.`numero_solicitud` = `tcb_prestamos_movimientos`
.`numero_de_credito`
GROUP BY
numero_de_credito
HAVING (monto_autorizado - resultado) != 0
También me día la tarea de elaborar otro procedimiento PHP para eliminar Movimientos de Crédito mo migrables, tal como es el caso de los créditos pagados.
2 case 881:
3
4 $sql = "
5
6 SELECT
7
8 `creditos_solicitud`.*,
9
10 `creditos_solicitud`.`estatus_actual`,
11
12 `creditos_solicitud`.`saldo_actual`
13
14 FROM
15
16 `creditos_solicitud` `creditos_solicitud`
17
18 WHERE
19
20 (`creditos_solicitud`.`estatus_actual` =50) OR
21
22 (`creditos_solicitud`.`saldo_actual` <=0.99)
23
24 ";
25
26 $rs = mysql_query($sql, cnnGeneral() );
27
28 while( $rw = mysql_fetch_array($rs) ) {
29
30 $credito = $rw["numero_solicitud"];
31
32 $sqlDE = " DELETE FROM tcb_prestamos_movimientos WHERE numero_de_credito=$credito ";
33
34 $x = my_query($sqlDE, true);
35
36 $msg = $x["info"];
37
38 }
39
40 break;
41
ejecuté el código de la utilería 882, y tardó varios minutos en mi pc de pruebas un Intel Dual Core a 1.8 Ghz con 2GB de RAM.