No funciona la extensión multimodelform

Hola a la comunidad de yii en español, estoy haciendo un formulario para cobrar las deudas de clientes de las facturas vendidas con tres modelos usando la extensión multimodelform y me genera varios errores visibles o no, tengo tres tablas de la siguiente forma:

  1. tabla docubancarios (capto el documento de pago), tiene los campos entre otros:
    Id: llave principal autonumerico
    CodCliente: varchar (Código del cliente que paga)
    Importe: numerico (valor o importe del documento de pago)
  2. tabla detallescheq (van los detalles del documento. o sea las facturas que paga el cliente con su documento tabla 1), tiene los siguientes campos entre otros:
    Id: autonumerico y llave prinipal
    Id_che: Integer, relacionado con Id de la tabla 1 (uno a varios, o sea un documento puede tener varios detalles)
    valor: numerico (valor de los importes pagados de cada factura captada)
    nfactura: varchar (numero de facturas pagadas)
  3. tabla facturas se guardan las facturas realizadas, o sea, están las facturas a pagar por los clientes), con los siguientes campos entre otros:
    id: autonumerico llave principal
    nfactura varchar (numero de la factura a pagar) y relacionada con la la tabla 2 con el campo nfactura.
    Importe: numerico (Importe de la factura)
    ImportePag: numerico (importe cobrado debe ser menor o igual a importe)
    Lo que quiero es que al captar un documento tabla 1 se capte este y cobre en detalles tabla 2 todas las facturas y me llene todos los campos, luego en la tabla 3 facturas me actualice los campos necesarios en este caso Importepag, así de fácil, pero se me ha hecho difícil:
    En los modelos tengo las siguientes reglas y relaciones:
    Tabla 1:
public function rules() {
        //   $cli = Clientes::model()->findAll();
        // NOTE: you should only define rules for those attributes that
        // will receive user inputs.
        return array(
            array('CodDocBan, fecha, CodCliente', 'required', 'on' => 'docubancarios', 'message' => 'Tiene que escoger {attribute} su valor!'),
            array('CodDocBan', 'unique', 'message' => 'Campo único',),
            array('CodDoc, CodMon', 'numerical', 'integerOnly' => true),
            array('Importe', 'length', 'max' => 15),
            array('CodCliente', 'length', 'max' => 12),
            array('CodDocBan', 'length', 'max' => 20),
            array('fecha', 'safe'),
            //  array('CodCliente', 'compare', 'compareAttribute' => '$cli->CodCliente', 'operator' => '=', 'message' => 'El Cliente seleccionado debe estar en clientes'),
            // The following rule is used by search().
            // Please remove those attributes that should not be searched.
            array('id, fecha, CodCliente, CodDocBan, CodDoc, CodMon, Importe', 'safe', 'on' => 'search'),
        );
    }

relaciones:

 return array(
            'detalleDocumento' => array(self::HAS_MANY, 'Detallescheq', 'Id_che'),
            'codCliente' => array(self::HAS_MANY, 'Clientes', 'CodCliente'),
           );

Tabla 2:

return array(
            array('nfactura, valor, Id_che', 'required', 'on' => 'detallescheq', 'message' => 'Tiene que escoger {attribute} su valor!'),
            array('nfactura, valor, Id_che', 'required', 'on' => 'detallescheq', 'message' => 'Tiene que escoger {attribute} para proseguir con la operacion!'),
            array('Id_che', 'numerical', 'integerOnly' => true),
            array('valor', 'numerical'),
            array('nfactura', 'length', 'max' => 20),
            // The following rule is used by search().
            // Please remove those attributes that should not be searched.
            array('Id, Id_che, nfactura, valor', 'safe', 'on' => 'search'),
        );

relaciones:

return array(
            'idProducto' => array(self::BELONGS_TO, 'Facturas', 'nfactura'),
        );

