Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Orique

Filtro de busca em CAKEPHP 2.0

Recommended Posts

Fala galera, estou tendo um erro no meu filtro ['Filtro']['uf'] de busca e não sei como resolver.

Meu controller tem a seguinte verificação:

 $this->loadModel('User');
    $this->loadModel('Conta');
    $this->loadModel('Unidade');
    $this->loadModel('Periodicidade');
    $this->loadModel('AgendamentoFinanceiro');
    $this->loadModel('Entidade');
    $this->loadModel('EntidadesEndereco');

    $arrayConditions    = array();
    $arrayContas        = array();
    $total_a_receber    = 0;

    $arrayConditions['AND']['AgendamentoFinanceiroParcela.situacao'] = 'A'; // apenas os agendados
    $arrayConditions['AND']['AgendamentoFinanceiroParcela.tipo <>'] = 'S'; // diferente de saídas

    //se foi passado um parametro informando a agenda financeira
    if (!empty($agendamento_financeiro_id) && $agendamento_financeiro_id > 0) {
        //gera as proximas parcelas do agendamento informado:
        $this->AgendamentoFinanceiro->gerar_parcelas($agendamento_financeiro_id);
        //adiciona esta condição no filtro
        $arrayConditions['AND']['AgendamentoFinanceiroParcela.agendafinanceira_id'] = $agendamento_financeiro_id;
    }

    if(isset($this->params['named']['todos'])) {
        $this->data = array();
        $this->Session->delete('AgendamentoFinanceiroParcelasReceber');
    }
    if (!empty($this->data)) { 
        if (!empty($this->data['Filtro']['unidade_id'])) {
            $arrayConditions['OR']['ContaOrigem.unidade_id'] = $this->data['Filtro']['unidade_id'];
            $arrayConditions['OR']['ContaDestino.unidade_id'] = $this->data['Filtro']['unidade_id'];
            $arrayContas = $this->Conta->find(
                'list', array(
                'conditions' => array(
                    'unidade_id' => $this->data['Filtro']['unidade_id']
                ),
                'fields' => array('id', 'nome'),
                'recursive' => -1
            ));
        }
        if(isset($this->data['Filtro']['conta_id']) && !empty($this->data['Filtro']['conta_id'])){
            $arrayConditions['OR']['AgendamentoFinanceiro.conta_origem_id']     = $this->data['Filtro']['conta_id'];
            $arrayConditions['OR']['AgendamentoFinanceiro.conta_destino_id']    = $this->data['Filtro']['conta_id'];
            unset($arrayConditions['OR']['ContaOrigem.unidade_id']);
            unset($arrayConditions['OR']['ContaDestino.unidade_id']);
        }
        if (isset($this->data['Filtro']['entidade_id']) && !empty($this->data['Filtro']['entidade_id'])){ 
            $arrayConditions['AND']['AgendamentoFinanceiro.entidade_id'] = $this->data['Filtro']['entidade_id'];
        }
        if (isset($this->data['Filtro']['uf']) && !empty($this->data['Filtro']['uf'])){ 
            $arrayConditions['AND']['EntidadesEndereco.uf'] = $this->data['Filtro']['uf'];
        }
        if(isset($this->data['Filtro']['situacao']) && !empty($this->data['Filtro']['situacao'])){
            $arrayConditions['AND']['AgendamentoFinanceiroParcela.situacao'] = $this->data['Filtro']['situacao'];
            if($this->data['Filtro']['situacao'] == 'V'){ // se foi escolhido 'vencido':
                $arrayConditions['AND']['AgendamentoFinanceiroParcela.situacao'] = 'A';
                $arrayConditions['AND']['AgendamentoFinanceiroParcela.data_vencimento <'] = date('Y-m-d');
            }
        }
        if (isset($this->data['Filtro']['data_inicial']) && !empty($this->data['Filtro']['data_inicial'])){
            $arrayConditions['AND']['AgendamentoFinanceiroParcela.data_vencimento >='] = $this->Mswi->formatarData($this->data['Filtro']['data_inicial']);
        }
        if (isset($this->data['Filtro']['data_final']) && !empty($this->data['Filtro']['data_final'])){
            $arrayConditions['AND']['AgendamentoFinanceiroParcela.data_vencimento <='] = $this->Mswi->formatarData($this->data['Filtro']['data_final']);
        }
    }

    $params = $this->Mswi->autoPaginate($this->params, 'AgendamentoFinanceiroParcela.data_vencimento', 'ASC', $arrayConditions);

    $this->AgendamentoFinanceiroParcela->bindModel(array(
        'hasMany' => array(
            'Anexo' => array(
                'className' => 'Anexo',
                'foreignKey' => 'agendamento_parcela_id'
            )
        )
    ));

