Example #1
0
 public function queryParmList($type, $parmname)
 {
     $action = new OtherParmSetupAction();
     $result = $action->queryParmList($type, $parmname);
     //system_out(print_r($result,true));
     return $result;
 }
 /**
  * 保存
  *
  * @param Array $data  Example:$data["modify"] = array()
  *                             $data["delete"} = array()
  * @return boolean true if succeed
  */
 public function save($data)
 {
     //明细表
     $stocks = new StocksDao();
     $stocks->startTrans();
     //当前库存表
     $current = new CurrentStocksDao();
     $current->startTrans();
     $modify = $data["modify"];
     $delete = $data["delete"];
     //删除的数据
     for ($i = 0; $i < sizeof($delete); $i++) {
         try {
             $tablename = StocksIndexAction::getSaveTableName($delete[$i]["billDate"]);
             if ($delete[$i]["id"] != '') {
                 $vo = $stocks->find("id=" . $delete[$i]["id"], $tablename);
                 //if($vo==true && $vo->station != '' && $vo->station != null)
                 //{
                 //	$stocks->rollback();
                 //	$current->rollback() ;
                 //	$this->setError("[" . $delete[$i]["code"] . "]已经确认位置,不能删除");
                 //	return false ;
                 //}
                 $rtn = $stocks->deleteById($delete[$i]["id"], $tablename);
                 //减库存
                 if ($vo != null && !$vo->isEmpty()) {
                     $rtn = $this->createCurrentStocks($current, '', $vo->toArray());
                     if (!$rtn) {
                         $stocks->rollback();
                         $current->rollback();
                         $this->setError($this->getError());
                         return false;
                     }
                 }
             }
             //end if
         } catch (Exception $e) {
             $current->rollback();
             $stocks->rollback();
             throw new Exception($e);
         }
         //end try
     }
     //end for
     //保存人员近参数表
     $otherparm = new OtherParmSetupAction();
     $otherparm->addParm('other', 'member', $modify[0]['sendMan']);
     $mis = new MIS();
     //添加/修改的数据
     for ($i = 0; $i < sizeof($modify); $i++) {
         //保存进库存明细表
         try {
             $tablename = StocksIndexAction::getSaveTableName($modify[$i]["billDate"]);
             if ($modify[$i]["id"] == '' || $modify[$i]["id"] == null || $modify[$i]["id"] == 0) {
                 $vo = $stocks->createVo('add', '', 'id', 0, $modify[$i]);
                 $result = $stocks->add($vo, $tablename);
                 if (!$result) {
                     $stocks->rollback();
                     $current->rollback();
                     system_out("StocksManagerActin.save error:新增数据保存出错,errcode:{$result}");
                     $this->setError("数据保存出错!");
                     return false;
                 }
                 //生成当前库存表
                 $rtn = $this->createCurrentStocks($current, $vo->toArray(), '');
                 if (!$rtn) {
                     $current->rollback();
                     $stocks->rollback();
                     $this->setError($this->getError());
                     return false;
                 }
                 //增加条码索引
                 if ($vo->code != '' && $vo->code != null) {
                     CodeIndexAction::addCodeIndex($vo->billDate, $vo->code);
                 }
                 //输出出库列表
                 $result = $mis->outPut($modify[$i]);
             } else {
                 $vo = $stocks->find("id=" . $modify[$i]["id"], $tablename);
                 if (!$vo) {
                     $stocks->rollback();
                     $current->rollback();
                     $this->setError("数据保存出错,数据在保存前已被删除!");
                     return false;
                 }
                 $oldvo = clone $vo;
                 //给Vo对象赋值
                 $this->refreshStocksInfo(&$vo, $modify[$i]);
                 $result = $stocks->save($vo, $tablename);
                 if (!$result) {
                     $stocks->rollback();
                     $current->rollback();
                     system_out("StocksManagerActin.save error:修改数据保存出错,errcode:{$result}");
                     $this->setError("数据保存出错,数据在保存前已被删除!");
                     return false;
                 }
                 //生成当前库存表
                 $rtn = $this->createCurrentStocks($current, $vo->toArray(), $oldvo->toArray());
                 if (!$rtn) {
                     $current->rollback();
                     $stocks->rollback();
                     $this->setError($this->getError());
                     return false;
                 }
             }
             //end if
         } catch (Exception $e) {
             $current->rollback();
             $stocks->rollback();
             throw new Exception($e);
         }
         //end try
     }
     //end for
     $stocks->commit();
     $current->commit();
     return true;
 }