Dame Alumno PHP

Para poder revisar los materiales creados por el PHP, se deja un script para que pueda ser ejecutado en la Base de Datos y así poder revisar los resultados encontrados:


-- Antes de Ejecutar, se deben cambiar los parámetros de la penúltima consulta
set @empresaId = 1;
set @alumnoId = 15159221;

select trans_id into @transFacturaId from trans where empresa_id = @empresaId and parametro = 'FA';
select trans_id into @transPagoId from trans where empresa_id = @empresaId and parametro = 'PA';
select trans_id into @transNotaCreditoId from trans where empresa_id = @empresaId and parametro = 'NCR';
select trans_id into @transNotaDebitoId from trans where empresa_id = @empresaId and parametro = 'ND';
select trans_id into @transDevolucionId from trans where empresa_id = @empresaId and parametro = 'DEV';
select trans_id into @transReembolsoId from trans where empresa_id = @empresaId and parametro = 'RE';
select trans_id into @transCancelacionPagoId from trans where empresa_id = @empresaId and parametro = 'CPA';

drop temporary table if exists alumno_tmp;
create temporary table alumno_tmp
select a.*
from alumno a, alumno b
where b.alumno_id = @alumnoId
and a.persona_id = b.persona_id
and a.activo = 1
and a.no_cobrar = 0
/*and cnc.paga_colegio = 0 PASA AL QUERY DE ARTICULOS POR PAGAR */
order by a.alumno_id desc;

select a.*
from alumno a, alumno b
where b.alumno_id = @alumnoId
and a.persona_id = b.persona_id
and a.activo = 1
;

select distinct a.alumno_id, p.*, c.colegio_id, c.colegio_clave, c.colegio, c.persona_id as persona_colegio_id,
n.*, g.*, gpo.*, ce.*, cgg.*
from alumno_tmp a, persona p, colegio_nivel_ciclo cnc, colegio_grado_grupo cgg,
colegio c, nivel n, grado g, grupo gpo, ciclo_escolar ce
where /*a.alumno_id = ?ll_alumno_id
and*/ a.activo = 1
and p.persona_id = a.persona_id
and cgg.colegio_grado_grupo_id = a.colegio_grado_grupo_id
and cnc.colegio_nivel_ciclo_id = cgg.colegio_nivel_ciclo_id
/*and cnc.activo = 1*/
and ce.ciclo_escolar_id = cnc.ciclo_escolar_id
/*and ce.pagando = 1*/
and n.nivel_id = cnc.nivel_id
and g.grado_id = cgg.grado_id
and gpo.grupo_id = cgg.grupo_id
and c.colegio_id = cnc.colegio_id
order by ce.pagando desc, a.alumno_id desc, ce.ciclo_escolar_orden
limit 0, 1;

drop temporary table if exists documento_linea_tmp;
create temporary table documento_linea_tmp
select distinct dl.* from documento_linea dl, alumno_tmp al
where dl.alumno_id = al.alumno_id /* PUEDE VENIR ALUMNO */
and dl.persona_id = al.persona_id; /* Y PERSONA */

insert into documento_linea_tmp
select distinct dl.* from documento_linea dl, alumno_tmp al
where dl.alumno_id = 0 /* PUEDE VENIR SIN ALUMNO */
and dl.persona_id = al.persona_id; /* Y UNICAMENTE PERSONA */

insert into documento_linea_tmp
select distinct dl.* from documento_linea dl, alumno_tmp al
where dl.alumno_id = al.alumno_id /* PUEDE VENIR UNICAMENTE ALUMNO */
and dl.persona_id = 0; /* Y SIN PERSONA */


