public function actionSubmitApplication() { $me = _G('ME'); $group = _G('GROUP'); if (!$me->id || !$group->id || !$me->isAllowedTo('设置')) { return; } $form = $this->form('post'); $type = trim($form['type']); $casNO = trim($form['cas_no']); $volume = trim($form['volume']); $reason = trim($form['reason']); if (!$reason) { return \Gini\IoC::construct('\\Gini\\CGI\\Response\\JSON', ['code' => 1, 'message' => T('请填写申请理由')]); } $title = \Gini\ORM\ChemicalLimits\Request::getTypeTtile($type); if (!$type || !$title) { return \Gini\IoC::construct('\\Gini\\CGI\\Response\\JSON', ['code' => 2, 'message' => T('请选择分类')]); } if ($casNO) { $chemInfo = \Gini\ChemDB\Client::getChemicalInfo($casNO); if (empty($chemInfo)) { return \Gini\IoC::construct('\\Gini\\CGI\\Response\\JSON', ['code' => 3, 'message' => T('请重新选择化学品')]); } $chem = ['cas' => $casNO, 'state' => $chemInfo['state'], 'default']; } else { $chem = ['default']; } if (!\Gini\Unit\Conversion::of($chem)->validate($volume)) { return \Gini\IoC::construct('\\Gini\\CGI\\Response\\JSON', ['code' => 4, 'message' => T('上限设置格式错误,请输入数字+单位,例5mg(目前系统支持单位: 瓶/bottle/ml/g/cm3/ul/μl/ml/cl/dl/l/gal/lb/ug/μg/mg/kg/oz/lb/)')]); } $rpc = \Gini\Module\HazardousControlOrders::getRPC('chemical-limits'); $result = (bool) $rpc->admin->inventory->addRequest(['type' => $type, 'cas_no' => $casNO, 'volume' => $volume, 'group_id' => $group->id, 'owner_id' => $me->id, 'reason' => $reason]); return \Gini\IoC::construct('\\Gini\\CGI\\Response\\JSON', ['code' => $result ? 0 : 5, 'message' => $result ? T('上限申请提交成功') : T('提交上限申请失败,请重试')]); }
private function _getProductTypes($type, $subType = null, $cas = null) { $result = []; if ($cas) { if (isset(self::$data[$cas])) { $data = self::$data[$cas]; } else { self::$data[$cas] = $data = \Gini\ChemDB\Client::getChemicalInfo($cas); } if (is_array($data)) { $result[] = $data['types']; $result[] = $type; } if (!empty($result)) { return $result; } } $types = [\Gini\ORM\Product::RGT_TYPE_NORMAL => 'normal', \Gini\ORM\Product::RGT_TYPE_HAZARDOUS => 'hazardous', \Gini\ORM\Product::RGT_TYPE_DRUG_PRECURSOR => 'drug_precursor', \Gini\ORM\Product::RGT_TYPE_HIGHLY_TOXIC => 'highly_toxic', \Gini\ORM\Product::RGT_TYPE_EXPLOSIVE => 'explosive']; if ($subType && isset($types[$subType])) { $result[] = $types[$subType]; } $result[] = $type; return $result; }