<?php 
class sigesp_apr_c_inventario
{
	//-----------------------------------------------------------------------------------------------------------------------------------
    function sigesp_apr_c_inventario()
    {
		$ld_fecha=date("_d-m-Y");
		$ls_nombrearchivo="resultado/".$_SESSION["ls_data_des"]."_movimiento_inicial_siv_result_".$ld_fecha.".txt";
		$this->lo_archivo=@fopen("$ls_nombrearchivo","a+");
	
		$this->ls_database_source=$_SESSION["ls_database"];
		$this->ls_database_target=$_SESSION["ls_data_des"];		
		require_once("../shared/class_folder/sigesp_include_covensol.php");
		require_once("../shared/class_folder/class_mensajes.php");
		require_once("../shared/class_folder/class_sql_covensol.php");
		require_once("class_folder/class_validacion.php");
		require_once("../shared/class_folder/sigesp_c_reconvertir_monedabsf.php");
		$this->io_rcbsf	 = new sigesp_c_reconvertir_monedabsf(); 
		$this->io_mensajes=new class_mensajes();
		$this->io_validacion      = new class_validacion();
		$io_conect	= new sigesp_include_covensol();
		$io_conexion_origen = $io_conect->uf_conectar();
		$io_conexion_destino  = $io_conect->uf_conectar_otra_bd ($_SESSION["ls_hostname_destino"],$_SESSION["ls_login_destino"],$_SESSION["ls_password_destino"],$this->ls_database_target,$_SESSION["ls_gestor_destino"],$_SESSION["ls_port_destino"]); 
		$this->io_sql_origen = new class_sql_covensol($io_conexion_origen);
		$this->io_sql_destino = new class_sql_covensol($io_conexion_destino);
    }
	//-----------------------------------------------------------------------------------------------------------------------------------

	//-----------------------------------------------------------------------------------------------------------------------------------	
	function uf_insert_movimientoinicial()
	{
		$lb_valido       = true;
		$li_total_select = 0;
		$li_total_insert = 0;
		$ls_sql          = " SELECT codemp,codart,codalm,SUM(existencia) AS existencia,  
						           ( SELECT ultcosart FROM siv_articulo  
                                     WHERE siv_articuloalmacen.codemp=siv_articulo.codemp  
						               AND siv_articuloalmacen.codart=siv_articulo.codart) AS ultcosart  
                              FROM siv_articuloalmacen  
						      WHERE existencia > 0  
                              GROUP BY codemp,codart,codalm ";
		$io_recordset    = $this->io_sql_origen->select($ls_sql);
		
		if($io_recordset===false){ 					
			$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_movimientoinicial ERROR->".$this->io_sql_destino->message);
			return false;					
		}		
		
		$li_total_select = $this->io_sql_origen->num_rows($io_recordset);
		
		if(!$li_total_select){
			$this->io_mensajes->message("No hay movimientos iniciales que transferir");	
			return true;
		}
		
		$ls_comprobante = "000000000000001";
		$ld_fecha		= "";
		$this->uf_select_empresa($ld_fecha);
		$ls_usuario		= $_SESSION["la_logusr"];
		$ls_solicitante = "Apertura";
		$this->io_sql_destino->begin_transaction();
		$ls_sql=" INSERT INTO siv_movimiento (nummov,fecmov,nomsol,codusu)  
				  VALUES ('".$ls_comprobante."','".$ld_fecha."','".$ls_solicitante."','".$ls_usuario."') ";
		$li_row    = $this->io_sql_destino->execute($ls_sql);
		
		if($li_row===false){ 					
			$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_movimientoinicial ERROR->".$this->io_sql_destino->message);
			$this->io_sql_destino->rollback();
			return false;					
		}
		
		while($row=$this->io_sql_origen->fetch_row($io_recordset))
		{
			$ls_codemp=$this->io_validacion->uf_valida_texto($row["codemp"],0,4,"");
			$ls_nummov=$ls_comprobante;
			$ld_fecmov=$ld_fecha;
			$ls_codart=$this->io_validacion->uf_valida_texto($row["codart"],0,20,"");
			$ls_codalm=$this->io_validacion->uf_valida_texto($row["codalm"],0,10,"");
			$ls_opeinv="ENT";
			$ls_codprodoc="APR";
			$ls_numdoc=$ls_comprobante;
			$li_canart=$this->io_validacion->uf_valida_monto($row["existencia"],0);
			$li_cosart=$this->io_validacion->uf_valida_monto($row["ultcosart"],0,254,"");
			$ls_promov="APE";
			$li_numdocori=$ls_comprobante;
			$li_candesart=$this->io_validacion->uf_valida_monto($row["existencia"],0);
			$ld_fecdesart=$ld_fecha;
			$li_cosartaux=$this->io_validacion->uf_valida_monto($row["ultcosart"],0);
			$li_cosart=$this->io_rcbsf->uf_convertir_monedabsf($li_cosart,2,1,1000,1);
			if($li_canart>0)
			{
				$ls_sql="INSERT INTO siv_dt_movimiento (codemp, nummov, fecmov, codart, codalm, opeinv, codprodoc, numdoc, canart, cosart, ".
						"promov, numdocori, candesart, fecdesart) VALUES ('".$ls_codemp."','".$ls_nummov."','".$ld_fecmov."',".
						"'".$ls_codart."','".$ls_codalm."','".$ls_opeinv."','".$ls_codprodoc."','".$ls_numdoc."',".$li_canart.",".$li_cosart.",".
						"'".$ls_promov."',".$li_numdocori.",".$li_candesart.",'".$ld_fecdesart."')";
				$li_row=$this->io_sql_destino->execute($ls_sql);
				if($li_row===false)
				{
					$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_movimientoinicial ERROR->".$this->io_sql_destino->message);
					$this->io_sql_destino->rollback();				    
					return false;	
				}
				$ls_sql="INSERT INTO siv_articuloalmacen (codemp, codart, codalm, existencia) VALUES ".
						"('".$ls_codemp."','".$ls_codart."','".$ls_codalm."',".$li_canart.")";
				$li_row=$this->io_sql_destino->execute($ls_sql);
				if($li_row===false)
				{
					$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_movimientoinicial ERROR->".$this->io_sql_destino->message);
					$this->io_sql_destino->rollback();				    
					return false;	
				}

			}
		}
		
		$this->io_sql_destino->commit();
		$this->io_mensajes->message("El Movimiento Inicial de Inventario se Creo con Exito");
				
		return true;
	}// end function uf_insert_movimientoinicial
	//-----------------------------------------------------------------------------------------------------------------------------------	

	//-----------------------------------------------------------------------------------------------------------------------------------
	function uf_select_empresa(&$ls_periodo)
	{	
		$lb_existe=false;
		$ls_sql=" SELECT periodo ".
			    " FROM  sigesp_empresa ".
				" WHERE codemp='0001' ";
		$peri=$this->io_sql_destino->select($ls_sql);
		if($peri===false){
			$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_select_empresa ERROR->".$this->io_sql_destino->message);
			return false;
		}
		
		$ls_periodo=$peri->fields["periodo"];	
		return true;
		
	} // end function uf_select_comprobante
	//-----------------------------------------------------------------------------------------------------------------------------------

}
?>