drop temporary table if exists articulo_pagado_tmp;
create temporary table articulo_pagado_tmp
select a.articulo_id, a.articulo_clave, a.sap_id, a.articulo, a.articulo_orden, ta.parametro as tipo_articulo_parametro,
agp.articulo_grado_periodo_id, ce.ciclo_escolar_id, ce.ciclo_escolar_clave,
round(sum(
case when r.trans_id in (@transPagoId/*, @transNotaCreditoId*/) then 1
when r.trans_id in (@transReembolsoId, @transCancelacionPagoId, @transNotaCreditoId/*, @transNotaDebitoId*/) then - 1
else 0 end
* (dl.cantidad * dl.precio * (1 - dl.descuento_porcentaje*.01) * (1 + dl.impuesto_porcentaje*.01) +
dl.cargo * (1 + dl.impuesto_cargo_porcentaje * .01) ) ), 4) as pagado,
round(sum(
case when r.trans_id in (@transPagoId/*, @transNotaCreditoId*/) then 1
when r.trans_id in (@transReembolsoId, @transCancelacionPagoId, @transNotaCreditoId/*, @transNotaDebitoId*/) then - 1
else 0 end
* dl.cantidad * dl.precio), 4) as dl_bruto,
round(sum(
case when r.trans_id in (@transPagoId/*, @transNotaCreditoId*/) then 1
when r.trans_id in (@transReembolsoId, @transCancelacionPagoId, @transNotaCreditoId/*, @transNotaDebitoId*/) then - 1
else 0 end
* dl.cantidad * (dl.precio * (dl.descuento_porcentaje*.01) ) ), 4) as dl_descuento,
round(sum(
case when r.trans_id in (@transPagoId/*, @transNotaCreditoId*/) then 1
when r.trans_id in (@transReembolsoId, @transCancelacionPagoId, @transNotaCreditoId/*, @transNotaDebitoId*/) then - 1
else 0 end
* dl.cantidad * (dl.precio * (dl.impuesto_porcentaje*.01) ) ), 4) as dl_impuesto,
round(sum(
case when r.trans_id in (@transPagoId/*, @transNotaCreditoId*/) then 1
when r.trans_id in (@transReembolsoId, @transCancelacionPagoId, @transNotaCreditoId/*, @transNotaDebitoId*/) then - 1
else 0 end
* (dl.cargo * (1 + dl.impuesto_cargo_porcentaje * .01) ) ), 4) as dl_cargo,
0 as reportado
from documento_linea_tmp dl, documento d, articulo_grado_periodo agp, articulo a, tipo_articulo ta, razon r,
alumno_tmp al, colegio_nivel_ciclo cnc, ciclo_escolar ce
/*where dl.alumno_id = @alumnoId*/
where 1
and d.documento_id = dl.documento_id
and d.aplicado = 1
and d.fecha_cancelado is null
and r.razon_id = d.razon_id
and r.trans_id in (@transPagoId, @transReembolsoId, @transCancelacionPagoId, @transNotaCreditoId)
and agp.articulo_grado_periodo_id = dl.articulo_grado_periodo_id
and a.articulo_id = case dl.articulo_grado_periodo_id when 0 then dl.articulo_id else agp.articulo_id end
and ta.tipo_articulo_id = a.tipo_articulo_id
and al.alumno_id = case when dl.alumno_id = 0 then al.alumno_id else dl.alumno_id end
and cnc.colegio_nivel_ciclo_id = al.colegio_nivel_ciclo_id
and ce.ciclo_escolar_id = cnc.ciclo_escolar_id
group by a.articulo_id, a.articulo_clave, a.sap_id, a.articulo, a.articulo_orden, ta.parametro,
agp.articulo_grado_periodo_id, ce.ciclo_escolar_id, ce.ciclo_escolar_clave;

