<?
session_name('portal_absa');
session_start();
$arrHTTP = explode("?",trim(strtoupper($_SERVER['HTTP_REFERER'])));
$http = trim(strtoupper($arrHTTP[0]));

if(!isset($_SESSION['usuario_p_prov_absa']) || trim($_SESSION['usuario_p_prov_absa']) == "" || (trim(strtoupper($_SESSION["URL_PORTAL"]."FORMULARIOS/FORM_EXPEDIENTE_COMPLEMENTOPAGO.PHP")) != $http && trim(strtoupper($_SESSION["URL_PORTAL"]."FORMULARIOS/FORM_EXPEDIENTE_ICFDI.PHP")) != $http && trim(strtoupper($_SESSION["URL_PORTAL"]."FORMULARIOS/FORM_EXPEDIENTE_PAGO.PHP")) != $http)){
	?><script>window.close();</script><?
	exit;
}
require("../../conexion/conectar.php");
require("../../libs/funciones.php");

if(!$TOLERANCIA_COMPENSADO_PAGADO = getINI("../../config.ini","TOLERANCIA_COMPENSADO_PAGADO=")){
	$TOLERANCIA_COMPENSADO_PAGADO =.5;
}

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

if(!isset($_REQUEST["recibedoce_pagos_id"])){
	?><script>
	$j_7.messager.alert("Error.","Faltan parametros.","error");
	</script><?
	exit;
}
$recibedoce_pagos_id = $_REQUEST["recibedoce_pagos_id"];
$doce_uuid = $_REQUEST["doce_uuid"];

$tPCFDI=getPCFDI($recibedoce_pagos_id);
$tNPCFDI=getNPCFDI($doce_uuid);


//Valido que el complemento no este cancelado
if($tPCFDI["status"] == "C"){
	?><script>$j_7.messager.alert("Error","El complemento esta cancelado.","error");</script><?exit;
}
//Valido que algun pago no este asignado a una notificación de pago.
if(!validaPagoDetalleNoAsignado($recibedoce_pagos_id)){
	?><script>$j_7.messager.alert("Error","El pago del complemento ya esta asignado a alg&uacute;n otro pago.","error");</script><?exit;
}
//Valido que algun pago no este asinado a una notificación de pago.
if(!validaNotificacionPagoNoAsignada($doce_uuid)){
	?><script>$j_7.messager.alert("Error","La notificaci&oacute;n ya tiene una relaci&oacute;n.","error");</script><?exit;
}
//Valido que el monto, moneda, tipo de cambio y formadepago sean iguales en el complemento y en la notificacion de pago.
$ban=false;
$errores="";
if($tPCFDI["tipocambiop"] != $tNPCFDI["tipocambio"]){
	$ban=true;
	$errores="<b>Tipo de Cambio:</b> ".$tPCFDI["tipocambiop"]." <b><font color='red'>diferente a</font></b> ".$tNPCFDI["tipocambio"]."<br/>";
}
if($tPCFDI["monedap"] != $tNPCFDI["moneda"]){
	$ban=true;
	$errores.="<b>Moneda:</b> ".$tPCFDI["monedap"]." <b><font color='red'>diferente a</font></b> ".$tNPCFDI["moneda"]."<br/>";
}
if($tPCFDI["monto"] != $tNPCFDI["total"]){
	$ban=true;
	$errores.="<b>Total:</b> ".$tPCFDI["monto"]." <b><font color='red'>diferente a</font></b> ".$tNPCFDI["total"]."<br/>";
}
if($tPCFDI["formadepago"] != $tNPCFDI["formadepago"]){
	$ban=true;
	$errores.="<b>Forma de Pago:</b> ".$tPCFDI["formadepago"]." <b><font color='red'>diferente a</font></b> ".$tNPCFDI["formadepago"]."<br/>";
}
if($ban){
	?><script>
		$j_7.messager.confirm("Errores encontrados","Existen algunas diferencias.<br/><?=$errores?><br/>¿Realmente desea aplicar los cambios?",function(r){
			if(r){
				insertaDoceUUID_PCFDI('<?=$recibedoce_pagos_id?>','<?=$doce_uuid?>');
			}
		});
	</script><?exit;
}
?><script>insertaDoceUUID_PCFDI('<?=$recibedoce_pagos_id?>','<?=$doce_uuid?>');</script><?exit;




function validaPagoDetalleNoAsignado($recibedoce_pagos_id){
	global $conexion;
	$qPCFDI = "select doce_uuid from recibedoce_pagos_docto_relacionado where recibedoce_pagos_id=$recibedoce_pagos_id";
	if(!$rPCFDI = mysqli_query($conexion->CONEXION,$qPCFDI)){
		?><script>$j_7.messager.alert("Error","Ocurrio un error al consultar el pago del complemento.","error")</script><?
	}
	if(mysqli_num_rows($rPCFDI) > 0){
		while($tmp = mysqli_fetch_array($rPCFDI,MYSQLI_ASSOC)){
			if(trim($tmp["doce_uuid"]) != ""){
				return false;
			}
		}
	}
	return true;
}

function validaNotificacionPagoNoAsignada($doce_uuid){
	global $conexion;
	$qPCFDI = "select doce_uuid from recibedoce_pagos_docto_relacionado where doce_uuid='$doce_uuid'";
	if(!$rPCFDI = mysqli_query($conexion->CONEXION,$qPCFDI)){
		?><script>$j_7.messager.alert("Error","Ocurrio un error al consultar el pago del complemento.","error")</script><?
	}
	if(mysqli_num_rows($rPCFDI) > 0){
		return false;
	}
	return true;
}
function getRelacionesNotificacionPago($doce_uuid){
	global $conexion;
	$q = "select doce_uuid,uuidcfdirelacionado,monto,numparcialidad,moneda,tipocambio from pago_documentos_ref where doce_uuid='$doce_uuid'";
	if(!$r = mysqli_query($conexion->CONEXION,$qPCFDI)){
		?><script>$j_7.messager.alert("Error","Ocurrio un error al consultar el pago del complemento.","error")</script><?
	}
	$rows = array();
	if(mysqli_num_rows($r) > 0){
		while($t = mysqli_fetch_array($r,MYSQLI_ASSOC)){
			$rows[] = $t;
		}
		return $rows;
	}
	return 0;
}

function getPCFDI($recibedoce_pagos_id){
	global $conexion;
	$qPCFDI = "select rd.status,rdp.tipocambiop,rdp.monedap,rdp.monto,rdp.formadepago from recibedoce_pagos rdp inner join recibedoce rd ON rdp.recibedoce_uuid=rd.uuid where rdp.recibedoce_pagos_id=$recibedoce_pagos_id group by recibedoce_pagos_id";
	if(!$rPCFDI = mysqli_query($conexion->CONEXION,$qPCFDI)){
		?><script>$j_7.messager.alert("Error","Ocurrio un error al consultar el pago del complemento.","error")</script><?
	}
	$tPCFDI = mysqli_fetch_assoc($rPCFDI);
	return $tPCFDI;
}
function getNPCFDI($doce_uuid){
	global $conexion;
	$qPCFDI = "select total,tipocambio,moneda,adicionalB as formadepago from doce where adicionalA='$doce_uuid'";
	if(!$rPCFDI = mysqli_query($conexion->CONEXION,$qPCFDI)){
		?><script>$j_7.messager.alert("Error","Ocurrio un error al consultar el pago del complemento.","error")</script><?
	}
	$tPCFDI = mysqli_fetch_assoc($rPCFDI);
	return $tPCFDI;
}
?>