Ejemplo n.º 1
0
 public function __construct($data = array())
 {
     $this->setPropertiesDefine(array('user' => array('getter' => function ($item) {
         return User::findOneByPk($item->user_id);
     }), 'action' => array('getter' => function ($item) {
         $all = AccessAction::find()->all(true);
         $all = array_group($all, 'id', true);
         return new AccessAction($all[$item->action_id]);
     }), 'type_text' => array('getter' => function ($item) {
         return self::$type_list[$item->type];
     })));
     parent::__construct($data);
 }
Ejemplo n.º 2
0
 public function __construct($data = array())
 {
     parent::__construct($data);
     $this->setPropertiesDefine(array('customer_id' => array('options' => function (SampleProduceOrder $item = null) {
         if ($item && $item->customer_id) {
             $company_alias_name = Customer::findOneByPk($item->customer_id)->company_alias_name;
             return array($item->customer_id => $company_alias_name);
         }
         return null;
     }, 'alias' => '客户'), 'customer' => array('getter' => function (self $item) {
         if ($item) {
             return Customer::findOneByPk($item->customer_id);
         }
         return null;
     }), 'contact' => array('getter' => function (SampleProduceOrder $item) {
         if ($item->contact_id) {
             return CustomerContact::findOneByPk($item->contact_id);
         }
         return null;
     }), 'contact_id' => array('options' => function (SampleProduceOrder $item = null) {
         if ($item && $item->contact_id) {
             $contact_name = CustomerContact::findOneByPk($item->contact_id)->chinese_name;
             return array($item->contact_id => $contact_name);
         }
         return null;
     }, 'alias' => '联系人'), 'boss_head_employee_id' => array('options' => function () {
         $tmp = Employee::find('state=?', Employee::STATE_ENABLED)->all(true);
         return array_combine(array_column($tmp, 'id'), array_column($tmp, 'name'));
     }, 'display' => function (self $item) {
         $tmp = Employee::findOneByPk($item->boss_head_employee_id);
         if (!$tmp) {
             return '';
         }
         return $tmp->state == Employee::STATE_ENABLED ? $tmp->name : '<del>' . $tmp->name . '</del>';
     }, 'alias' => '负责人'), 'produce_finish_date' => array('default' => date('Y-m-d')), '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->currency_id]['unit_name'];
         }
         return '';
     }), 'product_fee' => array('description' => 'RMB'), 'business_order' => array('getter' => function (self $item) {
         return BusinessOrder::findOneByPk($item->business_order_id);
     })));
 }
Ejemplo n.º 3
0
 public function index()
 {
     $process_list = array();
     $all_process = WorkProcess::find()->all(true);
     $all_process = array_group($all_process, 'work_stage_id');
     foreach (WorkStage::$work_stage_list as $stage_id => $name) {
         $rs = array();
         $ps = $all_process[$stage_id] ?: array();
         array_orderby($ps, 'ord', SORT_DESC);
         foreach ($ps as $p) {
             $rs[] = new WorkProcess($p);
         }
         $process_list[$stage_id] = $rs;
     }
     return array('process_list' => $process_list);
 }
Ejemplo n.º 4
0
 /**
  * @param $get
  * @param $post
  * @return array
  */
 public function update($get, $post)
 {
     $sample_id = $get['sample_id'] ?: $post['sample_id'];
     $sample_info = Sample::findOneByPk($sample_id);
     if ($post) {
         SampleWorkCost::deleteWhere(0, 'sample_id = ?', $sample_id);
         $data = array();
         foreach ($post['price_list'] as $flow_id => $price) {
             $data[] = array('sample_id' => $sample_id, 'technic_flow_id' => $flow_id, 'price' => $price);
         }
         SampleWorkCost::insertMany($data);
         return new Result('操作成功', true);
     }
     $technic_flow_list = (new SingleSample())->getPropertiesDefine('technic_flow_id_list')['options'];
     $tmp = SampleWorkCost::find('sample_id = ?', $sample_id)->all(true);
     $cost_data = array_group($tmp, 'technic_flow_id', true);
     return array('sample_info' => $sample_info, 'technic_flow_list' => $technic_flow_list, 'cost_data' => $cost_data);
 }
 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'))));
 }
Ejemplo n.º 6
0
 /**
  * 获取所有权限列表
  * @description 这里为了强制后台权限更新之后,刷新用户最新权限,
  * 因此不做cache
  * @param $user_group_id
  * @param int $type 白名单0,黑名单1
  * @return mixed
  */
 private static function getActionList($user_group_id, $type = 0)
 {
     $tmp = UserGroupAuth::find('user_group_id = ? AND type = ?', $user_group_id, $type)->all(true);
     $action_id_list = array_column($tmp, 'action_id');
     $action_list = AccessAction::find('id IN ?', $action_id_list)->all(true);
     $action_list = array_group($action_list, 'id', true);
     foreach ($tmp as $k => $item) {
         $tmp[$k]['uri'] = $action_list[$item['action_id']]['uri'];
     }
     return $tmp;
 }