Ai tenho as condições e debugando o código ele me passa os índices corretamente inclusive me retorna os estados de cada registro tudo certinho

 

if ((isset($this->params['ext']) && $this->params['ext'] == 'pdf') || isset($this->params['named']['excel'])) {
        $AgendamentoFinanceiroParcelasReceber = $this->AgendamentoFinanceiroParcela->find('all', 
            array(
                'conditions'    => $params['conditions'],
                'order'         => array($params['sort'] => $params['direction']),
                'contain'       => array(
                    'AgendamentoFinanceiro' => array(
                        'CentroDeCusto' => array(
                            'fields' => array('id', 'numero', 'nome', 'situacao')
                        ),
                        'fields' => array('id', 'tipo', 'situacao', 'numero_parcelas', 'periodicidade_id'),
                    ),
                    'Entidade' => array(
                        'fields' => array('id', 'nome_principal', 'nome_secundario', 'situacao')
                    ),
                    'ContaDestino' => array(
                        'fields' => array('id', 'nome', 'contatipo_id', 'situacao')
                    ),
                    'ContaOrigem' => array(
                        'fields' => array('id', 'nome', 'contatipo_id', 'situacao')
                    ),
                    'PlanoDeConta' => array(
                        'fields' => array('id', 'numero', 'nome', 'situacao')
                    ),
                    'LancamentoFinanceiro' => array(
                        'fields' => array('id', 'agendamento_parcela_id', 'valor', 'tipo', 'situacao', 'observacoes'),
                        'CentroDeCusto' => array(
                            'fields' => array('id', 'numero', 'nome', 'situacao')
                        ),
                        'Entidade' => array(
                            'fields' => array('id', 'nome_principal', 'nome_secundario', 'situacao')
                        ),
                        'ContaDestino' => array(
                            'fields' => array('id', 'nome', 'contatipo_id', 'situacao')
                        ),
                        'ContaOrigem' => array(
                            'fields' => array('id', 'nome', 'contatipo_id', 'situacao')
                        ),
                        'PlanoDeConta' => array(
                            'fields' => array('id', 'numero', 'nome', 'situacao')
                        )
                    ),
                    'AgendamentoFinanceiroParcelaFatura' => array(
                        'Fatura' => array(
                            'Boleto' => array(
                                'fields' => array('id')
                            ),
                            'fields' => array('id', 'formadepagamento_id')
                        ),
                        'fields' => array('id', 'agendamento_financeiro_parcela_id', 'fatura_id')
                    ),
                    'Anexo' => array(
                        'fields' => array(
                            'id'
                        )
                    )
                ),
                'fields' => array(
                    'id',
                    'data_vencimento',
                    'valor',
                    'descricao',
                    'situacao',
                    'tipo',
                    'parcela',
                    'entidade_id',
                    'conta_origem_id',
                    'conta_destino_id',
                    'planodeconta_id',
                    'numero',
                    'observacoes',
                    'email_enviado',
                    'lancamentofinanceiro_id'
                )
            )
        );
    } else {
        $this->paginate = array(
            'conditions'    => $params['conditions'],
            'order'         => array($params['sort'] => $params['direction']),
            'page'          => $params['page'],
            'joins'         => array(
                array(
                    'table'         => 'agendamentos_financeiros_parcelas_faturas',
                    'alias'         => 'AgendamentoFinanceiroParcelaFatura',
                    'type'          => 'LEFT',
                    'conditions'    => array(
                        'AgendamentoFinanceiroParcelaFatura.agendamento_financeiro_parcela_id = AgendamentoFinanceiroParcela.id',
                    )
                ),
                array(
                    'table'         => 'agendamentos_financeiros',
                    'alias'         => 'AgendamentoFinanceiro',
                    'type'          => 'LEFT',
                    'conditions'    => array(
                        'AgendamentoFinanceiroParcela.agendafinanceira_id = AgendamentoFinanceiro.id',
                    )
                ),
                array(
                    'table'         => 'lancamentos_financeiros',
                    'alias'         => 'LancamentoFinanceiro',
                    'type'          => 'LEFT',
                    'conditions'    => array(
                        'AgendamentoFinanceiroParcela.lancamentofinanceiro_id = LancamentoFinanceiro.id',
                    )
                ),
                array(
                    'table'         => 'plano_de_contas',
                    'alias'         => 'PlanoDeConta',
                    'type'          => 'LEFT',
                    'conditions'    => array(
                        'AgendamentoFinanceiroParcela.planodeconta_id = PlanoDeConta.id',
                    )
                ),
                array(
                    'table'         => 'entidades',
                    'alias'         => 'Entidade',
                    'type'          => 'LEFT',
                    'conditions'    => array(
                        'AgendamentoFinanceiroParcela.entidade_id = Entidade.id',
                    )
                ),
                array(
                    'table'         => 'entidades_enderecos',
                    'alias'         => 'EntidadesEndereco',
                    'type'          => 'LEFT',
                    'conditions'    => array(
                        'EntidadesEndereco.entidade_id = Entidade.id' ,
                    )
                ),
                array(
                    'table'         => 'contas',
                    'alias'         => 'ContaOrigem',
                    'type'          => 'LEFT',
                    'conditions'    => array(
                        'AgendamentoFinanceiroParcela.conta_origem_id = ContaOrigem.id',
                    )
                ),
                array(
                    'table'         => 'contas',
                    'alias'         => 'ContaDestino',
                    'type'          => 'LEFT',
                    'conditions'    => array(
                        'AgendamentoFinanceiroParcela.conta_destino_id = ContaDestino.id',
                    )
                ),
                array(
                    'table'         => 'anexos',
                    'alias'         => 'Anexo',
                    'type'          => 'LEFT',
                    'conditions'    => array(
                        'AgendamentoFinanceiroParcela.id = Anexo.agendamento_parcela_id',
                    )
                ),
            ),
            'fields' => array(
                'AgendamentoFinanceiroParcela.id',
                'AgendamentoFinanceiroParcela.data_vencimento',
                'AgendamentoFinanceiroParcela.valor',
                'AgendamentoFinanceiroParcela.descricao',
                'AgendamentoFinanceiroParcela.situacao',
                'AgendamentoFinanceiroParcela.tipo',
                'AgendamentoFinanceiroParcela.parcela',
                'AgendamentoFinanceiroParcela.entidade_id',
                'AgendamentoFinanceiroParcela.conta_origem_id',
                'AgendamentoFinanceiroParcela.conta_destino_id',
                'AgendamentoFinanceiroParcela.planodeconta_id',
                'AgendamentoFinanceiroParcela.numero',
                'AgendamentoFinanceiroParcela.observacoes',
                'AgendamentoFinanceiroParcela.email_enviado',
                'AgendamentoFinanceiroParcela.lancamentofinanceiro_id',
                'AgendamentoFinanceiroParcela.modified_by',
                'AgendamentoFinanceiroParcela.modified',
                'AgendamentoFinanceiroParcelaFatura.id',
                'AgendamentoFinanceiroParcelaFatura.agendamento_financeiro_parcela_id',
                'AgendamentoFinanceiroParcelaFatura.fatura_id',
                'AgendamentoFinanceiro.id',
                'AgendamentoFinanceiro.tipo',
                'AgendamentoFinanceiro.situacao',
                'AgendamentoFinanceiro.numero_parcelas',
                'AgendamentoFinanceiro.periodicidade_id',
                'LancamentoFinanceiro.id',
                'LancamentoFinanceiro.agendamento_parcela_id',
                'LancamentoFinanceiro.valor',
                'LancamentoFinanceiro.tipo',
                'LancamentoFinanceiro.situacao',
                'PlanoDeConta.id',
                'PlanoDeConta.numero',
                'PlanoDeConta.nome',
                'PlanoDeConta.situacao',
                'Entidade.id',
                'Entidade.nome_principal',
                'Entidade.nome_secundario',
                'Entidade.situacao',
                'EntidadesEndereco.id',
                'EntidadesEndereco.cidade',
                'EntidadesEndereco.estado',
                'EntidadesEndereco.uf',
                'ContaOrigem.id',
                'ContaOrigem.nome',
                'ContaOrigem.contatipo_id',
                'ContaOrigem.situacao',
                'ContaDestino.id',
                'ContaDestino.nome',
                'ContaDestino.contatipo_id',
                'ContaDestino.situacao',
                'Anexo.id'
            ),
            'limit'     => 29,
            'recursive' => -1
        );

        try {
            $AgendamentoFinanceiroParcelasReceber = $this->paginate('AgendamentoFinanceiroParcela');
        } catch(NotFoundException $e) {
            $AgendamentoFinanceiroParcelasReceber = array();
            $this->set('agendamentos_financeiros_parcelas', $AgendamentoFinanceiroParcelasReceber);
            $this->render('contas_receber_auto_paginate', 'ajax');
            exit();
        }

    }

