<?php  
	include "conexion.php";
	include "insertar_log.php";
	$id_aplicacion = "0";

	$id_cliente = $_POST['id_cliente'];
	$rfc = $_POST['rfc'];
	$razon_social = $_POST['razon_social'];
	$email = $_POST['email'];
	$codigo_postal = $_POST['codigo_postal'];
	$regimen_fiscal = $_POST['regimen_fiscal'];
	
	$datos = " Ingresa a serializar_cliente id_cliente=".$id_cliente;	
	insertarLog($datos,$id_aplicacion);

	$nuevo=0;

	str_replace('"', '\"', $razon_social);
	str_replace("'", "\'", $razon_social);

	if($id_cliente==0)
	{
		$cuantos=0;
		$sentencia = $conexion->prepare("select count(*) cuantos from clientes where rfc='".$rfc."' and tipo=3 ");
		$sentencia->execute();

		$resultado = $sentencia->get_result();

		if($fila = $resultado->fetch_assoc())
		{
			$cuantos = $fila["cuantos"];
		}

		$sentencia->close();

		if($cuantos>0)
		{
			$datos = " Ya existe un cliente registrado con ese RFC tipo Contado RFC= ".$rfc;	
			insertarLog($datos,$id_aplicacion);
			echo response(1,"Ya existe un cliente registrado con ese RFC tipo Contado","");
			return;
		}
		$nuevo=1;

	}
	

	if($nuevo==1)
	{
		$datos = " Ingresa a insertar nuevo cliente  ";	
			insertarLog($datos,$id_aplicacion);

		$sql = "select ";
		$sql .= "ifnull(max(id_cliente),0)+1 id_cliente ";
		$sql .= "from ";
		$sql .= "clientes ";
		
		$sentencia = $conexion->prepare($sql);
		$sentencia->execute();

		$resultado = $sentencia->get_result();

		if($fila = $resultado->fetch_assoc())
		{
			$id_cliente = $fila["id_cliente"];
		}

		$sentencia->close();

		$sql = "insert into ";
		$sql .= "clientes ";
		$sql .= "(";
		$sql .= "id_cliente,";
		$sql .= "razon_social,";
		$sql .= "nombre_comercial,";
		$sql .= "saldo,";
		$sql .= "saldo_pendiente,";
		$sql .= "rfc,";
		$sql .= "fecha_creacion,";
		$sql .= "estado,";
		$sql .= "tipo,";
		$sql .= "credito_limite,";
		$sql .= "email,";
		$sql .= "cuenta,";
		$sql .= "consignacion,";
		$sql .= "banco,";
		$sql .= "jarreo_pemex,";
		$sql .= "auto_jarreo,";
		$sql .= "cargo,";
		$sql .= "abono,";
		$sql .= "saldo_facturado,";
		$sql .= "dias_credito,";
		$sql .= "saldo_puntos,";
		$sql .= "saldo_consignacion,";
		$sql .= "desgloseIEPS,";
		$sql .= "estatus,";
		$sql .= "tag_puntos,";
		$sql .= "factor_iva_retenido,";
		$sql .= "publico_general,";
		$sql .= "correo_transaccion,";
		$sql .= "muestra_saldo_ticket,";
		$sql .= "version,";
		$sql .= "cuenta_contable, ";
		$sql .= "regimen_fiscal ";
		$sql .= ") values ";
		$sql .= "(";
		$sql .= $id_cliente.",";
		$sql .= '"'.$razon_social.'",';
		$sql .= '"'.$razon_social.'",';
		$sql .= "0,";
		$sql .= "0,";
		$sql .= "'".$rfc."',";
		$sql .= "now(),";
		$sql .= "1,";
		$sql .= "3,";
		$sql .= "0,";
		$sql .= "'".$email."',";
		$sql .= "'',";
		$sql .= "0,";
		$sql .= "'',";
		$sql .= "0,";
		$sql .= "0,";
		$sql .= "0,";
		$sql .= "0,";
		$sql .= "0,";
		$sql .= "0,";
		$sql .= "0,";
		$sql .= "0,";
		$sql .= "0,";
		$sql .= "1,";
		$sql .= "'',";
		$sql .= "0,";
		$sql .= "0,";
		$sql .= "0,";
		$sql .= "0,";
		$sql .= "0,";
		$sql .= "'',";
		$sql .= "'".$regimen_fiscal."' ";
		$sql .= ") ";

		
		$resultado = $conexion->query($sql); 

	    if($resultado == false)
	    {
	    	$datos = " Error a insertar cliente  rfc=".$rfc;	
			insertarLog($datos,$id_aplicacion);
	        echo response(1,"Error a insertar cliente","");
	        return;
	    }

	    $id_direccion=0;

	    $sql = "select ";
		$sql .= "ifnull(max(id_direccion),0)+1 id_direccion ";
		$sql .= "from ";
		$sql .= "direcciones ";
		
		$sentencia = $conexion->prepare($sql);
		$sentencia->execute();

		$resultado = $sentencia->get_result();

		if($fila = $resultado->fetch_assoc())
		{
			$id_direccion = $fila["id_direccion"];
		}

		$sentencia->close();

		$sql = "insert into ";
		$sql .= "direcciones ";
		$sql .= "(";
		$sql .= "id_direccion,";
		$sql .= "calle,";
		$sql .= "numero_externo,";
		$sql .= "numero_interno,";
		$sql .= "colonia,";
		$sql .= "locacion,";
		$sql .= "referencia,";
		$sql .= "municipio,";
		$sql .= "estado,";
		$sql .= "pais,";
		$sql .= "codigo_postal,";
		$sql .= "telefono";
		$sql .= ") values ";
		$sql .= "(";
		$sql .= $id_direccion.",";
		$sql .= "'',";
		$sql .= "'',";
		$sql .= "'',";
		$sql .= "'',";
		$sql .= "'',";
		$sql .= "'',";
		$sql .= "'',";
		$sql .= "'',";
		$sql .= "'',";
		$sql .= "'".$codigo_postal."',";
		$sql .= "''";
		
		$sql .= ") ";

		$resultado = $conexion->query($sql); 

	    if($resultado == false)
	    {
	    	$datos = " Error a insertar direccion 1 rfc=".$rfc;	
			insertarLog($datos,$id_aplicacion);
	        echo response(1,"Error al agregar direccion 1","");
	        return;
	    }

	    $sql = "insert into ";
		$sql .= "clientes_direcciones ";
		$sql .= "(";
		$sql .= "id_cliente,";
		$sql .= "id_direccion,";
		$sql .= "tipo ";
		$sql .= ") values ";
		$sql .= "(";
		$sql .= $id_cliente.",";
		$sql .= $id_direccion.",";
		$sql .= "1";
		$sql .= ") ";

		$resultado = $conexion->query($sql); 

	    if($resultado == false)
	    {
	    	$datos = " Error a insertar cliente_direccion 1 rfc=".$rfc;	
			insertarLog($datos,$id_aplicacion);
	        echo response(1,"Error al agregar cliente_direccion 1","");
	        return;
	    }

	    $id_direccion=0;

	    $sql = "select ";
		$sql .= "ifnull(max(id_direccion),0)+1 id_direccion ";
		$sql .= "from ";
		$sql .= "direcciones ";
		
		$sentencia = $conexion->prepare($sql);
		$sentencia->execute();

		$resultado = $sentencia->get_result();

		if($fila = $resultado->fetch_assoc())
		{
			$id_direccion = $fila["id_direccion"];
		}

		$sentencia->close();

		$sql = "insert into ";
		$sql .= "direcciones ";
		$sql .= "(";
		$sql .= "id_direccion,";
		$sql .= "calle,";
		$sql .= "numero_externo,";
		$sql .= "numero_interno,";
		$sql .= "colonia,";
		$sql .= "locacion,";
		$sql .= "referencia,";
		$sql .= "municipio,";
		$sql .= "estado,";
		$sql .= "pais,";
		$sql .= "codigo_postal,";
		$sql .= "telefono";
		$sql .= ") values ";
		$sql .= "(";
		$sql .= $id_direccion.",";
		$sql .= "'',";
		$sql .= "'',";
		$sql .= "'',";
		$sql .= "'',";
		$sql .= "'',";
		$sql .= "'',";
		$sql .= "'',";
		$sql .= "'',";
		$sql .= "'',";
		$sql .= "'".$codigo_postal."',";
		$sql .= "''";
		
		$sql .= ") ";

		$resultado = $conexion->query($sql); 

	    if($resultado == false)
	    {
	    	$datos = " Error a insertar direccion 1 rfc=".$rfc;	
			insertarLog($datos,$id_aplicacion);
	        echo response(1,"Error al agregar direccion 1","");
	        return;
	    }

	    $sql = "insert into ";
		$sql .= "clientes_direcciones ";
		$sql .= "(";
		$sql .= "id_cliente,";
		$sql .= "id_direccion,";
		$sql .= "tipo ";
		$sql .= ") values ";
		$sql .= "(";
		$sql .= $id_cliente.",";
		$sql .= $id_direccion.",";
		$sql .= "2";
		$sql .= ") ";

		$resultado = $conexion->query($sql); 

	    if($resultado == false)
	    {
	    	$datos = " Error a insertar cliente_direccion 1 rfc=".$rfc;	
			insertarLog($datos,$id_aplicacion);
	        echo response(1,"Error al agregar cliente_direccion 1","");
	        return;
	    }

	}
	else
	{
		$datos = " Ingresa a actualizar cliente rfc=".$rfc;	
			insertarLog($datos,$id_aplicacion);

		$cuantos=0;
		$sentencia = $conexion->prepare("select count(*) cuantos from clientes where rfc='".$rfc."' and tipo=3 and id_cliente!=".$id_cliente);
		$sentencia->execute();

		$resultado = $sentencia->get_result();

		if($fila = $resultado->fetch_assoc())
		{
			$cuantos = $fila["cuantos"];
		}

		$sentencia->close();

		//if($cuantos>0)
		//{
		//	echo response(1,"Ya existe un cliente registrado con ese RFC tipo Contado","");
	    //    return;
		//}

		$sql = "update ";
		$sql .= "clientes ";
		$sql .= "set ";
		$sql .= "rfc='".$rfc."', ";
		$sql .= 'razon_social="'.$razon_social.'",';
		$sql .= 'nombre_comercial="'.$razon_social.'",';
		$sql .= "email='".$email."', ";
		$sql .= "regimen_fiscal='".$regimen_fiscal."' ";
		$sql .= "where ";
		$sql .= "id_cliente=".$id_cliente;
		
		$resultado = $conexion->query($sql); 

	    if($resultado == false)
	    {
	    	$datos = " Error al actualizar cliente rfc=".$rfc;	
			insertarLog($datos,$id_aplicacion);
	        echo response(1,"Error al actualizar cliente","");
	        return;
	    }

	    $sentencia = $conexion->prepare("select id_direccion from clientes_direcciones where id_cliente=".$id_cliente);
		$sentencia->execute();
		$direcciones="";

		$resultado = $sentencia->get_result();

		while($fila = $resultado->fetch_assoc())
		{
			$direcciones .= $fila["id_direccion"].",";
		}

		$sentencia->close();

		$sql = "update ";
		$sql .= "direcciones ";
		$sql .= "set ";
		$sql .= "codigo_postal='".$codigo_postal."' ";
		$sql .= "where ";
		$sql .= "id_direccion in(".$direcciones."0) ";
		
		$resultado = $conexion->query($sql); 

	    if($resultado == false)
	    {
	    	$datos = " Error al actualizar direcciones rfc=".$rfc;	
			insertarLog($datos,$id_aplicacion);
	        echo response(1,"Error al actualizar direcciones","");
	        return;
	    }

	}

	$sentencia = $conexion->prepare("select id_cliente,rfc,razon_social,email,regimen_fiscal from clientes where id_cliente=".$id_cliente);
	$sentencia->execute();

	$resultado = $sentencia->get_result();

	if($fila = $resultado->fetch_assoc())
	{
		$cliente = $fila;
	}

	$sentencia->close();

	$datos = " Termina proceso serializar_cliente...";	
			insertarLog($datos,$id_aplicacion);
			
	echo response(0,"OK",$id_cliente);
	return;


	function response($estatus,$estatus_mensaje,$respuesta){
		header("HTTP/1.1".$estatus);

		$response["estatus"]=$estatus;
		$response["estatus_mensaje"]=$estatus_mensaje;
		$response["respuesta"]=$respuesta;
		
		$json_response = json_encode($response, JSON_UNESCAPED_UNICODE);

		echo $json_response;

	}
?>