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
-~----------~----~----~----~------~----~------~--~---

Reply via email to