<?
/*
Autor: Lic. Carlos Alberto Vaca Coronado
Version: 3.2.0
*/

session_name('portal_absa');
session_start();
require("conexion/conectar.php");

$conexion = new CONDB();
$conexion->conectar();

if(isset($_REQUEST["rfc"])){
	$rfc=$_REQUEST["rfc"];
}else{
	$rfc="";
}
$usr="";
$pass="";
$nombre="";
$puesto="";
$esadmin="";
$todoRFC="";
$esProv="SI";
$esCliente="NO";
$activado="";
$correo="";
$telefono="";
$nombreRFC="";
$permisosC="";
$permisosP="";
$contacto="";
$tipo_proveedor="";
$dias_pago="";
$tipo_usuario="";
$tipo_usuario_vimifos="";
$tdocto="";
$prefijo="";
$cambia_status_check='0';
$agrega_pago_check='0';
$ref_rfc_receptor="";
$compensar_documentos="0";
$mod_acepta_rechaza_cancelacion="0";
$mod_pendientes_cancelar="0";
$editar_expediente="0";
$ver_reportes="0";

$comUpdate="";

			
if(isset($_POST["usr"]))
{
			$usr=$_REQUEST["usr"];
			$pass=$_REQUEST["pass"];
			$nombre=$_REQUEST["nombre"];
			$puesto=$_REQUEST["puesto"];
			$correo=$_REQUEST["correo"];
			$telefono=$_REQUEST["telefono"];
			$nombreRFC=$_REQUEST["nombreRFC"];
			$permisosC=$_REQUEST["permisosC"];
			$permisosP=$_REQUEST["permisosP"];
			$contacto=$_REQUEST["contacto"];
			$esCliente=$_REQUEST["esCliente"];
			$esProv=$_REQUEST["esProv"];
			$compensar_documentos=($_REQUEST["compensar_documentos"] == "")? "0": $_REQUEST["compensar_documentos"];
			$editar_expediente=($_REQUEST["editar_expediente"] == "")? "0": $_REQUEST["editar_expediente"];
			$ver_reportes=($_REQUEST["ver_reportes"] == "")? "0": $_REQUEST["ver_reportes"];
			$mod_pendientes_cancelar=($_REQUEST["mod_pendientes_cancelar"] == "")? "0": $_REQUEST["mod_pendientes_cancelar"];
			$mod_acepta_rechaza_cancelacion=($_REQUEST["mod_acepta_rechaza_cancelacion"] == "")? "0": $_REQUEST["mod_acepta_rechaza_cancelacion"];
			
			if(count($_REQUEST["ref_rfc_receptor"]) == 0){
				?><script>alert('Debe de seleccionar por lo menos un RFC Receptor.');</script><?exit;
			}
			
			
			for($i=0;$i < count($_REQUEST["ref_rfc_receptor"]); $i++){
					if(trim($ref_rfc_receptor) == "")
						$ref_rfc_receptor.= $_REQUEST["ref_rfc_receptor"][$i];
					else
						$ref_rfc_receptor.= ",".$_REQUEST["ref_rfc_receptor"][$i];
			}
			
			//$ref_rfc_receptor=trim($_REQUEST["ref_rfc_receptor"]);
			
			if(trim($_REQUEST["cambia_status_check"])=="1")
				$cambia_status_check='1';
			if(trim($_REQUEST['agrega_pago_check']) == "1")
				$agrega_pago_check='1';
                        
                        if($_SESSION['tipo_portal'] == "ABSA")
                            $tipo_proveedor=$_REQUEST["tipo_proveedor"];
                        else if($_SESSION['tipo_portal'] == "VIMIFOS")
                            $tipo_proveedor=$_REQUEST["tdocto"];
                        
						$dias_pago=$_REQUEST["dias_pago"];
						$tipo_usuario=$_REQUEST["tipo_usuario"];
                        $tipo_usuario_vimifos=$_REQUEST["tipo_usuario_vimifos"];
                        $tdocto=$_REQUEST['tdocto'];
                        if($tipo_usuario_vimifos == "EXTERNO"){
                            $prefijo="-";
                        }else{
                            $prefijo=$_REQUEST['prefijo'];
                        }
			if($esProv!="SI" && $esCliente!="SI"){
				?><script>alert('Debe de indicar por lo menos un acceso');</script><?
				return false;
			}
			if($esCliente=="SI"){
				if(!validaCliente($rfc)){
					?><script>alert('Para poderle dar acceso al portal de clientes, primero emita un documento a este RFC');</script><?
					return false;
				}
			}
			if($_POST["usr"] == "admin"){
				$esadmin="SI";
				$todoRFC="SI";
				$esProv="SI";
				$esCliente="SI";
				$activado="2";
			}else{
				$esadmin=$_REQUEST["esadmin"];
				$todoRFC=$_REQUEST["todoRFC"];
				$esProv=$_REQUEST["esProv"];
				$esCliente=$_REQUEST["esCliente"];
				$activado=$_REQUEST["activado"];
			}
}else
return false;

