You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
DS7/DSWeb/Areas/TruckMng/DAL/MsWlBsCtn/MsWlBsCtnDAL.cs

1034 lines
46 KiB
C#

using System;
using System.Data;
using System.Collections.Generic;
using System.Text;
using DSWeb.Areas.CommMng.DAL;
using Microsoft.Practices.EnterpriseLibrary.Data;
using HcUtility.Comm;
using DSWeb.Areas.CommMng.Models;
using DSWeb.Areas.TruckMng.Models.MsWlBs;
using DSWeb.TruckMng.DAL.MsCustTruckFeeTemplate;
namespace DSWeb.Areas.TruckMng.DAL.MsWlBs
{
public partial class MsWlBsDAL
{
static public List<MsWlBsHead> GetPcBodyList(string condition, string sort = null)
{
var strSql = new StringBuilder();
strSql.Append("SELECT ");
strSql.Append("b.BillNo,b.LrDate,b.JzDate,b.UserCode,b.UserName,b.OrgCode,b.OrgName");
strSql.Append(",b.GId LogisticsNo,b.CustCode,b.CustName,b.CustName+'-'+b.BillNo as CustName_Ref");
//strSql.Append("(select CustName from vMsTruckClient where CustCode=tMsWlBsHead.CustCode) as CustName_Ref");
strSql.Append(",b.CustDate,b.VoyVeg,");
strSql.Append("(select VoyName from vMsTruckVoyInfo where VoyCode=b.VoyVeg) as VoyVeg_Ref");
strSql.Append(",b.EtDate,b.EndPortDate,b.MblNo,b.SalesCode,");
strSql.Append("(select top 1 UserName from vMsTruckUser where UserCode=b.SalesCode) as SalesCode_Ref");
strSql.Append(",b.SalesName,b.DispatchCode,");
strSql.Append("(select top 1 UserName from vMsTruckUser where UserCode=b.DispatchCode) as DispatchCode_Ref");
strSql.Append(",b.DispatchName,b.SendYardCode,");
strSql.Append("(select top 1 CustName from vMsTruckClient where CustCode=b.SendYardCode) as SendYardCode_Ref");
strSql.Append(",b.SendYardName,b.RtnYardCode,b.RtnYard,b.DstArea,b.DetiNation,b.DetiLinkTel,b.DetiLinkMan");
strSql.Append(",b.Remark,b.BsType,");
strSql.Append("(select EnumValueName from tSysEnumValue where LangId=0 and EnumTypeID=99025 and EnumValueID=b.BsType) as BsType_Ref");
strSql.Append(",b.BillStatus,");
strSql.Append("(select EnumValueName from tSysEnumValue where LangId=0 and EnumTypeID=99026 and EnumValueID=b.BillStatus) as BillStatus_Ref");
strSql.Append(",b.BsStatus,");
strSql.Append("(select EnumValueName from tSysEnumValue where LangId=0 and EnumTypeID=99029 and EnumValueID=b.BsStatus) as BsStatus_Ref");
strSql.Append(",b.FeeStatus,");
strSql.Append("(select EnumValueName from tSysEnumValue where LangId=0 and EnumTypeID=99027 and EnumValueID=b.FeeStatus) as FeeStatus_Ref");
strSql.Append(",d.GId, convert(bigint ,TimeMark) as TimeMark");
strSql.Append(",b.CustLikeManCode,b.CustLikeManName,b.CustTel");
strSql.Append(",b.NeadLoadDate,b.NeedArriveDate,b.BillRises1");
strSql.Append(",b.FeeOpStatus,");
strSql.Append("(select EnumValueName from tSysEnumValue where LangId=0 and EnumTypeID=99035 and EnumValueID=b.FeeOpStatus) as FeeOpStatus_Ref");
strSql.Append(",b.VoyVegSe,b.GoodsName");
strSql.Append(",0 pctype");//0派车 1未派车 用来对应费用颜色1录入状态无色 0审核通过绿色
strSql.Append(",dbo.f_bs_truckNo(b.billno) TruckNo,d.LINKGID CtnInfo");
strSql.Append(",b.PKGS,b.KINDPKGS,b.KGS,b.CBM");
strSql.Append(",0 PCPKGS,0 PCKGS,0 PCCBM,b.LoadPlace,b.FactoryAddr");
strSql.Append(",b.TRANSSTATUS,b.ORDERNO,b.CONTRACTNO,b.TEMPLATENAME,b.ISFEE,b.PORTLOAD,d.ContainerType,d.ContainerQty");
strSql.Append(" from tMsWlPcHead_detail d left join tMsWlBsHead b on (b.gid=d.LINKBSNO) ");
if (!string.IsNullOrEmpty(condition))
{
strSql.Append(" where " + condition);
}
var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sortstring))
{
strSql.Append(" order by " + sortstring);
}
else
{
strSql.Append(" order by b.LrDate desc ");
}
return SetPcBodyData(strSql);
}
private static List<MsWlBsHead> SetPcBodyData(StringBuilder strSql)
{
var headList = new List<MsWlBsHead>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
MsWlBsHead data = new MsWlBsHead();
#region Set DB data to Object
data.BillNo = Convert.ToString(reader["BillNo"]);
if (reader["LrDate"] != DBNull.Value)
data.LrDate = Convert.ToDateTime(Convert.ToDateTime(reader["LrDate"]).ToString("yyyy-MM-dd HH:mm:ss"));
if (reader["JzDate"] != DBNull.Value)
data.JzDate = Convert.ToDateTime(reader["JzDate"]);
data.ContainerType= Convert.ToString(reader["ContainerType"]);
if (reader["ContainerQty"] != DBNull.Value)
data.ContainerQty = Convert.ToString(reader["ContainerQty"]);
data.UserCode = Convert.ToString(reader["UserCode"]);
data.UserName = Convert.ToString(reader["UserName"]);
data.OrgCode = Convert.ToString(reader["OrgCode"]);
data.OrgName = Convert.ToString(reader["OrgName"]);
data.LogisticsNo = Convert.ToString(reader["LogisticsNo"]);
data.CustCode = Convert.ToString(reader["CustCode"]);
data.CustName = Convert.ToString(reader["CustName"]);
data.CustName_Ref = Convert.ToString(reader["CustName_Ref"]);
data.CustDate = Convert.ToString(reader["CustDate"]);
data.VoyVeg = Convert.ToString(reader["VoyVeg"]);
data.VoyVeg_Ref = Convert.ToString(reader["VoyVeg_Ref"]);
data.EtDate = Convert.ToString(reader["EtDate"]);
data.EndPortDate = Convert.ToString(reader["EndPortDate"]);
data.MblNo = Convert.ToString(reader["MblNo"]);
data.SalesCode = Convert.ToString(reader["SalesCode"]);
data.SalesCode_Ref = Convert.ToString(reader["SalesCode_Ref"]);
data.SalesName = Convert.ToString(reader["SalesName"]);
data.DispatchCode = Convert.ToString(reader["DispatchCode"]);
data.DispatchCode_Ref = Convert.ToString(reader["DispatchCode_Ref"]);
data.DispatchName = Convert.ToString(reader["DispatchName"]);
data.SendYardCode = Convert.ToString(reader["SendYardCode"]);
data.SendYardCode_Ref = Convert.ToString(reader["SendYardCode_Ref"]);
data.SendYardName = Convert.ToString(reader["SendYardName"]);
data.RtnYardCode = Convert.ToString(reader["RtnYardCode"]);
data.RtnYard = Convert.ToString(reader["RtnYard"]);
data.LoadPlace = Convert.ToString(reader["LoadPlace"]);
data.FactoryAddr = Convert.ToString(reader["FactoryAddr"]);
data.DstArea = Convert.ToString(reader["DstArea"]);
data.DetiNation = Convert.ToString(reader["DetiNation"]);
data.DetiLinkTel = Convert.ToString(reader["DetiLinkTel"]);
data.DetiLinkMan = Convert.ToString(reader["DetiLinkMan"]);
data.Remark = Convert.ToString(reader["Remark"]);
data.BsType = Convert.ToString(reader["BsType"]);
data.BsType_Ref = Convert.ToString(reader["BsType_Ref"]);
data.BillStatus = Convert.ToString(reader["BillStatus"]);
data.BillStatus_Ref = Convert.ToString(reader["BillStatus_Ref"]);
data.FeeStatus = Convert.ToString(reader["FeeStatus"]);
data.FeeStatus_Ref = Convert.ToString(reader["FeeStatus_Ref"]);
data.BsStatus = Convert.ToString(reader["BsStatus"]);
data.BsStatus_Ref = Convert.ToString(reader["BsStatus_Ref"]);
data.GId = Convert.ToString(reader["GId"]);
if (reader["TimeMark"] != DBNull.Value)
data.TimeMark = Convert.ToDecimal(reader["TimeMark"]);
data.CustLikeManCode = Convert.ToString(reader["CustLikeManCode"]);
data.CustLikeManName = Convert.ToString(reader["CustLikeManName"]);
data.CustTel = Convert.ToString(reader["CustTel"]);
data.NeadLoadDate = Convert.ToString(reader["NeadLoadDate"]);
data.NeedArriveDate = Convert.ToString(reader["NeedArriveDate"]);
data.BillRises1 = Convert.ToString(reader["BillRises1"]);
data.FeeOpStatus = Convert.ToString(reader["FeeOpStatus"]);
data.FeeOpStatus_Ref = Convert.ToString(reader["FeeOpStatus_Ref"]);
data.VoyVegSe = Convert.ToString(reader["VoyVegSe"]);
data.GoodsName = Convert.ToString(reader["GoodsName"]);
data.PcType = Convert.ToString(reader["PcType"]);
data.TruckNo = Convert.ToString(reader["TruckNo"]);
data.CtnInfo = Convert.ToString(reader["CtnInfo"]);
if (reader["PKGS"] != DBNull.Value)
data.PKGS = Convert.ToDecimal(reader["PKGS"]);
if (reader["KGS"] != DBNull.Value)
data.KGS = Convert.ToDecimal(reader["KGS"]);
if (reader["CBM"] != DBNull.Value)
data.CBM = Convert.ToDecimal(reader["CBM"]);
data.KINDPKGS = Convert.ToString(reader["KINDPKGS"]);
if (reader["PCPKGS"] != DBNull.Value)
data.PCPKGS = Convert.ToDecimal(reader["PCPKGS"]);
if (reader["PCKGS"] != DBNull.Value)
data.PCKGS = Convert.ToDecimal(reader["PCKGS"]);
if (reader["PCCBM"] != DBNull.Value)
data.PCCBM = Convert.ToDecimal(reader["PCCBM"]);
data.NPKGS = data.PKGS - data.PCPKGS;
data.NKGS = data.KGS - data.PCKGS;
data.NCBM = data.CBM - data.PCCBM;
data.TRANSSTATUS = Convert.ToString(reader["TRANSSTATUS"]);
data.ORDERNO = Convert.ToString(reader["ORDERNO"]);
data.CONTRACTNO = Convert.ToString(reader["CONTRACTNO"]);
data.TEMPLATENAME = Convert.ToString(reader["TEMPLATENAME"]);
data.ISFEE = Convert.ToString(reader["ISFEE"]);
data.PORTLOAD = Convert.ToString(reader["PORTLOAD"]);
#endregion
headList.Add(data);
}
reader.Close();
}
return headList;
}
public static DBResult CreateFeeDetail(MsWlBsHead headData, List<MsWlBsCtn> bodyList, string userid)
{
var result = new DBResult();
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
var cmdInsertFee =
db.GetSqlStringCommand(
@"INSERT INTO ch_fee(GID, BSNO, FEETYPE, FEENAME, FEEDESCRIPTION, CUSTOMERTYPE, CUSTOMERNAME, UNIT, UNITPRICE, QUANTITY, AMOUNT, CURRENCY,
EXCHANGERATE, REASON, REMARK, COMMISSIONRATE,ENTEROPERATOR, ENTERDATE,ISOPEN, ISADVANCEDPAY, SORT, FEESTATUS, FEEFRT,CARGO_GID,
TAXRATE,NOTAXAMOUNT,ACCTAXRATE,LINENUM,TAXUNITPRICE,MODIFIEDUSER,MODIFIEDTIME,WMSOUTBSNO,PREAMOUNT,ISINVOICE,INPUTMODE,LOCALCURR,MANAGER,ISACC)
VALUES(@GID,@BSNO,@FEETYPE,@FEENAME,@FEEDESCRIPTION,@CUSTOMERTYPE,@CUSTOMERNAME,@UNIT,@UNITPRICE,@QUANTITY,@AMOUNT,@CURRENCY,
@EXCHANGERATE, @REASON, @REMARK, @COMMISSIONRATE,@ENTEROPERATOR, @ENTERDATE,@ISOPEN, @ISADVANCEDPAY, @SORT, @FEESTATUS, @FEEFRT,@CARGO_GID,
@TAXRATE,@NOTAXAMOUNT,@ACCTAXRATE,@LINENUM,@TAXUNITPRICE,@MODIFIEDUSER,@MODIFIEDTIME,@WMSOUTBSNO,@PREAMOUNT,@ISINVOICE,@INPUTMODE,@LOCALCURR,@MANAGER,@ISACC)
");
var feetemplatelist = MsCustTruckFeeTempldateDAL.GetBodyList(" TEMPLATEID in (select gid from [Cust_Truck_feetemplate] where TEMPLATENAME='" + headData.TEMPLATENAME + "' and CONTRACTNO='" + headData.CONTRACTNO + "' and TRANTYPE='集装箱' )");
if (bodyList != null&& feetemplatelist.Count!=0)
{
foreach (var enumValue in bodyList)
{
decimal unitprice = 0;
foreach (var feetemplate in feetemplatelist)
{
if (feetemplate.UNIT == enumValue.ContainerType) unitprice = feetemplate.UNITPRICE;
}
if (headData.ISFEE != "1")
{
cmdInsertFee.Parameters.Clear();
db.AddInParameter(cmdInsertFee, "@GID", DbType.String, Guid.NewGuid().ToString());
db.AddInParameter(cmdInsertFee, "@BSNO", DbType.String, headData.GId);
db.AddInParameter(cmdInsertFee, "@FEETYPE", DbType.Int16, 1);
db.AddInParameter(cmdInsertFee, "@FEENAME", DbType.String, "陆运费");
db.AddInParameter(cmdInsertFee, "@FEEDESCRIPTION", DbType.String, "");
db.AddInParameter(cmdInsertFee, "@CUSTOMERTYPE", DbType.String, "委托单位");
db.AddInParameter(cmdInsertFee, "@CUSTOMERNAME", DbType.String, headData.CustName);
db.AddInParameter(cmdInsertFee, "@UNIT", DbType.String, enumValue.ContainerType);
db.AddInParameter(cmdInsertFee, "@UNITPRICE", DbType.Decimal, unitprice);
db.AddInParameter(cmdInsertFee, "@QUANTITY", DbType.Decimal, enumValue.ContainerQty);
db.AddInParameter(cmdInsertFee, "@AMOUNT", DbType.Decimal, unitprice* enumValue.ContainerQty);
db.AddInParameter(cmdInsertFee, "@CURRENCY", DbType.String, "RMB");
db.AddInParameter(cmdInsertFee, "@EXCHANGERATE", DbType.Decimal, 1);
db.AddInParameter(cmdInsertFee, "@REASON", DbType.String, "");
db.AddInParameter(cmdInsertFee, "@REMARK", DbType.String, "");
db.AddInParameter(cmdInsertFee, "@COMMISSIONRATE", DbType.Decimal, 0);
db.AddInParameter(cmdInsertFee, "@ENTEROPERATOR", DbType.String, userid);
db.AddInParameter(cmdInsertFee, "@ENTERDATE", DbType.String, DateTime.Now.ToString());
db.AddInParameter(cmdInsertFee, "@ISOPEN", DbType.Boolean, false);
db.AddInParameter(cmdInsertFee, "@ISADVANCEDPAY", DbType.Boolean, false);
db.AddInParameter(cmdInsertFee, "@SORT", DbType.Int16, 1);
db.AddInParameter(cmdInsertFee, "@FEESTATUS", DbType.Int16, 0);
db.AddInParameter(cmdInsertFee, "@FEEFRT", DbType.String, "PP");
db.AddInParameter(cmdInsertFee, "@CARGO_GID", DbType.String, headData.GId);
db.AddInParameter(cmdInsertFee, "@TAXRATE", DbType.Decimal, 0);
db.AddInParameter(cmdInsertFee, "@NOTAXAMOUNT", DbType.Decimal,unitprice* enumValue.ContainerQty);
db.AddInParameter(cmdInsertFee, "@ACCTAXRATE", DbType.Decimal, 0);
db.AddInParameter(cmdInsertFee, "@LINENUM", DbType.Int16, 1);
db.AddInParameter(cmdInsertFee, "@TAXUNITPRICE", DbType.Decimal, unitprice);
db.AddInParameter(cmdInsertFee, "@MODIFIEDUSER", DbType.String, userid);
db.AddInParameter(cmdInsertFee, "@MODIFIEDTIME", DbType.String, DateTime.Now.ToString());
db.AddInParameter(cmdInsertFee, "@WMSOUTBSNO", DbType.String, "");
db.AddInParameter(cmdInsertFee, "@PREAMOUNT", DbType.Decimal, 0);
db.AddInParameter(cmdInsertFee, "@ISINVOICE", DbType.Boolean, false);
db.AddInParameter(cmdInsertFee, "@INPUTMODE", DbType.String, "");
db.AddInParameter(cmdInsertFee, "@LOCALCURR", DbType.String, "RMB");
db.AddInParameter(cmdInsertFee, "@MANAGER", DbType.String, "");
db.AddInParameter(cmdInsertFee, "@ISACC", DbType.Boolean, false);
db.ExecuteNonQuery(cmdInsertFee, tran);
var cmdUpdateBL =
db.GetSqlStringCommand(
@"update tMsWlBsHead set ISFEE='1' where BillNo=@BillNo ");
cmdUpdateBL.Parameters.Clear();
db.AddInParameter(cmdUpdateBL, "@BillNo", DbType.String,headData.BillNo);
db.ExecuteNonQuery(cmdUpdateBL, tran);
}
}
}
tran.Commit();
}
catch (Exception e)
{
tran.Rollback();
result.Success = false;
result.Message = "生成费用出现错误,请重试或联系系统管理员" + e.Message;
return result;
}
}
result.Success = true;
result.Message = "生成成功";
return result;
}
public static DBResult DelCreateFee(MsWlBsHead headData, string userid)
{
var result = new DBResult();
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
if (headData.ISFEE == "1")
{
var cmdDelFee =
db.GetSqlStringCommand(
@"delete from ch_fee where BSNO=@BSNO and CARGO_GID=@CARGO_GID ");
cmdDelFee.Parameters.Clear();
db.AddInParameter(cmdDelFee, "@BSNO", DbType.String, headData.GId);
db.AddInParameter(cmdDelFee, "@CARGO_GID", DbType.String, headData.GId);
db.ExecuteNonQuery(cmdDelFee, tran);
var cmdUpdateBL =
db.GetSqlStringCommand(
@"update tMsWlBsHead set ISFEE='0' where BillNo=@BillNo ");
cmdUpdateBL.Parameters.Clear();
db.AddInParameter(cmdUpdateBL, "@BillNo", DbType.String, headData.BillNo);
db.ExecuteNonQuery(cmdUpdateBL, tran);
}
tran.Commit();
}
catch (Exception e)
{
tran.Rollback();
result.Success = false;
result.Message = "生成费用出现错误,请重试或联系系统管理员" + e.Message;
return result;
}
}
result.Success = true;
result.Message = "生成成功";
return result;
}
public static DBResult DeletetruckDetail(MsWlBsHead bodyList)
{
var result = new DBResult();
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
//if (bodyList != null)
//{
// foreach (var enumValue in bodyList)
// {
var cmdDelete = db.GetSqlStringCommand("delete from tMsWlPcHead_detail where GID='" + bodyList.GId + "'");
db.ExecuteNonQuery(cmdDelete, tran);
// }
//}
var cmdUpdate =
db.GetSqlStringCommand(
@"update tMsWlBsCtn set PCQTY=isnull(PCQTY,0)-@PCQTY where GID=@GID ");
cmdUpdate.Parameters.Clear();
db.AddInParameter(cmdUpdate, "@GID", DbType.String, bodyList.CtnInfo);
db.AddInParameter(cmdUpdate, "@PCQTY", DbType.Decimal, bodyList.ContainerQty);
db.ExecuteNonQuery(cmdUpdate, tran);
tran.Commit();
}
catch (Exception e)
{
tran.Rollback();
result.Success = false;
result.Message = "删除出现错误,请重试或联系系统管理员" + e.Message;
return result;
}
}
result.Success = true;
result.Message = "删除成功";
return result;
}
public static bool GetFeeCount(string BSNO, string condition = "")
{
var isfee = false;
String strSql = "Select count(*) as count from ch_fee where BSNO='" + BSNO + "'";
if (condition != "")
strSql = strSql + " and " + condition;
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql))
{
while (reader.Read())
{
var evData = Convert.ToInt32(reader["count"]);
if (evData > 0) { isfee = true; };
}
reader.Close();
}
return isfee;
}
public static DBResult AddBill(MsWlPcHead_WFSDEdit headData, List<MsWlBsHead> bodyList, string userid)
{
var result = new DBResult();
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
var cmdInsert =
db.GetSqlStringCommand(
@"insert into tMsWlPcHead_detail (GID,BSNO,LINKGID,LINKBSNO,ContainerType,ContainerQty,CREATEUSER,CREATETIME)
values (@GID,@BSNO,@LINKGID,@LINKBSNO,@ContainerType,@ContainerQty,@CREATEUSER,@CREATETIME) ");
var cmdUpdate =
db.GetSqlStringCommand(
@"update tMsWlBsCtn set PCQTY=isnull(PCQTY,0)+@PCQTY where GID=@GID ");
//var cmdUpdatePc =
// db.GetSqlStringCommand(
// @"update op_truck_bulk_pc set PKGS=isnull((SELECT SUM(PKGS) FROM op_truck_bulk_pc_detail where BSNO=B.BSNO),0),KGS=isnull((SELECT SUM(KGS) FROM op_truck_bulk_pc_detail where BSNO=B.BSNO),0),
//CBM=isnull((SELECT SUM(CBM) FROM op_truck_bulk_pc_detail where BSNO=B.BSNO),0) from op_truck_bulk_pc B where BSNO=@BSNO ");
if (bodyList != null)
{
foreach (var bulk in bodyList)
{
var detaillist = GetCtnBodyList("BillNo='" + bulk.GId + "' and ISNULL(PCQTY,0)<>ContainerQty ");
if (detaillist != null)
{
foreach (var enumValue in detaillist)
{
cmdInsert.Parameters.Clear();
var GID = Guid.NewGuid().ToString();
db.AddInParameter(cmdInsert, "@GID", DbType.String, GID);
db.AddInParameter(cmdInsert, "@BSNO", DbType.String, headData.BillNo);
db.AddInParameter(cmdInsert, "@LINKGID", DbType.String, enumValue.GID);
db.AddInParameter(cmdInsert, "@LINKBSNO", DbType.String, enumValue.BillNo);
var pkgs = enumValue.ContainerQty-enumValue.PCQTY;
if (pkgs < 0) pkgs = 0;
db.AddInParameter(cmdInsert, "@ContainerQty", DbType.Decimal, pkgs);
db.AddInParameter(cmdInsert, "@ContainerType", DbType.String, enumValue.ContainerType);
db.AddInParameter(cmdInsert, "@CREATEUSER", DbType.String, userid);
db.AddInParameter(cmdInsert, "@CREATETIME", DbType.String, DateTime.Now.ToString());
db.ExecuteNonQuery(cmdInsert, tran);
cmdUpdate.Parameters.Clear();
db.AddInParameter(cmdUpdate, "@GID", DbType.String, enumValue.GID);
db.AddInParameter(cmdUpdate, "@PCQTY", DbType.Decimal, pkgs);
db.ExecuteNonQuery(cmdUpdate, tran);
}
}
}
//cmdUpdatePc.Parameters.Clear();
//db.AddInParameter(cmdUpdatePc, "@BSNO", DbType.String, headData.BSNO);
//db.ExecuteNonQuery(cmdUpdatePc, tran);
}
tran.Commit();
}
catch (Exception e)
{
tran.Rollback();
result.Success = false;
result.Message = "添加过程出现错误,请重试或联系系统管理员" + e.Message;
return result;
}
}
result.Success = true;
result.Message = "添加成功";
return result;
}
public static DBResult AddDetail(MsWlPcHead_WFSDEdit headData, List<MsWlBsCtn> bodyList, string userid)
{
var result = new DBResult();
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
var cmdInsert =
db.GetSqlStringCommand(
@"insert into tMsWlPcHead_detail (GID,BSNO,LINKGID,LINKBSNO,ContainerType,ContainerQty,CREATEUSER,CREATETIME)
values (@GID,@BSNO,@LINKGID,@LINKBSNO,@ContainerType,@ContainerQty,@CREATEUSER,@CREATETIME) ");
var cmdUpdate =
db.GetSqlStringCommand(
@"update tMsWlBsCtn set PCQTY=isnull(PCQTY,0)+@PCQTY where GID=@GID ");
//var cmdUpdatePc =
// db.GetSqlStringCommand(
// @"update op_truck_bulk_pc set PKGS=isnull((SELECT SUM(PKGS) FROM op_truck_bulk_pc_detail where BSNO=B.BSNO),0),KGS=isnull((SELECT SUM(KGS) FROM op_truck_bulk_pc_detail where BSNO=B.BSNO),0),
//CBM=isnull((SELECT SUM(CBM) FROM op_truck_bulk_pc_detail where BSNO=B.BSNO),0) from op_truck_bulk_pc B where BSNO=@BSNO ");
if (bodyList != null)
{
foreach (var enumValue in bodyList)
{
var GID = enumValue.GID;
cmdInsert.Parameters.Clear();
GID = Guid.NewGuid().ToString();
db.AddInParameter(cmdInsert, "@GID", DbType.String, GID);
db.AddInParameter(cmdInsert, "@BSNO", DbType.String, headData.BillNo);
db.AddInParameter(cmdInsert, "@LINKGID", DbType.String, enumValue.GID);
db.AddInParameter(cmdInsert, "@LINKBSNO", DbType.String, enumValue.BillNo);
var pkgs =enumValue.NPCQTY;
if (pkgs < 0) pkgs = 0;
db.AddInParameter(cmdInsert, "@ContainerQty", DbType.Decimal, pkgs);
db.AddInParameter(cmdInsert, "@ContainerType", DbType.String, enumValue.ContainerType);
db.AddInParameter(cmdInsert, "@CREATEUSER", DbType.String, userid);
db.AddInParameter(cmdInsert, "@CREATETIME", DbType.String, DateTime.Now.ToString());
db.ExecuteNonQuery(cmdInsert, tran);
cmdUpdate.Parameters.Clear();
db.AddInParameter(cmdUpdate, "@GID", DbType.String, enumValue.GID);
db.AddInParameter(cmdUpdate, "@PCQTY", DbType.Decimal, enumValue.NPCQTY);
db.ExecuteNonQuery(cmdUpdate, tran);
}
//cmdUpdatePc.Parameters.Clear();
//db.AddInParameter(cmdUpdatePc, "@BSNO", DbType.String, headData.BSNO);
//db.ExecuteNonQuery(cmdUpdatePc, tran);
}
tran.Commit();
}
catch (Exception e)
{
tran.Rollback();
result.Success = false;
result.Message = "添加过程出现错误,请重试或联系系统管理员" + e.Message;
return result;
}
}
result.Success = true;
result.Message = "添加成功";
return result;
}
//public static DBResult DeletetruckBulkDetail(MsOpTruckBulkPcDetail bodyList)
//{
// var result = new DBResult();
// Database db = DatabaseFactory.CreateDatabase();
// using (var conn = db.CreateConnection())
// {
// conn.Open();
// var tran = conn.BeginTransaction();
// try
// {
// //if (bodyList != null)
// //{
// // foreach (var enumValue in bodyList)
// // {
// var cmdDelete = db.GetSqlStringCommand("delete from op_truck_bulk_pc_detail where GID='" + bodyList.GID + "'");
// db.ExecuteNonQuery(cmdDelete, tran);
// // }
// //}
// var cmdUpdate =
// db.GetSqlStringCommand(
// @"update op_truck_bulk_detail set PCPKGS=isnull(PCPKGS,0)-@PKGS,PCKGS=isnull(PCKGS,0)-@KGS,PCCBM=isnull(PCCBM,0)-@CBM where GID=@GID ");
// cmdUpdate.Parameters.Clear();
// db.AddInParameter(cmdUpdate, "@GID", DbType.String, bodyList.LINKGID);
// db.AddInParameter(cmdUpdate, "@PKGS", DbType.Decimal, bodyList.PKGS);
// db.AddInParameter(cmdUpdate, "@KGS", DbType.Decimal, bodyList.KGS);
// db.AddInParameter(cmdUpdate, "@CBM", DbType.Decimal, bodyList.CBM);
// db.ExecuteNonQuery(cmdUpdate, tran);
// tran.Commit();
// }
// catch (Exception e)
// {
// tran.Rollback();
// result.Success = false;
// result.Message = "删除出现错误,请重试或联系系统管理员" + e.Message;
// return result;
// }
// }
// result.Success = true;
// result.Message = "删除成功";
// return result;
//}
public static DBResult UpTransStatus(List<MsWlPcHead_WFSDEdit> boday, string status)
{
var result = new DBResult();
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
var errmsg = "";
if (boday != null)
{
var cmdupdate = db.GetSqlStringCommand("update tMsWlPcHead set TRANSSTATUS=@TRANSSTATUS where GID=@GID");
foreach (var enumValue in boday)
{
cmdupdate.Parameters.Clear();
db.AddInParameter(cmdupdate, "@TRANSSTATUS", DbType.String, status);
db.AddInParameter(cmdupdate, "@GID", DbType.String, enumValue.gId);
db.ExecuteNonQuery(cmdupdate, tran);
}
}
result = new DBResult();
result.Success = true;
result.Message = "更新完成";
tran.Commit();
}
catch (Exception e)
{
tran.Rollback();
result.Success = false;
result.Message = "更新出现错误,请重试或联系系统管理员";
return result;
}
}
return result;
}
public static int p_update_status(string bsno)
{
Database db = DatabaseFactory.CreateDatabase();
var cmd = db.GetStoredProcCommand("p_update_WlBsHead");
db.AddInParameter(cmd, "@con_no", DbType.String, bsno);
db.ExecuteNonQuery(cmd);
return 0;
}
#region 审核和撤销审核
public static DBResult SubmitAudit(String USERID, List<MsWlBsHead> bodyList)
{
var result = new DBResult();
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
if (bodyList != null)
{
foreach (var enumValue in bodyList)
{
if (enumValue.TEMPLATENAME != "")
{
var cmdupdate = db.GetSqlStringCommand("update tMsWlBsHead set TRANSSTATUS='审核通过' where BillNo=@BillNo");
cmdupdate.Parameters.Clear();
db.AddInParameter(cmdupdate, "@BillNo", DbType.String, enumValue.BillNo);
db.ExecuteNonQuery(cmdupdate, tran);
result = new DBResult();
result.Success = true;
result.Message = "提交审核成功";
}
else
{
Resultmb WorkResult = WorkFlowDAL.WorkFlowStart("OpTruckBulkAudit", enumValue.BillNo, USERID,enumValue.BillNo,enumValue.BillNo,"");
if (WorkResult.Success == true)
{
var cmdupdate = db.GetSqlStringCommand("BillNo=@BillNo");
if (WorkResult.islast == true)
{
cmdupdate = db.GetSqlStringCommand("update tMsWlBsHead set TRANSSTATUS='审核通过' where BillNo=@BillNo");
}
else
{
cmdupdate = db.GetSqlStringCommand("update tMsWlBsHead set TRANSSTATUS='提交审核' where BillNo=@BillNo");
}
cmdupdate.Parameters.Clear();
db.AddInParameter(cmdupdate, "@BillNo", DbType.String, enumValue.BillNo);
db.ExecuteNonQuery(cmdupdate, tran);
result = new DBResult();
result.Success = true;
result.Message = "提交审核成功";
}
else
{
result = new DBResult();
result.Success = false;
result.Message = "提交审核错误,请检查工作流!";
}
}
}
}
//if (result.Success != false)
//{
// result = new DBResult();
// result.Success = true;
// result.Message = "提交审核成功";
//}
tran.Commit();
}
catch (Exception e)
{
tran.Rollback();
result.Success = false;
result.Message = "提交审核错误,请重试或联系系统管理员 " + e.Message;
return result;
}
}
return result;
}
public static DBResult SubmitAuditBack(String USERID, List<MsWlBsHead> bodyList)
{
var result = new DBResult();
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
if (bodyList != null)
{
foreach (var enumValue in bodyList)
{
if (enumValue.TEMPLATENAME != "")
{
var cmdupdate = db.GetSqlStringCommand("update tMsWlBsHead set TRANSSTATUS='新增' where BillNo=@BillNo");
cmdupdate.Parameters.Clear();
db.AddInParameter(cmdupdate, "@BillNo", DbType.String, enumValue.BillNo);
db.ExecuteNonQuery(cmdupdate, tran);
result = new DBResult();
result.Success = true;
result.Message = "撤销提交成功";
}
else
{
Resultmb WorkResult = WorkFlowDAL.WorkFlowReset("OpTruckBulkAudit", enumValue.BillNo, USERID);
if (WorkResult.Success == true)
{
var cmdupdate = db.GetSqlStringCommand("update tMsWlBsHead set TRANSSTATUS='新增' where BillNo=@BillNo");
cmdupdate.Parameters.Clear();
db.AddInParameter(cmdupdate, "@BillNo", DbType.String, enumValue.BillNo);
db.ExecuteNonQuery(cmdupdate, tran);
result = new DBResult();
result.Success = true;
result.Message = "撤销提交成功";
}
else
{
result = new DBResult();
result.Success = false;
result.Message = "不允许撤回提交!";
}
}
}
}
tran.Commit();
}
catch (Exception)
{
tran.Rollback();
result.Success = false;
result.Message = "撤销提交错误,请重试或联系系统管理员";
return result;
}
}
return result;
}
public static DBResult AuditList(List<MsWlBsHead> boday, String USERID)
{
var result = new DBResult();
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
var errmsg = "";
if (boday != null)
{
var cmdupdate = db.GetSqlStringCommand("update tMsWlBsHead set TRANSSTATUS='审核通过' where BillNo=@BillNo");
// var cmdupdate2 = db.GetSqlStringCommand("update op_truck_bulk set AUDITUSER='" + USERID + "',AUDITTIME='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "' where BSNO=@BSNO");
foreach (var enumValue in boday)
{
Resultmb WorkResult = WorkFlowDAL.InsertWorkFlowDo("OpTruckBulkAudit", enumValue.BillNo, USERID, tran,enumValue.BillNo);
if (WorkResult.Success == true)
{
if (WorkResult.islast == true)
{
cmdupdate.Parameters.Clear();
db.AddInParameter(cmdupdate, "@BillNo", DbType.String, enumValue.BillNo);
db.ExecuteNonQuery(cmdupdate, tran);
}
else
{
//cmdupdate2.Parameters.Clear();
//db.AddInParameter(cmdupdate2, "@BSNO", DbType.String, enumValue.BSNO);
//db.ExecuteNonQuery(cmdupdate2, tran);
}
}
}
}
result = new DBResult();
result.Success = true;
result.Message = "审核通过";
tran.Commit();
}
catch (Exception e)
{
tran.Rollback();
result.Success = false;
result.Message = "审核出现错误,请重试或联系系统管理员";
return result;
}
}
return result;
}
public static DBResult AuditBackList(List<MsWlBsHead> boday, String USERID, string reason)
{
var result = new DBResult();
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
if (boday != null)
{
var cmdupdate = db.GetSqlStringCommand("update tMsWlBsHead set TRANSSTATUS='驳回提交' where BillNo=@BillNo");
foreach (var enumValue in boday)
{
if (enumValue.TRANSSTATUS == "提交审核" || enumValue.TRANSSTATUS == "审核通过")
{
if (enumValue.TEMPLATENAME != "")
{
cmdupdate.Parameters.Clear();
db.AddInParameter(cmdupdate, "@BillNo", DbType.String, enumValue.BillNo);
db.ExecuteNonQuery(cmdupdate, tran);
}
else
{
Resultmb WorkResult = WorkFlowDAL.DeleteWorkFlowDo("OpTruckBulkAudit", enumValue.BillNo, USERID, reason, enumValue.BillNo, enumValue.BillNo, "驳回提交URL");
if (WorkResult.Success == true)
{
cmdupdate.Parameters.Clear();
db.AddInParameter(cmdupdate, "@BillNo", DbType.String, enumValue.BillNo);
db.ExecuteNonQuery(cmdupdate, tran);
}
}
}
}
}
result = new DBResult();
result.Success = true;
result.Message = "完成驳回";
tran.Commit();
}
catch (Exception)
{
tran.Rollback();
result.Success = false;
result.Message = "驳回出现错误,请重试或联系系统管理员";
return result;
}
}
result.Success = true;
result.Message = "完成驳回";
return result;
}
#endregion
}
}