here is the code.. now, this function can work normally, but only for ITEM model, i use manual query likle "INSERT INTO 'items' VALUES(.......)". $this->Item->getLastInsertID doesn't work too, so i use msqyl_insert_id ant it works.
############################################################ function finish() { $user_id = $this->Session->Read('user_id'); $date = date('Y-m-d'); $purchase = $this->TemporaryPurchase->findByUserId($user_id); //-------------------------------------------------- Purchase ---------------------------------------------// //setting data before save $data_purchase = $purchase['TemporaryPurchase']; $data_purchase['entry_by'] = $user_id; $data_purchase['entry_date'] = $date; $data_purchase['f_valid'] = 'f'; unset($data_purchase['id']); //saving data into table $this->Purchase->Create($data_purchase); $this->Purchase->Save($data_purchase); $purchase_id = $this->Purchase->getLastInsertID(); $i = 0; foreach($purchase['TemporaryPurchaseDetail'] as $purchase_detail) : $item = $this->TemporaryItem->findById($purchase_detail ['temporary_item_id']); $purchase_item_details = $this->TemporaryPurchaseItemDetail- >findAllByTemporaryPurchaseDetailId($purchase_detail['id']); //-------------------------------------------------- Item ---------------------------------------------// //setting data before save $data_item = $item['TemporaryItem']; $data_item['entry_by'] = $user_id; $data_item['entry_date'] = $date; $data_item['f_expired'] = 'f'; $data_item['f_return'] = 'f'; $data_item['f_active'] = 'f'; unset($data_item['id']); unset($data_item['user_id']); $this->data['Item'] = $data_item; /*----------------------------------- the problem goes here --------------------------------*/ $this->Item->Create($this->data); $this->Item->Save($this->data); $item_id = $this->Item->getLastInsertID(); / *---------------------------------------------------------------------------------------------------- */ if(!empty($item_id)) : //setting id for next save //-------------------------------------------------- PurchaseDetail ---------------------------------------------// //setting data before save $data_purchase_detail = array( 'purchase_id' => $purchase_id, 'item_id' => $item_id, 'quantity' => $purchase_detail['quantity'], ); //saving data into table $this->PurchaseDetail->Create($data_purchase_detail); $this->PurchaseDetail->Save($data_purchase_detail); $purchase_detail_id = $this->PurchaseDetail->getLastInsertID(); $purchase['TemporaryPurchaseDetail'][$i]['TemporaryItem'] = $item ['TemporaryItem']; $purchase['TemporaryPurchaseDetail'][$i] ['TemporaryPurchaseItemDetail'] = $purchase_item_details; $j = 0; foreach($purchase_item_details as $purchase_item_detail) : $item_detail = $this->TemporaryItemDetail->findById ($purchase_item_detail['TemporaryPurchaseItemDetail'] ['temporary_item_detail_id']); $purchase['TemporaryPurchaseDetail'][$i] ['TemporaryPurchaseItemDetail'][$j]['TemporaryItemDetail'] = $item_detail['TemporaryItemDetail']; //-------------------------------------------------- ItemDetail ---------------------------------------------// //setting data before save $data_item_detail = $item_detail['TemporaryItemDetail']; $data_item_detail['item_id'] = $item_id; $data_item_detail['entry_by'] = $user_id; $data_item_detail['entry_date'] = $date; $data_item_detail['f_valid'] = 'f'; unset($data_item_detail['id']); unset($data_item_detail['user_id']); //saving data into table $this->ItemDetail->Create($data_item_detail); $this->ItemDetail->Save($data_item_detail); $item_detail_id = $this->ItemDetail->getLastInsertID(); //setting id for next save $this->ItemDetail->id = $item_detail_id + 1; //-------------------------------------------------- PurchaseItemDetail ---------------------------------------------// //setting data before save $data_purchase_item_detail = array( 'purchase_detail_id' => $purchase_detail_id, 'item_detail_id' => $item_detail_id, 'item_purchases_price' => $purchase_item_detail ['TemporaryPurchaseItemDetail']['item_purchases_price'], ); //saving data into table $this->PurchaseItemDetail->Create($data_purchase_item_detail); $this->PurchaseItemDetail->Save($data_purchase_item_detail); $j++; endforeach; endif; $i++; endforeach; //$this->redirect('/purchases/clear_transaction/'); } ################################################################################### here is the item model <?php class Item extends AppModel { var $name = "Item"; var $belongsTo = array('Item_Type' => array('className' => 'ItemType', 'conditions' => '', 'order' => '', 'fields' => array('Item_Type.id','Item_Type.desc'), 'foreignKey' => 'item_type_id', ), 'Item_Brand_Type' => array('className' => 'ItemBrandType', 'conditions' => '', 'order' => '', 'fields' => array ('Item_Brand_Type.id','Item_Brand_Type.desc'), 'foreignKey' => 'item_brand_type_id', ), ); var $validate = array( 'desc' => array( 'rule' => VALID_NOT_EMPTY, 'required' => true, 'allowEmpty'=> false, 'message' => "Item desc must be filled in", ), 'info' => array( 'rule' => VALID_NOT_EMPTY, 'required' => true, 'allowEmpty'=> false, 'message' => "Item info must be filled in", ), 'quantity' => array( 'rule' => array('numeric'), 'required' => true, 'allowEmpty'=> false, 'message' => "Item quantity must be filled in with numeric valid character", ), 'default_price' => array( 'rule' => array('numeric'), 'required' => true, 'allowEmpty'=> false, 'message' => "Item default price must be filled in with numeric valid character", ), ); } #################################################### thanks a lot... --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "CakePHP" group. To post to this group, send email to cake-php@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/cake-php?hl=en -~----------~----~----~----~------~----~------~--~---