Ejemplo n.º 7
0
 /**
  * @param $data
  * @param $current
  * @param array $opt
  * @return string
  */
 public static function generateParentTreeSelector($data, $current, $opt = array())
 {
     $opt = array_merge(array('return_as_tree' => false, 'level_key' => 'tree_level', 'id_key' => 'id', 'name_key' => 'name', 'parent_id_key' => 'parent_id', 'children_key' => 'children'), $opt);
     $data = array_filter_subtree(0, $data, $opt);
     /** @var array $data */
     $data = array_group($data, $opt['id_key'], true);
     $match = false;
     foreach ($data as $k => $item) {
         if ($item[$opt['id_key']] == $current[$opt['id_key']]) {
             $match = true;
             $data[$k]['__current__'] = true;
         } else {
             if ($match && $item[$opt['level_key']] <= $current[$opt['level_key']]) {
                 $match = false;
             } else {
                 if ($match && $item[$opt['level_key']] > $current[$opt['level_key']]) {
                     $data[$k]['__belongs__'] = true;
                 } else {
                     $match = false;
                 }
             }
         }
         $data[$k]['tree_name'] = str_repeat('&nbsp;', $item[$opt['level_key']] * 5) . '|-' . $item[$opt['name_key']];
     }
     $html = '<select size="1" name="' . $opt['parent_id_key'] . '">';
     $html .= '<option value="0">顶级</option>';
     foreach ($data as $item) {
         $html .= '<option value="' . $item[$opt['id_key']] . '" ' . ($item[$opt['id_key']] == $current[$opt['parent_id_key']] ? 'selected="selected"' : '') . ($item['__belongs__'] || $item['__current__'] ? ' disabled="disabled"' : '') . '>' . $item['tree_name'] . '</option>';
     }
     $html .= '</select>';
     return $html;
 }
Ejemplo n.º 8
0
use Lite\Core\Config;
use Lite\CRUD\ModelInterface;
use Lite\DB\Model;
use www\model\WorkProcess;
use www\model\WorkStage;
use function Lite\func\array_group;
use function Lite\func\dump;
use function Lite\func\h;
/** @var ModelInterface|Model $model_instance */
include $this->resolveTemplate('inc/header.inc.php');
$pk = $model_instance->getPrimaryKey();
$extra_params = $this->getData('extra_params');
$update_fields = $this->getData('update_fields');
$all_process_list = WorkProcess::getProcessInOrder();
$all_process_list = array_group($all_process_list, 'work_stage_id');
?>
	<div id="col-aside">
		<?php 
echo $this->getSideMenu();
?>
	</div>
	<div id="col-main">
		<form action="<?php 
echo $this->getUrl($this->getController() . '/update', array($pk => $model_instance->{$pk}));
?>
" class="frm" rel="async" method="post">
			<input style="display:none">
			<input type="password" style="display:none">

			<?php 
Ejemplo n.º 9
0
 public function update($get, $post)
 {
     $order = SampleProduceOrder::findOneByPk($get['id']) ?: new SampleProduceOrder();
     if ($post) {
         if ($post['produce_type'] == SampleProduceOrder::TYPE_ORDER) {
             if ($post['business_order_no']) {
                 $post['business_order_id'] = BusinessOrder::find('order_no=?', $post['business_order_no'])->ceil('id');
             }
             if (!$post['business_order_id']) {
                 return new Result('您输入的订单号没有对应的订单:' . $post['business_order_no']);
             }
         }
         $org_id = $order->boss_head_employee_id;
         $order->setValues($post);
         if (!$order->id) {
             $order->boss_head_employee_id = Auth::instance()->getLoginUserId();
         } else {
             $order->boss_head_employee_id = $org_id;
         }
         $result = parent::update($get, $post);
         if ($result->isSuccess()) {
             return new Result('操作成功', true);
         }
     }
     $customer_list = Customer::find()->all();
     $current_contact_list = array();
     if ($order->id) {
         $current_contact_list = CustomerContact::find('customer_id =?', $order->contact->customer_id)->all();
     }
     $all_contact_list = CustomerContact::find()->all(true);
     $all_contact_list = array_group($all_contact_list, 'customer_id');
     return array('order' => $order, 'customer_list' => $customer_list, 'all_contact_list' => $all_contact_list, 'current_contact_list' => $current_contact_list);
 }
Ejemplo n.º 10
0
					</td>
				</tr>
			</tbody>
		</table>
	</form>
	<style>
		.field-produce_finish_date {display:none;}
	</style>
	<script>
		seajs.use('jquery', function($){
			var SAMPLE_PRODUCE_TYPE_ORDER = '<?php 
echo SampleProduceOrder::TYPE_ORDER;
?>
';
			var CUSTOMER_LIST = <?php 
echo json_encode(array_group(Model::convertObjectListToArray($customer_list), 'id', true));
?>
;
			var ALL_CONTACT_LIST = <?php 
echo json_encode($all_contact_list);
?>
;
			var $CUS_SEL = $('[name=customer_id]');
			var $CONT_SEL = $('[name=contact_id]');

			$CUS_SEL.change(function(){
				$CONT_SEL[0].options.length = 0;
				$('#address').html('-');
				if(this.value){
					var contact_list = ALL_CONTACT_LIST[this.value];
					var CURRENT_CUS = CUSTOMER_LIST[this.value];