Ejemplo n.º 1
0
 function pageOut($inPath)
 {
     $url = $this->getUrlParams($inPath);
     $order_id = (int) $url['oid'];
     session_start();
     $tempsales = new m_tempsales();
     $info = $tempsales->select("order_id='{$order_id}'")->items;
     //$info = $_SESSION ['goodsInfo'];
     $saleObj = new m_sales();
     $sales = $mem_rs = array();
     $purchaseObj = new m_purchase();
     if (is_array($info)) {
         $url['ac'] = '';
         $dateline = time();
         $goodsObj = new m_goods();
         $cardid = base_Utils::getStr($_POST['cardid']);
         if ($cardid) {
             $memberObj = new m_member();
             $mem_rs = $memberObj->getMemberPrice($cardid);
             if (!$mem_rs['mid']) {
                 $this->ShowMsg("会员卡不存在!");
             }
             $sales['mid'] = $mem_rs['mid'];
             $sales['membercardid'] = $mem_rs['membercardid'];
             $sales['realname'] = $mem_rs['realname'];
         }
         //$order_id = date ( "mdHis", time () ) . base_Utils::random ( 4, 1 );
         $mem_amount = 0;
         $pro_amount = 0;
         foreach ($info as $k => $v) {
             $out_amount += sprintf("%01.2f", $v['out_price'] * $v['num']);
             //总价
             $pro_amount += sprintf("%01.2f", $v['p_discount'] * $v['num']);
             //促销优惠的总价
             $sales['order_id'] = $order_id;
             $sales['goods_id'] = $v['goods_id'];
             $sales['cat_id'] = $v['cat_id'];
             $sales['goods_sn'] = $v['goods_sn'];
             $sales['goods_name'] = $v['goods_name'];
             $sales['num'] = $v['num'];
             $sales['out_price'] = $v['out_price'];
             $sales['in_price'] = $goodsObj->getAvgPrice($v['goods_id']);
             $sales['p_discount'] = $v['p_discount'];
             //促销优惠的金额
             $sales['price'] = $sales['out_price'] - $sales['p_discount'];
             if ($v['ismemberprice'] == 1 and $mem_rs['mid']) {
                 $sales['m_discount'] = ($v['out_price'] - $v['p_discount']) * (100 - $mem_rs['discount']) / 100;
                 //会员+促销优惠
                 $sales['m_discount'] = sprintf("%01.2f", $sales['m_discount']);
                 $sales['price'] = $sales['out_price'] - $sales['m_discount'];
                 $mem_amount += sprintf("%01.2f", $v['out_price'] * $v['num'] - $sales['m_discount'] * $v['num']);
                 //会员+促销总价
             }
             $sales['dateymd'] = date("Y-m-d", time());
             $sales['dateline'] = time();
             if (!$saleObj->insert($sales)) {
                 $this->ShowMsg("添加销售记录错误!" . $saleObj->getError());
             }
             $purchaseObj->outStock($sales['goods_id'], $v['num'], sprintf("%01.2f", $sales['price'] * $v['num']));
         }
         //计算应收金额
         $real_amount = $out_amount - $mem_amount - $pro_amount;
         if ($sales['mid']) {
             $memberObj->setCredit($sales['mid']);
         }
         $tempsales->delOrder($order_id);
         //清除临时销售记录
     }
     $goods = $saleObj->select("order_id={$order_id}")->items;
     if ($url['ac'] == 'p') {
         //独立打印
         if (!is_array($goods)) {
             $this->ShowMsg("订单中没有任何商品!");
         }
         foreach ($goods as $k => $v) {
             $out_amount += sprintf("%01.2f", $v['out_price'] * $v['num']);
             //应收金额
             $pro_amount += sprintf("%01.2f", $v['p_discount'] * $v['num']);
             //促销优惠的总价
             $mem_amount += sprintf("%01.2f", $v['m_discount'] * $v['num']);
             //会员优惠的总价
             $real_amount += sprintf("%01.2f", $v['price'] * $v['num']);
             //实收金额 减去会员优惠和促销优惠
             $dateline = $v['dateline'];
         }
     }
     $this->params['goods'] = $goods;
     $this->params['order_id'] = $order_id;
     $this->params['out_amount'] = $out_amount;
     $this->params['real_amount'] = $real_amount;
     $this->params['pro_amount'] = $pro_amount;
     $this->params['mem_amount'] = $mem_amount;
     $this->params['dateline'] = $dateline;
     $_SESSION['order_id'] = "";
     return $this->render('sales/out.html', $this->params);
 }