5
periodo Object
(
[con:periodo:private] =>
[id_peri:periodo:private] => 5
[des_per:periodo:private] => INFORME FINAL
[fec_ini:periodo:private] => 2022-12-04
[fec_cor_pro:periodo:private] => 2022-12-05
[fec_cor_tot:periodo:private] => 2022-12-06
[actual:periodo:private] => s
[id_ano:periodo:private] => 5
[per_cer:periodo:private] => n
[per_not_fin:periodo:private] => s
[per_fin:periodo:private] => n
[rec_per:periodo:private] =>
[hab_rec:periodo:private] => s
[def_rec:periodo:private] => u
[num_rec:periodo:private] => 2
[rec_act:periodo:private] => 1
[pond:periodo:private] =>
[boletin:periodo:private] => s
[cierre_por_curso:periodo:private] => Array
(
)

[permiso_por_curso:periodo:private] => Array
(
)

[rem_permiso_por_curso:periodo:private] => Array
(
)

)

1
CONSOLIDADO_FINALcontrol_seguimiento Object
(
[con:control_seguimiento:private] =>
[id_proc:control_seguimiento:private] => 7
[des_proc:control_seguimiento:private] => CONSOLIDADO_FINAL
[est_proc:control_seguimiento:private] => a
[res:control_seguimiento:private] =>
[mensage] =>
)
Array
(
[debug] => s
[cod_gra] => 7
[cod_cur] => 172
[cod_mat] => 12
[id_alu] => %
[id_peri] => 5
)
$cad='';$sep=' AND ';
//restricciones de los parametros 
if(isset($params[id_peri]) && $params[id_peri]!='%'){  $query=str_replace("/*ID_PERI*/",$params[id_peri],$query); }
if(isset($params[id_alu]) && $params[id_alu]!='%'){ $cad.=$sep."id_alu = ".$params[id_alu]; $sep= '  and  ';}
else if(isset($params[cod_cur]) && $params[cod_cur]!='%'){ $cad.=$sep."cod_cur = ".$params[cod_cur]; $sep= '  and  ';}
else if(isset($params[cod_gra]) && $params[cod_gra]!='%'){ $cad.=$sep."cod_cur in ( select cod_cur from curso where cod_gra=".$params[cod_gra]." ) "; $sep= '  and  ';}
if(isset($params[cod_mat]) && $params[cod_mat]!='%'){ $cad.=$sep."cod_mat = ".$params[cod_mat]; $sep= '  and  ';}
//restricciones de la ejecucion
if($cad_g!=''){ $cad.=$sep."$cad_g"; $sep=' AND ';} 
if($cad_p!=''){ $cad.=$sep.$cad_p;} 
if($cad!='') {$cad =$cad; $query=str_replace("/*CAD_WHERE*/",$cad,$query);}


delete from seg_final where id_peri= 5 AND cod_cur = 172 and cod_mat = 12 $cad='';$sep=' WHERE ';
//restricciones de los parametros 
if(isset($params[id_peri]) && $params[id_peri]!='%'){  $query=str_replace("/*ID_PERI*/",$params[id_peri],$query); }
if(isset($params[id_alu]) && $params[id_alu]!='%'){ $cad.=$sep."id_alu = ".$params[id_alu]; $sep= '  and  ';}
else if(isset($params[cod_cur]) && $params[cod_cur]!='%'){ $cad.=$sep."cod_cur = ".$params[cod_cur]; $sep= '  and  ';}
else if(isset($params[cod_gra]) && $params[cod_gra]!='%'){ $cad.=$sep."cod_gra=".$params[cod_gra]." "; $sep= '  and  ';}
if(isset($params[cod_mat]) && $params[cod_mat]!='%'){ $cad.=$sep."cod_mat = ".$params[cod_mat]; $sep= '  and  ';}
//restricciones de la ejecucion
if($cad_g!=''){ $cad.=$sep."$cad_g"; $sep=' AND ';} 
if($cad_p!=''){ $cad.=$sep.$cad_p;} 
if($cad!='') { $query=str_replace("/*CAD_WHERE*/",$cad,$query);}