drop temporary table if exists articulo_alumno_tmp;
create temporary table articulo_alumno_tmp
select distinct cap.*, coalesce(agp.articulo_grado_periodo_id, 0) as articulo_grado_periodo_id,
a.articulo_clave, a.sap_id, a.articulo, a.articulo_orden,
cast(0 as decimal(18,4)) as precio_original,
cast(0 as decimal(18,4)) as pagado,
cast(0 as decimal(18,4)) as dl_bruto,
cast(0 as decimal(18,4)) as dl_descuento, cast(0 as decimal(18,4)) as dl_impuesto,
cast(0 as decimal(18,4)) as dl_cargo,
ce.ciclo_escolar_id, ce.ciclo_escolar_clave, ce.activo as ce_activo, ce.pagando,
al.alumno_id as alumno_ciclo_id, al.hijo_profesor, ta.parametro as tipo_articulo_parametro,
tv.tipo_venta_clave, tv.parametro tipo_venta_parametro,
cv.canal_venta_clave, cv.parametro canal_venta_parametro,
pl.plazo_clave, pl.parametro plazo_parametro,
re.razon_excepcion_clave, re.parametro razon_excepcion_parametro
from articulo a, tipo_articulo ta, alumno_tmp al,
colegio_nivel_ciclo cnc, ciclo_escolar ce,
tipo_venta tv,
canal_venta cv,
plazo pl,
razon_excepcion re,
colegio_articulo_precio cap left join articulo_grado_periodo agp on(agp.articulo_id = cap.articulo_id
and agp.grado_id = cap.grado_id
and agp.periodo_ciclo_id = cap.periodo_ciclo_id)
where cap.colegio_nivel_ciclo_id = al.colegio_nivel_ciclo_id /*?colegio_nivel_ciclo_id*/
and cap.grado_id in /*?grado_id*/(select cgg.grado_id from colegio_grado_grupo cgg
where cgg.colegio_grado_grupo_id = al.colegio_grado_grupo_id)
and cap.grupo_id in (0, /*?grupo_id*/(select cgg.grupo_id from colegio_grado_grupo cgg
where cgg.colegio_grado_grupo_id = al.colegio_grado_grupo_id))
and cap.tipo_venta_id = tv.tipo_venta_id
and cap.canal_venta_id = cv.canal_venta_id
and cap.plazo_id = pl.plazo_id
and cap.razon_excepcion_id = re.razon_excepcion_id
and cap.alumno_id in (0, al.alumno_id /*?alumno_id*/)
and a.articulo_id = cap.articulo_id
and ta.tipo_articulo_id = a.tipo_articulo_id
and cnc.colegio_nivel_ciclo_id = cap.colegio_nivel_ciclo_id
and ce.ciclo_escolar_id = cnc.ciclo_escolar_id;

update articulo_alumno_tmp aa set
/*pagado = coalesce((select distinct t.pagado from articulo_pagado_tmp t
where t.articulo_grado_periodo_id = articulo_alumno_tmp.articulo_grado_periodo_id), 0)*/
pagado = coalesce((select distinct t.pagado from articulo_pagado_tmp t
where t.articulo_grado_periodo_id = case aa.articulo_grado_periodo_id when 0 then t.articulo_grado_periodo_id else aa.articulo_grado_periodo_id end
and t.articulo_id = case aa.articulo_id when 0 then t.articulo_id else aa.articulo_id end
), 0)
;

update articulo_alumno_tmp aa, articulo_pagado_tmp t set
aa.pagado = coalesce(t.pagado, 0),
aa.dl_bruto = coalesce(t.dl_bruto, 0),
aa.dl_descuento = coalesce(t.dl_descuento, 0),
aa.dl_impuesto = coalesce(t.dl_impuesto, 0),
aa.dl_cargo = coalesce(t.dl_cargo, 0)
where t.articulo_grado_periodo_id = case aa.articulo_grado_periodo_id
when 0 then t.articulo_grado_periodo_id else aa.articulo_grado_periodo_id end
and t.ciclo_escolar_id = case aa.articulo_grado_periodo_id
when 0 then aa.ciclo_escolar_id else t.ciclo_escolar_id end
and t.articulo_id = case aa.articulo_id when 0 then t.articulo_id else aa.articulo_id end
;

update articulo_pagado_tmp ap set
/*reportado = coalesce((select distinct 1 from articulo_alumno_tmp t
where t.articulo_grado_periodo_id = articulo_pagado_tmp.articulo_grado_periodo_id), 0)*/
reportado = coalesce((select distinct 1 from articulo_alumno_tmp t
where t.articulo_grado_periodo_id = case ap.articulo_grado_periodo_id when 0 then t.articulo_grado_periodo_id else ap.articulo_grado_periodo_id end
and t.articulo_id = case ap.articulo_id when 0 then t.articulo_id else ap.articulo_id end
), 0);

drop temporary table if exists articulo_pagado_tmp_2;
create temporary table articulo_pagado_tmp_2
select * from articulo_pagado_tmp;

