[Resuelto] Varias condicionales no funcionan

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

Te pongo lo que puse en otro Post hace un tiempo.
Al validar un modelo si hay errores se pueden ver todos los atributos que dan error y que error da cada uno de ellos. Haz lo siguiente:

$model->validate();
var_dump($model->getErrors());
die();

saludos

Gracias rahif por responder esto lo resolvi era que no encontraba ciertas condiciones en el modelo, de todas formas le cambie las formas de obtnerlas y esta OK, quedando asi:

 $cl = $model->CodCliente; //$model->CodCliente
                           $fa = $detalle->nfactura;
                           $sqlf= "SELECT CodCliente AS cli, SUM(ImporteMN) AS mn, SUM(ImporteCUC) AS cuc                                             
                                   FROM facturas                                              
                                   WHERE CodCliente = '$cl' and nfactura = '$fa';";
                            $connection = Yii::app()->db;
                            $command = $connection->createCommand($sqlf);
                            $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                        
                            //analizar valor del cheque 
                            switch ($model->CodMon) {
                                case 1:
                                    if (!$id && $valord <= $ambos && $idmn > 0 && $idcli === $cl) {//$mon <> 2 el cliente crea documento pero falla y no paga, con moneda crea docu y no paga revisarlo
                                        $criteria = new CDbCriteria;
                                        $criteria->addCondition('id=:id');
                                        $criteria->params = array(':id' => $model->id);
                                        $objd = Docubancarios::model()->find($criteria);
                                        $objd->Importe_fac = $valord;
                                        $objd->save();
                                        //otra criteria
                                        $criteria = new CDbCriteria;
                                        $criteria->addCondition('nfactura=:nfactura');
                                        $criteria->params = array(':nfactura' => $detalle->nfactura);
                                        $objf = Facturas::model()->find($criteria);
                                        $objf->Importepag = $detalle->valor + $facturas->Importepag; //
                                        $objf->IdEstado = 1;
                                        $objf->save();
                                    } else {
                                        Yii::app()->user->setFlash('error', 'No  se pago el documento, Revice el Importe del cheque debe mayor o igual que el pago de  las facturas, escogio la moneda o el cliente', true);
                                        $doc = $model->id;
                                        $connection = Yii::app()->db;
                                        $query = "DELETE FROM docubancarios WHERE id = '$doc';";
                                        Yii::app()->db->createCommand($query)->execute();
                                        Yii::app()->end();
                                    }
                                    break;
                                case 2:
                                    if (!$id && $valord <= $ambosc && $idcuc > 0 && $idcli === $cl) {//$mon <> 2 el cliente crea documento pero falla y no paga, con moneda crea docu y no paga revisarlo
                                        $criteria = new CDbCriteria;
                                        $criteria->addCondition('id=:id');
                                        $criteria->params = array(':id' => $model->id);
                                        $objd = Docubancarios::model()->find($criteria);
                                        $objd->Importe_fac = $valord;
                                        $objd->save();
                                        //otra criteria
                                        $criteria = new CDbCriteria;
                                        $criteria->addCondition('nfactura=:nfactura');
                                        $criteria->params = array(':nfactura' => $detalle->nfactura);
                                        $objf = Facturas::model()->find($criteria);
                                        $objf->Importepagc = $detalle->valor + $facturas->Importepagc; //
                                        $objf->IdEstado = 1;
                                        $objf->save();
                                    } else {
                                        Yii::app()->user->setFlash('error', 'No  se pago el documento, Revice el Importe del cheque debe mayor o igual que el pago de  las facturas, escogio la moneda o el cliente', true);
                                        $doc = $model->id;
                                        $connection = Yii::app()->db;
                                        $query = "DELETE FROM docubancarios WHERE id = '$doc';";
                                        Yii::app()->db->createCommand($query)->execute();
                                        Yii::app()->end();
                                    }
                                    break;
                            }

Gracias a todos