<?
session_name('portal_absa');
session_start();
require("../../conexion/conectar.php");
require("../../libs/funciones.php");

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

if(!isset($_REQUEST["uuidPago"])){
	?><script>
	$j_7.messager.alert("Error.","Faltan parametros.","error");
	</script><?
	exit;
}
$uuidIngreso=$_REQUEST["uuidIngreso"];
$uuidPago=$_REQUEST["uuidPago"];
$monto_enmoneda_padre=$_REQUEST["monto_enmoneda_padre"];
$monto_enmoneda_pago=$_REQUEST["monto_enmoneda_pago"];
$numparcialidad=$_REQUEST["numparcialidad"];
$tipocambioingreso=$_REQUEST["tipocambioingreso"];

$tDoce = getDoce($uuidPago);
$tIngreso = getDatosIngreso($uuidIngreso);
$montoTotalPago = getPagoTotalRelacionado($uuidPago);
$tPagoIngreso = getPagoDocumentosRefIngreso($uuidPago,$uuidIngreso);
$tIngresoPagado = getTotalPagoAlIngreso($uuidIngreso);
$totalIngresoCompensado = getTotalCompensadoAlIngreso($uuidIngreso);

//Le resto al monto total pagado el monto anterior pagado.
$montoTotalPagoAnterior = $montoTotalPago - $tPagoIngreso["monto"];
//Le sumo el monto nuevo al monto total del pago.
$montoTotalPagadoNuevo = (($montoTotalPagoAnterior + $monto_enmoneda_padre) / $tDoce["tipocambio"]);

//Le resto el monto anterior pagado al total pagado del ingreso.
$totalPagadoAnterior = $tIngresoPagado - $tPagoIngreso["monto"];
// Le sumo al total anterior el monto nuevo a pagar.
$totalPagadoNuevo = $totalPagadoAnterior+$monto_enmoneda_padre;
//Le resto al total del ingreso el total compensado
$totalRealAPagar = $tIngreso["total"] - $totalIngresoCompensado;

if(round($totalPagadoNuevo,1,PHP_ROUND_HALF_UP) > round($totalRealAPagar,1,PHP_ROUND_HALF_UP)){
	?><script>$j_7.messager.alert("Error","El monto a pagar a sobrepasado el maximo a pagar al ingreso.","error");</script><?exit;
}

if(round($montoTotalPagadoNuevo,1,PHP_ROUND_HALF_UP) > round($tDoce["total"],1,PHP_ROUND_HALF_UP)){
	?><script>$j_7.messager.alert("Error","El monto total relacionado a documentos a sobrepasado el maximo del pago.","error");</script><?exit;
}

function getDoce($uuid){
	global $conexion;
	$queryDocs = "SELECT tipodocto,rfcemisor,serie,folio,adicionalA as uuid,total,tipocambio,moneda FROM doce
	WHERE adicionalA='$uuid'";
	if(!$rDocs = mysqli_query($conexion->CONEXION,$queryDocs)){
		?><script>$j_7.messager.alert("Error","Ocurrio un error al consultar el pago.<br/>Intente nuevamente.","error");</script><?exit;
	}
		
	if(mysqli_num_rows($rDocs) > 0){
		$tmp = mysqli_fetch_assoc($rDocs);
		return $tmp;
	}else{
		?><script>$j_7.messager.alert("Error","No se encontro el pago.<br/>Intente nuevamente.","error");</script><?exit;
	}
}
function getPagoDocumentosRefIngreso($uuidPago,$uuidRecibe){
	global $conexion;
	$queryDocs = "SELECT tipocambio,monto,numparcialidad FROM pago_documentos_ref
	WHERE doce_uuid='$uuidPago' and uuidcfdirelacionado='$uuidRecibe'";
	if(!$rTmp = mysqli_query($conexion->CONEXION,$queryDocs)){
		?><script>$j_7.messager.alert("Error","Ocurrio un error al consultar el pago.<br/>Intente nuevamente.","error");</script><?exit;
	}
	if(mysqli_num_rows($rTmp) > 0){
		$tmp = mysqli_fetch_assoc($rTmp);
		return $tmp;
	}else{
		return 0;
	}
}

function getTotalPagoAlIngreso($uuid){
	global $conexion;
	//TRAIGO LA SUMA TOTAL PAGADA AL DOCUMENTO DE INGRESO
	$qIngresoPagado="select sum(monto) as montoPagadoTotalIngreso from pago_documentos_ref
	where uuidcfdirelacionado='$uuid'";
	if(!$rIngresoPagado = mysqli_query($conexion->CONEXION,$qIngresoPagado)){
		?><script>$j_7.messager.alert("Error","Ocurrio un error al consultar el monto total compensado del egreso.<br/>Intente nuevamente.","error");</script><?exit;
	}
	if(mysqli_num_rows($rIngresoPagado) > 0){
		$tIngresoPagado = mysqli_fetch_assoc($rIngresoPagado);
		return $tIngresoPagado["montoPagadoTotalIngreso"];
	}else{
		return 0.00;
	}
}
function getDatosIngreso($uuid){
	global $conexion;
	//TRAIGO LOS DATOS DEL DOCUMENTO DE INGRESO.
	$qIngreso = "select nombreemi,serie,folio,uuid,total,tipomoneda,tipocambio from recibedoce where uuid='$uuid'";
	if(!$rIngreso = mysqli_query($conexion->CONEXION,$qIngreso)){
		?><script>$j_7.messager.alert("Error","Ocurrio un error al consultar el documento de ingreso.<br/>Intente nuevamente.","error");</script><?exit;
	}
	if(mysqli_num_rows($rIngreso) > 0){
		$tIngreso = mysqli_fetch_assoc($rIngreso);
		return $tIngreso;
	}else{?><script>$j_7.messager.alert("Información.","No se encontro el documento de ingreso.<br/>Intente nuevamente.","info");</script><?exit;}
}
function getTotalCompensadoAlIngreso($uuid){
	global $conexion;
	$qIngresoCompensado="select sum(monto_enmoneda_padre) as TotalCompensadoIngreso from recibedoce_compensacion
						where uuid_padre='$uuid'";
	if(!$rIngresoCompensado = mysqli_query($conexion->CONEXION,$qIngresoCompensado)){
		?><script>$j_7.messager.alert("Error","Ocurrio un error al consultar el monto total compensado del egreso.<br/>Intente nuevamente.","error");</script><?exit;
	}
	$suma=0.00;
	if(mysqli_num_rows($rIngresoCompensado) > 0){
		$tIngresoCompensado = mysqli_fetch_assoc($rIngresoCompensado);
		return $tIngresoCompensado["TotalCompensadoIngreso"];
	}
	return 0.00;
}

function getPagoTotalRelacionado($uuidPago){
	global $conexion;
	$queryDocs = "SELECT sum(monto) as montoTotalPago FROM pago_documentos_ref
	WHERE doce_uuid='$uuidPago'";
	if(!$rTmp = mysqli_query($conexion->CONEXION,$queryDocs)){
		?><script>$j_7.messager.alert("Error","Ocurrio un error al consultar el pago.<br/>Intente nuevamente.","error");</script><?exit;
	}
	if(mysqli_num_rows($rTmp) > 0){
		$tmp = mysqli_fetch_assoc($rTmp);
		return $tmp["montoTotalPago"];
	}else{
		return 0;
	}
}
?>











