コード例 #1
0
 /**
  * 
  */
 public function addItem($pn_object_id, $pa_values, $pa_options = null)
 {
     if (isset($pa_options['order_id']) && (int) $pa_options['order_id']) {
         $vn_order_id = (int) $pa_options['order_id'];
     } else {
         $vn_order_id = $this->getPrimaryKey();
     }
     if (!$vn_order_id) {
         return null;
     }
     $t_item = new ca_commerce_order_items();
     $t_item->setMode(ACCESS_WRITE);
     $t_item->set('order_id', $vn_order_id);
     $t_item->set('object_id', $pn_object_id);
     foreach ($pa_values as $vs_f => $vs_v) {
         $t_item->set($vs_f, $vs_v);
     }
     if (isset($pa_options['additional_fees']) && is_array($pa_options['additional_fees'])) {
         $va_fees = array();
         foreach ($pa_options['additional_fees'] as $vs_code => $vn_fee) {
             $va_fees[$vs_code] = sprintf("%4.2f", $vn_fee);
         }
         $t_item->set('additional_fees', $va_fees);
     }
     // set fulfillment method
     if (!isset($pa_values['fullfillment_method'])) {
         if (isset($this->opo_services_list[$t_item->get('service')]['fulfillment_method'])) {
             $t_item->set('fullfillment_method', $this->opo_services_list[$t_item->get('service')]['fulfillment_method']);
         }
     }
     $t_item->insert();
     if ($t_item->numErrors()) {
         $this->errors = $t_item->errors;
         return null;
     }
     // Add first representation by default
     $t_object = new ca_objects($pn_object_id);
     $vn_rep_id = $t_object->getPrimaryRepresentationID();
     if ($this->get('order_type') == 'O') {
         $t_item->addRepresentations(isset($pa_options['representation_ids']) && is_array($pa_options['representation_ids']) ? $pa_options['representation_ids'] : array($vn_rep_id));
     }
     return $t_item;
 }