Passo por um array todos os estados

$uf = array(
        'AC' => 'AC',  
        'AL' => 'AL',  
        'AM' => 'AM',
        'AP' => 'AP',
        'BA' => 'BA',
        'CE' => 'CE',
        'DF' => 'DF',
        'ES' => 'ES',
        'GO' => 'GO',
        'MA' => 'MA',
        'MG' => 'MG',
        'MS' => 'MS',
        'MT' => 'MT',
        'PA' => 'PA',
        'PB' => 'PB',
        'PE' => 'PE',
        'PI' => 'PI',
        'PR' => 'PR',
        'RJ' => 'RJ',
        'RN' => 'RN',
        'RO' => 'RO',
        'RR' => 'RR',
        'RS' => 'RS',
        'SC' => 'SC',
        'SE' => 'SE',
        'SP' => 'SP',
        'TO' => 'TO',

        'recursive'     => -1
    );

Mando para view

$this->set('uf', $uf);

E na view tenho o filtro de busca

<td style="float: left;">
                        <div id="Grupo_ano" class="control-group">
                            <label class="control-label">UF</label>
                            <div class="controls">
                                <div class="input-prepend input-append">
                                    <?php 
                                    echo $this->Form->select(
                                        'Filtro.uf',
                                        $uf,
                                        array(
                                            'class' => 'chzn-select-deselect',
                                            'data-placeholder' => 'Selecione',
                                            'label' => false,
                                            'div'=> false,
                                            'style' => 'width: 110px;',
                                        )
                                    );
                                    ?>
                                </div>
                            </div>
                        </div>
                    </td>