update articulo_alumno_tmp aa set
aa.precio_original = aa.precio,
aa.precio = case when coalesce((select sum(ap.dl_bruto) from articulo_pagado_tmp_2 ap
where aa.ciclo_escolar_id = ap.ciclo_escolar_id
and ap.tipo_articulo_parametro = aa.tipo_articulo_parametro
and ap.articulo_id = aa.articulo_id
and ap.pagado > 0), 0) >= aa.precio then 0
else
greatest(0,
( ( aa.precio * (1 - aa.descuento_porcentaje*.01) * (1 + aa.impuesto_porcentaje*.01)
+ aa.cargo_financiero * (1 + aa.impuesto_cargo_financiero_porcentaje * .01) )

- coalesce((select sum(ap.pagado) from articulo_pagado_tmp ap
where aa.ciclo_escolar_id = ap.ciclo_escolar_id
and ap.tipo_articulo_parametro = aa.tipo_articulo_parametro
and ap.articulo_id = aa.articulo_id
and ap.pagado > 0), 0)

- aa.cargo_financiero * (1 + aa.impuesto_cargo_financiero_porcentaje * .01)
)
/ ( (1 - aa.descuento_porcentaje*.01) * (1 + aa.impuesto_porcentaje*.01) )
)
end
where aa.tipo_articulo_parametro in ('LIB', 'IPAD', 'SUBP-G', 'SUBP-G-V', 'SERV')
/*and aa.pagando = 1 */;

select * from articulo_pagado_tmp
where reportado = 0
order by articulo_orden, articulo_clave;

drop temporary table if exists articulo_excepcion_tmp;
create temporary table articulo_excepcion_tmp
select * from articulo_alumno_tmp
where alumno_id > 0 or grupo_id > 0;

select count(*) as cuenta from articulo_excepcion_tmp;

delete from articulo_alumno_tmp
where ciclo_escolar_id in (select ciclo_escolar_id from articulo_excepcion_tmp where alumno_id > 0)
and alumno_id = 0
and pagado = 0;

delete from articulo_alumno_tmp
where ciclo_escolar_id in (select ciclo_escolar_id from articulo_excepcion_tmp where grupo_id > 0)
and grupo_id = 0 and alumno_id = 0/*and grupo_id = 0*/
and pagado = 0;

select articulo_alumno_tmp.*, proporcion_parametro
from articulo_alumno_tmp, tipo_venta
where tipo_venta.tipo_venta_id = articulo_alumno_tmp.tipo_venta_id
order by alumno_id desc, ciclo_escolar_id, grupo_id desc, kit_id, case kit_id - articulo_id
when 0 then 0
else articulo_orden end,
articulo_orden, articulo_clave;

select dl.*, d.documento,
case when substring(d.referencia, 1, 1) = 'X' then substring(d.referencia, 2) else d.referencia end as referencia,
r.parametro as razon_cargo_parametro,
round(1*coalesce(mid(dsl.detalle, locate('precio_colegio:', dsl.detalle) + length('precio_colegio:')), -1957), 2) as precio_colegio,
round(1*coalesce(mid(dsl.detalle, locate('pvp:', dsl.detalle) + length('pvp:')), -1957), 2) as pvp,
round(1*coalesce(mid(dsl.detalle, locate('precio_pagado:', dsl.detalle) + length('precio_pagado:')), -1957), 2) as precio_pagado,
round(1*coalesce(mid(dsl.detalle, locate('neto_pagado:', dsl.detalle) + length('neto_pagado:')), -1957), 2) as neto_pagado
from documento d, documento_linea dl, documento_sublinea dsl, razon r, alumno a, colegio_nivel_ciclo cnc
where d.documento_id = dl.documento_id
and d.linea_captura_banamex = 'sesion_id: e9g1u5v8bn9ov5k39u6oh11ni0'
and dl.persona_id = 7673819
and dl.articulo_id = 44
and dsl.documento_id = dl.documento_id
and dsl.linea = dl.linea
and r.razon_id = dl.razon_cargo_id
and a.alumno_id = dl.alumno_id
and cnc.colegio_nivel_ciclo_id = a.colegio_nivel_ciclo_id
and cnc.ciclo_escolar_id =362
order by dl.linea;

select *, UNIX_TIMESTAMP(fecha_hasta) as ut_fecha_hasta from colegio_articulo_abono
where colegio_articulo_precio_id =1599830
order by abono;