Buenos días, mi consulta es la siguiente
tengo esta función en el modelo
public function getTotal($records, $column)
{
$total = 0;
foreach ($records as $record) {
$total += $record->$column;
}
return $total;
}
la cual llamo en el footer de la columna respectiva del cgrid del admin de la siguiente manera
'columns' => array(
...
array(
'name'=>'cantidad_devoluciones',
'header' =>'Devo.',
'filter' => false,
'headerHtmlOptions'=>array('style'=>'width: 30px'),
'footer'=>$model->getTotal($model->search()->getData(), 'cantidad_devoluciones'),
),
....
}
y funciona bien cuando hace la suma de una columna del mismo modelo, pero no se como hacerlo para que me sume una columna de un modelo relacionado por ejemplo:
array(
'name'=>'codigoAcuseRecibo.cantidad_cartas',
'header' =>'Cartas',
'headerHtmlOptions'=>array('style'=>'width: 30px'),
'footer'=>$model->getTotal($model->search()->getData(), 'codigoAcuseRecibo.cantidad_cartas'),
),
al hacer eso me da error de que "codigoAcuseRecibo.cantidad_cartas no se encuentra definida"
lo mismo pasa cuando tengo una columna "personalizada" que es la multiplicación de 2 columnas a través de una función
public function getPago()
{
$cantidad = RegistroAcuse::model()->findByPK($this->codigo_acuse_recibo);
return "$ ".number_format(($cantidad->cantidad_cartas*$this->codigoAcuseRecibo->idSector->idTipoSector->precio_por_carta),0,'','.');
}
y luego en el cgrid
array(
'name'=>'Pago',
'header' =>'Total',
'filter' => false,
'htmlOptions'=>array('style'=>'text-align: center'),
'headerHtmlOptions'=>array('style'=>'width: 30px'),
'footer'=>$model->getTotal($model->search()->getData(), 'Pago'),
),
De antemano gracias si alguien puede ayudarme