tabla 3:

 return array(
            array('nfactura, DocBan', 'required', 'on' => 'facturas', 'message' => 'Tiene que escoger {attribute} su valor!'),
            array('CodDocBC, CodDocB, estado', 'numerical', 'integerOnly' => true),
            array('ImporteMN, ImporteCUC, ImportePagMN, ImportePagCUC', 'numerical'),
            array('nfactura, DocBan, DocBanC', 'length', 'max' => 20),
            array('CodUEB, CodCliente', 'length', 'max' => 12),
            array('ImportePagMN', 'compare', 'compareAttribute' => 'ImporteMN', 'operator' => '<=', 'message' => 'lo pagado en MN debe ser un numero menor o igual al ImporteMN'),
            array('ImportePagCUC', 'compare', 'compareAttribute' => 'ImporteCUC', 'operator' => '<=', 'message' => 'lo pagado en CUC debe ser un numero menor o igual al ImporteCUC'),
            array('FPago, FPagoC', 'safe'),
            // The following rule is used by search().
            // Please remove those attributes that should not be searched.
            array('Id, nfactura, CodUEB, CodCliente, ImporteMN, ImporteCUC, ImportePagMN, ImportePagCUC, FPago, FPagoC, DocBan, DocBanC, CodDocBC, CodDocB, estado', 'safe', 'on' => 'search'),
        );

relaciones

return array(
            'codCliente' => array(self::BELONGS_TO, 'Clientes', 'CodCliente'),
           );

la accion create del controlador de la tabla 1 es:

public function actionCreate() {
        Yii::import('ext.multimodelform.MultiModelForm');
        $a = new Docubancarios;
        $b = new Detallescheq;
        $c = new Facturas;
        $this->performAjaxValidation($a, $b);
        $validatedDocubancarios = array();
        $validatedDetallescheq = array();
        $validatedFacturas = array();
        $deleteDetallescheq = array();
        $DocubancariosValues = array();
        $DetallescheqFormConfig = array();
        $facturas = array();

        if (isset($_POST['Docubancarios'], $_POST['Detallescheq'])) {
            $a->attributes = $_POST['Docubancarios']; //
            $b->attributes = $_POST['Detallescheq'];
            $facturas = Facturas::model()->findAll('CodCliente=:CodCliente AND nfactura=:nfactura', array(':CodCliente' => $a->CodCliente, ':nfactura' => $b->nfactura));
            // $c->attributes = $_POST['Facturas'];
            if (//validate detail before saving the master
                    MultiModelForm::validate($b, $validatedDocubancarios, $validatedDetallescheq, $validatedFacturas, $deleteDetallescheq) && $a->save()
            ) {
                //the value for the foreign key 'id de docubancarios'
                $DocubancariosValues = array('id' => $a->id);
                if (MultiModelForm::save($b, $validatedDetallescheq, $deleteDetallescheq, $DocubancariosValues)) {
                    // $this->redirect(array('admin', 'id' => $a->id));
                    foreach ($_POST['Detallescheq'] as $item) {
                        $b->Id_che = $a->id;
                        //$tAB = Transfusiones::model()->findAll('rut=:rutA OR rut=:rutB',array(':rutA'=>A->rut,':rutB'=>B->rut));
                        switch ($a->CodMon) {
                            case 1:
                                $facturas->FPago = $a->fecha; //vacio
                                $facturas->CodDocB = $a->CodDoc;
                                $facturas->DocBan = $a->CodDocBan;
                                $facturas->ImportePagMN = $b->valor + $facturas->ImportePagMN;
                                break;
                            case 2:
                                $facturas->FPagoC = $a->fecha;
                                $facturas->CodDocBC = $a->CodDoc;
                                $facturas->DocBanC = $a->CodDocBan;
                                $facturas->ImportePagCUC = $b > valor + $c->ImportePagCUC;
                                break;
                        }
                      }
                }
                $this->redirect(array('admin', 'id' => $a->id));
            }
        }
        $this->render('create', array('a' => $a, 'b' => $b, 'c' => $c));
    }