Quando faço a consulta no filtro recebo esse erro e só com esse filtro

 

Fala galera, estou tendo um erro no meu filtro ['Filtro']['uf'] de busca e não sei como resolver.

Meu controller tem a seguinte verificação:

    $this->loadModel('User');
    $this->loadModel('Conta');
    $this->loadModel('Unidade');
    $this->loadModel('Periodicidade');
    $this->loadModel('AgendamentoFinanceiro');
    $this->loadModel('Entidade');
    $this->loadModel('EntidadesEndereco');

    $arrayConditions    = array();
    $arrayContas        = array();
    $total_a_receber    = 0;

    $arrayConditions['AND']['AgendamentoFinanceiroParcela.situacao'] = 'A'; // apenas os agendados
    $arrayConditions['AND']['AgendamentoFinanceiroParcela.tipo <>'] = 'S'; // diferente de saídas

    //se foi passado um parametro informando a agenda financeira
    if (!empty($agendamento_financeiro_id) && $agendamento_financeiro_id > 0) {
        //gera as proximas parcelas do agendamento informado:
        $this->AgendamentoFinanceiro->gerar_parcelas($agendamento_financeiro_id);
        //adiciona esta condição no filtro
        $arrayConditions['AND']['AgendamentoFinanceiroParcela.agendafinanceira_id'] = $agendamento_financeiro_id;
    }

    if(isset($this->params['named']['todos'])) {
        $this->data = array();
        $this->Session->delete('AgendamentoFinanceiroParcelasReceber');
    }
    if (!empty($this->data)) { 
        if (!empty($this->data['Filtro']['unidade_id'])) {
            $arrayConditions['OR']['ContaOrigem.unidade_id'] = $this->data['Filtro']['unidade_id'];
            $arrayConditions['OR']['ContaDestino.unidade_id'] = $this->data['Filtro']['unidade_id'];
            $arrayContas = $this->Conta->find(
                'list', array(
                'conditions' => array(
                    'unidade_id' => $this->data['Filtro']['unidade_id']
                ),
                'fields' => array('id', 'nome'),
                'recursive' => -1
            ));
        }
        if(isset($this->data['Filtro']['conta_id']) && !empty($this->data['Filtro']['conta_id'])){
            $arrayConditions['OR']['AgendamentoFinanceiro.conta_origem_id']     = $this->data['Filtro']['conta_id'];
            $arrayConditions['OR']['AgendamentoFinanceiro.conta_destino_id']    = $this->data['Filtro']['conta_id'];
            unset($arrayConditions['OR']['ContaOrigem.unidade_id']);
            unset($arrayConditions['OR']['ContaDestino.unidade_id']);
        }
        if (isset($this->data['Filtro']['entidade_id']) && !empty($this->data['Filtro']['entidade_id'])){ 
            $arrayConditions['AND']['AgendamentoFinanceiro.entidade_id'] = $this->data['Filtro']['entidade_id'];
        }
        if (isset($this->data['Filtro']['uf']) && !empty($this->data['Filtro']['uf'])){ 
            $arrayConditions['AND']['EntidadesEndereco.uf'] = $this->data['Filtro']['uf'];
        }
        if(isset($this->data['Filtro']['situacao']) && !empty($this->data['Filtro']['situacao'])){
            $arrayConditions['AND']['AgendamentoFinanceiroParcela.situacao'] = $this->data['Filtro']['situacao'];
            if($this->data['Filtro']['situacao'] == 'V'){ // se foi escolhido 'vencido':
                $arrayConditions['AND']['AgendamentoFinanceiroParcela.situacao'] = 'A';
                $arrayConditions['AND']['AgendamentoFinanceiroParcela.data_vencimento <'] = date('Y-m-d');
            }
        }
        if (isset($this->data['Filtro']['data_inicial']) && !empty($this->data['Filtro']['data_inicial'])){
            $arrayConditions['AND']['AgendamentoFinanceiroParcela.data_vencimento >='] = $this->Mswi->formatarData($this->data['Filtro']['data_inicial']);
        }
        if (isset($this->data['Filtro']['data_final']) && !empty($this->data['Filtro']['data_final'])){
            $arrayConditions['AND']['AgendamentoFinanceiroParcela.data_vencimento <='] = $this->Mswi->formatarData($this->data['Filtro']['data_final']);
        }
    }

    $params = $this->Mswi->autoPaginate($this->params, 'AgendamentoFinanceiroParcela.data_vencimento', 'ASC', $arrayConditions);

    $this->AgendamentoFinanceiroParcela->bindModel(array(
        'hasMany' => array(
            'Anexo' => array(
                'className' => 'Anexo',
                'foreignKey' => 'agendamento_parcela_id'
            )
        )
    ));

