";
print "location.href='../sigesp_inicio_sesion.php'";
print "";
}
$ls_logusr=$_SESSION["la_logusr"];
require_once("class_funciones_activos.php");
$io_fun_activo=new class_funciones_activos();
$io_fun_activo->uf_load_seguridad("SAF","sigesp_saf_p_depreciacion.php",$ls_permisos,$la_seguridad,$la_permisos);
$lb_cierrescg = $io_fun_activo->uf_chkciescg();
require_once("sigesp_saf_c_activo.php");
$ls_codemp = $_SESSION["la_empresa"]["codemp"];
$io_saf_tipcat= new sigesp_saf_c_activo();
$ls_rbtipocat=$io_saf_tipcat->uf_select_valor_config($ls_codemp);
////////////////////////////////////////////// SEGURIDAD /////////////////////////////////////////////
function uf_obtenervalor($as_valor, $as_valordefecto)
{
//////////////////////////////////////////////////////////////////////////////
// Function: uf_obtenervalor
// Access: public
// Arguments:
// as_valor // nombre de la variable que desamos obtener
// as_valordefecto // contenido de la variable
// Description: Función que obtiene el valor de una variable si viene de un submit
//////////////////////////////////////////////////////////////////////////////
if(array_key_exists($as_valor,$_POST))
{
$valor=$_POST[$as_valor];
}
else
{
$valor=$as_valordefecto;
}
return $valor;
}
//--------------------------------------------------------------
function uf_limpiarvariables()
{
//////////////////////////////////////////////////////////////////////////////
// Function: uf_limpiarvariables
// Description: Función que limpia todas las variables necesarias en la página
//////////////////////////////////////////////////////////////////////////////
global $ls_codact,$ls_ideact,$ls_denact,$li_cosact,$ls_seract,$li_viduti,$li_cossal,$li_mondep,$li_depanu;
global $li_depmen,$ld_feccmpact,$ld_fecincact,$ld_fecdepact;
global $ls_titletable,$li_widthtable,$ls_nametable,$lo_title,$li_totrows;
$ls_codact="";
$ls_ideact="";
$ls_denact="";
$li_cosact="";
$ls_seract="";
$li_viduti="";
$li_cossal="";
$li_mondep="";
$li_depanu="";
$li_depmen="";
$ld_fecdepact= date("d/m/Y");
$ld_feccmpact="";
$ld_fecincact="";
$ls_titletable="Detalle de la Depreciación";
$li_widthtable=640;
$ls_nametable="grid";
$lo_title[1]="Fecha Depreciación";
$lo_title[2]="Meses";
$lo_title[3]="Dias";
$lo_title[4]="Depreciacion Anual";
$lo_title[5]="Mensual";
$lo_title[6]="Acumulada";
$lo_title[7]="Valor Contable";
$li_totrows=1;
}
function uf_agregarlineablanca(&$aa_object,$ai_totrows)
{
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Function: uf_agregarlineablanca
// Access: private
// Argumento: $aa_object // arreglo de titulos
// $ai_totrows // ultima fila pintada en el grid
// Returns:
// Description: Funcion que agrega una linea en blanco al final del grid
// Creado Por: Ing. Luis Anibal Lang
// Fecha Creación: 22/05/2006 Fecha Última Modificación : 22/05/2006
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
$aa_object[$ai_totrows][1]="";
$aa_object[$ai_totrows][2]="";
$aa_object[$ai_totrows][3]="";
$aa_object[$ai_totrows][4]="";
$aa_object[$ai_totrows][5]="";
$aa_object[$ai_totrows][6]="";
$aa_object[$ai_totrows][7]="";
}
function uf_pintargrid($ad_fecdep,$ai_mesd,$ai_diasd,$ai_depacum,$ai_depmes,$ai_depanu,$ai_valcont,&$aa_object,$ai_totrows)
{
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Function: uf_agregarlineablanca
// Access: private
// Argumento: $ad_fecdep // fecha de la depreciacion
// $ai_mesd // meses de depreciacion
// $ai_diasd // dias de depreciacion
// $ai_depacum // depreciacion acumulada
// $ai_depmes // depreciacion mensual
// $ai_depanu // depreciacion anual
// $ai_valcont // valor contable de la depreciacion
// $aa_object // arreglo de objetos
// $ai_totrows // ultima fila pintada en el grid
// Returns:
// Description: Funcion que se encarga de pintar todos los datos de la depreciacion
// Creado Por: Ing. Luis Anibal Lang
// Fecha Creación: 24/05/2006 Fecha Última Modificación : 24/05/2006
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
$li_depanuaux=number_format($ai_depanu,2,',','.');
$li_depmenaux=number_format($ai_depmes,2,',','.');
$li_depacumaux=number_format($ai_depacum,2,',','.');
$li_valcontaux=number_format($ai_valcont,2,',','.');
$aa_object[$ai_totrows][1]="";
$aa_object[$ai_totrows][2]="";
$aa_object[$ai_totrows][3]="";
$aa_object[$ai_totrows][4]="";
$aa_object[$ai_totrows][5]="";
$aa_object[$ai_totrows][6]="";
$aa_object[$ai_totrows][7]="";
}
function uf_pintardetalle(&$aa_object,$ai_totrows)
{
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Function: uf_agregarlineablanca
// Access: private
// Argumento: $ad_fecdep // fecha de la depreciacion
// $ai_mesd // meses de depreciacion
// $ai_diasd // dias de depreciacion
// $ai_depacum // depreciacion acumulada
// $ai_depmes // depreciacion mensual
// $ai_depanu // depreciacion anual
// $ai_valcont // valor contable de la depreciacion
// $aa_object // arreglo de objetos
// $ai_totrows // ultima fila pintada en el grid
// Returns:
// Description: Funcion que se encarga de pintar todos los datos de la depreciacion
// Creado Por: Ing. Luis Anibal Lang
// Fecha Creación: 24/05/2006 Fecha Última Modificación : 24/05/2006
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
for($li_i=1;$li_i<=$ai_totrows;$li_i++)
{
$ld_fecdep= $_POST["txtfecdep".$li_i];
$li_canmes= $_POST["txtcanmes".$li_i];
$li_candia= $_POST["txtcandia".$li_i];
$li_depmen= $_POST["txtdepmen".$li_i];
$li_depanu= $_POST["txtdepanu".$li_i];
$li_depacu= $_POST["txtdepacu".$li_i];
$li_valcon= $_POST["txtvalcon".$li_i];
$aa_object[$li_i][1]="";
$aa_object[$li_i][2]="";
$aa_object[$li_i][3]="";
$aa_object[$li_i][4]="";
$aa_object[$li_i][5]="";
$aa_object[$li_i][6]="";
$aa_object[$li_i][7]="";
}
}
?>
Cálculo de Depreciación del Activo
Sistema de Activos Fijos
uf_conectar();
require_once("../shared/class_folder/class_sql.php");
$io_sql= new class_sql($con);
require_once("../shared/class_folder/class_mensajes.php");
$io_msg= new class_mensajes();
require_once("../shared/class_folder/class_funciones_db.php");
$io_fundb= new class_funciones_db($con);
require_once("../shared/class_folder/class_fecha.php");
$io_fec= new class_fecha();
require_once("../shared/class_folder/class_funciones.php");
$io_fun= new class_funciones();
require_once("sigesp_saf_c_depreciacion.php");
$io_saf= new sigesp_saf_c_depreciacion();
require_once("class_funciones_activos.php");
$io_fac= new class_funciones_activos();
require_once("../shared/class_folder/grid_param.php");
$in_grid= new grid_param();
$arre=$_SESSION["la_empresa"];
$ls_codemp=$arre["codemp"];
$li_totrows = uf_obtenervalor("totalfilas",1);
if (array_key_exists("operacion",$_POST))
{
$ls_operacion=$_POST["operacion"];
}
else
{
$ls_operacion="";
uf_limpiarvariables();
uf_agregarlineablanca($lo_object,$li_totrows);
$ls_readonly="readonly";
}
if(array_key_exists("txtdepreciar",$_POST))
{
$ls_operacion=$_POST["txtdepreciar"];
}
$io_saf->uf_load_config("SAF","DEPRECIACION","MODIFICACION_INCORPORACION",$ls_estfecinc);
switch ($ls_operacion)
{
case "NUEVO":
uf_limpiarvariables();
uf_agregarlineablanca($lo_object,$li_totrows);
break;
case "GUARDAR":
uf_limpiarvariables();
$ls_codact = uf_obtenervalor("txtcodact","");
$ls_ideact = uf_obtenervalor("txtideact","");
$ls_denact = uf_obtenervalor("txtdenact","");
$ls_seract = uf_obtenervalor("txtseract","");
$ls_codmet = uf_obtenervalor("cmbmetodos","");
$li_totrows = uf_obtenervalor("totalfilas",1);
$li_cosact=uf_obtenervalor("txtcosact","");
$li_cossal=uf_obtenervalor("txtcossal","");
$li_viduti=uf_obtenervalor("txtviduti","");
$li_mondep=uf_obtenervalor("txtmondep","");
$li_depmen=uf_obtenervalor("txtdepmen","");
$li_depanu=uf_obtenervalor("txtdepanu","");
$ld_fecincact=uf_obtenervalor("txtfecincact","");
$ld_feccmpact=uf_obtenervalor("txtfeccmpact","");
$ld_fecmod = uf_obtenervalor("txtfecmod","");
$ls_fecincactmod = $io_fun->uf_convertirdatetobd(uf_obtenervalor("txtfecincact",""));
$li_cosact=$io_fac->uf_convertirformatonumerico($li_cosact);
$li_cossal=$io_fac->uf_convertirformatonumerico($li_cossal);
$li_viduti=$io_fac->uf_convertirformatonumerico($li_viduti);
$li_mondep=$io_fac->uf_convertirformatonumerico($li_mondep);
$li_depmen=$io_fac->uf_convertirformatonumerico($li_depmen);
$li_depanu=$io_fac->uf_convertirformatonumerico($li_depanu);
$io_sql->begin_transaction();
for($li_i=1;$li_i<=$li_totrows;$li_i++)
{
$ld_fecdep= $_POST["txtfecdep".$li_i];
$li_mondepmen= $_POST["txtdepmen".$li_i];
$li_mondepanu= $_POST["txtdepanu".$li_i];
$li_mondepacu= $_POST["txtdepacu".$li_i];
$ld_fecdepaux=$io_fun->uf_convertirdatetobd($ld_fecdep);
$li_mondepmen=$io_fac->uf_convertirformatonumerico($li_mondepmen);
$li_mondepanu=$io_fac->uf_convertirformatonumerico($li_mondepanu);
$li_mondepacu=$io_fac->uf_convertirformatonumerico($li_mondepacu);
if($ld_fecmod=="")
{
$lb_existe=$io_saf->uf_saf_select_depreciacion($ls_codemp,$ls_codact,$ls_ideact,$ld_fecdepaux);
if(!$lb_existe)
{
$lb_valido=$io_saf->uf_saf_insert_depreciacion($ls_codemp,$ls_codact,$ls_ideact,$ld_fecdepaux,$li_mondepmen,$li_mondepanu,$li_mondepacu,$la_seguridad);
}
else
{
$io_msg->message("Ya existe una depreciación para este activo");
$lb_valido=false;
}
if(!$lb_valido)
{break;}
}
else
{
$lb_existe=$io_saf->uf_saf_select_depreciacion($ls_codemp,$ls_codact,$ls_ideact,$ld_fecdepaux);
if($lb_existe)
{
$lb_valido=$io_saf->uf_saf_update_depreciacion($ls_codemp,$ls_codact,$ls_ideact,$ld_fecdepaux,$li_mondepmen,$li_mondepanu,$li_mondepacu,$la_seguridad);
}
else
{
$lb_valido=$io_saf->uf_saf_insert_depreciacion($ls_codemp,$ls_codact,$ls_ideact,$ld_fecdepaux,$li_mondepmen,$li_mondepanu,$li_mondepacu,$la_seguridad);
}
}
}
if(($lb_valido)&&($ls_estfecinc=="1"))
{
$lb_valido=$io_saf->uf_saf_update_fechaincorporacion($ls_codemp,$ls_codact,$ls_ideact,$ls_fecincactmod,$la_seguridad);
}
if($lb_valido)
{
$io_sql->commit();
$io_msg->message("La depreciación del activo fue registrada");
}
else
{
$io_sql->rollback();
$io_msg->message("No se pudo registrar la depreciación del activo");
}
uf_pintardetalle($lo_object,$li_totrows);
if($ld_fecmod!="")
{
uf_limpiarvariables();
uf_agregarlineablanca($lo_object,$li_totrows);
}
break;
case "BUSCARACTIVO":
uf_limpiarvariables();
$ls_codact = uf_obtenervalor("txtcodact","");
$ls_ideact = uf_obtenervalor("txtideact","");
$ls_denact = uf_obtenervalor("txtdenact","");
$ls_seract = uf_obtenervalor("txtseract","");
$ls_codmet = uf_obtenervalor("cmbmetodos","");
$ls_fecincactmod = uf_obtenervalor("txtfecincact","");
$li_cosact=0;
$li_cossal=0;
$li_vidautil=0;
$li_totrows = uf_obtenervalor("totalfilas",1);
$ld_date=date("Y-m-d");
$lb_valido=$io_fec->uf_valida_fecha_mes($ls_codemp,$ld_date);
if($lb_valido)
{
$lb_depreciable=$io_saf->uf_saf_select_statusdepreciacion($ls_codemp,$ls_codact);
if($lb_depreciable)
{
$lb_valido=$io_saf->uf_saf_load_activo($ls_codemp,$ls_codact,$li_cosact,$li_cossal,$li_vidautil,$ld_feccmpact);
$ld_feccmpact=$io_fun->uf_convertirfecmostrar($ld_feccmpact);
if(($lb_valido)&&($li_cossal!="")&&($li_vidautil!=0))
{
$lb_valido=$io_saf->uf_saf_load_incorporacion($ls_codemp,$ls_codact,$ls_ideact,$ld_fecinc);
if($lb_valido)
{
$ld_fecincact=$io_fun->uf_convertirfecmostrar($ld_fecinc);
$li_viduti=($li_vidautil*12);
$li_mondep=($li_cosact-$li_cossal);
$li_depmen=($li_mondep/$li_viduti);
$li_depanu=round($li_depmen*12,4);
if($ls_estfecinc=="1"){
$ls_mesinc=substr($ld_fecinc,5,2);
if($ls_mesinc<12)
{
$ls_annioinc=substr($ld_fecinc,0,4);
$ls_mesinc=substr($ld_fecinc,5,2)+1;
$ls_mesinc=str_pad($ls_mesinc,2,"0",0);
$ls_diainc="01";
}
else
{
$ls_annioinc=substr($ld_fecinc,0,4)+1;
$ls_mesinc=01;
$ls_mesinc=str_pad($ls_mesinc,2,"0",0);
$ls_diainc="01";
}
}
else{
$ls_annioinc=substr($ld_fecinc,0,4);
$ls_mesinc=substr($ld_fecinc,5,2);
$ls_diainc=substr($ld_fecinc,8,2);
}
$ls_mesf=$ls_mesinc;
$ls_mest=0;
$ls_dia=0;
$li_depacum=0;
$li_depmes=0;
$lb_primero=true;
$lb_mes1=true;
$li_j=0;
$li_totrows=0;
if($ld_fecinc=="")
{
$io_msg->message("El activo no ha sido incorporado");
uf_limpiarvariables();
uf_agregarlineablanca($lo_object,$li_totrows);
}
else
{
for($ls_anio=$ls_annioinc;$ls_anio<=($ls_annioinc+$li_vidautil);$ls_anio++)
{
if($ls_anio==($ls_annioinc+$li_vidautil))
{
$ls_mest=$ls_mesf-1;
if($ls_mest==0)
{$ls_mest=$ls_mesinc;}
}
else
{$ls_mest=12;}
for($li_i=$ls_mesf;$li_i<=$ls_mest;$li_i++)
{
$li_i=str_pad($li_i,2,"0",0);
if($ls_estfecinc=="1" && $lb_primero){
$ld_fecdep="01/".$li_i."/".$ls_anio;
$lb_primero=false;
}
else{
$ld_fecdep=$io_fec->uf_last_day($li_i,$ls_anio);
}
if($ls_anio==$ls_annioinc)
{$ls_dia=(30-$ls_diainc+1);}
else
{$ls_dia=0;}
if($ls_anio==($ls_annioinc+$li_vidautil))
{
$ls_dia=$ls_diainc-1;
}
$li_j=$li_j+1;
$ls_mesd=$li_j;
$ls_diasd=0;
if($lb_mes1)
{
$li_j=$li_j-1;
$li_depmes=($li_depmen/30)*$ls_dia;
$ls_diasd=(30-$ls_diainc+1);//GRABAR
$ls_mesd=0;//GRABAR
/* if($ls_dia==0)
{$li_depmes=$li_depmen;}
else
{$li_depmes=($li_depmen/30)*$ls_dia;}
$ls_diasd=(30-$ls_diainc+1);//GRABAR
$ls_mesd=0;//GRABAR
*/ }
else
{$li_depmes=$li_depmen;}
if(($ls_anio==($ls_annioinc+$li_vidautil))&&($li_i==$ls_mest))//BUSCAR DIAS Y MESES
{
$ls_diasd=$ls_diainc;
$ls_mesd=(12-$ls_mesinc);
if($ls_mesd==1)
{$ls_mesd=0;}
else
{$ls_mesd=0;}
$ld_fecdep=$ls_diainc."/".$ls_mesinc."/".($ls_annioinc+$li_vidautil);
$li_depmes=($li_depmen/30)*$ls_dia;
}
$li_depacum=number_format($li_depacum + $li_depmes,4,'.','');
$li_valcont=number_format(($li_cosact-$li_depacum),4,'.','');
/*if(($li_valcont<0.01)&&($li_valcont>=-0.01))
{
$li_valcont=0;
}*/
$li_totrows=$li_totrows + 1;
//LA DIFERENCIA DE DECIMALES SE LOS SUMA A LA DEPRECIACIÓN MENSUAL PARA EL ULTIMO REGISTRO
if(($ls_anio==($ls_annioinc+$li_vidautil)) and ($li_i==$ls_mest) and $li_valcont!=0){
$li_depmes=$li_depmes+$li_valcont;
$li_depacum=$li_depacum+$li_valcont;
$li_valcont=0;
}
uf_pintargrid($ld_fecdep,$ls_mesd,$ls_diasd,$li_depacum,$li_depmes,$li_depanu,$li_valcont,$lo_object,$li_totrows);
$lb_mes1=false;
}// end for
$ls_mesf=1;
}// end for
}
}
}
else
{
$io_msg->message("No se pudo calcular la depreciacion, Faltan datos para calcularla");
uf_limpiarvariables();
uf_agregarlineablanca($lo_object,$li_totrows);
}
}
else
{
$io_msg->message("El activo que selecciono no es depreciable");
uf_limpiarvariables();
uf_agregarlineablanca($lo_object,$li_totrows);
}
}
else
{
$io_msg->message("El mes no esta abierto");
$li_totrows=1;
uf_agregarlineablanca($lo_object,$li_totrows);
uf_limpiarvariables();
}
break;
case "RECALCULAR":
uf_limpiarvariables();
$ls_codact = uf_obtenervalor("txtcodact","");
$ls_ideact = uf_obtenervalor("txtideact","");
$ls_denact = uf_obtenervalor("txtdenact","");
$ls_seract = uf_obtenervalor("txtseract","");
$ls_codmet = uf_obtenervalor("cmbmetodos","");
$ld_fecinc = $io_fun->uf_convertirdatetobd(uf_obtenervalor("txtfecincact",""));
$li_cosact=0;
$li_cossal=0;
$li_vidautil=0;
$li_totrows = uf_obtenervalor("totalfilas",1);
$ld_date=date("Y-m-d");
$lb_valido=$io_fec->uf_valida_fecha_mes($ls_codemp,$ld_date);
if($lb_valido)
{
$lb_depreciable=$io_saf->uf_saf_select_statusdepreciacion($ls_codemp,$ls_codact);
if($lb_depreciable)
{
$lb_valido=$io_saf->uf_saf_load_activo($ls_codemp,$ls_codact,$li_cosact,$li_cossal,$li_vidautil,$ld_feccmpact);
$ld_feccmpact=$io_fun->uf_convertirfecmostrar($ld_feccmpact);
if(($lb_valido)&&($li_cossal!="")&&($li_vidautil!=0))
{
if($lb_valido)
{
$ld_fecincact=$io_fun->uf_convertirfecmostrar($ld_fecinc);
$li_viduti=($li_vidautil*12);
$li_mondep=($li_cosact-$li_cossal);
$li_depmen=($li_mondep/$li_viduti);
$li_depanu=round($li_depmen*12,2);
$ls_annioinc=substr($ld_fecinc,0,4);
$ls_mesinc=substr($ld_fecinc,5,2);
$ls_diainc=substr($ld_fecinc,8,2);
$ls_mesf=$ls_mesinc;
$ls_mest=0;
$ls_dia=0;
$li_depacum=0;
$li_depmes=0;
$lb_mes1=true;
$li_j=0;
$li_totrows=0;
if($ld_fecinc=="")
{
$io_msg->message("El activo no ha sido incorporado");
uf_limpiarvariables();
uf_agregarlineablanca($lo_object,$li_totrows);
}
else
{
for($ls_anio=$ls_annioinc;$ls_anio<=($ls_annioinc+$li_vidautil);$ls_anio++)
{
if($ls_anio==($ls_annioinc+$li_vidautil))
{
$ls_mest=$ls_mesf-1;
if($ls_mest==0)
{$ls_mest=$ls_mesinc;}
}
else
{$ls_mest=12;}
for($li_i=$ls_mesf;$li_i<=$ls_mest;$li_i++)
{
$li_i=str_pad($li_i,2,"0",0);
$ld_fecdep=$io_fec->uf_last_day($li_i,$ls_anio);
if($ls_anio==$ls_annioinc)
{$ls_dia=(30-$ls_diainc+1);}
else
{$ls_dia=0;}
if($ls_anio==($ls_annioinc+$li_vidautil))
{
$ls_dia=$ls_diainc-1;
}
$li_j=$li_j+1;
$ls_mesd=$li_j;
$ls_diasd=0;
if($lb_mes1)
{
$li_j=$li_j-1;
$li_depmes=($li_depmen/30)*$ls_dia;
$ls_diasd=(30-$ls_diainc+1);//GRABAR
$ls_mesd=0;//GRABAR
/* if($ls_dia==0)
{$li_depmes=$li_depmen;}
else
{$li_depmes=($li_depmen/30)*$ls_dia;}
$ls_diasd=(30-$ls_diainc+1);//GRABAR
$ls_mesd=0;//GRABAR
*/ }
else
{$li_depmes=$li_depmen;}
if(($ls_anio==($ls_annioinc+$li_vidautil))&&($li_i==$ls_mest))//BUSCAR DIAS Y MESES
{
$ls_diasd=$ls_diainc;
$ls_mesd=(12-$ls_mesinc);
if($ls_mesd==1)
{$ls_mesd=0;}
else
{$ls_mesd=0;}
$ld_fecdep=$ls_diainc."/".$ls_mesinc."/".($ls_annioinc+$li_vidautil);
$li_depmes=($li_depmen/30)*$ls_dia;
}
$li_depacum=$li_depacum + $li_depmes;
$li_valcont=($li_cosact-$li_depacum);
$li_totrows=$li_totrows + 1;
uf_pintargrid($ld_fecdep,$ls_mesd,$ls_diasd,$li_depacum,$li_depmes,$li_depanu,$li_valcont,$lo_object,$li_totrows);
$lb_mes1=false;
}// end for
$ls_mesf=1;
}// end for
}
}
}
else
{
$io_msg->message("No se pudo calcular la depreciacion, Faltan datos para calcularla");
uf_limpiarvariables();
uf_agregarlineablanca($lo_object,$li_totrows);
}
}
else
{
$io_msg->message("El activo que selecciono no es depreciable");
uf_limpiarvariables();
uf_agregarlineablanca($lo_object,$li_totrows);
}
}
else
{
$io_msg->message("El mes no esta abierto");
$li_totrows=1;
uf_agregarlineablanca($lo_object,$li_totrows);
uf_limpiarvariables();
}
break;
case "DEPRECIAR":
uf_limpiarvariables();
$ls_codact = uf_obtenervalor("txtcodact","");
$ls_ideact = uf_obtenervalor("txtideact","");
$ls_denact = uf_obtenervalor("txtdenact","");
$ls_seract = uf_obtenervalor("txtseract","");
$ld_fecmod = uf_obtenervalor("txtfeccmp","");
$li_totmonpar = uf_obtenervalor("totmonpar","");
$li_totcossal = uf_obtenervalor("totcossal","");
$li_totviduti = uf_obtenervalor("totviduti","");
$ls_codmet = "001";
$li_cosact=0;
$li_cossal=0;
$li_vidautil=0;
$li_totrows= 0;
$li_j=0;
$lb_mes1=true;
$lb_depreciable=$io_saf->uf_saf_select_depreciacion($ls_codemp,$ls_codact,$ls_ideact,"");
if($lb_depreciable)
{
$lb_valido=$io_saf->uf_saf_load_activo($ls_codemp,$ls_codact,$li_cosact,$li_cossal,$li_vidautil,$ld_feccmpact);
$ld_feccmpact=$io_fun->uf_convertirfecmostrar($ld_feccmpact);
if(($lb_valido)&&($li_cossal!="")&&($li_vidautil!=""))
{
$lb_valido=$io_saf->uf_saf_load_incorporacion($ls_codemp,$ls_codact,$ls_ideact,$ld_fecinc);
if($lb_valido)
{
$ld_fecmodaux=$io_fun->uf_convertirdatetobd($ld_fecmod);
$ld_fecincact=$io_fun->uf_convertirfecmostrar($ld_fecinc);
$ls_annioinc=substr($ld_fecinc,0,4);
$ls_mesinc=substr($ld_fecinc,5,2);
$ls_diainc=substr($ld_fecinc,8,2);
$ls_anniomod=substr($ld_fecmodaux,0,4);
$ls_mesmod=substr($ld_fecmodaux,5,2);
$ls_diamod=substr($ld_fecmodaux,8,2);
$li_mesdep=0;
if($ls_annioinc<$ls_anniomod)
{
$li_mesdep=($ls_anniomod - $ls_annioinc)*12;
$li_mesdep=$li_mesdep+($ls_mesmod-$ls_mesinc);
}
else
{
$li_mesdep=($ls_mesmod-$ls_mesinc);
}
$lb_valido=$io_saf->uf_saf_load_depreciacion($ls_codemp,$ls_codact,$ls_ideact,$ld_fecmodaux,$li_mondepacu,$ld_fecdep);
if($lb_valido)
{
$li_viduti=(($li_vidautil*12)-($li_mesdep))+($li_totviduti*12);
$li_cossal=$li_cossal+$li_totcossal;
$li_cosact=($li_cosact-$li_mondepacu)+$li_totmonpar;
$li_mondep=($li_cosact-$li_cossal);
$li_depmen=($li_mondep/$li_viduti);
$ls_mesf=$ls_mesmod;
$ls_mest=0;
$ls_dia=0;
$li_depacum=0;
$li_depmes=0;
$li_vidautilmod=$li_vidautil+$li_totviduti;
$li_depanu=round($li_depmen*12);
$lb_mes1=true;
$li_j=0;
$li_totrows=0;
for($ls_anio=$ls_anniomod;$ls_anio<=($ls_anniomod+$li_vidautilmod);$ls_anio++)
{
if($ls_anio==($ls_anniomod+$li_vidautilmod))
{
$ls_mest=$ls_mesf-1;
if($ls_mest==0)
{$ls_mest=$ls_mesmod;}
}
else
{$ls_mest=12;}
for($li_i=$ls_mesf;$li_i<=$ls_mest;$li_i++)
{
$li_i=str_pad($li_i,2,"0",0);
$ld_fecdep=$io_fec->uf_last_day($li_i,$ls_anio);
if($ls_anio==$ls_anniomod)
{$ls_dia=(30-$ls_diamod+1);}
else
{$ls_dia=0;}
if($ls_anio==($ls_anniomod+$li_vidautilmod))
{
$ls_dia=$ls_diamod-1;
}
$li_j=$li_j+1;
$ls_mesd=$li_j;
$ls_diasd=0;
if($lb_mes1)
{
$li_j=$li_j-1;
if($ls_dia==0)
{$li_depmes=$li_depmen;}
else
{$li_depmes=($li_depmen/30)*$ls_dia;}
$ls_diasd=(30-$ls_diamod+1);//GRABAR
$ls_mesd=0;//GRABAR
}
else
{$li_depmes=$li_depmen;}
if(($ls_anio==($ls_anniomod+$li_vidautilmod))&&($li_i==$ls_mest))//BUSCAR DIAS Y MESES
{
$ls_diasd=$ls_diamod;
$ls_mesd=(12-$ls_mesmod);
if($ls_mesd==1)
{$ls_mesd=0;}
else
{$ls_mesd=0;}
$ld_fecdep=$ls_diamod."/".$ls_mesmod."/".($ls_anniomod+$li_vidautilmod);
$li_depmes=($li_depmen/30)*$ls_dia;
}
$li_depacum=$li_depacum + $li_depmes;
$li_valcont=($li_cosact-$li_depacum);
$li_totrows=$li_totrows + 1;
uf_pintargrid($ld_fecdep,$ls_mesd,$ls_diasd,$li_depacum,$li_depmes,$li_depanu,$li_valcont,$lo_object,$li_totrows);
$lb_mes1=false;
}// end for
$ls_mesf=1;
}// end for
}
}
}
else
{
$io_msg->message("No se pudo calcular la depreciacion, Faltan datos para calcularla");
uf_limpiarvariables();
uf_agregarlineablanca($lo_object,$li_totrows);
}
}
else
{
$io_msg->message("El activo que selecciono no ha sido depreciado");
$io_msg->message("No se puede recalcular la depreciación");
uf_limpiarvariables();
$ls_operacion="";
uf_agregarlineablanca($lo_object,$li_totrows);
}
break;
case "ELIMINAR":
$ls_codact = uf_obtenervalor("txtcodact","");
$ls_ideact = uf_obtenervalor("txtideact","");
$io_sql->begin_transaction();
$lb_valido=$io_saf->uf_saf_delete_depreciacion($ls_codemp,$ls_codact,$ls_ideact,$la_seguridad);
if($lb_valido)
{
$io_sql->commit();
$io_msg->message("Se elimino la depreciacion exitosamente");
}
else
{
$io_sql->rollback();
}
uf_limpiarvariables();
uf_agregarlineablanca($lo_object,$li_totrows);
break;
}
?>