$query="select username from usuariosweb where username='$usr'";
$rquery = mysqli_query($conexion->CONEXION,$query);
if(mysqli_num_rows($rquery) > 0)
{
		$esCliente=$_REQUEST["esCliente"];
		$esProv=$_REQUEST["esProv"];
		if($esProv!="SI" && $esCliente!="SI"){
				?><script>alert('Debe de indicar por lo menos un acceso');</script><?
				return false;
			}
		if($esCliente=="SI"){
			if(!validaCliente($rfc)){
				?><script>alert('Para poderle dar acceso al portal de clientes, primero emita un documento a este RFC');</script><?
				return false;
			}
		}
		if(!saveClienteWEB($rfc,$esCliente,$esProv,$nombreRFC))
		{
			echo "Ocurrio un error al dar de alta el usuario"; return false;
		}
		
		if(strtoupper(trim($_SESSION['usuario_p_prov_absa'])) == "ADMIN")
				$comUpdate="ref_rfc_receptor='$ref_rfc_receptor',";
		else
				$comUpdate="ref_rfc_receptor='".$_SESSION['sesion_ref_rfc_receptor']."',";
		
		if($_SESSION["MODULO_PAGOS"] == "1"){
			$completaQModuloPagos = ",compensar_documentos='$compensar_documentos',ver_reportes='$ver_reportes',
			editar_expediente='$editar_expediente'";
		}
		if($_SESSION["MODULO_PENDIENTES_CANCELAR"] == "1"){
			$completaQModuloCancel = ",mod_pendientes_cancelar='$mod_pendientes_cancelar',mod_acepta_rechaza_cancelacion='$mod_acepta_rechaza_cancelacion'";
		}
		
		if($pass != ""){
			$query="Update usuariosweb set $comUpdate cambia_status_check='$cambia_status_check',agrega_pago_check='$agrega_pago_check',pass=md5('$pass'),nombre='$nombre', 
			puesto='$puesto', rfc_cliente='$rfc', 
			esadmin='$esadmin', todoRFC='$todoRFC', activado='$activado', esProv='$esProv', esCliente='$esCliente', email='$correo', telefono='$telefono', permisosC='".mysqli_real_escape_string($conexion->CONEXION,$permisosC)."', permisosP='".mysqli_real_escape_string($conexion->CONEXION,$permisosP)."', contactoP='$contacto' $completaQModuloPagos $completaQModuloCancel where username='$usr'";
			$rquery=mysqli_query($conexion->CONEXION,$query);
			echo mysqli_error($conexion->CONEXION);
		}else{
			$query="Update usuariosweb set $comUpdate cambia_status_check='$cambia_status_check',agrega_pago_check='$agrega_pago_check',nombre='$nombre', 
			puesto='$puesto', rfc_cliente='$rfc', 
			esadmin='$esadmin', todoRFC='$todoRFC', activado='$activado', esProv='$esProv', esCliente='$esCliente', email='$correo', telefono='$telefono', permisosC='".mysqli_real_escape_string($conexion->CONEXION,$permisosC)."', permisosP='".mysqli_real_escape_string($conexion->CONEXION,$permisosP)."', contactoP='$contacto' $completaQModuloPagos $completaQModuloCancel where username='$usr'";
			$rquery=mysqli_query($conexion->CONEXION,$query);
			echo mysqli_error($conexion->CONEXION);
		}
		if(!mysqli_errno($conexion->CONEXION)){
			$qry_d_proveedores="delete from proveedores where rfc='$rfc'";
			if(mysqli_query($conexion->CONEXION,$qry_d_proveedores)){
				for($i=0;$i < count($_REQUEST["ref_rfc_receptor"]); $i++){
					$qry_i_proveedores="insert into proveedores set rfc='$rfc', rfc_receptor='".$_REQUEST["ref_rfc_receptor"][$i]."'";
					mysqli_query($conexion->CONEXION,$qry_i_proveedores);
				}
			}
		}
		$mensaje="Usuario actualizado satisfactoriamente";
		$error="Ocurrio un error al actualizar el usuario";
	
}else if(isset($_POST["usr"])){

		if(!saveClienteWEB($rfc,$esCliente,$esProv,$nombreRFC))
		{
			echo "Ocurrio un error al dar de alta el usuario"; return false;
		}
		
		if(strtoupper(trim($_SESSION['usuario_p_prov_absa'])) != "ADMIN")
				$comInsert=$_SESSION['sesion_ref_rfc_receptor'];
		else
				$comInsert=$ref_rfc_receptor;
		
		if($_SESSION["MODULO_PAGOS"] == "1"){
			$completaQModuloPagosCampos = ",compensar_documentos,ver_reportes,editar_expediente";
			$completaQModuloPagosValues = ",'$compensar_documentos','$ver_reportes','$editar_expediente'";
		}
		if($_SESSION["MODULO_PENDIENTES_CANCELAR"] == "1"){
			$completaQModuloCancelCampos = ",mod_pendientes_cancelar,mod_acepta_rechaza_cancelacion";
			$completaQModuloCancelValues = ",'$mod_pendientes_cancelar','$mod_acepta_rechaza_cancelacion'";
		}
		
		$query="Insert into usuariosweb (username,pass,nombre,puesto,
		rfc_cliente,esadmin,fechacreacion,todoRFC,esProv,activado,email,telefono,esCliente,permisosC,permisosP,contactoP,cambia_status_check,agrega_pago_check,ref_rfc_receptor $completaQModuloPagosCampos $completaQModuloCancelCampos) values('$usr',md5('$pass'),
		'$nombre','$puesto','$rfc','$esadmin',now(),'$todoRFC','$esProv','$activado','$correo','$telefono','$esCliente','".mysqli_real_escape_string($conexion->CONEXION,$permisosC)."','".mysqli_real_escape_string($conexion->CONEXION,$permisosP)."','$contacto','$cambia_status_check','$agrega_pago_check','$comInsert' $completaQModuloPagosValues $completaQModuloCancelValues)";
		if(!$rquery=mysqli_query($conexion->CONEXION,$query)){
			echo mysqli_error($conexion->CONEXION);
			exit;
		}
		
		$qry_d_proveedores="delete from proveedores where rfc='$rfc'";
		if(mysqli_query($conexion->CONEXION,$qry_d_proveedores)){
			for($i=0;$i < count($_REQUEST["ref_rfc_receptor"]); $i++){
				$qry_i_proveedores="insert into proveedores set rfc='$rfc', rfc_receptor='".$_REQUEST["ref_rfc_receptor"][$i]."'";
				mysqli_query($conexion->CONEXION,$qry_i_proveedores);
			}
		}
		//echo mysqli_error($conexion->CONEXION);exit;
		$mensaje="Usuario dado de alta satisfactoriamente";
		$error="Ocurrio un error al dar de alta el usuario";
}

