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/MvcContainer/DAL/MsOpCtnr/MsOpCtnrDAL.cs

2211 lines
99 KiB
C#

using System;
using System.Data;
using System.Collections.Generic;
using System.Text;
using Microsoft.Practices.EnterpriseLibrary.Data;
using DSWeb.Areas.CommMng.Models;
using HcUtility.Comm;
using DSWeb.Areas.CommMng.DAL;
using DSWeb.MvcShipping.Helper;
using System.Data.SqlClient;
using DSWeb.DataAccess;
using DSWeb.EntityDA;
using DSWeb.MvcContainer.Models.MsOpCtnr;
using DSWeb.MvcShipping.Helper.Repository;
using HcUtility.Core;
using DSWeb.MvcShipping.DAL.MsOpSeaeDAL;
using DSWeb.MvcShipping.Models.MsChFee;
using DSWeb.MvcShipping.DAL.MsChFeeDAL;
using DSWeb.Areas.MvcShipping.DAL;
using DSWeb.MvcShipping.Models.MsOpAmend;
using DSWeb.MvcShipping.DAL.ChMonthCloseDAL;
using DSWeb.MvcShipping.Models.MsOpSeae;
namespace DSWeb.MvcContainer.DAL.MsOpCtnrDAL
{
public class MsOpCtnrDAL
{
static public List<CtnrList> GetDataList(string strCondition, int start, int limit, string userid, string username, string companyid, out int total, string sort = null)
{
var rangstr = GetRangDAStr("index", userid, username, companyid);
if (!string.IsNullOrEmpty(rangstr))
{
if (!string.IsNullOrEmpty(strCondition))
{
strCondition = strCondition + " and " + rangstr;
}
else
{
strCondition = rangstr;
}
}
var strSql = new StringBuilder();
strSql.Append(@"select ");
strSql.Append(" BSNO,BLTYPE,BSSTATUS,CUSTNO, ");
strSql.Append(" BILLNO,CUSTOMERNAME,CNTRSOURCE,PORT,YARD,[MBLNO],[BSSOURCE],[BSSOURCEDETAIL],[VESSEL],[VOYNO],[ETD],[SALE],[PORTLOAD],[PORTDISCHARGE],[BillFeeStatus],[SALECORPID],");
strSql.Append(" convert(char(10),BSDATE,20) AS BSDATE,convert(char(10),ACCDATE,20) AS ACCDATE,");
strSql.Append(" OP,CORPID,DRFEENAME,CRFEENAME,REMARK,FEESTATUS,RETURNTYPE,RETURNDATE,RETURNYARD,");
strSql.Append("(SELECT top 1 SHOWNAME FROM dbo.[user] WHERE(GID = CREATEUSER)) AS CREATEUSER,");
strSql.Append("(SELECT top 1 SHOWNAME FROM dbo.[user] WHERE(GID = MODIFIEDUSER)) AS MODIFIEDUSER,");
strSql.Append("dbo.F_GetBillDrFeeStatus(BSNO) DRFEESTATUS,(CASE BSSTATUS WHEN 1 THEN '锁定' else '未锁定' end) as BSSTATUSREF ,");
strSql.Append("dbo.F_GetBillCrFeeStatus(BSNO) CRFEESTATUS,(CASE FEESTATUS WHEN 1 THEN '锁定' else '未锁定' end) as FEESTATUSREF,");
//strSql.Append("CASE FEESTATUS WHEN 0 THEN '未锁定' ELSE '已锁定' END AS FEESTATUS,");
strSql.Append(" convert(char(10),CREATETIME,20) AS CREATETIME,convert(char(10),MODIFIEDTIME,20) AS MODIFIEDTIME,CNTRTOTAL ");
strSql.Append(",(CASE ISCREATEFEE WHEN 1 THEN '是' ELSE '' END) ISCREATEFEEREF,OWNERCTN,ENDRENTDATE ");
strSql.Append(",CREATEBSFEE,(CASE CREATEBSFEE WHEN 1 THEN '是' ELSE '' END) CREATEBSFEEREF ");
strSql.Append(" from op_ctnmng where 1=1 ");
if (!string.IsNullOrEmpty(strCondition))
{
strSql.Append(" and " + strCondition);
}
if (!string.IsNullOrEmpty(sort))
{
var so = JsonConvert.Deserialize<List<SortObject>>(sort);
string orderbyStr = " order by ";
foreach (var s in so)
{
orderbyStr += s.property + " " + s.direction + ",";
}
orderbyStr = orderbyStr.Substring(0, orderbyStr.Length - 1);
strSql.Append(orderbyStr);
}
else
{
strSql.Append(" order by BSDATE DESC ");
}
int totalCount = 0;
StringBuilder sb = PagerHelper.PageSQL(strSql.ToString(), start, limit, out totalCount);
total = totalCount;
return SetData(sb);
}
private static List<CtnrList> SetData(StringBuilder strSql)
{
var headList = new List<CtnrList>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
CtnrList data = new CtnrList();
#region Set DB data to Object
data.BSNO = reader["BSNO"].ToString();
data.BLTYPE = reader["BLTYPE"].ToString();
data.BSSTATUS = Convert.ToBoolean((reader["BSSTATUS"]));
data.FEESTATUS = Convert.ToBoolean((reader["FEESTATUS"]));
data.BSSTATUSREF = Convert.ToString(reader["BSSTATUSREF"]);// 业务状态
data.FEESTATUSREF = Convert.ToString(reader["FEESTATUSREF"]);// 费用状态
data.DRFEESTATUS = getfeestatus(Convert.ToString(reader["DRFEESTATUS"]));
data.CRFEESTATUS = getfeestatus(Convert.ToString(reader["CRFEESTATUS"]));
data.CUSTNO = reader["CUSTNO"].ToString();
data.BILLNO = reader["BILLNO"].ToString();
data.CUSTNO = reader["CUSTNO"].ToString();
data.BILLNO = reader["BILLNO"].ToString();
data.CUSTOMERNAME = reader["CUSTOMERNAME"].ToString();
data.CNTRSOURCE = reader["CNTRSOURCE"].ToString();
data.BSDATE = reader["BSDATE"].ToString();
data.ACCDATE = reader["ACCDATE"].ToString();
data.OP = reader["OP"].ToString();
data.CORPID = reader["CORPID"].ToString();
data.PORT = reader["PORT"].ToString();
data.YARD = reader["YARD"].ToString();
data.DRFEENAME = reader["DRFEENAME"].ToString();
data.CRFEENAME = reader["CRFEENAME"].ToString();
data.REMARK = reader["REMARK"].ToString();
data.CREATEUSER = reader["CREATEUSER"].ToString();
data.CREATETIME = reader["CREATETIME"].ToString();
data.MODIFIEDUSER = reader["MODIFIEDUSER"].ToString();
data.MODIFIEDTIME = reader["MODIFIEDTIME"].ToString();
data.MBLNO = reader["MBLNO"].ToString();
data.BSSOURCE = reader["BSSOURCE"].ToString();
data.BSSOURCEDETAIL = reader["BSSOURCEDETAIL"].ToString();
data.VESSEL = reader["VESSEL"].ToString();
data.VOYNO = reader["VOYNO"].ToString();
if (reader["ETD"] != DBNull.Value)
data.ETD = Convert.ToDateTime(reader["ETD"]).ToString("yyyy-MM-dd");//到港日期
data.SALE = reader["SALE"].ToString();
data.PORTLOAD = reader["PORTLOAD"].ToString();
data.PORTDISCHARGE = reader["PORTDISCHARGE"].ToString();
data.BillFeeStatus = reader["BillFeeStatus"].ToString();
data.SALECORPID = reader["SALECORPID"].ToString();
if (reader["RETURNDATE"] != DBNull.Value)
data.RETURNDATE = Convert.ToDateTime(reader["RETURNDATE"]).ToString("yyyy-MM-dd");//到港日期
data.RETURNTYPE = reader["RETURNTYPE"].ToString();
data.CNTRTOTAL = reader["CNTRTOTAL"].ToString();
data.ISCREATEFEEREF = reader["ISCREATEFEEREF"].ToString();
data.RETURNYARD = reader["RETURNYARD"].ToString();
data.OWNERCTN = reader["OWNERCTN"].ToString();
if (reader["ENDRENTDATE"] != DBNull.Value)
data.ENDRENTDATE = Convert.ToDateTime(reader["ENDRENTDATE"]).ToString("yyyy-MM-dd");
data.CREATEBSFEEREF = reader["CREATEBSFEEREF"].ToString();
#endregion
headList.Add(data);
}
reader.Close();
}
return headList;
}
public static List<CtnrDyDetail> GetDynaList(string strCondition, string sort)
{
var strSql = new StringBuilder();
strSql.Append(" select GID,CTNGID,CNTRNO,CTNSTATUS,BSSTATUS,FEESTATUS,");
strSql.Append("convert(char(10),CTNSTATUSTIME,20) AS CTNSTATUSTIME,TRANSTYPE, ");
strSql.Append("PORT,YARD,CTNEF,CUSTNO,MBLNO,REMARK,CREATEUSER,CREATETIME,MODIFYTIME,MODIFYUSER ");
strSql.Append(",(CASE CTNEF WHEN 'F' THEN '重' ELSE '空' END) CTNEFREF,[BSNO],[ETD],[ETA]");
strSql.Append(",[PORTLOAD_STATOIN],[PORTLOAD_CNT_TIME],[PORTLOAD],[PORTLOAD_FREE_DAYS],[PORTLOAD_OVER_DAYS]");
strSql.Append(",[PORTLOAD_OVER_DAYS_FEE],[PORTLOAD_OVER_DAYS_AMT],[DESTPORT],[DEST_CNT_TIME],[DEST_RTCNT_TIME],[DESTPORT_STATOIN]");
strSql.Append(",[DESTPORT_FREE_DAYS],[DESTPORT_OVER_DAYS],[DESTPORT_OVER_DAYS_FEE],[DESTPORT_OVER_DAYS_AMT],[AGENTNAME]");
strSql.Append(",[VESSEL],[VOYNO],[HBLNO],(select ShowName from [user] where GID=op_ctnmng_ctnstatus.CREATEUSER) as CREATEUSERREF ");
strSql.Append(",(select ShowName from [user] where GID=op_ctnmng_ctnstatus.MODIFYUSER) as MODIFYUSERREF ");
strSql.Append(",dbo.F_GetBillDrFeeStatus(GID) DRFEESTATUS,(CASE BSSTATUS WHEN 1 THEN '锁定' else '未锁定' end) as BSSTATUSREF ");
strSql.Append(",dbo.F_GetBillCrFeeStatus(GID) CRFEESTATUS,(CASE FEESTATUS WHEN 1 THEN '锁定' else '未锁定' end) as FEESTATUSREF");
strSql.Append(",(select CTNALL from op_ctnmng_ctndetail where CTNGID=op_ctnmng_ctnstatus.CTNGID) as CTNALL ");
strSql.Append(",ACCDATE,OP,CORPID,SALECORPID,CREATEBSFEE,(CASE CREATEBSFEE WHEN 1 THEN '是' ELSE '' END) CREATEBSFEEREF ");
strSql.Append(" FROM op_ctnmng_ctnstatus ");
if (!string.IsNullOrEmpty(strCondition))
{
strSql.Append(" where " + strCondition.Replace("~", ""));
}
var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sortstring))
{
strSql.Append(" order by " + sortstring);
}
else
{
strSql.Append(" order by MODIFYTIME DESC ");
}
return SetCtnrDyDetailData(strSql);
}
static public CtnrDyDetail GetDyna(string condition)
{
CtnrDyDetail data = null;
var list = GetDynaList(condition, "");
if (list.Count > 0)
data = list[0];
if (data == null)
{
data = new CtnrDyDetail();
}
return data;
}
static public CtnrDyDetail SetDynaStatus(CtnrDyDetail headData)
{
if (!string.IsNullOrEmpty(headData.DEST_RTCNT_TIME) && (Convert.ToDateTime(headData.DEST_RTCNT_TIME) < DateTime.Now))
{
// data.CUR_PORT = data.I_DESTPORT + "已还箱-闲置";
headData.CTNEF = "E";
headData.CTNSTATUS = "已还箱";
headData.CTNSTATUSTIME = headData.DEST_RTCNT_TIME;
headData.PORT = headData.DESTPORT;
headData.YARD = headData.DESTPORT_STATOIN;
}
else if (!string.IsNullOrEmpty(headData.DEST_CNT_TIME)&& (Convert.ToDateTime(headData.DEST_CNT_TIME) < DateTime.Now))
{
// data.CUR_PORT = data.I_DESTPORT + "已还箱-闲置";
headData.CTNSTATUS = "待还箱";
headData.CTNSTATUSTIME = headData.DEST_CNT_TIME;
headData.PORT = headData.DESTPORT;
headData.YARD = headData.DESTPORT_STATOIN;
}
else if (!string.IsNullOrEmpty(headData.ETA)&& (Convert.ToDateTime(headData.ETA) < DateTime.Now))
{
// data.CUR_PORT = data.I_DESTPORT + "已还箱-闲置";
headData.CTNSTATUS = "待提箱";
headData.CTNSTATUSTIME = headData.ETA;
headData.PORT = headData.DESTPORT;
headData.YARD = headData.DESTPORT_STATOIN;
}
else if (!string.IsNullOrEmpty(headData.ETD)&& (Convert.ToDateTime(headData.ETD) < DateTime.Now))
{
// data.CUR_PORT = data.I_DESTPORT + "已还箱-闲置";
headData.CTNSTATUS = "已开船";
headData.CTNSTATUSTIME = headData.ETD;
headData.PORT = headData.PORTLOAD;
headData.YARD = headData.PORTLOAD_STATOIN;
}
else if (!string.IsNullOrEmpty(headData.PORTLOAD_CNT_TIME)&& (Convert.ToDateTime(headData.PORTLOAD_CNT_TIME) < DateTime.Now))
{
// data.CUR_PORT = data.I_DESTPORT + "已还箱-闲置";
headData.CTNSTATUS = "待开船";
headData.CTNSTATUSTIME = headData.PORTLOAD_CNT_TIME;
headData.PORT = headData.PORTLOAD;
headData.YARD = headData.PORTLOAD_STATOIN;
}
return headData;
}
public static List<CtnrDetail> GetCtnrList(string strCondition, string sort)
{
var strSql = new StringBuilder();
strSql.Append(" select c.CTNGID,c.CTNALL,c.CNTRNO,c.CNTRSOURCE,c.CTNSTATUS,s.CTNSTATUS CURSTATUS,");
strSql.Append("convert(char(10),s.CTNSTATUSTIME,20) AS CTNSTATUSTIME, ");
strSql.Append("s.PORT,s.YARD,s.CTNEF,s.CUSTNO,s.MBLNO,s.BSNO,s.REMARK,c.ISSTOP ");
strSql.Append(",(CASE s.CTNEF WHEN 'F' THEN '重' ELSE '空' END) CTNEFREF ");
strSql.Append(",(CASE c.ISSTOP WHEN 1 THEN '停用' ELSE '' END) ISSTOPREF ");
strSql.Append(",c.ISBERETURN,(CASE c.ISBERETURN WHEN 1 THEN '是' ELSE '' END) ISBERETURNREF ");
strSql.Append(",c.OWNERCTN,c.ENDRENTDATE,c.NOTYPE,c.CTNCOLOR,c.ISLOCKBOX,c.ISSLOT,C.ISLOCK ");
strSql.Append(",(CASE c.ISLOCKBOX WHEN 1 THEN '是' ELSE '' END) ISLOCKBOXREF,(CASE c.ISSLOT WHEN 1 THEN '是' ELSE '' END) ISSLOTREF ");
strSql.Append(",(CASE c.ISLOCK WHEN 1 THEN '是' ELSE '' END) ISLOCKREF FROM op_ctnmng_ctndetail C ");
strSql.Append(" left join (SELECT [CTNGID],[CNTRNO],[CTNSTATUS],[CTNSTATUSTIME],[PORT],[YARD],[CTNEF],[CUSTNO],[MBLNO],BSNO,REMARK,ROW_NUMBER() OVER ( PARTITION BY CTNGID ORDER BY CTNSTATUSTIME DESC,CREATETIME DESC ) rid from op_ctnmng_ctnstatus) s ");
strSql.Append(" on (s.rid=1 and s.CTNGID=c.CTNGID) ");
if (!string.IsNullOrEmpty(strCondition))
{
strSql.Append(" where " + strCondition.Replace("~", ""));
}
var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sortstring))
{
strSql.Append(" order by " + sortstring);
}
else
{
strSql.Append(" order by c.CTNGID ");
}
return SetCtnrDetailData(strSql);
}
static public CtnrDetail GetCtnData(string condition)
{
CtnrDetail data = null;
var list = GetCtnrList(condition,"");
if (list.Count > 0)
data = list[0];
if (data == null)
{
data = new CtnrDetail();
}
return data;
}
public static List<CtnrDetailAX> GetDetailList(string strCondition, string sort)
{
var strSql = new StringBuilder();
strSql.Append(" select mng.GID,mng.BSNO,mng.CURR,detail.CTNGID,detail.CTNALL,detail.CNTRNO,detail.CNTRSOURCE,S.CTNSTATUS,");
strSql.Append("convert(char(10),S.CTNSTATUSTIME,20) AS CTNSTATUSTIME, ");
strSql.Append("S.PORT,S.YARD,S.CTNEF,S.CUSTNO,S.MBLNO,S.REMARK,DR,CR,(SELECT SUM(CR) FROM op_ctnmng_detail WHERE CTNGID=detail.CTNGID) MXCR,DRFEENAME,CRFEENAME ");
strSql.Append(",(CASE S.CTNEF WHEN 'F' THEN '重' ELSE '空' END) CTNEFREF,detail.RETURNYARD ");
strSql.Append(",detail.OWNERCTN,detail.ENDRENTDATE,detail.NOTYPE,detail.CTNCOLOR,detail.ISLOCKBOX,detail.ISSLOT ");
strSql.Append(",(CASE detail.ISLOCKBOX WHEN 1 THEN '是' ELSE '' END) ISLOCKBOXREF,(CASE detail.ISSLOT WHEN 1 THEN '是' ELSE '' END) ISSLOTREF,sn.BSNO NBSNO ");
strSql.Append(" FROM op_ctnmng_ctndetail detail left join op_ctnmng_detail mng ");
strSql.Append(" on detail.CTNGID=mng.CTNGID ");
strSql.Append(" left join op_ctnmng_ctnstatus s on (s.CTNGID=detail.CTNGID AND s.BSNO=mng.BSNO) ");
strSql.Append(" left join (SELECT CTNGID,BSNO,ROW_NUMBER() OVER ( PARTITION BY CTNGID ORDER BY CTNSTATUSTIME DESC,CREATETIME DESC ) rid from op_ctnmng_ctnstatus) sn ");
strSql.Append(" on (sn.rid=1 and sn.CTNGID=detail.CTNGID) ");
if (!string.IsNullOrEmpty(strCondition))
{
strSql.Append(" where " + strCondition.Replace("~", ""));
}
var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sortstring))
{
strSql.Append(" order by " + sortstring);
}
else
{
strSql.Append(" order by detail.CTNGID ");
}
return SetCtnrDetailAXData(strSql);
}
public static List<CtnrDetail> GetSearchDetailList(string strCondition, string sort)
{
var strSql = new StringBuilder();
strSql.Append(" select detail.CTNGID,detail.CTNALL,detail.CNTRNO,detail.CNTRSOURCE,detail.CTNSTATUS,s.CTNSTATUS CURSTATUS,");
strSql.Append("convert(char(10),detail.CTNSTATUSTIME,20) AS CTNSTATUSTIME, ");
strSql.Append("s.PORT,s.YARD,detail.CTNEF,s.CUSTNO,s.MBLNO,s.BSNO,detail.REMARK,detail.ISSTOP ");
strSql.Append(",(CASE detail.CTNEF WHEN 'F' THEN '重' ELSE '空' END) CTNEFREF ");
strSql.Append(",(CASE detail.ISSTOP WHEN 1 THEN '停用' ELSE '' END) ISSTOPREF ");
strSql.Append(",detail.ISBERETURN,(CASE detail.ISBERETURN WHEN 1 THEN '是' ELSE '' END) ISBERETURNREF ");
strSql.Append(",detail.OWNERCTN,detail.ENDRENTDATE,detail.NOTYPE,detail.CTNCOLOR,detail.ISLOCKBOX,detail.ISSLOT,detail.ISLOCK ");
strSql.Append(",(CASE detail.ISLOCKBOX WHEN 1 THEN '是' ELSE '' END) ISLOCKBOXREF,(CASE detail.ISSLOT WHEN 1 THEN '是' ELSE '' END) ISSLOTREF ");
strSql.Append(",(CASE detail.ISLOCK WHEN 1 THEN '是' ELSE '' END) ISLOCKREF FROM op_ctnmng_ctndetail detail left join op_ctnmng_detail mng ");
strSql.Append(" on detail.CTNGID=mng.CTNGID ");
strSql.Append(" left join (SELECT [CTNGID],[CNTRNO],[CTNSTATUS],[CTNSTATUSTIME],[PORT],[YARD],[CTNEF],[CUSTNO],[MBLNO],BSNO,REMARK,ROW_NUMBER() OVER ( PARTITION BY CTNGID ORDER BY CTNSTATUSTIME DESC,CREATETIME DESC ) rid from op_ctnmng_ctnstatus) s ");
strSql.Append(" on (s.rid=1 and s.CTNGID=detail.CTNGID) ");
strSql.Append(" left join op_ctnmng ctn on ctn.bsno = mng.bsno ");
if (!string.IsNullOrEmpty(strCondition))
{
strSql.Append(" where " + strCondition.Replace("~", ""));
}
var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sortstring))
{
strSql.Append(" order by " + sortstring);
}
else
{
strSql.Append(" order by detail.CTNGID ");
}
return SetCtnrDetailData(strSql);
}
public static bool Delete(List<CtnrList> list, out string msg)
{
string message;
string ids = "";
bool result = true;
foreach (var m in list)
{
ids += "'" + m.BSNO + "',";
}
ids = ids.Substring(0, ids.Length - 1);
Database db = DatabaseFactory.CreateDatabase();
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
{
try
{
foreach (var items in list)
{
if (items.BLTYPE== "买箱"|| items.BLTYPE == "租入")
{
var strSqlCtnr = new StringBuilder();
strSqlCtnr.Append("DELETE FROM op_ctnmng_ctndetail where CTNGID in(select CTNGID from op_ctnmng_detail where BSNO='" + items.BSNO + "')");
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSqlCtnr.ToString(), null);
}
else if (items.BLTYPE == "卖箱" || items.BLTYPE == "退租")
{
var strSqlCtnr = new StringBuilder();
strSqlCtnr.Append("update op_ctnmng_ctndetail set ISSTOP=0 where CTNGID in(select CTNGID from op_ctnmng_detail where BSNO='" + items.BSNO + "')");
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSqlCtnr.ToString(), null);
}
else if (items.BLTYPE == "返箱")
{
var strSqlCtnr = new StringBuilder();
strSqlCtnr.Append("update op_ctnmng_ctndetail set ISBERETURN=1 where CTNGID in(select CTNGID from op_ctnmng_detail where BSNO='" + items.BSNO + "')");
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSqlCtnr.ToString(), null);
}
else if (items.BLTYPE == "租出" && items.RETURNTYPE == "返箱")
{
var strSqlCtnr = new StringBuilder();
strSqlCtnr.Append("update op_ctnmng_ctndetail set ISBERETURN=0 where CTNGID in(select CTNGID from op_ctnmng_detail where BSNO='" + items.BSNO + "')");
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSqlCtnr.ToString(), null);
}
var strSqlMng = new StringBuilder();
strSqlMng.Append("DELETE FROM op_ctnmng_detail WHERE BSNO='" + items.BSNO + "'");
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSqlMng.ToString(), null);
var strSql = new StringBuilder();
strSql.Append("DELETE FROM op_ctnmng WHERE BSNO='" + items.BSNO + "'");
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSql.ToString(), null);
var strSql2 = new StringBuilder();
strSql2.Append("DELETE FROM op_ctnmng_ctnstatus WHERE BSNO='" + items.BSNO + "'");
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSql2.ToString(), null);
}
message = "删除成功!";
sqlTran.Commit();
}
catch (Exception ee)
{
result = false;
message = ee.Message;
sqlTran.Rollback();
}
finally
{
SqlHelper.CloseConnection();
sqlTran.Dispose();
}
}
msg = message;
return result;
}
public static DBResult CreateBsFee(List<CtnrList> list,string userid,string username,string companyid)
{
var result = new DBResult();
var errostr = "";
T_ALL_DA T_ALL_DA = new T_ALL_DA();
foreach (var items in list)
{
var ctnlist = GetCtnrList("c.BSNO='"+items.BSNO+"' and isnull(s.BSNO,'')='' ","");
if (ctnlist != null && ctnlist.Count > 0)
{
errostr = errostr + "单号:"+items.BILLNO+" 箱号(";
foreach (var ctn in ctnlist) {
errostr = errostr + " "+ctn.CNTRNO;
}
errostr = errostr + ")";
}
else {
var feelist = new List<CreateFee>();
var ctndetaillist = GetDetailList("detail.BSNO='"+items.BSNO+"'", "sn.BSNO");
if (ctndetaillist != null && ctndetaillist.Count > 0)
{
foreach (var ctndetail in ctndetaillist)
{
if (!string.IsNullOrEmpty(ctndetail.DR)|| !string.IsNullOrEmpty(ctndetail.CR)) {
var FEETYPE = 1;
if (!string.IsNullOrEmpty(ctndetail.DR)){
FEETYPE = 1;
}
if (!string.IsNullOrEmpty(ctndetail.CR))
{
if (Convert.ToDecimal(ctndetail.CR) != 0)
FEETYPE = 2;
}
var fee = feelist.Find(x => x.NBSNO == ctndetail.NBSNO && x.FEETYPE == FEETYPE&&x.CURR==ctndetail.CURR);
if (fee == null)
{
var newfee = new CreateFee();
if (!string.IsNullOrEmpty(ctndetail.DR)){
if (Convert.ToDecimal(ctndetail.DR) != 0)
{
newfee.AMOUNT = Convert.ToDecimal(ctndetail.DR);
newfee.FEETYPE = 1;
}
}
if (!string.IsNullOrEmpty(ctndetail.CR))
{
if (Convert.ToDecimal(ctndetail.CR) != 0)
{
newfee.AMOUNT = Convert.ToDecimal(ctndetail.CR);
newfee.FEETYPE = 2;
}
}
var NEWBSNO = "";
var SALE = "";
var oplist =MsOpBillDAL.GetDataList("PARENTID='"+ctndetail.NBSNO+"'","","","");
foreach (var opbs in oplist)
{
SALE = opbs.SALE;
if (!opbs.FEESTATUS) {
NEWBSNO = opbs.BSNO;
}
}
if (string.IsNullOrEmpty(NEWBSNO)) {
var head = new MsOpAmend();
head.CREATETIME = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
head.CREATEUSER = username;
var period = ChMonthCloseDAL.GetData("", companyid);
if (Convert.ToDateTime(period.FDAY) > DateTime.Now)
{
head.ACCDATE = period.PERIOD;
}
else
{
head.ACCDATE = DateTime.Now.ToString("yyyy-MM");
}
head.PARENTID = ctndetail.NBSNO;
head.BSNO = Guid.NewGuid().ToString();
head.SALE = SALE;
head.DbOperationType = DbOperationType.DbotIns;
head.REASON = "箱管";
head.GID = Guid.NewGuid().ToString();
var modb = new ModelObjectDB();
result = modb.Save(head);
NEWBSNO = head.BSNO;
}
newfee.NBSNO = ctndetail.NBSNO;
newfee.BSNO = NEWBSNO;
newfee.CURR = ctndetail.CURR;
feelist.Add(newfee);
}
else {
fee.AMOUNT = fee.AMOUNT + Convert.ToDecimal(ctndetail.DR);
}
}
}
foreach (var fee in feelist) {
var chfee = new MsChFee();
chfee.GId = Guid.NewGuid().ToString();
chfee.BsNo = fee.BSNO;
chfee.FeeType = fee.FEETYPE;
chfee.FeeName = items.DRFEENAME;
chfee.UnitPrice = fee.AMOUNT;
chfee.Amount = fee.AMOUNT;
chfee.TaxUnitPrice = fee.AMOUNT;
chfee.NoTaxAmount = fee.AMOUNT;
chfee.FeeStatus = 1;
chfee.Unit = "单票";
chfee.CustomerName = items.CUSTOMERNAME;
chfee.Currency = fee.CURR;
chfee.Remark = items.BILLNO;
chfee.EnteroPerator = userid;
chfee.EnterDate = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
if (fee.CURR == "RMB")
chfee.ExChangerate = 1;
else
chfee.ExChangerate = MsChFeeDAL.GetExrate(DateTime.Now.ToString(), companyid, fee.CURR);
chfee.AccTaxRate = 0;
chfee.INPUTMODE = "箱管生成";
chfee.TaxRate = 0;
chfee.MODIFIEDUSER = userid;
chfee.MODIFIEDUSER = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
chfee.Sort = "100";
chfee.WmsOutBsNo = items.BILLNO;
chfee.DbOperationType = DbOperationType.DbotIns;
var modbDy = new ModelObjectRepository();
modbDy.Save(chfee);
}
var blUpSQL = " update OP_CTNMNG set CREATEBSFEE=1 where bsno='"+items.BSNO+"' ";
bool bl = T_ALL_DA.GetExecuteSqlCommand(blUpSQL);
}
}
}
if (!string.IsNullOrEmpty(errostr))
{
result.Message = errostr + " 没有关联业务不能生成到业务!";
result.Success = false;
}
else {
result.Success = true;
}
return result;
}
public static DBResult CreateCtnBsFee(List<CtnrDyDetail> list, string userid, string username, string companyid)
{
var result = new DBResult();
var errostr = "";
T_ALL_DA T_ALL_DA = new T_ALL_DA();
var feelist = new List<CreateFee>();
foreach (var items in list)
{
if (string.IsNullOrEmpty(items.BSNO))
{
errostr = errostr + " " + items.CNTRNO;
}
else {
var fee = feelist.Find(x => x.NBSNO == items.GID);
if (fee == null)
{
var newfee = new CreateFee();
var NEWBSNO = "";
var SALE = "";
var oplist = MsOpBillDAL.GetDataList("PARENTID='" + items.BSNO + "'", "", "", "");
foreach (var opbs in oplist)
{
SALE = opbs.SALE;
if (!opbs.FEESTATUS)
{
NEWBSNO = opbs.BSNO;
}
}
if (string.IsNullOrEmpty(NEWBSNO))
{
var head = new MsOpAmend();
head.CREATETIME = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
head.CREATEUSER = username;
var period = ChMonthCloseDAL.GetData("", companyid);
if (Convert.ToDateTime(period.FDAY) > DateTime.Now)
{
head.ACCDATE = period.PERIOD;
}
else
{
head.ACCDATE = DateTime.Now.ToString("yyyy-MM");
}
head.PARENTID = items.BSNO;
head.BSNO = Guid.NewGuid().ToString();
head.SALE = SALE;
head.DbOperationType = DbOperationType.DbotIns;
head.REASON = "箱管";
head.GID = Guid.NewGuid().ToString();
var modb = new ModelObjectDB();
result = modb.Save(head);
NEWBSNO = head.BSNO;
}
newfee.NBSNO = items.GID;
newfee.BSNO = NEWBSNO;
feelist.Add(newfee);
}
}
}
if (feelist != null && feelist.Count!=0) {
foreach (var fee in feelist)
{
var blUpSQL = " update ch_fee set BSNO='"+fee.BSNO+ "',WMSOUTBSNO='" + fee.NBSNO+"' where BSNO='"+fee.NBSNO+"' ";
bool bl = T_ALL_DA.GetExecuteSqlCommand(blUpSQL);
var blUpSQL2 = " update OP_CTNMNG_CTNSTATUS set CREATEBSFEE=1 where GID='" + fee.NBSNO+ "' ";
bool bl2 = T_ALL_DA.GetExecuteSqlCommand(blUpSQL2);
}
}
if (!string.IsNullOrEmpty(errostr))
{
result.Message ="箱号:"+ errostr + " 没有关联业务不能生成到业务!";
result.Success = false;
}
else
{
result.Success = true;
}
return result;
}
public static bool DeleteAll(string BSNO,bool isdeletectn)
{
bool result = true;
Database db = DatabaseFactory.CreateDatabase();
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
{
try
{
if (isdeletectn)
{
var strSqlCtnr = new StringBuilder();
strSqlCtnr.Append("DELETE FROM op_ctnmng_ctndetail WHERE BSNO = '" + BSNO + "'");
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSqlCtnr.ToString(), null);
}
else {
var strSqlCtnr2 = new StringBuilder();
strSqlCtnr2.Append("update op_ctnmng_ctndetail set ISSTOP=0 WHERE BSNO = '" + BSNO + "'");
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSqlCtnr2.ToString(), null);
}
var strSqlMng = new StringBuilder();
strSqlMng.Append("DELETE FROM op_ctnmng_detail WHERE BSNO ='" + BSNO + "'");
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSqlMng.ToString(), null);
var strSql = new StringBuilder();
strSql.Append("DELETE FROM op_ctnmng WHERE BSNO ='" + BSNO + "'");
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSql.ToString(), null);
var strSql2 = new StringBuilder();
strSql2.Append("DELETE FROM op_ctnmng_ctnstatus WHERE BSNO ='" + BSNO + "'");
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSql2.ToString(), null);
sqlTran.Commit();
}
catch (Exception ee)
{
result = false;
sqlTran.Rollback();
}
finally
{
SqlHelper.CloseConnection();
sqlTran.Dispose();
}
}
return result;
}
public static bool DeleteAll(CtnrList head)
{
bool result = true;
Database db = DatabaseFactory.CreateDatabase();
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
{
try
{
if (head.BLTYPE == "卖箱" || head.BLTYPE == "退租")
{
var strSqlCtnr = new StringBuilder();
strSqlCtnr.Append("update op_ctnmng_ctndetail set ISSTOP=0 where CTNGID in(select CTNGID from op_ctnmng_detail where BSNO='" + head.BSNO + "')");
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSqlCtnr.ToString(), null);
}
else if (head.BLTYPE == "返箱")
{
var strSqlCtnr = new StringBuilder();
strSqlCtnr.Append("update op_ctnmng_ctndetail set ISBERETURN=1 where CTNGID in(select CTNGID from op_ctnmng_detail where BSNO='" + head.BSNO + "')");
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSqlCtnr.ToString(), null);
}
else if (head.BLTYPE == "租出" && head.RETURNTYPE == "返箱")
{
var strSqlCtnr = new StringBuilder();
strSqlCtnr.Append("update op_ctnmng_ctndetail set ISBERETURN=0 where CTNGID in(select CTNGID from op_ctnmng_detail where BSNO='" + head.BSNO + "')");
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSqlCtnr.ToString(), null);
}
var strSqlMng = new StringBuilder();
strSqlMng.Append("DELETE FROM op_ctnmng_detail WHERE BSNO ='" + head.BSNO + "'");
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSqlMng.ToString(), null);
var strSql = new StringBuilder();
strSql.Append("DELETE FROM op_ctnmng WHERE BSNO ='" + head.BSNO + "'");
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSql.ToString(), null);
var strSql2 = new StringBuilder();
strSql2.Append("DELETE FROM op_ctnmng_ctnstatus WHERE BSNO ='" + head.BSNO + "'");
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSql2.ToString(), null);
sqlTran.Commit();
}
catch (Exception ee)
{
result = false;
sqlTran.Rollback();
}
finally
{
SqlHelper.CloseConnection();
sqlTran.Dispose();
}
}
return result;
}
public static bool UpCtnStop(string bSNO, List<CtnrDetail> detailBodyList)
{
bool result = true;
Database db = DatabaseFactory.CreateDatabase();
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
{
try
{
foreach (var item in detailBodyList) {
var strSqlCtnr = new StringBuilder();
strSqlCtnr.Append("update op_ctnmng_ctndetail set CTNSTATUS='不可用', ISSTOP=1,RETURNYARD='" + item.RETURNYARD + "' WHERE CTNGID = '" + item.CTNGID+ "'");
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSqlCtnr.ToString(), null);
}
sqlTran.Commit();
}
catch (Exception ee)
{
result = false;
sqlTran.Rollback();
}
finally
{
SqlHelper.CloseConnection();
sqlTran.Dispose();
}
}
return result;
}
public static bool UpCtnIsReturn(string bSNO, List<CtnrDetail> detailBodyList,string isreturn="1")
{
bool result = true;
Database db = DatabaseFactory.CreateDatabase();
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
{
try
{
foreach (var item in detailBodyList)
{
var strSqlCtnr = new StringBuilder();
strSqlCtnr.Append("update op_ctnmng_ctndetail set CTNSTATUS='不可用',ISBERETURN=1,RETURNYARD='" + item.RETURNYARD+"' WHERE CTNGID = '" + item.CTNGID + "'");
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSqlCtnr.ToString(), null);
}
sqlTran.Commit();
}
catch (Exception ee)
{
result = false;
sqlTran.Rollback();
}
finally
{
SqlHelper.CloseConnection();
sqlTran.Dispose();
}
}
return result;
}
public static DBResult DeleteReturnDetail(List<CtnrReturn> list)
{
var result = new DBResult();
string ids = "";
foreach (var m in list)
{
ids += "'" + m.GID + "',";
}
ids = ids.Substring(0, ids.Length - 1);
Database db = DatabaseFactory.CreateDatabase();
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
{
try
{
var strSqlCtnr = new StringBuilder();
strSqlCtnr.Append("delete from op_ctnmng_return where GID IN (" + ids + ") ");
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSqlCtnr.ToString(), null);
result.Success = true;
result.Message = "删除成功";
sqlTran.Commit();
}
catch (Exception ee)
{
result.Success = false;
result.Message = "删除出错," + ee.Message;
sqlTran.Rollback();
}
finally
{
SqlHelper.CloseConnection();
sqlTran.Dispose();
}
}
return result;
}
public static DBResult DeleteCtnDetail(List<CtnrDetail> list,string BSNO, bool isdeletectn)
{
var result = new DBResult();
string ids = "";
foreach (var m in list)
{
ids += "'" + m.CTNGID + "',";
}
ids = ids.Substring(0, ids.Length - 1);
Database db = DatabaseFactory.CreateDatabase();
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
{
try
{
if (isdeletectn)
{
var strSqlCtnr = new StringBuilder();
strSqlCtnr.Append("DELETE FROM op_ctnmng_ctndetail where CTNGID IN (" + ids + ") AND BSNO='" + BSNO + "'");
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSqlCtnr.ToString(), null);
}
else {
var strSqlCtnr = new StringBuilder();
strSqlCtnr.Append("update op_ctnmng_ctndetail set ISSTOP=0 where CTNGID IN (" + ids + ") ");
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSqlCtnr.ToString(), null);
}
var strSqlMng = new StringBuilder();
strSqlMng.Append("DELETE FROM op_ctnmng_detail WHERE CTNGID IN (" + ids + ") AND BSNO='" + BSNO + "'");
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSqlMng.ToString(), null);
var strSql2 = new StringBuilder();
strSql2.Append("DELETE FROM op_ctnmng_ctnstatus WHERE CTNGID IN (" + ids + ") AND BSNO='" + BSNO + "'");
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSql2.ToString(), null);
result.Success = true;
result.Message = "删除成功";
sqlTran.Commit();
}
catch (Exception ee)
{
result.Success = false;
result.Message = "删除出错,"+ee.Message;
sqlTran.Rollback();
}
finally
{
SqlHelper.CloseConnection();
sqlTran.Dispose();
}
}
return result;
}
public static DBResult CtnAdd(string bsno, List<CtnrDetail> bodyList,string userid)
{
var result = new DBResult();
var OpSea = MsOpBillDAL.GetData("BSNO='"+bsno+"'");
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 SIZE = enumValue.CTNALL.ToString().Trim().Substring(0, 2);
string CTN = enumValue.CTNALL.ToString().Trim().Substring(2);
if (enumValue.CTNALL.IndexOf("'") > 0) CTN = enumValue.CTNALL.ToString().Trim().Substring(3);
int TEU =1;
var iTEU = enumValue.CTNALL.ToString().Trim().Substring(0, 1);
if (iTEU == "4")
{
TEU = TEU * 2;
}
else if (iTEU == "L")
{
TEU = 0;
}
var cmdInsert = db.GetSqlStringCommand(@"insert into op_ctn (CTN_ID,BSNO,CTNCODE,[SIZE],CTN,CTNNUM,TEU,CTNALL,CNTRNO,SEALNO,PKGS,KGS,CBM,REMARK,KINDPKGS,TAREWEIGHT,GOODSNAME,CTNSTATUS,MASTERNO,WEIGHTYPE,WEIGHKGS,WEIGHATTN,WEIGHTEL,WEIGHSIGN,WEIGHDATE,TRUCKER,TRUCKFEE,FREESTORAGEDAY,STORAGEDAY,STORAGEPRICE,STORAGEFEE,FREECTNDAY,CTNDAY,CTNPRICE,CTNFEE,TRUCKNO,VGMCONNCOM,VGMADDR,VGMEMAIL,PCTN_ID) values (NEWID()"
+ ",'" + bsno + "','" +1 + "','" +SIZE + "','" + CTN + "',1," + TEU.ToString() + ",'" + enumValue.CTNALL.Replace("'", "''") + "','" + enumValue.CNTRNO + "','',0,0,0,'','',0,'','','','',0,'','','','','',0,0,0,0,0,0,0,0,0,'','','','','" + enumValue.CTNGID + "')");
db.ExecuteNonQuery(cmdInsert, tran);
var headData =new CtnrDyDetail();
headData.GID = Guid.NewGuid().ToString();
headData.CTNGID = enumValue.CTNGID;
headData.CNTRNO = enumValue.CNTRNO;
headData.CTNSTATUS = "在途";
headData.CTNSTATUSTIME= DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
headData.CTNEF = "F";
headData.BSNO = OpSea.BSNO;
headData.MBLNO = OpSea.MBLNO;
headData.HBLNO = OpSea.HBLNO;
headData.VESSEL = OpSea.VESSEL;
headData.VOYNO = OpSea.VOYNO;
headData.ACCDATE= DateTime.Now.ToString("yyyy-MM");
headData.ETD = OpSea.ETD;
headData.ETA = OpSea.ETA;
headData.PORTLOAD = OpSea.PORTLOAD;
headData.DESTPORT = OpSea.PORTDISCHARGE;
headData.AGENTNAME = OpSea.AGENTID;
headData.CUSTNO = OpSea.CUSTNO;
headData.DbOperationType = DbOperationType.DbotIns;
headData.CREATETIME = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
headData.CREATEUSER = userid;
headData.MODIFYTIME = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
headData.MODIFYUSER = userid;
if (OpSea.OPLBNAME == "海运进口")
{
headData.PORT = OpSea.PORTDISCHARGE;
headData.YARD = OpSea.YARD;
}
else {
headData.PORT = OpSea.PORTLOAD;
headData.YARD = OpSea.YARD;
}
var modb = new ModelObjectDB();
modb.Save(headData);
enumValue.DbOperationType = DbOperationType.DbotUpd;
enumValue.CTNSTATUS ="不可用";
modb.Save(enumValue);
}
}
tran.Commit();
}
catch (Exception)
{
tran.Rollback();
result.Success = false;
result.Message = "更新出现错误,请重试或联系系统管理员";
return result;
}
}
result.Success = true;
result.Message = "更新成功" + result.Message;
return result;
}
public static DBResult CtnBsAdd(string bsno, List<MsOpSeaeDetail> bodyList, string userid)
{
var result = new DBResult();
var OpSea = MsOpBillDAL.GetData("BSNO='" + bsno + "'");
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 (string.IsNullOrEmpty(enumValue.PCTN_ID))
{
var ctndetail = GetCtnData("c.CNTRNO='"+ enumValue.CNTRNO + "'");
if (!string.IsNullOrEmpty(ctndetail.CNTRNO))
{
var headData = new CtnrDyDetail();
headData.GID = Guid.NewGuid().ToString();
headData.CTNGID = ctndetail.CTNGID;
headData.CNTRNO = enumValue.CNTRNO;
headData.CTNSTATUS = "在途";
headData.CTNSTATUSTIME = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
headData.CTNEF = "F";
headData.BSNO = OpSea.BSNO;
headData.MBLNO = OpSea.MBLNO;
headData.HBLNO = OpSea.HBLNO;
headData.VESSEL = OpSea.VESSEL;
headData.VOYNO = OpSea.VOYNO;
headData.ETD = OpSea.ETD;
headData.ETA = OpSea.ETA;
headData.ACCDATE = DateTime.Now.ToString("yyyy-MM");
headData.PORTLOAD = OpSea.PORTLOAD;
headData.DESTPORT = OpSea.PORTDISCHARGE;
headData.AGENTNAME = OpSea.AGENTID;
headData.CUSTNO = OpSea.CUSTNO;
headData.DbOperationType = DbOperationType.DbotIns;
headData.CREATETIME = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
headData.CREATEUSER = userid;
headData.MODIFYTIME = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
headData.MODIFYUSER = userid;
var modb = new ModelObjectDB();
result=modb.Save(headData);
if (result.Success)
{
ctndetail.DbOperationType = DbOperationType.DbotUpd;
ctndetail.CTNSTATUS = "不可用";
modb.Save(ctndetail);
var cmdInsert = db.GetSqlStringCommand(@"update op_ctn set PCTN_ID='"+ ctndetail.CTNGID+ "' where ='" + enumValue.CTN_ID + "'");
db.ExecuteNonQuery(cmdInsert, tran);
}
}
}
}
}
tran.Commit();
}
catch (Exception)
{
tran.Rollback();
result.Success = false;
result.Message = "更新出现错误,请重试或联系系统管理员";
return result;
}
}
result.Success = true;
result.Message = "更新成功" + result.Message;
return result;
}
public static DBResult SaveSellDetail(CtnrList head, List<CtnrDetail> list, string BSNO,string USERID)
{
var result = new DBResult();
string ids = "";
foreach (var m in list)
{
ids += "'" + m.CTNGID + "',";
}
ids = ids.Substring(0, ids.Length - 1);
Database db = DatabaseFactory.CreateDatabase();
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
{
try
{
var strSql2 = new StringBuilder();
strSql2.Append("update op_ctnmng_ctnstatus set BSNO='' WHERE CTNGID IN (" + ids + ") AND BSNO='" + BSNO + "'");
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSql2.ToString(), null);
foreach (CtnrDetail item in list)
{
CtnrDyDetail dyDetail = new CtnrDyDetail();
dyDetail.GID = Guid.NewGuid().ToString().Replace("-", "");
dyDetail.CNTRNO = item.CNTRNO;
dyDetail.CREATETIME = DateTime.Now.ToString("yyyy - MM - dd HH: mm:ss");
dyDetail.CREATEUSER = USERID;
dyDetail.CTNEF = item.CTNEF;
dyDetail.CTNGID = item.CTNGID;
dyDetail.CTNSTATUS = item.CTNSTATUS;
dyDetail.CTNSTATUSTIME = item.CTNSTATUSTIME;
dyDetail.MBLNO = item.MBLNO;
dyDetail.YARD = item.YARD;
dyDetail.PORT = item.PORT;
dyDetail.CUSTNO = item.CUSTNO;
dyDetail.REMARK = item.REMARK;
dyDetail.BSNO = head.BSNO;
var modbDy = new ModelObjectRepository();
dyDetail.ModelUIStatus = "I";
dyDetail.DbOperationType = DbOperationType.DbotIns;
result = modbDy.Save(dyDetail);
}
result.Success = true;
result.Message = "删除成功";
sqlTran.Commit();
}
catch (Exception ee)
{
result.Success = false;
result.Message = "删除出错," + ee.Message;
sqlTran.Rollback();
}
finally
{
SqlHelper.CloseConnection();
sqlTran.Dispose();
}
}
return result;
}
public static DBResult DeleteCtnDetail(CtnrList head,List<CtnrDetail> list, string BSNO, bool isdeletectn)
{
var result = new DBResult();
string ids = "";
foreach (var m in list)
{
ids += "'" + m.CTNGID + "',";
}
ids = ids.Substring(0, ids.Length - 1);
Database db = DatabaseFactory.CreateDatabase();
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
{
try
{
if (head.BLTYPE == "卖箱" || head.BLTYPE == "退租")
{
var strSqlCtnr = new StringBuilder();
strSqlCtnr.Append("update op_ctnmng_ctndetail set ISSTOP=0 where CTNGID in(select CTNGID from op_ctnmng_detail where CTNGID IN (" + ids + ") AND BSNO='" + BSNO + "')");
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSqlCtnr.ToString(), null);
}
else if (head.BLTYPE == "返箱")
{
var strSqlCtnr = new StringBuilder();
strSqlCtnr.Append("update op_ctnmng_ctndetail set ISBERETURN=1 where CTNGID in(select CTNGID from op_ctnmng_detail where CTNGID IN (" + ids + ") AND BSNO='" + BSNO + "')");
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSqlCtnr.ToString(), null);
}
else if (head.BLTYPE == "租出" && head.RETURNTYPE == "返箱")
{
var strSqlCtnr = new StringBuilder();
strSqlCtnr.Append("update op_ctnmng_ctndetail set ISBERETURN=0 where CTNGID in(select CTNGID from op_ctnmng_detail where CTNGID IN (" + ids + ") AND BSNO='" + BSNO + "')");
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSqlCtnr.ToString(), null);
}
var strSqlMng = new StringBuilder();
strSqlMng.Append("DELETE FROM op_ctnmng_detail WHERE CTNGID IN (" + ids + ") AND BSNO='" + BSNO + "'");
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSqlMng.ToString(), null);
var strSql2 = new StringBuilder();
strSql2.Append("DELETE FROM op_ctnmng_ctnstatus WHERE CTNGID IN (" + ids + ") AND BSNO='" + BSNO + "'");
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSql2.ToString(), null);
result.Success = true;
result.Message = "删除成功";
sqlTran.Commit();
}
catch (Exception ee)
{
result.Success = false;
result.Message = "删除出错," + ee.Message;
sqlTran.Rollback();
}
finally
{
SqlHelper.CloseConnection();
sqlTran.Dispose();
}
}
return result;
}
public static bool DeleteMng(string BSNO, out string msg)
{
string message;
Database db = DatabaseFactory.CreateDatabase();
string DelSql = "DELETE FROM op_ctnmng WHERE BSNO ='"+BSNO+"'";
bool result = false;
try
{
result = db.ExecuteNonQuery(CommandType.Text, DelSql) > 0;
if (result)
{
message = "删除成功!";
}
else
{
message = "删除失败!";
}
}
catch (Exception ex)
{
result = false;
message = ex.Message;
}
msg = message;
return result;
}
public static DBResult DeleteCtnReturnDetail(List<CtnrReturn> list, string BSNO)
{
var result = new DBResult();
string ids = "";
foreach (var m in list)
{
ids += "'" + m.GID + "',";
}
ids = ids.Substring(0, ids.Length - 1);
Database db = DatabaseFactory.CreateDatabase();
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
{
try
{
var strSqlCtnr = new StringBuilder();
strSqlCtnr.Append("DELETE FROM op_ctnmng_return where GID IN (" + ids + ") AND BSNO='" + BSNO + "'");
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSqlCtnr.ToString(), null);
result.Success = true;
result.Message = "删除成功";
sqlTran.Commit();
}
catch (Exception ee)
{
result.Success = false;
result.Message = "删除出错," + ee.Message;
sqlTran.Rollback();
}
finally
{
SqlHelper.CloseConnection();
sqlTran.Dispose();
}
}
return result;
}
public static CtnrList GetData(string conditions, string userid, string username, string companyid)
{
int total = 0;
var TList = GetDataList(conditions, 0, 1, userid, username, companyid, out total);
CtnrList ctnr = new CtnrList();
if (TList.Count > 0)
{
ctnr = GetDataList(conditions, 0, 1, userid, username, companyid, out total)[0];
}
return ctnr;
}
static public CtnrDetailAX GetCtnrDetailData(string condition)
{
var _t = "";
var list = GetDetailList(condition, _t);
if (list.Count > 0)
return list[0];
return new CtnrDetailAX();
}
private static List<CtnrDetailAX> SetCtnrDetailAXData(StringBuilder strSql)
{
var headList = new List<CtnrDetailAX>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
CtnrDetailAX data = new CtnrDetailAX();
#region Set DB data to Object
data.GID = Convert.ToString(reader["GID"]);
data.BSNO = Convert.ToString(reader["BSNO"]);
data.CTNGID = Convert.ToString(reader["CTNGID"]);
data.CTNALL = Convert.ToString(reader["CTNALL"]);
data.CNTRNO = Convert.ToString(reader["CNTRNO"]);
data.CNTRSOURCE = Convert.ToString(reader["CNTRSOURCE"]);
data.CNTRNO = Convert.ToString(reader["CNTRNO"]);
data.CTNSTATUS = Convert.ToString(reader["CTNSTATUS"]);
data.CTNSTATUSTIME = Convert.ToString(reader["CTNSTATUSTIME"]);
data.PORT = Convert.ToString(reader["PORT"]);
data.YARD = Convert.ToString(reader["YARD"]);
data.CTNEF = Convert.ToString(reader["CTNEF"]);
data.CUSTNO = Convert.ToString(reader["CUSTNO"]);
data.MBLNO = Convert.ToString(reader["MBLNO"]);
data.REMARK = Convert.ToString(reader["REMARK"]);
data.DRFEENAME = Convert.ToString(reader["DRFEENAME"]);
data.CRFEENAME = Convert.ToString(reader["CRFEENAME"]);
data.DR = Convert.ToString(reader["DR"]);
data.CR = Convert.ToString(reader["CR"]);
data.MXCR = Convert.ToString(reader["MXCR"]);
data.CTNEFREF = Convert.ToString(reader["CTNEFREF"]);
data.RETURNYARD= Convert.ToString(reader["RETURNYARD"]);
data.OWNERCTN = reader["OWNERCTN"].ToString();
if (reader["ENDRENTDATE"] != DBNull.Value)
data.ENDRENTDATE = Convert.ToDateTime(reader["ENDRENTDATE"]).ToString("yyyy-MM-dd");
data.NOTYPE = reader["NOTYPE"].ToString();
data.CTNCOLOR = reader["CTNCOLOR"].ToString();
data.ISLOCKBOX = reader["ISLOCKBOX"].ToString();
data.ISSLOT = reader["ISSLOT"].ToString();
data.ISLOCKBOXREF = reader["ISLOCKBOXREF"].ToString();
data.ISSLOTREF = reader["ISSLOTREF"].ToString();
data.NBSNO = reader["NBSNO"].ToString();
data.CURR = reader["CURR"].ToString();
#endregion
headList.Add(data);
}
reader.Close();
}
return headList;
}
private static List<CtnrDyDetail> SetCtnrDyDetailData(StringBuilder strSql)
{
var headList = new List<CtnrDyDetail>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
CtnrDyDetail data = new CtnrDyDetail();
#region Set DB data to Object
data.GID = Convert.ToString(reader["GID"]);
data.CTNGID = Convert.ToString(reader["CTNGID"]);
data.CTNALL = Convert.ToString(reader["CTNALL"]);
data.CNTRNO = Convert.ToString(reader["CNTRNO"]);
data.CTNSTATUS = Convert.ToString(reader["CTNSTATUS"]);
data.CTNSTATUSTIME = Convert.ToString(reader["CTNSTATUSTIME"]);
data.PORT = Convert.ToString(reader["PORT"]);
data.YARD = Convert.ToString(reader["YARD"]);
data.CTNEF = Convert.ToString(reader["CTNEF"]);
data.CUSTNO = Convert.ToString(reader["CUSTNO"]);
data.MBLNO = Convert.ToString(reader["MBLNO"]);
data.REMARK = Convert.ToString(reader["REMARK"]);
data.CTNEFREF = Convert.ToString(reader["CTNEFREF"]);
data.HBLNO = Convert.ToString(reader["HBLNO"]);
if (reader["ETD"] != DBNull.Value)
data.ETD = Convert.ToDateTime(reader["ETD"]).ToString("yyyy-MM-dd");
if (reader["ETA"] != DBNull.Value)
data.ETA = Convert.ToDateTime(reader["ETA"]).ToString("yyyy-MM-dd");
data.AGENTNAME = Convert.ToString(reader["AGENTNAME"]);
data.VESSEL = Convert.ToString(reader["VESSEL"]);
data.VOYNO = Convert.ToString(reader["VOYNO"]);
data.PORTLOAD_STATOIN = Convert.ToString(reader["PORTLOAD_STATOIN"]);
data.PORTLOAD = Convert.ToString(reader["PORTLOAD"]);
if (reader["PORTLOAD_CNT_TIME"] != DBNull.Value)
data.PORTLOAD_CNT_TIME = Convert.ToDateTime(reader["PORTLOAD_CNT_TIME"]).ToString("yyyy-MM-dd");
if (reader["PORTLOAD_FREE_DAYS"] != DBNull.Value)
data.PORTLOAD_FREE_DAYS = Convert.ToDecimal(reader["PORTLOAD_FREE_DAYS"]);
if (reader["PORTLOAD_OVER_DAYS"] != DBNull.Value)
data.PORTLOAD_OVER_DAYS = Convert.ToDecimal(reader["PORTLOAD_OVER_DAYS"]);
if (reader["PORTLOAD_OVER_DAYS_FEE"] != DBNull.Value)
data.PORTLOAD_OVER_DAYS_FEE = Convert.ToDecimal(reader["PORTLOAD_OVER_DAYS_FEE"]);
if (data.ETD != "" && (data.PORTLOAD_CNT_TIME != "" && (Convert.ToDateTime(data.ETD) < DateTime.Now)))
{
var _days = Convert.ToDateTime(data.ETD) - Convert.ToDateTime(data.PORTLOAD_CNT_TIME);
if ((_days.Days + 1 - data.PORTLOAD_FREE_DAYS) > 0)
data.PORTLOAD_OVER_DAYS = _days.Days + 1 - data.PORTLOAD_FREE_DAYS;
else data.PORTLOAD_OVER_DAYS = 0;
}
else if (data.ETD != "" && (data.PORTLOAD_CNT_TIME != "" && (Convert.ToDateTime(data.ETD) >= DateTime.Now)))
{
var _days = Convert.ToDateTime(data.ETD) - Convert.ToDateTime(DateTime.Now);
if ((_days.Days + 1 - data.PORTLOAD_FREE_DAYS) > 0)
data.PORTLOAD_OVER_DAYS = _days.Days + 1 - data.PORTLOAD_FREE_DAYS;
else data.PORTLOAD_OVER_DAYS = 0;
}
data.PORTLOAD_OVER_DAYS_AMT = data.PORTLOAD_OVER_DAYS * data.PORTLOAD_OVER_DAYS_FEE;
data.DESTPORT = Convert.ToString(reader["DESTPORT"]);
if (reader["DEST_CNT_TIME"] != DBNull.Value)
data.DEST_CNT_TIME = Convert.ToDateTime(reader["DEST_CNT_TIME"]).ToString("yyyy-MM-dd");
if (reader["DEST_RTCNT_TIME"] != DBNull.Value)
data.DEST_RTCNT_TIME = Convert.ToDateTime(reader["DEST_RTCNT_TIME"]).ToString("yyyy-MM-dd");
data.DESTPORT_STATOIN = Convert.ToString(reader["DESTPORT_STATOIN"]);
if (reader["DESTPORT_FREE_DAYS"] != DBNull.Value)
data.DESTPORT_FREE_DAYS = Convert.ToDecimal(reader["DESTPORT_FREE_DAYS"]);
if (reader["DESTPORT_OVER_DAYS_FEE"] != DBNull.Value)
data.DESTPORT_OVER_DAYS_FEE = Convert.ToDecimal(reader["DESTPORT_OVER_DAYS_FEE"]);
if (data.DEST_RTCNT_TIME != "" && (data.ETA != "" && (Convert.ToDateTime(data.ETA) < DateTime.Now)))
{
var _days = Convert.ToDateTime(data.DEST_RTCNT_TIME) - Convert.ToDateTime(data.ETA);
if ((_days.Days + 1 - data.DESTPORT_FREE_DAYS) > 0)
data.DESTPORT_OVER_DAYS = _days.Days + 1 - data.DESTPORT_FREE_DAYS;
else data.DESTPORT_OVER_DAYS = 0;
}
else if (data.DEST_RTCNT_TIME == "" && (data.ETA != "" && (Convert.ToDateTime(data.ETA) < DateTime.Now)))
{
var _days = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd")) - Convert.ToDateTime(data.ETA);
if ((_days.Days + 1 - data.DESTPORT_FREE_DAYS) > 0)
data.DESTPORT_OVER_DAYS = _days.Days + 1 - data.DESTPORT_FREE_DAYS;
else data.DESTPORT_OVER_DAYS = 0;
}
data.DESTPORT_OVER_DAYS_AMT = data.DESTPORT_OVER_DAYS * data.DESTPORT_OVER_DAYS_FEE;
data.CREATEUSER = Convert.ToString(reader["CREATEUSER"]);
data.CREATEUSERREF = Convert.ToString(reader["CREATEUSERREF"]);
if (reader["CREATETIME"] != DBNull.Value)
data.CREATETIME = Convert.ToDateTime(reader["CREATETIME"]).ToString("yyyy-MM-dd HH:mm:ss");
data.MODIFYUSER = Convert.ToString(reader["MODIFYUSER"]);
if (reader["MODIFYTIME"] != DBNull.Value)
data.MODIFYTIME = Convert.ToDateTime(reader["MODIFYTIME"]).ToString("yyyy-MM-dd HH:mm:ss");
data.TRANSTYPE = Convert.ToString(reader["TRANSTYPE"]);
if (reader["BSSTATUS"] != DBNull.Value)
data.BSSTATUS = Convert.ToBoolean((reader["BSSTATUS"]));
if (reader["FEESTATUS"] != DBNull.Value)
data.FEESTATUS = Convert.ToBoolean((reader["FEESTATUS"]));
data.BSSTATUSREF = Convert.ToString(reader["BSSTATUSREF"]);// 业务状态
data.FEESTATUSREF = Convert.ToString(reader["FEESTATUSREF"]);// 费用状态
data.DRFEESTATUS = getfeestatus(Convert.ToString(reader["DRFEESTATUS"]));
data.CRFEESTATUS = getfeestatus(Convert.ToString(reader["CRFEESTATUS"]));
data.CREATEBSFEEREF = reader["CREATEBSFEEREF"].ToString();
data.ACCDATE = reader["ACCDATE"].ToString();
data.OP = reader["OP"].ToString();
data.CORPID = reader["CORPID"].ToString();
data.SALECORPID = reader["SALECORPID"].ToString();
data.BSNO = reader["BSNO"].ToString();
#endregion
headList.Add(data);
}
reader.Close();
}
return headList;
}
private static List<CtnrDetail> SetCtnrDetailData(StringBuilder strSql)
{
var headList = new List<CtnrDetail>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
CtnrDetail data = new CtnrDetail();
#region Set DB data to Object
data.CTNGID = Convert.ToString(reader["CTNGID"]);
data.CTNALL = Convert.ToString(reader["CTNALL"]);
data.CNTRNO = Convert.ToString(reader["CNTRNO"]);
data.CNTRSOURCE = Convert.ToString(reader["CNTRSOURCE"]);
data.CNTRNO = Convert.ToString(reader["CNTRNO"]);
data.CURSTATUS = Convert.ToString(reader["CURSTATUS"]);
data.CTNSTATUS = Convert.ToString(reader["CTNSTATUS"]);
data.CTNSTATUSTIME = Convert.ToString(reader["CTNSTATUSTIME"]);
data.PORT = Convert.ToString(reader["PORT"]);
data.YARD = Convert.ToString(reader["YARD"]);
data.CTNEF = Convert.ToString(reader["CTNEF"]);
data.CUSTNO = Convert.ToString(reader["CUSTNO"]);
data.MBLNO = Convert.ToString(reader["MBLNO"]);
data.REMARK = Convert.ToString(reader["REMARK"]);
data.CTNEFREF = Convert.ToString(reader["CTNEFREF"]);
if (reader["ISSTOP"] != DBNull.Value)
data.ISSTOP = Convert.ToBoolean(reader["ISSTOP"]);//业务状态
data.ISSTOPREF = Convert.ToString(reader["ISSTOPREF"]);
if (reader["ISBERETURN"] != DBNull.Value)
data.ISBERETURN = Convert.ToBoolean(reader["ISBERETURN"]);//业务状态
data.ISBERETURNREF = Convert.ToString(reader["ISBERETURNREF"]);
data.OWNERCTN = reader["OWNERCTN"].ToString();
if (reader["ENDRENTDATE"] != DBNull.Value)
data.ENDRENTDATE = Convert.ToDateTime(reader["ENDRENTDATE"]).ToString("yyyy-MM-dd");
data.NOTYPE = reader["NOTYPE"].ToString();
data.CTNCOLOR = reader["CTNCOLOR"].ToString();
data.ISLOCKBOX = reader["ISLOCKBOX"].ToString();
data.ISSLOT = reader["ISSLOT"].ToString();
data.ISLOCKBOXREF = reader["ISLOCKBOXREF"].ToString();
data.ISSLOTREF = reader["ISSLOTREF"].ToString();
data.ISLOCK= reader["ISLOCK"].ToString();
data.ISLOCKREF = reader["ISLOCKREF"].ToString();
data.BSNO= reader["BSNO"].ToString();
#endregion
headList.Add(data);
}
reader.Close();
}
return headList;
}
#region 还箱地点
/// <summary>
/// 获取提单号下录入的箱型
/// </summary>
/// <returns></returns>
static public List<CtnrReturn> GetCtnReturnList(string strCondition,string sort)
{
var strSql = new StringBuilder();
strSql.Append("SELECT [GID],[BSNO],[PORT],[YARD],[AGENT],[REMARK],[CREATEUSER],[CREATETIME] from op_ctnmng_return where 1=1 ");
if (!string.IsNullOrEmpty(strCondition))
{
strSql.Append(" and " + strCondition);
}
var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sortstring))
{
strSql.Append(" order by " + sortstring);
}
else
{
strSql.Append(" order by CREATETIME ");
}
return SetCtnReturnData(strSql);
}
private static List<CtnrReturn> SetCtnReturnData(StringBuilder strSql)
{
var headList = new List<CtnrReturn>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
CtnrReturn data = new CtnrReturn();
#region Set DB data to Object
data.GID = Convert.ToString(reader["GID"]);
data.BSNO = Convert.ToString(reader["BSNO"]);
data.PORT = Convert.ToString(reader["PORT"]);
data.YARD = Convert.ToString(reader["YARD"]);
data.AGENT = Convert.ToString(reader["AGENT"]);
data.REMARK = Convert.ToString(reader["REMARK"]);
//if (reader["TimeMark"] != DBNull.Value)
// data.TimeMark = Convert.ToDecimal(reader["TimeMark"]);
#endregion
headList.Add(data);
}
reader.Close();
}
return headList;
}
#endregion
#region 箱型
/// <summary>
/// 获取提单号下录入的箱型
/// </summary>
/// <returns></returns>
static public List<CodeCtnModel> GetCodeCtnList()
{
String strSql = @"SELECT DISTINCT CTN AS CTNALL FROM code_ctn";
return SetCodeCtnData(strSql);
}
private static List<CodeCtnModel> SetCodeCtnData(String strSql)
{
var headList = new List<CodeCtnModel>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql))
{
while (reader.Read())
{
CodeCtnModel data = new CodeCtnModel();
#region Set DB data to Object
data.CTN = Convert.ToString(reader["CTNALL"]);
#endregion
headList.Add(data);
}
reader.Close();
}
return headList;
}
#endregion
#region 批量修改
public static DBResult Modify(List<CtnrDyDetail> bodyList, CtnrDyDetail modifydata,string userid,string companyid)
{
var result = new DBResult();
string GIDstr = "";
if (bodyList != null)
{
foreach (var enumValue in bodyList)
{
if (!string.IsNullOrEmpty(GIDstr))
{
GIDstr = GIDstr + ",'" + enumValue.GID + "'";
}
else {
GIDstr = "'" + enumValue.GID + "'";
}
}
}
if (!string.IsNullOrEmpty(GIDstr)) {
var dynalist = MsOpCtnrDAL.GetDynaList("GID IN ("+GIDstr+")", "");
foreach (var dyna in dynalist) {
if (!string.IsNullOrEmpty(modifydata.VESSEL))
dyna.VESSEL = modifydata.VESSEL;
if (!string.IsNullOrEmpty(modifydata.VOYNO))
dyna.VOYNO = modifydata.VOYNO;
if (!string.IsNullOrEmpty(modifydata.PORTLOAD_CNT_TIME))
dyna.PORTLOAD_CNT_TIME = modifydata.PORTLOAD_CNT_TIME;
if (!string.IsNullOrEmpty(modifydata.ETD))
dyna.ETD = modifydata.ETD;
if (!string.IsNullOrEmpty(modifydata.TRANSTYPE))
dyna.TRANSTYPE = modifydata.TRANSTYPE;
if (!string.IsNullOrEmpty(modifydata.PORTLOAD_STATOIN))
dyna.PORTLOAD_STATOIN = modifydata.PORTLOAD_STATOIN;
if (!string.IsNullOrEmpty(modifydata.PORTLOAD))
dyna.PORTLOAD = modifydata.PORTLOAD;
if (!string.IsNullOrEmpty(modifydata.ETD))
dyna.ETD = modifydata.ETD;
if (!string.IsNullOrEmpty(modifydata.DESTPORT))
dyna.DESTPORT = modifydata.DESTPORT;
if (!string.IsNullOrEmpty(modifydata.ETA))
dyna.ETA = modifydata.ETA;
if (!string.IsNullOrEmpty(modifydata.DESTPORT_STATOIN))
dyna.DESTPORT_STATOIN = modifydata.DESTPORT_STATOIN;
if (!string.IsNullOrEmpty(modifydata.DEST_CNT_TIME))
dyna.DEST_CNT_TIME = modifydata.DEST_CNT_TIME;
if (!string.IsNullOrEmpty(modifydata.DEST_RTCNT_TIME))
dyna.DEST_RTCNT_TIME = modifydata.DEST_RTCNT_TIME;
dyna.DbOperationType = DbOperationType.DbotUpd;
dyna.ModelUIStatus = "E";
dyna.MODIFYTIME = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
dyna.MODIFYUSER =userid;
if (dyna.ETA == "") dyna.ETA = null;
if (dyna.ETD == "") dyna.ETD = null;
if (dyna.PORTLOAD_CNT_TIME == "") dyna.PORTLOAD_CNT_TIME = null;
if (dyna.DEST_CNT_TIME == "") dyna.DEST_CNT_TIME = null;
if (dyna.DEST_RTCNT_TIME == "") dyna.DEST_RTCNT_TIME = null;
var modb = new ModelObjectDB();
MsOpCtnrDAL.SetDynaStatus(dyna);
result = modb.Save(dyna);
}
}
return result;
}
#endregion
/// <summary>
/// 获取费用状态的显示文字
/// </summary>
/// <param name="feestatusint"></param>
/// <returns></returns>
public static string getfeestatus(string feestatusint)
{
var result = "";
if (feestatusint == "0:")
{
return "审核通过";
}
else if (feestatusint == "1:")
{
return "录入状态";
}
else if (feestatusint == "2:")
{
return "提交审核";
}
else if (feestatusint == "8:")
{
return "部分结算";
}
else if (feestatusint == "9:")
{
return "结算完毕";
}
else if (feestatusint == "")
{
return "未录入";
}
else if (feestatusint == "3:")
{
return "申请修改";
}
else if (feestatusint == "4:")
{
return "申请删除";
}
else if (feestatusint == "6:")
{
return "驳回提交";
}
else if (feestatusint == "7:")
{
return "驳回申请";
}
else if (feestatusint.IndexOf("9:") > -1)
{
return "部分结算";
}
else if (feestatusint.IndexOf("8:") > -1)
{
return "部分结算";
}
else if (feestatusint.IndexOf("0:") > -1)
{
return "部分审核";
}
else if (feestatusint.IndexOf("2:") > -1)
{
return "部分提交";
}
else if (feestatusint.IndexOf("6:") > -1)
{
return "驳回提交";
}
else if (feestatusint.IndexOf("7:") > -1)
{
return "驳回申请";
}
return result;
}
#region 权限范围
public static string GetRangDAStr(string tb, string userid, string username, string companyid)
{
string str = "";
var strSql = new StringBuilder();
strSql.Append("SELECT ");
strSql.Append(" VISIBLERANGE,OPERATERANGE,AUTHORITYID ");
strSql.Append(" from VW_User_Authority ");
strSql.Append(" where [NAME]='modCtnMng' and USERID='" + userid + "' and ISDELETE=0");
string visiblerange = "4";
string operaterange = "4";
string AUTHORITYID = "";
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
visiblerange = Convert.ToString(reader["VISIBLERANGE"]);
operaterange = Convert.ToString(reader["OPERATERANGE"]);
AUTHORITYID = Convert.ToString(reader["AUTHORITYID"]);
break;
}
reader.Close();
}
if (visiblerange == "4")
{
str = "1=2";
}
else if (visiblerange == "3")
{
str = " (OP='" + username + "' OR SALE='" + username + "' OR CREATEUSER='" + userid + "')";
}
else if (visiblerange == "2")
{
if (tb == "index")
{
var rangeDa = new RangeDA();
var deptid = rangeDa.GetDEPTGID(userid);
str = " (SALE in (select showname from vw_user where deptgid='" + deptid + "') OR OP in (select showname from vw_user where deptgid='" + deptid + "') OR CREATEUSER in (select userid from vw_user where deptgid='" + deptid + "'))";
//var userstr = new StringBuilder();
//userstr.Append(" select SHOWNAME from [user] where GID in (select USERID from user_company where COMPANYID='" + companyid + "') and GID in (select userid from user_baseinfo where DEPTNAME='" + deptname + "')");
//Database userdb = DatabaseFactory.CreateDatabase();
//using (IDataReader reader = userdb.ExecuteReader(CommandType.Text, userstr.ToString()))
//{
// str = "";
// while (reader.Read())
// {
// if (str == "")
// {
// str = " (B.OP='" + Convert.ToString(reader["SHOWNAME"]) + "' OR B.SALE='" + Convert.ToString(reader["SHOWNAME"]) + "' OR B.CUSTSERVICE='" + Convert.ToString(reader["SHOWNAME"]) + "' OR B.DOC='" + Convert.ToString(reader["SHOWNAME"]) + "' OR B.FRCUSTSERVICE='" + Convert.ToString(reader["SHOWNAME"]) + "'";
// }
// else
// {
// str = str + " or B.OP='" + Convert.ToString(reader["SHOWNAME"]) + "' OR B.SALE='" + Convert.ToString(reader["SHOWNAME"]) + "' OR B.CUSTSERVICE='" + Convert.ToString(reader["SHOWNAME"]) + "' OR B.DOC='" + Convert.ToString(reader["SHOWNAME"]) + "' OR B.FRCUSTSERVICE='" + Convert.ToString(reader["SHOWNAME"]) + "'";
// };
// }
// str = str + ")";
// reader.Close();
//}
}
else
{
str = " UPPER(CORPID)='" + companyid + "'";
}
}
else if (visiblerange == "5")
{
if (tb == "index")
{
var userstr = new StringBuilder();
userstr.Append(" select COMPANYID from user_authority_range_company where userid='" + userid + "' and AUTHORITYID='" + AUTHORITYID + "' and VISIBLERANGE=1");
Database userdb = DatabaseFactory.CreateDatabase();
using (IDataReader reader = userdb.ExecuteReader(CommandType.Text, userstr.ToString()))
{
str = "";
while (reader.Read())
{
if (str == "")
{
str = " (Corpid='" + Convert.ToString(reader["COMPANYID"]) + "'";
}
else
{
str = str + " or Corpid='" + Convert.ToString(reader["COMPANYID"]) + "'";
};
}
str = str + ")";
reader.Close();
}
}
else
{
str = " UPPER(Corpid)='" + companyid + "'";
}
}
else if (visiblerange == "6")
{
if (tb == "index")
{
var userstr = new StringBuilder();
userstr.Append(" select OPID,(select SHOWNAME from [user] where GID=user_authority_range_op.OPID) SHOWNAME from user_authority_range_op where userid='" + userid + "' and AUTHORITYID='" + AUTHORITYID + "' and VISIBLERANGE=1");
Database userdb = DatabaseFactory.CreateDatabase();
using (IDataReader reader = userdb.ExecuteReader(CommandType.Text, userstr.ToString()))
{
str = "";
while (reader.Read())
{
if (str == "")
{
str = " (SALE='" + Convert.ToString(reader["SHOWNAME"]) + "' OR OP='" + Convert.ToString(reader["SHOWNAME"]) + "' OR CREATEUSER='" + Convert.ToString(reader["OPID"]) + "' ";
}
else
{
str = str + " or SALE='" + Convert.ToString(reader["SHOWNAME"]) + "' or OP='" + Convert.ToString(reader["SHOWNAME"]) + "' OR CREATEUSER='" + Convert.ToString(reader["OPID"]) + "'";
};
}
str = str + ")";
reader.Close();
}
}
else
{
str = " UPPER(Corpid)='" + companyid + "'";
}
}
else if (visiblerange == "1")
{
str = " UPPER(Corpid)='" + companyid + "'";
}
return str;
}
#endregion
#region 生成应收应付费用
public static bool CreateCost(CtnrList head, List<CtnrDetailAX> CtnrListAX, string userid, out string msg)
{
//判断该单号是否已生成过费用
Database db = DatabaseFactory.CreateDatabase();
string check = @"SELECT count(*) from op_ctnmng where ISCREATEFEE=1 and BSNO = '" + head.BSNO + "' ";
if (Convert.ToInt32(db.ExecuteScalar(CommandType.Text, check)) > 0)
{
msg = "已经生成过费用,不允许重复生成!";
return false;
}
List<CtnrCost> list = new List<CtnrCost>();
foreach (var item in CtnrListAX)
{
//dr += Convert.ToDecimal(item.DR);
//cr += Convert.ToDecimal(item.CR);
//crFeeName = item.DRFEENAME;
//drFeeName = item.CRFEENAME;
if (!string.IsNullOrEmpty(item.CR) && item.CR != "0")
{
CtnrCost s = new CtnrCost();
s.BSNO = head.BSNO;
s.CUSTOMERNAME = head.CUSTOMERNAME;
s.FEENAME =item.CRFEENAME;
s.CURR = item.CURR;
s.FEE =Convert.ToDecimal(item.CR);
s.REMARK = item.CNTRNO;
s.FEETYPE = "2";
list.Add(s);
}
if (!string.IsNullOrEmpty(item.DR) && item.DR != "0")
{
CtnrCost t = new CtnrCost();
t.BSNO = head.BSNO;
t.CUSTOMERNAME = head.CUSTOMERNAME;
t.FEENAME = item.DRFEENAME;
t.CURR = item.CURR;
t.FEE = Convert.ToDecimal(item.DR);
t.REMARK = item.CNTRNO;
t.FEETYPE = "1";
list.Add(t);
}
}
bool rst = false;
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
{
try
{
foreach (var cm in list)
{
//if (cm.FEE > 0)
//{
StringBuilder sb = new StringBuilder();
sb.Append(@"insert into ch_fee (GID,BSNO,FEETYPE,FEENAME,REMARK,CUSTOMERNAME,UNIT,UNITPRICE,QUANTITY,");
sb.Append(@"AMOUNT,CURRENCY,EXCHANGERATE,FEESTATUS,NOTAXAMOUNT,TAXUNITPRICE,ENTEROPERATOR,WMSOUTBSNO) ");
sb.Append(@" VALUES(");
sb.Append("'" + Guid.NewGuid() + "',");//GID
sb.Append("'" + cm.BSNO + "',");//BSNO
sb.Append("'" + cm.FEETYPE + "', ");//FEETYPE
sb.Append("'" + cm.FEENAME + "',");//FEENAME
sb.Append("'" + cm.REMARK + "',");//REMARK
sb.Append("'" + cm.CUSTOMERNAME + "',");//CUSTOMERNAME
sb.Append("'" + "单票" + "',");//UNIT
sb.Append(cm.FEE + ",");//UNITPRICE
sb.Append("1" + ",");//QUANTITY
sb.Append(cm.FEE + ",");//AMOUNT
sb.Append("'" + cm.CURR + "',");//CURRENCY
sb.Append("1" + ",");//EXCHANGERATE
sb.Append("1" + ",");//FEESTATUS
sb.Append(cm.FEE + ",");//NOTAXAMOUNT
sb.Append(cm.FEE + ",");//TAXUNITPRICE
sb.Append("'" + userid + "',");//ENTEROPERATOR
sb.Append("'" + head.BSNO + "'");//ENTEROPERATOR
sb.Append(")");
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sb.ToString(), null);
//}
}
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, "update op_ctnmng set ISCREATEFEE=1 where BSNO='" + head.BSNO + "'", null);
sqlTran.Commit();
msg = "生成成功!";
rst = true;
}
catch (Exception)
{
msg = "生成失败!";
sqlTran.Rollback();
rst = false;
}
finally
{
SqlHelper.CloseConnection();
sqlTran.Dispose();
}
}
return rst;
}
public static bool CancelCost(CtnrList head, string userid, out string msg)
{
Database db = DatabaseFactory.CreateDatabase();
bool rst = false;
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
{
try
{
StringBuilder sb = new StringBuilder();
sb.Append("delete from ch_fee where BSNO = '" + head.BSNO + "' and WMSOUTBSNO='"+head.BSNO+"' ");
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sb.ToString(), null);
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, "update op_ctnmng set ISCREATEFEE=0 where BSNO='"+head.BSNO+"'", null);
sqlTran.Commit();
msg = "取消费用成功!";
rst = true;
}
catch (Exception)
{
msg = "取消费用失败!";
sqlTran.Rollback();
rst = false;
}
finally
{
SqlHelper.CloseConnection();
sqlTran.Dispose();
}
}
return rst;
}
public static bool GetFeeCount(string BSNO)
{
var isfee = false;
var strSql = new StringBuilder();
strSql.Append("Select count(*) as count ");
strSql.Append(" from ch_fee ");
strSql.Append(" where BSNO='" + BSNO + "'");
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
var evData = Convert.ToInt32(reader["count"]);
if (evData > 0) { isfee = true; };
}
reader.Close();
}
return isfee;
}
#endregion
}
}