文件
mashangyoujiu/Application/Common/Model/SPurchaseGoodsModel.class.php

148 行
6.4 KiB
PHP
可执行文件

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

<?php
/*
* 门店采购商品模型 - 数据对象模型
*/
namespace Common\Model;
use Think\Model;
//[1.8.45]
class SPurchaseGoodsModel extends JBaseModel
{
protected $tableName = 'retail_store_purchase_goods';
protected $fields = array(
'id', //int(11) NOT NULL AUTO_INCREMENT,
'merchant_id', //int(11) DEFAULT '0' COMMENT '商户Id',
'store_id', //门店id
'purchase_order_id', //int(11) DEFAULT '0' COMMENT '采购订单表id '
'warehouse_id', //int(11) DEFAULT '0' COMMENT '采购仓库id',
'supplier_id', //int(11) DEFAULT '0' COMMENT '供货商id',
'goods_id', //int(11) DEFAULT '0' COMMENT '商户商品id',,
'sku_id', //int(11) DEFAULT '0' COMMENT '规格id',,
'goods_name', //varchar(255) DEFAULT '' COMMENT '商品名称',
'sku_name', //varchar(255) DEFAULT '' COMMENT '规格名称'
'sku_id_list', //规格名称id
'goods_class_id', //int(11) DEFAULT '0' COMMENT '分类id',
'goods_number', //varchar(20) DEFAULT '' COMMENT '商品货号'
'sku_goods_number', //规格货号
'goods_code', //varchar(30) DEFAULT '' COMMENT '条码',
'sku_code', //varchar(30) DEFAULT '' COMMENT '规格条码',
'company', //varchar(255) DEFAULT '' COMMENT '单位',
'attribute_state', //tinyint(1) DEFAULT '1' COMMENT '规格开关 是否是规格 1关闭 2开启',
'pricing_method', //tinyint(1) DEFAULT '1' COMMENT '称重开关:是否称重 1:关闭 2:开启'
'purchase_price', //decimal(10,2) DEFAULT NULL COMMENT '进货价',
'sku_num', //规格基数
'purchase_num', //decimal(10,3) DEFAULT NULL COMMENT '进货数量',
'surplus_num', //decimal(10,3) DEFAULT '0.000' COMMENT '待入库数量'
'warehousing_num', //decimal(10,3) DEFAULT '0.000' COMMENT ' 已入库数量',
'retreat_num', //decimal(10,3) DEFAULT '0.000' COMMENT '退货数量',
'subtotal', //decimal(10,2) DEFAULT '0.00' COMMENT '小计',
'remarks', //text COMMENT '备注',
'order_number', //采购订单号
'add_time', //varchar(10) DEFAULT NULL COMMENT '添加时间',
'build_date', //varchar(13) DEFAULT NULL COMMENT '生产日期',
'quality_guarantee_period', //varchar(255) DEFAULT NULL COMMENT '保质期',
'retail_price', //店内零售价
'online_price', //商城零售价
'serial_number_state', //串号状态 0关闭 1开启
'goods_batch_number', //商品批号
);
/**
* 采购详情
* @param $parameter
* @return array
*/
public function getList($parameter)
{
if (!empty($parameter)) {
$where = $parameter['where'];
$page = $parameter['page'];
$limit = $parameter['limit'];
$list = $this->getSelect($where, $page,$limit,"goods_name,sku_name,purchase_num,sku_goods_number,attribute_state,purchase_price,goods_id,sku_id,goods_number,company", 'id asc');
} else {
$list = array();
}
return $list;
}
public function handleList($parameter)
{
$sell_model = new RetailSellModel();
$list = $parameter['list'];
$store_id = $parameter['store_id'];
$id = $parameter['id'];
$map = array(
'store_id'=>$store_id,
'pay_state'=>1,
'pay_type'=>array('neq',0)
);
foreach ($list as $key => &$val) {
$val['index'] = $key + 1;
$val['purchase_num'] = round($val['purchase_num'], 3);
$val['purchase_price'] = round($val['purchase_price'], 2);
if ($val['attribute_state'] == 2) {
$val['goods_name'] = $val['goods_name'] . ',' . $val['sku_name'];
$val['goods_number'] = $val['sku_goods_number'];
}
$map['goods_id'] = $val['goods_id'];
$map['_string'] = "FIND_IN_SET(" . $id . ",purchase_id_str)";
$sell_list = $sell_model->getSelect($map,"sku_json_info,supplier_json,sell_type");
if(!empty($sell_list)){
$val['num'] = $this->sellList($sell_list,$id,$val['sku_id']);
}else{
$val['num'] = 0;
}
$val['should_money'] = round($val['purchase_price'] * $val['num'],2);
}
return $list;
}
/**
* 获取售出数量
* @param $sellList
* @param $id 采购id
* @param $sku_id 规格id
* @return $num 出售数量
*/
public function sellList($sellList,$id,$sku_id=0)
{
$sell_num = 0; //出售数
$refund_num = 0; //退款数
foreach ($sellList as $k=>$v){
if(!empty($sku_id)){
$sku_json_info = json_decode($v['sku_json_info'],true);
if($sku_id != $sku_json_info['id']){
continue;
}
}
$supplier_json = json_decode($v['supplier_json'],true);
switch ($v['sell_type']){
case 1:
$sell_num += $supplier_json[$id]['num'];
break;
case 2:
$refund_num += $supplier_json[$id]['num'];
break;
}
}
$num = round($sell_num - $refund_num,3);
return $num;
}
/**
* 采购总商品数
* @param $parameter
* @return int
*/
public function getListCount($parameter)
{
if (!empty($parameter)) {
$count = $this->getCount($parameter['where']);
} else {
$count = 0;
}
return $count;
}
}