if(mysqli_errno($conexion->CONEXION) != 0)
	echo $error;
else{
	echo "Datos guardados correctamente";
	if($_POST['reloadGridAfterSave'] != ""){
		if($_POST['valLiga'] != ""){
			$valLiga = explode("|",$_POST['valLiga']);
			$ids = "";
			for($i = 0; $i < count($valLiga); $i++){
					$ids.=",'".$valLiga[$i]."'";
			}
		}
		?><script>tools('<?=$_POST['reloadGridAfterSave']?>'<?=$ids?>); $j_6('#closeModal').click();</script><?
	}
}

	
function saveClienteWEB($rfc,$esCliente,$esProv,$nombreRFC){
	global $conexion;
$dias_pago=$_REQUEST["dias_pago"];

if($_SESSION['tipo_portal'] == "ABSA")
    $tipo_proveedor=$_REQUEST["tipo_proveedor"];
else if($_SESSION['tipo_portal'] == "VIMIFOS")
    $tipo_proveedor=$_REQUEST["tdocto"];


$query="select rfc_cliente from clienteweb where rfc_cliente='$rfc'";
		$rquery=mysqli_query($conexion->CONEXION,$query);
		if(mysqli_num_rows($rquery)==0){
			$query="select distinct rfcreceptor,nombrerec from doce where rfcReceptor='$rfc'";
			$rquery=mysqli_query($conexion->CONEXION,$query);
			if(mysqli_num_rows($rquery) > 0){
				$tmp=mysql_fetch_array($rquery,MYSQL_ASSOC);
				$nombreCliente=$tmp['nombrerec'];
				$query="insert into clienteweb set rfc_cliente='$rfc', nombre_cliente='$nombreRFC', esCliente='$esCliente', esProv='$esProv'";
				mysqli_query($conexion->CONEXION,$query);
			}else{
				$query="select distinct rfc,nombre from emisor where rfc='$rfc'";
				$rquery=mysqli_query($conexion->CONEXION,$query);
				$tmp=mysql_fetch_array($rquery,MYSQL_ASSOC);
				$nombreCliente=$tmp['nombre'];
				$query="insert into clienteweb set rfc_cliente='$rfc', nombre_cliente='$nombreRFC', esCliente='$esCliente', esProv='$esProv'";
				mysqli_query($conexion->CONEXION,$query);
			}
		}else{
			$query="update clienteweb set esCliente='$esCliente', esProv='$esProv', nombre_cliente='$nombreRFC' where rfc_cliente='$rfc'";
			mysqli_query($conexion->CONEXION,$query);
		}
		if(mysqli_errno($conexion->CONEXION) != 0)
			return false;
		else
			return true;

}

function validaCliente($rfc){
	global $conexion;
	$query="select rfcEmisor,rfcReceptor from doce where rfcReceptor='$rfc' or rfcEmisor='$rfc'";
	$rquery = mysqli_query($conexion->CONEXION,$query);
	if(mysqli_num_rows($rquery) > 0)
		return true;
	else{
		$query="select rfc from emisor where rfc='$rfc'";
		mysqli_free_result($rquery);
		$rquery = mysqli_query($conexion->CONEXION,$query);
		if(mysqli_num_rows($rquery) > 0)
			return true;
		else
			return false;
	}
}
?>