Jump to content
Simioni

Vagas disponíveis para o dia fullcalendar [RESOLVIDO]

Recommended Posts

Olá, estou com um dificuldade, estou bolando um calendário de reserva, eu tenho as datas fixas, por exemplo, 07/09/2019, 14/09/2019, 15/09/2019 e cada dia tem 30 vagas disponíveis, o que estou apanhado é em mostrar somente um vez no calendário.
Eu tenho as tabelas:
beneficios_calendario

beneficios_calendario.JPG.ef849a60cd9c69de193e0e5fa71e788a.JPG

 

e a beneficios_reserva:
beneficios_reserva.JPG.ecf4d8c8bb29ce6279d79ee4847b959e.JPG

 

Meu model:
 

public function vagas_disponiveis() 
{
    $this->db->select('*');
    $this->db->from('beneficios_calendario');
    $query = $this->db->get();
    $dias = $query->result_array();

    $this->db->select('count(*) as cnt, data_reserva');
    $this->db->from('beneficios_reserva');
    $this->db->group_by('data_reserva');
    $query = $this->db->get();
    $reservas = $query->result_array();

    $data = array();

    foreach ($dias as $dia) {
        foreach ($reservas as $reserva) {
            if ($reserva['data_reserva'] == $dia['start'])
            {
                $vagas =  $dia['title'] - $reserva['cnt'];
                $data[] = array(
                    'title' => $vagas,
                    'start' => $dia['start'],
                    'color' => $dia['color'],
                );
            }
        }
        $data[] = array(
            'title' => $dia['title'],
            'start' => $dia['start'],
            'color' => $dia['color'],
        );
    }

    echo json_encode($data);        
}

luiz.JPG.287687b255d497c31e42a68bb68e2fe1.JPG

 

 

Obrigado.

Share this post


Link to post
Share on other sites

Solução: fiz um foreach contando a data de reserva e depois fiz um update na tabela calendário e depois eu pego todos da tabela calendário o mostro os dados.

 

public function vagas_disponiveis() 
	{

		$this->db->select('count(*) as cnt, data_reserva');
		$this->db->from('beneficios_reserva');
		$this->db->group_by('data_reserva');
		$query = $this->db->get();
		$reservas = $query->result_array();

		if (!empty($reservas))
		{
			foreach ($reservas as $reserva) 
			{
				$title = 30 - $reserva['cnt'];
				$new = array(
					'title' => $title,
				);

				$this->db->where('start', $reserva['data_reserva']);
				$this->db->set($new);
				$atual = $this->db->update('beneficios_calendario', $new);
			}	
		}

		$this->db->select('*');
		$this->db->from('beneficios_calendario');
		$query = $this->db->get();
		$dias = $query->result_array();

		$data = array();

		foreach ($dias as $dia) {
			$data[] = array(
				'title' => $dia['title'],
				'start' => $dia['start'],
				'color' => $dia['color']
			);
		}

		echo json_encode($data);  	    
	}