Ai tenho as condições e debugando o código ele me passa os índices corretamente inclusive me retorna os estados de cada registro tudo certinho

if ((isset($this->params['ext']) && $this->params['ext'] == 'pdf') || isset($this->params['named']['excel'])) {
        $AgendamentoFinanceiroParcelasReceber = $this->AgendamentoFinanceiroParcela->find('all', 
            array(
                'conditions'    => $params['conditions'],
                'order'         => array($params['sort'] => $params['direction']),
                'contain'       => array(
                    'AgendamentoFinanceiro' => array(
                        'CentroDeCusto' => array(
                            'fields' => array('id', 'numero', 'nome', 'situacao')
                        ),
                        'fields' => array('id', 'tipo', 'situacao', 'numero_parcelas', 'periodicidade_id'),
                    ),
                    'Entidade' => array(
                        'fields' => array('id', 'nome_principal', 'nome_secundario', 'situacao')
                    ),
                    'ContaDestino' => array(
                        'fields' => array('id', 'nome', 'contatipo_id', 'situacao')
                    ),
                    'ContaOrigem' => array(
                        'fields' => array('id', 'nome', 'contatipo_id', 'situacao')
                    ),
                    'PlanoDeConta' => array(
                        'fields' => array('id', 'numero', 'nome', 'situacao')
                    ),
                    'LancamentoFinanceiro' => array(
                        'fields' => array('id', 'agendamento_parcela_id', 'valor', 'tipo', 'situacao', 'observacoes'),
                        'CentroDeCusto' => array(
                            'fields' => array('id', 'numero', 'nome', 'situacao')
                        ),
                        'Entidade' => array(
                            'fields' => array('id', 'nome_principal', 'nome_secundario', 'situacao')
                        ),
                        'ContaDestino' => array(
                            'fields' => array('id', 'nome', 'contatipo_id', 'situacao')
                        ),
                        'ContaOrigem' => array(
                            'fields' => array('id', 'nome', 'contatipo_id', 'situacao')
                        ),
                        'PlanoDeConta' => array(
                            'fields' => array('id', 'numero', 'nome', 'situacao')
                        )
                    ),
                    'AgendamentoFinanceiroParcelaFatura' => array(
                        'Fatura' => array(
                            'Boleto' => array(
                                'fields' => array('id')
                            ),
                            'fields' => array('id', 'formadepagamento_id')
                        ),
                        'fields' => array('id', 'agendamento_financeiro_parcela_id', 'fatura_id')
                    ),
                    'Anexo' => array(
                        'fields' => array(
                            'id'
                        )
                    )
                ),
                'fields' => array(
                    'id',
                    'data_vencimento',
                    'valor',
                    'descricao',
                    'situacao',
                    'tipo',
                    'parcela',
                    'entidade_id',
                    'conta_origem_id',
                    'conta_destino_id',
                    'planodeconta_id',
                    'numero',
                    'observacoes',
                    'email_enviado',
                    'lancamentofinanceiro_id'
                )
            )
        );
    } else {
        $this->paginate = array(
            'conditions'    => $params['conditions'],
            'order'         => array($params['sort'] => $params['direction']),
            'page'          => $params['page'],
            'joins'         => array(
                array(
                    'table'         => 'agendamentos_financeiros_parcelas_faturas',
                    'alias'         => 'AgendamentoFinanceiroParcelaFatura',
                    'type'          => 'LEFT',
                    'conditions'    => array(
                        'AgendamentoFinanceiroParcelaFatura.agendamento_financeiro_parcela_id = AgendamentoFinanceiroParcela.id',
                    )
                ),
                array(
                    'table'         => 'agendamentos_financeiros',
                    'alias'         => 'AgendamentoFinanceiro',
                    'type'          => 'LEFT',
                    'conditions'    => array(
                        'AgendamentoFinanceiroParcela.agendafinanceira_id = AgendamentoFinanceiro.id',
                    )
                ),
                array(
                    'table'         => 'lancamentos_financeiros',
                    'alias'         => 'LancamentoFinanceiro',
                    'type'          => 'LEFT',
                    'conditions'    => array(
                        'AgendamentoFinanceiroParcela.lancamentofinanceiro_id = LancamentoFinanceiro.id',
                    )
                ),
                array(
                    'table'         => 'plano_de_contas',
                    'alias'         => 'PlanoDeConta',
                    'type'          => 'LEFT',
                    'conditions'    => array(
                        'AgendamentoFinanceiroParcela.planodeconta_id = PlanoDeConta.id',
                    )
                ),
                array(
                    'table'         => 'entidades',
                    'alias'         => 'Entidade',
                    'type'          => 'LEFT',
                    'conditions'    => array(
                        'AgendamentoFinanceiroParcela.entidade_id = Entidade.id',
                    )
                ),
                array(
                    'table'         => 'entidades_enderecos',
                    'alias'         => 'EntidadesEndereco',
                    'type'          => 'LEFT',
                    'conditions'    => array(
                        'EntidadesEndereco.entidade_id = Entidade.id' ,
                    )
                ),
                array(
                    'table'         => 'contas',
                    'alias'         => 'ContaOrigem',
                    'type'          => 'LEFT',
                    'conditions'    => array(
                        'AgendamentoFinanceiroParcela.conta_origem_id = ContaOrigem.id',
                    )
                ),
                array(
                    'table'         => 'contas',
                    'alias'         => 'ContaDestino',
                    'type'          => 'LEFT',
                    'conditions'    => array(
                        'AgendamentoFinanceiroParcela.conta_destino_id = ContaDestino.id',
                    )
                ),
                array(
                    'table'         => 'anexos',
                    'alias'         => 'Anexo',
                    'type'          => 'LEFT',
                    'conditions'    => array(
                        'AgendamentoFinanceiroParcela.id = Anexo.agendamento_parcela_id',
                    )
                ),
            ),
            'fields' => array(
                'AgendamentoFinanceiroParcela.id',
                'AgendamentoFinanceiroParcela.data_vencimento',
                'AgendamentoFinanceiroParcela.valor',
                'AgendamentoFinanceiroParcela.descricao',
                'AgendamentoFinanceiroParcela.situacao',
                'AgendamentoFinanceiroParcela.tipo',
                'AgendamentoFinanceiroParcela.parcela',
                'AgendamentoFinanceiroParcela.entidade_id',
                'AgendamentoFinanceiroParcela.conta_origem_id',
                'AgendamentoFinanceiroParcela.conta_destino_id',
                'AgendamentoFinanceiroParcela.planodeconta_id',
                'AgendamentoFinanceiroParcela.numero',
                'AgendamentoFinanceiroParcela.observacoes',
                'AgendamentoFinanceiroParcela.email_enviado',
                'AgendamentoFinanceiroParcela.lancamentofinanceiro_id',
                'AgendamentoFinanceiroParcela.modified_by',
                'AgendamentoFinanceiroParcela.modified',
                'AgendamentoFinanceiroParcelaFatura.id',
                'AgendamentoFinanceiroParcelaFatura.agendamento_financeiro_parcela_id',
                'AgendamentoFinanceiroParcelaFatura.fatura_id',
                'AgendamentoFinanceiro.id',
                'AgendamentoFinanceiro.tipo',
                'AgendamentoFinanceiro.situacao',
                'AgendamentoFinanceiro.numero_parcelas',
                'AgendamentoFinanceiro.periodicidade_id',
                'LancamentoFinanceiro.id',
                'LancamentoFinanceiro.agendamento_parcela_id',
                'LancamentoFinanceiro.valor',
                'LancamentoFinanceiro.tipo',
                'LancamentoFinanceiro.situacao',
                'PlanoDeConta.id',
                'PlanoDeConta.numero',
                'PlanoDeConta.nome',
                'PlanoDeConta.situacao',
                'Entidade.id',
                'Entidade.nome_principal',
                'Entidade.nome_secundario',
                'Entidade.situacao',
                'EntidadesEndereco.id',
                'EntidadesEndereco.cidade',
                'EntidadesEndereco.estado',
                'EntidadesEndereco.uf',
                'ContaOrigem.id',
                'ContaOrigem.nome',
                'ContaOrigem.contatipo_id',
                'ContaOrigem.situacao',
                'ContaDestino.id',
                'ContaDestino.nome',
                'ContaDestino.contatipo_id',
                'ContaDestino.situacao',
                'Anexo.id'
            ),
            'limit'     => 29,
            'recursive' => -1
        );

        try {
            $AgendamentoFinanceiroParcelasReceber = $this->paginate('AgendamentoFinanceiroParcela');
        } catch(NotFoundException $e) {
            $AgendamentoFinanceiroParcelasReceber = array();
            $this->set('agendamentos_financeiros_parcelas', $AgendamentoFinanceiroParcelasReceber);
            $this->render('contas_receber_auto_paginate', 'ajax');
            exit();
        }

    }

