using HH.WMS.Common;
using HH.WMS.Entitys;
using HH.WMS.Entitys.Basic;
using HH.WMS.Entitys.Common;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HH.WMS.DAL.InStock
{
public class TN_WM_INDAL : DapperBaseDAL
{
#region 更新入库订单状态
///
/// 提交入库订单-主表
///
/// 审批实体
/// 审批类型(已提交、已审核、已反审、已驳回)
///
/// [HANHE(XDL)] CREATED BY 2019-02-20
public OperateResult ExamineMst(List entity, string examineType, IDbTransaction trans)
{
OperateResult result = new OperateResult();
foreach (var model in entity)
{
StringBuilder strSql = new StringBuilder();
strSql.Append(" UPDATE TN_WM_IN_MST SET CN_S_STATE=@CN_S_STATE,CN_S_AUDITOR=@CN_S_AUDITOR,CN_T_AUDIT_TIME=@CN_T_AUDIT_TIME,CN_S_AUDIT_REMARK=@CN_S_AUDIT_REMARK WHERE CN_S_OP_NO=@CN_S_OP_NO");
result = ExecuteTranSql(strSql.ToString(), new
{
CN_S_STATE = examineType,
CN_S_OP_NO = model.CN_S_FROM_NO,
CN_S_AUDITOR = model.CN_S_CREATOR,
CN_T_AUDIT_TIME = DateTime.Now,
CN_S_AUDIT_REMARK = model.CN_S_OPINION
}, trans);
if (result.Status == ResultStatus.Error)
return result;
}
return result;
}
///
/// 提交入库订单-子表
///
/// 审批实体
/// 审批类型(已提交、已审核、已反审、已驳回)
///
/// [HANHE(XDL)] CREATED BY 2019-02-20
public OperateResult ExamineDtl(List entity, string examineType, IDbTransaction trans)
{
OperateResult result = new OperateResult();
foreach (var model in entity)
{
StringBuilder strSql = new StringBuilder();
strSql.Append(" UPDATE TN_WM_IN_DTL SET CN_S_STATE=@CN_S_STATE WHERE CN_S_OP_NO=@CN_S_OP_NO");
result = ExecuteTranSql(strSql.ToString(), new
{
CN_S_STATE = examineType,
CN_S_OP_NO = model.CN_S_FROM_NO
}, trans);
if (result.Status == ResultStatus.Error)
return result;
}
return result;
}
#endregion
#region 到货单联机新增-选择来源
///
/// 到货单页面,选择来源单据
///
/// 实体
///
/// [HANHE(XDL)] CREATED BY 2018-11-26
public OperateResult GetFromInOrderList(SearchModel searchModel)
{
var condition = searchModel.SearchCondition;
string ConStr = "where 1=1 ";
if (condition != null)
{
if (!string.IsNullOrEmpty(condition.CN_S_OP_NO.Value))
{
ConStr = ConStr + " and CN_S_OP_NO like '%" + condition.CN_S_OP_NO + "%'";
}
if (!string.IsNullOrEmpty(condition.CN_S_OP_TYPE))
{
ConStr = ConStr + " and CN_S_OP_TYPE = '" + condition.CN_S_OP_TYPE + "'";
}
}
string sql = @"(select *,CN_S_VENDOR_NO CN_S_VENDOR_CODE from TN_WM_IN_MST WHERE CN_S_STATE in ('" + Constants.State_Audit + "','" + Constants.State_BeenCheck + "')) T " + ConStr;
OperateResult result = new OperateResult();
return ExecutePagingResult(sql, searchModel.PageIndex, searchModel.PageSize, "", "");
}
public List GetFromInOrderDtl(string opNo)
{
string sql = "SELECT CN_S_OP_NO,CN_GUID,CN_S_CREATOR,CN_N_ROW_NO,CN_S_SERIAL_NO,CN_S_CREATOR_BY,CN_S_ITEM_CODE,CN_T_CREATE,CN_S_ITEM_NAME,CN_S_MODIFY,CN_C_IS_WARRANTY_PARTS,CN_S_MODIFY_BY,CN_S_MEASURE_UNIT,CN_T_MODIFY,CN_F_PURCHASE_PRICE,CN_F_RETAIL_PRICE,CN_S_ITEM_STATE,CN_S_LOT_CODE,CN_S_PRODUCTION_BATCH,CN_S_WO_NO,CN_T_OUTFACTORY,CN_T_PRODUCTION,(ISNULL(CN_F_QUANTITY,0)-ISNULL(CN_F_ADDUP_ARRIVAL_QTY,0)-ISNULL(CN_F_CLOSED_QTY,0)) CN_F_QUANTITY,CN_F_ADDUP_ARRIVAL_QTY,CN_S_STATE,CN_S_TRAY_CODE,CN_S_NOTE,CN_S_MSTGUID,CN_C_IS_VIRTUAL,cn_t_validity,CN_N_QGP,CN_N_QGP_UNIT,CN_N_PALLETIZING_QTY,CN_S_MODEL,CN_F_PLAN_PRICE,CN_F_PLAN_MONEY,CN_F_ACTUAL_PRICE,CN_F_ACTUAL_MONEY,CN_S_FIGURE_NO,CN_F_CLOSED_QTY FROM TN_WM_IN_DTL WHERE CN_S_OP_NO='" + opNo + "'";
List lstInOrder = ExecuteQuery(sql);
foreach (var item in lstInOrder)
{
string sqlqu = @"select ISNULL(CN_F_UNQUALIFIED,0) CN_F_UNQUALIFIED from (select CN_S_ITEM_CODE,SUM(CN_F_UNQUALIFIED) CN_F_UNQUALIFIED from tn_wm_inspect_dtl insdtl
left join tn_wm_inspect_mst insmst on insdtl.CN_S_INSPECT_NO=insmst.CN_S_INSPECT_NO
left join tn_wm_arrival_mst arrmst on arrmst.CN_S_ARRIVAL_NO=insmst.CN_S_FROM_NO
WHERE arrmst.CN_S_FROM_NO='" + opNo + @"' AND insmst.CN_S_STATE='已提交' group by CN_S_ITEM_CODE) A where
A.CN_S_ITEM_CODE='" + item.CN_S_ITEM_CODE + @"'";
DataTable dt = ExecuteDataTable(sqlqu);
if (dt.Rows.Count > 0)
{
item.CN_F_QUANTITY = item.CN_F_QUANTITY + Convert.ToDecimal(dt.Rows[0]["CN_F_UNQUALIFIED"].ToString());
}
item.CN_F_ORDER_QTY = item.CN_F_QUANTITY;
}
return lstInOrder;
}
#endregion
#region 查询到货单列表
///
/// 查询到货单列表
///
/// 实体
///
/// [HANHE(XDL)] CREATED BY 2018-12-18
public OperateResult GetInOrderList(SearchModel searchModel)
{
var condition = searchModel.SearchCondition;
string ConStr = "where 1=1 ";
if (condition != null)
{
if (!string.IsNullOrEmpty(condition.CN_S_OP_NO.ToString()))
{
ConStr = ConStr + " and CN_S_OP_NO like '%" + condition.CN_S_OP_NO + "%'";
}
string state = condition.CN_S_STATE.ToString();
if (!string.IsNullOrEmpty(state))
{
if (state.IndexOf(",") > 0)
{
state = "'" + state.Replace(",", "','") + "'";
ConStr = ConStr + " and CN_S_STATE in (" + state + ")";
}
else
{
ConStr = ConStr + " and CN_S_STATE='" + state + "'";
}
}
if (!string.IsNullOrEmpty(condition.CN_T_START.ToString()))
{
ConStr = ConStr + " and CN_T_CREATE >= '" + Util.ToStringInput(condition.CN_T_START) + " 00:00:00'";
}
if (!string.IsNullOrEmpty(condition.CN_T_END.ToString()))
{
ConStr = ConStr + " and CN_T_CREATE <= '" + Util.ToStringInput(condition.CN_T_END) + " 23:59:59'";
}
if (!string.IsNullOrEmpty(condition.CN_S_OP_TYPE.ToString()))
{
ConStr = ConStr + " and CN_S_OP_TYPE = '" + condition.CN_S_OP_TYPE + "'";
}
if (!string.IsNullOrEmpty(condition.CN_S_VENDOR_NAME.ToString()))
{
ConStr = ConStr + " and CN_S_VENDOR_NAME like '%" + condition.CN_S_VENDOR_NAME + "%'";
}
if (!string.IsNullOrEmpty(condition.IsHandWork.ToString()))
{
if (condition.IsHandWork.ToString() == "true" || condition.IsHandWork.ToString() == "True")
ConStr = ConStr + " and (CN_S_FROM_NO='' or CN_S_FROM_NO IS NULL) ";
else
ConStr = ConStr + " and (CN_S_FROM_NO!='' and CN_S_FROM_NO IS not NULL) ";
}
}
string sql = @"(select * from TN_WM_IN_MST ) T " + ConStr;
OperateResult result = new OperateResult();
return ExecutePagingResult(sql, searchModel.PageIndex, searchModel.PageSize, "", "");
}
#endregion
}
}