REPLACE INTO seg_final(id_alu,cod_mat,cod_cur,id_peri,cod_are,esp_mat,nota,fec_cre,are_fin, nota_mod,fec_mod,usu_mod)
SELECT t.id_alu,t.cod_mat,t.cod_cur,t.id_peri,m.cod_are,mg.esp_mat, if(t.nota='2.9',3,ROUND(t.nota,1)), CURRENT_DATE(),m.cod_are, nota_mod,fec_mod,usu_mod
FROM
(
SELECT id_alu,cod_mat,cod_cur,5 AS id_peri, if(pond is not null,sum(nota_d*pond),AVG(nota_d)) AS nota
FROM seg_final
join periodo using(id_peri)
WHERE cod_mat<>0 AND id_peri <>5
GROUP BY id_alu,cod_mat,cod_cur
)t
LEFT JOIN (
SELECT id_alu,cod_mat,cod_cur, id_peri, nota_mod,fec_mod,usu_mod
FROM seg_final
WHERE id_peri=5 AND nota_mod IS NOT NULL
)t2 USING(id_alu,cod_mat,cod_cur,id_peri)
INNER JOIN matgra mg USING(cod_cur,cod_mat)
INNER JOIN materia m USING(cod_mat)
WHERE cod_cur = 172 and cod_mat = 12 if(isset($params[id_peri]) && $params[id_peri]!='%'){ $query=str_replace("/*ID_PERI*/",$params[id_peri],$query); }

$rs2=$con->query($query);
$accionP=$con->result($rs2,0,0);
switch($accionP){
    case 'p' :$subquery="select  id_alu,cod_cur,cod_mat,id_peri,avg(nota) as nota from seg_recupera group by  id_alu,cod_cur,cod_mat,id_peri "; break;
    case 'm' :$subquery="select  id_alu,cod_cur,cod_mat,id_peri,max(nota) as nota from seg_recupera group by  id_alu,cod_cur,cod_mat,id_peri"; break;
    case 'u' :$subquery="
        select  a.id_alu,a.cod_cur,a.cod_mat,a.id_peri,  nota 
        from seg_recupera a
        inner join (select  id_alu,cod_cur,cod_mat,id_peri,max(num_rec) as num_rec from seg_recupera where nota is not null  group by  id_alu,cod_cur,cod_mat,id_peri) b
        on b.id_alu =a. id_alu AND b.cod_cur=a.cod_cur AND b.cod_mat =a.cod_mat AND b.id_peri=a.id_peri AND b.num_rec=a.num_rec
"; break;

}
$query =" update seg_final f ,($subquery) r  set nota_r= r.nota where 
f.id_alu=r.id_alu and f.id_peri=r.id_peri AND f.cod_mat=r.cod_mat AND f.cod_cur=r.cod_cur
/*CAD_WHERE*/";


$cad='';$sep='';
if(isset($params[id_peri]) && $params[id_peri]!='%'){ $query=str_replace("/*ID_PERI*/",$params[id_peri],$query); }
if(isset($params[cod_cur]) && $params[cod_cur]!='%'){ $cad.=$sep."f.cod_cur = ".$params[cod_cur]; $sep= '  and  ';}
if(isset($params[cod_mat]) && $params[cod_mat]!='%'){ $cad.=$sep."f.cod_mat = ".$params[cod_mat]; $sep= '  and  ';}
if(isset($params[id_alu]) && $params[id_alu]!='%'){ $cad.=$sep."f.id_alu = ".$params[id_alu]; $sep= '  and  ';}
//restricciones de la ejecucion
if($cad_g!=''){ $cad.=str_replace('cod_gra','f.cod_gra ',$cad_p); $sep=' AND ';} 
if($cad_p!=''){ $cad.=str_replace('id_peri','f.id_peri ',$cad_p);} 
if($cad!='') {$cad =' AND '.$cad; $query=str_replace("/*CAD_WHERE*/",$cad,$query);}


