Ir para conteúdo

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 landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, ativo. Nela tem cadastrado vários itens. No campo ativo eu coloco a letra "S" para informar que este item está ativo no sistema. Por exemplo: 1, casa, S 2, mesa, S 3, cama, S 4, moto S 5, rádio O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "produtos" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, mesa, moto 2, mesa, casa, cama 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela produtos da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "mesa". Preciso fazer com que o php me liste todos os registros da tabela "produtos" que contenham a palavra "mesa". Até aqui tudo bem eu consigo listar. Estou fazendo assim: <?php $item = "mesa" $sql = mysqli_query($conn, "SELECT * FROM produtos WHERE item1 LIKE '$item' OR item2 LIKE '$item' OR item3 LIKE '$item' LIMIT 10"); while($aux = mysqli_fetch_assoc($sql)) { $id = $aux["id"]; $item1 = $aux["item1"]; $item2 = $aux["item2"]; $item3 = $aux["item3"]; echo $id . " - " . $item1 . ", " . $item2 . ", " $item3 . "<br>"; } ?> O problema é que está listando todos os registros que contém o item mesa. Eu preciso que o php verifique os demais item e me liste somente os registro em que todos os registros estejam ativos no sistema. No exemplo acima ele não deveria listar o registro 3. pois nesse registro contém o item "radio" e este item não está ativo no sistema. Ou seja, o registro "radio" na tabela itens não possui um "S" na coluna "ativo". Alguém sabe como resolver isso?
    • Por ILR master
      Fala galera.
      Espero que todos estejam bem.
      Seguinte: Tenho um arquivo xml onde alguns campos estão com : (dois pontos), como o exemplo abaixo:
       
      <item>
      <title>
      d sa dsad sad sadasdas
      </title>
      <link>
      dsadas dsa sad asd as dsada
      </link>
      <pubDate>sadasdasdsa as</pubDate>
      <dc:creator>
      d sad sad sa ad as das
      </dc:creator>
      </item>
       
      Meu código:
       
      $link = "noticias.xml"; 
      $xml = simplexml_load_file($link); 
      foreach($xml -> channel as $ite) {     
           $titulo = $ite -> item->title;
           $urltitulo = $ite -> item->link;
           print $urltitulo = $ite -> item->dc:creator;
      } //fim do foreach
      ?>
       
      Esse campo dc:creator eu não consigo ler. Como faço?
       
      Agradeço quem puder me ajudar.
       
      Abs
       
       
    • Por First
      Olá a todos!
       
      Eu estou criando um sistema do zero mas estou encontnrando algumas dificuldades e não estou sabendo resolver, então vim recorrer ajuda de vocês.
      Aqui está todo o meu código: https://github.com/PauloJagata/aprendizado/
       
      Eu fiz um sistema de rotas mas só mostra o conteúdo da '/' não sei porque, quando eu tento acessar o register nada muda.
      E eu também quero que se não estiver liberado na rota mostra o erro de 404, mas quando eu tento acessar um link inválido, nada acontece.
      Alguém pode me ajudar com isso? E se tiver algumas sugestão para melhoria do código também estou aceitando.
       
       
      Desde já, obrigado.
    • Por landerbadi
      Olá pessoal, boa tarde
       
      Tenho uma tabela chamada "produtos" com os seguintes campos (id, produto) e outra tabela chamada "itens" com os seguintes campos (id, prod_01, prod_02, prod_03, prod_04).
       
      Na tabela produtos eu tenho cadastrado os seguintes produtos: laranja, maçã, uva, goiaba, arroz, feijão, macarrão, etc.
       
      Na tabela itens eu tenho cadastrado os itens da seguinte maneira:
       
      1, laranja, uva, arroz, feijão;
      2, maçã, macarrão, goiaba, uva;
      3, arroz, feijão, maçã, azeite
       
      Meu problema é o seguinte: 
      Eu escolho um produto da tabela "produtos", por exemplo "uva".  Preciso fazer uma consulta na tabela "itens" para ser listado todos os registros que contenham o produto "uva" e que todos os demais produtos estejam cadastrados na tabela "produtos".
       
      No exemplo acima seria listado apenas dois registros, pois o terceiro registro não contém o produto "uva". 
       
      Alguém pode me ajudar? Pois estou quebrando a cabeça a vários dias e não consigo achar uma solução.
    • Por landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, plural, ativo. Nela tem cadastrado vários itens e seu respectivo plural. No campo ativo eu coloco a letra "S" para informar que esta palavra está ativa no sistema. Por exemplo: 1, casa, casas, S 2, mesa, mesas, S 3, cama, camas, S 4, moto, motos, S 5, rádio, rádios O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "variações" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, camas, moto 2, mesas, casas, radio 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela variações da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "casa". Preciso fazer com que o php me liste todos os registros da tabela "variações" que contenham a palavra "casa". Porém se tiver algum registro com a palavra "casas" também tem que ser listado. Neste caso ele irá encontrar dois registros. Agora eu preciso que o php verifique os demais itens e faça a listagem apenas dos item que estão ativos (que contenham um "S" no campo ativo. Neste caso ele irá encontrar apenas um registro, pois o segundo registro contém a palavra "rádio". E "rádio" não está ativo na tabela itens. Como faço isso?
×

Informação importante

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