<?php
	//---------------------------------------------------------------------------------------------------------
	// 27/Agosto/2019
	// Botones de finalizar compra, teniendo en cuenta que aquí se meteran los módulos de pago
	//---------------------------------------------------------------------------------------------------------
	//Vamos a comprobar aquí mismo que todo esté correcto:
	$cart = CabeceraCesta::getCart();
	$estado = $cart->readyToFinish();
	$id_txt_finalizar = RemoteRequest::generateRandomString(6);
	$txtFinalizar = '';
	$clase_msg = 'alert-danger';
	switch ($estado){
		case 1:
			$txtFinalizar = traducir('Debes seleccionar, al menos, un tipo de envío.');
		break;
		case 2:
			$txtFinalizar = traducir('Debes seleccionar, al menos, una forma de pago.');
		break;
		case 3:
			$txtFinalizar = traducir('No has indicado ni tipo de envío ni forma de pago para este pedido.');
		break;
		case 4:
			$txtFinalizar = traducir('Si no nos indicas quien eres, no podemos realizar la venta.');
		break;
		case 5:
			$txtFinalizar = traducir('Añade algún producto a la cesta para finalizar el pedido.');
		break;
		case 6:
			$txtFinalizar = traducir('Por favor, revisa tus datos de envío.');
		break;
		/*case 200:
			$txtFinalizar = traducir('Finalizando compra. Espera por favor.');
			$clase_msg='alert-success';
		break;
		case 201:
			$txtFinalizar = traducir('Vamos a redirigirte a la pasarela. Espera por favor.');
			$clase_msg='alert-success';
		break;*/
	}
?>
<div class="finalizar_compra col-xs-12">
	<div class="loading clase_estado_cesta" style="display:none;" ><img alt="loading" src="<?=Shop::$configuracion->url. _WS_THEMES_DIR_ . _WS_THEME_DIR_ . _WS_THEME_HTML_DIR_ . 'images/loading.gif';?>"/></div>
<?php
	if ($txtFinalizar != ''){
?>
	<div class="clase_estado_cesta texto_estado"> <p id="<?=$id_txt_finalizar;?>" class="alert <?=$clase_msg;?>"><?=$txtFinalizar;?></p></div>
<?php
	}
?>
	<div class="modulo_finalizar_compra">
<?php
	//Ahora cargamos la pasarela que corresponda si hay forma de pago y la cesta está lista:
	//echo 'antes';
	if ( ($estado >= 200) && ($cart->objeto_forma_pago != NULL) ){
		//echo'despues';
		/*echo '<pre>';
		echo var_dump($cart->objeto_forma_pago);
		echo '</pre>';*/
		$nombre_modulo = $cart->objeto_forma_pago->getModuloPagoName();
		if ($nombre_modulo != ''){
			$modulo = Module::$nombre_modulo();
			echo($modulo);
		}else{
			//Llegado a este punto, si el tipo de envío es sin pago, vamos a cargar el "pago tienda" si tenemos el módulo, claro
			if ( ($cart->objeto_tipo_envio != NULL) && ($cart->objeto_tipo_envio->sin_pago) ){
				$modulo = Module::pago_tienda();
				echo($modulo);
			}
			//echo("<pre>Módulo inexistente $nombre_modulo</pre>");
		}
	}
?>
	</div>
</div>
<?php	

//Voy a quitar este contenido por ahora
if (false){
	?>
<div class="finalizar_compra col-xs-12">
	<?php ob_start(); ?>
	<script>
	/* Lo primero es limpiar el campo de texto: */
	$('#estado_cesta').html('');
	/* Ocultamos el botón de finalizar */
	$('.boton_finalizar').hide();
	WS_data_update(
		'CabeceraCesta',
		'readyToFinish',
		{},
		'*=\'redsys_pasarela\'|',
		function(data){
			/*console.log(data);*/
			var estado = JSON.parse(data.response);
			estado = estado.estado;
			var texto = '<?=traducir('Error al tratar de finalizar la cesta');?>';
			var clase_msg='alert-danger';
			switch (estado){
				case 1:
					texto = '<?=traducir('Debes seleccionar, al menos, un tipo de envío.');?>';
				break;
				case 2:
					texto = '<?=traducir('Debes seleccionar, al menos, una forma de pago.');?>';
				break;
				case 3:
					texto = '<?=traducir('No has indicado ni tipo de envío ni forma de pago para este pedido.');?>';
				break;
				case 4:
					texto = '<?=traducir('Si no nos indicas quien eres, no podemos realizar la venta.');?>';
				break;
				case 5:
					texto = '<?=traducir('Añade algún producto a la cesta para finalizar el pedido.');?>';
				break;
				case 6:
					texto = '<?=traducir('Por favor, revisa tus datos de envío.');?>';
				break;
				case 200:
					texto = '<?=traducir('Finalizando compra. Espera por favor.');?>';
					clase_msg='alert-success';
				break;
				case 201:
					texto = '<?=traducir('Vamos a redirigirte a la pasarela. Espera por favor.');?>';
					clase_msg='alert-success';
				break;
			}
			$('#estado_cesta').removeClass('alert-danger');
			$('#estado_cesta').removeClass('alert-success');
			$('#estado_cesta').addClass(clase_msg);
			$('#estado_cesta').show();
			$('#estado_cesta').html(texto);
			if (estado < 200){	/*Si el estado no es correcto volvemos a mostrar el botón */
				$('.boton_finalizar').show();
			}else if (estado == 200){
				/*Vamos a finalizar el pedido porque todo está ok*/
				/*Finalizamos la compra:*/
				WS_data_update(
					'CabeceraCesta',
					'finish',
					{},
					'',
					function(data){
						/* console.log(data); */
						var objeto_pedido = JSON.parse(data.response);
						objeto_pedido = objeto_pedido.objeto_pedido;
						var numero_pedido = objeto_pedido.numero_pedido;
						window.location.href = '<?=Shop::$configuracion->url . 'finalizar_compra/';?>' + numero_pedido;
					}
				);
			}else if (estado == 201){ /*El pedido se paga por pasarela, no hacemos nada y el módulo  correspondiente actuará*/ 
				/* Mostramos la pasarela de pago */
				$('#pasarela_bancaria .form_pasarela').submit();
			}
		}
	);
	</script>
	<?php
	$script = ob_get_clean();
	$script = WSMinificator::removeTag(array('<script>', '</script>'), $script);
	$script = WSMinificator::simpleClean($script);
	?>
	<div class="clase_estado_cesta"> <p id="estado_cesta" class="alert "></p></div>
	<div class="boton_finalizar" >
		<button type="button" name="continuar" class="boton btn" onclick="<?=$script;?>">
			<span><?=traducir('Finalizar compra');?></span>
		</button>
	</div>
	<div id="pasarela_bancaria">
	<?php
	//Cargamos la pasarela de redsys, por ahora nada
	$redsys_object = Module::Redsys_pasarela();
	echo($redsys_object);
	?>
	</div>
	<div id="paypal">
	<?php
	//Cargamos la pasarela de redsys, por ahora nada
	$paypal_object = Module::PayPal();
	echo($paypal_object);
	?>
	</div>
</div>

<?php
}