Generate multiple records in MySQL

0

In MySQL I have two tables:

  • CLIENTS

    | codigo-cliente | nome | grupo | valor |
    |----------------|------|-------|-------|
    
  • FINANCIAL

    | codigo-cliente | codigo-boleto | grupo | valor |
    |----------------|---------------|-------|-------|
    

On the generate tickets page, I have a field where I select which group of customers I want to generate the tickets for.

When clicking to generate, I need the system to generate in the FINANCIAL table a ticket for each customer of the CLIENT table that is part of the selected group.

Example:

I selected group 10 and had it generated

CLIENTS Table

| codigo-cliente | nome   | grupo | valor |
|----------------|--------|-------|-------|
| 1              | teste1 | 10    | 100   |
| 2              | teste2 | 12    | 60    |
| 3              | teste3 | 10    | 30    |

In the FINANCIAL table you will register a ticket for each customer that is in group 10.

FINANCIAL Table

| codigo-cliente | codigo-boleto | grupo | valor |
|----------------|---------------|-------|-------|
| 1              | 200           | 10    | 100   |
| 3              | 201           | 10    | 30    |
    
asked by anonymous 02.03.2018 / 04:16

2 answers

1

Since we have the post we receive from the form, with grupo , we will do the following:

// Seleciono tudo que envolve o grupo = 10.
$this->db->where('grupo', $this->input->post('grupo'));
$consulta = $this->db->get('clientes')->result();

// Com base nisso, faço o laço de repetição, para que eu insira no banco de dados, todos os boletos gerados com grupo = 10
foreach($consulta as $valor){
    $dados['codigo-boleto'] = '200';
    $dados['grupo'] = $valor->grupo;
    $dados['codigo-cliente'] = $valor->codigo-cliente;
    $dados['valor'] = '100'; 
    $this->db->insert('financeiro', $dados);
}

In this way you enter all the tickets, according to the selected group. However, it should be noted that you do not have any information coming via post, of the value and nor of the ticket code.

    
03.03.2018 / 13:17
0

Here is the code used:

VIEW It has the form and ajax code:

<script>
$("#frmCobrancas").submit(function(e){
    e.preventDefault();
    var base_url = "<?php echo base_url() ?>";

    $.ajax({
        url : base_url+'financeiro/gerar_cobrancas',
        type: 'POST',
        dataType: 'html',
        data: {
            'rota_cobranca': $('#cRotacobranca').val(),
            'data_emissao': $('#cDataemissao').val(),
            'mes_referencia': $('#cMesreferencia').val(),
            'data_vencimento': $('#cDatavencimento').val()

        },success:function(data){
            console.log(data);
        }

    });
});

CONTROLLER

public function gerar_cobrancas() {
    if ($this->input->post('rota_cobranca') == ""){
        echo 0;
    }else{

        $data = array(
            'rota_cobranca'     => $this->input->post('rota_cobranca'),
            'data_emissao'      => FormatarDataUS($this->input->post('data_emissao')),
            'mes_referencia'    => FormatarDataUS($this->input->post('mes_referencia')),
            'data_vencimento'   => FormatarDataUS($this->input->post('data_vencimento')),               
        );

        $query = $this->financeiro_model->set_GerarCobrancas($data);

    }
}

MODEL

public function set_GerarCobrancas($data){

    $consulta = $this->db
            ->where('rota_cobranca', $data['rota_cobranca'])
            ->where('vinculo', 'A')
            ->get('tb_clientes')->result();


    // Com base nisso, faço o laço de repetição, para que eu insira no banco de dados, todos os boletos gerados com grupo = 10
    foreach($consulta as $valor){

        $boleto['codigo-boleto'] = ''; //AUTO_INCREMENT
        $boleto['codigo_cliente'] = $valor->matricula;
        $boleto['nosso_numero'] = '0'; //SEMPRE SERÁ "0"
        $boleto['mes_referencia'] = $data['mes_referencia']; 
        $boleto['data_emissao'] = $data['data_emissao']; 
        $boleto['data_vencimento'] = $data['data_vencimento']; 
        $boleto['data_pagamento'] = "0000-00-00"; //SEMPRE SERÁ 0000-00-00
        $boleto['valor'] = $valor->mensalidade;
        $boleto['valor_pago'] = 0; //SEMPRE SERÁ "0"
        $boleto['situacao'] = 0; //SEMPRE SERÁ "0"
        $boleto['rota_cobranca'] = $valor->rota_cobranca;
        $this->db->insert('tb_historico_financeiro', $boleto);
    }

    return;
}
    
07.03.2018 / 19:59