sesion_admon();
if(!$_SESSION["login"] || !$_SESSION["name_session"] || !$_SESSION["id_session"] || !$_SESSION["usuario"]){
print("");
}else{
if($_SESSION["login"]){
//print_r($_POST);
$order=($campo && $orden ? "order by $campo $orden" : "");
$plantilla="dataforecast.html";
switch ($accion){
case "":{
//Construir el nombre verdadero de la tabla
$smarty->assign('idpagina2',$idpagina2);
$smarty->assign('txtbuscar',$txtbuscar);
$smarty->assign('pais_sel',$pais_sel);
$smarty->assign('anio_sel',$anio_sel);
$smarty->assign('forecast_sel',$forecast_sel);
$nomtabla=$prefijo.$tabla;
unset($nombrecampo);
// PROCEDIMIENTO QUE OBTIENE LOS CAMPOS A LISTAR EN EL PRIMER PANTALLAZO
$sqlcam="SELECT sys_funcional.* FROM sys_funcional INNER JOIN sys_form ON sys_funcional.idform = sys_form.id WHERE sys_form.tabla = '".$nomtabla."' AND sys_funcional.activo = 'SI' AND sys_form.activo = 'SI' and sys_funcional.listado='SI' ORDER BY orden";
$qryCampos=$ln->query($sqlcam);
if($ln->num_rows($qryCampos)){
$contador=0;
while($row=$ln->fetch($qryCampos)){
if($row["descripcion"]!="probabilidad"){
$contador=$contador+1;
$nombrecampo[$contador]=$row["descripcion"];
$labelcampo[$contador]=$row["label"];
if(substr($row["tabla_consulta"],0,4)=="sys_")$tabla_consulta[$contador]=$row["tabla_consulta"];
else $tabla_consulta[$contador]=$prefijo.$row["tabla_consulta"];
$tabla_consulta[$contador]=$row["tabla_consulta"];
$campo_consulta[$contador]=$row["campo_consulta"];
$andwhere[$contador]=$row["andwhere"];
}
}
}
//CONSTRUIR LA CADENA QUE CONTIENE LOS NOMBRES DE LOS CAMPOS A MOSTRAR
$str_campos="";
$str_titulo_campos="";
$i=1;
unset($str_where);
for($i=1;$i<=$contador;$i++){
$str_campos=$str_campos.$nombrecampo[$i];
if($campo==$nombrecampo[$i] && $orden=="desc"){
$titulo_campo="
".$labelcampo[$i]." | ";
}else{
$titulo_campo="".$labelcampo[$i]." | ";
}
$str_titulo_campos=$str_titulo_campos.$titulo_campo;
if($i<$contador){
$str_campos=$str_campos.",";
}
}
if($str_where)$str_where=$str_where.")";
unset($myfiltro);
$limites=limit_pais($idusuario);
unset($str_wherep);
if($limites["tipo"]=="SI")$str_wherep=" and id='".$limites["pais"]."'";
if($limites["tipo"]=="GRUPO")$str_wherep=" and grupo='".$limites["grupo"]."'";
$Qrypaises=$ln->query("select * from dbo_paises WHERE pais_reconocimiento='SI' $str_wherep");
if(!$pais_sel){
if($_SESSION["pais_actual"])$paises[$_SESSION["pais_actual"]]=$_SESSION["nom_pais_actual"];
else $paises[""]="<<-- SELECCIONE -->>";
}else{
$paises[$pais_sel]=$pais_sel;
}
if($ln->num_rows($Qrypaises)){
while ($rowpaises =$ln->fetch($Qrypaises)) {
$paises[$rowpaises['id']]=$rowpaises['descripcion'];
}
}
$smarty->assign('paises',$paises);
$ln->free_result($Qrypaises);
//Combo Aņo
unset($periodos);
$Qryperiodo=$ln->query("select distinct ano from dbo_tiposperiodos order by ano desc");
if(!$anio_sel)$periodos[""]="<<-- SELECCIONE -->>";
while ($rowperiodo =$ln->fetch($Qryperiodo)) {
$periodos[$rowperiodo['ano']]=$rowperiodo['ano'];
}
$smarty->assign('periodos',$periodos);
$ln->free_result($Qryperiodo);
//Seleccionar forecast
if(!$pais_sel){
$pais_el=$_SESSION["pais_actual"];
}else{
$pais_el=$pais_sel;
}
$Qrypaises=$ln->query("select ".$prefijo."tiposperiodos.* from ".$prefijo."tiposperiodos left join (select * FROM ".$prefijo."forecat WHERE ".$prefijo."forecat.id_pais='$pais_el' and year(fecharec_inicio)='".$anio_sel."') as consulta on ".$prefijo."tiposperiodos.id=consulta.id_tipoperiodos WHERE ".$prefijo."tiposperiodos.id like 'F%' and ".$prefijo."tiposperiodos.activo='SI' and consulta.id_tipoperiodos IS NULL");
$forecasts[""]="<<-- SELECCIONE -->>";
if($ln->num_rows($Qrypaises)){
while ($rowpaises =$ln->fetch($Qrypaises)) {
$forecasts[$rowpaises['id']]=$rowpaises['descripcion'];
}
}
$smarty->assign('forecasts',$forecasts);
$ln->free_result($Qrypaises);
$Qrypaises=$ln->query("select ".$prefijo."tiposperiodos.* from ".$prefijo."tiposperiodos inner join (select * FROM ".$prefijo."forecat WHERE ".$prefijo."forecat.id_pais='$pais_el' and year(fecharec_inicio)='".$anio_sel."') as consulta on ".$prefijo."tiposperiodos.id=consulta.id_tipoperiodos WHERE ".$prefijo."tiposperiodos.id like 'F%' and ".$prefijo."tiposperiodos.activo='SI'");
$forecasts2[""]="<<-- SELECCIONE -->>";
if($ln->num_rows($Qrypaises)){
while ($rowpaises =$ln->fetch($Qrypaises)) {
$forecasts2[$rowpaises['id']]=$rowpaises['descripcion'];
}
}
$smarty->assign('forecasts2',$forecasts2);
$ln->free_result($Qrypaises);
$mostrar_datos=true;
if(!$pais_sel){
if($str_where)$str_where=$str_where." and id_pais ='".$_SESSION["pais_actual"]."'";
else $str_where=" WHERE id_pais ='".$_SESSION["pais_actual"]."'";
}else{
if($str_where)$str_where=$str_where." and id_pais ='".$pais_sel."'";
else $str_where=" WHERE id_pais ='".$pais_sel."'";
}
if($str_where)$str_where=$str_where." and year(fecharec_inicio) ='".$anio_sel."'";
else $str_where=" WHERE year(fecharec_inicio) ='".$anio_sel."'";
if($mostrar_datos){
$sqlcount = "SELECT count(*) FROM ".$prefijo."ventas $str_where ";
$sql="SELECT $str_campos FROM ".$prefijo."ventas $str_where";
$valores=$pg->calculapaginacion($sqlcount, $Paginas, $pag);
$valores=explode(";",$valores);
$smarty->assign('paginacion',$pg->paginar($pag, $valores[0], $Paginas, "$PHP_SELF?tabla=$tabla&idpagina=$idpagina&pais_sel=$pais_sel&anio_sel=$anio_sel&campo=$campo&orden=$orden&accion=&pag="));
$Consulta=$ln->query("$sql $order limit $valores[1], $Paginas;");
if($ln->num_rows($Consulta)){
while ($row=$ln->fetch($Consulta)) {
$str_valores_campos="";
for($i=1;$i<=$contador;$i++){
unset($desc,$str_tabla_consulta);
if($campo_consulta[$i]=="id"){
if(substr($tabla_consulta[$i],0,4)=="sys_")$str_tabla_consulta=$tabla_consulta[$i];
else $str_tabla_consulta=$prefijo.$tabla_consulta[$i];
$buscando=" - ".get_descripcion($str_tabla_consulta,$row[$nombrecampo[$i]]);
if($buscando!=" - ")$desc=$buscando;
}
$str_valores_campos=$str_valores_campos."".$row[$nombrecampo[$i]].$desc." | ";
}
$smarty->append('Data',array('valores'=> $str_valores_campos,'id' => $row["id"],'class'=>$class));
if($class=="")$class = "class=\"odd\"";
else $class = "";
}
}
$ln->free_result($Consulta);
}else{
$ln->addlog($idusuario,"EL USUARIO NO HA CONFIGURADO SU SESION");
$mensaje=$mensaje."CONFIGURE PRIMERO SU SESION";
$plantilla="resultado.html";
$accion="error";
}
//MUESTRA LA FORMA DE ORDENAR
$smarty->assign('titulos_campos',$str_titulo_campos);
$smarty->assign('tabla',$tabla);
$smarty->assign('contarcampos',$contador + 2);
$smarty->assign('campo',$campo);
$smarty->assign('orden',$orden);
$js->confirmar();
$js->novacio();
}break;
case "procesar":{
$nomtabla=$prefijo.$tabla;
unset($nombrecampo);
// PROCEDIMIENTO QUE OBTIENE LOS CAMPOS A LISTAR EN EL PRIMER PANTALLAZO
$sqlcam="SELECT sys_funcional.* FROM sys_funcional INNER JOIN sys_form ON sys_funcional.idform = sys_form.id WHERE sys_form.tabla = '".$nomtabla."' AND sys_funcional.activo = 'SI' AND sys_form.activo = 'SI' ORDER BY orden";
$qryCampos=$ln->query($sqlcam);
if($ln->num_rows($qryCampos)){
$contador=0;
while($row=$ln->fetch($qryCampos)){
if($row["descripcion"]!="id" && $row["descripcion"]!="probabilidad" && $row["descripcion"]!="id_tipoperiodos"){
$contador=$contador+1;
$nombrecampo[$contador]=$row["descripcion"];
$labelcampo[$contador]=$row["label"];
if(substr($row["tabla_consulta"],0,4)=="sys_")$tabla_consulta[$contador]=$row["tabla_consulta"];
else $tabla_consulta[$contador]=$prefijo.$row["tabla_consulta"];
$tabla_consulta[$contador]=$row["tabla_consulta"];
$campo_consulta[$contador]=$row["campo_consulta"];
$andwhere[$contador]=$row["andwhere"];
}
}
}
//CONSTRUIR LA CADENA QUE CONTIENE LOS NOMBRES DE LOS CAMPOS A MOSTRAR
$str_campos="";
$str_titulo_campos="";
$i=1;
unset($str_where,$campos);
for($i=1;$i<=$contador;$i++){
$str_campos=$str_campos.$nombrecampo[$i];
$campos[]=$nombrecampo[$i];
if($i<$contador){
$str_campos=$str_campos.",";
}
}
//realizar consulta a Actual
$qryCiclo=$ln->query("SELECT id,$str_campos FROM ".$prefijo."ventas WHERE id_pais='$pais_sel' and year(fecharec_inicio)='$anio_sel'");
while($rowciclo=$ln->fetch($qryCiclo)){
unset($consec_nuevo,$str_values,$id_referencia);
$id_referencia=$rowciclo["id"];
$consec_nuevo=consecutivo($forecast_sel,$pais_sel);
for($i=0;$iquery("INSERT INTO ".$prefijo."forecat(id,$str_campos,probabilidad,id_tipoperiodos) values('".$consec_nuevo."'$str_values,'100','".$forecast_sel."')");
if($QryIns){
//echo "
Se inserto el registro principal... $consec_nuevo ";
//Inserta las transacciones
$qryTrans=$ln->query("SELECT * FROM ".$prefijo."reconocimiento WHERE id_ventas='".$id_referencia."'");
while($rowTrans=$ln->fetch($qryTrans)){
$QryInsTrans=$ln->query("INSERT INTO ".$prefijo."transforecat (ano,mes,id_tipoperiodos,id_ventas,valor,tipo_transaccion,observaciones,probabilidad) VALUES('".$rowTrans["ano"]."','".$rowTrans["mes"]."','".$forecast_sel."','".$consec_nuevo."','".$rowTrans["valor"]."','".$rowTrans["tipo_transaccion"]."','".$rowTrans["observaciones"]."','100')");
}
$ln->free_result($qryTrans);
$ln->free_result($QryInsTrans);
unset($rowTrans);
//echo "
Se insertaron Transacciones... $consec_nuevo ";
//Inserta Incrementos
$qryTrans=$ln->query("SELECT * FROM ".$prefijo."variaciones WHERE id_ventas='".$id_referencia."'");
while($rowTrans=$ln->fetch($qryTrans)){
$QryInsTrans=$ln->query("INSERT INTO ".$prefijo."variaciones (id_ventas,concepto,valor) VALUES('".$consec_nuevo."','".$rowTrans["concepto"]."','".$rowTrans["valor"]."')");
}
$ln->free_result($qryTrans);
$ln->free_result($QryInsTrans);
unset($rowTrans);
//echo "
Se insertaron los Incrementos... $consec_nuevo ";
//Inserta Subcategorias
$qryTrans=$ln->query("SELECT * FROM ".$prefijo."ventasubcat WHERE id_ventas='".$id_referencia."'");
while($rowTrans=$ln->fetch($qryTrans)){
$QryInsTrans=$ln->query("INSERT INTO ".$prefijo."ventasubcat (id_ventas,subcategoria,porcentaje) VALUES('".$consec_nuevo."','".$rowTrans["subcategoria"]."','".$rowTrans["porcentaje"]."')");
}
$ln->free_result($qryTrans);
unset($rowTrans);
//echo "
Se insertaron Subcategorias... $consec_nuevo ";
}
}
if($QryIns && $QryInsTrans){
$mensaje.="Se logro insertar los registros de Actual $pais_sel $anio_sel en $forecas_sel";
$ln->addlog($idusuario,"Se logro insertar los registros de Actual $pais_sel $anio_sel en $forecas_sel");
$plantilla="resultado3.html";
$accion="exito";
}else{
$mensaje.="Hubo problemas para exportar los datos $pais_sel $anio_sel en $forecas_sel";
$ln->addlog($idusuario,"Hubo problemas para exportar los datos $pais_sel $anio_sel en $forecas_sel");
$plantilla="resultado3.html";
$accion="error";
}
}break;
case "eliminar":{
//echo "Forecast : ".$forecast_del;
//echo "Pais : ".$pais_del;
$QryData=$ln->query("SELECT * FROM ".$prefijo."forecat WHERE id_tipoperiodos='$forecast_del' and id_pais='$pais_del'");
while($rowdel=$ln->fetch($QryData)){
unset($idreferencia);
$idreferencia=$rowdel["id"];
//Borrar Transacciones
$QryDel=$ln->query("DELETE FROM ".$prefijo."transforecat WHERE id_ventas='".$idreferencia."'");
//Borrar Incrementos
$QryDel=$ln->query("DELETE FROM ".$prefijo."variaciones WHERE id_ventas='".$idreferencia."'");
//Subcategorias
$QryDel=$ln->query("DELETE FROM ".$prefijo."ventasubcat WHERE id_ventas='".$idreferencia."'");
}
$QryDel=$ln->query("DELETE FROM ".$prefijo."forecat WHERE id_tipoperiodos='$forecast_del' and id_pais='$pais_del'");
if($QryDel){
$mensaje.="Se eliminaron los datos de Forecast : ".get_descripcion($prefijo."tiposperiodos",$forecast_del)." de ".get_descripcion($prefijo."paises",$pais_del);
$ln->addlog($idusuario,"Elimino la data de Forecast : $forecast_del del pais : $pais_del");
$plantilla="resultado3.html";
$accion="exito";
}else{
$mensaje.="No se logro eliminar Forecast : ".get_descripcion($prefijo."tiposperiodos",$forecast_del)." de ".get_descripcion($prefijo."paises",$pais_del)." Intentelo de nuevo porfavor";
$ln->addlog($idusuario,"Intento Eliminar la data de Forecast : $forecast_del del pais : $pais_del");
$plantilla="resultado3.html";
$accion="error";
}
}break;
}
$smarty->assign('titulo',$title);
$smarty->assign('accion',$accion);
$smarty->assign('idpagina',$idpagina);
$smarty->assign('permiso_pagina',$permisos[$idpagina]);
$smarty->assign('pagina',strtoupper($titulos[$idpagina]));
$smarty->assign('mensaje',$mensaje);
$smarty->display($plantilla);
$ln->desconectar();
}else{
echo "Debe loguearse primero...";
print("");
}
}
?>