コード例 #1
0
ファイル: common.action.php プロジェクト: ohjack/newErp
 /**
  * CommonAct::actGetSkuInfo()
  * 获取某个sku的代发货,实际库存等详细数据
  * @param string $sku 料号
  * @return  array
  */
 public static function actGetSkuInfo($sku)
 {
     $sku = isset($sku) ? post_check($sku) : "";
     if (empty($sku)) {
         self::$errCode = 10000;
         self::$errMsg = "sku参数错误";
         return false;
     }
     $res = CommonModel::getSkuInfo($sku);
     self::$errCode = CommonModel::$errCode;
     self::$errMsg = CommonModel::$errMsg;
     return $res;
 }
コード例 #2
0
 /**
  * ProductStockalarmModel::updateWarnOld()
  * 更新选择料号的预警信息
  * @param array skuArr 料号数组
  * @param int gid 采购员I
  * @return bool 
  */
 public static function updateWarnOld($gid, $skuArr)
 {
     self::initDB();
     foreach ($skuArr as $v) {
         $res = CommonModel::getSkuInfo($v);
         $res = json_decode($res, true);
         $days7 = 0.7;
         $days15 = 0.2;
         $days30 = 0.1;
         $dataarray = array();
         $run_starttime = time();
         $first_sale = $res[0]['first_sale'];
         //$first_sale = get_firstSaleTime ($sku);
         //echo 'API返回第一次售出时间:'.$first_sale."<br/>";
         //$last_sale = get_lastSaleTime($sku);
         $last_sale = $res[0]['last_sale'];
         $stock_qty = $res[0]['stock_qty'];
         // 实际库存
         $everyday_sale = $res[0]['everyday_sale'];
         // 每日均量
         $purchase_days = $res[0]['purchasedays'];
         // 采购天数
         $alert_days = $res[0]['goods_days'];
         // 预警天数
         $warehouse_id = 76;
         // 仓库编号
         $partner_id = 0;
         // 供应商编号
         $salensend = $res[0]['salensend'];
         // 待发货数量
         $interceptnums = $res[0]['interceptnums'];
         // 拦截数量
         $autointerceptnums = $res[0]['autointerceptnums'];
         // 自动拦截数量
         $end = '1375290061';
         $start = '1354294861';
         //$rtnnum = get_saleNum ( $start, $end, $sku, 76, $everyday_sale );
         // echo 'API返回销量:'.$rtnnum."<br/>";
         $auditingnums = $res['auditingnums'];
         // 审核数量
         //$hasbooknum = PurchaseOrderModel::hasBookNum ( $skuid, $warehouse_id, $purid ); // 已订购数量
         $hasbooknum = !empty($hasbooknum) ? $hasbooknum : 0;
         if ($first_sale > 0) {
             $time = time() - $first_sale;
             $saleday = ceil($time / (3600 * 24));
             // 至今距离第一次卖出时间天数
             $thirtycheck = time() - 30 * 24 * 3600;
             // 一个月前
             $totalqty = $stock_qty + $hasbooknum;
             // 总库存=实际库存+已订购数量
             $hasuseqty = $totalqty - $salensend - $interceptnums - $auditingnums - $autointerceptnums;
             // 可用库存数量
             // $saleday = 35; // 测试
             // $thirtycheck = '1243705586';
             if ($saleday > 30) {
                 if ($last_sale > $thirtycheck) {
                     // 最近一次卖出时间已经超过一个月
                     $end1 = strtotime(date('Y-m-d') . '23:59:59');
                     $start1 = $end1 - 7 * 24 * 3600;
                     $qty1 = 5;
                     // getSaleNum($start1, $end1, $sku, $warehouse_id, $everyday_sale);//取1~7天销售量
                     $end2 = $start1;
                     $start2 = $end1 - 15 * 4 * 600;
                     $qty2 = 12;
                     // getSaleNum($start2, $end2, $sku, $warehouse_id, $everyday_sale);//取7~15天销售量
                     $end3 = $start2;
                     $start3 = $end1 - 30 * 24 * 3600;
                     $qty3 = 20;
                     // getSaleNum($start3, $end3, $sku, $warehouse_id, $everyday_sale);//取16~30天销售量
                     $everyday_sale = $qty1 / 7 * $days7 + $qty2 / 8 * $days15 + $qty3 / 15 * $days30;
                     // 每日均量计算
                     $needqty = ceil($everyday_sale * $alert_days) + $interceptnums;
                     // 库存预警警数量
                     $dataarray['everyday_sale'] = $everyday_sale > 0.005 ? round($everyday_sale, 2) : 0;
                     $dataarray['booknums'] = $hasbooknum;
                     $dataarray['salensend'] = $salensend;
                     $dataarray['auditingnums'] = $auditingnums;
                     $dataarray['interceptnums'] = $interceptnums;
                     $dataarray['autointerceptnums'] = $autointerceptnums;
                     $dataarray['is_warning'] = $hasuseqty < 1 || $hasuseqty < $needqty ? 1 : 0;
                 } else {
                     $dataarray['everyday_sale'] = 0;
                     $dataarray['booknums'] = $hasbooknum;
                     $dataarray['salensend'] = $salensend;
                     $dataarray['auditingnums'] = $auditingnums;
                     $dataarray['interceptnums'] = $interceptnums;
                     $dataarray['autointerceptnums'] = $autointerceptnums;
                     $dataarray['is_warning'] = $hasuseqty < 0 ? 1 : 0;
                 }
             } else {
                 $end = strtotime(date('Y-m-d') . '23:59:59');
                 $start = $end - ($saleday + 1) * 24 * 3600;
                 $qty = 20;
                 // getSaleNum($start, $end, $sku, $warehouse_id, $everyday_sale);
                 $everyday_sale = $qty / $saleday;
                 $needqty = ceil($everyday_sale * $alert_days) + $interceptnums;
                 // 计算产品库存报警数量
                 $dataarray['everyday_sale'] = round($everyday_sale, 2);
                 $dataarray['booknums'] = $hasbooknum;
                 $dataarray['salensend'] = $salensend;
                 $dataarray['auditingnums'] = $auditingnums;
                 $dataarray['interceptnums'] = $interceptnums;
                 $dataarray['autointerceptnums'] = $autointerceptnums;
                 $dataarray['is_warning'] = $hasuseqty < 1 || $hasuseqty < $needqty ? 1 : 0;
             }
         } else {
             $dataarray['everyday_sale'] = 0;
             $dataarray['booknums'] = $hasbooknum;
             $dataarray['salensend'] = 0;
             $dataarray['auditingnums'] = 0;
             $dataarray['interceptnums'] = 0;
             $dataarray['autointerceptnums'] = 0;
             $dataarray['is_warning'] = 0;
         }
         if ($needqty <= 0) {
             $dataarray['is_warning'] = 0;
         }
         $dataarray['lastupdate'] = time();
         $dataarray['factory'] = $res[0]['factory'];
         $dataarray['purchaseuser'] = $res[0]['purchaseuser'];
         $dataarray['storeid'] = $res[0]['storeid'];
         $dataarray['sevendays'] = $res[0]['sevendays'];
         $dataarray['fifteendays'] = $res[0]['fifteendays'];
         $dataarray['thirtydays'] = $res[0]['thirtydays'];
         $dataarray['ow_stock'] = $res[0]['ow_count'];
         $dataarray['it_stock'] = $res[0]['it_count'];
         $dataarray['stock_qty'] = $res[0]['goods_count'];
         $dataarray['purchaseDays'] = $res[0]['purchasedays'];
         $dataarray['alertDays'] = $res[0]['goods_days'];
         $dataarray['purchaseId'] = $_SESSION[C('USER_AUTH_SYS_ID')];
         $rtnupdatedata = self::updateWarnInfo($v, $dataarray);
     }
     $run_endtime = time();
     $speed_time = $run_endtime - $run_starttime;
     return $rtnupdatedata;
 }