public function view_index() { global $mod, $act; $this->smarty->assign('title', '异常到货处理'); $this->smarty->assign('mod', $mod); //模块权限 $order = new PurchaseOrderAct(); $purtowh = new PurToWhAct(); $listInfo = $order->getUnnormalSkuReach(); $perNum = 100; $totalNum = $listInfo["totalNum"]; $list = $listInfo["skuInfo"]; //$purtowh->updUnusualSkuConfirmQty($list);//重新计算未处理状态下的待确认数量 $pageobj = new Page($totalNum, $perNum); $pageStr = $pageobj->fpage(); $newInfo = $order->getUnnormalSkuReach(); //获取更新后的数据 //$purchaseList = CommonAct::actGetPurchaseList(); $purchaseList = getPurchaseUserList(); $this->smarty->assign('purchaseList', $purchaseList); //采购列表 $this->smarty->assign('pageStr', $pageStr); //分页输出 $this->smarty->assign('userid', $_SESSION['userId']); //登录用户userid $this->smarty->assign('list', $newInfo['skuInfo']); //循环赋值 $this->smarty->display('unusualOrder.htm'); }
/** *功能:处理异常采购订单,例:采购补单、二次录入 *@param $type 处理类型 *@param $dataarray 料号 数量 *@param $purid 采购员编号 *日期:2013/08/05 *作者:王民伟 */ public static function handleUnusualOrder() { $checkPur = UnusualOrderAct::checkPower(); if ($checkPur !== true) { self::$errMsg = '无权限操作'; return false; } $type = $_GET['type']; $dataarray = $_GET['datalist']; $purid = $_GET['purid']; global $dbConn; $errArr = array(); if ($type == 'patchOrder') { //不能重复补单 if (!empty($dataarray)) { $dbConn->begin(); //开启事物 $datalist = explode('@', $dataarray); $datanum = count($datalist); for ($i = 0; $i < $datanum; $i++) { $infolist = explode('*', $datalist[$i]); if (count($infolist) == 3) { $oid = $infolist[0]; $oidlist = "('" . $oid . "')"; $sku = $infolist[1]; $amount = $infolist[2]; $skulist[] = $sku; $rtn_infolist = PurchaseOrderModel::getPurSkuInfo($skulist, $purid); //过滤不是自己负责的SKU,并返回所需数据 unset($skulist); if (empty($rtn_infolist)) { $errArr[] = $sku . '不属于你负责的sku'; } else { //符合条件开始补单 $info_list_num = count($rtn_infolist); for ($i = 0; $i < $info_list_num; $i++) { $detailinfo = array(); $rtn_sku = $rtn_infolist[$i]['sku']; //返回SKU $rtn_partner_id = $rtn_infolist[$i]['partnerid']; //返回供应商编号 $rtn_price = $rtn_infolist[$i]['goodsCost']; //返回采购单价 $isExistPatchOrdersn = PurchaseOrderModel::isExistPatchOrdersn($rtn_partner_id, $purid); //查找条件符合的补单号??? if (empty($isExistPatchOrdersn)) { //不存在符合的补单号 //此次需判断生成订单跟踪号前缀---0:SWB;1:FZ;2:ZG $recordnumber = PurchaseOrderModel::autoCreateOrderSn($purid, 0); //生成采购补单号 $maininfo['recordnumber'] = $recordnumber; //订单号 $maininfo['purchaseuser_id'] = $purid; //采购员编号 $maininfo['partner_id'] = $rtn_partner_id; //供应商编号 $maininfo['company_id'] = 1; //公司编号 $rtn_mainorder = PurchaseOrderModel::insertPatchMainOrder($maininfo); //添加补单主体信息 if ($rtn_mainorder) { //主体添加成功 $detailinfo['sku_id'] = PurchaseOrderModel::getSkuIdBySku($rtn_sku); //根据sku获SKU编号 $detailinfo['price'] = $rtn_price; //采购单价 $detailinfo['count'] = $amount; //补单数量 $detailinfo['sku'] = $sku; //sku $poid = PurchaseOrderModel::getOrderIdByNum($recordnumber); $rtn_detailorder = PurchaseOrderModel::insertPatchDetailOrder($poid, $detailinfo); if ($rtn_detailorder) { $rtn_api = ApiAct::update_unusualOrderSataus($purid, $oidlist, 'patchorder', $recordnumber); //通过API更新状态 if ($rtn_api) { $dbConn->commit(); } else { $dbConn->rollback(); $errArr[] = $sku . '仓库数据修改失败'; } } else { $dbConn->rollback(); $errArr[] = $sku . '详情增加失败'; } } else { $dbConn->rollback(); $errArr[] = $sku . '主订单增加失败'; } //self::$errMsg = 'success'; } else { //存在符合条件的补单号 $detailinfo['sku_id'] = PurchaseOrderModel::getSkuIdBySku($rtn_sku); //根据sku获SKU编号 $detailinfo['price'] = $rtn_price; //采购单价 $detailinfo['count'] = $amount; //补单数量 $detailinfo['sku'] = $sku; //sku $poid = PurchaseOrderModel::getOrderIdByNum($isExistPatchOrdersn); //根据跟踪号取编号 $rtn_detailorder = PurchaseOrderModel::insertPatchDetailOrder($poid, $detailinfo); //添加采购订单明细 if ($rtn_detailorder) { $rtn_api = ApiAct::update_unusualOrderSataus($purid, $oidlist, 'patchorder', $isExistPatchOrdersn); //通过API更新状态 if ($rtn_api) { $dbConn->commit(); } else { $dbConn->rollback(); $errArr[] = $sku . '仓库数据修改失败'; } } else { $dbConn->rollback(); $errArr[] = $sku . '详情增加失败'; } } } } } } } else { $errArr[] = '未传入sku数据'; } if (count($errArr) > 0) { $errStr = implode("<br/>", $errArr); self::$errMsg = $errStr; } else { self::$errCode = "111"; } } else { if ($type == 'secondStockIn') { //二次补录 if (!empty($dataarray)) { $datalist = explode('@', $dataarray); $datanum = count($datalist); for ($i = 0; $i < $datanum; $i++) { $infolist = explode('*', $datalist[$i]); if (count($infolist) == 3) { $oid = $infolist[0]; $oidlist = "('" . $oid . "')"; $sku = $infolist[1]; $amount = $infolist[2]; $skuid = PurchaseOrderModel::getSkuIdBySku($sku); if (empty($skuid)) { $errArr[] = $sku . "不存在库存中"; continue; } $rtnlist = PurchaseOrderModel::checkStockInOrder($skuid); if (!empty($rtnlist)) { //过滤找不到的,不再参与入库操作,否则会继续生成未订单 $rtn = PurchaseOrderAct::act_stockIn($sku, $amount); $rtn_api = ApiAct::update_unusualOrderSataus($purid, $oidlist, 'secondstockin', 'no'); if (!$rtn_api) { $errArr[] = $sku . "数据提交仓库系统失败"; break; } } else { $errArr[] = $sku . "未找到二次录入符合条件"; } } } } else { $errArr[] = "传参有误"; } if (count($errArr) > 0) { self::$errMsg = implode("<br/>", $errArr); return false; } self::$errCode = "111"; return true; } else { if ($type == 'setZero') { if (!empty($dataarray)) { $dataarray_num = count($dataarray); for ($i = 0; $i < $dataarray_num; $i++) { $oidlist .= "'" . $dataarray[$i] . "',"; } $oidlist = "(" . substr($oidlist, 0, strlen($oidlist) - 1) . ")"; $rtn_api = ApiAct::update_unusualOrderSataus($purid, $oidlist, 'setzero', 'no'); $rtn['msg'] = $rtn_api; } else { $rtn['msg'] = 'null'; } return $rtn; exit; } else { if ($type == 'comfirmOrder') { if (!empty($dataarray)) { $dataarray_num = count($dataarray); for ($i = 0; $i < $dataarray_num; $i++) { $oidlist .= "'" . $dataarray[$i] . "',"; } $oidlist = "(" . substr($oidlist, 0, strlen($oidlist) - 1) . ")"; $rtn_api = ApiAct::update_unusualOrderSataus($purid, $oidlist, 'comfirmorder', 'no'); $rtn['msg'] = $rtn_api; } else { $rtn['msg'] = 'null'; } return $rtn; } else { if ($type == 'backOrder') { //订单退货 $dataStr = trim($_GET['dataStr']); $order_type = trim($_GET['order_type']); $dbConn->begin(); if (!empty($dataarray) && !empty($dataStr) && !empty($order_type)) { $dataarray_num = count($dataarray); for ($i = 0; $i < $dataarray_num; $i++) { $oidlist .= "'" . $dataarray[$i] . "',"; } $oidlist = "(" . substr($oidlist, 0, strlen($oidlist) - 1) . ")"; //生成退货订单 $datalist = explode('@', $dataStr); $datanum = count($datalist); for ($i = 0; $i < $datanum; $i++) { $infolist = explode('*', $datalist[$i]); if (count($infolist) == 3) { $oid = $infolist[0]; $oidlist = "('" . $oid . "')"; $sku = $infolist[1]; $amount = $infolist[2]; $skulist[] = $sku; $rtn_infolist = PurchaseOrderModel::getPurSkuInfo($skulist, $purid); //过滤不是自己负责的SKU,并返回所需数据 unset($skulist); if (empty($rtn_infolist)) { $errArr[] = $sku . '不属于你负责的sku'; } else { //符合条件开始补单 $info_list_num = count($rtn_infolist); for ($i = 0; $i < $info_list_num; $i++) { $detailinfo = array(); $rtn_sku = $rtn_infolist[$i]['sku']; //返回SKU $rtn_partner_id = $rtn_infolist[$i]['partnerid']; //返回供应商编号 $rtn_price = $rtn_infolist[$i]['goodsCost']; //返回采购单价 $status_type = " status = 5 AND order_type = {$order_type}"; $isExistPatchOrdersn = PurchaseOrderModel::isExistPatchOrdersn($rtn_partner_id, $purid, $status_type); //查找条件符合的退货单??? if (empty($isExistPatchOrdersn)) { //不存在符合的单号 //此次需判断生成订单跟踪号前缀---0:SWB;1:FZ;2:ZG $recordnumber = PurchaseOrderModel::autoCreateOrderSn($purid, 0); //生成采购补单号 $maininfo['recordnumber'] = $recordnumber; //订单号 $maininfo['purchaseuser_id'] = $purid; //采购员编号 $maininfo['partner_id'] = $rtn_partner_id; //供应商编号 $maininfo['company_id'] = 1; //公司编号 $status = 5; $rtn_mainorder = PurchaseOrderModel::insertPatchMainOrder($maininfo, $status, $order_type); //添加主体信息 if ($rtn_mainorder) { //主体添加成功 $detailinfo['sku_id'] = PurchaseOrderModel::getSkuIdBySku($rtn_sku); //根据sku获SKU编号 $detailinfo['price'] = $rtn_price; //采购单价 $detailinfo['count'] = $amount; //数量 $detailinfo['sku'] = $sku; $poid = PurchaseOrderModel::getOrderIdByNum($recordnumber); $rtn_detailorder = PurchaseOrderModel::insertPatchDetailOrder($poid, $detailinfo); if ($rtn_detailorder) { $rtn_api = ApiAct::update_unusualOrderSataus($purid, $oidlist, 'backorder', 'no'); if ($rtn_api) { $dbConn->commit(); } else { $dbConn->rollback(); $errArr[] = $sku . '仓库数据修改失败'; } } else { $dbConn->rollback(); $errArr[] = $sku . '详情增加失败'; } } else { $dbConn->rollback(); $errArr[] = $sku . '主订单增加失败'; } //self::$errMsg = 'success'; } else { //存在符合条件的补单号 $detailinfo['sku_id'] = PurchaseOrderModel::getSkuIdBySku($rtn_sku); //根据sku获SKU编号 $detailinfo['price'] = $rtn_price; //采购单价 $detailinfo['count'] = $amount; //补单数量 $detailinfo['sku'] = $sku; $poid = PurchaseOrderModel::getOrderIdByNum($isExistPatchOrdersn); //根据跟踪号取编号 $rtn_detailorder = PurchaseOrderModel::insertPatchDetailOrder($poid, $detailinfo); //添加采购订单明细 if ($rtn_detailorder) { $rtn_api = ApiAct::update_unusualOrderSataus($purid, $oidlist, 'backorder', 'no'); if ($rtn_api) { $dbConn->commit(); } else { $dbConn->rollback(); $errArr[] = $sku . '仓库数据修改失败'; } } else { $dbConn->rollback(); $errArr[] = $sku . '详情增加失败'; } } } } } } } else { $errArr[] = "传参有误"; } if (count($errArr) > 0) { self::$errMsg = implode("<br/>", $errArr); return false; } self::$errCode = "111"; return true; } } } } } }
function view_exportOrder() { $idlist = isset($_GET["data"]) ? $_GET['data'] : ''; $data = array(); if (!empty($idlist)) { $data = explode(',', $idlist); $PO = new PurchaseOrderAct(); $objPHPExcel = new PHPExcel(); $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")->setLastModifiedBy("Maarten Balliauw")->setTitle("Office 2007 XLSX Test Document")->setSubject("Office 2007 XLSX Test Document")->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")->setKeywords("office 2007 openxml php")->setCategory("Test result file"); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', '订货日期'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('B1', '订单号'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('C1', '供应商'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('D1', '料号'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('E1', '产品描述'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('F1', '订货数量'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('G1', '单价'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('H1', '金额'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('I1', '采购员'); $dataArr = $PO->actExportOrder($data); $row = 2; $rownum = count($dataArr); for ($ii = 0; $ii < $rownum; $ii++) { $list = $dataArr[$ii]; foreach ($list as $v) { $addtime = $v['addtime']; $recordnumber = $v['recordnumber']; $parname = $v['parname']; $purname = $v['purname']; $sku = $v['sku']; $name = $v['name']; $price = $v['price']; $count = $v['count']; $totalmoney = $v['totalmoney']; $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A' . $row, date("Y/m/d", $addtime)); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('B' . $row, $recordnumber); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('C' . $row, $parname); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('D' . $row, $sku); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('E' . $row, $name); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('F' . $row, $count); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('G' . $row, $price); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('H' . $row, $totalmoney); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('I' . $row, $purname); $row++; } } $objPHPExcel->getActiveSheet(0)->getStyle('A1:N' . $row)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('A')->setWidth(15); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('B')->setWidth(25); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('C')->setWidth(15); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('D')->setWidth(15); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('E')->setWidth(80); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('F')->setWidth(10); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('G')->setWidth(10); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('H')->setWidth(25); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('I')->setWidth(10); $objPHPExcel->getActiveSheet(0)->getStyle('A1:J' . $row)->getAlignment()->setWrapText(true); $title = "Files_purchase" . date('Y-m-d'); $titlename = $title . ".xls"; $objPHPExcel->getActiveSheet()->setTitle($title); $objPHPExcel->setActiveSheetIndex(0); header('Content-Type: application/vnd.ms-excel'); header("Content-Disposition: attachment;filename={$titlename}"); header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); } }
public function secondComfirm() { error_reporting(-1); global $dbConn; $dataArr = $_POST['data']; $orderIdArr = array(); $skuOrder = new PurchaseOrderAct(); $tallyObj = new SkuAct(); foreach ($dataArr as $item) { $onWayNum = $skuOrder->checkSkuOnWayNum($item['sku']); $tallyNum = $tallyObj->getTallySkuNum($item['sku']); //$nowNum = $onWayNum - $tallyNum; $nowNum = $onWayNum; if ($nowNum >= $item['qty']) { //var_dump($onWayNum,$item['qty'],$item['id']); //if($onWayNum >= $item['qty']){ $orderIdArr[] = $item['unorderid']; $tallyObj->tallySkuRecord($item['sku'], $item['qty'], 1); $sql = "UPDATE `ph_sku_reach_record` SET status=2 where id={$item['id']}"; $dbConn->execute($sql); } } $rtn = $this->setTallyIsUse($orderIdArr); $rtn = json_decode($rtn, true); if ($rtn['errCode'] == 0) { return 1; } else { return 0; } }
public function updUnusualSkuConfirmQty($data) { $skuact = new SkuAct(); $purorder = new PurchaseOrderAct(); if (!empty($data)) { foreach ($data as $k => $v) { $id = $v['id']; $sku = $v['sku']; $status = $v['status']; $totalAmount = $v['totalAmount']; //总共到货数量 $onWayAmount = $purorder->checkSkuOnWayNum($sku); //在途数量 $waitOnAmount = $skuact->getTallySkuNum($sku); //等待上架数量 $waitOnAmount = !empty($waitOnAmount) ? $waitOnAmount : 0; $confirmAmount = $totalAmount + $waitOnAmount - $onWayAmount; if ($status == 0) { PurToWhModel::updUnusualSkuConfirmQty($id, $confirmAmount); //重新计算待确认数量 } } } }
/** *功能:通过旧料号获取新料号资料 *@para $oldSku 旧料号 *@return $new_sku 新料号 * */ public function showNewSku() { if (!$_GET['oldSku']) { self::$errCode = "002"; self::$errMsg = "Miss param"; return; } $oldSku = $_GET['oldSku']; $table = C("DB_PREFIX") . "sku_conversion "; $fields = "new_sku"; $where = "old_sku = '{$oldSku}' AND is_delete = '0' LIMIT 1"; $ret = PurchaseOrderModel::selectOneTable($table, $fields, $where); if ($ret) { $new_sku = $ret[0]['new_sku']; self::$errCode = "001"; self::$errMsg = "success"; return $new_sku; } else { self::$errCode = "003"; self::$errMsg = "no this sku or delete"; return; } }
<?php include_once WEB_PATH . "action/purchaseOrder.action.php"; $type = $_GET["type"]; if ($type == "stockIn") { //到货入库接口对接仓库系统 $sku = $_GET["sku"] ? $_GET["sku"] : ''; //入库料号 $amount = $_GET["amount"] ? $_GET["amount"] : ''; //入库数量 $rtn_data = PurchaseOrderAct::act_stockIn($sku, $amount); return $rtn_data; } else { if ($type == 'patchOrder') { //采购补单接口对接仓库系统 } else { if ($type == 'secondStockIn') { //二次录入 } else { } } }
public function addNewOrder() { global $dbConn; $skulist = $_POST['skulist']; //$purchaseId = $_SESSION[C('USER_AUTH_SYS_ID')];//采购员ID $purchaseId = $skulist[0]["cguserId"]; //采购员ID $comid = $_SESSION[C('USER_COM_ID')]; //公司ID $skuComObj = new CommonAct(); //重新计算这个sku 的已订购数量 $purchaseOrder = new PurchaseOrderAct(); $rollback = false; foreach ($skulist as $sku) { $price = $sku['price']; //SKU单价 $partnerId = $purchaseOrder->getPartnerId($sku['sku']); //供应商ID $partnerId = $partnerId['partnerId']; $storeid = 1; //仓库ID $orderData = $purchaseOrder->getOrderSN($partnerId, $purchaseId); //判断同供应商、采购员跟踪号是否已存在 $orderSN = $orderData['recordnumber']; $main = array(); $detail = array(); if (!empty($orderSN)) { //存在符合条件的跟踪号,直接插入采购订单明细 $detail['sku'] = $sku['sku']; $detail['price'] = $price; //单价 $detail['count'] = $sku['rec']; //采购数量 $detail['goods_recommend_count'] = $sku['rec']; //采购数量 $dataSet = array2sql($detail); $sql = "insert into ph_order_detail set {$dataSet} "; $dbConn->execute($sql); } else { //不存在符合条件的跟踪号重新生成 $recordnumber = PurchaseOrderModel::autoCreateOrderSn($purchaseId, $comid); //生成对应公司的采购订单跟踪号 if (!empty($recordnumber)) { //生成采购订单号成功 $main['recordnumber'] = $recordnumber; //跟踪号 $main['purchaseuser_id'] = $purchaseId; //采购员ID $main['warehouse_id'] = $storeid; //仓库ID $main['partner_id'] = $partnerId; //供应商ID $main['company_id'] = $comid; //公司编号 $dataSet = array2sql($main); $sql = "insert into ph_order set {$dataSet} "; $dbConn->execute($sql); if ($rtnmain) { //主订单添加成功 $detail['sku'] = $sku['sku']; $detail['price'] = $price; //单价 $detail['count'] = $sku['rec']; //采购数量 $detail['goods_recommend_count'] = $sku['rec']; //采购数量 $detail['recordnumber'] = $recordnumber; $dataSet = array2sql($detail); $sql = "insert into ph_order_detail set {$dataSet} "; $dbConn->execute($sql); $skuComObj->calcAlert($detail['sku']); //重新计算已订购数量 } } } } }
public function addSkuReach() { global $dbconn; $orderArr = $_POST["orderArr"]; $orderArr = json_decode($orderArr, true); $now = time(); $sql = "INSERT INTO ph_sku_reach_record(sku,purchaseId, amount, totalAmount,tallymanId,note,addtime,partnerName,unOrderId) VALUES "; $sqlarr = array(); $rollback = false; $purchaseOrder = new PurchaseOrderAct(); foreach ($orderArr as $orderItem) { $sku = $orderItem["sku"]; $amount = $orderItem["amount"]; $unOrderId = $orderItem["orderid"]; $user = getUserIdBySku($sku); $purchaseId = $user["purchaseId"]; $partnerName = getPartnerBySku($sku); $tallymanId = $orderItem["tallymanId"]; $onWayNum = $purchaseOrder->checkSkuOnWayNum($sku); //在途数量 //$tallyAmount = $this->getTallySkuNum($sku); //已经点货的数量 //$nowUnReach = $onWayNum - $tallyAmount; $unSkuNum = $amount - $onWayNum; $note = "当时的在途数量是{$onWayNum}个,总共到货数量{$amount}个,异常到货数量{$unSkuNum}个"; $sqlarr[] = " ('{$sku}','{$purchaseId}',{$unSkuNum},{$amount},'{$tallymanId}','{$note}',{$now},'{$partnerName}',{$unOrderId}) "; } $sqlStr = implode(",", $sqlarr); $sql .= $sqlStr; if ($dbconn->execute($sql)) { $rtn["msg"] = "添加数据成功"; $rtn["errCode"] = 0; } else { $rtn["msg"] = "添加数据成功"; $rtn["errCode"] = 0; } return json_encode($rtn); }