update seg_final f ,(
select a.id_alu,a.cod_cur,a.cod_mat,a.id_peri, nota
from seg_recupera a
inner join (select id_alu,cod_cur,cod_mat,id_peri,max(num_rec) as num_rec from seg_recupera where nota is not null group by id_alu,cod_cur,cod_mat,id_peri) b
on b.id_alu =a. id_alu AND b.cod_cur=a.cod_cur AND b.cod_mat =a.cod_mat AND b.id_peri=a.id_peri AND b.num_rec=a.num_rec
) r set nota_r= r.nota where
f.id_alu=r.id_alu and f.id_peri=r.id_peri AND f.cod_mat=r.cod_mat AND f.cod_cur=r.cod_cur
AND f.cod_cur = 172 and f.cod_mat = 12 $cad='';$sep=' AND ';
//restricciones de los parametros 
if(isset($params[id_peri]) && $params[id_peri]!='%'){  $query=str_replace("/*ID_PERI*/",$params[id_peri],$query); }
if(isset($params[id_alu]) && $params[id_alu]!='%'){ $cad.=$sep."f.id_alu = ".$params[id_alu]; $sep= '  and  ';}
else if(isset($params[cod_cur]) && $params[cod_cur]!='%'){ $cad.=$sep."f.cod_cur = ".$params[cod_cur]; $sep= '  and  ';}
else if(isset($params[cod_gra]) && $params[cod_gra]!='%'){ $cad.=$sep."f.cod_cur in (select cod_cur from curso where cod_gra=".$params[cod_gra].") "; $sep= '  and  ';}
if(isset($params[cod_mat]) && $params[cod_mat]!='%'){ $cad.=$sep."f.cod_mat = ".$params[cod_mat]; $sep= '  and  ';}
//restricciones de la ejecucion
if($cad_g!=''){ $cad.=$sep."$cad_g"; $sep=' AND ';} 
if($cad_p!=''){ $cad.=$sep.$cad_p;} 
if($cad!='') { $query=str_replace("/*CAD_WHERE*/",$cad,$query);}


update seg_final f set nota_d=if(nota_r is null,nota, round(nota_r,1)) where id_peri=5 AND f.cod_cur = 172 and f.cod_mat = 12 $cad=' ';$sep=' AND ';
//restricciones de los parametros
if(isset($params[id_peri ]) && $params[id_peri ]!='%'){   $cad.=$sep.' id_peri='.$params[id_peri ]; $sep= '  and  ';}
if(isset($params[id_alu]) && $params[id_alu]!='%'){ $cad.=$sep."id_alu = ".$params[id_alu]; $sep= '  and  ';}
else if(isset($params[cod_cur]) && $params[cod_cur]!='%'){ $cad.=$sep."cod_cur = ".$params[cod_cur]; $sep= '  and  ';}
else if(isset($params[cod_gra]) && $params[cod_gra]!='%'){ $cad.=$sep."c.cod_gra=".$params[cod_gra]; $sep= '  and  ';}
if(isset($params[cod_mat]) && $params[cod_mat]!='%'){ $cad.=$sep."cod_mat=".$params[cod_mat]; $sep= '  and  ';}
//restricciones de la ejecucion
if($cad_g!=''){ $cad.=$sep.str_replace('cod_gra','c.cod_gra',$cad_g); $sep=' AND ';} 
if($cad_p!=''){ $cad.=$sep.$cad_p;} 
if($cad!='') { $query=str_replace("/*CAD_WHERE*/",$cad,$query);}


