1830 行
96 KiB
PHP
可执行文件
1830 行
96 KiB
PHP
可执行文件
<?php
|
|
|
|
namespace Retail\Controller;
|
|
|
|
use Common\Model\RefuseWarehousingModel;
|
|
use Retail\Business\InventoryPrint;
|
|
use Think\Controller;
|
|
|
|
//[1.8.76]
|
|
class WebPrintController extends BaseController
|
|
{
|
|
//出货单列表
|
|
public function shipmentlist()
|
|
{
|
|
$this->display();
|
|
}
|
|
|
|
public function shipmentprint()
|
|
{
|
|
$id = I('get.id');
|
|
$allocation = M('retail_allocation')->where(array('id' => $id))->find();
|
|
$store = M('retail_store')
|
|
->where(array('id' => $allocation['target_storeid']))
|
|
->field('id,storetag,address')
|
|
->find();
|
|
$this->assign('store', $store);
|
|
$this->assign('allocation', $allocation);
|
|
$this->assign('id', $id);
|
|
$this->display();
|
|
}
|
|
|
|
//出货详情
|
|
public function shipment_detail_list()
|
|
{
|
|
$id = I('post.floworderid');
|
|
$page = 1;
|
|
$limit = I('post.limit');
|
|
$limit = $limit ? $limit : 5;
|
|
// 减少数据库统计,仅page为1时统计
|
|
$count1 = M('retail_allocat_sku_goods')->where(array('allocation_id' => $id, 'isweigh' => 1))->count();
|
|
$count2 = M('retail_allocat_sku_goods')->where(array('allocation_id' => $id, 'isweigh' => 2))->count();
|
|
$count = $count2 + $count1;
|
|
$totalnum1 = M('retail_allocat_sku_goods')->where(array('allocation_id' => $id, 'isweigh' => 1))->sum('goods_num');
|
|
$totalnum1 = $totalnum1 ? $totalnum1 : 0;
|
|
$totalnum2 = M('retail_allocat_sku_goods')->where(array('allocation_id' => $id, 'isweigh' => 2))->sum('goods_num');
|
|
$totalnum2 = $totalnum2 ? $totalnum2 : 0;
|
|
$totalallmoney = M('retail_allocat_sku_goods')->where(array('allocation_id' => $id))->sum('goods_num*purch_price');
|
|
$totalallmoney = $totalallmoney ? round($totalallmoney, 2) : 0;
|
|
$totalnum = $totalnum1 + $totalnum2;
|
|
$total['allnum'] = $totalnum;
|
|
$total['weighnum'] = $totalnum2;
|
|
$total['notweighnum'] = $totalnum1;
|
|
$total['allmoney'] = $totalallmoney;
|
|
$total['allcount'] = $count;
|
|
$total['weighcount'] = $count1;
|
|
$total['notweighcount'] = $count2;
|
|
$pagecount = ceil($count / $limit);
|
|
$num = 0;
|
|
$allgoodsarr = array();
|
|
while ($page <= $pagecount) {
|
|
$goodsinfo = M('retail_allocat_sku_goods')
|
|
->where(array('allocation_id' => $id))
|
|
->page($page, $limit)
|
|
->select();
|
|
if ($goodsinfo) {
|
|
$money = 0;
|
|
foreach ($goodsinfo as $k => &$v) {
|
|
$v['index'] = $k + 1 + $num;
|
|
$money += $v['goods_num'] * $v['purch_price'];
|
|
if ($v['goods_info']) {
|
|
$v['goods_info'] = json_decode($v['goods_info'], true);
|
|
} else {
|
|
$v['goods_info'] = M('retail_mgoods')->where(array('id' => $v['goods_id']))->find();
|
|
}
|
|
if ($v['goods_sku_info']) {
|
|
$v['goods_sku_info'] = json_decode($v['goods_sku_info'], true);
|
|
if ($v['goods_sku_info']['name']) {
|
|
$v['goods_sku_info']['skuname'] = implode(",", $v['goods_sku_info']['name']);
|
|
} else {
|
|
$v['goods_sku_info']['skuname'] = $this->skuIdListToSkuName($v['sku_id_list']);
|
|
}
|
|
} else {
|
|
$v['goods_sku_info'] = M('retail_sku_mgoods')->where(array('id' => $v['sku_mgoods_id']))->find();
|
|
if ($v['goods_sku_info']) {
|
|
$v['goods_sku_info']['skuname'] = $this->skuIdListToSkuName($v['goods_sku_info']['sku_id_list']);
|
|
}
|
|
}
|
|
$v['allmoney'] = round($v['goods_num'] * $v['purch_price'], '2');
|
|
}
|
|
$money = round($money, 2);
|
|
$allgoodsarr[] = array(
|
|
'money' => $money,
|
|
'goodsinfo' => $goodsinfo
|
|
);
|
|
$page++;
|
|
} else {
|
|
break;
|
|
}
|
|
}
|
|
$res['$pagecount'] = $pagecount;
|
|
if ($allgoodsarr) {
|
|
$res['status'] = 1;
|
|
$res['allgoodsarr'] = $allgoodsarr;
|
|
$res['info'] = $total;
|
|
} else {
|
|
$res['pagemoney'] = 0;
|
|
$total['len'] = 0;
|
|
$total['allmoney'] = 0;
|
|
$total['allnum'] = 0;
|
|
$res['status'] = 0;
|
|
$res['data'] = array();
|
|
$res['info'] = $total;
|
|
}
|
|
$this->ajaxReturn($res);
|
|
}
|
|
|
|
private function skuIdListToSkuName($sku_id_list)
|
|
{
|
|
if (!$sku_id_list) {
|
|
return "";
|
|
}
|
|
$sku_id_list = trim($sku_id_list, ',');
|
|
$skus = M('retail_sku_list')->where(array('id' => array('in', $sku_id_list)))->getField('name', true);
|
|
if (empty($skus)) {
|
|
return "";
|
|
} else {
|
|
return implode(',', $skus);
|
|
}
|
|
}
|
|
|
|
// 订单打印订单详情
|
|
|
|
public function orderPrint()
|
|
{
|
|
$id = I('get.id');
|
|
$bill = M('retail_bill_order')->where(array('id' => $id))->find();
|
|
if ($bill['type'] == 1) {
|
|
$onlineInfo = M('retail_bill_online')->where(array('bill_id' => $id))->find();
|
|
if ($onlineInfo['pickup_type'] == 2 || $onlineInfo['pickup_type'] == 3) {
|
|
$address['address'] = $onlineInfo['user_address'];
|
|
}
|
|
$bill['delivery_fee'] = $onlineInfo['delivery_fee'];
|
|
$address['name'] = $onlineInfo['user_name'];
|
|
$address['phone'] = $onlineInfo['user_phone'];
|
|
$this->assign('address', $address);
|
|
}
|
|
if (in_array('Credit', C('MODULE_ALLOW_LIST'))) {
|
|
$CreditArrearageModel = new \Credit\Model\CreditArrearageModel();
|
|
$isCreditBill = $CreditArrearageModel->getFind(['bill_id' => $id], 'state');
|
|
if ($isCreditBill) {
|
|
switch ($isCreditBill) {
|
|
case 1:
|
|
$bill['credit_repay_state'] = '已还清';
|
|
break;
|
|
case 2:
|
|
$bill['credit_repay_state'] = '未还清';
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
$bill['place_time'] = date('Y-m-d H:i:s', $bill['add_time']);
|
|
$discount = M('retail_bill_discount')->where(array('bill_id' => $bill['id']))->find();
|
|
$bill['coupon_money'] = $discount['coupon_money'];
|
|
$bill['small_changes_money'] = $discount['small_changes_money'];
|
|
$bill['all_dis_money'] = $discount['vip_less_money'] + $discount['vip_dis_money'] + $discount['integral_dis_money'] + $discount['cashier_dis_money'];
|
|
$this->assign('bill', $bill);
|
|
$this->assign('id', $id);
|
|
$this->display();
|
|
}
|
|
|
|
public function orderDatainfo()
|
|
{
|
|
$id = I('post.id');
|
|
$billSellIds = M('retail_sell')->where(array('bill_id' => $id))->getField("id", true);
|
|
$page = 1;
|
|
$res['bill'] = $billSellIds;
|
|
$limit = I('post.limit');
|
|
$limit = $limit ? $limit : 5;
|
|
// 减少数据库统计,仅page为1时统计
|
|
$count1 = M('retail_sell')->where(array('id' => array('in', $billSellIds), 'pricing_method' => 1))->count();
|
|
$count2 = M('retail_sell')->where(array('id' => array('in', $billSellIds), 'pricing_method' => 2))->count();
|
|
$count = $count2 + $count1;
|
|
$totalnum1 = M('retail_sell')->where(array('id' => array('in', $billSellIds), 'pricing_method' => 1))->sum('num');
|
|
$totalnum1 = $totalnum1 ? $totalnum1 : 0;
|
|
$totalnum2 = M('retail_sell')->where(array('id' => array('in', $billSellIds), 'pricing_method' => 2))->sum('num');
|
|
$totalnum2 = $totalnum2 ? $totalnum2 : 0;
|
|
$totalallmoney = M('retail_sell')->where(array('id' => array('in', $billSellIds)))->sum('(num-refund_num)*price');
|
|
$totalallmoney = $totalallmoney ? round($totalallmoney, 2) : 0;
|
|
$totalnum = $totalnum1 + $totalnum2;
|
|
$total['allnum'] = $totalnum;
|
|
$total['weighnum'] = $totalnum2;
|
|
$total['notweighnum'] = $totalnum1;
|
|
$total['allmoney'] = $totalallmoney;
|
|
$total['allcount'] = $count;
|
|
$total['weighcount'] = $count1;
|
|
$total['notweighcount'] = $count2;
|
|
$pagecount = ceil($count / $limit);
|
|
$num = 0;
|
|
$allgoodsarr = array();
|
|
while ($page <= $pagecount) {
|
|
$goodsinfo = M('retail_sell')
|
|
->where(array('id' => array('in', $billSellIds)))
|
|
->page($page, $limit)
|
|
->select();
|
|
if ($goodsinfo) {
|
|
$money = 0;
|
|
foreach ($goodsinfo as $k => &$v) {
|
|
$v['index'] = $k + 1 + $num;
|
|
$info = $v;
|
|
if ($v['goods_type'] == 1) {
|
|
$goods = M('retail_goods')
|
|
->where(array('id' => $v['goods_id']))
|
|
->field('goods_code,company,specifications,goods_number')->find();
|
|
if ($goods) {
|
|
$info['goods_code'] = $goods['goods_code'];
|
|
$info['goods_number'] = $goods['goods_number'];
|
|
$info['company'] = $goods['company'];
|
|
$info['specifications'] = $goods['specifications'];
|
|
}
|
|
$money += ($v['num'] - $v['refund_num']) * $v['price'];
|
|
if ($v['sku_json_info']) {
|
|
$v['goods_sku_info'] = json_decode($v['sku_json_info'], true);
|
|
if ($v['goods_sku_info']['name']) {
|
|
if (is_array($v['goods_sku_info']['name'])) {
|
|
$v['goods_sku_info']['skuname'] = implode(",", $v['goods_sku_info']['name']);
|
|
} else {
|
|
$v['goods_sku_info']['skuname'] = $v['goods_sku_info']['name'];
|
|
}
|
|
} else {
|
|
$v['goods_sku_info']['skuname'] = $this->skuIdListToSkuName($v['sku_json_info']['sku_id_list']);
|
|
}
|
|
if ($v['refund_num'] > $v['num']) {
|
|
$skunum = $v['goods_sku_info']['num'] ? $v['goods_sku_info']['num'] : $v['goods_sku_info']['sku_num'];
|
|
$v['refund_num'] = $v['refund_num'] / $skunum;
|
|
}
|
|
}
|
|
$v['all_money'] = round(($v['num'] - $v['refund_num']) * $v['price'], '2');
|
|
$v['goods_num'] = round($v['num'] - $v['refund_num'], 3);
|
|
$v['goods_info'] = $info;
|
|
} else {
|
|
$money += ($v['num'] - $v['refund_num']) * $v['price'];
|
|
if (($v['goods_type'] == 2 || $v['goods_id'] == 0) && empty($v['goods_name'])) {
|
|
$info['goods_name'] = '无码商品';
|
|
}
|
|
$v['goods_info'] = $info;
|
|
}
|
|
}
|
|
$money = round($money, 2);
|
|
$allgoodsarr[] = array(
|
|
'money' => $money,
|
|
'goodsinfo' => $goodsinfo
|
|
);
|
|
$page++;
|
|
} else {
|
|
break;
|
|
}
|
|
}
|
|
$res['pagecount'] = $pagecount;
|
|
if ($allgoodsarr) {
|
|
$res['status'] = 1;
|
|
$res['allgoodsarr'] = $allgoodsarr;
|
|
$res['info'] = $total;
|
|
} else {
|
|
$res['pagemoney'] = 0;
|
|
$total['len'] = 0;
|
|
$total['all_money'] = 0;
|
|
$total['allnum'] = 0;
|
|
$res['status'] = 0;
|
|
$res['data'] = array();
|
|
$res['info'] = $total;
|
|
}
|
|
$this->ajaxReturn($res);
|
|
}
|
|
|
|
/**
|
|
* *********************************************进销存打印****************************************************************************
|
|
*/
|
|
/**2019-12-23
|
|
* 门店进销存打印
|
|
*
|
|
*/
|
|
public function SPurchaseSale()
|
|
{
|
|
$store_id = session("storeid");
|
|
$data = I('get.');
|
|
$data['add_time'] = date("Y-m-d", strtotime($data['add_time']));
|
|
if ($data['type'] == 9) {
|
|
$store_id = $store_id ? $store_id : $data['store_id'];
|
|
} else if ($data['type'] == 10) {
|
|
$store_id = $data['store_id'] ? $data['store_id'] : $store_id;
|
|
}
|
|
$store_info = D("RetailStore")->getFind(array('id' => $store_id), "storetag,phone,province,city,area");
|
|
$store_info['phone'] = $store_info['phone'] ? $store_info['phone'] : '';
|
|
$address = $store_info['province'] . $store_info['city'] . $store_info['area'];
|
|
switch ($data['type']) {
|
|
case 1:
|
|
$title = $store_info['storetag'] . '采购单';
|
|
$where['purchase_order_id'] = $data['id'];
|
|
$count = D('SPurchaseGoods')->getCount($where);
|
|
break;
|
|
case 2:
|
|
$title = $store_info['storetag'] . '采购退货单';
|
|
$where['retreat_order_id'] = $data['id'];
|
|
$count = D('SRetreatGoods')->getCount($where);
|
|
break;
|
|
case 3:
|
|
$title = $store_info['storetag'] . '盘点单';
|
|
$where['inventory_order_id'] = $data['id'];
|
|
$count = D('SInventoryGoods')->getCount($where);
|
|
break;
|
|
case 4:
|
|
$title = $store_info['storetag'] . '报损单';
|
|
$where['loss_order_id'] = $data['id'];
|
|
$count = D('SLossReportGoods')->getCount($where);
|
|
break;
|
|
case 5:
|
|
$cate = $data['cate'];
|
|
switch ($cate) {
|
|
case 4:
|
|
$operation_type = "商户调拨";
|
|
$where['warehouse_record_id'] = $data['id'];
|
|
$where['type'] = 1;
|
|
$count = D('StockOutGoods')->getCount($where);
|
|
break;
|
|
case 5:
|
|
$operation_type = "门店调拨";
|
|
$where['warehouse_record_id'] = $data['id'];
|
|
$where['type'] = 3;
|
|
$count = D('SStockOutGoods')->getCount($where);
|
|
break;
|
|
case 6:
|
|
$operation_type = '申请商户调拨';
|
|
$where['warehouse_record_id'] = $data['id'];
|
|
$where['type'] = 3;
|
|
$count = D('StockOutGoods')->getCount($where);
|
|
break;
|
|
}
|
|
$title = "调拨单";
|
|
$this->assign('operation_type', $operation_type);
|
|
break;
|
|
case 6:
|
|
$cate = $data['cate'];
|
|
$where = array(
|
|
'warehouse_record_id' => $data['id']
|
|
);
|
|
$count = D('SWarehousingGoods')->getCount($where);
|
|
switch ($cate) {
|
|
case 0:
|
|
$operation_type = "其他入库";
|
|
break;
|
|
case 1:
|
|
$operation_type = "采购入库";
|
|
break;
|
|
case 2:
|
|
$operation_type = "补货入库";
|
|
break;
|
|
case 3:
|
|
$operation_type = "盘盈入库";
|
|
break;
|
|
case 4:
|
|
$operation_type = "商户调拨入库";
|
|
break;
|
|
case 5:
|
|
$operation_type = $data['store_name'] . "调拨入库";
|
|
break;
|
|
case 6:
|
|
$operation_type = "申请商户调拨入库";
|
|
break;
|
|
}
|
|
$this->assign('operation_type', $operation_type);
|
|
$title = $store_info['storetag'] . "入库单";
|
|
break;
|
|
case 7:
|
|
$cate = $data['cate'];
|
|
$where['stock_out_id'] = $data['id'];
|
|
$count = D('SStockOutGoods')->getCount($where);
|
|
switch ($cate) {
|
|
case 0:
|
|
$operation_type = "其他出库";
|
|
break;
|
|
case 1:
|
|
$operation_type = "退货至商户";
|
|
break;
|
|
case 2:
|
|
$operation_type = "盘亏";
|
|
break;
|
|
case 3:
|
|
$operation_type = "调拨至" . $data['store_name'];
|
|
break;
|
|
case 9:
|
|
$operation_type = "退货至供货商";
|
|
break;
|
|
}
|
|
$title = $store_info['storetag'] . "出库单";
|
|
$this->assign('operation_type', $operation_type);
|
|
break;
|
|
case 8:
|
|
$cate = $data['cate'];
|
|
$where = array(
|
|
'warehouse_record_id' => $data['id']
|
|
);
|
|
switch ($cate) {
|
|
case 1:
|
|
$title = "商户入库单";
|
|
$count = D('WarehousingGoods')->getCount($where);
|
|
break;
|
|
case 3:
|
|
$title = $data['store_name'] . "入库单";
|
|
$count = D('SWarehousingGoods')->getCount($where);
|
|
break;
|
|
}
|
|
break;
|
|
case 9:
|
|
$where = array('allocation_id' => $data['id']);
|
|
$count = D('AllocationGoods')->getCount($where);
|
|
switch ($data['identity']) {
|
|
case 1:
|
|
$title = $data['store_name'] . '申请调拨单';
|
|
break;
|
|
case 2:
|
|
$title = $store_info['storetag'] . "申请调拨单";
|
|
break;
|
|
}
|
|
break;
|
|
case 10:
|
|
//拒收详情
|
|
$where['stock_out_id'] = $data['id'];
|
|
$where['type'] = 3;
|
|
$refuseModel = new RefuseWarehousingModel();
|
|
$count = $refuseModel->getCount($where);
|
|
$operation_type = $store_info['storetag'] . "调拨至" . $data['store_name'] . '的拒收商品';
|
|
$title = $store_info['storetag'] . "调拨出库" . $data['store_name'] . "门店拒收的商品";
|
|
$this->assign('operation_type', $operation_type);
|
|
break;
|
|
}
|
|
switch ($data['type']) {
|
|
case 1:
|
|
case 2:
|
|
//供货商信息
|
|
$supplier = D('SSupplier')->getFieldInfo(array('id' => $data['supplier_id']), "supplier_name,province,city,area,linkman,phone");
|
|
$supplier['supplier_address'] = $supplier['province'] . $supplier['city'] . $supplier['area'];
|
|
$supplier['supplier_phone'] = $supplier['phone'];
|
|
unset($supplier['phone']);
|
|
$this->assign('purchase_state', true);
|
|
$this->assign('supplier', $supplier);
|
|
$this->assign('money_total', $data['money_total']);
|
|
$this->assign('warehouse_state', $data['warehouse_state']);
|
|
if ($data['type'] == 2) {
|
|
$this->assign('ret_num_state', true);
|
|
$this->assign('retreat_state', true);
|
|
$this->assign('difference_state', true);
|
|
} else {
|
|
$this->assign('pur_num_state', true);
|
|
}
|
|
break;
|
|
case 3:
|
|
$this->assign('cost_state', true);
|
|
$this->assign('g_num_state', true);
|
|
$this->assign('in_num_state', true);
|
|
$this->assign('num_state', true);
|
|
$this->assign('all_num', '数量:' . $data['quantity']);
|
|
$this->assign('money_total', '金额:' . $data['amount']);
|
|
break;
|
|
case 4:
|
|
$where = array(
|
|
'loss_order_id' => $data['id']
|
|
);
|
|
$all_num = D('SLossReportGoods')->where($where)->sum("loss_num");
|
|
$all_num = $all_num ? round($all_num, 3) : 0;
|
|
$this->assign('cost_state', true);
|
|
$this->assign('pur_num_state', true);
|
|
$this->assign('all_num', '数量:' . $all_num);
|
|
$this->assign('money_total', '金额:' . $data['money_total']);
|
|
break;
|
|
case 5:
|
|
case 6:
|
|
case 7:
|
|
case 8:
|
|
case 10:
|
|
$merchant_id = session("ls_userinfo")['merchantid'];
|
|
if ($data['type'] == 5 && ($data['cate'] == 4 || $data['cate'] == 6)) {
|
|
$supplier = D("RetailMerchant")->where(array('id' => $merchant_id))->field("name,province,city,area,mobile")->find();
|
|
$province = M("citys")->where(array('cityid' => $supplier['province']))->getField("city_name");
|
|
$city = M("citys")->where(array('cityid' => $supplier['city']))->getField("city_name");
|
|
$area = M("citys")->where(array('cityid' => $supplier['area']))->getField("city_name");
|
|
$supplier['supplier_address'] = $province . $city . $area;
|
|
$supplier['supplier_phone'] = $supplier['mobile'];
|
|
$supplier['supplier_name'] = "商户";
|
|
$supplier['linkman'] = $supplier['name'];
|
|
$data['operator'] = $supplier['linkman'];
|
|
} else if ($data['type'] == 5 && $data['cate'] == 5) {
|
|
$source_store_info = D("RetailStore")->getFind(array('id' => $data['source_store_id']), "storetag,phone,province,city,area");
|
|
$supplier['supplier_address'] = $source_store_info['province'] . $source_store_info['city'] . $source_store_info['area'];
|
|
$supplier['supplier_phone'] = $source_store_info['phone'];
|
|
$supplier['supplier_name'] = $source_store_info['storetag'];
|
|
$manager = M("retail_manager")->where(array('storeid' => $data['source_store_id']))->order("id asc")->field("name")->find();
|
|
$supplier['linkman'] = $manager['name'];
|
|
$data['operator'] = $manager['name'];
|
|
}
|
|
if ($data['type'] == 6 && ($data['cate'] == 1 || $data['cate'] == 4 || $data['cate'] == 5 || $data['cate'] == 6)) {
|
|
if ($data['cate'] == 1) {
|
|
$supplier = D('SSupplier')->getFieldInfo(array('id' => $data['supplier_id']), "supplier_name,province,city,area,linkman,phone");
|
|
$supplier['supplier_address'] = $supplier['province'] . $supplier['city'] . $supplier['area'];
|
|
$supplier['supplier_phone'] = $supplier['phone'];
|
|
unset($supplier['phone']);
|
|
} else if ($data['cate'] == 5) {
|
|
$source_store_info = D("RetailStore")->getFind(array('id' => $data['source_store_id']), "storetag,phone,province,city,area");
|
|
$supplier['supplier_address'] = $source_store_info['province'] . $source_store_info['city'] . $source_store_info['area'];
|
|
$supplier['supplier_phone'] = $source_store_info['phone'];
|
|
$supplier['supplier_name'] = $source_store_info['storetag'];
|
|
$manager = M("retail_manager")->where(array('storeid' => $data['source_store_id']))->order("id asc")->field("name")->find();
|
|
$supplier['linkman'] = $manager['name'];
|
|
} else {
|
|
$supplier = D("RetailMerchant")->where(array('id' => $merchant_id))->field("name,province,city,area,mobile")->find();
|
|
$province = M("citys")->where(array('cityid' => $supplier['province']))->getField("city_name");
|
|
$city = M("citys")->where(array('cityid' => $supplier['city']))->getField("city_name");
|
|
$area = M("citys")->where(array('cityid' => $supplier['area']))->getField("city_name");
|
|
$supplier['supplier_address'] = $province . $city . $area;
|
|
$supplier['supplier_phone'] = $supplier['mobile'];
|
|
$supplier['supplier_name'] = "商户";
|
|
$supplier['linkman'] = $supplier['name'];
|
|
$data['operator'] = $supplier['linkman'];
|
|
}
|
|
}
|
|
if ($data['type'] == 7 || $data['type'] == 10) {
|
|
switch ($data['cate']) {
|
|
case 1:
|
|
$supplier = D("RetailMerchant")->where(array('id' => $merchant_id))->field("name,province,city,area,mobile")->find();
|
|
$province = M("citys")->where(array('cityid' => $supplier['province']))->getField("city_name");
|
|
$city = M("citys")->where(array('cityid' => $supplier['city']))->getField("city_name");
|
|
$area = M("citys")->where(array('cityid' => $supplier['area']))->getField("city_name");
|
|
$supplier['supplier_address'] = $province . $city . $area;
|
|
$supplier['supplier_phone'] = $supplier['mobile'];
|
|
$supplier['supplier_name'] = "商户";
|
|
$supplier['linkman'] = $supplier['name'];
|
|
$data['operator'] = $supplier['linkman'];
|
|
break;
|
|
case 3:
|
|
$source_store_info = D("RetailStore")->getFind(array('id' => $data['transfer_to_store_id']), "storetag,phone,province,city,area");
|
|
$supplier['supplier_address'] = $source_store_info['province'] . $source_store_info['city'] . $source_store_info['area'];
|
|
$supplier['supplier_phone'] = $source_store_info['phone'];
|
|
$supplier['supplier_name'] = $source_store_info['storetag'];
|
|
$manager = M("retail_manager")->where(array('storeid' => $data['transfer_to_store_id']))->order("id asc")->field("name")->find();
|
|
$supplier['linkman'] = $manager['name'];
|
|
break;
|
|
case 9:
|
|
$supplier = D('SSupplier')->getFieldInfo(array('id' => $data['supplier_id']), "supplier_name,province,city,area,linkman,phone");
|
|
$supplier['supplier_address'] = $supplier['province'] . $supplier['city'] . $supplier['area'];
|
|
$supplier['supplier_phone'] = $supplier['phone'];
|
|
unset($supplier['phone']);
|
|
break;
|
|
}
|
|
}
|
|
if ($data['type'] == 8) {
|
|
if ($data['cate'] == 1) {
|
|
$supplier = D("RetailMerchant")->where(array('id' => $merchant_id))->field("name,province,city,area,mobile")->find();
|
|
$province = M("citys")->where(array('cityid' => $supplier['province']))->getField("city_name");
|
|
$city = M("citys")->where(array('cityid' => $supplier['city']))->getField("city_name");
|
|
$area = M("citys")->where(array('cityid' => $supplier['area']))->getField("city_name");
|
|
$manager = M("retail_manager")->where(array('storeid' => $store_id))->order("id asc")->field("name")->find();
|
|
$data['operator'] = $supplier['name'];
|
|
$store_info['phone'] = $supplier['mobile'];
|
|
$supplier['supplier_address'] = $address;
|
|
$supplier['supplier_phone'] = $store_info['phone'];
|
|
$supplier['supplier_name'] = $store_info['storetag'];
|
|
$supplier['linkman'] = $manager['name'];
|
|
$address = $province . $city . $area;
|
|
} else if ($data['cate'] == 3) {
|
|
$source_store_info = D("RetailStore")->getFind(array('id' => $data['transfer_to_store_id']), "storetag,phone,province,city,area");
|
|
$supplier['supplier_address'] = $address;
|
|
$supplier['supplier_phone'] = $store_info['phone'];
|
|
$supplier['supplier_name'] = $store_info['storetag'];
|
|
$manager = M("retail_manager")->where(array('storeid' => $data['transfer_to_store_id']))->order("id asc")->field("name")->find();
|
|
$manager_two = M("retail_manager")->where(array('storeid' => $store_id))->order("id asc")->field("name")->find();
|
|
$supplier['linkman'] = $manager_two['name'];
|
|
$data['operator'] = $manager['name'];
|
|
$address = $source_store_info['province'] . $source_store_info['city'] . $source_store_info['area'];
|
|
$store_info['phone'] = $source_store_info['phone'];
|
|
}
|
|
}
|
|
switch ($data['type']) {
|
|
case 5:
|
|
case 6:
|
|
case 8:
|
|
$this->assign('warehouse_state', true);
|
|
$this->assign('pur_num_state', true);
|
|
break;
|
|
case 7:
|
|
case 10:
|
|
$this->assign('stock_state', true);
|
|
$this->assign('st_num_state', true);
|
|
break;
|
|
}
|
|
$this->assign('supplier', $supplier);
|
|
$this->assign('cate', $data['cate']);
|
|
$this->assign('store_name', $data['store_name']);
|
|
$this->assign('money_total', round($data['money_total'], 2));
|
|
break;
|
|
case 9:
|
|
$merchant_id = session("ls_userinfo")['merchantid'];
|
|
$supplier = D("RetailMerchant")->where(array('id' => $merchant_id))->field("name,province,city,area,mobile")->find();
|
|
$province = M("citys")->where(array('cityid' => $supplier['province']))->getField("city_name");
|
|
$city = M("citys")->where(array('cityid' => $supplier['city']))->getField("city_name");
|
|
$area = M("citys")->where(array('cityid' => $supplier['area']))->getField("city_name");
|
|
$supplier['supplier_address'] = $province . $city . $area;
|
|
$supplier['supplier_phone'] = $supplier['mobile'];
|
|
$supplier['supplier_name'] = "商户";
|
|
$supplier['linkman'] = $supplier['name'];
|
|
$data['operator'] = $supplier['linkman'];
|
|
$data['warehouse'] = D('SSaleWarehouse')->getFindField(array('store_id' => $store_id, 'status' => 1), "name");
|
|
if ($data['status'] == 2) {
|
|
$this->assign('stock_state', true);
|
|
$this->assign('st_num_state', true);
|
|
$this->assign('st_sub_state', true);
|
|
} else if ($data['status'] == 3) {
|
|
$this->assign('stock_state', true);
|
|
$this->assign('st_num_state', true);
|
|
$this->assign('st_sub_state', true);
|
|
$this->assign('warehouse_state', true);
|
|
$this->assign('war_state', true);
|
|
$this->assign('pur_sub_state', true);
|
|
}
|
|
$this->assign('status', $data['status']);
|
|
$this->assign('supplier', $supplier);
|
|
$this->assign('app_num_state', true);
|
|
$this->assign('operation_type', "申请商户调拨");
|
|
$this->assign('stock_time', date('Y-m-d', strtotime($data['stock_time'])));
|
|
$this->assign('storage_time', date('Y-m-d', strtotime($data['storage_time'])));
|
|
$this->assign('ware_money', round($data['accept_money_total']));
|
|
$this->assign('status_state', $data['status_name']);
|
|
$this->assign('money_total', round($data['money_total']));
|
|
break;
|
|
}
|
|
$this->assign('showPrice', $data['showPrice']);
|
|
$this->assign('identity', $data['identity']);
|
|
$this->assign('id', $data['id']);
|
|
$this->assign('type', $data['type']);
|
|
$this->assign('title', $title);
|
|
$this->assign('storetag', $store_info['storetag']);
|
|
$this->assign('warehouse', $data['warehouse']);
|
|
$this->assign('order_number', $data['order_number']);
|
|
$this->assign('add_time', $data['add_time']);
|
|
$this->assign('goods_species', $data['goods_species']);
|
|
$this->assign('remarks', $data['remarks']);
|
|
$this->assign('phone', $store_info['phone']);
|
|
$this->assign('address', $address);
|
|
$this->assign('operator', $data['operator'] ? $data['operator'] : '');
|
|
$this->assign('count', $count ? $count : 10);
|
|
$this->display();
|
|
}
|
|
|
|
/**
|
|
* 门店进销存打印列表
|
|
*/
|
|
public function getSPurchaseList()
|
|
{
|
|
$store_id = session("storeid");
|
|
$data = I("post.");
|
|
$id = $data['id'];
|
|
$type = $data['type'];
|
|
$page = 1;
|
|
$limit = $data['limit'];
|
|
$print = D("InventoryPrint")->getFind(array('type' => 2, 'store_id' => $store_id));
|
|
$allgoodsarr = array();
|
|
switch ($data['type']) {
|
|
case 1:
|
|
$where['purchase_order_id'] = $data['id'];
|
|
$count = D('SPurchaseGoods')->getCount($where);
|
|
$pageCount = ceil($count / $limit);
|
|
while ($page <= $pageCount) {
|
|
$detailsList = D('SPurchaseGoods')->getSelect($where, $page, $limit, $field = '', 'id asc');
|
|
if ($detailsList) {
|
|
$pageTotal = 0;
|
|
foreach ($detailsList as $key => &$val) {
|
|
$pageTotal += $val['subtotal'];
|
|
$val['index'] = $key + 1;
|
|
$val['sku_num'] = round($val['sku_num'], 3);
|
|
$val['purchase_num'] = round($val['purchase_num'], 3);
|
|
$val['purchase_price'] = round($val['purchase_price'], 2);
|
|
$val['subtotal'] = round($val['subtotal'], 2);
|
|
if ($val['attribute_state'] == 2) {
|
|
$val['goods_number'] = $val['sku_goods_number'];
|
|
$val['goods_code'] = $val['sku_code'];
|
|
}
|
|
if (!empty($print['font_num'])) {
|
|
if (mb_strlen($val['goods_name']) > $print['font_num']) {
|
|
$val['goods_name'] = mb_substr($val['goods_name'], 0, $print['font_num'], 'utf-8');
|
|
}
|
|
}
|
|
if (!empty($print['sku_num'])) {
|
|
if (mb_strlen($val['sku_name']) > $print['sku_num']) {
|
|
$val['sku_name'] = mb_substr($val['sku_name'], 0, $print['sku_num'], 'utf-8');
|
|
}
|
|
}
|
|
}
|
|
$allgoodsarr[] = array(
|
|
'pageTotal' => round($pageTotal, 2),
|
|
'goodsinfo' => $detailsList,
|
|
);
|
|
$page++;
|
|
}
|
|
}
|
|
break;
|
|
case 2:
|
|
$where['retreat_order_id'] = $data['id'];
|
|
$count = D('SRetreatGoods')->getCount($where);
|
|
$pageCount = ceil($count / $limit);
|
|
while ($page <= $pageCount) {
|
|
$detailsList = D('SRetreatGoods')->getSelect($where, $page, $limit, $field = '', 'id asc');
|
|
if ($detailsList) {
|
|
$pageTotal = 0;
|
|
foreach ($detailsList as $key => &$val) {
|
|
$pageTotal += $val['subtotal'];
|
|
$val['index'] = $key + 1;
|
|
if (!empty($print['font_num'])) {
|
|
if (mb_strlen($val['goods_name']) > $print['font_num']) {
|
|
$val['goods_name'] = mb_substr($val['goods_name'], 0, $print['font_num'], 'utf-8');
|
|
}
|
|
}
|
|
if (!empty($print['sku_num'])) {
|
|
if (mb_strlen($val['sku_name']) > $print['sku_num']) {
|
|
$val['sku_name'] = mb_substr($val['sku_name'], 0, $print['sku_num'], 'utf-8');
|
|
}
|
|
}
|
|
$val['retreat_num'] = round($val['retreat_num'], 3);
|
|
$val['retreat_price'] = round($val['retreat_price'], 2);
|
|
$val['subtotal'] = round($val['subtotal'], 2);
|
|
$val['sku_num'] = round($val['sku_num'], 3);
|
|
if ($val['attribute_state'] == 2) {
|
|
$val['goods_number'] = $val['sku_goods_number'];
|
|
$val['goods_code'] = $val['sku_code'];
|
|
}
|
|
$val['purchase_price'] = round($val['purchase_price'], 2);
|
|
$val['difference_money'] = round(($val['retreat_price'] - $val['purchase_price']) * $val['retreat_num'], 2);
|
|
}
|
|
$allgoodsarr[] = array(
|
|
'pageTotal' => round($pageTotal, 2),
|
|
'goodsinfo' => $detailsList,
|
|
);
|
|
$page++;
|
|
}
|
|
}
|
|
break;
|
|
case 3:
|
|
$where['state'] = 1;
|
|
$where['inventory_order_id'] = $data['id'];
|
|
$count = D('SInventoryGoods')->getCount($where);
|
|
$pageCount = ceil($count / $limit);
|
|
while ($page <= $pageCount) {
|
|
$detailsList = D('SInventoryGoods')->getSelect($where, $page, $limit);
|
|
if ($detailsList) {
|
|
$pageTotal = 0;
|
|
$pageNum = 0;
|
|
foreach ($detailsList as $key => &$val) {
|
|
$pageTotal += $val['subtotal'];
|
|
$pageNum += $val['num'];
|
|
$val['index'] = $key + 1;
|
|
if (!empty($print['font_num'])) {
|
|
if (mb_strlen($val['goods_name']) > $print['font_num']) {
|
|
$val['goods_name'] = mb_substr($val['goods_name'], 0, $print['font_num'], 'utf-8');
|
|
}
|
|
}
|
|
if (!empty($print['sku_num'])) {
|
|
if (mb_strlen($val['sku_name']) > $print['sku_num']) {
|
|
$val['sku_name'] = mb_substr($val['sku_name'], 0, $print['sku_num'], 'utf-8');
|
|
}
|
|
}
|
|
$val['inventory_num'] = round($val['inventory_num'], 3);
|
|
$val['cost_price'] = round($val['cost_price'], 2);
|
|
$val['subtotal'] = round($val['subtotal'], 2);
|
|
$val['sku_num'] = round($val['sku_num'], 3);
|
|
$val['goods_num'] = round($val['goods_num'], 3);
|
|
$val['num'] = round($val['num'], 3);
|
|
if ($val['attribute_state'] == 2) {
|
|
$val['goods_code'] = $val['sku_code'];
|
|
$val['goods_number'] = $val['sku_goods_number'];
|
|
}
|
|
}
|
|
$allgoodsarr[] = array(
|
|
'pageTotal' => '金额:' . round($pageTotal, 2),
|
|
'pageNum' => '数量:' . round($pageNum, 3),
|
|
'goodsinfo' => $detailsList,
|
|
);
|
|
$page++;
|
|
}
|
|
}
|
|
break;
|
|
case 4:
|
|
$where['loss_order_id'] = $data['id'];
|
|
$count = D('SLossReportGoods')->getCount($where);
|
|
$pageCount = ceil($count / $limit);
|
|
while ($page <= $pageCount) {
|
|
$detailsList = D('SLossReportGoods')->getSelect($where, $page, $limit);
|
|
if ($detailsList) {
|
|
$pageTotal = 0;
|
|
$pageNum = 0;
|
|
foreach ($detailsList as $key => &$val) {
|
|
$pageTotal += $val['subtotal'];
|
|
$pageNum += $val['loss_num'];
|
|
$val['index'] = $key + 1;
|
|
if (!empty($print['font_num'])) {
|
|
if (mb_strlen($val['goods_name']) > $print['font_num']) {
|
|
$val['goods_name'] = mb_substr($val['goods_name'], 0, $print['font_num'], 'utf-8');
|
|
}
|
|
}
|
|
if (!empty($print['sku_num'])) {
|
|
if (mb_strlen($val['sku_name']) > $print['sku_num']) {
|
|
$val['sku_name'] = mb_substr($val['sku_name'], 0, $print['sku_num'], 'utf-8');
|
|
}
|
|
}
|
|
$val['purchase_num'] = round($val['loss_num'], 3);
|
|
$val['cost_price'] = round($val['loss_price'], 2);
|
|
$val['subtotal'] = round($val['subtotal'], 2);
|
|
$val['sku_num'] = round($val['sku_num'], 3);
|
|
if ($val['attribute_state'] == 2) {
|
|
$val['goods_code'] = $val['sku_code'];
|
|
$val['goods_number'] = $val['sku_goods_number'];
|
|
}
|
|
}
|
|
$allgoodsarr[] = array(
|
|
'pageTotal' => '金额:' . round($pageTotal, 2),
|
|
'pageNum' => '数量:' . round($pageNum, 2),
|
|
'goodsinfo' => $detailsList,
|
|
);
|
|
$page++;
|
|
}
|
|
}
|
|
break;
|
|
case 5:
|
|
$cate = $data['cate'];
|
|
$id = $data['id'];
|
|
if ($cate == 4 || $cate == 6) {
|
|
//商家调拨单
|
|
$where['warehouse_record_id'] = $id;
|
|
if ($cate == 4) {
|
|
$where['type'] = 1;
|
|
} else if ($cate == 6) {
|
|
$where['type'] = 3;
|
|
}
|
|
$count = D('StockOutGoods')->getCount($where);
|
|
$pageCount = ceil($count / $limit);
|
|
while ($page <= $pageCount) {
|
|
$detailsList = D('StockOutGoods')->getSelect($where, $page, $limit);
|
|
if ($detailsList) {
|
|
$pageTotal = 0;
|
|
foreach ($detailsList as $key => &$val) {
|
|
$pageTotal += $val['subtotal'];
|
|
$val['index'] = $key + 1;
|
|
if (!empty($print['font_num'])) {
|
|
if (mb_strlen($val['goods_name']) > $print['font_num']) {
|
|
$val['goods_name'] = mb_substr($val['goods_name'], 0, $print['font_num'], 'utf-8');
|
|
}
|
|
}
|
|
if (!empty($print['sku_num'])) {
|
|
if (mb_strlen($val['sku_name']) > $print['sku_num']) {
|
|
$val['sku_name'] = mb_substr($val['sku_name'], 0, $print['sku_num'], 'utf-8');
|
|
}
|
|
}
|
|
$val['sku_num'] = round($val['sku_num'], 3);
|
|
$val['purchase_num'] = round($val['stock_num'], 3);
|
|
$val['warehouse_price'] = round($val['stock_price'], 2);
|
|
$val['subtotal'] = round($val['subtotal'], 2);
|
|
if ($val['attribute_state'] == 2) {
|
|
$val['goods_code'] = $val['sku_code'];
|
|
$val['goods_number'] = $val['sku_goods_number'];
|
|
}
|
|
}
|
|
$allgoodsarr[] = array(
|
|
'pageTotal' => round($pageTotal, 2),
|
|
'goodsinfo' => $detailsList
|
|
);
|
|
$page++;
|
|
}
|
|
}
|
|
} else if ($cate == 5) {
|
|
//门店调拨
|
|
$where['warehouse_record_id'] = $id;
|
|
$where['type'] = 3;
|
|
$count = D('SStockOutGoods')->getCount($where);
|
|
$pageCount = ceil($count / $limit);
|
|
while ($page <= $pageCount) {
|
|
$detailsList = D('SStockOutGoods')->getSelect($where, $page, $limit);
|
|
if ($detailsList) {
|
|
$pageTotal = 0;
|
|
foreach ($detailsList as $key => &$val) {
|
|
$pageTotal += $val['subtotal'];
|
|
$val['index'] = $key + 1;
|
|
if (!empty($print['font_num'])) {
|
|
if (mb_strlen($val['goods_name']) > $print['font_num']) {
|
|
$val['goods_name'] = mb_substr($val['goods_name'], 0, $print['font_num'], 'utf-8');
|
|
}
|
|
}
|
|
if (!empty($print['sku_num'])) {
|
|
if (mb_strlen($val['sku_name']) > $print['sku_num']) {
|
|
$val['sku_name'] = mb_substr($val['sku_name'], 0, $print['sku_num'], 'utf-8');
|
|
}
|
|
}
|
|
$val['purchase_num'] = round($val['stock_num'], 3);
|
|
$val['warehouse_price'] = round($val['stock_price'], 2);
|
|
$val['subtotal'] = round($val['subtotal'], 2);
|
|
$val['sku_num'] = round($val['sku_num'], 3);
|
|
if ($val['attribute_state'] == 2) {
|
|
$val['goods_code'] = $val['sku_code'];
|
|
$val['goods_number'] = $val['sku_goods_number'];
|
|
}
|
|
}
|
|
$allgoodsarr[] = array(
|
|
'pageTotal' => round($pageTotal, 2),
|
|
'goodsinfo' => $detailsList
|
|
);
|
|
$page++;
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 6:
|
|
$id = $data['id'];
|
|
$cate = $data['cate'];
|
|
$where = array(
|
|
'warehouse_record_id' => $id
|
|
);
|
|
$count = D('SWarehousingGoods')->getCount($where);
|
|
$pageCount = ceil($count / $limit);
|
|
while ($page <= $pageCount) {
|
|
$detailsList = D('SWarehousingGoods')->getSelect($where, $page, $limit, $fields = '', 'id asc');
|
|
if ($detailsList) {
|
|
$pageTotal = 0;
|
|
foreach ($detailsList as $key => &$val) {
|
|
$pageTotal += $val['subtotal'];
|
|
if ($val['attribute_state'] == 2) {
|
|
$val['goods_code'] = $val['sku_code'];
|
|
$val['goods_number'] = $val['sku_goods_number'];
|
|
}
|
|
$val['index'] = $key + 1;
|
|
if (!empty($print['font_num'])) {
|
|
if (mb_strlen($val['goods_name']) > $print['font_num']) {
|
|
$val['goods_name'] = mb_substr($val['goods_name'], 0, $print['font_num'], 'utf-8');
|
|
}
|
|
}
|
|
if (!empty($print['sku_num'])) {
|
|
if (mb_strlen($val['sku_name']) > $print['sku_num']) {
|
|
$val['sku_name'] = mb_substr($val['sku_name'], 0, $print['sku_num'], 'utf-8');
|
|
}
|
|
}
|
|
$val['sku_num'] = round($val['sku_num'], 3);
|
|
$val['purchase_num'] = round($val['warehouse_num'], 3);
|
|
$val['warehouse_price'] = round($val['warehouse_price'], 2);
|
|
$val['subtotal'] = round($val['subtotal'], 2);
|
|
}
|
|
$allgoodsarr[] = array(
|
|
'pageTotal' => round($pageTotal, 2),
|
|
'goodsinfo' => $detailsList
|
|
);
|
|
$page++;
|
|
}
|
|
}
|
|
break;
|
|
case 7:
|
|
$cate = $data['cate'];
|
|
$where['stock_out_id'] = $data['id'];
|
|
$where['type'] = ['in','0,1,2,3,9'];
|
|
$count = D('SStockOutGoods')->getCount($where);
|
|
$pageCount = ceil($count / $limit);
|
|
while ($page <= $pageCount) {
|
|
$detailsList = D('SStockOutGoods')->getSelect($where, $page, $limit, "*", "id asc");
|
|
if ($detailsList) {
|
|
$pageTotal = 0;
|
|
foreach ($detailsList as $key => &$val) {
|
|
$pageTotal += $val['subtotal'];
|
|
$val['index'] = $key + 1;
|
|
if (!empty($print['font_num'])) {
|
|
if (mb_strlen($val['goods_name']) > $print['font_num']) {
|
|
$val['goods_name'] = mb_substr($val['goods_name'], 0, $print['font_num'], 'utf-8');
|
|
}
|
|
}
|
|
if (!empty($print['sku_num'])) {
|
|
if (mb_strlen($val['sku_name']) > $print['sku_num']) {
|
|
$val['sku_name'] = mb_substr($val['sku_name'], 0, $print['sku_num'], 'utf-8');
|
|
}
|
|
}
|
|
$val['stock_num'] = round($val['stock_num'], 3);
|
|
$val['stock_price'] = round($val['stock_price'], 2);
|
|
$val['subtotal'] = round($val['subtotal'], 2);
|
|
$val['sku_num'] = round($val['sku_num'], 3);
|
|
if ($val['attribute_state'] == 2) {
|
|
$val['goods_code'] = $val['sku_code'];
|
|
$val['goods_number'] = $val['sku_goods_number'];
|
|
}
|
|
}
|
|
$allgoodsarr[] = array(
|
|
'pageTotal' => round($pageTotal, 2),
|
|
'goodsinfo' => $detailsList
|
|
);
|
|
$page++;
|
|
}
|
|
}
|
|
break;
|
|
case 8:
|
|
$id = $data['id'];
|
|
$cate = $data['cate'];
|
|
$where = array(
|
|
'warehouse_record_id' => $id
|
|
);
|
|
if ($cate == 1) {
|
|
//商户入库
|
|
$count = D('WarehousingGoods')->getCount($where);
|
|
$pageCount = ceil($count / $limit);
|
|
while ($page <= $pageCount) {
|
|
$detailsList = D('WarehousingGoods')->getSelect($where, $page, $limit);
|
|
if ($detailsList) {
|
|
$pageTotal = 0;
|
|
foreach ($detailsList as $key => &$val) {
|
|
$pageTotal += $val['subtotal'];
|
|
if ($val['attribute_state'] == 2) {
|
|
$val['goods_code'] = $val['sku_code'];
|
|
$val['goods_number'] = $val['sku_goods_number'];
|
|
}
|
|
$val['index'] = $key + 1;
|
|
if (!empty($print['font_num'])) {
|
|
if (mb_strlen($val['goods_name']) > $print['font_num']) {
|
|
$val['goods_name'] = mb_substr($val['goods_name'], 0, $print['font_num'], 'utf-8');
|
|
}
|
|
}
|
|
if (!empty($print['sku_num'])) {
|
|
if (mb_strlen($val['sku_name']) > $print['sku_num']) {
|
|
$val['sku_name'] = mb_substr($val['sku_name'], 0, $print['sku_num'], 'utf-8');
|
|
}
|
|
}
|
|
$val['sku_num'] = round($val['sku_num'], 3);
|
|
$val['purchase_num'] = round($val['warehouse_num'], 3);
|
|
$val['warehouse_price'] = round($val['warehouse_price'], 2);
|
|
$val['subtotal'] = round($val['subtotal'], 2);
|
|
}
|
|
$allgoodsarr[] = array(
|
|
'pageTotal' => round($pageTotal, 2),
|
|
'goodsinfo' => $detailsList
|
|
);
|
|
$page++;
|
|
}
|
|
}
|
|
} else if ($cate == 3) {
|
|
//门店入库
|
|
$count = D('SWarehousingGoods')->getCount($where);
|
|
$pageCount = ceil($count / $limit);
|
|
while ($page <= $pageCount) {
|
|
$detailsList = D('SWarehousingGoods')->getSelect($where, $page, $limit);
|
|
if ($detailsList) {
|
|
$pageTotal = 0;
|
|
foreach ($detailsList as $key => &$val) {
|
|
$pageTotal += $val['subtotal'];
|
|
if ($val['attribute_state'] == 2) {
|
|
$val['goods_code'] = $val['sku_code'];
|
|
$val['goods_number'] = $val['sku_goods_number'];
|
|
}
|
|
$val['index'] = $key + 1;
|
|
if (!empty($print['font_num'])) {
|
|
if (mb_strlen($val['goods_name']) > $print['font_num']) {
|
|
$val['goods_name'] = mb_substr($val['goods_name'], 0, $print['font_num'], 'utf-8');
|
|
}
|
|
}
|
|
if (!empty($print['sku_num'])) {
|
|
if (mb_strlen($val['sku_name']) > $print['sku_num']) {
|
|
$val['sku_name'] = mb_substr($val['sku_name'], 0, $print['sku_num'], 'utf-8');
|
|
}
|
|
}
|
|
$val['sku_num'] = round($val['sku_num'], 3);
|
|
$val['purchase_num'] = round($val['warehouse_num'], 3);
|
|
$val['warehouse_price'] = round($val['warehouse_price'], 2);
|
|
$val['subtotal'] = round($val['subtotal'], 2);
|
|
}
|
|
$allgoodsarr[] = array(
|
|
'pageTotal' => round($pageTotal, 2),
|
|
'goodsinfo' => $detailsList
|
|
);
|
|
$page++;
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 9:
|
|
$id = $data['id'];
|
|
$where = array('allocation_id' => $id);
|
|
$orderInfo = D('AllocationOrder')->getFind(array('id' => $id));
|
|
if (!empty($orderInfo['stock_order_id'])) {
|
|
$stockGoods = D('StockOutGoods')->getSelect(array('stock_out_id' => $orderInfo['stock_order_id']));
|
|
}
|
|
if (!empty($orderInfo['warehouse_order_id'])) {
|
|
$warehouseGoods = D('SWarehousingGoods')->getSelect(array('warehouse_record_id' => $orderInfo['warehouse_order_id']));
|
|
}
|
|
//商户入库
|
|
$count = D('AllocationGoods')->getCount($where);
|
|
$pageCount = ceil($count / $limit);
|
|
while ($page <= $pageCount) {
|
|
$detailsList = D('AllocationGoods')->getSelect($where, $page, $limit);
|
|
if ($detailsList) {
|
|
$pageTotal = 0;
|
|
$stockTotal = 0;
|
|
foreach ($detailsList as $key => &$val) {
|
|
$val['index'] = $key + 1;
|
|
if (!empty($print['font_num'])) {
|
|
if (mb_strlen($val['goods_name']) > $print['font_num']) {
|
|
$val['goods_name'] = mb_substr($val['goods_name'], 0, $print['font_num'], 'utf-8');
|
|
}
|
|
}
|
|
if (!empty($print['sku_num'])) {
|
|
if (mb_strlen($val['sku_name']) > $print['sku_num']) {
|
|
$val['sku_name'] = mb_substr($val['sku_name'], 0, $print['sku_num'], 'utf-8');
|
|
}
|
|
}
|
|
if ($val['attribute_state'] == 2) {
|
|
$val['goods_number'] = $val['sku_goods_number'];
|
|
$val['goods_code'] = $val['sku_code'];
|
|
}
|
|
$val['apply_num'] = round($val['apply_num'], 3);
|
|
$val['sku_num'] = round($val['sku_num'], 3);
|
|
if (!empty($stockGoods)) {
|
|
foreach ($stockGoods as $skey => $sval) {
|
|
if ($val['attribute_state'] == 2 && $val['goods_id'] == $sval['goods_id'] && $val['sku_id'] == $sval['sku_id'] || $val['attribute_state'] == 1 && $val['goods_id'] == $sval['goods_id']) {
|
|
$val['stock_num'] = round($sval['stock_num'], 3);
|
|
$val['stock_price'] = round($sval['stock_price'], 2);
|
|
$val['stock_price_total'] = round($val['stock_num'] * $val['stock_price'], 2);
|
|
$stockTotal += $val['stock_price_total'];
|
|
}
|
|
}
|
|
}
|
|
if (!empty($warehouseGoods)) {
|
|
foreach ($warehouseGoods as $wkey => $wval) {
|
|
if ($val['attribute_state'] == 2 && $val['goods_number'] == $wval['sku_goods_number'] || $val['attribute_state'] == 1 && $val['goods_number'] == $wval['goods_number']) {
|
|
$val['warehouse_num'] = round($wval['warehouse_num'], 3);
|
|
$val['warehouse_price'] = round($wval['warehouse_price'], 2);
|
|
$val['warehouse_price_total'] = round($val['warehouse_num'] * $val['warehouse_price'], 2);
|
|
$pageTotal += $val['warehouse_price_total'];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
$allgoodsarr[] = array(
|
|
'pageTotal' => round($pageTotal, 2),
|
|
'stockTotal' => round($stockTotal, 2),
|
|
'goodsinfo' => $detailsList
|
|
);
|
|
$page++;
|
|
}
|
|
}
|
|
break;
|
|
case 10:
|
|
$where['stock_out_id'] = $data['id'];
|
|
$where['type'] = 3;
|
|
$refuseModel = new RefuseWarehousingModel();
|
|
$count = $refuseModel->getCount($where);
|
|
$pageCount = ceil($count / $limit);
|
|
while ($page <= $pageCount) {
|
|
$detailsList = $refuseModel->getSelect($where, $page, $limit, "*", "id asc");
|
|
if ($detailsList) {
|
|
$pageTotal = 0;
|
|
foreach ($detailsList as $key => &$val) {
|
|
$pageTotal += $val['subtotal'];
|
|
$val['index'] = $key + 1;
|
|
if (!empty($print['font_num'])) {
|
|
if (mb_strlen($val['goods_name']) > $print['font_num']) {
|
|
$val['goods_name'] = mb_substr($val['goods_name'], 0, $print['font_num'], 'utf-8');
|
|
}
|
|
}
|
|
if (!empty($print['sku_num'])) {
|
|
if (mb_strlen($val['sku_name']) > $print['sku_num']) {
|
|
$val['sku_name'] = mb_substr($val['sku_name'], 0, $print['sku_num'], 'utf-8');
|
|
}
|
|
}
|
|
$val['stock_num'] = round($val['refuse_num'], 3);
|
|
$val['stock_price'] = round($val['stock_price'], 2);
|
|
$val['subtotal'] = round($val['subtotal'], 2);
|
|
$val['sku_num'] = round($val['sku_num'], 3);
|
|
if ($val['attribute_state'] == 2) {
|
|
$val['goods_code'] = $val['sku_code'];
|
|
$val['goods_number'] = $val['sku_goods_number'];
|
|
}
|
|
}
|
|
$allgoodsarr[] = array(
|
|
'pageTotal' => round($pageTotal, 2),
|
|
'goodsinfo' => $detailsList
|
|
);
|
|
$page++;
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
$info = array(
|
|
'allcount' => $count,
|
|
);
|
|
$res['allgoodsarr'] = $allgoodsarr;
|
|
$res['pagecount'] = $pageCount;
|
|
$res['info'] = $info;
|
|
$res['status'] = 1;
|
|
$this->ajaxReturn($res);
|
|
}
|
|
|
|
/**
|
|
* 商户进销存打印
|
|
*/
|
|
public function PurchaseSale()
|
|
{
|
|
$merchant_id = session("merchant_userinfo")['id'];
|
|
$merchant_info = D("RetailMerchant")->where(array('id' => $merchant_id))->field("name,province,city,area,mobile")->find();
|
|
$province = M("citys")->where(array('cityid' => $merchant_info['province']))->getField("city_name");
|
|
$city = M("citys")->where(array('cityid' => $merchant_info['city']))->getField("city_name");
|
|
$area = M("citys")->where(array('cityid' => $merchant_info['area']))->getField("city_name");
|
|
$address = $province . $city . $area;
|
|
$phone = $merchant_info['mobile'];
|
|
$data = I('get.');
|
|
switch ($data['type']) {
|
|
case 1:
|
|
$title = $merchant_info['name'] . "采购单";
|
|
$where['purchase_order_id'] = $data['id'];
|
|
$count = D('PurchaseGoods')->getCount($where);
|
|
break;
|
|
case 2:
|
|
$title = $merchant_info['name'] . "采购退货单";
|
|
$where['retreat_order_id'] = $data['id'];
|
|
$count = D('RetreatGoods')->getCount($where);
|
|
break;
|
|
case 3:
|
|
$title = $merchant_info['name'] . "盘点单";
|
|
$where['inventory_order_id'] = $data['id'];
|
|
$count = D('InventoryGoods')->getCount($where);
|
|
break;
|
|
case 4:
|
|
$title = $merchant_info['name'] . "报损单";
|
|
$where = array(
|
|
'loss_order_id' => $data['id']
|
|
);
|
|
$count = D('LossReportGoods')->getCount($where);
|
|
break;
|
|
case 5:
|
|
$title = $merchant_info['name'] . "入库单";
|
|
$operation_type = $data['stock_name'];
|
|
$this->assign('operation_type', $operation_type);
|
|
$where = array('warehouse_record_id' => $data['id']);
|
|
$count = D('WarehousingGoods')->getCount($where);
|
|
break;
|
|
case 6:
|
|
$title = $data['store_name'] . "退货单";
|
|
$where['warehouse_record_id'] = $data['id'];
|
|
$where['type'] = 1;
|
|
$count = D('SStockOutGoods')->getCount($where);
|
|
break;
|
|
case 7:
|
|
$title = $merchant_info['name'] . "出库单";
|
|
$operation_type = $data['stock_name'];
|
|
$this->assign('operation_type', $operation_type);
|
|
$where['stock_out_id'] = $data['id'];
|
|
$count = D('StockOutGoods')->getCount($where);
|
|
break;
|
|
case 8:
|
|
$title = $data['store_name'] . "入库单";
|
|
$where = array('warehouse_record_id' => $data['id']);
|
|
$count = D('SWarehousingGoods')->getCount($where);
|
|
break;
|
|
case 9:
|
|
$title = $merchant_info['name'] . "调拨出库后门店拒收的商品";
|
|
$operation_type = $data['stock_name'];
|
|
$this->assign('operation_type', $operation_type);
|
|
$where['stock_out_id'] = $data['id'];
|
|
$where['type'] = array('in', '1,2');
|
|
$refuseGoods = new RefuseWarehousingModel();
|
|
$count = $refuseGoods->getCount($where);
|
|
break;
|
|
}
|
|
switch ($data['type']) {
|
|
case 1:
|
|
case 2:
|
|
$supplier = D('RetailSupplier')->getFind(array('id' => $data['supplier_id']), "supplier_name,province,city,area,linkman,phone");
|
|
$supplier['supplier_address'] = $supplier['province'] . $supplier['city'] . $supplier['area'];
|
|
$supplier['supplier_phone'] = $supplier['phone'];
|
|
unset($supplier['phone']);
|
|
if ($data['type'] == 2) {
|
|
$this->assign('ret_num_state', true);
|
|
$this->assign('retreat_state', true);
|
|
$this->assign('difference_state', true);
|
|
} else {
|
|
$this->assign('pur_num_state', true);
|
|
}
|
|
$this->assign('purchase_state', true);
|
|
$this->assign('supplier', $supplier);
|
|
$this->assign('warehouse_state', $data['warehouse_state']);
|
|
$this->assign('money_total', round($data['money_total'], 2));
|
|
break;
|
|
case 3:
|
|
$data['money_total'] = '金额:' . round($data['amount'], 2);
|
|
$this->assign('cost_state', true);
|
|
$this->assign('g_num_state', true);
|
|
$this->assign('in_num_state', true);
|
|
$this->assign('num_state', true);
|
|
$this->assign('all_num', '数量:' . $data['quantity']);
|
|
$this->assign('money_total', $data['money_total']);
|
|
break;
|
|
case 4:
|
|
$where = array(
|
|
'loss_order_id' => $data['id']
|
|
);
|
|
$all_num = D('LossReportGoods')->where($where)->sum("loss_num");
|
|
$all_num = $all_num ? round($all_num, 3) : 0;
|
|
$data['money_total'] = '金额:' . round($data['money_total'], 2);
|
|
$this->assign('cost_state', true);
|
|
$this->assign('pur_num_state', true);
|
|
$this->assign('all_num', '数量:' . $all_num);
|
|
$this->assign('money_total', $data['money_total']);
|
|
break;
|
|
case 5:
|
|
case 6:
|
|
case 7:
|
|
case 8:
|
|
case 9:
|
|
if (in_array($data['type'], [6, 8, 9]) || ($data['type'] == 5 && !empty($data['store_id'])) || ($data['type'] == 7 && !empty($data['store_id']))) {
|
|
$store_info = D('Store')->getFind(array('id' => $data['store_id']), "storetag,province,city,area");
|
|
$manager = M("retail_manager")->where(array('storeid' => $data['store_id']))->order("id asc")->field("mobile,name")->find();
|
|
}
|
|
switch ($data['type']) {
|
|
case 5:
|
|
if (!empty($data['store_id'])) {
|
|
$supplier['supplier_name'] = $store_info['storetag'];
|
|
$supplier['supplier_address'] = $store_info['province'] . $store_info['city'] . $store_info['area'];
|
|
$supplier['supplier_phone'] = $manager['mobile'];
|
|
$supplier['linkman'] = $manager['name'];
|
|
} else {
|
|
$supplier = D('RetailSupplier')->getFind(array('id' => $data['supplier_id']), "supplier_name,province,city,area,linkman,phone");
|
|
$supplier['supplier_address'] = $supplier['province'] . $supplier['city'] . $supplier['area'];
|
|
$supplier['supplier_phone'] = $supplier['phone'];
|
|
unset($supplier['phone']);
|
|
}
|
|
$this->assign('warehouse_state', true);
|
|
$this->assign('pur_num_state', true);
|
|
break;
|
|
case 6:
|
|
$operator_id = D("SStockOutOrder")->getFindField(array('id' => $data['stock_out_id']), "operator_id");
|
|
$data['operator'] = A('Api/Inventory')->OperatorName($operator_id);
|
|
$supplier['supplier_address'] = $address;
|
|
$supplier['supplier_phone'] = $merchant_info['mobile'];
|
|
$supplier['supplier_name'] = "商户";
|
|
$supplier['linkman'] = $merchant_info['name'];
|
|
$address = $store_info['province'] . $store_info['city'] . $store_info['area'];
|
|
$phone = $manager['mobile'];
|
|
break;
|
|
case 7:
|
|
if (!empty($data['store_id'])) {
|
|
$supplier['supplier_name'] = $store_info['storetag'];
|
|
$supplier['supplier_address'] = $store_info['province'] . $store_info['city'] . $store_info['area'];
|
|
$supplier['supplier_phone'] = $manager['mobile'];
|
|
$supplier['linkman'] = $manager['name'];
|
|
} else if (!empty($data['supplier_id'])) {
|
|
$supplier = D('RetailSupplier')->getFind(array('id' => $data['supplier_id']), "supplier_name,province,city,area,linkman,phone");
|
|
$supplier['supplier_address'] = $supplier['province'] . $supplier['city'] . $supplier['area'];
|
|
$supplier['supplier_phone'] = $supplier['phone'];
|
|
unset($supplier['phone']);
|
|
}
|
|
break;
|
|
case 8:
|
|
$data['operator'] = A('Api/Inventory')->OperatorName($data['operator_id']);
|
|
$supplier['supplier_address'] = $address;
|
|
$supplier['supplier_phone'] = $merchant_info['mobile'];
|
|
$supplier['supplier_name'] = "商户";
|
|
$supplier['linkman'] = $merchant_info['name'];
|
|
$address = $store_info['province'] . $store_info['city'] . $store_info['area'];
|
|
$phone = $manager['mobile'];
|
|
$this->assign('warehouse_state', true);
|
|
$this->assign('pur_num_state', true);
|
|
break;
|
|
case 9:
|
|
$supplier['supplier_address'] = $store_info['province'] . $store_info['city'] . $store_info['area'];
|
|
$supplier['supplier_phone'] = $manager['mobile'];
|
|
$supplier['supplier_name'] = $store_info['storetag'];
|
|
$supplier['linkman'] = $manager['name'];
|
|
break;
|
|
}
|
|
if (in_array($data['type'], [6, 7, 9])) {
|
|
$this->assign('stock_state', true);
|
|
$this->assign('st_num_state', true);
|
|
}
|
|
$data['money_total'] = round($data['money_total'], 2);
|
|
$this->assign('supplier', $supplier);
|
|
$this->assign('money_total', $data['money_total']);
|
|
break;
|
|
}
|
|
$this->assign('id', $data['id']);
|
|
$this->assign('type', $data['type']);
|
|
$this->assign('title', $title);
|
|
$this->assign('operator', $data['operator']);
|
|
$this->assign('address', $address);
|
|
$this->assign('phone', $phone);
|
|
$this->assign('warehouse', $data['warehouse']);
|
|
$this->assign('order_number', $data['order_number']);
|
|
$this->assign('add_time', $data['add_time']);
|
|
$this->assign('goods_species', $data['goods_species']);
|
|
$this->assign('remarks', $data['remarks']);
|
|
$this->assign('count', $count ? $count : 10);
|
|
$this->display();
|
|
}
|
|
|
|
public function getPurchaseList()
|
|
{
|
|
$merchant_id = session("merchant_userinfo")['id'];
|
|
$data = I("post.");
|
|
$page = 1;
|
|
$limit = $data['limit'];
|
|
$print = D("InventoryPrint")->getFind(array('type' => 1, 'merchant_id' => $merchant_id));
|
|
$allgoodsarr = array();
|
|
switch ($data['type']) {
|
|
case 1:
|
|
$where['purchase_order_id'] = $data['id'];
|
|
$count = D('PurchaseGoods')->getCount($where);
|
|
$pageCount = ceil($count / $limit);
|
|
while ($page <= $pageCount) {
|
|
$detailsList = D('PurchaseGoods')->getSelect($where, $page, $limit, $field = '', 'id asc');
|
|
if ($detailsList) {
|
|
$pageTotal = 0;
|
|
foreach ($detailsList as $key => &$val) {
|
|
$pageTotal += $val['subtotal'];
|
|
$val['index'] = $key + 1;
|
|
if (!empty($print['font_num'])) {
|
|
if (mb_strlen($val['goods_name']) > $print['font_num']) {
|
|
$val['goods_name'] = mb_substr($val['goods_name'], 0, $print['font_num'], 'utf-8');
|
|
}
|
|
}
|
|
if (!empty($print['sku_num'])) {
|
|
if (mb_strlen($val['sku_name']) > $print['sku_num']) {
|
|
$val['sku_name'] = mb_substr($val['sku_name'], 0, $print['sku_num'], 'utf-8');
|
|
}
|
|
}
|
|
$val['sku_num'] = round($val['sku_num'], 3);
|
|
$val['purchase_num'] = round($val['purchase_num'], 3);
|
|
$val['purchase_price'] = round($val['purchase_price'], 2);
|
|
$val['subtotal'] = round($val['subtotal'], 2);
|
|
if ($val['attribute_state'] == 2) {
|
|
$val['goods_number'] = $val['sku_goods_number'];
|
|
$val['goods_code'] = $val['sku_code'];
|
|
}
|
|
}
|
|
$allgoodsarr[] = array(
|
|
'pageTotal' => round($pageTotal, 2),
|
|
'goodsinfo' => $detailsList
|
|
);
|
|
$page++;
|
|
}
|
|
}
|
|
break;
|
|
case 2:
|
|
$where['retreat_order_id'] = $data['id'];
|
|
$count = D('RetreatGoods')->getCount($where);
|
|
$pageCount = ceil($count / $limit);
|
|
while ($page <= $pageCount) {
|
|
$detailsList = D('RetreatGoods')->getSelect($where, $page, $limit, $field = '', 'id asc');
|
|
if ($detailsList) {
|
|
$pageTotal = 0;
|
|
foreach ($detailsList as $key => &$val) {
|
|
$pageTotal += $val['subtotal'];
|
|
$val['index'] = $key + 1;
|
|
if (!empty($print['font_num'])) {
|
|
if (mb_strlen($val['goods_name']) > $print['font_num']) {
|
|
$val['goods_name'] = mb_substr($val['goods_name'], 0, $print['font_num'], 'utf-8');
|
|
}
|
|
}
|
|
if (!empty($print['sku_num'])) {
|
|
if (mb_strlen($val['sku_name']) > $print['sku_num']) {
|
|
$val['sku_name'] = mb_substr($val['sku_name'], 0, $print['sku_num'], 'utf-8');
|
|
}
|
|
}
|
|
$val['retreat_num'] = round($val['retreat_num'], 3);
|
|
$val['retreat_price'] = round($val['retreat_price'], 2);
|
|
$val['subtotal'] = round($val['subtotal'], 2);
|
|
$val['sku_num'] = round($val['sku_num'], 3);
|
|
if ($val['attribute_state'] == 2) {
|
|
$val['goods_number'] = $val['sku_goods_number'];
|
|
$val['goods_code'] = $val['sku_code'];
|
|
}
|
|
$val['purchase_price'] = round($val['purchase_price'], 2);
|
|
$val['difference_money'] = round(($val['retreat_price'] - $val['purchase_price']) * $val['retreat_num'], 2);
|
|
}
|
|
$allgoodsarr[] = array(
|
|
'pageTotal' => round($pageTotal, 2),
|
|
'goodsinfo' => $detailsList
|
|
);
|
|
$page++;
|
|
}
|
|
}
|
|
break;
|
|
case 3:
|
|
$where['state'] = 1;
|
|
$where['inventory_order_id'] = $data['id'];
|
|
$count = D('InventoryGoods')->getCount($where);
|
|
$pageCount = ceil($count / $limit);
|
|
while ($page <= $pageCount) {
|
|
$detailsList = D('InventoryGoods')->getSelect($where, $page, $limit);
|
|
if ($detailsList) {
|
|
$pageTotal = 0;
|
|
$pageNum = 0;
|
|
foreach ($detailsList as $key => &$val) {
|
|
$pageTotal += $val['subtotal'];
|
|
$pageNum += $val['num'];
|
|
$val['index'] = $key + 1;
|
|
if (!empty($print['font_num'])) {
|
|
if (mb_strlen($val['goods_name']) > $print['font_num']) {
|
|
$val['goods_name'] = mb_substr($val['goods_name'], 0, $print['font_num'], 'utf-8');
|
|
}
|
|
}
|
|
if (!empty($print['sku_num'])) {
|
|
if (mb_strlen($val['sku_name']) > $print['sku_num']) {
|
|
$val['sku_name'] = mb_substr($val['sku_name'], 0, $print['sku_num'], 'utf-8');
|
|
}
|
|
}
|
|
$val['inventory_num'] = round($val['inventory_num'], 3);
|
|
$val['cost_price'] = round($val['cost_price'], 2);
|
|
$val['subtotal'] = round($val['subtotal'], 2);
|
|
$val['sku_num'] = round($val['sku_num'], 3);
|
|
$val['goods_num'] = round($val['goods_num'], 3);
|
|
$val['num'] = round($val['num'], 3);
|
|
if ($val['attribute_state'] == 2) {
|
|
$val['goods_code'] = $val['sku_code'];
|
|
$val['goods_number'] = $val['sku_goods_number'];
|
|
}
|
|
}
|
|
$allgoodsarr[] = array(
|
|
'pageTotal' => '金额:' . round($pageTotal, 2),
|
|
'pageNum' => '数量:' . $pageNum,
|
|
'goodsinfo' => $detailsList
|
|
);
|
|
$page++;
|
|
}
|
|
}
|
|
break;
|
|
case 4:
|
|
$where['loss_order_id'] = $data['id'];
|
|
$count = D('LossReportGoods')->getCount($where);
|
|
$pageCount = ceil($count / $limit);
|
|
while ($page <= $pageCount) {
|
|
$detailsList = D('LossReportGoods')->getSelect($where, $page, $limit);
|
|
if ($detailsList) {
|
|
$pageTotal = 0;
|
|
$pageNum = 0;
|
|
foreach ($detailsList as $key => &$val) {
|
|
$pageTotal += $val['subtotal'];
|
|
$pageNum += $val['loss_num'];
|
|
$val['index'] = $key + 1;
|
|
if (!empty($print['font_num'])) {
|
|
if (mb_strlen($val['goods_name']) > $print['font_num']) {
|
|
$val['goods_name'] = mb_substr($val['goods_name'], 0, $print['font_num'], 'utf-8');
|
|
}
|
|
}
|
|
if (!empty($print['sku_num'])) {
|
|
if (mb_strlen($val['sku_name']) > $print['sku_num']) {
|
|
$val['sku_name'] = mb_substr($val['sku_name'], 0, $print['sku_num'], 'utf-8');
|
|
}
|
|
}
|
|
$val['purchase_num'] = round($val['loss_num'], 3);
|
|
$val['cost_price'] = round($val['loss_price'], 2);
|
|
$val['subtotal'] = round($val['subtotal'], 2);
|
|
$val['sku_num'] = round($val['sku_num'], 3);
|
|
if ($val['attribute_state'] == 2) {
|
|
$val['goods_code'] = $val['sku_code'];
|
|
$val['goods_number'] = $val['sku_goods_number'];
|
|
}
|
|
}
|
|
$allgoodsarr[] = array(
|
|
'pageTotal' => '金额:' . round($pageTotal, 2),
|
|
'pageNum' => '数量' . $pageNum,
|
|
'goodsinfo' => $detailsList
|
|
);
|
|
$page++;
|
|
}
|
|
}
|
|
break;
|
|
case 5:
|
|
$id = $data['id'];
|
|
$where = array('warehouse_record_id' => $id);
|
|
$count = D('WarehousingGoods')->getCount($where);
|
|
$pageCount = ceil($count / $limit);
|
|
while ($page <= $pageCount) {
|
|
$detailsList = D('WarehousingGoods')->getSelect($where, $page, $limit, $fields = '', 'id asc');
|
|
if ($detailsList) {
|
|
$pageTotal = 0;
|
|
foreach ($detailsList as $key => &$val) {
|
|
$pageTotal += $val['subtotal'];
|
|
$val['index'] = $key + 1;
|
|
if (!empty($print['font_num'])) {
|
|
if (mb_strlen($val['goods_name']) > $print['font_num']) {
|
|
$val['goods_name'] = mb_substr($val['goods_name'], 0, $print['font_num'], 'utf-8');
|
|
}
|
|
}
|
|
if (!empty($print['sku_num'])) {
|
|
if (mb_strlen($val['sku_name']) > $print['sku_num']) {
|
|
$val['sku_name'] = mb_substr($val['sku_name'], 0, $print['sku_num'], 'utf-8');
|
|
}
|
|
}
|
|
$val['sku_num'] = round($val['sku_num'], 3);
|
|
$val['purchase_num'] = round($val['warehouse_num'], 3);
|
|
$val['warehouse_price'] = round($val['warehouse_price'], 2);
|
|
$val['subtotal'] = round($val['subtotal'], 2);
|
|
if ($val['attribute_state'] == 2) {
|
|
$val['goods_number'] = $val['sku_goods_number'];
|
|
$val['goods_code'] = $val['sku_code'];
|
|
}
|
|
}
|
|
$allgoodsarr[] = array(
|
|
'pageTotal' => round($pageTotal, 2),
|
|
'goodsinfo' => $detailsList
|
|
);
|
|
$page++;
|
|
}
|
|
}
|
|
break;
|
|
case 6:
|
|
//门店退货详情
|
|
$where['warehouse_record_id'] = $data['id'];
|
|
$where['type'] = 1;
|
|
$count = D('SStockOutGoods')->getCount($where);
|
|
$pageCount = ceil($count / $limit);
|
|
while ($page <= $pageCount) {
|
|
$detailsList = D('SStockOutGoods')->getSelect($where, $page, $limit);
|
|
if ($detailsList) {
|
|
$pageTotal = 0;
|
|
foreach ($detailsList as $key => &$val) {
|
|
$pageTotal += $val['subtotal'];
|
|
$val['index'] = $key + 1;
|
|
if (!empty($print['font_num'])) {
|
|
if (mb_strlen($val['goods_name']) > $print['font_num']) {
|
|
$val['goods_name'] = mb_substr($val['goods_name'], 0, $print['font_num'], 'utf-8');
|
|
}
|
|
}
|
|
if (!empty($print['sku_num'])) {
|
|
if (mb_strlen($val['sku_name']) > $print['sku_num']) {
|
|
$val['sku_name'] = mb_substr($val['sku_name'], 0, $print['sku_num'], 'utf-8');
|
|
}
|
|
}
|
|
$val['sku_num'] = round($val['sku_num'], 3);
|
|
$val['stock_num'] = round($val['stock_num'], 3);
|
|
$val['stock_price'] = round($val['stock_price'], 2);
|
|
$val['subtotal'] = round($val['subtotal'], 2);
|
|
if ($val['attribute_state'] == 2) {
|
|
$val['goods_code'] = $val['sku_code'];
|
|
$val['goods_number'] = $val['sku_goods_number'];
|
|
}
|
|
}
|
|
$allgoodsarr[] = array(
|
|
'pageTotal' => round($pageTotal, 2),
|
|
'goodsinfo' => $detailsList
|
|
);
|
|
$page++;
|
|
}
|
|
}
|
|
break;
|
|
case 7:
|
|
$where['stock_out_id'] = $data['id'];
|
|
$count = D('StockOutGoods')->getCount($where);
|
|
$pageCount = ceil($count / $limit);
|
|
while ($page <= $pageCount) {
|
|
$detailsList = D('StockOutGoods')->getSelect($where, $page, $limit, $fields = '', 'id asc');
|
|
if ($detailsList) {
|
|
$pageTotal = 0;
|
|
foreach ($detailsList as $key => &$val) {
|
|
$pageTotal += $val['subtotal'];
|
|
$val['index'] = $key + 1;
|
|
if (!empty($print['font_num'])) {
|
|
if (mb_strlen($val['goods_name']) > $print['font_num']) {
|
|
$val['goods_name'] = mb_substr($val['goods_name'], 0, $print['font_num'], 'utf-8');
|
|
}
|
|
}
|
|
if (!empty($print['sku_num'])) {
|
|
if (mb_strlen($val['sku_name']) > $print['sku_num']) {
|
|
$val['sku_name'] = mb_substr($val['sku_name'], 0, $print['sku_num'], 'utf-8');
|
|
}
|
|
}
|
|
$val['stock_num'] = round($val['stock_num'], 3);
|
|
$val['stock_price'] = round($val['stock_price'], 2);
|
|
$val['subtotal'] = round($val['subtotal'], 2);
|
|
$val['sku_num'] = round($val['sku_num'], 3);
|
|
$val['cost_price'] = round($val['cost_price'], 3);
|
|
if ($val['attribute_state'] == 2) {
|
|
$val['goods_code'] = $val['sku_code'];
|
|
$val['goods_number'] = $val['sku_goods_number'];
|
|
}
|
|
}
|
|
$allgoodsarr[] = array(
|
|
'pageTotal' => round($pageTotal, 2),
|
|
'goodsinfo' => $detailsList
|
|
);
|
|
$page++;
|
|
}
|
|
}
|
|
break;
|
|
case 8:
|
|
$id = $data['id'];
|
|
$where = array('warehouse_record_id' => $id);
|
|
$count = D('SWarehousingGoods')->getCount($where);
|
|
$pageCount = ceil($count / $limit);
|
|
while ($page <= $pageCount) {
|
|
$detailsList = D('SWarehousingGoods')->getSelect($where, $page, $limit);
|
|
if ($detailsList) {
|
|
$pageTotal = 0;
|
|
foreach ($detailsList as $key => &$val) {
|
|
$pageTotal += $val['subtotal'];
|
|
if ($val['attribute_state'] == 2) {
|
|
$val['goods_code'] = $val['sku_code'];
|
|
$val['goods_number'] = $val['sku_goods_number'];
|
|
}
|
|
$val['index'] = $key + 1;
|
|
if (!empty($print['font_num'])) {
|
|
if (mb_strlen($val['goods_name']) > $print['font_num']) {
|
|
$val['goods_name'] = mb_substr($val['goods_name'], 0, $print['font_num'], 'utf-8');
|
|
}
|
|
}
|
|
if (!empty($print['sku_num'])) {
|
|
if (mb_strlen($val['sku_name']) > $print['sku_num']) {
|
|
$val['sku_name'] = mb_substr($val['sku_name'], 0, $print['sku_num'], 'utf-8');
|
|
}
|
|
}
|
|
$val['sku_num'] = round($val['sku_num'], 3);
|
|
$val['purchase_num'] = round($val['warehouse_num'], 3);
|
|
$val['warehouse_price'] = round($val['warehouse_price'], 2);
|
|
$val['subtotal'] = round($val['subtotal'], 2);
|
|
}
|
|
$allgoodsarr[] = array(
|
|
'pageTotal' => round($pageTotal, 2),
|
|
'goodsinfo' => $detailsList
|
|
);
|
|
$page++;
|
|
}
|
|
}
|
|
break;
|
|
case 9:
|
|
$where['stock_out_id'] = $data['id'];
|
|
$where['type'] = array('in', '1,2');
|
|
$refuseGoods = new RefuseWarehousingModel();
|
|
$count = $refuseGoods->getCount($where);
|
|
$pageCount = ceil($count / $limit);
|
|
while ($page <= $pageCount) {
|
|
$detailsList = $refuseGoods->getSelect($where, $page, $limit, '*', 'id asc');
|
|
if ($detailsList) {
|
|
$pageTotal = 0;
|
|
foreach ($detailsList as $key => &$val) {
|
|
$pageTotal += $val['subtotal'];
|
|
$val['index'] = $key + 1;
|
|
if (!empty($print['font_num'])) {
|
|
if (mb_strlen($val['goods_name']) > $print['font_num']) {
|
|
$val['goods_name'] = mb_substr($val['goods_name'], 0, $print['font_num'], 'utf-8');
|
|
}
|
|
}
|
|
if (!empty($print['sku_num'])) {
|
|
if (mb_strlen($val['sku_name']) > $print['sku_num']) {
|
|
$val['sku_name'] = mb_substr($val['sku_name'], 0, $print['sku_num'], 'utf-8');
|
|
}
|
|
}
|
|
$val['stock_num'] = round($val['refuse_num'], 3);
|
|
$val['stock_price'] = round($val['stock_price'], 2);
|
|
$val['subtotal'] = round($val['subtotal'], 2);
|
|
$val['sku_num'] = round($val['sku_num'], 3);
|
|
$val['cost_price'] = round($val['cost_price'], 3);
|
|
if ($val['attribute_state'] == 2) {
|
|
$val['goods_code'] = $val['sku_code'];
|
|
$val['goods_number'] = $val['sku_goods_number'];
|
|
}
|
|
}
|
|
$allgoodsarr[] = array(
|
|
'pageTotal' => round($pageTotal, 2),
|
|
'goodsinfo' => $detailsList
|
|
);
|
|
$page++;
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
$info = array(
|
|
'allcount' => $count,
|
|
);
|
|
$res['allgoodsarr'] = $allgoodsarr;
|
|
$res['pagecount'] = $pageCount;
|
|
$res['info'] = $info;
|
|
$res['status'] = 1;
|
|
$this->ajaxReturn($res);
|
|
}
|
|
|
|
|
|
//样式设置保存
|
|
public function styleSet()
|
|
{
|
|
$data = I('post.');
|
|
$data['operator_type'] = 1;
|
|
$data['merchant_id'] = $this->merchant_id;
|
|
$data['user_type'] = 3;
|
|
$InventoryPrintClass = new InventoryPrint();
|
|
$result = $InventoryPrintClass->styleSet($data);
|
|
$this->ajaxReturn($result);
|
|
}
|
|
|
|
//样式设置查询
|
|
public function getPrintSet()
|
|
{
|
|
$data = [
|
|
'user_type' => 3,
|
|
'merchant_id' => $this->merchant_id,
|
|
'set_type'=>I('post.set_type')
|
|
];
|
|
$InventoryPrintClass = new InventoryPrint();
|
|
$result = $InventoryPrintClass->getStyleSet($data);
|
|
$this->ajaxReturn($result);
|
|
}
|
|
|
|
//样式设置保存
|
|
public function storeStyleSet()
|
|
{
|
|
$data = I('post.');
|
|
$data['operator_type'] = 1;
|
|
$data['merchant_id'] = $this->merchant_id;
|
|
$data['store_id'] = $this->store_id;
|
|
$data['user_type'] = 4;
|
|
$InventoryPrintClass = new InventoryPrint();
|
|
$result = $InventoryPrintClass->styleSet($data);
|
|
$this->ajaxReturn($result);
|
|
}
|
|
|
|
//样式设置查询
|
|
public function storeGetPrintSet()
|
|
{
|
|
$data = I('post.');
|
|
$data['user_type'] = 4;
|
|
$data['merchant_id'] = $this->merchant_id;
|
|
$data['store_id'] = $this->store_id;
|
|
$InventoryPrintClass = new InventoryPrint();
|
|
$result = $InventoryPrintClass->getStyleSet($data);
|
|
$this->ajaxReturn($result);
|
|
}
|
|
}
|