Minggu, 09 Juni 2013

Controller Cake PHP

Meload Model
===========

$this->loadModel('MCustomer'); 

Mencari data berdasarkan Kriteria
=========================
array(
    'conditions' => array('Model.field' => $thisValue), //array of conditions
    'recursive' => 1, //int
    'fields' => array('Model.field1', 'DISTINCT Model.field2'), //array of field names
    'order' => array('Model.created', 'Model.field3 DESC'), //string or array defining order
    'group' => array('Model.field'), //fields to GROUP BY
    'limit' => n, //int
    'page' => n, //int
    'offset' => n, //int
    'callbacks' => true //other possible values are false, 'before', 'after'
)
 
----------------------------------------------------------------------- 

$this->set('mCustomer',$this->$modelName->MCustomer->find('all',
array('fields' => array('id','first_name'),'conditions' => array('MCustomer.flag_active' => 1))));
----------------------------------------------------
$options['conditions']['MCostList.m_activity_id ='] = $this->params['url']['m_activity_id'];
$options['conditions']['MCostList.m_route_id ='] = $this->params['url']['m_route_id'];    $options['conditions']['MCostList.m_service_id ='] = $this->params['url']['m_service_id'];
$options['conditions']['MCostList.m_brand_id ='] = $brand_id['MTruck']['m_brand_id'];
$result = $this->MCostList->find('all', $options);

Conditions
=======
 $condition["TJobOrder.approval"] = 1;
 $condition["TJobOrder.complete_status"] = 0;
 $condition["TJobOrder.branch_id"] = $branchId;
 $condition["TJobOrder.flag_cancel !="] = 'Y';
 $condition["TJobOrder.flag_interport"] = 0;
 $condition["TJobOrder.job_order_date >="] = $intervalDate[0][0]['date_int'];
 $condition["TJobOrder.job_order_date <="] = $nowDate;

$this->set('records', $this->paginate($modelName, $condition));
---------------------------------------------------------------------------------------
$conditionIndex = array("index", "TJobOrder.job_order_date <= '".$nowDate."' AND TJobOrder.job_order_date >='".$intervalDate[0][0]['date_int']."' AND TJobOrder.approval = 1 AND TJobOrder.flag_interport = '0' AND TJobOrder.complete_status = 0 AND TJobOrder.branch_id=".$branchId." AND TJobOrder.flag_cancel != 'Y' GROUP BY TJobOrder.id HAVING qty_allocation_detail < qty_job_order_detail");

 $records = $this->paginate('TAllocation',$conditionIndex);

OR Conditions
==========
$status = 3;
$conditions = array('Company.status' => array(0, $status));
--------------------------------------------------------------
$params = array('contain' => 'Product.name',
                'fields' => array('DISTINCT(Equipment.product_id) AS
id', 'Product.name'),
                'order' => array('Product.name'),
                'group' => array('Equipment.product_id'),
                'conditions' => array(
                        'AND' => array(
                                'Equipment.company_id' => $this->passedArgs['company'],
                                'Equipment.deleted' => 0,
                                'OR' => array(
                                        'Equipment.location_id' => null,
                                        'Equipment.location_id' => -1,
                                        'Equipment.location_id' => -2
                                )
                        )
                )); 
--------------------------------------------------------------
array(
    'OR' => array(
        array('Company.name' => 'Future Holdings'),
        array('Company.city' => 'CA')
    ),
    'AND' => array(
        array(
            'OR' => array(
                array('Company.status' => 'active'),
                'NOT' => array(
                    array('Company.status' => array('inactive', 'suspended'))
                )
            )
        )
    )
) 
 
JOIN Table
==========
$options['joins'] = array(
    array('table' => 'channels',
        'alias' => 'Channel',
        'type' => 'LEFT',
        'conditions' => array(
            'Channel.id = Item.channel_id',
        )
    )
);

$Item->find('all', $options);
  
Pagination
 =======
$this->paginate['limit'] = 40;
$this->paginate['recursive'] = 2;
$this->paginate['conditions']['TAllocationDetail.status_sm >'] = 0;
$this->paginate['conditions']['TAllocationDetail.print_status'] = 0;
$this->paginate['conditions']['TAllocation.branch_id'] = $this->Myappuser->getBranchId();
$this->paginate['order'] = array("TAllocation.date" => 'DESC');

Save data
========
$this->$modelName->saveAll($this->data)

Unbind Model
==========
$this->TDebitNote->unbindModel(array(
            'belongsTo' => array(
                'TJobOrder','MCustomer','TBillingPreparation'
            ),
           
        ), false);

--------------------------------------------------------------------------------
$this->$modelName->TBillingPreparation->TJobOrder->unbindModel(array(
            'belongsTo' => array(
                'TAgreement',
                'MBranch',
            ),
            'hasOne' => array(
                'TAllocation',
                'TBillingPreparation',
                'TDebitNote',
            ),
            'hasMany' => array(
                'TJobOrderDetail',
            ),
        ), false);

Unbind Semuanya dan Mengmbil yang terpakai
=================================
$this->MktAgreementDetail->unbindAll(array('belongsTo'=>array('MktAgreementDetail','SetupActivity','SetupUnit')));

 Mengambil Customer dari table transaksi
=======================================
$this->loadModel('TransPraInfoExport');
$this->TransPraInfoExport->unbindall(array('belongsTo'=>array('SetupCustomer')));
$this->TransPraInfoExport->SetupCustomer->unbindall();
$customers = $this->TransPraInfoExport->find('all', array('fields'=>'SetupCustomer.id,SetupCustomer.name', 'recursive' => 2,'group'=>'setup_customer_id'));
$this->set('customers',$customers);

Mengambil data tertentu untuk dimasukkan ke $this->data tertentu
=============================================
foreach($this->data["TAllocationDetail"]['detail'] as $key=>$index) {
                $this->data["TBopDetail"][$key]['cost_type'] = $index['cost_type'];
                $this->data["TBopDetail"][$key]['m_cost_id'] = $index['m_cost_id'];
                $this->data["TBopDetail"][$key]['m_currency_id'] = $index['m_currency_id'];
                $this->data["TBopDetail"][$key]['amount'] =  $index['amount'];    
                }
Continue Reading...