el form de la tabla es: para el multimodelform:

 <?php
                        $cli = Clientes::model()->find('CodCliente=:CodCliente', array(':CodCliente' => $a->CodCliente));
                        $DetallescheqFormConfig = array(
                            'elements' => array(
                                'nfactura' => array(
                                    'type' => 'zii.widgets.jui.CJuiAutoComplete',
                                    'source' => $this->createUrl('docubancarios/autocomplete'),
                                    'options' => array(
                                        'showAnim' => 'fold',
                                        'common_id_string' => 'nfactura',
                                        'size' => '120',
                                        'minLength' => '2', // Minimo de caracteres que hay que digitar antes de relizar la busqueda
                                        'select' => "js:function(event, ui) { 
                          var nomobj_texto = this.id; //El identificador del campo en mi caso #Detallescheq_nfactura
                          var indexid = nomobj_texto.substring(25,nomobj_texto.length); 
                          $('#Detallescheq_nfactura'+indexid).val(ui.item.nfactura);
                          $('#Detallescheq_ImporteMN'+indexid).val(ui.item.ImporteMN); 
                          $('#Detallescheq_ImporteCUC'+indexid).val(ui.item.ImporteCUC);
                          $('#Detallescheq_CodCliente'+indexid).val(ui.item.CodCliente);                                             
                         }",
                                    ),
                                    'htmlOptions' => array(
                                        'size' => 30,
                                        'onFocus' => "init(this.id)",
                                        'placeholder' => 'Buscar ...',
                                        'title' => 'Indique el producto.'
                                    ),
                                ),
                                'nfactura' => array(
                                    'type' => 'dropdownlist',
                                    'prompt' => 'Seleccione las del cliente a pagar',
                                    //'items'=>CHtml::listData(Producto::model()->findAll(array('order'=>'descripcion ASC', 'condition'=>'activo=1')), 'idProducto', 'ProductoPrecio'),
                                    'items' => CHtml::listData(Facturas::model()->findAll(array('select' => 'facturas.Id, facturas.nfactura, facturas.CodCliente, facturas.ImporteMN, facturas.ImporteCUC, facturas.ImportePagMN, facturas.ImportePagCUC',
                                                'alias' => 'facturas',
                                                'order' => 'facturas.Id DESC',
                                                'condition' => '(facturas.ImporteMN > facturas.ImportePagMN or facturas.ImporteCUC > facturas.ImportePagCUC)',
                                                    // 'params' => array('CodCliente' => $cli->CodCliente)
                                            )), 'nfactura', 'nfactura'),
                                ),
                                'valor' => array(
                                    'type' => 'text',
                                    'maxlength' => 25,
                                ),
                        ));
                        $this->widget('ext.multimodelform.MultiModelForm', array(
                            'tableView' => true,
                            'id' => 'id_member', //the unique widget id
                            'formConfig' => $DetallescheqFormConfig, //the form configuration array
                            'model' => $b, //instance of the form model
                            'data' => $b->findAll('Id_che=:Id_che', array(':Id_che' => $a->id)),
                            'clearInputs' => true,
                            'addItemText' => 'Agregar factuas',
                            'removeText' => 'Eliminar',
                            'removeConfirm' => '¿Eliminar la factura seleccionada?',
                        ));
                        ?>

Al captar los datos del cocumento me llena los campos de la tabla 1 correctamente, los campos de la tabla 2 los llena todos menos el campo Id_che (relacionado con el id de la tabla 1)
no actualiza la tabla 3 y me da un error que dice:
Array to string conversion en la linea:

 $facturas = Facturas::model()->findAll('CodCliente=:CodCliente AND nfactura=:nfactura', array(':CodCliente' => $a->CodCliente, ':nfactura' => $b->nfactura));

el otro problema es que no valida ninguna tabla
Necesito de sus colaboraciones en lo que tengp mal