Passo por um array todos os estados

$uf = array(
        'AC' => 'AC',  
        'AL' => 'AL',  
        'AM' => 'AM',
        'AP' => 'AP',
        'BA' => 'BA',
        'CE' => 'CE',
        'DF' => 'DF',
        'ES' => 'ES',
        'GO' => 'GO',
        'MA' => 'MA',
        'MG' => 'MG',
        'MS' => 'MS',
        'MT' => 'MT',
        'PA' => 'PA',
        'PB' => 'PB',
        'PE' => 'PE',
        'PI' => 'PI',
        'PR' => 'PR',
        'RJ' => 'RJ',
        'RN' => 'RN',
        'RO' => 'RO',
        'RR' => 'RR',
        'RS' => 'RS',
        'SC' => 'SC',
        'SE' => 'SE',
        'SP' => 'SP',
        'TO' => 'TO',

        'recursive'     => -1
    );

Mando para view

$this->set('uf', $uf);

E na view tenho o filtro de busca

<td style="float: left;">
                        <div id="Grupo_ano" class="control-group">
                            <label class="control-label">UF</label>
                            <div class="controls">
                                <div class="input-prepend input-append">
                                    <?php 
                                    echo $this->Form->select(
                                        'Filtro.uf',
                                        $uf,
                                        array(
                                            'class' => 'chzn-select-deselect',
                                            'data-placeholder' => 'Selecione',
                                            'label' => false,
                                            'div'=> false,
                                            'style' => 'width: 110px;',
                                        )
                                    );
                                    ?>
                                </div>
                            </div>
                        </div>
                    </td>    

