Hola comunidad, estoy implementando este pedazo de codigo en mi controlador de un modelo, pero no funciona:
.....
if ($valid) {
if ($model->save()) {
$pag = Pagoant::model()->find('CodCliente=:CodCliente', array(':CodCliente' => $model->CodCliente));
$ambos = $model->Importe + $pag->pagant;
$ambosc = $model->Importe + $pag->pagantc;
Detallescheq::model()->deleteAll('Id_che=:id', array(':id' => $model->id));
$valid = $detalle->validate() && $valid;
foreach ($_POST['detalle'] as $item) {
//Lo que se guarda en tabla Detallescheq
$detalle = new Detallescheq;
$detalle->Id_che = $model->id;
$detalle->nfactura = $item['producto'];
$detalle->valor = $item['valor'];
$valord += $detalle->valor; //
$detalle->save();
$can = $_POST['cliente']; //$model->CodCliente
$fa = $detalle->nfactura;
if ($detalle->save() && $detalle->validate()) {// && $pagoant->validate()
$mon = $model->CodMon;
$sqlcli = "SELECT facturas.CodCliente AS cli,
facturas.ImporteMN AS mn,
facturas.ImporteCUC AS cuc,
SUM(detallescheq.valor) AS valor
FROM ( detallescheq
JOIN
docubancarios
ON (detallescheq.Id_che = docubancarios.id))
JOIN
facturas
ON (detallescheq.nfactura = facturas.nfactura)
WHERE facturas.CodCliente = '$can' and detallescheq.nfactura = $fa;";
$connection = Yii::app()->db;
$command = $connection->createCommand($sqlcli);
$row = $command->queryRow(); //se busca en facturas valores del cliente y valores de importe en factura creada en detallescheq
$idcli = $row['cli'];
$idmn = $row['mn']; //valor de la factura
$idcuc = $row['cuc']; //valor de la factura
$idvalor = $row['valor'];
//analizar valor del cheque
if ($valord <= $ambos && $idmn > 0 && $mon == 1) {//!$id &&
$criteria = new CDbCriteria;
$criteria->addCondition('id=:id');
$criteria->params = array(':id' => $model->id);
$objd = Docubancarios::model()->find($criteria);
$objd->Importe_fac = $valord;
$objd->save();
} else if ($valord <= $ambosc && $idcuc > 0 && $mon == 2) {
$criteria = new CDbCriteria;
$criteria->addCondition('id=:id');
$criteria->params = array(':id' => $model->id);
$objd = Docubancarios::model()->find($criteria);
$objd->Importe_fac = $valord;
$objd->save();
} else {
Yii::app()->user->setFlash('error', 'El Importe del cheque debe mayor que el pago de las facturas', true);
$doc = $model->id;
$connection = Yii::app()->db;
$query = "DELETE FROM docubancarios WHERE id = '$doc';";
Yii::app()->db->createCommand($query)->execute();
Yii::app()->end();
}
El problema que tengo es que, aunque se cumplan las condiciones de arriba siempre me manda para el else o sea el error, gracias por adelantado, esperando sus contribuciones.
Gracias