Hola a todos. Les paso a comentr mi problema.
Tengo un modelo Paquetes que este tiene muchos Aereo (que a su vez tiene 
una linea aerea) y muchos Traslados(que a su vez tiene un mayorista). Las 
relaciones entre los modelos estan correctamente hechas tantos los hasMany 
en la parte de producto como los belongsTo en la parte de los aereos y los 
productos. El tema es que cuando quiero hacer un saveAll o saveMany, el de 
los aereos anda perfecto pero el de los armados no, y si bien los datos no 
son los mismos esta exactamente igual con sus diferencias intrinsecas.
Ademas como cosa mas curiosa aun, en el beforeSaved del os aereos anda todo 
bien, pero en el de los traslados me da un error que me dice que no estan 
definidos los idices.
Dejo toda la informaicon posible.

   - Modelo de los traslados
   
<?php
App::uses('User', 'Model');
class Traslado extends AppModel {
    var $name = 'Traslado';
    var $belongsTo = array('Paquete','Proveedore','User');
    
    public function beforeSave($options = array()) {
        $this->data['Traslado']['concepto'] = 
strtoupper($this->data[$this->alias]['concepto']);
        $this->data['Traslado']['liquidacion']  = 
strtoupper($this->data[$this->alias]['liquidacion']);
        $this->data['Traslado']['user_id'] = AuthComponent::user('id');
        if($this->data[$this->alias]['costo'] == 
'')$this->data[$this->alias]['costo'] = 0;
        if($this->data[$this->alias]['tipocambio'] == 
'')$this->data[$this->alias]['tipocambio'] = 1;
        if($this->data[$this->alias]['precio'] == 
'')$this->data[$this->alias]['precio'] = 0;
        if($this->data[$this->alias]['tipocambioventa'] == 
'')$this->data[$this->alias]['tipocambioventa'] = 0;
        if($this->data[$this->alias]['personas'] == 
'')$this->data[$this->alias]['personas'] = 0;
        return true;
    }
}
?>

   - Modelo de los aereos

<?php
App::uses('User', 'Model');
class Aereo extends AppModel {
    var $name = 'Aereo';
    var $belongsTo = array('Paquete','Linea','User');
    public function beforeSave($options = array()) {
        $this->data[$this->alias]['concepto'] = 
strtoupper($this->data[$this->alias]['concepto']);
        $this->data[$this->alias]['numerovuelo']  = 
strtoupper($this->data[$this->alias]['numerovuelo']);
        $this->data[$this->alias]['user_id'] = AuthComponent::user('id');
        if($this->data[$this->alias]['costo'] == 
'')$this->data[$this->alias]['costo'] = 0;
        if($this->data[$this->alias]['tipocambio'] == 
'')$this->data[$this->alias]['tipocambio'] = 1;
        if($this->data[$this->alias]['precio'] == 
'')$this->data[$this->alias]['precio'] = 0;
        if($this->data[$this->alias]['tipocambioventa'] == 
'')$this->data[$this->alias]['tipocambioventa'] = 0;
        if($this->data[$this->alias]['personas'] == 
'')$this->data[$this->alias]['personas'] = 0;
        return true;
    }
}
?>
Estructura del $this->request->data de ambos modelos
Array 
( 
[Aereo] => 
Array 
( 
[0] => 
Array 
( 
[Linea] => Array ( [nombre] => 12 )
[concepto] => 12 
[numerovuelo] => 12 
[tipomoneda] => $ 
[tipocambio] => 
[costo] => 12 
[emision] => 0 
[tipomonedaventa] => $ 
[tipocambioventa] => 
[precio] => 12 
[personas] => 121 
) 
) 
)
Array 
( 
[Traslado] => 
Array 
( 
[0] => 
Array 
( 
[Proveedore] => Array ( [nombre] => ) 
[concepto] => 123 
[tipomoneda] => $ 
[tipocambio] => 
[costo] => 123 
[liquidacion] => 123 
[tipomonedaventa] => $ 
[tipocambioventa] => 
[precio] => 123 
[personas] => 123 
) 
) 
)
si bien hay un solo registro por cada modelo la idea es que sean varios


   - Accion add de los aereos
   
for ($i = 0; $i < count($this->request->data['Aereo']); $i++) {
                            /*                             * ************* 
Agrego y vinculo la linea aerea******** */
                            $this->Linea->create(array('nombre' => 
$this->request->data['Aereo'][$i]['Linea']['nombre']));
                            $this->Linea->save();
                            $linea = $this->Linea->find('first', 
array('conditions' => array('Linea.nombre' => 
$this->request->data['Aereo'][$i]['Linea']['nombre'])));
                            $this->request->data['Aereo'][$i]['linea_id'] = 
$linea['Linea']['id'];
                            $this->request->data['Aereo'][$i]['paquete_id'] 
= $paquete;
                        }
                        /*                         * 
******************************************************* */
$this->Aereo->saveAll($this->request->data['Aereo'])

Accion add de los traslados

/*                         * ************ Agrego y vinculo los 
armados**************** */
                        for ($i = 0; $i < 
count($this->request->data['Traslado']); $i++) {
                            /*                             * ************* 
Agrego y vinculo el proveedor********** */
                            $this->Proveedore->create(array('nombre' => 
$this->request->data['Traslado'][$i]['Proveedore']['nombre']));
                            $this->Proveedore->save();
                            $proveedore = $this->Proveedore->find('first', 
array('order' => array('Proveedore.id DESC'), 'fields' => array('id')));
                            
$this->request->data['Traslado'][$i]['proveedore_id'] = 
$proveedore['Proveedore']['id'];
                            
$this->request->data['Traslado'][$i]['paquete_id'] = $paquete;
                            /*                             * 
***************************************************** */
                        }
                        /*                         * 
********************************************************* */
                        
                        if 
($this->Traslado->saveAll($this->request->data['Traslado'])) {

Espero su ayuda porque esto me esta volviendo loco y ademas tengo que 
entregar este trabajo el fin de semana. Saludos y grcias de  antemano

-- 
Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de Grupos 
de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos 
electrónicos, envía un correo electrónico a 
[email protected].
Para publicar una entrada en este grupo, envía un correo electrónico a 
[email protected].
Visita este grupo en http://groups.google.com/group/cakephp-es?hl=es.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.


Responder a