/**
  * 保存申请单
  *
  * @param $data
  */
 public function orderSave($data)
 {
     import("@.Action.AutoNo.AutoNoAction");
     $orderno = '';
     $orderno = '';
     $orderhead = new PurchaseOrderHeadDao();
     $orderdetail = new PurchaseOrderDetailDao();
     $head = $data["head"];
     $detail = $data["detail"];
     try {
         $orderhead->startTrans();
         $orderdetail->startTrans();
         //head
         if ($head["id"] == null) {
             $orderno = AutoNoAction::getAutoNo('orderno');
             $head["orderNo"] = $orderno;
             $reuslt = $orderhead->add($head);
             if (!$reuslt) {
                 throw new Exception("新增申请单头出错!");
                 $orderhead->rollback();
             }
         } else {
             $orderno = $head["orderNo"];
             $reuslt = $orderhead->save($head);
             if (!$reuslt) {
                 throw new Exception("保存申请单头出错!");
                 $orderhead->rollback();
             }
         }
         //detail
         $orderdetail->startTrans();
         $result = $orderdetail->deleteAll("orderNo = '" . $head["orderNo"] . "'");
         if (!$result) {
             throw new Exception("删除申请单明细出错!");
             $orderhead->rollback();
             $orderdetail->rollback();
         }
         foreach ($detail as $item) {
             $item["orderNo"] = $head["orderNo"];
             if (trim($item["goodsNo"]) == '' || $item["goodsNo"] == null) {
                 continue;
             }
             $vo = $orderdetail->createVo('add', '', 'id', 0, $item);
             $result = $orderdetail->add($vo);
             if (!$result) {
                 throw new Exception("保存申请单明细出错!");
                 $orderhead->rollback();
                 $orderdetail->rollback();
             }
         }
     } catch (Exception $e) {
         throw new ExcelDateUtil($e);
         $orderdetail->rollback();
         $orderhead->rollback();
     }
     //commit;
     $orderhead->commit();
     $orderdetail->commit();
     return $orderno;
 }
Esempio n. 2
0
 /**
  * 修改/新增保存
  * @param $data
  * @return int $id
  */
 public function save($data)
 {
     import("@.Action.AutoNo.AutoNoAction");
     $storage = new StorageAction();
     unset($data["length"]);
     //新增
     if ($data["id"] == "") {
         $no = AutoNoAction::getAutoNo("storage");
         if ($data["upNode"] != '0' && $data["upNode"] != '1') {
             $no = $data["upNode"] . $no;
         }
         $data["storageNo"] = $no;
         $result = $storage->add($data);
         $data["id"] = $result;
     } else {
         $result = $storage->save($data);
     }
     if (!$result) {
         throw new Exception("保存仓库数据出错!");
     }
     return $data;
 }
    /**
     * 建立新的存储表
     *
     * @return boolean 
     */
    public static function createNewTable()
    {
        //获取表序列名
        $no = AutoNoAction::getAutoNo('stocksindex');
        $tablename = (DB_PREFIX ? DB_PREFIX . "_" : "") . "stocks" . $no;
        //create table ;
        switch (DB_TYPE) {
            case 'mysql':
                $sql = <<<SQL
CREATE TABLE `{$tablename}` (
  `id` int(11) NOT NULL auto_increment,
  `sysno` varchar(50) default NULL COMMENT '系统单号',
  `code` varchar(50) default NULL COMMENT '条码',
  `factoryNo` varchar(50) default NULL COMMENT '出厂编号',
  `goodsName` varchar(50) default NULL COMMENT '品名',
  `spec` varchar(50) default NULL COMMENT '型号',
  `voltage1` varchar(16) default NULL COMMENT '电压1',
  `voltage2` varchar(16) default NULL COMMENT '电压2',
  `current1` varchar(16) default NULL COMMENT '电流',
  `current2` varchar(16) default NULL COMMENT '电压2',
  `baseRange` varchar(16) default NULL COMMENT '相/线',
  `direct` varchar(50) default NULL COMMENT '方向',
  `constant` varchar(16) default NULL COMMENT '常数',
  `precision` varchar(16) default NULL COMMENT '精度',
  `lineIn` varchar(16) default NULL COMMENT '接入方式',
  `ratedLoad` varchar(16) default NULL COMMENT '额定负载',
  `grade` varchar(50) default NULL COMMENT '等级',
  `madeIn` varchar(50) default NULL COMMENT '生产厂家',
  `madeDate` date default NULL COMMENT '生产日期',
  `placeno` varchar(50) default NULL COMMENT '仓库编号',
  `place` varchar(50) default NULL COMMENT '仓库',
  `toplace` varchar(50) default NULL COMMENT '调拨到的仓库',
  `station` varchar(16) default NULL COMMENT '表位/周转箱',
  `billNo` varchar(10) default NULL COMMENT '单号',
  `billDate` date default NULL COMMENT '单据日期',
  `billType` varchar(8) default NULL COMMENT '单据类型',
  `orderNo` varchar(50) default NULL COMMENT '申请单号',
  `clientNo` varchar(32) default NULL COMMENT '客户编号',\t
  `client` varchar(50) default NULL COMMENT '供应商/客户',
  `address` varchar(256) default NULL COMMENT '客户地址',
  `sendMan` varchar(16) default NULL COMMENT '送表人/取表人',
  `saveMan` varchar(16) default NULL COMMENT '入库/出库人',
  `inqty` int(11) default NULL COMMENT '入库数',
  `outqty` int(11) default NULL COMMENT '出库数',
  `inoutType` varchar(6) default NULL COMMENT '入库/出库/报废',
  `memo` TEXT  default NULL COMMENT '备注',
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED;
SQL;
                break;
            case 'SQLite':
                $sql = <<<SQL
CREATE TABLE `{$tablename}` (
   id  INTEGER NOT NULL PRIMARY KEY,
   sysno  varchar(50) NULL ,
   code  varchar(50) NULL ,
   factoryNo TEXT NULL ,
   goodsName  varchar(50) NULL ,
   spec  varchar(50) NULL ,
   voltage1  varchar(16) NULL ,
   voltage2  varchar(16) NULL ,
   current1  varchar(16) NULL ,
   current2  varchar(16) NULL ,
   baseRange  varchar(16) NULL ,
   direct  varchar(50) NULL ,
   constant  varchar(16) NULL ,
   precision  varchar(16) NULL ,
   lineIn  varchar(16) NULL ,
   ratedLoad  varchar(16) NULL ,
   grade  varchar(50) NULL ,
   madeIn  varchar(50) NULL ,
   madeDate  date NULL ,
   placeno  varchar(50) NULL ,
   place  varchar(50) NULL ,
   toplace  varchar(50) NULL ,
   station  varchar(16) NULL ,
   billNo  varchar(10) NULL ,
   billDate  date NULL ,
   billType  varchar(8) NULL ,
   orderNo  varchar(50) NULL ,
   clientNo varchar(32) NULL ,
   client  varchar(50) NULL ,
   address  varchar(256) NULL ,
   sendMan  varchar(16) NULL ,
   saveMan  varchar(16) NULL ,
   inqty  INTEGER NULL ,
   outqty  INTEGER NULL ,
   inoutType  varchar(6) NULL,
   memo TEXT  NULL
);
SQL;
                break;
            default:
                return false;
        }
        $dao = new StocksIndexDao();
        try {
            $result = $dao->execute($sql);
        } catch (Executive $e) {
            throw new Exception($e, 'StocksIndexAction.getTableName');
        }
        return $tablename;
    }