REPLACE INTO seg_final(id_alu,cod_mat,cod_cur,id_peri,cod_are,are_fin,nota_d,nota,nota_r,fec_cre)
SELECT t.id_alu,0,t.cod_cur,t.id_peri,cod_are,cod_are, ROUND(nota_d,1),ROUND(nota,1),nota_r, CURRENT_DATE()
FROM
(
SELECT id_alu,cod_are,cod_cur,id_peri,
if(s.esp_mat='n',sum(round(nota*pond_mat/100,5)),round(AVG(nota),5)) AS nota,
if(s.esp_mat='n',sum(round(nota_d*pond_mat/100,5)),round(AVG(nota_d),5)) AS nota_d, MIN(nota_r) nota_r
FROM seg_final s
JOIN matgra using(cod_cur,cod_mat)
INNER JOIN curso c USING(cod_cur)
WHERE /*s.esp_mat='n' and*/ cod_mat<>0
AND id_peri=5 and cod_cur = 172 and cod_mat=12
GROUP BY id_alu,cod_are,cod_cur, id_peri
)t

UPDATE alum_grado ag, (
SELECT a0.id_alu, apr.tot, IF((apr.tot IS NOT NULL AND apr.tot>=maxi_area_perd),'No Aprobado','Aprobado') AS aprueba,maxi_area_perd
FROM alumno a0
LEFT JOIN
(
SELECT id_alu,val_apr, COUNT(val_apr) AS tot
FROM(
SELECT id_alu,are_fin AS cod_mat, are_fin, esp_mat, AVG(nota_d) AS def,'nnorm' as tp
FROM seg_final
INNER JOIN area a USING(cod_are)
INNER JOIN periodo USING(id_peri)
WHERE nor_are='n' and esp_mat='n' AND per_not_fin='s' AND cod_mat=0
GROUP BY id_alu,are_fin
UNION
SELECT id_alu, cod_mat, are_fin, esp_mat, nota_d AS def,'snomr' as tp
FROM seg_final s00
INNER JOIN periodo USING(id_peri)
INNER JOIN area a USING(cod_are)
INNER JOIN _sapred ON nom_var='APROBAR_ANIO_CON_NORMALIZACION'
WHERE ((nor_are='s' AND 's'= val_var) OR (nor_are LIKE'%' AND 's'= val_var)) AND per_not_fin='s' AND cod_mat=0
GROUP BY id_alu,cod_mat
) s
INNER JOIN rangos_valora r ON s.def >= r.min AND s.def <= r.max
INNER JOIN tipvalora v ON v.id_val=r.id_val
WHERE val_apr='n'
GROUP BY id_alu,val_apr
) apr ON apr.id_alu=a0.id_alu

INNER JOIN anolectivo ON actual='s'
WHERE est_alu='h'
ORDER BY id_alu
) apr SET ag.apro_alu= IF(ag.asig='s',apr.aprueba,'cursando')
WHERE ag.id_alu=apr.id_aluCOMPLETA
delete from seg_final where id_peri= 5 AND cod_cur = 172 and cod_mat = 12REPLACE INTO seg_final(id_alu,cod_mat,cod_cur,id_peri,cod_are,esp_mat,nota,fec_cre,are_fin, nota_mod,fec_mod,usu_mod) SELECT t.id_alu,t.cod_mat,t.cod_cur,t.id_peri,m.cod_are,mg.esp_mat, if(t.nota='2.9',3,ROUND(t.nota,1)), CURRENT_DATE(),m.cod_are, nota_mod,fec_mod,usu_mod FROM ( SELECT id_alu,cod_mat,cod_cur,5 AS id_peri, if(pond is not null,sum(nota_d*pond),AVG(nota_d)) AS nota FROM seg_final join periodo using(id_peri) WHERE cod_mat<>0 AND id_peri <>5 GROUP BY id_alu,cod_mat,cod_cur )t LEFT JOIN ( SELECT id_alu,cod_mat,cod_cur, id_peri, nota_mod,fec_mod,usu_mod FROM seg_final WHERE id_peri=5 AND nota_mod IS NOT NULL )t2 USING(id_alu,cod_mat,cod_cur,id_peri) INNER JOIN matgra mg USING(cod_cur,cod_mat) INNER JOIN materia m USING(cod_mat) WHERE cod_cur = 172 and cod_mat = 12 update seg_final f ,( select a.id_alu,a.cod_cur,a.cod_mat,a.id_peri, nota from seg_recupera a inner join (select id_alu,cod_cur,cod_mat,id_peri,max(num_rec) as num_rec from seg_recupera where nota is not null group by id_alu,cod_cur,cod_mat,id_peri) b on b.id_alu =a. id_alu AND b.cod_cur=a.cod_cur AND b.cod_mat =a.cod_mat AND b.id_peri=a.id_peri AND b.num_rec=a.num_rec ) r set nota_r= r.nota where f.id_alu=r.id_alu and f.id_peri=r.id_peri AND f.cod_mat=r.cod_mat AND f.cod_cur=r.cod_cur AND f.cod_cur = 172 and f.cod_mat = 12update seg_final f set nota_d=if(nota_r is null,nota, round(nota_r,1)) where id_peri=5 AND f.cod_cur = 172 and f.cod_mat = 12REPLACE INTO seg_final(id_alu,cod_mat,cod_cur,id_peri,cod_are,are_fin,nota_d,nota,nota_r,fec_cre) SELECT t.id_alu,0,t.cod_cur,t.id_peri,cod_are,cod_are, ROUND(nota_d,1),ROUND(nota,1),nota_r, CURRENT_DATE() FROM ( SELECT id_alu,cod_are,cod_cur,id_peri, if(s.esp_mat='n',sum(round(nota*pond_mat/100,5)),round(AVG(nota),5)) AS nota, if(s.esp_mat='n',sum(round(nota_d*pond_mat/100,5)),round(AVG(nota_d),5)) AS nota_d, MIN(nota_r) nota_r FROM seg_final s JOIN matgra using(cod_cur,cod_mat) INNER JOIN curso c USING(cod_cur) WHERE /*s.esp_mat='n' and*/ cod_mat<>0 AND id_peri=5 and cod_cur = 172 and cod_mat=12 GROUP BY id_alu,cod_are,cod_cur, id_peri )tUPDATE alum_grado ag, ( SELECT a0.id_alu, apr.tot, IF((apr.tot IS NOT NULL AND apr.tot>=maxi_area_perd),'No Aprobado','Aprobado') AS aprueba,maxi_area_perd FROM alumno a0 LEFT JOIN ( SELECT id_alu,val_apr, COUNT(val_apr) AS tot FROM( SELECT id_alu,are_fin AS cod_mat, are_fin, esp_mat, AVG(nota_d) AS def,'nnorm' as tp FROM seg_final INNER JOIN area a USING(cod_are) INNER JOIN periodo USING(id_peri) WHERE nor_are='n' and esp_mat='n' AND per_not_fin='s' AND cod_mat=0 GROUP BY id_alu,are_fin UNION SELECT id_alu, cod_mat, are_fin, esp_mat, nota_d AS def,'snomr' as tp FROM seg_final s00 INNER JOIN periodo USING(id_peri) INNER JOIN area a USING(cod_are) INNER JOIN _sapred ON nom_var='APROBAR_ANIO_CON_NORMALIZACION' WHERE ((nor_are='s' AND 's'= val_var) OR (nor_are LIKE'%' AND 's'= val_var)) AND per_not_fin='s' AND cod_mat=0 GROUP BY id_alu,cod_mat ) s INNER JOIN rangos_valora r ON s.def >= r.min AND s.def <= r.max INNER JOIN tipvalora v ON v.id_val=r.id_val WHERE val_apr='n' GROUP BY id_alu,val_apr ) apr ON apr.id_alu=a0.id_alu INNER JOIN anolectivo ON actual='s' WHERE est_alu='h' ORDER BY id_alu ) apr SET ag.apro_alu= IF(ag.asig='s',apr.aprueba,'cursando') WHERE ag.id_alu=apr.id_alu
FIN COMPLETA