宜昌华友成品库管理软件
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

438 lines
16 KiB

using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.ServiceModel;
using SiaSun.LMS.Model;
namespace SiaSun.LMS.Implement
{
public class StorageBase : S_BaseService
{
/// <summary>
/// 生成库存
/// </summary>
/// <param name="MANAGE_ID"></param>
/// <param name="sResult"></param>
/// <returns></returns>
public bool StorageCreate(int MANAGE_ID, out string sResult)
{
bool bResult = true;
sResult = string.Empty;
try
{
SiaSun.LMS.Model.MANAGE_MAIN mMANAGE_MAIN = this._P_MANAGE_MAIN.GetModel(MANAGE_ID);
if (null == mMANAGE_MAIN)
{
bResult = false;
sResult = string.Format("管理任务索引 {0} 不存在", MANAGE_ID);
return bResult;
}
IList<MANAGE_LIST> lsMANAGE_LIST = this._P_MANAGE_LIST.GetListManageID(MANAGE_ID);
SiaSun.LMS.Model.STORAGE_MAIN mSTORAGE_MAIN;
SiaSun.LMS.Model.STORAGE_LIST mSTORAGE_LIST;
foreach (SiaSun.LMS.Model.MANAGE_LIST mMANAGE_LIST in lsMANAGE_LIST)
{
mSTORAGE_LIST = this._P_STORAGE_LIST.GetModel(mMANAGE_LIST.STORAGE_LIST_ID);
if (mSTORAGE_LIST != null)
{
mSTORAGE_LIST.STORAGE_LIST_QUANTITY += mMANAGE_LIST.MANAGE_LIST_QUANTITY;
mSTORAGE_LIST.UPDATE_TIME = SiaSun.LMS.Common.StringUtil.GetDateTime();
if (mSTORAGE_LIST.STORAGE_LIST_QUANTITY == 0)
this._P_STORAGE_LIST.Delete(mSTORAGE_LIST.STORAGE_LIST_ID);
else
this._P_STORAGE_LIST.Update(mSTORAGE_LIST);
}
else
{
mSTORAGE_MAIN = this._P_STORAGE_MAIN.GetModelStockBarcode(mMANAGE_MAIN.STOCK_BARCODE);
if (null == mSTORAGE_MAIN)
{
mSTORAGE_MAIN = new SiaSun.LMS.Model.STORAGE_MAIN();
mSTORAGE_MAIN.CELL_ID = mMANAGE_MAIN.END_CELL_ID;
mSTORAGE_MAIN.GOODS_TEMPLATE_ID = mMANAGE_MAIN.GOODS_TEMPLATE_ID;
mSTORAGE_MAIN.STOCK_BARCODE = mMANAGE_MAIN.STOCK_BARCODE;
mSTORAGE_MAIN.CELL_MODEL = mMANAGE_MAIN.CELL_MODEL;
mSTORAGE_MAIN.STORAGE_REMARK = mMANAGE_MAIN.MANAGE_REMARK;
mSTORAGE_MAIN.STORAGE_OPERATOR = mMANAGE_MAIN.MANAGE_OPERATOR;
this._P_STORAGE_MAIN.Add(mSTORAGE_MAIN);
}
else
{
mSTORAGE_MAIN.CELL_ID = mMANAGE_MAIN.END_CELL_ID;
this._P_STORAGE_MAIN.Update(mSTORAGE_MAIN);
}
mSTORAGE_LIST = new SiaSun.LMS.Model.STORAGE_LIST();
mSTORAGE_LIST.STORAGE_ID = mSTORAGE_MAIN.STORAGE_ID;
mSTORAGE_LIST.PLAN_LIST_ID = mMANAGE_LIST.PLAN_LIST_ID;
mSTORAGE_LIST.BOX_BARCODE = "";
mSTORAGE_LIST.STORAGE_LIST_QUANTITY = mMANAGE_LIST.MANAGE_LIST_QUANTITY;
mSTORAGE_LIST.GOODS_ID = mMANAGE_LIST.GOODS_ID;
bResult = this._S_GoodsService.GoodsPropertySetValue(mMANAGE_LIST.GOODS_ID, mSTORAGE_LIST, mMANAGE_LIST, out sResult);
if (!bResult)
{
return bResult;
}
mSTORAGE_LIST.ENTRY_TIME = SiaSun.LMS.Common.StringUtil.GetDateTime();
mSTORAGE_LIST.UPDATE_TIME = SiaSun.LMS.Common.StringUtil.GetDateTime();
mSTORAGE_LIST.STORAGE_LIST_REMARK = mMANAGE_LIST.MANAGE_LIST_REMARK;
mSTORAGE_LIST.BOX_BARCODE = mMANAGE_LIST.BOX_BARCODE;
mSTORAGE_LIST.GOODS_PROPERTY1 = mMANAGE_LIST.GOODS_PROPERTY1;
mSTORAGE_LIST.GOODS_PROPERTY2 = mMANAGE_LIST.GOODS_PROPERTY2;
mSTORAGE_LIST.GOODS_PROPERTY3 = mMANAGE_LIST.GOODS_PROPERTY3;
mSTORAGE_LIST.GOODS_PROPERTY4 = mMANAGE_LIST.GOODS_PROPERTY4;
mSTORAGE_LIST.GOODS_PROPERTY5 = mMANAGE_LIST.GOODS_PROPERTY5;
mSTORAGE_LIST.GOODS_PROPERTY6 = mMANAGE_LIST.GOODS_PROPERTY6;
mSTORAGE_LIST.GOODS_PROPERTY7 = mMANAGE_LIST.GOODS_PROPERTY7;
mSTORAGE_LIST.GOODS_PROPERTY8 = mMANAGE_LIST.GOODS_PROPERTY8;
mSTORAGE_LIST.GOODS_PROPERTY9 = mMANAGE_LIST.GOODS_PROPERTY9;
this._P_STORAGE_LIST.Add(mSTORAGE_LIST);
}
mMANAGE_LIST.STORAGE_LIST_ID = mSTORAGE_LIST.STORAGE_LIST_ID;
this._P_MANAGE_LIST.Update(mMANAGE_LIST);
}
SiaSun.LMS.Model.STORAGE_MAIN mSTORAGE_MAIN_EXIST = this._P_STORAGE_MAIN.GetModelStockBarcode(mMANAGE_MAIN.STOCK_BARCODE);
if (mSTORAGE_MAIN_EXIST != null)
{
if (this._P_STORAGE_LIST.GetListStorageID(mSTORAGE_MAIN_EXIST.STORAGE_ID).Count == 0)
{
this._P_STORAGE_MAIN.Delete(mSTORAGE_MAIN_EXIST.STORAGE_ID);
}
}
}
catch (Exception ex)
{
bResult = false;
sResult = ex.Message;
}
return bResult;
}
/// <summary>
/// 删除库存
/// </summary>
/// <param name="MANAGE_ID"></param>
/// <param name="sResult"></param>
/// <returns></returns>
public bool StorageDelete(int MANAGE_ID, out string sResult)
{
bool bResult = true;
sResult = string.Empty;
SiaSun.LMS.Model.MANAGE_MAIN mMANAGE_MAIN = this._P_MANAGE_MAIN.GetModel(MANAGE_ID);
if (null == mMANAGE_MAIN)
{
bResult = false;
sResult = string.Format("管理任务索引 {0} 不存在", MANAGE_ID);
return bResult;
}
IList<SiaSun.LMS.Model.MANAGE_LIST> lsMANAGE_LIST = this._P_MANAGE_LIST.GetListManageID(MANAGE_ID);
SiaSun.LMS.Model.STORAGE_MAIN mSTORAGE_MAIN = null;
SiaSun.LMS.Model.STORAGE_LIST mSTORAGE_LIST = null;
try
{
foreach (SiaSun.LMS.Model.MANAGE_LIST mMANAGE_LIST in lsMANAGE_LIST)
{
mSTORAGE_LIST = this._P_STORAGE_LIST.GetModel(mMANAGE_LIST.STORAGE_LIST_ID);
if (null == mSTORAGE_LIST)
{
bResult = false;
sResult = string.Format("库存索引 {0} 不存在", mMANAGE_LIST.STORAGE_LIST_ID);
return bResult;
}
mSTORAGE_LIST.STORAGE_LIST_QUANTITY -= mMANAGE_LIST.MANAGE_LIST_QUANTITY;
if (mSTORAGE_LIST.STORAGE_LIST_QUANTITY > 0)
{
this._P_STORAGE_LIST.Update(mSTORAGE_LIST);
}
else
{
this._P_STORAGE_LIST.Delete(mSTORAGE_LIST.STORAGE_LIST_ID);
if (this._P_STORAGE_LIST.GetListStorageID(mSTORAGE_LIST.STORAGE_ID).Count == 0)
{
mSTORAGE_MAIN = this._P_STORAGE_MAIN.GetModel(mSTORAGE_LIST.STORAGE_ID);
if (null != mSTORAGE_MAIN)
{
if (this._P_STORAGE_MAIN.GetListCellID(mSTORAGE_MAIN.CELL_ID).Count == 0)
{
this._S_CellService.CellUpdateStatus(mSTORAGE_MAIN.CELL_ID, SiaSun.LMS.Enum.CELL_STATUS.Nohave.ToString(), string.Empty, out sResult);
}
this._P_STORAGE_MAIN.Delete(mSTORAGE_MAIN.STORAGE_ID);
bResult = this._S_CellService.CellUpdateStatus(mMANAGE_MAIN.START_CELL_ID,
SiaSun.LMS.Enum.CELL_STATUS.Nohave.ToString(),
SiaSun.LMS.Enum.RUN_STATUS.Enable.ToString(),
out sResult);
}
}
}
}
}
catch (Exception ex)
{
bResult = false;
sResult = ex.Message;
}
return bResult;
}
/// <summary>
/// 库存转移
/// </summary>
/// <param name="MANAGE_ID"></param>
/// <param name="sResult"></param>
/// <returns></returns>
public bool StorageMove(int MANAGE_ID, out string sResult)
{
bool bResult = true;
sResult = string.Empty;
try
{
SiaSun.LMS.Model.MANAGE_MAIN mMANAGE_MAIN = this._P_MANAGE_MAIN.GetModel(MANAGE_ID);
if (null == mMANAGE_MAIN)
{
bResult = false;
sResult = string.Format("管理任务索引 {0} 不存在", MANAGE_ID);
return bResult;
}
SiaSun.LMS.Model.STORAGE_MAIN mSTORAGE_MAIN;
SiaSun.LMS.Model.STORAGE_LIST mSTORAGE_LIST;
IList<MANAGE_LIST> lsMANAGE_LIST = this._P_MANAGE_LIST.GetListManageID(MANAGE_ID);
foreach (SiaSun.LMS.Model.MANAGE_LIST mMANAGE_LIST in lsMANAGE_LIST)
{
mSTORAGE_LIST = this._P_STORAGE_LIST.GetModel(mMANAGE_LIST.STORAGE_LIST_ID);
if (null == mSTORAGE_LIST)
{
bResult = false;
sResult = string.Format("库存索引 {0} 不存在", mMANAGE_LIST.STORAGE_LIST_ID);
return bResult;
}
mSTORAGE_LIST.STORAGE_LIST_QUANTITY -= mMANAGE_LIST.MANAGE_LIST_QUANTITY;
if (mSTORAGE_LIST.STORAGE_LIST_QUANTITY > 0)
{
this._P_STORAGE_LIST.Update(mSTORAGE_LIST);
}
else
{
this._P_STORAGE_LIST.Delete(mSTORAGE_LIST.STORAGE_LIST_ID);
if (this._P_STORAGE_LIST.GetListStorageID(mSTORAGE_LIST.STORAGE_ID).Count == 0)
{
mSTORAGE_MAIN = this._P_STORAGE_MAIN.GetModel(mSTORAGE_LIST.STORAGE_ID);
if (null != mSTORAGE_MAIN)
{
if (this._P_STORAGE_MAIN.GetListCellID(mSTORAGE_MAIN.CELL_ID).Count == 0)
{
this._S_CellService.CellUpdateStatus(mSTORAGE_MAIN.CELL_ID, SiaSun.LMS.Enum.CELL_STATUS.Nohave.ToString(), string.Empty, out sResult);
}
this._P_STORAGE_MAIN.Delete(mSTORAGE_MAIN.STORAGE_ID);
}
}
}
mSTORAGE_MAIN = this._P_STORAGE_MAIN.GetModelCellIDStockBarcode(mMANAGE_MAIN.END_CELL_ID, mMANAGE_MAIN.STOCK_BARCODE);
if (null == mSTORAGE_MAIN)
{
mSTORAGE_MAIN = new SiaSun.LMS.Model.STORAGE_MAIN();
mSTORAGE_MAIN.GOODS_TEMPLATE_ID = mMANAGE_MAIN.GOODS_TEMPLATE_ID;
mSTORAGE_MAIN.CELL_ID = mMANAGE_MAIN.END_CELL_ID;
mSTORAGE_MAIN.STOCK_BARCODE = mMANAGE_MAIN.STOCK_BARCODE;
mSTORAGE_MAIN.CELL_MODEL = mMANAGE_MAIN.CELL_MODEL;
mSTORAGE_MAIN.STORAGE_REMARK = mMANAGE_MAIN.MANAGE_REMARK;
this._P_STORAGE_MAIN.Add(mSTORAGE_MAIN);
}
else
{
mSTORAGE_MAIN.CELL_ID = mMANAGE_MAIN.END_CELL_ID;
mSTORAGE_MAIN.CELL_MODEL = mMANAGE_MAIN.CELL_MODEL;
this._P_STORAGE_MAIN.Update(mSTORAGE_MAIN);
}
mSTORAGE_LIST = new SiaSun.LMS.Model.STORAGE_LIST();
mSTORAGE_LIST.STORAGE_ID = mSTORAGE_MAIN.STORAGE_ID;
mSTORAGE_LIST.PLAN_LIST_ID = mMANAGE_LIST.PLAN_LIST_ID;
mSTORAGE_LIST.BOX_BARCODE = string.Empty;
mSTORAGE_LIST.STORAGE_LIST_QUANTITY = mMANAGE_LIST.MANAGE_LIST_QUANTITY;
mSTORAGE_LIST.GOODS_ID = mMANAGE_LIST.GOODS_ID;
bResult = this._S_GoodsService.GoodsPropertySetValue(mMANAGE_LIST.GOODS_ID, mSTORAGE_LIST, mMANAGE_LIST, out sResult);
if (!bResult)
{
return bResult;
}
mSTORAGE_LIST.ENTRY_TIME = SiaSun.LMS.Common.StringUtil.GetDateTime();
mSTORAGE_LIST.UPDATE_TIME = SiaSun.LMS.Common.StringUtil.GetDateTime();
mSTORAGE_LIST.STORAGE_LIST_REMARK = mMANAGE_LIST.MANAGE_LIST_REMARK;
this._P_STORAGE_LIST.Add(mSTORAGE_LIST);
}
}
catch (Exception ex)
{
bResult = false;
sResult = ex.Message;
}
return bResult;
}
/// <summary>
/// 库存转移
/// </summary>
/// <param name="MANAGE_ID"></param>
/// <param name="sResult"></param>
/// <returns></returns>
public bool StorageMove(string STOCK_BARCODE, int START_CELL_ID,int END_CELL_ID, out string sResult)
{
bool bResult = true;
sResult = string.Empty;
try
{
SiaSun.LMS.Model.STORAGE_MAIN mSTORAGE_MAIN = null;
mSTORAGE_MAIN = this._P_STORAGE_MAIN.GetModelStockBarcode(STOCK_BARCODE);
Model.MANAGE_MAIN mANAGE_MAIN = this._P_MANAGE_MAIN.GetModelStockBarcode(STOCK_BARCODE);
IList<SiaSun.LMS.Model.STORAGE_LIST> lsSTORAGE_LIST = this._P_STORAGE_LIST.GetListStorageID(mSTORAGE_MAIN.STORAGE_ID);
foreach (SiaSun.LMS.Model.STORAGE_LIST mSTORAGE_LIST in lsSTORAGE_LIST)
{
mSTORAGE_LIST.ENTRY_TIME = string.IsNullOrEmpty(mSTORAGE_LIST.ENTRY_TIME) ? SiaSun.LMS.Common.StringUtil.GetDateTime() : mSTORAGE_LIST.ENTRY_TIME;
mSTORAGE_LIST.UPDATE_TIME = SiaSun.LMS.Common.StringUtil.GetDateTime();
this._P_STORAGE_LIST.Update(mSTORAGE_LIST);
}
if (null == mSTORAGE_MAIN)
{
bResult = false;
sResult = string.Format("未找到库存{0}", STOCK_BARCODE);
return bResult;
}
mSTORAGE_MAIN.CELL_ID = END_CELL_ID;
mSTORAGE_MAIN.CELL_MODEL = mANAGE_MAIN.CELL_MODEL;
this._P_STORAGE_MAIN.Update(mSTORAGE_MAIN);
}
catch (Exception ex)
{
bResult = false;
sResult = ex.Message;
}
return bResult;
}
}
}