2025-03-28 09:49:56 +08:00

315 lines
15 KiB
C#

using System;
using System.Collections.Generic;
using System.Data;
using SuperMap.RealEstate.ServiceModel;
using Business = SuperMap.RealEstate.Seller.Storage.Business;
using HCC = HZQR.Common.Common;
using HZQR.Common;
namespace EShang.Common.GeneralMethod
{
/// <summary>
/// 商品配送表相关方法
/// 2023/3/9 16:12:33自动生成
/// </summary>
public class GOODSDELIVERHelper
{
#region
/// <summary>
/// 获取商品配送表列表
/// </summary>
/// <param name="transaction">事务管理器</param>
/// <param name="TotalCount">查询结果总数</param>
/// <param name="searchModel">查询条件对象</param>
public static List<Model.GOODSDELIVERModel> GetGOODSDELIVERList(Transaction transaction,
ref int TotalCount, Model.SearchModel<Model.GOODSDELIVERModel> searchModel)
{
List<Model.GOODSDELIVERModel> GOODSDELIVERList = new List<Model.GOODSDELIVERModel>();
string WhereSQL = "", RowFilterSQL = "";
if (searchModel.SearchParameter != null)
{
WhereSQL = OperationDataHelper<Model.GOODSDELIVERModel>.GetWhereSQL(searchModel.SearchParameter, searchModel.QueryType, "",
"DELIVER_DATE_Start", "DELIVER_DATE_End", "DELIVER_STATES");
if (WhereSQL != "")
{
WhereSQL = " WHERE " + WhereSQL;
}
//查询配送日期
if (searchModel.SearchParameter.DELIVER_DATE_Start.TryParseToString() != "")
{
WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "DELIVER_DATE >= TO_DATE('" +
searchModel.SearchParameter.DELIVER_DATE_Start.Split(' ')[0] + "','YYYY/MM/DD')";
}
if (searchModel.SearchParameter.DELIVER_DATE_End.TryParseToString() != "")
{
WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "DELIVER_DATE < TO_DATE('" +
searchModel.SearchParameter.DELIVER_DATE_End.Split(' ')[0] + "','YYYY/MM/DD') + 1";
}
//查询配送状态
if (searchModel.SearchParameter.DELIVER_STATES.TryParseToString() != "")
{
WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "DELIVER_STATE IN (" + searchModel.SearchParameter.DELIVER_STATES + ")";
}
}
DataTable dtGOODSDELIVER = new Business.SELLERPROINST(transaction).ExecuteDataTable(
"SELECT * FROM SELLER_STORAGE.T_GOODSDELIVER" + WhereSQL);
//增加组合查询条件
if (searchModel.keyWord != null && !string.IsNullOrWhiteSpace(searchModel.keyWord.Key))
{
foreach (string KeyName in searchModel.keyWord.Key.Split(','))
{
RowFilterSQL += (RowFilterSQL == "" ? "" : " or ") +
KeyName + " like '%" + searchModel.keyWord.Value + "%'";
}
}
if (RowFilterSQL != "")
{
dtGOODSDELIVER.DefaultView.RowFilter = RowFilterSQL;
}
//排序:
dtGOODSDELIVER.DefaultView.Sort = searchModel.SortStr;
dtGOODSDELIVER = dtGOODSDELIVER.DefaultView.ToTable();
//获取查询结果总记录条数
TotalCount = dtGOODSDELIVER.Rows.Count;
//根据传入的页码和每页显示条数返回结果
dtGOODSDELIVER = CommonHelper.GetDataTableWithPageSize(dtGOODSDELIVER, searchModel.PageSize, searchModel.PageIndex);
foreach (DataRow drGOODSDELIVER in dtGOODSDELIVER.Rows)
{
Model.GOODSDELIVERModel goodsdeliverModel = new Model.GOODSDELIVERModel();
//绑定商品配送表数据对象
BindDataRowToModel(drGOODSDELIVER, goodsdeliverModel);
GOODSDELIVERList.Add(goodsdeliverModel);
}
return GOODSDELIVERList;
}
#region model
/// <summary>
/// 绑定model
/// </summary>
/// <param name="drGOODSDELIVER">datarow数据源</param>
/// <param name="goodsdeliverModel">model对象</param>
public static void BindDataRowToModel(DataRow drGOODSDELIVER, Model.GOODSDELIVERModel goodsdeliverModel)
{
if (drGOODSDELIVER["GOODSDELIVER_ID"].ToString() != "")
{
goodsdeliverModel.GOODSDELIVER_ID = drGOODSDELIVER["GOODSDELIVER_ID"].TryParseToInt(); //内码
}
goodsdeliverModel.GOODSDELIVER_CODE = drGOODSDELIVER["GOODSDELIVER_CODE"].ToString(); //配送编码
goodsdeliverModel.PURCHASE_ID = drGOODSDELIVER["PURCHASE_ID"].ToString(); //采购内码
goodsdeliverModel.GOODSDELIVER_STAFF = drGOODSDELIVER["GOODSDELIVER_STAFF"].ToString(); //配送人员
goodsdeliverModel.GOODSDELIVER_STAFFTEL = drGOODSDELIVER["GOODSDELIVER_STAFFTEL"].ToString(); //联系电话
if (drGOODSDELIVER["PRICE_TYPE"].ToString() != "")
{
goodsdeliverModel.PRICE_TYPE = drGOODSDELIVER["PRICE_TYPE"].TryParseToInt(); //价格类型
}
if (drGOODSDELIVER["DISPLAY_TAXFEE"].ToString() != "")
{
goodsdeliverModel.DISPLAY_TAXFEE = drGOODSDELIVER["DISPLAY_TAXFEE"].TryParseToDouble(); //含税陈列费
}
if (drGOODSDELIVER["DISPLAY_FEE"].ToString() != "")
{
goodsdeliverModel.DISPLAY_FEE = drGOODSDELIVER["DISPLAY_FEE"].TryParseToDouble(); //除税陈列费
}
if (drGOODSDELIVER["ACTUAL_TAXAMOUNT"].ToString() != "")
{
goodsdeliverModel.ACTUAL_TAXAMOUNT = drGOODSDELIVER["ACTUAL_TAXAMOUNT"].TryParseToDouble(); //含税实付金额
}
if (drGOODSDELIVER["ACTUAL_AMOUNT"].ToString() != "")
{
goodsdeliverModel.ACTUAL_AMOUNT = drGOODSDELIVER["ACTUAL_AMOUNT"].TryParseToDouble(); //除税实付金额
}
if (drGOODSDELIVER["SUPPLIER_ID"].ToString() != "")
{
goodsdeliverModel.SUPPLIER_ID = drGOODSDELIVER["SUPPLIER_ID"].TryParseToInt(); //供应商内码
}
goodsdeliverModel.SUPPLIER_NAME = drGOODSDELIVER["SUPPLIER_NAME"].ToString(); //供应商名称
if (drGOODSDELIVER["SERVERPARTSHOP_ID"].ToString() != "")
{
goodsdeliverModel.SERVERPARTSHOP_ID = drGOODSDELIVER["SERVERPARTSHOP_ID"].TryParseToInt(); //配送门店内码
}
if (!string.IsNullOrWhiteSpace(drGOODSDELIVER["DELIVER_DATE"].ToString()))
{
//配送日期
goodsdeliverModel.DELIVER_DATE = drGOODSDELIVER["DELIVER_DATE"].ToString();
}
if (drGOODSDELIVER["DELIVER_TYPE"].ToString() != "")
{
goodsdeliverModel.DELIVER_TYPE = drGOODSDELIVER["DELIVER_TYPE"].TryParseToInt(); //配送类型(统配/直配)
}
if (drGOODSDELIVER["DELIVER_STATE"].ToString() != "")
{
goodsdeliverModel.DELIVER_STATE = drGOODSDELIVER["DELIVER_STATE"].TryParseToShort(); //配送状态
}
if (drGOODSDELIVER["DELIVER_VALID"].ToString() != "")
{
goodsdeliverModel.DELIVER_VALID = drGOODSDELIVER["DELIVER_VALID"].TryParseToShort(); //有效状态
}
if (drGOODSDELIVER["PROINST_ENDDATE"].ToString() != "")
{
goodsdeliverModel.PROINST_ENDDATE = drGOODSDELIVER["PROINST_ENDDATE"].TryParseToDateTime(); //审结时间
}
if (drGOODSDELIVER["BILL_TYPE"].ToString() != "")
{
goodsdeliverModel.BILL_TYPE = drGOODSDELIVER["BILL_TYPE"].TryParseToShort(); //是否开票
}
if (drGOODSDELIVER["BILL_STATE"].ToString() != "")
{
goodsdeliverModel.BILL_STATE = drGOODSDELIVER["BILL_STATE"].TryParseToInt(); //开票状态
}
if (drGOODSDELIVER["STAFF_ID"].ToString() != "")
{
goodsdeliverModel.STAFF_ID = drGOODSDELIVER["STAFF_ID"].TryParseToInt(); //操作员内码
}
if (drGOODSDELIVER["SELLER_ID"].ToString() != "")
{
goodsdeliverModel.SELLER_ID = drGOODSDELIVER["SELLER_ID"].TryParseToInt(); //商户内码
}
goodsdeliverModel.GOODSDELIVER_DESC = drGOODSDELIVER["GOODSDELIVER_DESC"].ToString(); //备注
if (drGOODSDELIVER["WAREHOUSE_ID"].ToString() != "")
{
goodsdeliverModel.WAREHOUSE_ID = drGOODSDELIVER["WAREHOUSE_ID"].TryParseToInt(); //仓库内码
}
goodsdeliverModel.WAREHOUSE_NAME = drGOODSDELIVER["WAREHOUSE_NAME"].ToString(); //仓库名称
if (drGOODSDELIVER["PRINT_COUNT"].ToString() != "")
{
goodsdeliverModel.PRINT_COUNT = drGOODSDELIVER["PRINT_COUNT"].TryParseToInt(); //打印次数
}
goodsdeliverModel.STAFF_NAME = drGOODSDELIVER["STAFF_NAME"].ToString(); //操作人员
if (drGOODSDELIVER["OPERATE_DATE"].ToString() != "")
{
goodsdeliverModel.OPERATE_DATE = drGOODSDELIVER["OPERATE_DATE"].TryParseToDateTime(); //操作时间
}
goodsdeliverModel.SERVERPART_IDS = drGOODSDELIVER["SERVERPART_IDS"].ToString(); //
goodsdeliverModel.SERVERPART_NAME = drGOODSDELIVER["SERVERPART_NAME"].ToString(); //
goodsdeliverModel.SERVERPARTSHOP_IDS = drGOODSDELIVER["SERVERPARTSHOP_IDS"].ToString(); //
goodsdeliverModel.SHOPNAME = drGOODSDELIVER["SHOPNAME"].ToString(); //
if (drGOODSDELIVER["SALESTOREPROINST_ID"].ToString() != "")
{
goodsdeliverModel.SALESTOREPROINST_ID = drGOODSDELIVER["SALESTOREPROINST_ID"].TryParseToInt(); //
}
goodsdeliverModel.DELIVERY_ADDRESS = drGOODSDELIVER["DELIVERY_ADDRESS"].ToString(); //收货地址
}
#endregion
#endregion
#region
/// <summary>
/// 获取商品配送表明细
/// </summary>
/// <param name="transaction">事务管理器</param>
/// <param name="GOODSDELIVERId">商品配送表内码</param>
public static Model.GOODSDELIVERModel GetGOODSDELIVERDetail(Transaction transaction, int GOODSDELIVERId)
{
Model.GOODSDELIVERModel goodsdeliverModel = new Model.GOODSDELIVERModel();
string WhereSQL = "WHERE GOODSDELIVER_ID = " + GOODSDELIVERId;
//查询明细数据
DataTable dtGOODSDELIVER = new Business.SELLERPROINST(transaction).ExecuteDataTable(
"SELECT * FROM SELLER_STORAGE.T_GOODSDELIVER " + WhereSQL);
if (dtGOODSDELIVER.Rows.Count > 0)
{
//绑定商品配送表数据对象
BindDataRowToModel(dtGOODSDELIVER.Rows[0], goodsdeliverModel);
}
return goodsdeliverModel;
}
#endregion
#region
/// <summary>
/// 赋值商品配送表数据对象
/// </summary>
/// <param name="transaction">事务管理器</param>
/// <param name="goodsdeliverModel">商品配送表数据对象</param>
public static bool SynchroGOODSDELIVER(Transaction transaction, Model.GOODSDELIVERModel goodsdeliverModel)
{
bool SynchroFlag = true;
string SQLString;
List<string> excludeField = new List<string>();
Dictionary<string, string> dateFieldList = new Dictionary<string, string>();
string tableName = "SELLER_STORAGE.T_GOODSDELIVER", keyField = "GOODSDELIVER_ID", seqName = "SEQ_GOODSDELIVER";
Business.SELLERPROINST _SELLERPROINST = new Business.SELLERPROINST(transaction);
#region SQL语句中需要排除在外的字段
excludeField.Add("DELIVER_DATE_Start");
excludeField.Add("DELIVER_DATE_End");
excludeField.Add("DELIVER_STATES");
#endregion
#region SQL语句中日期相关字段的执行语句
//配送日期
if (!string.IsNullOrWhiteSpace(goodsdeliverModel.DELIVER_DATE))
{
dateFieldList.Add("DELIVER_DATE", "TO_DATE('" +
goodsdeliverModel.DELIVER_DATE + "','YYYY/MM/DD HH24:MI:SS')");
}
else
{
dateFieldList.Add("DELIVER_DATE", "NULL");
}
#endregion
if (goodsdeliverModel.GOODSDELIVER_ID != null)
{
string WhereSQL = " WHERE GOODSDELIVER_ID = " + goodsdeliverModel.GOODSDELIVER_ID;
DataTable dtGOODSDELIVER = _SELLERPROINST.ExecuteDataTable(
"SELECT * FROM SELLER_STORAGE.T_GOODSDELIVER" + WhereSQL);
if (dtGOODSDELIVER.Rows.Count > 0)
{
SQLString = OperationDataHelper<Model.GOODSDELIVERModel>.GetTableExcuteSQL(
goodsdeliverModel, 1, tableName, keyField, seqName, dateFieldList, excludeField, WhereSQL);
}
else
{
return false;
}
}
else
{
DataTable dtGOODSDELIVER = _SELLERPROINST.ExecuteDataTable(
"SELECT " + seqName + ".NEXTVAL FROM DUAL");
goodsdeliverModel.GOODSDELIVER_ID = dtGOODSDELIVER.Rows[0][0].TryParseToInt();
SQLString = OperationDataHelper<Model.GOODSDELIVERModel>.GetTableExcuteSQL(
goodsdeliverModel, 0, tableName, keyField, seqName, dateFieldList, excludeField);
}
_SELLERPROINST.ExecuteNonQuery(SQLString, null);
return SynchroFlag;
}
#endregion
#region
/// <summary>
/// 删除商品配送表
/// </summary>
/// <param name="transaction">事务管理器</param>
/// <param name="GOODSDELIVERId">商品配送表内码</param>
public static bool DeleteGOODSDELIVER(Transaction transaction, int? GOODSDELIVERId)
{
bool DeleteFlag = false;
if (GOODSDELIVERId != null)
{
string SQLString = "UPDATE SELLER_STORAGE.T_GOODSDELIVER SET GOODSDELIVER_STATE = 0 WHERE GOODSDELIVER_ID = " + GOODSDELIVERId;
int ExcuteCount = new Business.SELLERPROINST(transaction).ExecuteNonQuery(SQLString, null);
if (ExcuteCount > 0)
{
DeleteFlag = true;
}
}
return DeleteFlag;
}
#endregion
}
}