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.
2211 lines
99 KiB
C#
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
|
|
|
|
|
|
}
|
|
|
|
} |