<?php if (Session::get("tipo_usuario") != "1"){ show_403();} ?>
<?php import_file(DIR_TEMPLATES."header.php", ["title" => "Cadastrar Usuário", "active_page" => "usuarios"]); ?>
<?php import_file(DIR_MODELS."Model.class.php"); ?>

<h4 class="mb-3">
	<i class="fa-regular fa-plus"></i> Cadastrar Usuário
</h4>

<div class="content-box">
	<form id="form-cadastro-usuario">
		<div class="form-row">
			<div class="col-xl-4 col-lg-4 col-md-6 col-sm-12">
				<div class="form-group">
					<label for="nome-usuario">Nome<span class="text-danger">*</span></label>
					<input type="text" name="nome_usuario" id="nome-usuario" class="form-control" maxlength="120" required>
				</div>
			</div>
			<div class="col-xl-4 col-lg-4 col-md-6 col-sm-12">
				<div class="form-group">
					<label for="cpf-usuario">CPF/CNPJ<span class="text-danger">*</span></label>
					<input type="text" name="cpf_usuario" id="cpf-usuario" class="form-control" required>
				</div>
			</div>
			<div class="col-xl-4 col-lg-4 col-md-6 col-sm-12">
				<div class="form-group">
					<label for="telefone-usuario">Telefone<span class="text-danger">*</span></label>
					<input type="text" name="telefone_usuario" id="telefone-usuario" class="form-control" required>
				</div>
			</div>
		</div>

		<div class="form-row">
			<div class="col-xl-6 col-lg-6 col-md-6 col-sm-12">
				<div class="form-group">
					<label for="data-nascimento-usuario">Data Nascimento<span class="text-danger">*</span></label>
					<input type="text" name="data_nascimento_usuario" id="data-nascimento-usuario" class="form-control" required>
				</div>
			</div>
			<div class="col-xl-6 col-lg-6 col-md-6 col-sm-12">
				<div class="form-group">
					<label for="sexo-usuario">Sexo<span class="text-danger">*</span></label>
					<select name="sexo_usuario" id="sexo-usuario" class="form-control" required>
						<option value="">Selecione um...</option>
						<option value="M">Masculino</option>
						<option value="F">Feminino</option>
					</select>
				</div>
			</div>
		</div>

		<div class="form-row">
			<div class="col-xl-6 col-lg-6 col-md-6 col-sm-12">
				<div class="form-group">
					<label for="id-estado">Estado<span class="text-danger">*</span></label>
					<select name="id_estado" id="id-estado" class="form-control" required>
						<option value="">Selecione um...</option>

						<?php 

							$model = new Model();

							$estados = $model->query("SELECT * FROM estado ORDER BY nome_estado ASC");

							foreach ($estados->fetchAll() as $i):

						?>
							<option value="<?php echo $i->id_estado; ?>"><?php echo $i->nome_estado; ?></option>
						<?php endforeach; ?>
					</select>
				</div>
			</div>

			<div class="col-xl-6 col-lg-6 col-md-6 col-sm-12">
				<div class="form-group">
					<label for="id-cidade">Cidade<span class="text-danger">*</span></label>
					<select name="id_cidade" id="id-cidade" class="form-control" required>
						<option value="">Selecione um...</option>
					</select>
				</div>
			</div>
		</div>

		<div class="form-row">
			<div class="col-xl-4 col-lg-4 col-md-6 col-sm-12">
				<div class="form-group">
					<label for="tipo-usuario">Tipo<span class="text-danger">*</span></label>
					<select name="tipo_usuario" id="tipo-usuario" class="form-control" required>
						<option value="">Selecione um...</option>
						<?php

							$result = $model->query("
								SELECT * FROM tipo_usuario 
								WHERE 
									id_tipo_usuario NOT IN(1, 2) AND 
									status_tipo_usuario = 'S' 
								ORDER BY 
									tipo_usuario ASC
							");

							foreach ($result->fetchAll() as $value):

						?>
							<option value="<?php echo encrypt_encode($value->id_tipo_usuario); ?>"><?php echo $value->tipo_usuario; ?></option>
						<?php endforeach; ?>
					</select>
				</div>
			</div>
			<div class="col-xl-4 col-lg-4 col-md-6 col-sm-12">
				<div class="form-group">
					<label for="email-usuario">E-mail<span class="text-danger">*</span></label>
					<input type="email" name="email_usuario" id="email-usuario" class="form-control" maxlength="255" required>
				</div>
			</div>
			<div class="col-xl-4 col-lg-4 col-md-6 col-sm-12">
				<div class="form-group">
					<label for="senha-usuario">Senha<span class="text-danger">*</span></label>
					<div class="input-group">
						<input type="password" name="senha_usuario" id="senha-usuario" class="form-control" minlength="6" maxlength="32" required>
						<div class="input-group-append">
							<button type="button" id="btn-senha" class="btn btn-white">
								<i class="fa-regular fa-eye-slash"></i>
							</button>
						</div>
					</div>
				</div>	
			</div>
		</div>

		<button type="submit" class="btn btn-primary">
			<i class="fa-regular fa-save"></i> Salvar
		</button>

		<a href="<?php echo show_link("/usuarios/"); ?>" class="btn btn-secondary">
			<i class="fa-regular fa-arrow-left"></i> Voltar
		</a>
	</form>
</div>

<script>
	$("#cpf-usuario").mask("000.000.000-00", {
		onKeyPress : function(cpfcnpj, e, field, options) {
			const masks = ["000.000.000-000", "00.000.000/0000-00"];
			const mask = (cpfcnpj.length > 14) ? masks[1] : masks[0];
			$("#cpf-usuario").mask(mask, options);
		}
	});

	$("#data-nascimento-usuario").mask("00/00/0000");
	$("#telefone-usuario").mask("(00) 00000-0000");

	$("#id-estado").change(function(){
		var id = $(this).val();

		$(".option-cidade").remove();

		if ($(this).val() != "") {
			$.ajax({
				type: "POST",
				data: {id_estado: id},
				url: "<?php echo show_link("/obter-cidades/"); ?>",
				async: true
			}).then(function(response){
				var result = $.parseJSON(response);

				if (result.status == true) {
					var html = "";

					$.each(result.dados, function(i, data){
						html += '<option value="'+data.id_cidade+'" class="option-cidade">'+data.nome_cidade+'</option>';
						console.log(data);
					});

					$("#id-cidade").append(html);
				}
			}, function(error){
				console.log("Erro: "+error);
			});
		}
	});

	$("#btn-senha").click(function(){
		if ($("#senha-usuario").attr("type") == "password") {
			$("#senha-usuario").attr("type", "text");
			$(this).html('<i class="fa-regular fa-eye"></i>');
		}
		else{
			$("#senha-usuario").attr("type", "password");
			$(this).html('<i class="fa-regular fa-eye-slash"></i>');
		}
	});

	$("#form-cadastro-usuario").submit(function(event){
		event.preventDefault();
		var form = $(this);
		$.ajax({
			type: "POST",
			data: form.serialize(),
			url: "<?php echo show_link("/cadastrar-usuario-interno/"); ?>",
			async: true
		}).then(function(response){
			var result = $.parseJSON(response);
			if (result.status == true) {
				$.toast({
					heading: "Aviso",
					text: "Usuário Cadastrados com Sucesso!",
					icon: "success",
					loader: true
				});

				form.each(function(){
					this.reset();
				});
			}
			else if (result.status == false && result.motivo == "cpf") {
				$("#cpf-usuario").addClass("is-warning");
				$.toast({
					heading: "Aviso",
					text: "Esse CPF ou CNPJ já foi cadastrado no sistema!",
					icon: "warning",
					loader: true
				});
				$("#cpf-usuario").keyup(function(){
					$(this).removeClass("is-warning");
					$(this).off("keyup");
				});
			}
			else if (result.status == false && result.motivo == "cpf_false") {
				$("#cpf-usuario").addClass("is-warning");
				$.toast({
					heading: "Aviso",
					text: "CPF ou CNPJ Inválido!",
					icon: "warning",
					loader: true
				});
				$("#cpf-usuario").keyup(function(){
					$(this).removeClass("is-warning");
					$(this).off("keyup");
				});
			}
			else if (result.status == false && result.motivo == "data_false") {
				$("#data-nascimento-usuario").addClass("is-warning");
				$.toast({
					heading: "Aviso",
					text: "Data de Nascimento Inválida!",
					icon: "warning",
					loader: true
				});
				$("#data-nascimento-usuario").keyup(function(){
					$(this).removeClass("is-warning");
					$(this).off("keyup");
				});
			}
			else if (result.status == false && result.motivo == "email") {
				$("#email-usuario").addClass("is-warning");
				$.toast({
					heading: "Aviso",
					text: "Esse e-mail já foi cadastrado no sistema!",
					icon: "warning",
					loader: true
				});
				$("#email-usuario").keyup(function(){
					$(this).removeClass("is-warning");
					$(this).off("keyup");
				});
			}
			else{
				$.toast({
					heading: "Aviso",
					text: "Erro ao Cadastrar o Usuário!",
					icon: "error",
					loader: true
				});
			}
		}, function(error){
			console.log("Erro: "+error);
		});
	});
</script>

<?php import_file(DIR_TEMPLATES."footer.php"); ?>