/
Dame Alumno PHP

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;


Related content

Catálogos para aplicación de PAGOS
Catálogos para aplicación de PAGOS
More like this
Relatório de recebimento QUIRIUS
Relatório de recebimento QUIRIUS
More like this
Alta de empresa
Alta de empresa
More like this