Bom dia, pessoal!
Estou montando uma estrutura que deve exibir para o usuário a faixa numérica (num_sequencial_inicial e num_sequencial_final), quantidade disponível dessa faixa se tiver requisição (quatidade_disponivel) e a quantidade disponível se não houver requisição (quantidade_disponivel_sem_requisicao)
- o cálculo é feito diferente para cada quantidade
Esses dados são buscados no banco de acordo com um tipo de número previamente selecionadoe e devem ser exibidos em um componente selecionável para os demais cálculos(pensei no combobox, más poderia ser talvez um gridview)
- A consulta SQL, funciona chama o método no controller e tudo mais, porém não sei como fazer para trazer todos esses dados que vem em um objeto. Ja tentei bastante aqui.
Gostaria de saber como poderia montar isso o combo ficaria dessa maneira por ex:
Faixas disponíveis | Série | Quantidades Disponíveis
-
08000001 (inicial) 09000000 (final) XX 10
-
05431851 (inicial) 05431900 (final) A 20
.
.
.
Segue o código que estou fazendo:
_form.php
<div class="row">
<?php echo CHtml::label('Tipo de Receita', 'id_tp_num_sequencial'); ?>
<?php
echo CHtml::dropDownList('id_tp_num_sequencial','', CHtml::listData(TpNumSequencial::model()->findAllBySql("SELECT tp.id_tp_num_sequencial as id_tp_num_sequencial, tp.tp_num_sequencial as tp_num_sequencial
FROM
sch_scspm.tb_num_sequencial faixa, sch_scspm.tb_tp_num_sequencial tp
WHERE
faixa.id_tp_num_sequencial = tp.id_tp_num_sequencial
GROUP BY
tp.id_tp_num_sequencial, tp.tp_num_sequencial"), 'id_tp_num_sequencial', 'tp_num_sequencial'),
array(
'empty' => 'Escolha um Tipo de Receita',
'ajax' => array(
'type'=>'POST', //request type
'url'=>CController::createUrl('Requisicao/BuscaSerie'), //url to call.
//Style: CController::createUrl('currentController/methodToCall')
'update'=>'#series_disponiveis', //selector to update
//'data'=>'js:javascript statement'
//leave out the data key to pass all form values through
)));
?>
</div>
<div class="row">
<?Php
echo CHtml::label('Faixas | Séries | Quantidades Disponíveis', 'series_disponiveis');
//empty since it will be filled by the other dropdown
echo CHtml::dropDownList('series_disponiveis','', array('empty' => 'Escolha um Tipo de Receita',
));
?>
</div>
_RequisicaoController.php
public function actionBuscaSerie()
{
$param=(int) $_POST['id_tp_num_sequencial'];
$data = NumSequencial::model()->findBySql("SELECT
num.num_sequencial_inicial as num_sequencial_inicial,
num.num_sequencial_final as num_sequencial_final,
MAX(num.num_sequencial_final) - MAX(req.num_requisicao_final_medico) as quatidade_disponivel,
num_sequencial_final - num_sequencial_inicial as quantidade_disponivel_sem_requisicao,
num.serie_num_sequencial as serie_num_sequencial
FROM
sch_scspm.tb_tp_num_sequencial tp
INNER JOIN
sch_scspm.tb_num_sequencial num
ON
(num.id_tp_num_sequencial = tp.id_tp_num_sequencial)
LEFT JOIN
sch_scspm.tb_requisicao req
ON
(req.id_num_sequencial = num.id_num_sequencial)
WHERE
num.id_tp_num_sequencial=:parent_id
GROUP BY
num.num_sequencial_inicial, num.num_sequencial_final, num.serie_num_sequencial", array(':parent_id' => $param));
$data=CHtml::listData($data,'id_num_sequencial', 'serie_num_sequencial');
foreach($data as $value=>$name)
{
echo CHtml::tag('option',array('value'=>$value),CHtml::encode($name),true);
}
}