文件
mashangyoujiu/Application/Retail/Controller/AallocatmerchantController.class.php

872 行
41 KiB
PHP
可执行文件

<?php
namespace Retail\Controller;
use Think\Controller;
//[1.6.48]
class AallocatmerchantController extends BaseController{
//商户调拨商品列表
public function index()
{
$user = session('ls_userinfo');
$merchantid = $user['merchantid'];
//商户下所有正常门店
$store['merchantid'] = $merchantid;
$store['state'] = 0;
$info = M('retail_store')->where($store)->order('addtime asc')->select();
$this->assign('info',$info);
$this->display();
}
//商户批量选择商品
public function batchgoods2(){
$this->display();
}
public function index2()
{
$user = session('ls_userinfo');
$merchantid = $user['merchantid'];
//商户下所有正常门店
$store['merchantid'] = $merchantid;
$store['state'] = 0;
$info = M('retail_store')->where($store)->order('addtime asc')->select();
$this->assign('info',$info);
$this->display();
}
//添加到商品库
public function getgoods_bank()
{
if (IS_POST) {
$user = session('ls_userinfo');
$merchantid = $user['merchantid'];
$where['allocation_status'] = 1;
$where['merchantid'] = $merchantid;
$where['allocation_id'] = 0;
if(empty($where['merchantid'])){
$res['status'] = 0;
$res['msg'] = '参数有误';
}else{
$info = M('retail_allocation_goods_bank')->where($where)->select();
if($info){
$totalallmoney = 0; //总价
$totalnum = 0;//出货量
foreach ($info as $key=>&$val){
$allmoney = 0;//小计
if($val['attribute'] == 2){
$where_sku['a.goods_bannk_id'] = $val['id'];
$sku_goods_ids = M('retail_allocat_sku_goods as a')
->join('ls_retail_sku_mgoods as m on m.id=a.sku_mgoods_id','LEFT')
->where($where_sku)
->field('a.goods_num,m.purch_price')
->select();
if($sku_goods_ids){
foreach ($sku_goods_ids as $ke=>&$va){
$allmoney += $va['purch_price']*$va['goods_num'];
}
$val['allmoney'] = $allmoney;
$totalallmoney += $allmoney;
}
}else if($val['attribute'] == 1){
$totalallmoney += $val['allmoney'];
}
$totalnum += $val['num'];
$val['election'] = false;
}
$total['len'] = M('retail_allocation_goods_bank')->where($where)->count();
$total['allnum'] = $totalnum;
$total['allmoney'] = $totalallmoney;
$res['status'] = 1;
$res['msg'] = '查询成功';
$res['data'] = $info;
$res['total'] = $total;
}else{
$total['len'] = 0;
$total['allnum'] = 0;
$total['allmoney'] = 0;
$res['status'] = 1;
$res['msg'] = '暂无进货单';
$res['data'] = array();
$res['total'] = $total;
}
}
$this->ajaxReturn($res);
}
}
//商品查询
public function searchgoods()
{
if (IS_POST) {
$user = session('ls_userinfo');
$merchantid = $user['merchantid'];
$keyword = I('post.keyword');
$w['merchantid'] = $merchantid;
$w['goods_code|good_number'] = $keyword;
$w['status'] = 0;
$goods = M('retail_mgoods')->where($w)->find();
if ($goods) {
if($goods['attribute'] == 2){
$info = $this->getMGoodsSkuAttr($goods['id']);
}else{
$info['attr'] = array();
$info['list'] = array();
}
$rt['info'] = $info;
$rt['status'] = 1;
$rt['msg'] = '查询成功';
$rt['goods'] = $goods;
} else{
$rt['status'] = 0;
$rt['msg'] = '未找到您需要调拨的上架商品';
}
$this->ajaxReturn($rt);
}
}
//搜索添加到调拨商品库
public function addgoods_allocation()
{
if (IS_POST) {
$user = session('ls_userinfo');
$merchantid = $user['merchantid'];
$data = I('post.searchgoodsinfo');
$skuList = I('post.skuList');
if(empty($data) || empty($merchantid)){
$rt['status'] = 0;
$rt['msg'] = '信息错误';
$this->ajaxReturn($rt);exit;
}
$where['merchantid'] = $merchantid;
$where['allocation_status'] = 1;
$where['allocation_id'] = 0;
$where['goodsid'] = $data['id'];
$exist = M('retail_allocation_goods_bank')->where($where)->find();
if($exist){
$rt['status'] = 0;
$rt['msg'] = '该商品已加入出货单';
$this->ajaxReturn($rt);exit;
}
$mgoods_info = M('retail_mgoods')->where(array('id'=>$data['id'],'status'=>0))->find();
if(!$mgoods_info){
$rt['status'] = 0;
$rt['msg'] = '未找到该上架商品';
$this->ajaxReturn($rt);exit;
}
$mgoods_data = array();
$mgoods_data['goodsid'] = $mgoods_info['id'];
$mgoods_data['goods_name'] = $mgoods_info['goods_name'];
$mgoods_data['good_number'] = $mgoods_info['good_number'];
$mgoods_data['goods_code'] = $mgoods_info['goods_code'];
$mgoods_data['company'] = $mgoods_info['company'];
$mgoods_data['specifications'] = $mgoods_info['specifications'];
$mgoods_data['issellonline'] = $mgoods_info['issellonline'];
$mgoods_data['can_exchange'] = $mgoods_info['can_exchange'];
$mgoods_data['integral'] = $mgoods_info['integral'];
$mgoods_data['exchange_money'] = $mgoods_info['exchange_money'];
$mgoods_data['max_swap'] = $mgoods_info['max_swap'];
$mgoods_data['max_swap_num'] = $mgoods_info['max_swap_num'];
$mgoods_data['vip_online_price'] = $mgoods_info['vip_online_price'];
$mgoods_data['vip_online_integral'] = $mgoods_info['vip_online_integral'];
$mgoods_data['vip_retail_price'] = $mgoods_info['vip_retail_price'];
$mgoods_data['vip_retail_integral'] = $mgoods_info['vip_retail_integral'];
$mgoods_data['vip_online_state'] = $mgoods_info['vip_online_state'];
$mgoods_data['vip_retail_state'] = $mgoods_info['vip_retail_state'];
$mgoods_data['supplier_id'] = $mgoods_info['supplier_id'];
$mgoods_data['can_exchange_weigh'] = $mgoods_info['can_exchange_weigh'];
$mgoods_data['details'] = $mgoods_info['details'];
$mgoods_data['production_date'] = $mgoods_info['production_date'];
$mgoods_data['shelf_life'] = $mgoods_info['shelf_life'];
$mgoods_data['shop_mem_status'] = $mgoods_info['shop_mem_status'];
$mgoods_data['shop_mem_price'] = $mgoods_info['shop_mem_price'];
$mgoods_data['store_mem_status'] = $mgoods_info['store_mem_status'];
$mgoods_data['store_mem_price'] = $mgoods_info['store_mem_price'];
$mgoods_data['goods_class_id'] = $mgoods_info['goods_class_id'];
$mgoods_data['good_image'] = $mgoods_info['good_image'];
$mgoods_data['purch_price'] = $mgoods_info['purch_price'];
$mgoods_data['retail_price'] = $mgoods_info['retail_price'];
$mgoods_data['online_price'] = $mgoods_info['online_price'];
$mgoods_data['addtime'] = time();
$mgoods_data['allocation_status'] = 1;
$mgoods_data['merchantid'] = $merchantid;
$mgoods_data['attribute'] = $mgoods_info['attribute'];
$mgoods_data['more_num'] = $mgoods_info['more_num'];
$mgoods_data['less_num'] = $mgoods_info['less_num'];
$mgoods_data['agood_count'] = $mgoods_info['agood_count'];
$mgoods_data['goods_brand_id'] = $mgoods_info['goods_brand_id'];
$goods_bankid = M('retail_allocation_goods_bank')->add($mgoods_data);
if ($goods_bankid) {
if($mgoods_data['attribute'] == 2){
//有规格的
if(!empty($skuList)){
$allmoney = 0;
$number = 0;
foreach ($skuList as $key=>&$val){
if($val['num'] > 0){
$retail_sku_mgoods = M('retail_sku_mgoods')->where(array('id'=>$val['id']))->find();
$purch_price = $retail_sku_mgoods['purch_price']?$retail_sku_mgoods['purch_price']:0; //进价
$input_num = round(($val['num'] * $retail_sku_mgoods['sku_num']),3);
$input_num = $input_num?$input_num:0;
$allmoney += round(($purch_price *$input_num),5); //总价
$number += $input_num;
$sku['merchantid'] = $merchantid;
$sku['goods_id'] = $mgoods_data['goodsid'];
$sku['goods_num'] = $input_num;
$sku['addtime'] = $mgoods_data['addtime'];
$sku['goods_bannk_id'] = $goods_bankid;
$sku['sku_mgoods_id'] = $val['id'];
$sku['shipment_num'] = $val['num'];
$skuid = M('retail_allocat_sku_goods')->add($sku);
if($skuid){
M('retail_sku_mgoods')->where(array('id'=>$val['id']))->setDec('goods_num',$val['num']);
}
}
}
if($skuid){
$mgoods_dec = M('retail_mgoods')->where(array('id'=>$where['goodsid']))->setDec('goods_num',$number);
if($mgoods_dec){
$save['allmoney'] = $allmoney;
$save['num'] = $number;
$save_bank = M('retail_allocation_goods_bank')->where(array('id'=>$goods_bankid))->save($save);
if($save_bank){
$rt['status'] = 1;
$rt['msg'] = '加入成功';
$rt['data'] = M('retail_allocation_goods_bank')->where(array('id' => $goods_bankid))->find();
}else{
$rt['status'] = 0;
$rt['msg'] = '规格加入失败';
}
}else{
$rt['status'] = 0;
$rt['msg'] = '商品总库存修改失败';
}
}else{
$rt['status'] = 0;
$rt['msg'] = '规格';
}
}else{
$rt['status'] = 1;
$rt['msg'] = '加入成功';
$rt['data'] = M('retail_allocation_goods_bank')->where(array('id' => $goods_bankid))->find();
}
}else if($data['attribute'] == 1){
$save_mgoods = M('retail_mgoods')->where(array('id'=>$mgoods_data['goodsid']))->setDec('goods_num',$data['num']);
if($save_mgoods){
$save['allmoney'] = round($mgoods_data['purch_price'] * $data['num'],5);
$save['num'] = $data['num'];
$save_bank = M('retail_allocation_goods_bank')->where(array('id'=>$goods_bankid))->save($save);
if($save_bank){
$rt['status'] = 1;
$rt['msg'] = '加入成功';
$rt['data'] = M('retail_allocation_goods_bank')->where(array('id' => $goods_bankid))->find();
}else{
$rt['status'] = 0;
$rt['msg'] = '加入成功,金额与库存修改失败';
}
}else{
$rt['status'] = 0;
$rt['msg'] = '加入成功,库存修改失败';
}
}else{
$rt['status'] = 0;
$rt['msg'] = '商品信息错误';
}
} else {
$rt['status'] = 0;
$rt['msg'] = '加入失败';
}
$this->ajaxReturn($rt);
}
}
//删除调拨商品库
public function delete_goods_bank()
{
if (IS_POST) {
$id = I('post.id');
if(empty($id)){
$res['status'] = 0;
$res['msg'] = '参数错误';
}else{
//删除操作退还数量
$refund_goods = M('retail_allocation_goods_bank')->where(array('id'=>$id))->find();
if($refund_goods){
if($refund_goods['attribute'] == 2){
$sku_goods_info = M('retail_allocat_sku_goods')->where(array('goods_bannk_id'=>$refund_goods['id'],'goods_num'=>array('neq',0),'shipment_num'=>array('neq',0)))->select();
if($sku_goods_info){
foreach ($sku_goods_info as $key=>&$val){
M('retail_sku_mgoods')->where(array('id'=>$val['sku_mgoods_id']))->setInc('goods_num',$val['shipment_num']);
}
}
}
$m_goods_save = M('retail_mgoods')->where(array('id'=>$refund_goods['goodsid']))->setInc('goods_num',$refund_goods['num']);
if($m_goods_save){
$data['allocation_status'] = 2;
$save = M('retail_allocation_goods_bank')->where(array('id' => $id))->save($data);
if($save){
$res['status'] = 1;
$res['msg'] = '操作成功';
}else{
$res['status'] = 0;
$res['msg'] = '商品修改成功,出货单商品状态修改失败';
}
}else{
$res['status'] = 0;
$res['msg'] = '商品库存修改失败';
}
}else{
$res['status'] = 0;
$res['msg'] = '未找到该出货单中的商品';
}
}
$this->ajaxReturn($res);
}
}
/*批量删除
* @param $id 批量删除的数组
*/
public function batchDeteleGoodsBank()
{
$id = I('post.id_arr');
if(!$id){
$res['status'] = 0;
$res['msg'] = '请选择删除的商品';
$this->ajaxReturn($res);
}
foreach ($id as $key=>&$val){
$refund_goods = M('retail_allocation_goods_bank')->where(array('id'=>$val))->find();
if(!$refund_goods){
$res['status'] = 0;
$res['msg'] = '刷新重试';
$this->ajaxReturn($res);
}
}
foreach ($id as $key=>&$val){
$refund_goods = M('retail_allocation_goods_bank')->where(array('id'=>$val))->find();
if($refund_goods['attribute'] == 2){
$sku_goods_info = M('retail_allocat_sku_goods')->where(array('goods_bannk_id'=>$refund_goods['id'],'goods_num'=>array('neq',0),'shipment_num'=>array('neq',0)))->select();
if($sku_goods_info){
foreach ($sku_goods_info as $keysku=>&$valsku){
M('retail_sku_mgoods')->where(array('id'=>$valsku['sku_mgoods_id']))->setInc('goods_num',$valsku['shipment_num']);
}
}
}
$m_goods_save = M('retail_mgoods')->where(array('id'=>$refund_goods['goodsid']))->setInc('goods_num',$refund_goods['num']);
if($m_goods_save){
$data['allocation_status'] = 2;
$save = M('retail_allocation_goods_bank')->where(array('id' => $val))->save($data);
}else{
$res['status'] = 0;
$res['msg'] = '商品库存修改失败';
}
}
$res['status'] = 1;
$res['msg'] = '操作成功';
$this->ajaxReturn($res);
}
//修改调拨商品库存与小计
public function changenum()
{
if (IS_POST) {
$type = I('post.type');
$id = I('post.id');
$num = I('post.num');
$goods_bank = M('retail_allocation_goods_bank')->where(array('id' => $id))->find();
if(empty($goods_bank) || empty($id) || empty($num) || empty($type)){
$rt['status'] = 0;
$rt['msg'] = '未找到您需要修改的商品';
$this->ajaxReturn($rt);exit;
}
if ($type == 1) {
$savedata['num'] = $num;
}
$savedata['allmoney'] = $goods_bank['purch_price'] * $num;
$ret = M('retail_allocation_goods_bank')->where(array('id' => $id))->save($savedata);
if ($ret) {
$rt['status'] = 1;
$rt['msg'] = '修改成功';
} else {
$rt['status'] = 0;
$rt['msg'] = '暂未修改';
}
$this->ajaxReturn($rt);
}
}
//确认出货
public function addallocation()
{
if (IS_POST) {
$user = session("ls_userinfo");
$goods_bank_ids = I('post.goods_bank_ids');
$dismoney = I('post.dismoney');
$storeid = I('post.tostoreid');
$merchantid = $user['merchantid'];
if(empty($goods_bank_ids) || empty($storeid)){
$res['status'] = 0;
$res['msg'] = '参数错误';
$this->ajaxReturn($res);exit;
}else{
$where['id'] = array('in',$goods_bank_ids);
$allinfo = M('retail_allocation_goods_bank')->where($where)->select();
if(!$allinfo){
$res['status'] = 0;
$res['msg'] = '请添加调拨商品';
$this->ajaxReturn($res);exit;
}else{
$allmoney = 0; //总进价量
$allocation_num = 0; //总调拨量
foreach ($allinfo as $key=>&$val){
if($val['attribute'] == 1){
$allmoney += ($val['purch_price']*$val['num']);
}else if($val['attribute'] == 2){
$m_sku_goods_ids = M('retail_allocat_sku_goods')->where(array('goods_bannk_id'=>$val['id']))->field('sku_mgoods_id,goods_num')->select();
foreach ($m_sku_goods_ids as $keym=>$valm){
$m_sku_goods_price = M('retail_sku_mgoods')->where(array('id'=>$valm['sku_mgoods_id']))->find();
$allmoney += ($m_sku_goods_price['purch_price'] * $valm['goods_num']);
}
}
$allocation_num += $val['num'];
}
$data['allmoney'] = $allmoney?$allmoney:0;
$data['dismoney'] = $dismoney?$dismoney:0;
$data['allocation_num'] = $allocation_num?$allocation_num:0;
$data['target_storeid'] = $storeid;
$data['examine'] = 1;
$data['addtime'] = time();
$data['merchantid'] = $merchantid;
$data['goods_class'] = count($goods_bank_ids);
$data['type'] = 1;
$add_allocation = M('retail_allocation')->add($data);
if($add_allocation){
$order_id = createOrderTradeNo($add_allocation);//订单号
if($order_id){
$save['order_id'] = $order_id;
$save_allocat = M('retail_allocation')->where(array('id'=>$add_allocation))->save($save);
if($save_allocat){
$save_bank = M('retail_allocation_goods_bank')->where($where)->save(array('allocation_id'=>$add_allocation));
if($save_bank){
$res['status'] = 1;
$res['msg'] = '操作成功';
}else{
$res['status'] = 0;
$res['msg'] = '操作失败';
}
}else{
$res['status'] = 0;
$res['msg'] = '订单号存入失败';
}
}else{
$res['status'] = 0;
$res['msg'] = '订单号生成失败';
}
}else{
$res['status'] = 0;
$res['msg'] = '出货失败';
}
$this->ajaxReturn($res);
}
}
}
}
//获取商品规格信息
public function getMGoodsSkuAttr($id,$type,$bank_id)
{
if($type == 2){
$typearr['id'] = array('in',$id);
$skuList = M('retail_sku_mgoods')->where($typearr)->select();
}else{
$skuList = M('retail_sku_mgoods')->where(array('mgoods_id' => $id, 'state' => 0))->select();
}
$skuAttr = array();
if (!empty($skuList)) {
foreach ($skuList as &$value) {
$tempId = explode(',', $value['sku_id_list']);
foreach ($tempId as &$v) {
$v = intval($v);
$value['name'][] = M('retail_sku_list')->where(array('id' => $v))->getField('name');
}
$value['tempId'] = $tempId;
if($value['goods_num'] == round($value['goods_num'])){
$value['goods_num'] = round($value['goods_num']);
}
if($value['sku_num'] == round($value['sku_num'])){
$value['sku_num'] = round($value['sku_num']);
}
if($type == 2){
$value['num'] = M('retail_allocat_sku_goods')->where(array('sku_mgoods_id'=>$value['id'],'goods_bannk_id'=>$bank_id))->getField('shipment_num');//出货量
}else{
$value['num'] = 0;//出货量
}
}
//为了保证规格顺序
$skuAttr = array();
for ($i = 0; $i < count($skuList[0]['tempId']); $i++) {
$skuAttr[] = M('retail_sku_attr as s')
->join('ls_retail_sku_list as l on l.attr_id=s.id')
->where(array('s.state' => 0, 'l.id' => $skuList[0]['tempId'][$i]))
->group('l.attr_id')
->field('s.id,s.name')
->find();
}
}
$data['attr'] = $skuAttr;
$data['list'] = $skuList;
return $data;
}
//规格详情
public function purchase_sku_details()
{
$goods_bankid = I('post.goods_bankid');
if(!$goods_bankid){
$res['status'] = 0;
$res['msg'] = '参数错误';
}else{
$goods_bankinfo = M('retail_allocation_goods_bank')->where(array('id'=>$goods_bankid))->find();
if($goods_bankinfo){
if($goods_bankinfo['attribute'] == 2){
$sku_ids = M('retail_allocat_sku_goods')->where(array('goods_bannk_id'=>$goods_bankinfo['id']))->getField('sku_mgoods_id',true);
if($sku_ids){
$info = $this->getMGoodsSkuAttr($sku_ids,2,$goods_bankinfo['id']);
$res['status'] = 1;
$res['info'] = $info;
}else{
$res['status'] = 0;
$res['msg'] = '未找到该商品规格';
}
}else{
$res['status'] = 0;
$res['msg'] = '导入时无规格';
}
}else{
$res['status'] = 0;
$res['msg'] = '暂未找到该商品';
}
}
$this->ajaxReturn($res);
}
//出货单列表
public function shipmentlist()
{
$arr = array(
'shipment_detail' => '/index.php/Retail/Aallocatmerchant/shipment_detail',
);
$authArr = checkFunction($arr);
$this->assign('authArr', $authArr);
$this->display();
}
//出货单列表
public function shipment_sales()
{
$user = session('ls_userinfo');
if (empty($user)) {
$res['code'] = 0;
$res['msg'] = '';
$res['count'] = 0;
$res['data'] = array();
$this->ajaxReturn($res);
exit;
}
$order_id = I('get.order_id');
$order_state = I('get.order_state');
$date = I('get.date');
if (!empty($order_id)) {
$where['a.order_id'] = array('like', '%' . $order_id . '%');
}
if (!empty($order_state)) {
$where['a.examine'] = $order_state;
}
if (!empty($date)) {
$date = explode('至', $date);
$start_time = strtotime(date('Y-m-d 00:00:00', strtotime($date[0])));
$endtime = strtotime(date('Y-m-d 23:59:59', strtotime($date[1])));
$where['a.addtime'] = array('between', array($start_time, $endtime));
}
$page = I('get.page');
$limit = I('get.limit');
$where['a.merchantid'] = $user['merchantid'];
$where['a.type'] = 1;
$where['a.status'] = 1;
$goods_info = M('retail_allocation as a')
->join('ls_retail_store as s on a.target_storeid=s.id')
->where($where)
->order('addtime desc')
->page($page, $limit)
->field('a.*,s.storetag')
->select();
if ($goods_info) {
$count = M('retail_allocation as a')->where($where)->count();
foreach ($goods_info as $key => &$val) {
$val['index'] = $key + 1;
$val['addtime'] = date('Y-m-d H:i:s', $val['addtime']);
if ($val['examine'] == 1) {
$val['state'] = '未审核';
} else if ($val['examine'] == 2) {
$val['state'] = '审核通过';
} else if ($val['examine'] == 3) {
$val['state'] = '审核失败';
}
}
$res['code'] = 0;
$res['msg'] = '';
$res['count'] = $count;
$res['data'] = $goods_info;
} else {
$res['code'] = 0;
$res['msg'] = '';
$res['count'] = 0;
$res['data'] = array();
}
$this->ajaxReturn($res);
}
//出货详情
public function shipment_detail()
{
$id = I('get.id');
$this->assign('id', $id);
$this->display();
}
//出货详情
public function shipment_detail_list()
{
$id = I('post.floworderid');
$goods_bank_info = M('retail_allocation_goods_bank')->where(array('allocation_id' => $id))->select();
if ($goods_bank_info) {
$totalallmoney = 0;
$totalnum=0;
foreach ($goods_bank_info as $key => &$val) {
$val['index'] = $key + 1;
$allmoney = 0;//小计
if($val['attribute'] == 2){
$where_sku['a.goods_bannk_id'] = $val['id'];
$sku_goods_ids = M('retail_allocat_sku_goods as a')
->join('ls_retail_sku_mgoods as m on m.id=a.sku_mgoods_id','LEFT')
->where($where_sku)
->field('a.goods_num,m.purch_price')
->select();
if($sku_goods_ids){
foreach ($sku_goods_ids as $ke=>&$va){
$allmoney += $va['purch_price']*$va['goods_num'];
}
$val['allmoney'] = $allmoney;
$totalallmoney += $allmoney;
}
}else if($val['attribute'] == 1){
$totalallmoney += $val['allmoney'];
}
$totalnum += $val['num'];
}
$total['len'] = $totalnum;
$total['allmoney'] = $totalallmoney;
$total['allnum'] = M('retail_allocation_goods_bank')->where(array('allocation_id' => $id))->count();
$res['status'] = 1;
$res['data'] = $goods_bank_info;
$res['info'] =$total;
} else {
$total['len'] = 0;
$total['allmoney'] = 0;
$total['allnum'] = 0;
$res['status'] = 0;
$res['data'] = array();
$res['info'] = $total;
}
$this->ajaxReturn($res);
}
//商户批量选择商品
public function batchgoods(){
$this->display();
}
//未加入出货单的商品
public function batchgoods_list()
{
$user = session('ls_userinfo');
$where['allocation_status'] = 1;
$where['merchantid'] = $user['merchantid'];
$where['allocation_id'] = 0;
$goods_id = M('retail_allocation_goods_bank')->where($where)->getField('goodsid',true); //已加入出货单的商品
$goods_id = $goods_id?$goods_id:array(0);
$map['status'] = 0;
$map['merchantid'] = $user['merchantid'];
$map['id'] = array('not in',$goods_id);
$m_goods = M('retail_mgoods')->field('id,goods_name,purch_price,attribute,goods_num,can_exchange_weigh')->where($map)->order('id desc')->select();
if($m_goods){
foreach ($m_goods as $key=>&$val){
$val['election'] = false;
}
}
$count = M('retail_mgoods')->where($map)->count();
$res['data'] = $m_goods;
$res['status'] = 1;
$this->ajaxReturn($res);
}
//批量规格查询
public function batch_specifications()
{
$id = I('post.id');
if(!$id){
$res['status'] = 0;
$res['msg'] = '参数错误';
$this->ajaxReturn($res);exit;
}
$attribute = M('retail_mgoods')->where(array('id'=>$id))->getField('attribute');
if($attribute!=2){
$res['status'] = 0;
$res['msg'] = '该商品不是规格商品';
$this->ajaxReturn($res);exit;
}
$data = $this->getMGoodsSkuAttr($id);
$res['status'] = 1;
$res['data'] = $data;
$this->ajaxReturn($res);
}
//批量加入出货表
public function batch_addmgoodsbank()
{
$user = session('ls_userinfo');
$mgoodsinfo = I('post.goodsarr');
if(!$user || !$mgoodsinfo){
$res['status'] = 0;
$res['msg'] = '参数错误';
$this->ajaxReturn($res);exit;
}
foreach ($mgoodsinfo as $key=>&$val){
$bank_where['merchantid'] = $user['merchantid'];
$bank_where['allocation_status'] = 1;
$bank_where['allocation_id'] = 0;
$bank_where['goodsid'] = $val['id'];
$bank_goods_info = M('retail_allocation_goods_bank')->where($bank_where)->find();
if($bank_goods_info){
$res['status'] = 0;
$res['msg'] = $val['goods_name'].'出货商品库已存在';
$this->ajaxReturn($res);exit;
}
if($val['num'] < 0 || empty($val['num'])){
$res['status'] = 0;
$res['msg'] = $val['goods_name'].'出货量不能为0';
$this->ajaxReturn($res);exit;
}
$mgoods_info_detail = M('retail_mgoods')->where(array('id'=>$val['id']))->find();
if(!$mgoods_info_detail){
$res['status'] = 0;
$res['msg'] = $val['goods_name'].'未找到该商品';
$this->ajaxReturn($res);exit;
}
if($val['attribute'] == 2){
if(empty($val['skuList'])){
$res['status'] = 0;
$res['msg'] = $val['goods_name'].'规格信息有误';
$this->ajaxReturn($res);exit;
}
}
}
foreach ($mgoodsinfo as $key=>&$val){
$data = array();
$mgoods_info_detail = M('retail_mgoods')->where(array('id'=>$val['id']))->find();
$data['goodsid'] = $val['id'];
$data['goods_name'] = $mgoods_info_detail['goods_name'];
$data['good_number'] = $mgoods_info_detail['good_number'];
$data['goods_code'] = $mgoods_info_detail['goods_code'];
$data['company'] = $mgoods_info_detail['company'];
$data['specifications'] = $mgoods_info_detail['specifications'];
$data['issellonline'] = $mgoods_info_detail['issellonline'];
$data['can_exchange'] = $mgoods_info_detail['can_exchange'];
$data['integral'] = $mgoods_info_detail['integral'];
$data['exchange_money'] = $mgoods_info_detail['exchange_money'];
$data['max_swap'] = $mgoods_info_detail['max_swap'];
$data['max_swap_num'] = $mgoods_info_detail['max_swap_num'];
$data['vip_online_price'] = $mgoods_info_detail['vip_online_price'];
$data['vip_online_integral'] = $mgoods_info_detail['vip_online_integral'];
$data['vip_retail_price'] = $mgoods_info_detail['vip_retail_price'];
$data['vip_retail_integral'] = $mgoods_info_detail['vip_retail_integral'];
$data['vip_online_state'] = $mgoods_info_detail['vip_online_state'];
$data['vip_retail_state'] = $mgoods_info_detail['vip_retail_state'];
$data['supplier_id'] = $mgoods_info_detail['supplier_id'];
$data['can_exchange_weigh'] = $mgoods_info_detail['can_exchange_weigh'];
$data['details'] = $mgoods_info_detail['details'];
$data['production_date'] = $mgoods_info_detail['production_date'];
$data['shelf_life'] = $mgoods_info_detail['shelf_life'];
$data['shop_mem_status'] = $mgoods_info_detail['shop_mem_status'];
$data['shop_mem_price'] = $mgoods_info_detail['shop_mem_price'];
$data['store_mem_status'] = $mgoods_info_detail['store_mem_status'];
$data['store_mem_price'] = $mgoods_info_detail['store_mem_price'];
$data['goods_class_id'] = $mgoods_info_detail['goods_class_id'];
$data['good_image'] = $mgoods_info_detail['good_image'];
$data['purch_price'] = $mgoods_info_detail['purch_price'];
$data['retail_price'] = $mgoods_info_detail['retail_price'];
$data['online_price'] = $mgoods_info_detail['online_price'];
$data['addtime'] = time();
$data['allocation_status'] = 1;
$data['merchantid'] = $user['merchantid'];
$data['attribute'] = $mgoods_info_detail['attribute'];
$data['more_num'] = $mgoods_info_detail['more_num'];
$data['less_num'] = $mgoods_info_detail['less_num'];
$data['agood_count'] = $mgoods_info_detail['agood_count'];
$data['goods_brand_id'] = $mgoods_info_detail['goods_brand_id'];
$add = M('retail_allocation_goods_bank')->add($data);
if($add){
if($data['attribute'] == 2){
//有规格的
if(!empty($val['skuList'])){
$allmoney = 0;
$number = 0;
foreach ($val['skuList'] as $ke=>&$va){
if($va['num'] > 0){
$sku = array();
$mgoods_sku_info = M('retail_sku_mgoods')->where(array('id'=>$va['id']))->find();
$purch_price = $mgoods_sku_info['purch_price']?$mgoods_sku_info['purch_price']:0; //进价
$input_num = round($va['num'] * $mgoods_sku_info['sku_num'],3);
$allmoney += round(($purch_price *$input_num),5);
$number += $input_num;
$sku['merchantid'] = $user['merchantid'];
$sku['goods_id'] = $val['id'];
$sku['goods_num'] = $input_num;
$sku['addtime'] = $data['addtime'];
$sku['goods_bannk_id'] = $add;
$sku['sku_mgoods_id'] = $va['id'];
$sku['shipment_num'] = $va['num'];
$skuid = M('retail_allocat_sku_goods')->add($sku);
if($skuid){
M('retail_sku_mgoods')->where(array('id'=>$va['id']))->setDec('goods_num',$va['num']);
}
}
}
if($skuid){
$mgoods_dec = M('retail_mgoods')->where(array('id'=>$val['id']))->setDec('goods_num',$number);
if($mgoods_dec){
$save = array();
$save['allmoney'] = $allmoney;
$save['num'] = $number;
$save_bank = M('retail_allocation_goods_bank')->where(array('id'=>$add))->save($save);
if(!$save_bank){
$res['status'] = 0;
$res['msg'] = $data['goods_name'].'出货商品库金额小计与数量修改错误,暂停操作';
$this->ajaxReturn($res);exit;
}
}else{
$res['status'] = 0;
$res['msg'] = $data['goods_name'].'商户商品库存修改错误,暂停操作';
$this->ajaxReturn($res);exit;
}
}else{
$res['status'] = 0;
$res['msg'] = $data['goods_name'].'出货规格库修改失败,暂停操作';
$this->ajaxReturn($res);exit;
}
}
}else if($data['attribute'] == 1){
$save_mgoods = M('retail_mgoods')->where(array('id'=>$data['goodsid']))->setDec('goods_num',$val['num']);
if($save_mgoods){
$save['allmoney'] = round(($data['purch_price'] * $val['num']),5);
$save['num'] = round($val['num'],3);
$save_bank = M('retail_allocation_goods_bank')->where(array('id'=>$add))->save($save);
if(!$save_bank){
$res['status'] = 0;
$res['msg'] = $data['goods_name'].'出货商品库金额小计与数量修改错误,暂停操作';
$this->ajaxReturn($res);exit;
}
}else{
$res['status'] = 0;
$res['msg'] = $data['goods_name'].'商户商品库存修改错误,暂停操作';
$this->ajaxReturn($res);exit;
}
}
}
}
$res['status'] = 1;
$res['msg'] = '操作成功';
$this->ajaxReturn($res);
}
}