Ver Mensaje Individual
  #14 (permalink)  
Antiguo 30/06/2015, 12:19
Avatar de JeMaGa
JeMaGa
 
Fecha de Ingreso: julio-2011
Ubicación: Bogota
Mensajes: 430
Antigüedad: 13 años, 4 meses
Puntos: 4
Respuesta: Procedimiento Almacenado

tablas a utilizar
cabecera_comprobantes_2015_6
detalle_comprobantes_2015_6
saldos_contables_2015

1. mostrar todas las cuentas asociadas al id_cabecera_comprobantes_2015_6

Código MySQL:
Ver original
  1. SELECT detalle.id_cabecera, detalle.codigo_cuenta, detalle.sucursal, detalle.debito, detalle.credito, detalle.tercero, detalle.centrocosto FROM detalle_comprobantes_2015_6 as detalle HAVING detalle.id_cabecera = [id_cabecera_comprobantes_2015_6];

2. el usuario oprime el boton mayorizar
2.1 el sistema debe empezar a recorrer cada cuenta
Código MySQL:
Ver original
  1. SELECT codigo,movimiento,terceros,mayor,centrocosto FROM puc WHERE codigo = 11050503
2.2 el sistema debe verificar si la cuenta tiene o no centro de costo
2.2.1 Si la cuenta tiene centro de costo realiza consulta a la tabla saldos_contables_2015 para verificar si exite ya en la tabla, el centro de costo y la cuenta correspondiente o no
Código MySQL:
Ver original
  1. SELECT id FROM saldos_contables_2015 WHERE cuenta = 11050503 and tercero = NULL and centroCosto = 102030

si exite el centro de costo y la cuenta, lo que va hacer es actualizar el registro en la tabla saldos_contables_2015
Código MySQL:
Ver original
  1. UPDATE saldos_contables_2015 SET db_06 = 10000, cr_06 =10000 WHERE id = id_saldos_contables_2015;
si no
Código MySQL:
Ver original
  1. INSERT INTO saldos_contables_2015 (cuenta,tercero,sucursal,centroCosto,db_06,cr_06) VALUES(11050503,NULL,NULL, 102030, 10000,10000);
2.2.1.1 todo este proceso se debe realizar hasta que el centro de costo quede en NULL, cuando termine con esta cuenta debe realizar el mismo proceso con el padre de la

2.2.2 si la cuenta NO tiene centro de costo realiza el mismo proceso que en el punto 2.2.1 pero sin evaluar centro de costo
Código MySQL:
Ver original
  1. SELECT id FROM saldos_contables_2015 WHERE cuenta = 11050503 and tercero = NULL

2.2.2.1 se realiza
si exite la cuenta, lo que va hacer es actualizar el registro en la tabla saldos_contables_2015
Código MySQL:
Ver original
  1. UPDATE saldos_contables_2015 SET db_06 = 10000, cr_06 =10000 WHERE id = id_saldos_contables_2015;
si no
Código MySQL:
Ver original
  1. INSERT INTO saldos_contables_2015 (cuenta,tercero,sucursal,db_06,cr_06) VALUES(11100405,NULL,NULL, 10000,10000);
aqui me empieza a insertar el codigo de la cuenta en la tabla saldos_contables_2015 hasta que la cuenta quede en 1