コード例 #1
0
 public function deliver($get, $post)
 {
     $produce_order_id = $get['produce_order_id'];
     $deliver_info = SampleProduceOrderDeliverInfo::find('produce_order_id=?', $produce_order_id)->one() ?: new SampleProduceOrderDeliverInfo();
     if (!$deliver_info->id) {
         $tmp = SampleProduceOrder::findOneByPk($produce_order_id);
         /**
          * @var CustomerContact $ct
          * @var Customer $customer
          */
         $ct = $tmp->contact;
         $customer = $tmp->customer;
         $deliver_info->customer_name = $customer->company_full_name;
         $deliver_info->contact = $ct->chinese_name;
         $deliver_info->phone = $ct->mobile;
         $deliver_info->address = $customer->address;
     }
     if ($post) {
         $deliver_info->setValue('produce_order_id', $produce_order_id);
         $deliver_info->setValues($post);
         $deliver_info->save();
         SampleProduceOrder::updateByPk($produce_order_id, array('state' => SampleProduceOrder::STATE_DELIVERED));
         return $this->getCommonResult(true);
     }
     $logistics_company_list = LogisticsCompany::find('state=?', LogisticsCompany::STATE_ENABLED)->all();
     return array('logistics_company_list' => $logistics_company_list, 'deliver_info' => $deliver_info, 'produce_order_id' => $produce_order_id);
 }
コード例 #2
0
 public function __construct($data = array())
 {
     parent::__construct($data);
     $this->setPropertiesDefine(array('logistics_company' => array('options' => function () {
         $tmp = LogisticsCompany::find('state=?', LogisticsCompany::STATE_ENABLED)->all(true);
         return array_combine(array_column($tmp, 'id'), array_column($tmp, 'name'));
     }, 'display' => function (self $item) {
         $tmp = LogisticsCompany::findOneByPk($item->logistics_company);
         if (!$tmp) {
             return '';
         }
         return $tmp->state == LogisticsCompany::STATE_ENABLED ? $tmp->name : '<del>' . $tmp->name . '</del>';
     }), 'fee_currency_id' => array('options' => function () {
         $tmp = Currency::find()->all(true);
         return array_combine(array_column($tmp, 'id'), array_column($tmp, 'unit_name'));
     }, 'display' => function (self $item) {
         if ($item) {
             $tmp = Currency::find()->all(true);
             $tmp = array_group($tmp, 'id', true);
             return $tmp[$item->fee_currency_id]['unit_name'];
         }
         return '';
     }), 'deliver_date' => array('default' => date('Y-m-d'))));
 }