não sei se assim é a melhor forma, mas funcionou

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By realisacnovaes
      Sou novo no fórum e não sei se postei no lugar certo, mas desde já peço desculpas.
       
      Eu estou com um projeto de desenvolver um chat online, porém preciso de algumas ajudas e pago pelo serviço.
       
      já tenho um chat em php (modelo livre construido e disponibilizado de graça no youtube) e gostaria de fazer algumas modificações tais como:
      - Chat em grupo
      - Deletar mensagem para mim/todos
      - ligação por áudio e vídeo
       
      outras coisas adicionais.
      alguém poderia me ajudar ou alguém disponível para eu contratar?
    • By marceloDiegues
      Olá, amigos.
      Por favor,  me ajude com a seguintes perguntas.
       
      Qual a complexidade de um projeto desse?
      Qual o preçp de um projeto desse tipo?
       
      Quero contratar algum profissional para criar um site que tenha as seguintes funcionabilidades:
       
      1- Cadastro de usuário;
      2- Login e senha;
      3- O site seria muito parecido com o www.qconcursos.com, o usuário resolveria questões online.
      Contudo, haveria a possibilidade de criar salas tipo aqueles bate-papo da  UOL.
      Então, o usuário criaria salas de estudos, em que , resolveria questões e conseguiria se comunicar por chat com usuários que estejam na mesma sala.
       
      Exemplo em anexo:
       
       
       
       

    • By rvamecca
      Eu tenho um servidor que roda os PHP da versão 5.6 até a 8.0 com vários sites. Utilizo a versão FPM só que pesquisei na internet inteira e não consegui fazer rodar os arquivos customizados php.ini/.user.ini nos diretórios dos domínios. Chequei via phpinfo() e não carrega o arquivo customizado de configuração.
       
      Alguém pode me dar um help?
       
      Servidor Ubuntu 18.04 com Apache e as versões PHP 5.6, 7.0, 7.2, 7.4, 8.0 em FPM
    • By violin101
      Caros amigos, saudações...
       
      Fiz várias pesquisa, mas não consegui entender como devo fazer corretamente.
       
      Tenho um Cadastro de Produto/Clientes/etc.
       
      Gostaria de após clicar no Button ADICIONAR ou GRAVAR, quero mostrar na tela a seguinte mensagem:
      msg:
      Aguarde Processando...
       
      obs.: em alguns sistema até parece uma MODAL, com barra de progresso.
       
      Para impedir que o usuário fica Clicando nos Buttons.
       
      Alguém poderia me auxiliar de como devo fazer isso ?
       
      Grato,
       
      Cesar
    • By alysson122010
      Galera estou começando a trabalhar com datatables porem tenho uma dificuldade pq tipo até 200 registros por pagina é aceitavel mas penso quando tiver 2000 registro carregar tudo numa pagina so da errado pq é muitos dados e pode travar tudo.
      Como posso fazer para listar com limite por pagina ou alguma maneira para poder colocar varios dados sem travar.
       
      estou usando assim:
      <script type="text/javascript">        $(document).ready(function() {             $('#example').DataTable({         "order": [[ 0, "desc" ]],         "language": {             "url": "//cdn.datatables.net/plug-ins/1.10.21/i18n/Portuguese-Brasil.json"         }     });         } );        </script> <table id="example" class="table table-striped table-bordered" style="width:100%">         <thead>             <tr>                 <th>Name</th>                 <th>Position</th>                 <th>Office</th>                 <th>Age</th>                 <th>Start date</th>                 <th>Salary</th>             </tr>         </thead>         <tbody>             <tr>                 <td>Tiger Nixon</td>                 <td>System Architect</td>                 <td>Edinburgh</td>                 <td>61</td>                 <td>2011/04/25</td>                 <td>$320,800</td>             </tr>             <tr>                 <td>Garrett Winters</td>                 <td>Accountant</td>                 <td>Tokyo</td>                 <td>63</td>                 <td>2011/07/25</td>                 <td>$170,750</td>             </tr>             <tr>                 <td>Ashton Cox</td>                 <td>Junior Technical Author</td>                 <td>San Francisco</td>                 <td>66</td>                 <td>2009/01/12</td>                 <td>$86,000</td>             </tr>             <tr>                 <td>Cedric Kelly</td>                 <td>Senior Javascript Developer</td>                 <td>Edinburgh</td>                 <td>22</td>                 <td>2012/03/29</td>                 <td>$433,060</td>             </tr>             <tr>                 <td>Airi Satou</td>                 <td>Accountant</td>                 <td>Tokyo</td>                 <td>33</td>                 <td>2008/11/28</td>                 <td>$162,700</td>             </tr>             <tr>                 <td>Brielle Williamson</td>                 <td>Integration Specialist</td>                 <td>New York</td>                 <td>61</td>                 <td>2012/12/02</td>                 <td>$372,000</td>             </tr>             <tr>                 <td>Herrod Chandler</td>                 <td>Sales Assistant</td>                 <td>San Francisco</td>                 <td>59</td>                 <td>2012/08/06</td>                 <td>$137,500</td>             </tr>             <tr>                 <td>Rhona Davidson</td>                 <td>Integration Specialist</td>                 <td>Tokyo</td>                 <td>55</td>                 <td>2010/10/14</td>                 <td>$327,900</td>             </tr>             <tr>                 <td>Colleen Hurst</td>                 <td>Javascript Developer</td>                 <td>San Francisco</td>                 <td>39</td>                 <td>2009/09/15</td>                 <td>$205,500</td>             </tr>         </tbody>         <tfoot>             <tr>                 <th>Name</th>                 <th>Position</th>                 <th>Office</th>                 <th>Age</th>                 <th>Start date</th>                 <th>Salary</th>             </tr>         </tfoot>     </table> <script type="text/javascript" language="javascript" src="https://cdn.datatables.net/1.10.22/js/jquery.dataTables.min.js"></script> <script type="text/javascript" language="javascript" src="https://cdn.datatables.net/1.10.22/js/dataTables.bootstrap4.min.js"></script>  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.