/** * 保存申请单 * * @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; }
/** * 修改/新增保存 * @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; }