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