public function insert() { $pid = abs(intval($_GET["pid"])); $model = D("ProductTplDetail"); foreach ($_POST["rows"] as $row) { if (!$row) { continue; } if (strpos($row["goods_id"], "_") === false) { //编辑模式 $goods_id = $row["goods_id"]; $factory_code_all = $row["factory_code_all"]; $stock_id = $row["stock_id"]; } else { list($fc, $goods_id, $catid) = explode("_", $row["goods_id"]); $factory_code_all = makeFactoryCode($row, $fc); $stock_id = $row["stock"]; } $data = array("tpl_id" => $pid, "goods_id" => $goods_id, "factory_code_all" => $factory_code_all, "num" => $row["num"], "stock_id" => $stock_id, "memo" => $row["memo"]); if ($row["id"]) { $data["id"] = $row["id"]; $model->save($data); // echo $model->getLastSql(); } else { $model->add($data); } } // print_r($_POST);exit; }
/** * */ public function insert() { $data = $_POST; foreach ($data["rows"] as $k => $row) { if (!$row or !$row["goods_id"]) { unset($data["rows"][$k]); continue; } list($fcCode, $goods_id, $catid) = explode("_", $row["goods_id"]); $data["rows"][$k]["goods_id"] = $goods_id; $data["rows"][$k]["factory_code_all"] = makeFactoryCode($row, $fcCode); unset($data["rows"][$k]["standard"]); unset($data["rows"][$k]["version"]); } $data["bill_id"] = makeBillCode("ST"); $data["dateline"] = strtotime($data["inputTime"]); $data["saler_id"] = $this->user["id"]; unset($data["customerInfo"]); unset($data["discount"]); unset($data["inputTime"]); $model = D("Returns"); $returnsId = $model->newReturns($data); // var_dump($returnsId);exit; if (!$returnsId) { $this->error($model->getError()); return; } import("@.Workflow.Workflow"); $workflow = new Workflow($this->workflowAlias); $node = $workflow->doNext($returnsId, "", true); // $this->redirect("/JXC/Orders/editDetail/id/".$id); // $this->success(L("operate_success")); }
/** * @override */ public function select($options = array()) { $data = parent::select($options); if (!$data) { return $data; } foreach ($data as $k => $v) { $data[$k]["factory_code_all"] = makeFactoryCode($v, $v["factory_code"]); } return $data; }
protected function pretreatment() { switch ($this->_method) { case "put": case "post": $goods = D("Goods")->find($_POST["goods_id"]); $_POST["factory_code_all"] = makeFactoryCode($_POST, $goods["factory_code"]); //sprintf("%s-%d-%d", $goods["factory_code"], $_POST["standard"], $_POST["version"]); } // print_r($_POST);exit; }
public function formatData($data) { $rowsFields = array("goods_id", "factory_code_all", "num", "unit_price", "amount", "discount", "order_id", "memo"); $data["tax_amount"] = $data["tax_amount"]; $data["total_num"] = 0; foreach ($data["rows"] as $k => $row) { if (!$row or !$row["goods_id"]) { unset($data["rows"][$k]); continue; } list($fcCode, $goods_id, $catid) = explode("_", $row["goods_id"]); $data["rows"][$k]["goods_id"] = $goods_id; $data["rows"][$k]["factory_code_all"] = makeFactoryCode($row, $fcCode); $data["total_num"] += $row["num"]; } foreach ($data["rows"] as $k => $row) { foreach ($row as $i => $j) { if (!in_array($i, $rowsFields)) { unset($data["rows"][$k][$i]); } } } $id = abs(intval($_GET["id"])); if ($id) { $data["id"] = $id; } else { $data["bill_id"] = makeBillCode("XS"); } if ($data["inputTime"] && !$id) { $data["dateline"] = strtotime($data["inputTime"]); } else { unset($data["dateline"]); } $data["saler_id"] = getCurrentUid(); $data["tax_amount"] = $data["tax_amount"] ? $data["tax_amount"] : 0; unset($data["customerInfo"]); unset($data["discount"]); unset($data["inputTime"]); return $data; }
/** * 格式化POST或者PUT的数据 * @params $postData 提交的数据 * @params $forceInsert 强制定义为插入,而非修改(billItem是否包含ID) */ public function formatData($postData, $forceInsert = false) { $stockinModel = $this; $billData = array("bill_id" => makeBillCode(C("BILL_PREFIX.Stockin")), "subject" => $postData["subject"], "dateline" => $postData["dateline"] ? strtotime($postData["dateline"]) : CTS, "status" => 0, "user_id" => getCurrentUid(), "stock_manager" => 0, "total_num" => 0, "memo" => $postData["memo"], "type_id" => $postData["type_id"]); if ($postData["source_model"]) { $billData["source_model"] = $postData["source_model"]; $billData["source_id"] = $postData["source_id"]; } $id = abs(intval($_GET["id"])); if ($id) { $billData["id"] = $id; } $data = $postData["rows"]; $billItems = array(); $needed = array("goods_id", "num"); foreach ($data as $k => $billItem) { if (!$billItem || !$billItem["num"] || !checkParamsFull($billItem, $needed)) { continue; } list($factory_code, $goodsId, $catid) = explode("_", $billItem["goods_id"]); $billItems[$k] = array("goods_id" => $goodsId, "num" => $billItem["num"], "factory_code_all" => makeFactoryCode($billItem, $factory_code), "memo" => $billItem["memo"], "stock_id" => $billItem["stock"]); $billData["total_num"] += $billItem["num"]; if (!$forceInsert and $billItem["id"]) { $billItems[$k]["id"] = $billItem["id"]; } } return array($billData, reIndex($billItems)); }
public function formatData($postData) { if (!$postData["id"]) { $data["bill_id"] = makeBillCode("CK"); $data["source_id"] = $postData["source_id"] ? $postData["source_id"] : ""; $data["source_model"] = $postData["source_model"] ? $postData["source_model"] : ""; $data["stock_manager"] = getCurrentUid(); $data["status"] = 0; } else { $data["id"] = $postData["id"]; } if ($postData["dateline"]) { if (strtotime($postData['dateline'])) { $data["dateline"] = strtotime($postData['dateline']); } else { $data["dateline"] = strtotime($postData['dateline']); } } else { $data["dateline"] = CTS; } $data["total_num"] = $postData["total_num"]; $data["memo"] = $postData["memo"]; $rows = array(); $needed = array("goods_id", "num"); foreach ($postData["rows"] as $row) { list($fc, $goods_id) = explode("_", $row["goods_id"]); if (!checkParamsFull($row, $needed) || !$row["num"]) { continue; } $rows[] = array("id" => $row["id"] ? $row["id"] : 0, "stockout_id" => $row["stockout_id"], "factory_code_all" => makeFactoryCode($row, $fc), "goods_id" => $goods_id, "goods_id_label" => $row["goods_id_label"], "stock_id" => $row["stock"], "num" => $row["num"], "store_num" => $row["store_num"], "outed" => $row["outed"] ? $row["outed"] : 0, "memo" => $row["memo"]); } $data["rows"] = $rows; return $data; }
public function run() { $planModel = D("ProducePlan"); $detailModel = D("ProducePlanDetail"); $tplModel = D("ProductTpl"); $tplDetailModel = D("ProductTplDetail"); $bomModel = D("ProduceBoms"); //执行下一步 if ($_REQUEST["donext"]) { //@todo 数据完整性检查 //清除当前的数据 $bomModel->startTrans(); $bomModel->where(array("plan_id" => $_POST["id"]))->delete(); //重新写入 foreach ($_POST["data"]["rows"] as $row) { list($factoryCode, $goodsId, $catId) = explode("_", $row["goods_id"]); if (!$goodsId) { continue; } $row["goods_id"] = $goodsId; $data = array("plan_id" => $_POST["id"], "plan_detail_id" => $row["plan_detail_id"] ? $row["plan_detail_id"] : 0, "factory_code_all" => $row["factory_code_all"] ? $row["factory_code_all"] : makeFactoryCode($row, $factoryCode), "num" => intval($row["num"]), "goods_id" => $goodsId); if (!$bomModel->add($data)) { Log::write($bomModel->getLastSql(), Log::SQL); $bomModel->rollback(); $this->error("params_error"); return; } } //status 标识BOM单已保存 $planModel->where("id=" . $this->mainrowId)->save(array("status" => 2)); $bomModel->commit(); return true; } $this->returnData = array("type" => "redirect", "location" => sprintf("/doWorkflow/Produce/makeBoms/%d/%d", $this->currentNode["id"], $this->mainrowId)); $thePlan = $planModel->find($this->mainrowId); if ($thePlan["status"] == 1) { $this->response($this->returnData); return; } $details = $detailModel->where("plan_id=" . $this->mainrowId)->select(); if (!$details) { return false; } /** * 生产计划详情 */ foreach ($details as $row) { $fcas[$row["factory_code_all"]] = $row["factory_code_all"]; $products[$row["factory_code_all"]] = $row; } $tpls = $tplModel->where(array("factory_code_all" => array("IN", sprintf("%s", implode(",", $fcas)))))->select(); if (!$tpls) { $this->response($this->returnData); } foreach ($tpls as $tp) { $tplids[] = $tp["id"]; $theTpls[$tp["id"]] = $tp; } $boms = $tplDetailModel->where(array("tpl_id" => array("IN", implode(",", $tplids))))->select(); // echo $tplDetailModel->getLastSql();exit; /** * 清单所有需用物料 * 数组索引为成品原厂编码 */ foreach ($boms as $k => $bom) { $theBoms[$theTpls[$bom["tpl_id"]]["factory_code_all"]][] = $bom; } /** * @ $k => 原厂编码 * 所需物料数量 = 预定义物料数量 * 所需成品数量 */ $resultBoms = array(); foreach ($products as $k => $v) { foreach ($theBoms[$k] as $bom) { $bom["num"] *= $v["num"]; if (array_key_exists($bom["factory_code_all"], $resultBoms)) { $resultBoms[$bom["factory_code_all"]]["num"] += $bom["num"]; } else { $resultBoms[$bom["factory_code_all"]] = array("plan_id" => $this->mainrowId, "plan_detail_id" => $v["id"], "goods_id" => $bom["goods_id"], "num" => $bom["num"], "factory_code_all" => $bom["factory_code_all"]); } $products[$k]["boms"][] = $bom; } } $bomModel->startTrans(); foreach ($resultBoms as $bom) { if (!$bomModel->add($bom)) { Log::write($bomModel->getLastSql(), Log::SQL); $bomModel->rollback(); } } //status 标识已生成BOM单 $planModel->where("id=" . $this->mainrowId)->save(array("status" => 1)); $bomModel->commit(); $this->response($this->returnData); // 生产计划完成后,清除BOM表 }
public function ACT_getUnitPrice() { $row = $_POST["row"]; list($factory_code, $goods_id, $catid) = explode("_", $row["goods_id"]); $row["factory_code"] = $factory_code; $factory_code_all = makeFactoryCode($row); $data = D("StockProductList")->where(array("factory_code_all" => $factory_code_all))->find(); if (!$data) { $data = D("Goods")->find($goods_id); $data["unit_price"] = $data["price"]; } $this->response(array("price" => $data["unit_price"], "cost" => $data["cost"])); }
public function formatData($postData) { $data = array("start_time" => strtotime($postData["start_time"]), "end_time" => strtotime($postData["end_time"]), "type" => $postData["type"], "memo" => $postData["memo"], "total_num" => $postData["total_num"], "create_time" => CTS, "source_model" => $postData["source_model"], "source_id" => $postData["source_id"]); if ($_POST["id"]) { $data["id"] = $_POST["id"]; } $rows = array(); $needed = array("goods_id", "num"); foreach ($postData["rows"] as $row) { $tmp = array(); if (!checkParamsFull($row, $needed)) { continue; } list($factoryCode, $goods_id, $catid) = explode("_", $row["goods_id"]); $tmp["goods_id"] = $row["goods_id"] = $goods_id; $tmp["factory_code_all"] = makeFactoryCode($row, $factoryCode); $tmp["num"] = $row["num"]; $tmp["start_time"] = $data["start_time"]; $tmp["status"] = 0; $tmp["memo"] = $row["memo"]; $tmp["create_time"] = CTS; $rows[] = $tmp; } if (!$rows) { $this->error = "fillTheForm"; return false; } $data["rows"] = $rows; return $data; }
public function formatData($data) { foreach ($data["rows"] as $k => $row) { if (!$row or !$row["goods_id"]) { unset($data["rows"][$k]); continue; } list($fcCode, $goods_id, $catid) = explode("_", $row["goods_id"]); $data["rows"][$k]["goods_id"] = $goods_id; //$data["rows"][$k]["price"] = $row["amount"] ? $row["amount"] : $row["price"]; $data["rows"][$k]["factory_code_all"] = makeFactoryCode($row, $fcCode); } // $data["total_price_real"] = $data["total_amount_real"]; // $data["total_price"] = $data["total_amount"]; // $data["quantity"] = $data["total_num"]; $data["purchase_type"] = $data["purchase_type"] ? $data["purchase_type"] : 0; $data["supplier_id"] = $data["supplier_id"] ? $data["supplier_id"] : 0; if (!$data["bill_id"]) { $data["bill_id"] = makeBillCode("CG"); } $data["dateline"] = $data["inputTime"] ? strtotime($data["inputTime"]) : CTS; $data["user_id"] = getCurrentUid(); return $data; }