Quando faço a consulta no filtro recebo esse erro e só com esse filtro

Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'EntidadesEndereco.uf' in 'where clause'

Alguém sabe o que pode ser errado, estão todos no mesmo nível de índice

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Código esta bem complicado de entender, mas faça um debug da query.

 

O cake tem uma função que lhe mostrara a SQL gerada.

 

Assim fica mais fácil saber oque há de errado nos relacionamentos.

$log = $this->Nome_da_Model_Principal->getDataSource()->getLog(false, false);
debug($log);
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.
       
      Por favor, me permita tirar uma dúvida com os amigos.

      Tenho um Formulário onde o Usuário digita todos os Dados necessários.

      Minha dúvida:
      --> como faço após o usuário digitar os dados e salvar, o Sistema chamar uma Modal ou mensagem perguntando se deseja imprimir agora ?

      Grato,
       
      Cesar
    • Por Carcleo
      Tenho uma abela de usuarios e uma tabela de administradores e clientes.
      Gostaria de uma ajuda para implementar um cadastro
       
      users -> name, login, passord (pronta) admins -> user_id, registratiom, etc.. client -> user_id, registratiom, etc...
      Queria ajuda para extender de user as classes Admin e Client
      Olhem como estáAdmin
      <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Admin extends User {     use HasFactory;            protected $fillable = [         'name',         'email',         'password',         'registration'     ];      private string $registration;     public function create(         string $name,          string $email,          string $password,         string $registration     )     {         //parent::create(['name'=>$name, 'email'=>$email, 'password'=>$password]);         parent::$name = $name;         parent::$email = $email;         parent::$password = $password;         $this->registration = $registration;     } } User
      <?php namespace App\Models; // use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Illuminate\Database\Eloquent\Relations\BelongsToMany; class User extends Authenticatable {     /** @use HasFactory<\Database\Factories\UserFactory> */     use HasFactory, Notifiable;     static string $name;     static string $email;     static string $password;     /**      * The attributes that are mass assignable.      *      * @var list<string>      */     protected $fillable = [         'name',         'email',         'password',     ];          /**      * The attributes that should be hidden for serialization.      *      * @var list<string>      */     protected $hidden = [         'remember_token',     ];     /**      * Get the attributes that should be cast.      *      * @return array<string, string>      */     protected function casts(): array     {         return [             'email_verified_at' => 'datetime',             'password' => 'hashed',         ];     }          public function roles() : BelongsToMany {         return $this->belongsToMany(Role::class);     }       public function hasHole(Array $roleName): bool     {                 foreach ($this->roles as $role) {             if ($role->name === $roleName) {                 return true;             }         }         return false;     }         public function hasHoles(Array $rolesName): bool     {                 foreach ($this->roles as $role) {             foreach ($rolesName as $rolee) {             if ($role->name === $rolee) {                 return true;             }          }         }         return false;     }         public function hasAbility(string $ability): bool     {         foreach ($this->roles as $role) {             if ($role->abilities->contains('name', $ability)) {                 return true;             }         }         return false;     }     } Como gravar um Admin na tabela admins sendo que ele é um User por extensão?
      Tentei assim mas é claro que está errado...
      public function store(Request $request, Admin $adminModel) {         $dados = $request->validate([             "name" => "required",             "email" => "required|email",             "password" => "required",             "registration" => "required"         ]);         $dados["password"] =  Hash::make($dados["password"]);                  $admin = Admin::where("registration",  $dados["registration"])->first();                  if ($admin)              return                    redirect()->route("admin.new")                             ->withErrors([                                 'fail' => 'Administrador já cadastrados<br>, favor verificar!'                   ]);                            $newAdmin = $adminModel->create(                                    $dados['name'],                                    $dados['email'],                                    $dados['password'],                                    $dados['registration']                                 );         dd($newAdmin);         $adminModel->save();         //$adminModel::create($admin);                  return redirect()->route("admin.new")->with("success",'Cadastrado com sucesso');     }  
    • Por violin101
      Caros amigos, saudações.
       
      Gostaria de tirar uma dúvida com os amigos, referente a PDV.
       
      Estou escrevendo um Sistema com Ponto de Vendas, a minha dúvida é o seguinte, referente ao procedimento mais correto.

      Conforme o caixa vai efetuando a venda, o Sistema de PDV já realiza:
      a baixa direto dos produtos no estoque
      ou
      somente após concretizar a venda o sistema baixa os produtos do estoque ?
       
      Grato,
       
      Cesar
       
    • Por violin101
      Caros amigos do grupo, saudações e um feliz 2025.
       
      Estou com uma pequena dúvida referente a Teclas de Atalho.

      Quando o Caps Lock está ativado o Comando da Tecla de Atalho não funciona.
      ou seja:
      se estiver para letra minúscula ====> funciona
      se estiver para letra maiúscula ====> não funciona
       
      Como consigo evitar essa falha, tanto para Letra Maiúscula quanto Minúscula ?

      o Código está assim:
      document.addEventListener( 'keydown', evt => { if (!evt.ctrlKey || evt.key !== 'r' ) return;// Não é Ctrl+r, portanto interrompemos o script evt.preventDefault(); });  
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, poderiam me ajudar.

      Estou com a seguinte dúvida:
      --> como faço para para implementar o input código do produto, para quando o usuário digitar o ID o sistema espera de 1s a 2s, sem ter que pressionar a tecla ENTER.

      exemplo:
      código   ----   descrição
           1       -----   produto_A
       
      Grato,
       
      Cesar
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.