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.
3536 lines
178 KiB
C#
3536 lines
178 KiB
C#
using System;
|
|
using System.Data;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using DSWeb.MvcContainer.Models.MsOpPrice;
|
|
using DSWeb.MvcContainer.Models.MsOpCtnApply;
|
|
using DSWeb.MvcContainer.Models.MsOpCtnBsCard;
|
|
using Microsoft.Practices.EnterpriseLibrary.Data;
|
|
using DSWeb.Areas.CommMng.Models;
|
|
using HcUtility.Comm;
|
|
using DSWeb.MvcShipping.DAL.MsBaseInfoDAL;
|
|
using DSWeb.MvcShipping.DAL.MsChFeeDAL;
|
|
using DSWeb.EntityDA;
|
|
using DSWeb.Areas.CommMng.DAL;
|
|
using DSWeb.MvcShipping.Models.MsChFee;
|
|
using DSWeb.MvcContainer.DAL.MsOpPrice;
|
|
|
|
namespace DSWeb.MvcContainer.DAL.MsOpCtnBsCard
|
|
{
|
|
public class MsOpCtnBsCardDAL
|
|
{
|
|
#region Inquery DataList
|
|
|
|
static public List<OpCtnBsCard> GetDataList(int start, int limit, out int totel, string strCondition, string pricetype, string companyid, string userid,string username, string sort = null)
|
|
{
|
|
var rangstr = GetRangDAStr(pricetype, 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 * from (SELECT row_number() over (");
|
|
var sortstring = DatasetSort.Getsortstring(sort);
|
|
if (!string.IsNullOrEmpty(sortstring))
|
|
{
|
|
sortstring = sortstring.Replace("DESTPORT_OVER_DAYS_AMT", "cast(round(isnull(DESTPORT_OVER_DAYS,0)*isnull(DESTPORT_OVER_DAYS_FEE,0),2) as numeric(20,2))");
|
|
|
|
strSql.Append(" order by " + sortstring);
|
|
}
|
|
else
|
|
{
|
|
strSql.Append(" order by INPUTTIME DESC ");
|
|
|
|
}
|
|
strSql.Append(@") as num , ");
|
|
|
|
|
|
strSql.Append(" b.GID,b.CTNNO,b.CTNPROP,[BSNO],SEABSNO,[APPLYNO],[CUSTOMERNAME],[GOODSNAME] ,[ETD]");
|
|
strSql.Append(",PREETA,[ETA],[AGENTNAME],[CYCLE_DAY],[IS_BOOKING]");
|
|
strSql.Append(",[IS_RETURE_EMPTY],[I_CUSTNO],[I_ETD],PREI_ETA,[I_ETA],[I_MBLNO],[I_CUSTNAME],[I_CARRIER],[I_CONTRACT],[I_PORTLOAD_CNT_TIME]");
|
|
strSql.Append(",[I_PORTLOAD],[I_ARRIVALDATE],[I_DEST_CNT_TIME],[I_DEST_RTCNT_TIME],[I_DESTPORT_STATOIN]");
|
|
strSql.Append(",[I_DESTPORT]");
|
|
strSql.Append(",[IS_DB],[D_CUSTNO],[D_ETD],PRED_ETA,[D_ETA],[D_MBLNO],[D_CUSTNAME],[D_CARRIER],[D_CONTRACT],[D_PORTLOAD_CNT_TIME]");
|
|
strSql.Append(",[D_PORTLOAD],[D_ARRIVALDATE],[D_DEST_CNT_TIME],[D_DEST_RTCNT_TIME],[D_DESTPORT_STATOIN]");
|
|
strSql.Append(",[D_DESTPORT]");
|
|
strSql.Append(",[CUSTNO],[OP],[BOOKGOODNAME],[TRUCKNAME],[TRUCKLINKNAME],[TRUCKLINKTEL],b.CURSTATOIN,[LOADADDR],[CUSTOMGOODNAME],[MBLNO],[CARRIER],[PORTLOAD_STATOIN]");
|
|
strSql.Append(",[PORTLOAD_CNT_TIME],[LOADFACTORY],[PORTLOAD],[PORTLOADDATE],[PORTLOAD_FREE_DAYS],[PORTLOAD_OVER_DAYS]");
|
|
strSql.Append(",[PORTLOAD_OVER_DAYS_FEE],[PORTLOAD_OVER_DAYS_AMT],[DESTPORT],[ARRIVALDATE],[DESTAGENTNAME]");
|
|
strSql.Append(",[DEST_CNT_TIME],[DEST_RTCNT_TIME],[DESTPORT_STATOIN],[DESTPORT_FREE_DAYS],[DESTPORT_OVER_DAYS]");
|
|
strSql.Append(",[DESTPORT_OVER_DAYS_FEE],cast(round(isnull(DESTPORT_OVER_DAYS,0)*isnull(DESTPORT_OVER_DAYS_FEE,0),2) as numeric(20,2)) DESTPORT_OVER_DAYS_AMT,[DETAIN_CTN_DAYS],[PRE_CNT_TIME],[AUDITBY]");
|
|
strSql.Append(",AUDITSTATUS,[AUDITTIME],[AUDITRESULT],b.REMARKS,b.INPUTBY,b.INPUTTIME,b.COMPANYID,PUTCTNAUDITBY,PUTCTNAUDITSTATUS,PUTCTNAUDITTIME,PUTCTNAUDITRESULT");
|
|
strSql.Append(",ISCLOSE,CLOSEDATE,REPAIRSTATUS,CLEARINGSTATUS,IS_POD_CLEAN,IS_PUTCTN,PUTCTNDATE,MODIFYTIME,MODIFYUSER");
|
|
strSql.Append(",(select TOP 1 ISPORTLOADDATE from op_ctnapply where BSNO=b.APPLYNO) as ISPORTLOADDATE");
|
|
strSql.Append(",(select ShowName from [user] where GID=b.INPUTBY) as INPUTBYREF");
|
|
strSql.Append(",(select ShowName from [user] where GID=b.AUDITBY) as AUDITBYREF");
|
|
strSql.Append(",(select ShowName from [user] where GID=b.PUTCTNAUDITBY) as PUTCTNAUDITBYREF");
|
|
strSql.Append(",(select TOP 1 PORTLOAD_CNT_TIME FROM op_ctnbscard WHERE CTNNO=b.CTNNO and GID<>b.GID AND PORTLOAD_CNT_TIME>b.PORTLOAD_CNT_TIME ORDER BY PORTLOAD_CNT_TIME ) as NPORTLOAD_CNT_TIME");
|
|
strSql.Append(",(select TOP 1 ETD FROM op_ctnbscard WHERE CTNNO=b.CTNNO and GID<>b.GID AND PORTLOAD_CNT_TIME>b.PORTLOAD_CNT_TIME ORDER BY PORTLOAD_CNT_TIME ) as NETD");
|
|
strSql.Append(",(select TOP 1 GOODSNAME FROM op_ctnbscard WHERE CTNNO=b.CTNNO and GID<>b.GID AND PORTLOAD_CNT_TIME<b.PORTLOAD_CNT_TIME ORDER BY PORTLOAD_CNT_TIME DESC) as PREGOODSNAME");
|
|
strSql.Append(",CASE WHEN IS_RETURE_EMPTY=1 THEN case when I_ETA<=GETDATE() then I_ETA else null end ELSE case when ETA<=GETDATE() then ETA else null end END AS VETA,");
|
|
strSql.Append("CASE WHEN IS_DB=1 THEN");
|
|
strSql.Append(" (case when D_DEST_RTCNT_TIME <> '' and D_DEST_RTCNT_TIME <= GETDATE() then D_DESTPORT_STATOIN + '已还箱-闲置'");
|
|
strSql.Append(" else case when D_DEST_CNT_TIME <> '' and D_DEST_CNT_TIME <= GETDATE() then D_DESTPORT + '-待还箱'");
|
|
strSql.Append(" else case when D_ETA <> '' and D_ETA <= GETDATE() then D_DESTPORT + '-待提货'");
|
|
strSql.Append(" else case when D_ETD <> '' and D_ETD <= GETDATE() then D_PORTLOAD + '-已开船'");
|
|
strSql.Append(" else case when D_PORTLOAD_CNT_TIME <> '' and D_PORTLOAD_CNT_TIME <= GETDATE() then D_PORTLOAD + '-待开船' end end end end end)");
|
|
strSql.Append(" ELSE");
|
|
strSql.Append(" CASE WHEN IS_RETURE_EMPTY = 1 THEN");
|
|
strSql.Append(" (case when I_DEST_RTCNT_TIME <> '' and I_DEST_RTCNT_TIME <= GETDATE() then I_DESTPORT_STATOIN + '已还箱-闲置'");
|
|
strSql.Append(" else case when I_DEST_CNT_TIME <> '' and I_DEST_CNT_TIME <= GETDATE() then I_DESTPORT + '-待还箱'");
|
|
strSql.Append(" else case when I_ETA <> '' and I_ETA <= GETDATE() then I_DESTPORT + '-待提货'");
|
|
strSql.Append(" else case when I_ETD <> '' and I_ETD <= GETDATE() then I_PORTLOAD + '-已开船'");
|
|
strSql.Append(" else case when I_PORTLOAD_CNT_TIME <> '' and I_PORTLOAD_CNT_TIME <= GETDATE() then I_PORTLOAD + '-待开船' end end end end end)");
|
|
strSql.Append(" ELSE");
|
|
strSql.Append(" (case when DEST_RTCNT_TIME <> '' and DEST_RTCNT_TIME <= GETDATE() then DESTPORT_STATOIN + '已还箱-闲置'");
|
|
strSql.Append(" else case when DEST_CNT_TIME <> '' and DEST_CNT_TIME <= GETDATE() then DESTPORT + '-待还箱'");
|
|
strSql.Append(" else case when ETA <> '' and ETA <= GETDATE() then DESTPORT + '-待提货'");
|
|
strSql.Append(" else case when ETD <> '' and ETD <= GETDATE() then PORTLOAD + '-已开船'");
|
|
strSql.Append(" else case when PORTLOAD_CNT_TIME <> '' and PORTLOAD_CNT_TIME <= GETDATE() then PORTLOAD + '-待开船' end end end end end)");
|
|
strSql.Append(" END");
|
|
strSql.Append(" END ");
|
|
strSql.Append(" CUR_PORT,SHENTIME");
|
|
|
|
//系统判断业务卡中“生成目的港箱使费”这个按钮有没有点过
|
|
strSql.Append(",dbo.F_CTNBSCARD_ExistsMDGXSF(b.GID) MDGXSFSTATUS");
|
|
strSql.Append(",GOODSNAME+'_'+(select top 1 chemicalgoodsname from code_msds where CHEMICALCGOODSNAME=GOODSNAME) GOODSNAMEREF");//货物名称(含英文简称)
|
|
strSql.Append(",SERVICE,isnull(NEEDBEHEATED,0)NEEDBEHEATED,AGENTINPUTBY,isnull(EMPTYCTNALLOCATION,0)EMPTYCTNALLOCATION");//运输条款 是否加热 代理维护人
|
|
strSql.Append(" from op_ctnbscard b ");
|
|
|
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
strSql.Append(" where " + strCondition);
|
|
}
|
|
strSql.Append(@")as t ");
|
|
strSql.Append(string.Format("where t.num>{0} and t.num<={1} order by t.num ", start, start + limit)); //
|
|
|
|
totel = getTotalCount(strCondition);
|
|
return SetData(strSql);
|
|
}
|
|
|
|
public static int getTotalCount(string strCondition)
|
|
{
|
|
|
|
|
|
StringBuilder strSql = new StringBuilder();
|
|
strSql.Append("select count(*) from op_ctnbscard b");
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
strSql.Append(" where " + strCondition);
|
|
}
|
|
int cnt = 0;
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
{
|
|
while (reader.Read())
|
|
{
|
|
cnt = Convert.ToInt32(reader[0]);
|
|
}
|
|
}
|
|
return cnt;
|
|
}
|
|
static public List<OpCtnBsCard> GetDataAllList(string strCondition, string pricetype, string companyid, string userid, string username, string sort = null)
|
|
{
|
|
var rangstr = GetRangDAStr(pricetype, 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 b.GID,b.CTNNO,b.CTNPROP,[BSNO],SEABSNO,[APPLYNO],[CUSTOMERNAME],[GOODSNAME] ,[ETD]");
|
|
strSql.Append(",PREETA,[ETA],[AGENTNAME],[CYCLE_DAY],[IS_RETURE_EMPTY],[IS_BOOKING],[I_CUSTNO]");
|
|
strSql.Append(",[I_ETD],PREI_ETA,[I_ETA],[I_MBLNO],[I_CUSTNAME],[I_CARRIER],[I_CONTRACT],[I_PORTLOAD_CNT_TIME]");
|
|
strSql.Append(",[I_PORTLOAD],[I_ARRIVALDATE],[I_DEST_CNT_TIME],[I_DEST_RTCNT_TIME],[I_DESTPORT_STATOIN],[I_DESTPORT]");
|
|
strSql.Append(",[IS_DB],[D_CUSTNO],[D_ETD],PRED_ETA,[D_ETA],[D_MBLNO],[D_CUSTNAME],[D_CARRIER],[D_CONTRACT],[D_PORTLOAD_CNT_TIME]");
|
|
strSql.Append(",[D_PORTLOAD],[D_ARRIVALDATE],[D_DEST_CNT_TIME],[D_DEST_RTCNT_TIME],[D_DESTPORT_STATOIN]");
|
|
strSql.Append(",[D_DESTPORT]");
|
|
strSql.Append(",[CUSTNO],[OP],[BOOKGOODNAME],[TRUCKNAME],[TRUCKLINKNAME],[TRUCKLINKTEL]");
|
|
strSql.Append(",b.CURSTATOIN,[LOADADDR],[CUSTOMGOODNAME],[MBLNO],[CARRIER],[PORTLOAD_STATOIN]");
|
|
strSql.Append(",[PORTLOAD_CNT_TIME],[LOADFACTORY],[PORTLOAD],[PORTLOADDATE],[PORTLOAD_FREE_DAYS],[PORTLOAD_OVER_DAYS]");
|
|
strSql.Append(",[PORTLOAD_OVER_DAYS_FEE],[PORTLOAD_OVER_DAYS_AMT],[DESTPORT],[ARRIVALDATE],[DESTAGENTNAME]");
|
|
strSql.Append(",[DEST_CNT_TIME],[DEST_RTCNT_TIME],[DESTPORT_STATOIN],[DESTPORT_FREE_DAYS],[DESTPORT_OVER_DAYS]");
|
|
strSql.Append(",[DESTPORT_OVER_DAYS_FEE],cast(round(isnull(DESTPORT_OVER_DAYS,0)*isnull(DESTPORT_OVER_DAYS_FEE,0),2) as numeric(20,2)) DESTPORT_OVER_DAYS_AMT,[DETAIN_CTN_DAYS],[PRE_CNT_TIME],[AUDITBY]");
|
|
strSql.Append(",AUDITSTATUS,[AUDITTIME],[AUDITRESULT],b.REMARKS,b.INPUTBY,b.INPUTTIME,b.COMPANYID,PUTCTNAUDITBY,PUTCTNAUDITSTATUS,PUTCTNAUDITTIME,PUTCTNAUDITRESULT");
|
|
strSql.Append(",ISCLOSE,CLOSEDATE,REPAIRSTATUS,CLEARINGSTATUS,IS_POD_CLEAN,IS_PUTCTN,PUTCTNDATE,MODIFYTIME,MODIFYUSER");
|
|
strSql.Append(",(select TOP 1 ISPORTLOADDATE from op_ctnapply where BSNO=b.APPLYNO) as ISPORTLOADDATE");
|
|
strSql.Append(",(select ShowName from [user] where GID=b.INPUTBY) as INPUTBYREF");
|
|
strSql.Append(",(select ShowName from [user] where GID=b.AUDITBY) as AUDITBYREF");
|
|
strSql.Append(",(select ShowName from [user] where GID=b.PUTCTNAUDITBY) as PUTCTNAUDITBYREF");
|
|
strSql.Append(",(select TOP 1 PORTLOAD_CNT_TIME FROM op_ctnbscard WHERE CTNNO=b.CTNNO and GID<>b.GID AND PORTLOAD_CNT_TIME>b.PORTLOAD_CNT_TIME ORDER BY PORTLOAD_CNT_TIME ) as NPORTLOAD_CNT_TIME");
|
|
strSql.Append(",(select TOP 1 ETD FROM op_ctnbscard WHERE CTNNO=b.CTNNO and GID<>b.GID AND PORTLOAD_CNT_TIME>b.PORTLOAD_CNT_TIME ORDER BY PORTLOAD_CNT_TIME ) as NETD");
|
|
strSql.Append(",(select TOP 1 GOODSNAME FROM op_ctnbscard WHERE CTNNO=b.CTNNO and GID<>b.GID AND PORTLOAD_CNT_TIME<b.PORTLOAD_CNT_TIME ORDER BY PORTLOAD_CNT_TIME DESC) as PREGOODSNAME");
|
|
strSql.Append(",CASE WHEN IS_RETURE_EMPTY=1 THEN case when I_ETA<=GETDATE() then I_ETA else null end ELSE case when ETA<=GETDATE() then ETA else null end END AS VETA,");
|
|
strSql.Append("CASE WHEN IS_DB=1 THEN");
|
|
strSql.Append(" (case when D_DEST_RTCNT_TIME <> '' and D_DEST_RTCNT_TIME <= GETDATE() then D_DESTPORT_STATOIN + '已还箱-闲置'");
|
|
strSql.Append(" else case when D_DEST_CNT_TIME <> '' and D_DEST_CNT_TIME <= GETDATE() then D_DESTPORT + '-待还箱'");
|
|
strSql.Append(" else case when D_ETA <> '' and D_ETA <= GETDATE() then D_DESTPORT + '-待提货'");
|
|
strSql.Append(" else case when D_ETD <> '' and D_ETD <= GETDATE() then D_PORTLOAD + '-已开船'");
|
|
strSql.Append(" else case when D_PORTLOAD_CNT_TIME <> '' and D_PORTLOAD_CNT_TIME <= GETDATE() then D_PORTLOAD + '-待开船' end end end end end)");
|
|
strSql.Append(" ELSE");
|
|
strSql.Append(" CASE WHEN IS_RETURE_EMPTY = 1 THEN");
|
|
strSql.Append(" (case when I_DEST_RTCNT_TIME <> '' and I_DEST_RTCNT_TIME <= GETDATE() then I_DESTPORT_STATOIN + '已还箱-闲置'");
|
|
strSql.Append(" else case when I_DEST_CNT_TIME <> '' and I_DEST_CNT_TIME <= GETDATE() then I_DESTPORT + '-待还箱'");
|
|
strSql.Append(" else case when I_ETA <> '' and I_ETA <= GETDATE() then I_DESTPORT + '-待提货'");
|
|
strSql.Append(" else case when I_ETD <> '' and I_ETD <= GETDATE() then I_PORTLOAD + '-已开船'");
|
|
strSql.Append(" else case when I_PORTLOAD_CNT_TIME <> '' and I_PORTLOAD_CNT_TIME <= GETDATE() then I_PORTLOAD + '-待开船' end end end end end)");
|
|
strSql.Append(" ELSE");
|
|
strSql.Append(" (case when DEST_RTCNT_TIME <> '' and DEST_RTCNT_TIME <= GETDATE() then DESTPORT_STATOIN + '已还箱-闲置'");
|
|
strSql.Append(" else case when DEST_CNT_TIME <> '' and DEST_CNT_TIME <= GETDATE() then DESTPORT + '-待还箱'");
|
|
strSql.Append(" else case when ETA <> '' and ETA <= GETDATE() then DESTPORT + '-待提货'");
|
|
strSql.Append(" else case when ETD <> '' and ETD <= GETDATE() then PORTLOAD + '-已开船'");
|
|
strSql.Append(" else case when PORTLOAD_CNT_TIME <> '' and PORTLOAD_CNT_TIME <= GETDATE() then PORTLOAD + '-待开船' end end end end end)");
|
|
strSql.Append(" END");
|
|
strSql.Append(" END ");
|
|
strSql.Append(" CUR_PORT,SHENTIME");
|
|
|
|
//系统判断业务卡中“生成目的港箱使费”这个按钮有没有点过
|
|
strSql.Append(",dbo.F_CTNBSCARD_ExistsMDGXSF(b.GID) MDGXSFSTATUS");
|
|
strSql.Append(",GOODSNAME+'_'+(select top 1 chemicalgoodsname from code_msds where CHEMICALCGOODSNAME=GOODSNAME) GOODSNAMEREF");//货物名称(含英文简称)
|
|
strSql.Append(",SERVICE,isnull(NEEDBEHEATED,0)NEEDBEHEATED,AGENTINPUTBY,isnull(EMPTYCTNALLOCATION,0)EMPTYCTNALLOCATION");//运输条款 是否加热 代理维护人
|
|
strSql.Append(" from op_ctnbscard b ");
|
|
|
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
strSql.Append(" where " + strCondition);
|
|
}
|
|
|
|
var sortstring = DatasetSort.Getsortstring(sort);
|
|
if (!string.IsNullOrEmpty(sortstring))
|
|
{
|
|
sortstring = sortstring.Replace("DESTPORT_OVER_DAYS_AMT", "cast(round(isnull(DESTPORT_OVER_DAYS,0)*isnull(DESTPORT_OVER_DAYS_FEE,0),2) as numeric(20,2))");
|
|
|
|
strSql.Append(" order by " + sortstring);
|
|
}
|
|
else
|
|
{
|
|
strSql.Append(" order by INPUTTIME DESC ");
|
|
|
|
}
|
|
return SetData(strSql);
|
|
}
|
|
static public string GetDataListStr(string strCondition, string pricetype, string companyid, string userid, string username, string sort = null)
|
|
{
|
|
var rangstr = GetRangDAStr(pricetype, userid, userid, companyid);
|
|
if (!string.IsNullOrEmpty(rangstr))
|
|
{
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
strCondition = strCondition + " and " + rangstr;
|
|
}
|
|
else
|
|
{
|
|
strCondition = rangstr;
|
|
}
|
|
}
|
|
|
|
var strSql = new StringBuilder();
|
|
strSql.Append("select * from v_op_ctnbscard b ");
|
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
strSql.Append(" where " + strCondition);
|
|
}
|
|
var sortstring = DatasetSort.Getsortstring(sort);
|
|
if (!string.IsNullOrEmpty(sortstring))
|
|
{
|
|
strSql.Append(" order by " + sortstring);
|
|
}
|
|
else
|
|
{
|
|
strSql.Append(" order by INPUTTIME DESC ");
|
|
|
|
}
|
|
|
|
return strSql.ToString();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static public OpCtnBsCard GetData(string condition, string pricetype, string companyid, string userid, string username)
|
|
{
|
|
OpCtnBsCard data = null;
|
|
var list = GetDataAllList(condition, pricetype,companyid, userid,username);
|
|
if (list.Count > 0)
|
|
data = list[0];
|
|
|
|
if (data == null)
|
|
{
|
|
data = new OpCtnBsCard();
|
|
data.COMPANYID = companyid;
|
|
|
|
}
|
|
|
|
return data;
|
|
}
|
|
static public OpCtnBsCard GetData(string condition, string userid)
|
|
{
|
|
|
|
var strSql = new StringBuilder();
|
|
strSql.Append("SELECT b.GID,b.CTNNO,b.CTNPROP,b.BSNO,SEABSNO,[APPLYNO],[CUSTOMERNAME],[GOODSNAME],[ETD]");
|
|
strSql.Append(",PREETA,[ETA],[AGENTNAME],[CYCLE_DAY],[IS_RETURE_EMPTY],[IS_BOOKING],[I_CUSTNO]");
|
|
strSql.Append(",[I_ETD],PREI_ETA,[I_ETA],[I_MBLNO],[I_CUSTNAME],[I_CARRIER],[I_CONTRACT],[I_PORTLOAD_CNT_TIME]");
|
|
strSql.Append(",[I_PORTLOAD],[I_ARRIVALDATE],[I_DEST_CNT_TIME],[I_DEST_RTCNT_TIME],[I_DESTPORT_STATOIN],[I_DESTPORT]");
|
|
strSql.Append(",[IS_DB],[D_CUSTNO],[D_ETD],PRED_ETA,[D_ETA],[D_MBLNO],[D_CUSTNAME],[D_CARRIER],[D_CONTRACT],[D_PORTLOAD_CNT_TIME]");
|
|
strSql.Append(",[D_PORTLOAD],[D_ARRIVALDATE],[D_DEST_CNT_TIME],[D_DEST_RTCNT_TIME],[D_DESTPORT_STATOIN]");
|
|
strSql.Append(",[D_DESTPORT]");
|
|
strSql.Append(",[CUSTNO],[OP],[BOOKGOODNAME],[TRUCKNAME],[TRUCKLINKNAME],[TRUCKLINKTEL]");
|
|
strSql.Append(",b.CURSTATOIN,[LOADADDR],[CUSTOMGOODNAME],[MBLNO],[CARRIER],[PORTLOAD_STATOIN]");
|
|
strSql.Append(",[PORTLOAD_CNT_TIME],[LOADFACTORY],[PORTLOAD],[PORTLOADDATE],[PORTLOAD_FREE_DAYS],[PORTLOAD_OVER_DAYS]");
|
|
strSql.Append(",[PORTLOAD_OVER_DAYS_FEE],[PORTLOAD_OVER_DAYS_AMT],[DESTPORT],[ARRIVALDATE],[DESTAGENTNAME]");
|
|
strSql.Append(",[DEST_CNT_TIME],[DEST_RTCNT_TIME],[DESTPORT_STATOIN],[DESTPORT_FREE_DAYS],[DESTPORT_OVER_DAYS]");
|
|
strSql.Append(",[DESTPORT_OVER_DAYS_FEE],cast(round(isnull(DESTPORT_OVER_DAYS,0)*isnull(DESTPORT_OVER_DAYS_FEE,0),2) as numeric(20,2)) DESTPORT_OVER_DAYS_AMT,[DETAIN_CTN_DAYS],[PRE_CNT_TIME],[AUDITBY]");
|
|
strSql.Append(",AUDITSTATUS,[AUDITTIME],[AUDITRESULT],b.REMARKS,b.INPUTBY,b.INPUTTIME,b.COMPANYID,b.MODIFYTIME,b.MODIFYUSER");
|
|
strSql.Append(",ISCLOSE,CLOSEDATE,REPAIRSTATUS,CLEARINGSTATUS,IS_POD_CLEAN,IS_PUTCTN,PUTCTNDATE,PUTCTNAUDITBY,PUTCTNAUDITSTATUS,PUTCTNAUDITTIME,PUTCTNAUDITRESULT");
|
|
strSql.Append(",(select ShowName from [user] where GID=b.INPUTBY) as INPUTBYREF");
|
|
strSql.Append(",(select TOP 1 ISPORTLOADDATE from op_ctnapply where BSNO=b.APPLYNO) as ISPORTLOADDATE");
|
|
strSql.Append(",(select ShowName from [user] where GID=b.AUDITBY) as AUDITBYREF");
|
|
strSql.Append(",(select ShowName from [user] where GID=b.PUTCTNAUDITBY) as PUTCTNAUDITBYREF");
|
|
strSql.Append(",(select TOP 1 PORTLOAD_CNT_TIME FROM op_ctnbscard WHERE CTNNO=b.CTNNO and GID<>b.GID AND PORTLOAD_CNT_TIME>b.PORTLOAD_CNT_TIME ORDER BY PORTLOAD_CNT_TIME) as NPORTLOAD_CNT_TIME");
|
|
strSql.Append(",(select TOP 1 ETD FROM op_ctnbscard WHERE CTNNO=b.CTNNO and GID<>b.GID AND PORTLOAD_CNT_TIME>b.PORTLOAD_CNT_TIME ORDER BY PORTLOAD_CNT_TIME) as NETD");
|
|
strSql.Append(",(select TOP 1 GOODSNAME FROM op_ctnbscard WHERE CTNNO=b.CTNNO and GID<>b.GID AND PORTLOAD_CNT_TIME<b.PORTLOAD_CNT_TIME ORDER BY PORTLOAD_CNT_TIME DESC) as PREGOODSNAME");
|
|
strSql.Append(",CASE WHEN IS_RETURE_EMPTY=1 THEN case when I_ETA<=GETDATE() then I_ETA else null end ELSE case when ETA<=GETDATE() then ETA else null end END AS VETA,");
|
|
strSql.Append("CASE WHEN IS_DB=1 THEN");
|
|
strSql.Append(" (case when D_DEST_RTCNT_TIME <> '' and D_DEST_RTCNT_TIME <= GETDATE() then D_DESTPORT_STATOIN + '已还箱-闲置'");
|
|
strSql.Append(" else case when D_DEST_CNT_TIME <> '' and D_DEST_CNT_TIME <= GETDATE() then D_DESTPORT + '-待还箱'");
|
|
strSql.Append(" else case when D_ETA <> '' and D_ETA <= GETDATE() then D_DESTPORT + '-待提货'");
|
|
strSql.Append(" else case when D_ETD <> '' and D_ETD <= GETDATE() then D_PORTLOAD + '-已开船'");
|
|
strSql.Append(" else case when D_PORTLOAD_CNT_TIME <> '' and D_PORTLOAD_CNT_TIME <= GETDATE() then D_PORTLOAD + '-待开船' end end end end end)");
|
|
strSql.Append(" ELSE");
|
|
strSql.Append(" CASE WHEN IS_RETURE_EMPTY = 1 THEN");
|
|
strSql.Append(" (case when I_DEST_RTCNT_TIME <> '' and I_DEST_RTCNT_TIME <= GETDATE() then I_DESTPORT_STATOIN + '已还箱-闲置'");
|
|
strSql.Append(" else case when I_DEST_CNT_TIME <> '' and I_DEST_CNT_TIME <= GETDATE() then I_DESTPORT + '-待还箱'");
|
|
strSql.Append(" else case when I_ETA <> '' and I_ETA <= GETDATE() then I_DESTPORT + '-待提货'");
|
|
strSql.Append(" else case when I_ETD <> '' and I_ETD <= GETDATE() then I_PORTLOAD + '-已开船'");
|
|
strSql.Append(" else case when I_PORTLOAD_CNT_TIME <> '' and I_PORTLOAD_CNT_TIME <= GETDATE() then I_PORTLOAD + '-待开船' end end end end end)");
|
|
strSql.Append(" ELSE");
|
|
strSql.Append(" (case when DEST_RTCNT_TIME <> '' and DEST_RTCNT_TIME <= GETDATE() then DESTPORT_STATOIN + '已还箱-闲置'");
|
|
strSql.Append(" else case when DEST_CNT_TIME <> '' and DEST_CNT_TIME <= GETDATE() then DESTPORT + '-待还箱'");
|
|
strSql.Append(" else case when ETA <> '' and ETA <= GETDATE() then DESTPORT + '-待提货'");
|
|
strSql.Append(" else case when ETD <> '' and ETD <= GETDATE() then PORTLOAD + '-已开船'");
|
|
strSql.Append(" else case when PORTLOAD_CNT_TIME <> '' and PORTLOAD_CNT_TIME <= GETDATE() then PORTLOAD + '-待开船' end end end end end)");
|
|
strSql.Append(" END");
|
|
strSql.Append(" END ");
|
|
strSql.Append(" CUR_PORT,SHENTIME");
|
|
//系统判断业务卡中“生成目的港箱使费”这个按钮有没有点过
|
|
strSql.Append(",dbo.F_CTNBSCARD_ExistsMDGXSF(b.GID) MDGXSFSTATUS");
|
|
strSql.Append(",GOODSNAME+'_'+(select top 1 chemicalgoodsname from code_msds where CHEMICALCGOODSNAME=GOODSNAME) GOODSNAMEREF");//货物名称(含英文简称)
|
|
strSql.Append(",SERVICE,isnull(NEEDBEHEATED,0)NEEDBEHEATED,AGENTINPUTBY,isnull(EMPTYCTNALLOCATION,0)EMPTYCTNALLOCATION");//运输条款 是否加热 代理维护人
|
|
strSql.Append(" from op_ctnbscard b ");
|
|
|
|
|
|
if (!string.IsNullOrEmpty(condition))
|
|
{
|
|
strSql.Append(" where " + condition);
|
|
}
|
|
|
|
var list = SetData(strSql);
|
|
if (list.Count > 0)
|
|
return list[0];
|
|
return new OpCtnBsCard();
|
|
}
|
|
|
|
|
|
static public List<OpCtnBsCard> GetRptCtnStatusList(string strCondition, string sort = null)
|
|
{
|
|
|
|
var strSql = new StringBuilder();
|
|
strSql.Append("SELECT * FROM (SELECT [GID],[CTNNO],[CTNPROP],[BSNO],SEABSNO,[APPLYNO],[CUSTOMERNAME],[GOODSNAME],[PREGOODSNAME] ,[ETD]");
|
|
strSql.Append(",PREETA,[ETA],[AGENTNAME],[CYCLE_DAY],[IS_RETURE_EMPTY],[IS_BOOKING],[I_CUSTNO]");
|
|
strSql.Append(",[I_ETD],PREI_ETA,[I_ETA],[I_MBLNO],[I_CUSTNAME],[I_CARRIER],[I_CONTRACT],[I_PORTLOAD_CNT_TIME]");
|
|
strSql.Append(",[I_PORTLOAD],[I_ARRIVALDATE],[I_DEST_CNT_TIME],[I_DEST_RTCNT_TIME],[I_DESTPORT_STATOIN],[I_DESTPORT]");
|
|
strSql.Append(",[IS_DB],[D_CUSTNO],[D_ETD],PRED_ETA,[D_ETA],[D_MBLNO],[D_CUSTNAME],[D_CARRIER],[D_CONTRACT],[D_PORTLOAD_CNT_TIME]");
|
|
strSql.Append(",[D_PORTLOAD],[D_ARRIVALDATE],[D_DEST_CNT_TIME],[D_DEST_RTCNT_TIME],[D_DESTPORT_STATOIN]");
|
|
strSql.Append(",[D_DESTPORT]");
|
|
strSql.Append(",[CUSTNO],[OP],[BOOKGOODNAME],[TRUCKNAME],[TRUCKLINKNAME],[TRUCKLINKTEL]");
|
|
strSql.Append(",[CURSTATOIN],[LOADADDR],[CUSTOMGOODNAME],[MBLNO],[CARRIER],[PORTLOAD_STATOIN]");
|
|
strSql.Append(",[PORTLOAD_CNT_TIME],[LOADFACTORY],[PORTLOAD],[PORTLOADDATE],[PORTLOAD_FREE_DAYS],[PORTLOAD_OVER_DAYS]");
|
|
strSql.Append(",[PORTLOAD_OVER_DAYS_FEE],[PORTLOAD_OVER_DAYS_AMT],[DESTPORT],[ARRIVALDATE],[DESTAGENTNAME]");
|
|
strSql.Append(",[DEST_CNT_TIME],[DEST_RTCNT_TIME],[DESTPORT_STATOIN],[DESTPORT_FREE_DAYS],[DESTPORT_OVER_DAYS]");
|
|
strSql.Append(",[DESTPORT_OVER_DAYS_FEE],cast(round(isnull(DESTPORT_OVER_DAYS,0)*isnull(DESTPORT_OVER_DAYS_FEE,0),2) as numeric(20,2)) DESTPORT_OVER_DAYS_AMT,[DETAIN_CTN_DAYS],[PRE_CNT_TIME],[AUDITBY]");
|
|
strSql.Append(",AUDITSTATUS,[AUDITTIME],[AUDITRESULT],[REMARKS],[INPUTBY],[INPUTTIME],[COMPANYID],PUTCTNAUDITBY,PUTCTNAUDITSTATUS,PUTCTNAUDITTIME,PUTCTNAUDITRESULT");
|
|
strSql.Append(",ISCLOSE,CLOSEDATE,REPAIRSTATUS,CLEARINGSTATUS,IS_POD_CLEAN,IS_PUTCTN,PUTCTNDATE,INPUTTIME MODIFYTIME,'' MODIFYUSER");
|
|
strSql.Append(",(select ShowName from [user] where GID=b.INPUTBY) as INPUTBYREF");
|
|
strSql.Append(",(select ShowName from [user] where GID=b.AUDITBY) as AUDITBYREF");
|
|
strSql.Append(",(select TOP 1 ISPORTLOADDATE from op_ctnapply where BSNO=b.APPLYNO) as ISPORTLOADDATE");
|
|
strSql.Append(",(select ShowName from [user] where GID=b.PUTCTNAUDITBY) as PUTCTNAUDITBYREF");
|
|
strSql.Append(",(select TOP 1 PORTLOAD_CNT_TIME FROM op_ctnbscard WHERE CTNNO=b.CTNNO and GID<>b.GID AND PORTLOAD_CNT_TIME>b.PORTLOAD_CNT_TIME ORDER BY PORTLOAD_CNT_TIME ) as NPORTLOAD_CNT_TIME");
|
|
strSql.Append(",(select TOP 1 ETD FROM op_ctnbscard WHERE CTNNO=b.CTNNO and GID<>b.GID AND PORTLOAD_CNT_TIME>b.PORTLOAD_CNT_TIME ORDER BY PORTLOAD_CNT_TIME ) as NETD");
|
|
|
|
|
|
strSql.Append(" ,VCURSTATOIN CUR_PORT,NULL SHENTIME ");
|
|
//系统判断业务卡中“生成目的港箱使费”这个按钮有没有点过
|
|
strSql.Append(",dbo.F_CTNBSCARD_ExistsMDGXSF(b.GID) MDGXSFSTATUS");
|
|
strSql.Append(",GOODSNAME+'_'+(select top 1 chemicalgoodsname from code_msds where CHEMICALCGOODSNAME=GOODSNAME) GOODSNAMEREF");//货物名称(含英文简称)
|
|
strSql.Append(",SERVICE,isnull(NEEDBEHEATED,0)NEEDBEHEATED,AGENTINPUTBY,isnull(EMPTYCTNALLOCATION,0)EMPTYCTNALLOCATION");//运输条款 是否加热 代理维护人
|
|
strSql.Append(" from v_top_opctnbscard b ");
|
|
|
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
strSql.Append(" where " + strCondition);
|
|
}
|
|
strSql.Append(") AS B ");
|
|
var sortstring = DatasetSort.Getsortstring(sort);
|
|
if (!string.IsNullOrEmpty(sortstring))
|
|
{
|
|
sortstring = sortstring.Replace("DESTPORT_OVER_DAYS_AMT", "cast(round(isnull(DESTPORT_OVER_DAYS,0)*isnull(DESTPORT_OVER_DAYS_FEE,0),2) as numeric(20,2))");
|
|
strSql.Append(" order by " + sortstring);
|
|
}
|
|
else
|
|
{
|
|
strSql.Append(" order by INPUTTIME DESC ");
|
|
|
|
}
|
|
return SetData(strSql);
|
|
}
|
|
|
|
|
|
private static List<OpCtnBsCard> SetData(StringBuilder strSql)
|
|
{
|
|
var headList = new List<OpCtnBsCard>();
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
{
|
|
while (reader.Read())
|
|
{
|
|
OpCtnBsCard data = new OpCtnBsCard();
|
|
#region Set DB data to Object
|
|
data.GID = Convert.ToString(reader["GID"]);
|
|
data.CTNNO = Convert.ToString(reader["CTNNO"]);
|
|
data.CTNPROP = Convert.ToString(reader["CTNPROP"]);
|
|
data.BSNO = Convert.ToString(reader["BSNO"]);
|
|
data.SEABSNO = Convert.ToString(reader["SEABSNO"]);
|
|
data.APPLYNO = Convert.ToString(reader["APPLYNO"]);
|
|
data.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]);
|
|
data.GOODSNAME = Convert.ToString(reader["GOODSNAME"]);
|
|
data.GOODSNAMEREF = Convert.ToString(reader["GOODSNAMEREF"]);
|
|
data.PREGOODSNAME = Convert.ToString(reader["PREGOODSNAME"]);
|
|
|
|
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");
|
|
if (reader["PREETA"] != DBNull.Value)
|
|
data.PREETA = Convert.ToDateTime(reader["PREETA"]).ToString("yyyy-MM-dd");
|
|
data.AGENTNAME = Convert.ToString(reader["AGENTNAME"]);
|
|
if (reader["NETD"] != DBNull.Value)
|
|
data.NETD = Convert.ToDateTime(reader["NETD"]).ToString("yyyy-MM-dd");
|
|
if (reader["ISPORTLOADDATE"] != DBNull.Value)
|
|
data.ISPORTLOADDATE = Convert.ToBoolean(reader["ISPORTLOADDATE"]);
|
|
|
|
if (reader["ISCLOSE"] != DBNull.Value)
|
|
data.ISCLOSE = Convert.ToBoolean(reader["ISCLOSE"]);
|
|
if (reader["CLOSEDATE"] != DBNull.Value)
|
|
data.CLOSEDATE = Convert.ToDateTime(reader["CLOSEDATE"]).ToString("yyyy-MM-dd");
|
|
|
|
if (reader["IS_PUTCTN"] != DBNull.Value)
|
|
data.IS_PUTCTN = Convert.ToBoolean(reader["IS_PUTCTN"]);
|
|
if (reader["PUTCTNDATE"] != DBNull.Value)
|
|
data.PUTCTNDATE = Convert.ToDateTime(reader["PUTCTNDATE"]).ToString("yyyy-MM-dd");
|
|
|
|
|
|
if (reader["IS_RETURE_EMPTY"] != DBNull.Value)
|
|
data.IS_RETURE_EMPTY = Convert.ToBoolean(reader["IS_RETURE_EMPTY"]);
|
|
|
|
if (reader["IS_DB"] != DBNull.Value)
|
|
data.IS_DB = Convert.ToBoolean(reader["IS_DB"]);
|
|
|
|
if (reader["IS_POD_CLEAN"] != DBNull.Value)
|
|
data.IS_POD_CLEAN = Convert.ToBoolean(reader["IS_POD_CLEAN"]);
|
|
|
|
if (reader["IS_BOOKING"] != DBNull.Value)
|
|
data.IS_BOOKING = Convert.ToBoolean(reader["IS_BOOKING"]);
|
|
data.I_CUSTNO = Convert.ToString(reader["I_CUSTNO"]);
|
|
if (reader["I_ETD"] != DBNull.Value)
|
|
data.I_ETD = Convert.ToDateTime(reader["I_ETD"]).ToString("yyyy-MM-dd");
|
|
if (reader["I_ETA"] != DBNull.Value)
|
|
data.I_ETA = Convert.ToDateTime(reader["I_ETA"]).ToString("yyyy-MM-dd");
|
|
if (reader["PREI_ETA"] != DBNull.Value)
|
|
data.PREI_ETA = Convert.ToDateTime(reader["PREI_ETA"]).ToString("yyyy-MM-dd");
|
|
data.I_MBLNO = Convert.ToString(reader["I_MBLNO"]);
|
|
data.I_CUSTNAME = Convert.ToString(reader["I_CUSTNAME"]);
|
|
data.I_CARRIER = Convert.ToString(reader["I_CARRIER"]);
|
|
data.I_CONTRACT = Convert.ToString(reader["I_CONTRACT"]);
|
|
if (reader["I_PORTLOAD_CNT_TIME"] != DBNull.Value)
|
|
data.I_PORTLOAD_CNT_TIME = Convert.ToDateTime(reader["I_PORTLOAD_CNT_TIME"]).ToString("yyyy-MM-dd");
|
|
data.I_PORTLOAD = Convert.ToString(reader["I_PORTLOAD"]);
|
|
if (reader["I_ARRIVALDATE"] != DBNull.Value)
|
|
data.I_ARRIVALDATE = Convert.ToDateTime(reader["I_ARRIVALDATE"]).ToString("yyyy-MM-dd");
|
|
if (reader["I_DEST_CNT_TIME"] != DBNull.Value)
|
|
data.I_DEST_CNT_TIME = Convert.ToDateTime(reader["I_DEST_CNT_TIME"]).ToString("yyyy-MM-dd");
|
|
if (reader["I_DEST_RTCNT_TIME"] != DBNull.Value)
|
|
data.I_DEST_RTCNT_TIME = Convert.ToDateTime(reader["I_DEST_RTCNT_TIME"]).ToString("yyyy-MM-dd");
|
|
data.I_DESTPORT_STATOIN = Convert.ToString(reader["I_DESTPORT_STATOIN"]);
|
|
data.I_DESTPORT = Convert.ToString(reader["I_DESTPORT"]);
|
|
data.D_CUSTNO = Convert.ToString(reader["D_CUSTNO"]);
|
|
if (reader["D_ETD"] != DBNull.Value)
|
|
data.D_ETD = Convert.ToDateTime(reader["D_ETD"]).ToString("yyyy-MM-dd");
|
|
if (reader["D_ETA"] != DBNull.Value)
|
|
data.D_ETA = Convert.ToDateTime(reader["D_ETA"]).ToString("yyyy-MM-dd");
|
|
if (reader["PRED_ETA"] != DBNull.Value)
|
|
data.PRED_ETA = Convert.ToDateTime(reader["PRED_ETA"]).ToString("yyyy-MM-dd");
|
|
data.D_MBLNO = Convert.ToString(reader["D_MBLNO"]);
|
|
data.D_CUSTNAME = Convert.ToString(reader["D_CUSTNAME"]);
|
|
data.D_CARRIER = Convert.ToString(reader["D_CARRIER"]);
|
|
data.D_CONTRACT = Convert.ToString(reader["D_CONTRACT"]);
|
|
if (reader["D_PORTLOAD_CNT_TIME"] != DBNull.Value)
|
|
data.D_PORTLOAD_CNT_TIME = Convert.ToDateTime(reader["D_PORTLOAD_CNT_TIME"]).ToString("yyyy-MM-dd");
|
|
data.D_PORTLOAD = Convert.ToString(reader["D_PORTLOAD"]);
|
|
if (reader["D_ARRIVALDATE"] != DBNull.Value)
|
|
data.D_ARRIVALDATE = Convert.ToDateTime(reader["D_ARRIVALDATE"]).ToString("yyyy-MM-dd");
|
|
if (reader["D_DEST_CNT_TIME"] != DBNull.Value)
|
|
data.D_DEST_CNT_TIME = Convert.ToDateTime(reader["D_DEST_CNT_TIME"]).ToString("yyyy-MM-dd");
|
|
if (reader["D_DEST_RTCNT_TIME"] != DBNull.Value)
|
|
data.D_DEST_RTCNT_TIME = Convert.ToDateTime(reader["D_DEST_RTCNT_TIME"]).ToString("yyyy-MM-dd");
|
|
data.D_DESTPORT_STATOIN = Convert.ToString(reader["D_DESTPORT_STATOIN"]);
|
|
data.D_DESTPORT = Convert.ToString(reader["D_DESTPORT"]);
|
|
data.CUSTNO = Convert.ToString(reader["CUSTNO"]);
|
|
data.OP = Convert.ToString(reader["OP"]);
|
|
data.BOOKGOODNAME = Convert.ToString(reader["BOOKGOODNAME"]);
|
|
data.TRUCKNAME = Convert.ToString(reader["TRUCKNAME"]);
|
|
data.TRUCKLINKNAME = Convert.ToString(reader["TRUCKLINKNAME"]);
|
|
data.TRUCKLINKTEL = Convert.ToString(reader["TRUCKLINKTEL"]);
|
|
data.CURSTATOIN = Convert.ToString(reader["CURSTATOIN"]);
|
|
data.LOADADDR = Convert.ToString(reader["LOADADDR"]);
|
|
data.CUSTOMGOODNAME = Convert.ToString(reader["CUSTOMGOODNAME"]);
|
|
data.MBLNO = Convert.ToString(reader["MBLNO"]);
|
|
data.CARRIER = Convert.ToString(reader["CARRIER"]);
|
|
data.PORTLOAD_STATOIN = Convert.ToString(reader["PORTLOAD_STATOIN"]);
|
|
data.LOADFACTORY = Convert.ToString(reader["LOADFACTORY"]);
|
|
data.PORTLOAD = Convert.ToString(reader["PORTLOAD"]);
|
|
if (reader["PORTLOADDATE"] != DBNull.Value)
|
|
data.PORTLOADDATE = Convert.ToDateTime(reader["PORTLOADDATE"]).ToString("yyyy-MM-dd");
|
|
if (reader["PORTLOAD_CNT_TIME"] != DBNull.Value)
|
|
data.PORTLOAD_CNT_TIME = Convert.ToDateTime(reader["PORTLOAD_CNT_TIME"]).ToString("yyyy-MM-dd");
|
|
if (reader["NPORTLOAD_CNT_TIME"] != DBNull.Value)
|
|
data.NPORTLOAD_CNT_TIME = Convert.ToDateTime(reader["NPORTLOAD_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"]);
|
|
|
|
//起运港超期天数= 开船日-起运港提箱日+1-起运港免箱天数
|
|
|
|
if (data.ISPORTLOADDATE == true)
|
|
{
|
|
if (data.PORTLOADDATE != "" && (data.PORTLOAD_CNT_TIME != "" && (Convert.ToDateTime(data.PORTLOAD_CNT_TIME) < DateTime.Now)))
|
|
{
|
|
|
|
//2017-04-12 SR2017041100021
|
|
var _days = Convert.ToDateTime(data.PORTLOADDATE) - 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(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;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if (reader["PORTLOAD_OVER_DAYS_FEE"] != DBNull.Value)
|
|
data.PORTLOAD_OVER_DAYS_FEE = Convert.ToDecimal(reader["PORTLOAD_OVER_DAYS_FEE"]);
|
|
|
|
|
|
|
|
if (reader["PORTLOAD_OVER_DAYS_AMT"] != DBNull.Value)
|
|
data.PORTLOAD_OVER_DAYS_AMT = Convert.ToDecimal(reader["PORTLOAD_OVER_DAYS_AMT"]);
|
|
|
|
data.PORTLOAD_OVER_DAYS_AMT = data.PORTLOAD_OVER_DAYS * data.PORTLOAD_OVER_DAYS_FEE;
|
|
|
|
|
|
data.DESTPORT = Convert.ToString(reader["DESTPORT"]);
|
|
if (reader["ARRIVALDATE"] != DBNull.Value)
|
|
data.ARRIVALDATE = Convert.ToDateTime(reader["ARRIVALDATE"]).ToString("yyyy-MM-dd");
|
|
data.DESTAGENTNAME = Convert.ToString(reader["DESTAGENTNAME"]);
|
|
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"] != DBNull.Value)
|
|
//data.DESTPORT_OVER_DAYS = Convert.ToDecimal(reader["DESTPORT_OVER_DAYS"]);
|
|
|
|
if (reader["DESTPORT_OVER_DAYS_FEE"] != DBNull.Value)
|
|
data.DESTPORT_OVER_DAYS_FEE = Convert.ToDecimal(reader["DESTPORT_OVER_DAYS_FEE"]);
|
|
|
|
//目的港超期天数= 目的港提箱日期-到港日期+1-免箱天数
|
|
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;
|
|
}
|
|
|
|
|
|
// if (reader["DESTPORT_OVER_DAYS_AMT"] != DBNull.Value)
|
|
// data.DESTPORT_OVER_DAYS_AMT = Convert.ToDecimal(reader["DESTPORT_OVER_DAYS_AMT"]);
|
|
|
|
data.DESTPORT_OVER_DAYS_AMT = data.DESTPORT_OVER_DAYS * data.DESTPORT_OVER_DAYS_FEE;
|
|
|
|
if (reader["DETAIN_CTN_DAYS"] != DBNull.Value)
|
|
data.DETAIN_CTN_DAYS = Convert.ToDecimal(reader["DETAIN_CTN_DAYS"]);
|
|
|
|
if (reader["PRE_CNT_TIME"] != DBNull.Value)
|
|
data.PRE_CNT_TIME = Convert.ToDateTime(reader["PRE_CNT_TIME"]).ToString("yyyy-MM-dd");
|
|
data.REMARKS = Convert.ToString(reader["REMARKS"]);
|
|
data.INPUTBY = Convert.ToString(reader["INPUTBY"]);
|
|
data.INPUTBYREF = Convert.ToString(reader["INPUTBYREF"]);
|
|
if (reader["INPUTTIME"] != DBNull.Value)
|
|
data.INPUTTIME = Convert.ToDateTime(reader["INPUTTIME"]).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.AUDITSTATUS = Convert.ToString(reader["AUDITSTATUS"]);
|
|
data.AUDITBY = Convert.ToString(reader["AUDITBY"]);
|
|
data.AUDITBYREF = Convert.ToString(reader["AUDITBYREF"]);
|
|
if (reader["AUDITTIME"] != DBNull.Value)
|
|
data.AUDITTIME = Convert.ToDateTime(reader["AUDITTIME"]).ToString("yyyy-MM-dd HH:mm:ss");
|
|
if (reader["SHENTIME"] != DBNull.Value)
|
|
data.SHENTIME = Convert.ToDateTime(reader["SHENTIME"]).ToString("yyyy-MM-dd HH:mm:ss");
|
|
data.AUDITRESULT = Convert.ToString(reader["AUDITRESULT"]);
|
|
data.PUTCTNAUDITSTATUS = Convert.ToString(reader["PUTCTNAUDITSTATUS"]);
|
|
data.PUTCTNAUDITBY = Convert.ToString(reader["PUTCTNAUDITBY"]);
|
|
data.PUTCTNAUDITBYREF = Convert.ToString(reader["PUTCTNAUDITBYREF"]);
|
|
if (reader["PUTCTNAUDITTIME"] != DBNull.Value)
|
|
data.PUTCTNAUDITTIME = Convert.ToDateTime(reader["PUTCTNAUDITTIME"]).ToString("yyyy-MM-dd HH:mm:ss");
|
|
data.PUTCTNAUDITRESULT = Convert.ToString(reader["PUTCTNAUDITRESULT"]);
|
|
data.COMPANYID = Convert.ToString(reader["COMPANYID"]);
|
|
data.REPAIRSTATUS = Convert.ToString(reader["REPAIRSTATUS"]);
|
|
data.CLEARINGSTATUS = Convert.ToString(reader["CLEARINGSTATUS"]);
|
|
data.CUR_PORT = Convert.ToString(reader["CUR_PORT"]);
|
|
|
|
if (data.IS_DB == true)
|
|
{
|
|
|
|
if (data.D_DEST_RTCNT_TIME != "" && (Convert.ToDateTime(data.D_DEST_RTCNT_TIME) < DateTime.Now))
|
|
{
|
|
// data.CUR_PORT = data.I_DESTPORT + "已还箱-闲置";
|
|
data.CUR_DATE = data.D_DEST_RTCNT_TIME;
|
|
if (data.NPORTLOAD_CNT_TIME != "")
|
|
data.DETAIN_CTN_DAYS = DateDiff(data.D_DEST_RTCNT_TIME, data.NPORTLOAD_CNT_TIME);
|
|
else
|
|
data.DETAIN_CTN_DAYS = DateDiff(data.D_DEST_RTCNT_TIME, DateTime.Now.ToString("yyyy-MM-dd"));
|
|
|
|
}
|
|
else if (data.D_DEST_CNT_TIME != "" && (Convert.ToDateTime(data.D_DEST_CNT_TIME) < DateTime.Now))
|
|
{
|
|
// data.CUR_PORT = data.I_DESTPORT + "-待还箱";
|
|
data.CUR_DATE = data.D_DEST_CNT_TIME;
|
|
}
|
|
else if (data.D_ETA != "" && (Convert.ToDateTime(data.D_ETA) < DateTime.Now))
|
|
{
|
|
// data.CUR_PORT = data.I_DESTPORT + "-待提货";
|
|
data.CUR_DATE = data.D_ETA;
|
|
|
|
}
|
|
else if (data.D_ETD != "" && (Convert.ToDateTime(data.D_ETD) < DateTime.Now))
|
|
{
|
|
// data.CUR_PORT = data.I_PORTLOAD + "-" + data.I_DESTPORT;
|
|
data.CUR_DATE = data.D_ETD;
|
|
}
|
|
else if (data.D_PORTLOAD_CNT_TIME != "" && (Convert.ToDateTime(data.D_PORTLOAD_CNT_TIME) < DateTime.Now))
|
|
{
|
|
data.CUR_PORT = data.D_PORTLOAD + "-待开船";
|
|
data.CUR_DATE = data.D_PORTLOAD_CNT_TIME;
|
|
}
|
|
else
|
|
{
|
|
// data.CUR_PORT = data.I_PORTLOAD + "-待装货";
|
|
data.CUR_DATE = DateTime.Now.ToString("yyyy-MM-dd");
|
|
}
|
|
|
|
|
|
}
|
|
else
|
|
{
|
|
|
|
|
|
if (data.IS_RETURE_EMPTY == true)
|
|
{
|
|
|
|
if (data.I_DEST_RTCNT_TIME != "" && (Convert.ToDateTime(data.I_DEST_RTCNT_TIME) < DateTime.Now))
|
|
{
|
|
// data.CUR_PORT = data.I_DESTPORT + "已还箱-闲置";
|
|
data.CUR_DATE = data.I_DEST_RTCNT_TIME;
|
|
if (data.NPORTLOAD_CNT_TIME != "")
|
|
data.DETAIN_CTN_DAYS = DateDiff(data.I_DEST_RTCNT_TIME, data.NPORTLOAD_CNT_TIME);
|
|
else
|
|
data.DETAIN_CTN_DAYS = DateDiff(data.I_DEST_RTCNT_TIME, DateTime.Now.ToString("yyyy-MM-dd"));
|
|
|
|
}
|
|
else if (data.I_DEST_CNT_TIME != "" && (Convert.ToDateTime(data.I_DEST_CNT_TIME) < DateTime.Now))
|
|
{
|
|
// data.CUR_PORT = data.I_DESTPORT + "-待还箱";
|
|
data.CUR_DATE = data.I_DEST_CNT_TIME;
|
|
}
|
|
else if (data.I_ETA != "" && (Convert.ToDateTime(data.I_ETA) < DateTime.Now))
|
|
{
|
|
// data.CUR_PORT = data.I_DESTPORT + "-待提货";
|
|
data.CUR_DATE = data.I_ETA;
|
|
|
|
}
|
|
else if (data.I_ETD != "" && (Convert.ToDateTime(data.I_ETD) < DateTime.Now))
|
|
{
|
|
// data.CUR_PORT = data.I_PORTLOAD + "-" + data.I_DESTPORT;
|
|
data.CUR_DATE = data.I_ETD;
|
|
}
|
|
else if (data.I_PORTLOAD_CNT_TIME != "" && (Convert.ToDateTime(data.I_PORTLOAD_CNT_TIME) < DateTime.Now))
|
|
{
|
|
data.CUR_PORT = data.I_PORTLOAD + "-待开船";
|
|
data.CUR_DATE = data.I_PORTLOAD_CNT_TIME;
|
|
}
|
|
else
|
|
{
|
|
// data.CUR_PORT = data.I_PORTLOAD + "-待装货";
|
|
data.CUR_DATE = DateTime.Now.ToString("yyyy-MM-dd");
|
|
}
|
|
|
|
|
|
}
|
|
else
|
|
{
|
|
|
|
if (data.DEST_RTCNT_TIME != "" && (Convert.ToDateTime(data.DEST_RTCNT_TIME) < DateTime.Now))
|
|
{
|
|
// data.CUR_PORT = data.DESTPORT + "已还箱-闲置";
|
|
data.CUR_DATE = data.DEST_RTCNT_TIME;
|
|
if (data.NPORTLOAD_CNT_TIME != "")
|
|
data.DETAIN_CTN_DAYS = DateDiff(data.DEST_RTCNT_TIME, data.NPORTLOAD_CNT_TIME);
|
|
else
|
|
data.DETAIN_CTN_DAYS = DateDiff(data.DEST_RTCNT_TIME, DateTime.Now.ToString("yyyy-MM-dd"));
|
|
|
|
|
|
}
|
|
else if (data.DEST_CNT_TIME != "" && (Convert.ToDateTime(data.DEST_CNT_TIME) < DateTime.Now))
|
|
{
|
|
// data.CUR_PORT = data.DESTPORT + "-待还箱";
|
|
data.CUR_DATE = data.DEST_CNT_TIME;
|
|
}
|
|
else if (data.ETA != "" && (Convert.ToDateTime(data.ETA) < DateTime.Now))
|
|
{
|
|
// data.CUR_PORT = data.DESTPORT + "-待提货";
|
|
data.CUR_DATE = data.ETA;
|
|
|
|
}
|
|
else if (data.ETD != "" && (Convert.ToDateTime(data.ETD) < DateTime.Now))
|
|
{
|
|
// data.CUR_PORT = data.PORTLOAD + "-" + data.DESTPORT;
|
|
data.CUR_DATE = data.ETD;
|
|
}
|
|
else if (data.PORTLOAD_CNT_TIME != "" && (Convert.ToDateTime(data.PORTLOAD_CNT_TIME) < DateTime.Now))
|
|
{
|
|
// data.CUR_PORT = data.PORTLOAD + "-待开船";
|
|
data.CUR_DATE = data.PORTLOAD_CNT_TIME;
|
|
}
|
|
else
|
|
{
|
|
// data.CUR_PORT = data.PORTLOAD + "-待装货";
|
|
data.CUR_DATE = DateTime.Now.ToString("yyyy-MM-dd");
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
if (data.ETD != "" && data.NETD != "")
|
|
data.CYCLE_DAY = DateDiff(data.ETD, data.NETD);
|
|
else if (data.ETD != "")
|
|
data.CYCLE_DAY = DateDiff(data.ETD, DateTime.Now.ToString("yyyy-MM-dd"));
|
|
|
|
data.MDGXSFSTATUS = Convert.ToString(reader["MDGXSFSTATUS"]); //是否产生了目的港箱使费
|
|
if (data.MDGXSFSTATUS == "") {
|
|
if ((data.DEST_RTCNT_TIME != "") && (data.DESTPORT_OVER_DAYS_AMT != 0))
|
|
data.MDGXSFSTATUS = "已还箱,未生成";
|
|
if ((data.DEST_RTCNT_TIME == "") && (data.DESTPORT_OVER_DAYS_AMT != 0))
|
|
data.MDGXSFSTATUS = "未还箱,未生成";
|
|
}
|
|
|
|
|
|
data.SERVICE = Convert.ToString(reader["SERVICE"]);//运输条款
|
|
data.NEEDBEHEATED = Convert.ToBoolean(reader["NEEDBEHEATED"]);//是否加热
|
|
data.AGENTINPUTBY = Convert.ToString(reader["AGENTINPUTBY"]);//代理维护人
|
|
data.EMPTYCTNALLOCATION = Convert.ToBoolean(reader["EMPTYCTNALLOCATION"]);//空箱调拨
|
|
#endregion
|
|
headList.Add(data);
|
|
}
|
|
reader.Close();
|
|
}
|
|
return headList;
|
|
}
|
|
|
|
|
|
static public List<OpCtnBsCard> GetDataFeeList(string strCondition, string datetype, string companyid, string userid, string sort = null)
|
|
{
|
|
var rangstr = GetRangDAStr("", userid, userid, companyid);
|
|
if (!string.IsNullOrEmpty(rangstr))
|
|
{
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
strCondition = strCondition + " and " + rangstr;
|
|
}
|
|
else
|
|
{
|
|
strCondition = rangstr;
|
|
}
|
|
}
|
|
|
|
var strSql = new StringBuilder();
|
|
strSql.Append("SELECT B.GID,B.CTNNO,t.CTNPROP,B.[BSNO],[APPLYNO],[CUSTOMERNAME],[GOODSNAME],[PREGOODSNAME] ,[ETD]");
|
|
strSql.Append(",[ETA],[AGENTNAME],[CUR_PORT],[CYCLE_DAY],[IS_RETURE_EMPTY],[IS_BOOKING],[I_CUSTNO]");
|
|
strSql.Append(",[I_ETD],[I_ETA],[I_MBLNO],[I_CUSTNAME],[I_CARRIER],[I_CONTRACT],[I_PORTLOAD_CNT_TIME]");
|
|
strSql.Append(",[I_PORTLOAD],[I_ARRIVALDATE],[I_DEST_CNT_TIME],[I_DEST_RTCNT_TIME],[I_DESTPORT_STATOIN]");
|
|
strSql.Append(",[I_DESTPORT],[CUSTNO],[OP],[BOOKGOODNAME],[TRUCKNAME],[TRUCKLINKNAME],[TRUCKLINKTEL]");
|
|
strSql.Append(",B.CURSTATOIN,[LOADADDR],[CUSTOMGOODNAME],[MBLNO],[CARRIER],[PORTLOAD_STATOIN]");
|
|
strSql.Append(",[PORTLOAD_CNT_TIME],[LOADFACTORY],[PORTLOAD],[PORTLOAD_FREE_DAYS],[PORTLOAD_OVER_DAYS]");
|
|
strSql.Append(",[PORTLOAD_OVER_DAYS_FEE],[PORTLOAD_OVER_DAYS_AMT],[DESTPORT],[ARRIVALDATE],[DESTAGENTNAME]");
|
|
strSql.Append(",[DEST_CNT_TIME],[DEST_RTCNT_TIME],[DESTPORT_STATOIN],[DESTPORT_FREE_DAYS],[DESTPORT_OVER_DAYS]");
|
|
strSql.Append(",[DESTPORT_OVER_DAYS_FEE],[DESTPORT_OVER_DAYS_AMT],[DETAIN_CTN_DAYS],[PRE_CNT_TIME],B.AUDITBY");
|
|
strSql.Append(",B.AUDITSTATUS,B.AUDITTIME,B.AUDITRESULT,B.REMARKS,B.INPUTBY,B.INPUTTIME,B.COMPANYID");
|
|
strSql.Append(",ISCLOSE,CLOSEDATE,REPAIRSTATUS,CLEARINGSTATUS");
|
|
strSql.Append(",(select ShowName from [user] where GID=b.INPUTBY) as INPUTBYREF");
|
|
strSql.Append(",(select ShowName from [user] where GID=b.AUDITBY) as AUDITBYREF");
|
|
strSql.Append(",(select TOP 1 PORTLOAD_CNT_TIME FROM op_ctnbscard WHERE PORTLOAD_CNT_TIME IS NOT NULL AND CTNNO=b.CTNNO and GID<>b.GID AND (PORTLOAD_CNT_TIME>b.PORTLOAD_CNT_TIME or ETD>b.ETD) ORDER BY PORTLOAD_CNT_TIME ) as NPORTLOAD_CNT_TIME");
|
|
strSql.Append(",(select TOP 1 ETD FROM op_ctnbscard WHERE ETD IS NOT NULL AND CTNNO=b.CTNNO and GID<>b.GID AND (ETD>b.ETD or PORTLOAD_CNT_TIME>b.PORTLOAD_CNT_TIME) ORDER BY ETD ) as NETD");
|
|
strSql.Append(",G.RMBDR,G.RMBCR,G.USDDR,G.USDCR,G.XSFUSDDR,G.OTUSDDR,G.XSFRMBDR,G.OTRMBDR,G.GXFUSDDR,G.HDFRMBDR,t.CTNRENT ");
|
|
strSql.Append(" from v_op_ctnbscard b ");
|
|
strSql.Append("LEFT JOIN v_opctn_gain_sum G ON (G.BSNO=B.GID) ");
|
|
strSql.Append("LEFT JOIN code_ctntk t ON (t.CTNNO=B.CTNNO) ");
|
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
strSql.Append(" where " + strCondition);
|
|
}
|
|
var sortstring = DatasetSort.Getsortstring(sort);
|
|
if (!string.IsNullOrEmpty(sortstring))
|
|
{
|
|
strSql.Append(" order by " + sortstring);
|
|
}
|
|
else
|
|
{
|
|
strSql.Append(" order by B.INPUTTIME DESC ");
|
|
|
|
}
|
|
return SetFeeData(strSql,datetype);
|
|
}
|
|
|
|
static public string GetDataFeeListStr(string strCondition, string datetype, string companyid, string userid, string sort = null)
|
|
{
|
|
var rangstr = GetRangDAStr("", userid, userid, companyid);
|
|
if (!string.IsNullOrEmpty(rangstr))
|
|
{
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
strCondition = strCondition + " and " + rangstr;
|
|
}
|
|
else
|
|
{
|
|
strCondition = rangstr;
|
|
}
|
|
}
|
|
|
|
var strSql = new StringBuilder();
|
|
strSql.Append("SELECT B.GID,B.CTNNO,t.CTNPROP,B.[BSNO],[APPLYNO],[CUSTOMERNAME],[GOODSNAME],[PREGOODSNAME] ,[ETD]");
|
|
strSql.Append(",[ETA],[AGENTNAME],[CUR_PORT],[CYCLE_DAY],[IS_RETURE_EMPTY],[IS_BOOKING],[I_CUSTNO]");
|
|
strSql.Append(",[I_ETD],[I_ETA],[I_MBLNO],[I_CUSTNAME],[I_CARRIER],[I_CONTRACT],[I_PORTLOAD_CNT_TIME]");
|
|
strSql.Append(",[I_PORTLOAD],[I_ARRIVALDATE],[I_DEST_CNT_TIME],[I_DEST_RTCNT_TIME],[I_DESTPORT_STATOIN]");
|
|
strSql.Append(",[I_DESTPORT],[CUSTNO],[OP],[BOOKGOODNAME],[TRUCKNAME],[TRUCKLINKNAME],[TRUCKLINKTEL]");
|
|
strSql.Append(",B.CURSTATOIN,[LOADADDR],[CUSTOMGOODNAME],[MBLNO],[CARRIER],[PORTLOAD_STATOIN]");
|
|
strSql.Append(",[PORTLOAD_CNT_TIME],[LOADFACTORY],[PORTLOAD],[PORTLOAD_FREE_DAYS],[PORTLOAD_OVER_DAYS]");
|
|
strSql.Append(",[PORTLOAD_OVER_DAYS_FEE],[PORTLOAD_OVER_DAYS_AMT],[DESTPORT],[ARRIVALDATE],[DESTAGENTNAME]");
|
|
strSql.Append(",[DEST_CNT_TIME],[DEST_RTCNT_TIME],[DESTPORT_STATOIN],[DESTPORT_FREE_DAYS],[DESTPORT_OVER_DAYS]");
|
|
strSql.Append(",[DESTPORT_OVER_DAYS_FEE],[DESTPORT_OVER_DAYS_AMT],[DETAIN_CTN_DAYS],[PRE_CNT_TIME],B.AUDITBY");
|
|
strSql.Append(",B.AUDITSTATUS,B.AUDITTIME,B.AUDITRESULT,B.REMARKS,B.INPUTBY,B.INPUTTIME,B.COMPANYID");
|
|
strSql.Append(",ISCLOSE,CLOSEDATE,REPAIRSTATUS,CLEARINGSTATUS");
|
|
strSql.Append(",(select ShowName from [user] where GID=b.INPUTBY) as INPUTBYREF");
|
|
strSql.Append(",(select ShowName from [user] where GID=b.AUDITBY) as AUDITBYREF");
|
|
strSql.Append(",(select TOP 1 PORTLOAD_CNT_TIME FROM op_ctnbscard WHERE PORTLOAD_CNT_TIME IS NOT NULL AND CTNNO=b.CTNNO and GID<>b.GID AND (PORTLOAD_CNT_TIME>b.PORTLOAD_CNT_TIME or ETD>b.ETD) ORDER BY PORTLOAD_CNT_TIME ) as NPORTLOAD_CNT_TIME");
|
|
strSql.Append(",(select TOP 1 ETD FROM op_ctnbscard WHERE ETD IS NOT NULL AND CTNNO=b.CTNNO and GID<>b.GID AND (ETD>b.ETD or PORTLOAD_CNT_TIME>b.PORTLOAD_CNT_TIME) ORDER BY ETD ) as NETD");
|
|
strSql.Append(",G.RMBDR,G.RMBCR,G.USDDR,G.USDCR,G.XSFUSDDR,G.OTUSDDR,G.XSFRMBDR,G.OTRMBDR,G.GXFUSDDR,G.HDFRMBDR,t.CTNRENT ");
|
|
strSql.Append(" from v_op_ctnbscard b ");
|
|
strSql.Append("LEFT JOIN v_opctn_gain_sum G ON (G.BSNO=B.GID) ");
|
|
strSql.Append("LEFT JOIN code_ctntk t ON (t.CTNNO=B.CTNNO) ");
|
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
strSql.Append(" where " + strCondition);
|
|
}
|
|
var sortstring = DatasetSort.Getsortstring(sort);
|
|
if (!string.IsNullOrEmpty(sortstring))
|
|
{
|
|
strSql.Append(" order by " + sortstring);
|
|
}
|
|
else
|
|
{
|
|
strSql.Append(" order by B.INPUTTIME DESC ");
|
|
|
|
}
|
|
return strSql.ToString();
|
|
}
|
|
|
|
private static List<OpCtnBsCard> SetFeeData(StringBuilder strSql,string datetype)
|
|
{
|
|
var headList = new List<OpCtnBsCard>();
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
{
|
|
while (reader.Read())
|
|
{
|
|
|
|
|
|
|
|
|
|
OpCtnBsCard data = new OpCtnBsCard();
|
|
|
|
#region Set DB data to Object
|
|
data.GID = Convert.ToString(reader["GID"]);
|
|
data.CTNNO = Convert.ToString(reader["CTNNO"]);
|
|
data.CTNPROP = Convert.ToString(reader["CTNPROP"]);
|
|
data.BSNO = Convert.ToString(reader["BSNO"]);
|
|
data.APPLYNO = Convert.ToString(reader["APPLYNO"]);
|
|
data.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]);
|
|
data.GOODSNAME = Convert.ToString(reader["GOODSNAME"]);
|
|
data.PREGOODSNAME = Convert.ToString(reader["PREGOODSNAME"]);
|
|
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"]);
|
|
if (reader["NETD"] != DBNull.Value)
|
|
data.NETD = Convert.ToDateTime(reader["NETD"]).ToString("yyyy-MM-dd");
|
|
|
|
if (reader["ISCLOSE"] != DBNull.Value)
|
|
data.ISCLOSE = Convert.ToBoolean(reader["ISCLOSE"]);
|
|
if (reader["CLOSEDATE"] != DBNull.Value)
|
|
data.CLOSEDATE = Convert.ToDateTime(reader["CLOSEDATE"]).ToString("yyyy-MM-dd");
|
|
|
|
|
|
if (reader["IS_RETURE_EMPTY"] != DBNull.Value)
|
|
data.IS_RETURE_EMPTY = Convert.ToBoolean(reader["IS_RETURE_EMPTY"]);
|
|
if (reader["IS_BOOKING"] != DBNull.Value)
|
|
data.IS_BOOKING = Convert.ToBoolean(reader["IS_BOOKING"]);
|
|
data.I_CUSTNO = Convert.ToString(reader["I_CUSTNO"]);
|
|
if (reader["I_ETD"] != DBNull.Value)
|
|
data.I_ETD = Convert.ToDateTime(reader["I_ETD"]).ToString("yyyy-MM-dd");
|
|
if (reader["I_ETA"] != DBNull.Value)
|
|
data.I_ETA = Convert.ToDateTime(reader["I_ETA"]).ToString("yyyy-MM-dd");
|
|
data.I_MBLNO = Convert.ToString(reader["I_MBLNO"]);
|
|
data.I_CUSTNAME = Convert.ToString(reader["I_CUSTNAME"]);
|
|
data.I_CARRIER = Convert.ToString(reader["I_CARRIER"]);
|
|
data.I_CONTRACT = Convert.ToString(reader["I_CONTRACT"]);
|
|
if (reader["I_PORTLOAD_CNT_TIME"] != DBNull.Value)
|
|
data.I_PORTLOAD_CNT_TIME = Convert.ToDateTime(reader["I_PORTLOAD_CNT_TIME"]).ToString("yyyy-MM-dd");
|
|
data.I_PORTLOAD = Convert.ToString(reader["I_PORTLOAD"]);
|
|
if (reader["I_ARRIVALDATE"] != DBNull.Value)
|
|
data.I_ARRIVALDATE = Convert.ToDateTime(reader["I_ARRIVALDATE"]).ToString("yyyy-MM-dd");
|
|
if (reader["I_DEST_CNT_TIME"] != DBNull.Value)
|
|
data.I_DEST_CNT_TIME = Convert.ToDateTime(reader["I_DEST_CNT_TIME"]).ToString("yyyy-MM-dd");
|
|
if (reader["I_DEST_RTCNT_TIME"] != DBNull.Value)
|
|
data.I_DEST_RTCNT_TIME = Convert.ToDateTime(reader["I_DEST_RTCNT_TIME"]).ToString("yyyy-MM-dd");
|
|
data.I_DESTPORT_STATOIN = Convert.ToString(reader["I_DESTPORT_STATOIN"]);
|
|
data.I_DESTPORT = Convert.ToString(reader["I_DESTPORT"]);
|
|
data.CUSTNO = Convert.ToString(reader["CUSTNO"]);
|
|
data.OP = Convert.ToString(reader["OP"]);
|
|
data.BOOKGOODNAME = Convert.ToString(reader["BOOKGOODNAME"]);
|
|
data.TRUCKNAME = Convert.ToString(reader["TRUCKNAME"]);
|
|
data.TRUCKLINKNAME = Convert.ToString(reader["TRUCKLINKNAME"]);
|
|
data.TRUCKLINKTEL = Convert.ToString(reader["TRUCKLINKTEL"]);
|
|
data.CURSTATOIN = Convert.ToString(reader["CURSTATOIN"]);
|
|
data.LOADADDR = Convert.ToString(reader["LOADADDR"]);
|
|
data.CUSTOMGOODNAME = Convert.ToString(reader["CUSTOMGOODNAME"]);
|
|
data.MBLNO = Convert.ToString(reader["MBLNO"]);
|
|
data.CARRIER = Convert.ToString(reader["CARRIER"]);
|
|
data.PORTLOAD_STATOIN = Convert.ToString(reader["PORTLOAD_STATOIN"]);
|
|
data.LOADFACTORY = Convert.ToString(reader["LOADFACTORY"]);
|
|
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["NPORTLOAD_CNT_TIME"] != DBNull.Value)
|
|
data.NPORTLOAD_CNT_TIME = Convert.ToDateTime(reader["NPORTLOAD_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 (reader["PORTLOAD_OVER_DAYS_AMT"] != DBNull.Value)
|
|
data.PORTLOAD_OVER_DAYS_AMT = Convert.ToDecimal(reader["PORTLOAD_OVER_DAYS_AMT"]);
|
|
data.DESTPORT = Convert.ToString(reader["DESTPORT"]);
|
|
if (reader["ARRIVALDATE"] != DBNull.Value)
|
|
data.ARRIVALDATE = Convert.ToDateTime(reader["ARRIVALDATE"]).ToString("yyyy-MM-dd");
|
|
data.DESTAGENTNAME = Convert.ToString(reader["DESTAGENTNAME"]);
|
|
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"] != DBNull.Value)
|
|
data.DESTPORT_OVER_DAYS = Convert.ToDecimal(reader["DESTPORT_OVER_DAYS"]);
|
|
if (reader["DESTPORT_OVER_DAYS_FEE"] != DBNull.Value)
|
|
data.DESTPORT_OVER_DAYS_FEE = Convert.ToDecimal(reader["DESTPORT_OVER_DAYS_FEE"]);
|
|
if (reader["DESTPORT_OVER_DAYS_AMT"] != DBNull.Value)
|
|
data.DESTPORT_OVER_DAYS_AMT = Convert.ToDecimal(reader["DESTPORT_OVER_DAYS_AMT"]);
|
|
if (reader["DETAIN_CTN_DAYS"] != DBNull.Value)
|
|
data.DETAIN_CTN_DAYS = Convert.ToDecimal(reader["DETAIN_CTN_DAYS"]);
|
|
if (reader["PRE_CNT_TIME"] != DBNull.Value)
|
|
data.PRE_CNT_TIME = Convert.ToDateTime(reader["PRE_CNT_TIME"]).ToString("yyyy-MM-dd");
|
|
var usdexrate = GetUsdExrate(data.PORTLOAD_CNT_TIME, "USD");
|
|
|
|
data.REMARKS = Convert.ToString(reader["REMARKS"]);
|
|
data.INPUTBY = Convert.ToString(reader["INPUTBY"]);
|
|
data.INPUTBYREF = Convert.ToString(reader["INPUTBYREF"]);
|
|
if (reader["INPUTTIME"] != DBNull.Value)
|
|
data.INPUTTIME = Convert.ToDateTime(reader["INPUTTIME"]).ToString("yyyy-MM-dd HH:mm:ss");
|
|
data.AUDITSTATUS = Convert.ToString(reader["AUDITSTATUS"]);
|
|
data.AUDITBY = Convert.ToString(reader["AUDITBY"]);
|
|
data.AUDITBYREF = Convert.ToString(reader["AUDITBYREF"]);
|
|
if (reader["AUDITTIME"] != DBNull.Value)
|
|
data.AUDITTIME = Convert.ToDateTime(reader["AUDITTIME"]).ToString("yyyy-MM-dd HH:mm:ss");
|
|
data.AUDITRESULT = Convert.ToString(reader["AUDITRESULT"]);
|
|
data.COMPANYID = Convert.ToString(reader["COMPANYID"]);
|
|
data.REPAIRSTATUS = Convert.ToString(reader["REPAIRSTATUS"]);
|
|
data.CLEARINGSTATUS = Convert.ToString(reader["CLEARINGSTATUS"]);
|
|
|
|
if (data.PORTLOAD_CNT_TIME == "")
|
|
{
|
|
data.CUR_PORT = data.PORTLOAD + "-待装货";
|
|
data.CUR_DATE = DateTime.Now.ToString("yyyy-MM-dd");
|
|
}
|
|
else if (data.ETD == "" || (data.ETD != "" && (Convert.ToDateTime(data.ETD) > DateTime.Now)))
|
|
{
|
|
data.CUR_PORT = data.PORTLOAD + "-待开船";
|
|
data.CUR_DATE = data.PORTLOAD_CNT_TIME;
|
|
}
|
|
else if (data.ETA == "" || (data.ETA != "" && (Convert.ToDateTime(data.ETA) > DateTime.Now)))
|
|
{
|
|
data.CUR_PORT = data.PORTLOAD + "-" + data.DESTPORT;
|
|
data.CUR_DATE = data.ETD;
|
|
|
|
}
|
|
else if (data.DEST_CNT_TIME == "" || (data.DEST_CNT_TIME != "" && (Convert.ToDateTime(data.DEST_CNT_TIME) > DateTime.Now)))
|
|
{
|
|
data.CUR_PORT = data.DESTPORT + "-待提货";
|
|
data.CUR_DATE = data.ETA;
|
|
|
|
}
|
|
else if (data.DEST_RTCNT_TIME == "" || (data.DEST_RTCNT_TIME != "" && (Convert.ToDateTime(data.DEST_RTCNT_TIME) > DateTime.Now)))
|
|
{
|
|
data.CUR_PORT = data.DESTPORT + "-待还箱";
|
|
data.CUR_DATE = data.DEST_CNT_TIME;
|
|
|
|
}
|
|
else
|
|
{
|
|
data.CUR_PORT = data.DESTPORT + "已还箱-闲置";
|
|
data.CUR_DATE = data.DEST_RTCNT_TIME;
|
|
}
|
|
|
|
if (datetype == "CNT")
|
|
{
|
|
if (data.PORTLOAD_CNT_TIME != "" && data.NPORTLOAD_CNT_TIME != "")
|
|
data.CYCLE_DAY = DateDiff(data.PORTLOAD_CNT_TIME, data.NPORTLOAD_CNT_TIME);
|
|
else if (data.PORTLOAD_CNT_TIME != "")
|
|
data.CYCLE_DAY = DateDiff(data.PORTLOAD_CNT_TIME, DateTime.Now.ToString("yyyy-MM-dd"));
|
|
|
|
|
|
}
|
|
else
|
|
{
|
|
if (data.ETD != "" && data.NETD != "")
|
|
data.CYCLE_DAY = DateDiff(data.ETD, data.NETD);
|
|
else if (data.ETD != "" )
|
|
data.CYCLE_DAY = DateDiff(data.ETD, DateTime.Now.ToString("yyyy-MM-dd"));
|
|
}
|
|
|
|
|
|
|
|
if (data.IS_RETURE_EMPTY)
|
|
{
|
|
data.LINES = data.PORTLOAD + "-" + data.DESTPORT + "-" + data.I_DESTPORT;
|
|
data.RTCNT_TIME = data.I_DEST_RTCNT_TIME;
|
|
if (data.NPORTLOAD_CNT_TIME != "" && data.I_DEST_RTCNT_TIME != "")
|
|
data.CYCLE_CNTDAY = DateDiff(data.I_DEST_RTCNT_TIME, data.NPORTLOAD_CNT_TIME);
|
|
else if (data.NPORTLOAD_CNT_TIME== "" && data.I_DEST_RTCNT_TIME != "")
|
|
data.CYCLE_CNTDAY = DateDiff(data.I_DEST_RTCNT_TIME, DateTime.Now.ToString("yyyy-MM-dd"));
|
|
}
|
|
else {
|
|
data.RTCNT_TIME = data.DEST_RTCNT_TIME;
|
|
data.LINES = data.PORTLOAD + "-" + data.DESTPORT;
|
|
if (data.NPORTLOAD_CNT_TIME != "" && data.DEST_RTCNT_TIME != "")
|
|
data.CYCLE_CNTDAY = DateDiff(data.DEST_RTCNT_TIME, data.NPORTLOAD_CNT_TIME);
|
|
else if (data.NPORTLOAD_CNT_TIME == "" && data.DEST_RTCNT_TIME != "")
|
|
data.CYCLE_CNTDAY = DateDiff(data.DEST_RTCNT_TIME, DateTime.Now.ToString("yyyy-MM-dd"));
|
|
|
|
}
|
|
if (reader["RMBDR"] != DBNull.Value)
|
|
data.RMBDR = Convert.ToDecimal(reader["RMBDR"]);
|
|
if (reader["RMBCR"] != DBNull.Value)
|
|
data.RMBCR = Convert.ToDecimal(reader["RMBCR"]);
|
|
if (reader["USDDR"] != DBNull.Value)
|
|
data.USDDR = Convert.ToDecimal(reader["USDDR"]);
|
|
if (reader["USDCR"] != DBNull.Value)
|
|
data.USDCR = Convert.ToDecimal(reader["USDCR"]);
|
|
if (reader["XSFUSDDR"] != DBNull.Value)
|
|
data.XSFUSDDR = Convert.ToDecimal(reader["XSFUSDDR"]);
|
|
if (reader["OTUSDDR"] != DBNull.Value)
|
|
data.OTUSDDR = Convert.ToDecimal(reader["OTUSDDR"]);
|
|
if (reader["XSFRMBDR"] != DBNull.Value)
|
|
data.XSFRMBDR = Convert.ToDecimal(reader["XSFRMBDR"]);
|
|
if (reader["HDFRMBDR"] != DBNull.Value)
|
|
data.HDFDR = Convert.ToDecimal(reader["HDFRMBDR"]);
|
|
if (reader["GXFUSDDR"] != DBNull.Value)
|
|
data.GXFUSDDR = Convert.ToDecimal(reader["GXFUSDDR"]);
|
|
if (reader["OTRMBDR"] != DBNull.Value)
|
|
data.OTRMBDR = Convert.ToDecimal(reader["OTRMBDR"]);
|
|
data.HDFDR = Math.Round(data.HDFDR /usdexrate, 2);
|
|
data.XSFDRTTLINUSD = Math.Round(data.XSFRMBDR / usdexrate + data.XSFUSDDR,2);
|
|
data.OTDRTTLINUSD = Math.Round(data.OTRMBDR / usdexrate + data.OTUSDDR, 2);
|
|
data.TTLDRINUSD = Math.Round(data.RMBDR / usdexrate + data.USDDR, 2); ;
|
|
data.TTLCRINUSD = Math.Round(data.RMBCR / usdexrate + data.USDCR, 2);
|
|
data.PROFITINUSD = data.TTLDRINUSD - data.TTLCRINUSD;
|
|
if (data.CYCLE_DAY != 0) data.DAYPROFITINUSD = data.PROFITINUSD / data.CYCLE_DAY;
|
|
data.CTNRENT = Convert.ToString(reader["CTNRENT"]);
|
|
if (data.CTNRENT == "") data.CTNRENT = "0";
|
|
data.RENTPROFITINUSD = Convert.ToDecimal(data.CTNRENT) * data.CYCLE_DAY;
|
|
data.OPPROFITINUSD = data.PROFITINUSD - data.RENTPROFITINUSD;
|
|
|
|
#endregion
|
|
headList.Add(data);
|
|
}
|
|
reader.Close();
|
|
}
|
|
return headList;
|
|
}
|
|
|
|
#region 东胜6数据
|
|
|
|
static public List<OpCtnBsCard> GetBsList(string bsno)
|
|
{
|
|
|
|
var strSql = new StringBuilder();
|
|
//strSql.Append("SELECT 编号 GID,业务编号 BSNO,委托单位 CUSTOMERNAME,委托编号 CUSTNO,开船日期 ETD,预抵日期 ETA ,主提单号 MBLNO ,代理 AGENTNAME");
|
|
//strSql.Append(",装货港 PORTLOAD ,卸货港 DESTPORT, 保险单号 APPLYNO");
|
|
//strSql.Append(" from V_op_bscard_All where 保险单号 like '%" + bsno.Substring(0,13) + "%'");
|
|
|
|
strSql.Append("SELECT BSNO GID,BSNO,CUSTOMERNAME,CUSTNO,ETD,ETA ,MBLNO ,AGENTID AGENTNAME");
|
|
strSql.Append(",PORTLOAD ,PORTDISCHARGE DESTPORT,APPLYNO");
|
|
strSql.Append(" from op_seae where APPLYNO like '%" + bsno + "%'");
|
|
strSql.Append(" union ");
|
|
strSql.Append("SELECT BSNO GID,BSNO,CUSTOMERNAME,CUSTNO,ETA ETD,ETD ETA ,MBLNO,AGENTID AGENTNAME");
|
|
strSql.Append(",PORTLOAD ,PORTDISCHARGE DESTPORT,APPLYNO");
|
|
strSql.Append(" from op_seai where APPLYNO like '%" + bsno + "%'");
|
|
|
|
|
|
return SetBSData(strSql);
|
|
}
|
|
|
|
private static List<OpCtnBsCard> SetBSData(StringBuilder strSql)
|
|
{
|
|
var headList = new List<OpCtnBsCard>();
|
|
// Database db = DatabaseFactory.CreateDatabase("DONGSHENG6");
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
{
|
|
while (reader.Read())
|
|
{
|
|
OpCtnBsCard data = new OpCtnBsCard();
|
|
#region Set DB data to Object
|
|
data.GID = Convert.ToString(reader["GID"]);
|
|
data.BSNO = Convert.ToString(reader["BSNO"]);
|
|
data.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]);
|
|
data.CUSTNO = Convert.ToString(reader["CUSTNO"]);
|
|
data.APPLYNO = Convert.ToString(reader["APPLYNO"]);
|
|
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.MBLNO = Convert.ToString(reader["MBLNO"]);
|
|
data.AGENTNAME = Convert.ToString(reader["AGENTNAME"]);
|
|
data.PORTLOAD = Convert.ToString(reader["PORTLOAD"]);
|
|
data.DESTPORT = Convert.ToString(reader["DESTPORT"]);
|
|
#endregion
|
|
headList.Add(data);
|
|
}
|
|
reader.Close();
|
|
}
|
|
return headList;
|
|
}
|
|
|
|
#endregion
|
|
|
|
|
|
public static decimal GetUsdExrate(string currdate, string curr)
|
|
{
|
|
decimal result = -1;
|
|
|
|
if (currdate == "")
|
|
{
|
|
var strSql = new StringBuilder();
|
|
strSql.Append("Select CODENAME,DEFAULTRATE ");
|
|
strSql.Append(" from code_currency where CODENAME='USD'");
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
{
|
|
while (reader.Read())
|
|
{
|
|
result = Convert.ToDecimal(reader["DEFAULTRATE"]);
|
|
}
|
|
reader.Close();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
|
|
var strSql = new StringBuilder();
|
|
strSql.Append("Select CURRENCYID,VALUE ");
|
|
strSql.Append(" from currency_exchange ");
|
|
strSql.Append(" left join code_currency c on (c.GID=currency_exchange.CURRENCYID) ");
|
|
strSql.Append(" where c.CODENAME='" + curr + "' and STARTTIME<='" + currdate + "' and ENDTIME>='" + currdate + "'");
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
{
|
|
while (reader.Read())
|
|
{
|
|
result = Convert.ToDecimal(reader["VALUE"]);
|
|
}
|
|
reader.Close();
|
|
}
|
|
|
|
if (result == -1)
|
|
{
|
|
var strSql2 = new StringBuilder();
|
|
strSql2.Append("Select CODENAME,DEFAULTRATE ");
|
|
strSql2.Append(" from code_currency where CODENAME='USD'");
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql2.ToString()))
|
|
{
|
|
while (reader.Read())
|
|
{
|
|
result = Convert.ToDecimal(reader["DEFAULTRATE"]);
|
|
}
|
|
reader.Close();
|
|
}
|
|
}
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
public static DBResult DeleteOpCtnBsCard(List<OpCtnBsCard> headData)
|
|
{
|
|
var result = new DBResult();
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
try
|
|
{
|
|
if (headData != null)
|
|
{
|
|
foreach (var enumValue in headData)
|
|
{
|
|
|
|
var cmdDelete = db.GetSqlStringCommand("delete from op_ctnbscard where GID='" + enumValue.GID + "'");
|
|
db.ExecuteNonQuery(cmdDelete, tran);
|
|
UpOpCtnApplyCtnItems(enumValue.CTNNO, enumValue.APPLYNO);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
tran.Commit();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
tran.Rollback();
|
|
|
|
result.Success = false;
|
|
result.Message = "删除出现错误,请重试或联系系统管理员";
|
|
|
|
return result;
|
|
}
|
|
}
|
|
|
|
result.Success = true;
|
|
result.Message = "删除成功";
|
|
|
|
return result;
|
|
}
|
|
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 isnull(WMSOUTBSNO,'')<>'' and 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;
|
|
}
|
|
public static DBResult AuditReturn(List<OpCtnBsCard> headData,string type,string userid)
|
|
{
|
|
var result = new DBResult();
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
try
|
|
{
|
|
if (headData != null)
|
|
{
|
|
foreach (var enumValue in headData)
|
|
{
|
|
if (type == "1")
|
|
{
|
|
if (enumValue.AUDITSTATUS == "申请调拨")
|
|
{
|
|
var cmdUpdate = db.GetSqlStringCommand("update op_ctnbscard set AUDITSTATUS='批准调拨',IS_DB=1,AUDITBY='" + userid + "',AUDITTIME='" + DateTime.Now.ToString("yyyy-MM-dd") + "' where GID='" + enumValue.GID + "'");
|
|
db.ExecuteNonQuery(cmdUpdate, tran);
|
|
|
|
}
|
|
else
|
|
{
|
|
var cmdUpdate = db.GetSqlStringCommand("update op_ctnbscard set AUDITSTATUS='批准返空',IS_RETURE_EMPTY=1,AUDITBY='" + userid + "',AUDITTIME='" + DateTime.Now.ToString("yyyy-MM-dd") + "' where GID='" + enumValue.GID + "'");
|
|
db.ExecuteNonQuery(cmdUpdate, tran);
|
|
}
|
|
}
|
|
else if (type == "0")
|
|
{
|
|
if (enumValue.AUDITSTATUS == "批准调拨"|| enumValue.AUDITSTATUS == "申请调拨")
|
|
{
|
|
var cmdUpdate = db.GetSqlStringCommand("update op_ctnbscard set AUDITSTATUS='驳回调拨',IS_DB=0,AUDITBY='',AUDITTIME=null where GID='" + enumValue.GID + "'");
|
|
db.ExecuteNonQuery(cmdUpdate, tran);
|
|
}
|
|
else
|
|
{
|
|
var cmdUpdate = db.GetSqlStringCommand("update op_ctnbscard set AUDITSTATUS='驳回返空',IS_RETURE_EMPTY=0,AUDITBY='',AUDITTIME=null where GID='" + enumValue.GID + "'");
|
|
db.ExecuteNonQuery(cmdUpdate, tran);
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
|
|
tran.Commit();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
tran.Rollback();
|
|
|
|
result.Success = false;
|
|
result.Message = "审批出现错误,请重试或联系系统管理员";
|
|
|
|
return result;
|
|
}
|
|
}
|
|
|
|
result.Success = true;
|
|
result.Message = "审批成功";
|
|
|
|
return result;
|
|
}
|
|
|
|
|
|
public static DBResult SubmitAudit(string GID,string type)
|
|
{
|
|
var result = new DBResult();
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
try
|
|
{
|
|
var cmdUpdate = db.GetSqlStringCommand("update op_ctnbscard set REPAIRSTATUS='提交审核' where GID='" + GID + "'");
|
|
if (type=="2")
|
|
cmdUpdate = db.GetSqlStringCommand("update op_ctnbscard set CLEARINGSTATUS='提交审核' where GID='" + GID + "'");
|
|
if (type == "3")
|
|
cmdUpdate = db.GetSqlStringCommand("update op_ctnbscard set REPAIRSTATUS='撤销提交' where GID='" + GID + "'");
|
|
if (type == "4")
|
|
cmdUpdate = db.GetSqlStringCommand("update op_ctnbscard set CLEARINGSTATUS='撤销提交' where GID='" + GID + "'");
|
|
|
|
db.ExecuteNonQuery(cmdUpdate, tran);
|
|
|
|
tran.Commit();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
tran.Rollback();
|
|
|
|
result.Success = false;
|
|
result.Message = "提交审核出现错误,请重试或联系系统管理员";
|
|
|
|
return result;
|
|
}
|
|
}
|
|
|
|
result.Success = true;
|
|
result.Message = "提交审核成功";
|
|
|
|
return result;
|
|
}
|
|
|
|
public static DBResult Audit(string GID, string type)
|
|
{
|
|
var result = new DBResult();
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
try
|
|
{
|
|
var cmdUpdate = db.GetSqlStringCommand("update op_ctnbscard set REPAIRSTATUS='审核通过' where GID='" + GID + "'");
|
|
if (type == "2")
|
|
cmdUpdate = db.GetSqlStringCommand("update op_ctnbscard set CLEARINGSTATUS='审核通过' where GID='" + GID + "'");
|
|
if (type == "3")
|
|
cmdUpdate = db.GetSqlStringCommand("update op_ctnbscard set REPAIRSTATUS='驳回提交' where GID='" + GID + "'");
|
|
if (type == "4")
|
|
cmdUpdate = db.GetSqlStringCommand("update op_ctnbscard set CLEARINGSTATUS='驳回提交' where GID='" + GID + "'");
|
|
|
|
db.ExecuteNonQuery(cmdUpdate, tran);
|
|
|
|
tran.Commit();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
tran.Rollback();
|
|
|
|
result.Success = false;
|
|
result.Message = "提交审核出现错误,请重试或联系系统管理员";
|
|
|
|
return result;
|
|
}
|
|
}
|
|
|
|
result.Success = true;
|
|
result.Message = "提交审核成功";
|
|
|
|
return result;
|
|
}
|
|
|
|
public static DBResult AuditPutCtn(List<OpCtnBsCard> bodyList, string type,string userid)
|
|
{
|
|
var result = new DBResult();
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
try
|
|
{
|
|
|
|
var cmdUpdate =
|
|
db.GetSqlStringCommand(
|
|
@"update op_ctnbscard set PUTCTNAUDITSTATUS=@PUTCTNAUDITSTATUS,PUTCTNAUDITBY=@PUTCTNAUDITBY,PUTCTNAUDITTIME=@PUTCTNAUDITTIME where GID=@GID ");
|
|
|
|
if (bodyList != null)
|
|
{
|
|
foreach (var enumValue in bodyList)
|
|
{
|
|
if (type == "1")
|
|
{
|
|
cmdUpdate.Parameters.Clear();
|
|
db.AddInParameter(cmdUpdate, "@PUTCTNAUDITSTATUS", DbType.String, "审核通过");
|
|
db.AddInParameter(cmdUpdate, "@PUTCTNAUDITBY", DbType.String, userid);
|
|
db.AddInParameter(cmdUpdate, "@PUTCTNAUDITTIME", DbType.String, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
db.AddInParameter(cmdUpdate, "@GID", DbType.String, enumValue.GID);
|
|
db.ExecuteNonQuery(cmdUpdate, tran);
|
|
}
|
|
else
|
|
{
|
|
|
|
cmdUpdate.Parameters.Clear();
|
|
db.AddInParameter(cmdUpdate, "@PUTCTNAUDITSTATUS", DbType.String, "未审核");
|
|
db.AddInParameter(cmdUpdate, "@PUTCTNAUDITBY", DbType.String,"");
|
|
db.AddInParameter(cmdUpdate, "@PUTCTNAUDITTIME", DbType.String,null);
|
|
db.AddInParameter(cmdUpdate, "@GID", DbType.String, enumValue.GID);
|
|
db.ExecuteNonQuery(cmdUpdate, 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 PutCtn(List<OpCtnBsCard> bodyList,string is_putctn,string putcntdate)
|
|
{
|
|
var result = new DBResult();
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
try
|
|
{
|
|
|
|
var cmdUpdate =
|
|
db.GetSqlStringCommand(
|
|
@"update op_ctnbscard set IS_PUTCTN=@IS_PUTCTN,PUTCTNDATE=@PUTCTNDATE where GID=@GID ");
|
|
|
|
if (bodyList != null)
|
|
{
|
|
foreach (var enumValue in bodyList)
|
|
{
|
|
if (is_putctn == "1")
|
|
{
|
|
cmdUpdate.Parameters.Clear();
|
|
db.AddInParameter(cmdUpdate, "@IS_PUTCTN", DbType.String,"1");
|
|
db.AddInParameter(cmdUpdate, "@PUTCTNDATE", DbType.String, putcntdate);
|
|
db.AddInParameter(cmdUpdate, "@GID", DbType.String, enumValue.GID);
|
|
db.ExecuteNonQuery(cmdUpdate, tran);
|
|
}
|
|
else {
|
|
|
|
cmdUpdate.Parameters.Clear();
|
|
db.AddInParameter(cmdUpdate, "@IS_PUTCTN", DbType.String, "0");
|
|
db.AddInParameter(cmdUpdate, "@PUTCTNDATE", DbType.String, null);
|
|
db.AddInParameter(cmdUpdate, "@GID", DbType.String, enumValue.GID);
|
|
db.ExecuteNonQuery(cmdUpdate, 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 LockBs(List<OpCtnBsCard> bodyList, string islock)
|
|
{
|
|
var result = new DBResult();
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
try
|
|
{
|
|
|
|
var cmdUpdate =
|
|
db.GetSqlStringCommand(
|
|
@"update op_ctnbscard set ISCLOSE=@ISCLOSE,CLOSEDATE=@CLOSEDATE where GID=@GID ");
|
|
|
|
if (bodyList != null)
|
|
{
|
|
foreach (var enumValue in bodyList)
|
|
{
|
|
if (islock == "1")
|
|
{
|
|
cmdUpdate.Parameters.Clear();
|
|
db.AddInParameter(cmdUpdate, "@ISCLOSE", DbType.String, "1");
|
|
db.AddInParameter(cmdUpdate, "@CLOSEDATE", DbType.String,DateTime.Now.ToString("yyyy-MM-dd"));
|
|
db.AddInParameter(cmdUpdate, "@GID", DbType.String, enumValue.GID);
|
|
db.ExecuteNonQuery(cmdUpdate, tran);
|
|
}
|
|
else
|
|
{
|
|
|
|
cmdUpdate.Parameters.Clear();
|
|
db.AddInParameter(cmdUpdate, "@ISCLOSE", DbType.String, "0");
|
|
db.AddInParameter(cmdUpdate, "@CLOSEDATE", DbType.String, null);
|
|
db.AddInParameter(cmdUpdate, "@GID", DbType.String, enumValue.GID);
|
|
db.ExecuteNonQuery(cmdUpdate, tran);
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
tran.Commit();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
tran.Rollback();
|
|
|
|
result.Success = false;
|
|
result.Message = "保存出现错误,请重试或联系系统管理员";
|
|
|
|
return result;
|
|
}
|
|
}
|
|
|
|
result.Success = true;
|
|
result.Message = "保存成功" + result.Message;
|
|
|
|
return result;
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
#region OpCtnClearing
|
|
|
|
static public List<OpCtnClearing> GetOpCtnClearingList(string strCondition, string sort = null)
|
|
{
|
|
|
|
var strSql = new StringBuilder();
|
|
strSql.Append("SELECT [GID],[LINKGID],[INSTATOINTIME],[IMAGE_LINDADDR],[IMAGE1],[EIR],[EIRPATH],[CLEARINGMODE],[PREGOODSNAME]");
|
|
strSql.Append(",[ISCLEAR_CERT],[CHECKGOV],[ISCLEAR_PLAN],[CLEARTIME],[IMAGE_CLEAR],[IMAGE_CLEARPATH],[IMAGE_CHECKGOV],[IMAGE_CHECKGOVPATH]");
|
|
strSql.Append(",[ISCOMPLETE],[FEENAME],[CURRENCY],[AMOUNT],[AUDITSTATUS],[AUDITBY],[AUDITTIME],[AUDITRESULT],[REMARKS]");
|
|
strSql.Append(",[INPUTBY],[INPUTTIME],[COMPANYID],CURSTATOIN ");
|
|
strSql.Append(",(select CTNNO from op_ctnbscard where GID=op_ctnclearing.LINKGID) CTNNO");
|
|
strSql.Append(",(select BSNO from op_ctnbscard where GID=op_ctnclearing.LINKGID) BSNO");
|
|
strSql.Append(" from op_ctnclearing ");
|
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
strSql.Append(" where " + strCondition);
|
|
}
|
|
var sortstring = DatasetSort.Getsortstring(sort);
|
|
if (!string.IsNullOrEmpty(sortstring))
|
|
{
|
|
strSql.Append(" order by " + sortstring);
|
|
}
|
|
else
|
|
{
|
|
strSql.Append(" order by INSTATOINTIME desc,INPUTTIME desc ");
|
|
|
|
}
|
|
return SetOpCtnClearingData(strSql);
|
|
}
|
|
|
|
static public string GetOpCtnClearingListStr(string strCondition, string sort = null)
|
|
{
|
|
|
|
var strSql = new StringBuilder();
|
|
strSql.Append("SELECT [GID],[LINKGID],[INSTATOINTIME],[IMAGE_LINDADDR],[IMAGE1],[EIR],[EIRPATH],[CLEARINGMODE],[PREGOODSNAME]");
|
|
strSql.Append(",[ISCLEAR_CERT],[CHECKGOV],[ISCLEAR_PLAN],[CLEARTIME],[IMAGE_CLEAR],[IMAGE_CLEARPATH],[IMAGE_CHECKGOV],[IMAGE_CHECKGOVPATH]");
|
|
strSql.Append(",[ISCOMPLETE],[FEENAME],[CURRENCY],[AMOUNT],[AUDITSTATUS],[AUDITBY],[AUDITTIME],[AUDITRESULT],[REMARKS]");
|
|
strSql.Append(",[INPUTBY],[INPUTTIME],[COMPANYID],CURSTATOIN");
|
|
strSql.Append(",(select CTNNO from op_ctnbscard where GID=op_ctnclearing.LINKGID) CTNNO");
|
|
strSql.Append(",(select BSNO from op_ctnbscard where GID=op_ctnclearing.LINKGID) BSNO");
|
|
strSql.Append(" from op_ctnclearing ");
|
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
strSql.Append(" where " + strCondition);
|
|
}
|
|
var sortstring = DatasetSort.Getsortstring(sort);
|
|
if (!string.IsNullOrEmpty(sortstring))
|
|
{
|
|
strSql.Append(" order by " + sortstring);
|
|
}
|
|
else
|
|
{
|
|
strSql.Append(" order by INPUTTIME ");
|
|
|
|
}
|
|
return strSql.ToString();
|
|
}
|
|
|
|
private static List<OpCtnClearing> SetOpCtnClearingData(StringBuilder strSql)
|
|
{
|
|
var headList = new List<OpCtnClearing>();
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
{
|
|
while (reader.Read())
|
|
{
|
|
OpCtnClearing data = new OpCtnClearing();
|
|
#region Set DB data to Object
|
|
data.GID = Convert.ToString(reader["GID"]);
|
|
data.LINKGID = Convert.ToString(reader["LINKGID"]);
|
|
data.CTNNO = Convert.ToString(reader["CTNNO"]);
|
|
data.BSNO = Convert.ToString(reader["BSNO"]);
|
|
data.CURSTATOIN = Convert.ToString(reader["CURSTATOIN"]);
|
|
if (reader["INSTATOINTIME"] != DBNull.Value)
|
|
data.INSTATOINTIME = Convert.ToDateTime(reader["INSTATOINTIME"]).ToString("yyyy-MM-dd");
|
|
data.IMAGE_LINDADDR = Convert.ToString(reader["IMAGE_LINDADDR"]);
|
|
data.IMAGE1= Convert.ToString(reader["IMAGE1"]);
|
|
data.EIR = Convert.ToString(reader["EIR"]);
|
|
data.EIRPATH = Convert.ToString(reader["EIRPATH"]);
|
|
data.CLEARINGMODE = Convert.ToString(reader["CLEARINGMODE"]);
|
|
data.PREGOODSNAME = Convert.ToString(reader["PREGOODSNAME"]);
|
|
if (reader["ISCLEAR_CERT"] != DBNull.Value)
|
|
data.ISCLEAR_CERT = Convert.ToBoolean(reader["ISCLEAR_CERT"]);
|
|
data.CHECKGOV = Convert.ToString(reader["CHECKGOV"]);
|
|
if (reader["ISCLEAR_PLAN"] != DBNull.Value)
|
|
data.ISCLEAR_PLAN = Convert.ToBoolean(reader["ISCLEAR_PLAN"]);
|
|
if (reader["CLEARTIME"] != DBNull.Value)
|
|
data.CLEARTIME = Convert.ToDateTime(reader["CLEARTIME"]).ToString("yyyy-MM-dd");
|
|
data.IMAGE_CLEAR = Convert.ToString(reader["IMAGE_CLEAR"]);
|
|
data.IMAGE_CLEARPATH = Convert.ToString(reader["IMAGE_CLEARPATH"]);
|
|
data.IMAGE_CHECKGOV = Convert.ToString(reader["IMAGE_CHECKGOV"]);
|
|
data.IMAGE_CHECKGOVPATH = Convert.ToString(reader["IMAGE_CHECKGOVPATH"]);
|
|
if (reader["ISCOMPLETE"] != DBNull.Value)
|
|
data.ISCOMPLETE = Convert.ToBoolean(reader["ISCOMPLETE"]);
|
|
data.FEENAME = Convert.ToString(reader["FEENAME"]);
|
|
data.CURRENCY = Convert.ToString(reader["CURRENCY"]);
|
|
if (reader["AMOUNT"] != DBNull.Value)
|
|
data.AMOUNT = Convert.ToDecimal(reader["AMOUNT"]);
|
|
data.REMARKS = Convert.ToString(reader["REMARKS"]);
|
|
data.INPUTBY = Convert.ToString(reader["INPUTBY"]);
|
|
if (reader["INPUTTIME"] != DBNull.Value)
|
|
data.INPUTTIME = Convert.ToDateTime(reader["INPUTTIME"]).ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
|
data.AUDITSTATUS = Convert.ToString(reader["AUDITSTATUS"]);
|
|
data.AUDITBY = Convert.ToString(reader["AUDITBY"]);
|
|
data.AUDITRESULT = Convert.ToString(reader["AUDITRESULT"]);
|
|
if (reader["AUDITTIME"] != DBNull.Value)
|
|
data.AUDITTIME = Convert.ToDateTime(reader["AUDITTIME"]).ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
|
#endregion
|
|
headList.Add(data);
|
|
}
|
|
reader.Close();
|
|
}
|
|
return headList;
|
|
}
|
|
|
|
public static DBResult SaveOpCtnClearing(List<OpCtnClearing> bodyList, string PID, string userid)
|
|
{
|
|
var result = new DBResult();
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
try
|
|
{
|
|
|
|
var cmdInsert =
|
|
db.GetSqlStringCommand(
|
|
@"insert into op_ctnclearing (GID,LINKGID,INSTATOINTIME,CLEARINGMODE,PREGOODSNAME,ISCLEAR_CERT,CHECKGOV,ISCLEAR_PLAN,CLEARTIME,ISCOMPLETE,
|
|
FEENAME,CURRENCY,AMOUNT,INPUTBY,INPUTTIME,REMARKS,AUDITSTATUS,CURSTATOIN)
|
|
values (@GID,@LINKGID,@INSTATOINTIME,@CLEARINGMODE,@PREGOODSNAME,@ISCLEAR_CERT,@CHECKGOV,@ISCLEAR_PLAN,@CLEARTIME,@ISCOMPLETE,@FEENAME,
|
|
@CURRENCY,@AMOUNT,@INPUTBY,@INPUTTIME,@REMARKS,@AUDITSTATUS,@CURSTATOIN
|
|
|
|
) ");
|
|
|
|
var cmdUpdate =
|
|
db.GetSqlStringCommand(
|
|
@"update op_ctnclearing set INSTATOINTIME=@INSTATOINTIME,CLEARINGMODE=@CLEARINGMODE,PREGOODSNAME=@PREGOODSNAME,ISCLEAR_CERT=@ISCLEAR_CERT
|
|
,CHECKGOV=@CHECKGOV,ISCLEAR_PLAN=@ISCLEAR_PLAN,CLEARTIME=@CLEARTIME,ISCOMPLETE=@ISCOMPLETE,FEENAME=@FEENAME,CURRENCY=@CURRENCY,
|
|
AMOUNT=@AMOUNT,REMARKS=@REMARKS,CURSTATOIN=@CURSTATOIN where GID=@GID ");
|
|
|
|
if (bodyList != null)
|
|
{
|
|
foreach (var enumValue in bodyList)
|
|
{
|
|
if (enumValue.INSTATOINTIME == "") enumValue.INSTATOINTIME = null;
|
|
else
|
|
{
|
|
enumValue.INSTATOINTIME = Convert.ToDateTime(enumValue.INSTATOINTIME.Replace("GMT+0800 (中国标准时间)", "")).ToString("yyyy-MM-dd");
|
|
|
|
}
|
|
if (enumValue.CLEARTIME == "") enumValue.CLEARTIME = null;
|
|
else
|
|
{
|
|
enumValue.CLEARTIME = Convert.ToDateTime(enumValue.CLEARTIME.Replace("GMT+0800 (中国标准时间)", "")).ToString("yyyy-MM-dd");
|
|
|
|
}
|
|
if (enumValue.AUDITTIME == "") enumValue.AUDITTIME = null;
|
|
|
|
|
|
if (enumValue.GID == "*" || enumValue.GID == "")
|
|
{
|
|
cmdInsert.Parameters.Clear();
|
|
db.AddInParameter(cmdInsert, "@GID", DbType.String, Guid.NewGuid().ToString());
|
|
db.AddInParameter(cmdInsert, "@LINKGID", DbType.String, PID);
|
|
db.AddInParameter(cmdInsert, "@INSTATOINTIME", DbType.String, enumValue.INSTATOINTIME);
|
|
db.AddInParameter(cmdInsert, "@CLEARINGMODE", DbType.String, enumValue.CLEARINGMODE);
|
|
db.AddInParameter(cmdInsert, "@PREGOODSNAME", DbType.String, enumValue.PREGOODSNAME);
|
|
db.AddInParameter(cmdInsert, "@ISCLEAR_CERT", DbType.Boolean, enumValue.ISCLEAR_CERT);
|
|
db.AddInParameter(cmdInsert, "@CHECKGOV", DbType.String, enumValue.CHECKGOV);
|
|
db.AddInParameter(cmdInsert, "@ISCLEAR_PLAN", DbType.Boolean, enumValue.ISCLEAR_PLAN);
|
|
db.AddInParameter(cmdInsert, "@CLEARTIME", DbType.String, enumValue.CLEARTIME);
|
|
db.AddInParameter(cmdInsert, "@ISCOMPLETE", DbType.Boolean, enumValue.ISCOMPLETE);
|
|
db.AddInParameter(cmdInsert, "@FEENAME", DbType.String, enumValue.FEENAME);
|
|
db.AddInParameter(cmdInsert, "@CURRENCY", DbType.String, enumValue.CURRENCY);
|
|
db.AddInParameter(cmdInsert, "@AMOUNT", DbType.Decimal, enumValue.AMOUNT);
|
|
db.AddInParameter(cmdInsert, "@INPUTBY", DbType.String, userid);
|
|
db.AddInParameter(cmdInsert, "@INPUTTIME", DbType.String, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
db.AddInParameter(cmdInsert, "@AUDITSTATUS", DbType.String,"录入状态");
|
|
db.AddInParameter(cmdInsert, "@REMARKS", DbType.String, enumValue.REMARKS);
|
|
db.AddInParameter(cmdInsert, "@CURSTATOIN", DbType.String, enumValue.CURSTATOIN);
|
|
|
|
db.ExecuteNonQuery(cmdInsert, tran);
|
|
}
|
|
else
|
|
{
|
|
|
|
cmdUpdate.Parameters.Clear();
|
|
db.AddInParameter(cmdUpdate, "@GID", DbType.String, enumValue.GID);
|
|
|
|
db.AddInParameter(cmdUpdate, "@INSTATOINTIME", DbType.String, enumValue.INSTATOINTIME);
|
|
db.AddInParameter(cmdUpdate, "@CLEARINGMODE", DbType.String, enumValue.CLEARINGMODE);
|
|
db.AddInParameter(cmdUpdate, "@PREGOODSNAME", DbType.String, enumValue.PREGOODSNAME);
|
|
db.AddInParameter(cmdUpdate, "@ISCLEAR_CERT", DbType.Boolean, enumValue.ISCLEAR_CERT);
|
|
db.AddInParameter(cmdUpdate, "@CHECKGOV", DbType.String, enumValue.CHECKGOV);
|
|
db.AddInParameter(cmdUpdate, "@ISCLEAR_PLAN", DbType.Boolean, enumValue.ISCLEAR_PLAN);
|
|
db.AddInParameter(cmdUpdate, "@CLEARTIME", DbType.String, enumValue.CLEARTIME);
|
|
db.AddInParameter(cmdUpdate, "@ISCOMPLETE", DbType.Boolean, enumValue.ISCOMPLETE);
|
|
db.AddInParameter(cmdUpdate, "@FEENAME", DbType.String, enumValue.FEENAME);
|
|
db.AddInParameter(cmdUpdate, "@CURRENCY", DbType.String, enumValue.CURRENCY);
|
|
db.AddInParameter(cmdUpdate, "@AMOUNT", DbType.Decimal, enumValue.AMOUNT);
|
|
db.AddInParameter(cmdUpdate, "@REMARKS", DbType.String, enumValue.REMARKS);
|
|
db.AddInParameter(cmdUpdate, "@CURSTATOIN", DbType.String, enumValue.CURSTATOIN);
|
|
db.ExecuteNonQuery(cmdUpdate, 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 DeleteOpCtnClearing(List<OpCtnClearing> headData)
|
|
{
|
|
var result = new DBResult();
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
try
|
|
{
|
|
if (headData != null)
|
|
{
|
|
foreach (var enumValue in headData)
|
|
{
|
|
|
|
var cmdDelete = db.GetSqlStringCommand("delete from op_ctnclearing where GID='" + enumValue.GID + "'");
|
|
db.ExecuteNonQuery(cmdDelete, tran);
|
|
}
|
|
}
|
|
|
|
|
|
tran.Commit();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
tran.Rollback();
|
|
|
|
result.Success = false;
|
|
result.Message = "删除出现错误,请重试或联系系统管理员";
|
|
|
|
return result;
|
|
}
|
|
}
|
|
result.Success = true;
|
|
result.Message = "删除成功";
|
|
|
|
return result;
|
|
}
|
|
|
|
public static DBResult UpdateClearingFileData(string filename, string name, string BSNO, string type)
|
|
{
|
|
var result = new DBResult();
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
try
|
|
{
|
|
|
|
if (type == "3")
|
|
{
|
|
|
|
var cmdUpdate =
|
|
db.GetSqlStringCommand(
|
|
@"update op_ctnclearing set IMAGE1=@IMAGE1,IMAGE_LINDADDR=@IMAGE_LINDADDR where GID=@GID ");
|
|
|
|
|
|
cmdUpdate.Parameters.Clear();
|
|
db.AddInParameter(cmdUpdate, "@GID", DbType.String, BSNO);
|
|
db.AddInParameter(cmdUpdate, "@IMAGE1", DbType.String, name);
|
|
db.AddInParameter(cmdUpdate, "@IMAGE_LINDADDR", DbType.String, filename);
|
|
|
|
db.ExecuteNonQuery(cmdUpdate, tran);
|
|
|
|
}
|
|
else if (type == "4")
|
|
{
|
|
var cmdUpdate =
|
|
db.GetSqlStringCommand(
|
|
@"update op_ctnclearing set EIR=@EIR,EIRPATH=@EIRPATH where GID=@GID ");
|
|
|
|
|
|
cmdUpdate.Parameters.Clear();
|
|
db.AddInParameter(cmdUpdate, "@GID", DbType.String, BSNO);
|
|
db.AddInParameter(cmdUpdate, "@EIR", DbType.String, name);
|
|
db.AddInParameter(cmdUpdate, "@EIRPATH", DbType.String, filename);
|
|
|
|
db.ExecuteNonQuery(cmdUpdate, tran);
|
|
|
|
}
|
|
else if (type == "5")
|
|
{
|
|
var cmdUpdate =
|
|
db.GetSqlStringCommand(
|
|
@"update op_ctnclearing set IMAGE_CLEAR=@IMAGE_CLEAR,IMAGE_CLEARPATH=@IMAGE_CLEARPATH where GID=@GID ");
|
|
|
|
|
|
cmdUpdate.Parameters.Clear();
|
|
db.AddInParameter(cmdUpdate, "@GID", DbType.String, BSNO);
|
|
db.AddInParameter(cmdUpdate, "@IMAGE_CLEAR", DbType.String, name);
|
|
db.AddInParameter(cmdUpdate, "@IMAGE_CLEARPATH", DbType.String, filename);
|
|
|
|
db.ExecuteNonQuery(cmdUpdate, tran);
|
|
|
|
}
|
|
else if (type == "6")
|
|
{
|
|
var cmdUpdate =
|
|
db.GetSqlStringCommand(
|
|
@"update op_ctnclearing set IMAGE_CHECKGOV=@IMAGE_CHECKGOV,IMAGE_CHECKGOVPATH=@IMAGE_CHECKGOVPATH where GID=@GID ");
|
|
|
|
|
|
cmdUpdate.Parameters.Clear();
|
|
db.AddInParameter(cmdUpdate, "@GID", DbType.String, BSNO);
|
|
db.AddInParameter(cmdUpdate, "@IMAGE_CHECKGOV", DbType.String, name);
|
|
db.AddInParameter(cmdUpdate, "@IMAGE_CHECKGOVPATH", DbType.String, filename);
|
|
|
|
db.ExecuteNonQuery(cmdUpdate, 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 AuditOpCtnClearing(List<OpCtnClearing> headData,string type,string username)
|
|
{
|
|
var result = new DBResult();
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
try
|
|
{
|
|
if (headData != null)
|
|
{
|
|
foreach (var enumValue in headData)
|
|
{
|
|
|
|
var cmdUpdate = db.GetSqlStringCommand("update op_ctnclearing set AUDITSTATUS='提交审核' where GID='" + enumValue.GID + "'");
|
|
if (type=="2")
|
|
cmdUpdate = db.GetSqlStringCommand("update op_ctnclearing set AUDITSTATUS='录入状态' where GID='" + enumValue.GID + "'");
|
|
if (type == "0")
|
|
cmdUpdate = db.GetSqlStringCommand("update op_ctnclearing set AUDITSTATUS='审核通过',AUDITBY='" + username + "',AUDITTIME='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")+ "' where GID='" + enumValue.GID + "'");
|
|
if (type == "4")
|
|
cmdUpdate = db.GetSqlStringCommand("update op_ctnclearing set AUDITSTATUS='驳回提交',AUDITBY='" + username + "',AUDITTIME='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "' where GID='" + enumValue.GID + "'");
|
|
if (type == "6")
|
|
cmdUpdate = db.GetSqlStringCommand("update op_ctnclearing set AUDITSTATUS='申请修改' where GID='" + enumValue.GID + "'");
|
|
|
|
|
|
db.ExecuteNonQuery(cmdUpdate, tran);
|
|
}
|
|
}
|
|
|
|
|
|
tran.Commit();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
tran.Rollback();
|
|
|
|
result.Success = false;
|
|
result.Message = "更新出现错误,请重试或联系系统管理员";
|
|
|
|
return result;
|
|
}
|
|
}
|
|
result.Success = true;
|
|
result.Message = "提交成功";
|
|
|
|
return result;
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region OpCtnDelivery
|
|
|
|
static public List<OpCtnDelivery> GetOpCtnDeliveryList(string strCondition, string sort = null)
|
|
{
|
|
|
|
var strSql = new StringBuilder();
|
|
strSql.Append("SELECT [GID],[LINKGID],[CHECKITEMS],[REMARKS]");
|
|
strSql.Append(",[INPUTBY],[INPUTTIME],[COMPANYID]");
|
|
strSql.Append(" from op_ctndelivery ");
|
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
strSql.Append(" where " + strCondition);
|
|
}
|
|
var sortstring = DatasetSort.Getsortstring(sort);
|
|
if (!string.IsNullOrEmpty(sortstring))
|
|
{
|
|
strSql.Append(" order by " + sortstring);
|
|
}
|
|
else
|
|
{
|
|
strSql.Append(" order by INPUTTIME");
|
|
|
|
}
|
|
return SetOpCtnDeliveryData(strSql);
|
|
}
|
|
|
|
|
|
|
|
private static List<OpCtnDelivery> SetOpCtnDeliveryData(StringBuilder strSql)
|
|
{
|
|
var headList = new List<OpCtnDelivery>();
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
{
|
|
while (reader.Read())
|
|
{
|
|
OpCtnDelivery data = new OpCtnDelivery();
|
|
#region Set DB data to Object
|
|
data.GID = Convert.ToString(reader["GID"]);
|
|
data.LINKGID = Convert.ToString(reader["LINKGID"]);
|
|
data.CHECKITEMS = Convert.ToString(reader["CHECKITEMS"]);
|
|
data.REMARKS = Convert.ToString(reader["REMARKS"]);
|
|
data.INPUTBY = Convert.ToString(reader["INPUTBY"]);
|
|
if (reader["INPUTTIME"] != DBNull.Value)
|
|
data.INPUTTIME = Convert.ToDateTime(reader["INPUTTIME"]).ToString("yyyy-MM-dd HH:mm:ss");
|
|
#endregion
|
|
headList.Add(data);
|
|
}
|
|
reader.Close();
|
|
}
|
|
return headList;
|
|
}
|
|
|
|
public static DBResult SaveOpCtnDelivery(List<OpCtnDelivery> bodyList, string PID, string userid)
|
|
{
|
|
var result = new DBResult();
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
try
|
|
{
|
|
|
|
var cmdInsert =
|
|
db.GetSqlStringCommand(
|
|
@"insert into op_ctndelivery (GID,LINKGID,CHECKITEMS,INPUTBY,INPUTTIME,REMARKS)
|
|
values (@GID,@LINKGID,@CHECKITEMS,@INPUTBY,@INPUTTIME,@REMARKS
|
|
) ");
|
|
|
|
var cmdUpdate =
|
|
db.GetSqlStringCommand(
|
|
@"update op_ctndelivery set CHECKITEMS=@CHECKITEMS,REMARKS=@REMARKS where GID=@GID ");
|
|
|
|
if (bodyList != null)
|
|
{
|
|
foreach (var enumValue in bodyList)
|
|
{
|
|
|
|
if (enumValue.GID == "*" || enumValue.GID == "")
|
|
{
|
|
cmdInsert.Parameters.Clear();
|
|
db.AddInParameter(cmdInsert, "@GID", DbType.String, Guid.NewGuid().ToString());
|
|
db.AddInParameter(cmdInsert, "@LINKGID", DbType.String, PID);
|
|
db.AddInParameter(cmdInsert, "@CHECKITEMS", DbType.String, enumValue.CHECKITEMS);
|
|
db.AddInParameter(cmdInsert, "@INPUTBY", DbType.String, userid);
|
|
db.AddInParameter(cmdInsert, "@INPUTTIME", DbType.String, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
db.AddInParameter(cmdInsert, "@REMARKS", DbType.String, enumValue.REMARKS);
|
|
db.ExecuteNonQuery(cmdInsert, tran);
|
|
}
|
|
else
|
|
{
|
|
|
|
cmdUpdate.Parameters.Clear();
|
|
db.AddInParameter(cmdUpdate, "@GID", DbType.String, enumValue.GID);
|
|
db.AddInParameter(cmdUpdate, "@CHECKITEMS", DbType.String, enumValue.CHECKITEMS);
|
|
db.AddInParameter(cmdUpdate, "@REMARKS", DbType.String, enumValue.REMARKS);
|
|
db.ExecuteNonQuery(cmdUpdate, 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 DeleteOpCtnDelivery(List<OpCtnDelivery> headData)
|
|
{
|
|
var result = new DBResult();
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
try
|
|
{
|
|
if (headData != null)
|
|
{
|
|
foreach (var enumValue in headData)
|
|
{
|
|
|
|
var cmdDelete = db.GetSqlStringCommand("delete from op_ctndelivery where GID='" + enumValue.GID + "'");
|
|
db.ExecuteNonQuery(cmdDelete, tran);
|
|
}
|
|
}
|
|
|
|
|
|
tran.Commit();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
tran.Rollback();
|
|
|
|
result.Success = false;
|
|
result.Message = "删除出现错误,请重试或联系系统管理员";
|
|
|
|
return result;
|
|
}
|
|
}
|
|
result.Success = true;
|
|
result.Message = "删除成功";
|
|
|
|
return result;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region OpCtnRepair
|
|
|
|
static public List<OpCtnRepair> GetOpCtnRepairList(string strCondition, string sort = null)
|
|
{
|
|
|
|
var strSql = new StringBuilder();
|
|
strSql.Append("SELECT [GID],[LINKGID],[REPAIRITEMS],[REPAIRTIME]");
|
|
strSql.Append(",[FEENAME],[CURRENCY],[AMOUNT] ,[CURSTATOIN],[INPUTBY],[INPUTTIME],[COMPANYID],REMARKS,AUDITSTATUS,[AUDITBY],[AUDITTIME],[AUDITRESULT] ");
|
|
strSql.Append(",(select CTNNO from op_ctnbscard where GID=op_ctnrepair.LINKGID) CTNNO");
|
|
strSql.Append(",(select BSNO from op_ctnbscard where GID=op_ctnrepair.LINKGID) BSNO");
|
|
strSql.Append(",(select top 1 IMAGE_LINDADDR1 from op_ctnbscard_img where LINKGID=op_ctnrepair.GID order by INPUTTIME) IMAGE_LINDADDR");
|
|
strSql.Append(",(select top 1 IMAGE_LINDADDR2 from op_ctnbscard_img where LINKGID=op_ctnrepair.GID order by INPUTTIME) IMAGE_LINDADDR2");
|
|
strSql.Append(",(select top 1 IMAGE1 from op_ctnbscard_img where LINKGID=op_ctnrepair.GID order by INPUTTIME) IMAGE1");
|
|
strSql.Append(",(select top 1 IMAGE2 from op_ctnbscard_img where LINKGID=op_ctnrepair.GID order by INPUTTIME) IMAGE2");
|
|
|
|
strSql.Append(" from op_ctnrepair ");
|
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
strSql.Append(" where " + strCondition);
|
|
}
|
|
var sortstring = DatasetSort.Getsortstring(sort);
|
|
if (!string.IsNullOrEmpty(sortstring))
|
|
{
|
|
strSql.Append(" order by " + sortstring);
|
|
}
|
|
else
|
|
{
|
|
strSql.Append(" order by REPAIRTIME desc,INPUTTIME desc");
|
|
|
|
}
|
|
return SetOpCtnRepairData(strSql);
|
|
}
|
|
|
|
static public string GetOpCtnRepairListStr(string strCondition, string sort = null)
|
|
{
|
|
|
|
var strSql = new StringBuilder();
|
|
strSql.Append("SELECT [GID],[LINKGID],[REPAIRITEMS],[REPAIRTIME]");
|
|
strSql.Append(",[FEENAME],[CURRENCY],[AMOUNT] ,[CURSTATOIN],[INPUTBY],[INPUTTIME],[COMPANYID],REMARKS,AUDITSTATUS,[AUDITBY],[AUDITTIME],[AUDITRESULT] ");
|
|
strSql.Append(",(select CTNNO from op_ctnbscard where GID=op_ctnrepair.LINKGID) CTNNO");
|
|
strSql.Append(",(select BSNO from op_ctnbscard where GID=op_ctnrepair.LINKGID) BSNO");
|
|
strSql.Append(",(select top 1 IMAGE_LINDADDR1 from op_ctnbscard_img where LINKGID=op_ctnrepair.GID order by INPUTTIME) IMAGE_LINDADDR");
|
|
strSql.Append(",(select top 1 IMAGE_LINDADDR2 from op_ctnbscard_img where LINKGID=op_ctnrepair.GID order by INPUTTIME) IMAGE_LINDADDR2");
|
|
strSql.Append(",(select top 1 IMAGE1 from op_ctnbscard_img where LINKGID=op_ctnrepair.GID order by INPUTTIME) IMAGE1");
|
|
strSql.Append(",(select top 1 IMAGE2 from op_ctnbscard_img where LINKGID=op_ctnrepair.GID order by INPUTTIME) IMAGE2");
|
|
|
|
strSql.Append(" from op_ctnrepair ");
|
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
strSql.Append(" where " + strCondition);
|
|
}
|
|
var sortstring = DatasetSort.Getsortstring(sort);
|
|
if (!string.IsNullOrEmpty(sortstring))
|
|
{
|
|
strSql.Append(" order by " + sortstring);
|
|
}
|
|
else
|
|
{
|
|
strSql.Append(" order by INPUTTIME");
|
|
|
|
}
|
|
return strSql.ToString();
|
|
}
|
|
|
|
private static List<OpCtnRepair> SetOpCtnRepairData(StringBuilder strSql)
|
|
{
|
|
var headList = new List<OpCtnRepair>();
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
{
|
|
while (reader.Read())
|
|
{
|
|
OpCtnRepair data = new OpCtnRepair();
|
|
#region Set DB data to Object
|
|
data.GID = Convert.ToString(reader["GID"]);
|
|
data.LINKGID = Convert.ToString(reader["LINKGID"]);
|
|
data.CTNNO = Convert.ToString(reader["CTNNO"]);
|
|
data.BSNO = Convert.ToString(reader["BSNO"]);
|
|
data.AUDITSTATUS = Convert.ToString(reader["AUDITSTATUS"]);
|
|
data.REPAIRITEMS = Convert.ToString(reader["REPAIRITEMS"]);
|
|
if (reader["REPAIRTIME"] != DBNull.Value)
|
|
data.REPAIRTIME = Convert.ToDateTime(reader["REPAIRTIME"]).ToString("yyyy-MM-dd");
|
|
data.IMAGE_LINDADDR = Convert.ToString(reader["IMAGE_LINDADDR"]);
|
|
data.IMAGE_LINDADDR2 = Convert.ToString(reader["IMAGE_LINDADDR2"]);
|
|
data.IMAGE1 = Convert.ToString(reader["IMAGE1"]);
|
|
data.IMAGE2= Convert.ToString(reader["IMAGE2"]);
|
|
data.CURSTATOIN = Convert.ToString(reader["CURSTATOIN"]);
|
|
data.FEENAME = Convert.ToString(reader["FEENAME"]);
|
|
data.CURRENCY = Convert.ToString(reader["CURRENCY"]);
|
|
if (reader["AMOUNT"] != DBNull.Value)
|
|
data.AMOUNT = Convert.ToDecimal(reader["AMOUNT"]);
|
|
data.INPUTBY = Convert.ToString(reader["INPUTBY"]);
|
|
data.REMARKS = Convert.ToString(reader["REMARKS"]);
|
|
if (reader["INPUTTIME"] != DBNull.Value)
|
|
data.INPUTTIME = Convert.ToDateTime(reader["INPUTTIME"]).ToString("yyyy-MM-dd HH:mm:ss");
|
|
data.AUDITBY = Convert.ToString(reader["AUDITBY"]);
|
|
data.AUDITRESULT = Convert.ToString(reader["AUDITRESULT"]);
|
|
if (reader["AUDITTIME"] != DBNull.Value)
|
|
data.AUDITTIME = Convert.ToDateTime(reader["AUDITTIME"]).ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
|
#endregion
|
|
headList.Add(data);
|
|
}
|
|
reader.Close();
|
|
}
|
|
return headList;
|
|
}
|
|
|
|
public static DBResult SaveOpCtnRepair(List<OpCtnRepair> bodyList, string PID, string userid)
|
|
{
|
|
var result = new DBResult();
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
try
|
|
{
|
|
|
|
var cmdInsert =
|
|
db.GetSqlStringCommand(
|
|
@"insert into op_ctnrepair (GID,LINKGID,REPAIRITEMS,REPAIRTIME,FEENAME,CURRENCY,AMOUNT,INPUTBY,INPUTTIME,REMARKS,AUDITSTATUS,CURSTATOIN)
|
|
values (@GID,@LINKGID,@REPAIRITEMS,@REPAIRTIME,@FEENAME,@CURRENCY,@AMOUNT,@INPUTBY,@INPUTTIME,@REMARKS,@AUDITSTATUS,@CURSTATOIN) ");
|
|
|
|
var cmdUpdate =
|
|
db.GetSqlStringCommand(
|
|
@"update op_ctnrepair set REPAIRITEMS=@REPAIRITEMS,REPAIRTIME=@REPAIRTIME,CURRENCY=@CURRENCY,AMOUNT=@AMOUNT
|
|
,FEENAME=@FEENAME,REMARKS=@REMARKS,CURSTATOIN=@CURSTATOIN where GID=@GID ");
|
|
|
|
if (bodyList != null)
|
|
{
|
|
foreach (var enumValue in bodyList)
|
|
{
|
|
|
|
if (enumValue.REPAIRTIME == "") enumValue.REPAIRTIME = null;
|
|
else {
|
|
enumValue.REPAIRTIME = Convert.ToDateTime(enumValue.REPAIRTIME.Replace("GMT+0800 (中国标准时间)", "")).ToString("yyyy-MM-dd");
|
|
|
|
}
|
|
|
|
|
|
|
|
if (enumValue.GID == "*" || enumValue.GID == "")
|
|
{
|
|
cmdInsert.Parameters.Clear();
|
|
db.AddInParameter(cmdInsert, "@GID", DbType.String, Guid.NewGuid().ToString());
|
|
db.AddInParameter(cmdInsert, "@LINKGID", DbType.String, PID);
|
|
db.AddInParameter(cmdInsert, "@REPAIRITEMS", DbType.String, enumValue.REPAIRITEMS);
|
|
db.AddInParameter(cmdInsert, "@REPAIRTIME", DbType.String, enumValue.REPAIRTIME);
|
|
db.AddInParameter(cmdInsert, "@FEENAME", DbType.String, enumValue.FEENAME);
|
|
db.AddInParameter(cmdInsert, "@CURRENCY", DbType.String, enumValue.CURRENCY);
|
|
db.AddInParameter(cmdInsert, "@AMOUNT", DbType.Decimal, enumValue.AMOUNT);
|
|
db.AddInParameter(cmdInsert, "@INPUTBY", DbType.String, userid);
|
|
db.AddInParameter(cmdInsert, "@INPUTTIME", DbType.String, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
db.AddInParameter(cmdInsert, "@AUDITSTATUS", DbType.String, "录入状态");
|
|
db.AddInParameter(cmdInsert, "@REMARKS", DbType.String, enumValue.REMARKS);
|
|
db.AddInParameter(cmdInsert, "@CURSTATOIN", DbType.String, enumValue.CURSTATOIN);
|
|
db.ExecuteNonQuery(cmdInsert, tran);
|
|
}
|
|
else
|
|
{
|
|
|
|
cmdUpdate.Parameters.Clear();
|
|
db.AddInParameter(cmdUpdate, "@GID", DbType.String, enumValue.GID);
|
|
db.AddInParameter(cmdUpdate, "@REPAIRITEMS", DbType.String, enumValue.REPAIRITEMS);
|
|
db.AddInParameter(cmdUpdate, "@REPAIRTIME", DbType.String, enumValue.REPAIRTIME);
|
|
db.AddInParameter(cmdUpdate, "@CURRENCY", DbType.String, enumValue.CURRENCY);
|
|
db.AddInParameter(cmdUpdate, "@FEENAME", DbType.String, enumValue.FEENAME);
|
|
db.AddInParameter(cmdUpdate, "@AMOUNT", DbType.Decimal, enumValue.AMOUNT);
|
|
db.AddInParameter(cmdUpdate, "@REMARKS", DbType.String, enumValue.REMARKS);
|
|
db.AddInParameter(cmdUpdate, "@CURSTATOIN", DbType.String, enumValue.CURSTATOIN);
|
|
db.ExecuteNonQuery(cmdUpdate, 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 SaveOpCtnRepairImg(List<OpCtnRepairImg> bodyList, string PID, string userid)
|
|
{
|
|
var result = new DBResult();
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
try
|
|
{
|
|
|
|
var cmdInsert =
|
|
db.GetSqlStringCommand(
|
|
@"insert into op_ctnbscard_img (GID,LINKGID,IMAGEDESC,INPUTBY,INPUTTIME,REMARKS)
|
|
values (@GID,@LINKGID,@IMAGEDESC,@INPUTBY,@INPUTTIME,@REMARKS) ");
|
|
|
|
var cmdUpdate =
|
|
db.GetSqlStringCommand(
|
|
@"update op_ctnbscard_img set IMAGEDESC=@IMAGEDESC
|
|
,REMARKS=@REMARKS where GID=@GID ");
|
|
|
|
if (bodyList != null)
|
|
{
|
|
foreach (var enumValue in bodyList)
|
|
{
|
|
|
|
if (enumValue.GID == "*" || enumValue.GID == "")
|
|
{
|
|
cmdInsert.Parameters.Clear();
|
|
db.AddInParameter(cmdInsert, "@GID", DbType.String, Guid.NewGuid().ToString());
|
|
db.AddInParameter(cmdInsert, "@LINKGID", DbType.String, PID);
|
|
db.AddInParameter(cmdInsert, "@IMAGEDESC", DbType.String, enumValue.IMAGEDESC);
|
|
db.AddInParameter(cmdInsert, "@INPUTBY", DbType.String, userid);
|
|
db.AddInParameter(cmdInsert, "@INPUTTIME", DbType.String, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
db.AddInParameter(cmdInsert, "@REMARKS", DbType.String, enumValue.REMARKS);
|
|
db.ExecuteNonQuery(cmdInsert, tran);
|
|
}
|
|
else
|
|
{
|
|
|
|
cmdUpdate.Parameters.Clear();
|
|
db.AddInParameter(cmdUpdate, "@GID", DbType.String, enumValue.GID);
|
|
db.AddInParameter(cmdUpdate, "@IMAGEDESC", DbType.String, enumValue.IMAGEDESC);
|
|
db.AddInParameter(cmdUpdate, "@REMARKS", DbType.String, enumValue.REMARKS);
|
|
db.ExecuteNonQuery(cmdUpdate, 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 DeleteOpCtnRepair(List<OpCtnRepair> headData)
|
|
{
|
|
var result = new DBResult();
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
try
|
|
{
|
|
if (headData != null)
|
|
{
|
|
foreach (var enumValue in headData)
|
|
{
|
|
|
|
var cmdDelete = db.GetSqlStringCommand("delete from op_ctnrepair where GID='" + enumValue.GID + "'");
|
|
db.ExecuteNonQuery(cmdDelete, tran);
|
|
}
|
|
}
|
|
|
|
|
|
tran.Commit();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
tran.Rollback();
|
|
|
|
result.Success = false;
|
|
result.Message = "删除出现错误,请重试或联系系统管理员";
|
|
|
|
return result;
|
|
}
|
|
}
|
|
result.Success = true;
|
|
result.Message = "删除成功";
|
|
|
|
return result;
|
|
}
|
|
|
|
|
|
public static DBResult UpdateRepairFileData(string filename, string name, string BSNO, string type)
|
|
{
|
|
var result = new DBResult();
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
try
|
|
{
|
|
|
|
if (type == "1")
|
|
{
|
|
|
|
var cmdUpdate =
|
|
db.GetSqlStringCommand(
|
|
@"update op_ctnbscard_img set IMAGE1=@IMAGE1,IMAGE_LINDADDR1=@IMAGE_LINDADDR1 where GID=@GID ");
|
|
|
|
|
|
cmdUpdate.Parameters.Clear();
|
|
db.AddInParameter(cmdUpdate, "@GID", DbType.String, BSNO);
|
|
db.AddInParameter(cmdUpdate, "@IMAGE1", DbType.String, name);
|
|
db.AddInParameter(cmdUpdate, "@IMAGE_LINDADDR1", DbType.String, filename);
|
|
|
|
db.ExecuteNonQuery(cmdUpdate, tran);
|
|
|
|
}
|
|
else {
|
|
var cmdUpdate =
|
|
db.GetSqlStringCommand(
|
|
@"update op_ctnbscard_img set IMAGE2=@IMAGE2,IMAGE_LINDADDR2=@IMAGE_LINDADDR2 where GID=@GID ");
|
|
|
|
|
|
cmdUpdate.Parameters.Clear();
|
|
db.AddInParameter(cmdUpdate, "@GID", DbType.String, BSNO);
|
|
db.AddInParameter(cmdUpdate, "@IMAGE2", DbType.String, name);
|
|
db.AddInParameter(cmdUpdate, "@IMAGE_LINDADDR2", DbType.String, filename);
|
|
|
|
db.ExecuteNonQuery(cmdUpdate, 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 AuditOpCtnRepair(List<OpCtnRepair> headData, string type, string username)
|
|
{
|
|
var result = new DBResult();
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
try
|
|
{
|
|
if (headData != null)
|
|
{
|
|
foreach (var enumValue in headData)
|
|
{
|
|
|
|
var cmdUpdate = db.GetSqlStringCommand("update op_ctnrepair set AUDITSTATUS='提交审核' where GID='" + enumValue.GID + "'");
|
|
if (type == "2")
|
|
cmdUpdate = db.GetSqlStringCommand("update op_ctnrepair set AUDITSTATUS='录入状态' where GID='" + enumValue.GID + "'");
|
|
if (type == "0")
|
|
cmdUpdate = db.GetSqlStringCommand("update op_ctnrepair set AUDITSTATUS='审核通过',AUDITBY='" + username + "',AUDITTIME='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "' where GID='" + enumValue.GID + "'");
|
|
if (type == "4")
|
|
cmdUpdate = db.GetSqlStringCommand("update op_ctnrepair set AUDITSTATUS='驳回提交',AUDITBY='" + username + "',AUDITTIME='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "' where GID='" + enumValue.GID + "'");
|
|
if (type == "6")
|
|
cmdUpdate = db.GetSqlStringCommand("update op_ctnrepair set AUDITSTATUS='申请修改' where GID='" + enumValue.GID + "'");
|
|
|
|
|
|
db.ExecuteNonQuery(cmdUpdate, tran);
|
|
}
|
|
}
|
|
|
|
|
|
tran.Commit();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
tran.Rollback();
|
|
|
|
result.Success = false;
|
|
result.Message = "提交或审核出现错误,请重试或联系系统管理员";
|
|
|
|
return result;
|
|
}
|
|
}
|
|
result.Success = true;
|
|
result.Message = "提交或审核成功";
|
|
|
|
return result;
|
|
}
|
|
|
|
|
|
public static DBResult CreateOpCtnRepairFromFee(List<MsChFee> FeeList, string userid)
|
|
{
|
|
var result = new DBResult();
|
|
|
|
var headdata = GetData("GID='" + FeeList[0].BsNo + "'", userid);
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
var cmdInsert =
|
|
db.GetSqlStringCommand(
|
|
@"insert into op_ctnclearing (GID,LINKGID,INSTATOINTIME,CLEARINGMODE,PREGOODSNAME,ISCLEAR_CERT,CHECKGOV,ISCLEAR_PLAN,CLEARTIME,ISCOMPLETE,
|
|
FEENAME,CURRENCY,AMOUNT,INPUTBY,INPUTTIME,REMARKS,AUDITSTATUS,CURSTATOIN)
|
|
values (@GID,@LINKGID,@INSTATOINTIME,@CLEARINGMODE,@PREGOODSNAME,@ISCLEAR_CERT,@CHECKGOV,@ISCLEAR_PLAN,@CLEARTIME,@ISCOMPLETE,@FEENAME,
|
|
@CURRENCY,@AMOUNT,@INPUTBY,@INPUTTIME,@REMARKS,@AUDITSTATUS,@CURSTATOIN
|
|
|
|
) ");
|
|
|
|
var cmdInsertRepaire =
|
|
db.GetSqlStringCommand(
|
|
@"insert into op_ctnrepair (GID,LINKGID,REPAIRITEMS,REPAIRTIME,FEENAME,CURRENCY,AMOUNT,INPUTBY,INPUTTIME,REMARKS,AUDITSTATUS,CURSTATOIN)
|
|
values (@GID,@LINKGID,@REPAIRITEMS,@REPAIRTIME,@FEENAME,@CURRENCY,@AMOUNT,@INPUTBY,@INPUTTIME,@REMARKS,@AUDITSTATUS,@CURSTATOIN) ");
|
|
|
|
|
|
try
|
|
{
|
|
if (FeeList != null)
|
|
{
|
|
foreach (var enumValue in FeeList)
|
|
{
|
|
var rtnctndate = "";
|
|
if (headdata.IS_DB && headdata.D_DEST_RTCNT_TIME != "")
|
|
{
|
|
rtnctndate = headdata.D_DEST_RTCNT_TIME;
|
|
}
|
|
else if (headdata.IS_RETURE_EMPTY && headdata.I_DEST_RTCNT_TIME != "")
|
|
{
|
|
rtnctndate = headdata.I_DEST_RTCNT_TIME;
|
|
}
|
|
else if (headdata.DEST_RTCNT_TIME != "")
|
|
{
|
|
rtnctndate = headdata.DEST_RTCNT_TIME;
|
|
}
|
|
|
|
if (enumValue.FeeName == "清洗费") {
|
|
|
|
cmdInsert.Parameters.Clear();
|
|
db.AddInParameter(cmdInsert, "@GID", DbType.String, Guid.NewGuid().ToString());
|
|
db.AddInParameter(cmdInsert, "@LINKGID", DbType.String, headdata.GID);
|
|
db.AddInParameter(cmdInsert, "@INSTATOINTIME", DbType.String, rtnctndate);
|
|
db.AddInParameter(cmdInsert, "@CLEARINGMODE", DbType.String, "");
|
|
db.AddInParameter(cmdInsert, "@PREGOODSNAME", DbType.String, headdata.PREGOODSNAME);
|
|
db.AddInParameter(cmdInsert, "@ISCLEAR_CERT", DbType.Boolean, false);
|
|
db.AddInParameter(cmdInsert, "@CHECKGOV", DbType.String, enumValue.CustomerName);
|
|
db.AddInParameter(cmdInsert, "@ISCLEAR_PLAN", DbType.Boolean, false);
|
|
db.AddInParameter(cmdInsert, "@CLEARTIME", DbType.String, rtnctndate);
|
|
db.AddInParameter(cmdInsert, "@ISCOMPLETE", DbType.Boolean, true);
|
|
db.AddInParameter(cmdInsert, "@FEENAME", DbType.String, enumValue.FeeName);
|
|
db.AddInParameter(cmdInsert, "@CURRENCY", DbType.String, enumValue.Currency);
|
|
db.AddInParameter(cmdInsert, "@AMOUNT", DbType.Decimal, enumValue.Amount);
|
|
db.AddInParameter(cmdInsert, "@INPUTBY", DbType.String, userid);
|
|
db.AddInParameter(cmdInsert, "@INPUTTIME", DbType.String, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
db.AddInParameter(cmdInsert, "@AUDITSTATUS", DbType.String, "录入状态");
|
|
db.AddInParameter(cmdInsert, "@REMARKS", DbType.String, enumValue.Remark);
|
|
db.AddInParameter(cmdInsert, "@CURSTATOIN", DbType.String, headdata.CURSTATOIN);
|
|
|
|
db.ExecuteNonQuery(cmdInsert, tran);
|
|
|
|
|
|
}
|
|
else
|
|
|
|
{
|
|
cmdInsertRepaire.Parameters.Clear();
|
|
db.AddInParameter(cmdInsertRepaire, "@GID", DbType.String, Guid.NewGuid().ToString());
|
|
db.AddInParameter(cmdInsertRepaire, "@LINKGID", DbType.String, headdata.GID);
|
|
db.AddInParameter(cmdInsertRepaire, "@REPAIRITEMS", DbType.String, enumValue.FeeName);
|
|
db.AddInParameter(cmdInsertRepaire, "@REPAIRTIME", DbType.String,rtnctndate);
|
|
db.AddInParameter(cmdInsertRepaire, "@FEENAME", DbType.String, enumValue.FeeName);
|
|
db.AddInParameter(cmdInsertRepaire, "@CURRENCY", DbType.String, enumValue.Currency);
|
|
db.AddInParameter(cmdInsertRepaire, "@AMOUNT", DbType.Decimal, enumValue.Amount);
|
|
db.AddInParameter(cmdInsertRepaire, "@INPUTBY", DbType.String, userid);
|
|
db.AddInParameter(cmdInsertRepaire, "@INPUTTIME", DbType.String, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
db.AddInParameter(cmdInsertRepaire, "@AUDITSTATUS", DbType.String, "录入状态");
|
|
db.AddInParameter(cmdInsertRepaire, "@REMARKS", DbType.String, enumValue.Remark);
|
|
db.AddInParameter(cmdInsertRepaire, "@CURSTATOIN", DbType.String, headdata.CURSTATOIN);
|
|
db.ExecuteNonQuery(cmdInsertRepaire, tran);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
tran.Commit();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
tran.Rollback();
|
|
|
|
result.Success = false;
|
|
result.Message = "提交或审核出现错误,请重试或联系系统管理员";
|
|
|
|
return result;
|
|
}
|
|
}
|
|
result.Success = true;
|
|
result.Message = "提交或审核成功";
|
|
|
|
return result;
|
|
}
|
|
|
|
|
|
|
|
public static DBResult GetYardRemark(string bsno,string userid)
|
|
{
|
|
var result = new DBResult();
|
|
|
|
var headdata = GetData("GID='" + bsno+ "'", userid);
|
|
|
|
var remark = "";
|
|
var rtnctndate = "";
|
|
var rtnyard = "";
|
|
var rtnport = "";
|
|
if (headdata.IS_DB && headdata.D_DEST_RTCNT_TIME != "")
|
|
{
|
|
rtnctndate = headdata.D_DEST_RTCNT_TIME;
|
|
rtnport = headdata.D_DESTPORT;
|
|
rtnyard = headdata.D_DESTPORT_STATOIN;
|
|
}
|
|
else if (headdata.IS_RETURE_EMPTY && headdata.I_DEST_RTCNT_TIME != "")
|
|
{
|
|
rtnctndate = headdata.I_DEST_RTCNT_TIME;
|
|
rtnport = headdata.I_DESTPORT;
|
|
rtnyard = headdata.I_DESTPORT_STATOIN;
|
|
|
|
}
|
|
else if (headdata.DEST_RTCNT_TIME != "")
|
|
{
|
|
rtnctndate = headdata.DEST_RTCNT_TIME;
|
|
rtnport = headdata.DESTPORT;
|
|
rtnyard = headdata.DESTPORT_STATOIN;
|
|
}
|
|
remark = rtnctndate + "-" + headdata.NPORTLOAD_CNT_TIME;
|
|
|
|
var con = "FEENAME";
|
|
var pricelist = MsOpPriceDAL.GetPriceItemsList("FEENAME='堆存费' AND LINKGID IN (SELECT GID FROM op_price WHERE PORTDISCHARGE='"+rtnport+ "' and YARD='"+ rtnyard + "' and FEETYPE='堆存')", " INPUTTIME DESC");
|
|
if (pricelist.Count > 0) {
|
|
remark = remark + " 清洗免堆存" + pricelist[0].FREEDAY + "天,超期" + pricelist[0].UNITPRICE + "/天";
|
|
}
|
|
|
|
result.Success = true;
|
|
result.Data = remark;
|
|
result.Message = "提交或审核成功";
|
|
|
|
return result;
|
|
}
|
|
|
|
#endregion
|
|
|
|
|
|
#region OpCtnRepairImg
|
|
|
|
static public List<OpCtnRepairImg> GetOpCtnRepairListImg(string strCondition, string sort = null)
|
|
{
|
|
|
|
var strSql = new StringBuilder();
|
|
strSql.Append("SELECT [GID],[LINKGID],[IMAGEDESC],[IMAGE_LINDADDR1],[IMAGE_LINDADDR2],[IMAGE1],[IMAGE2]");
|
|
strSql.Append(",[INPUTBY],[INPUTTIME],[COMPANYID],REMARKS ");
|
|
strSql.Append(" from op_ctnbscard_img ");
|
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
strSql.Append(" where " + strCondition);
|
|
}
|
|
var sortstring = DatasetSort.Getsortstring(sort);
|
|
if (!string.IsNullOrEmpty(sortstring))
|
|
{
|
|
strSql.Append(" order by " + sortstring);
|
|
}
|
|
else
|
|
{
|
|
strSql.Append(" order by INPUTTIME");
|
|
|
|
}
|
|
return SetOpCtnRepairDataImg(strSql);
|
|
}
|
|
|
|
|
|
|
|
private static List<OpCtnRepairImg> SetOpCtnRepairDataImg(StringBuilder strSql)
|
|
{
|
|
var headList = new List<OpCtnRepairImg>();
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
{
|
|
while (reader.Read())
|
|
{
|
|
OpCtnRepairImg data = new OpCtnRepairImg();
|
|
#region Set DB data to Object
|
|
data.GID = Convert.ToString(reader["GID"]);
|
|
data.LINKGID = Convert.ToString(reader["LINKGID"]);
|
|
data.IMAGEDESC = Convert.ToString(reader["IMAGEDESC"]);
|
|
data.IMAGE_LINDADDR1 = Convert.ToString(reader["IMAGE_LINDADDR1"]);
|
|
data.IMAGE_LINDADDR2 = Convert.ToString(reader["IMAGE_LINDADDR2"]);
|
|
data.IMAGE1 = Convert.ToString(reader["IMAGE1"]);
|
|
data.IMAGE2 = Convert.ToString(reader["IMAGE2"]);
|
|
data.INPUTBY = Convert.ToString(reader["INPUTBY"]);
|
|
data.REMARKS = Convert.ToString(reader["REMARKS"]);
|
|
if (reader["INPUTTIME"] != DBNull.Value)
|
|
data.INPUTTIME = Convert.ToDateTime(reader["INPUTTIME"]).ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
|
#endregion
|
|
headList.Add(data);
|
|
}
|
|
reader.Close();
|
|
}
|
|
return headList;
|
|
}
|
|
|
|
|
|
|
|
|
|
public static DBResult DeleteOpCtnRepairImg(List<OpCtnRepairImg> headData)
|
|
{
|
|
var result = new DBResult();
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
try
|
|
{
|
|
if (headData != null)
|
|
{
|
|
foreach (var enumValue in headData)
|
|
{
|
|
|
|
var cmdDelete = db.GetSqlStringCommand("delete from op_ctnbscard_img where GID='" + enumValue.GID + "'");
|
|
db.ExecuteNonQuery(cmdDelete, tran);
|
|
}
|
|
}
|
|
|
|
|
|
tran.Commit();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
tran.Rollback();
|
|
|
|
result.Success = false;
|
|
result.Message = "删除出现错误,请重试或联系系统管理员";
|
|
|
|
return result;
|
|
}
|
|
}
|
|
result.Success = true;
|
|
result.Message = "删除成功";
|
|
|
|
return result;
|
|
}
|
|
|
|
|
|
public static DBResult UpdateRepairFileDataImg(string filename, string name, string BSNO, string type)
|
|
{
|
|
var result = new DBResult();
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
try
|
|
{
|
|
|
|
if (type == "1")
|
|
{
|
|
|
|
var cmdUpdate =
|
|
db.GetSqlStringCommand(
|
|
@"update op_ctnbscard_img set IMAGE1=@IMAGE1,IMAGE_LINDADDR1=@IMAGE_LINDADDR1 where GID=@GID ");
|
|
|
|
|
|
cmdUpdate.Parameters.Clear();
|
|
db.AddInParameter(cmdUpdate, "@GID", DbType.String, BSNO);
|
|
db.AddInParameter(cmdUpdate, "@IMAGE1", DbType.String, name);
|
|
db.AddInParameter(cmdUpdate, "@IMAGE_LINDADDR1", DbType.String, filename);
|
|
|
|
db.ExecuteNonQuery(cmdUpdate, tran);
|
|
|
|
}
|
|
else
|
|
{
|
|
var cmdUpdate =
|
|
db.GetSqlStringCommand(
|
|
@"update op_ctnbscard_img set IMAGE2=@IMAGE2,IMAGE_LINDADDR2=@IMAGE_LINDADDR2 where GID=@GID ");
|
|
|
|
|
|
cmdUpdate.Parameters.Clear();
|
|
db.AddInParameter(cmdUpdate, "@GID", DbType.String, BSNO);
|
|
db.AddInParameter(cmdUpdate, "@IMAGE2", DbType.String, name);
|
|
db.AddInParameter(cmdUpdate, "@IMAGE_LINDADDR2", DbType.String, filename);
|
|
|
|
db.ExecuteNonQuery(cmdUpdate, tran);
|
|
|
|
}
|
|
|
|
tran.Commit();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
tran.Rollback();
|
|
|
|
result.Success = false;
|
|
result.Message = "保存出现错误,请重试或联系系统管理员";
|
|
|
|
return result;
|
|
}
|
|
}
|
|
|
|
result.Success = true;
|
|
result.Message = "保存成功" + result.Message;
|
|
|
|
return result;
|
|
}
|
|
|
|
|
|
#endregion
|
|
//
|
|
|
|
public static DBResult UpOpCtnApplyCtnItems(string CNTRNO,string APPLYNO)
|
|
{
|
|
var result = new DBResult();
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
try
|
|
{
|
|
|
|
|
|
var cmdUpdate =
|
|
db.GetSqlStringCommand(
|
|
@"update op_ctnapplyctnitems set AUDITSTATUS=@AUDITSTATUS,AUDITBY=@AUDITBY,AUDITTIME=@AUDITTIME where CTNNO=@CTNNO AND
|
|
LINKGID=(SELECT TOP 1 GID FROM op_ctnapply WHERE BSNO=@BSNO) ");
|
|
cmdUpdate.Parameters.Clear();
|
|
db.AddInParameter(cmdUpdate, "@AUDITSTATUS", DbType.String, "录入");
|
|
db.AddInParameter(cmdUpdate, "@AUDITBY", DbType.String,"");
|
|
db.AddInParameter(cmdUpdate, "@AUDITTIME", DbType.String,null);
|
|
db.AddInParameter(cmdUpdate, "@CTNNO", DbType.String, CNTRNO);
|
|
db.AddInParameter(cmdUpdate, "@BSNO", DbType.String, APPLYNO);
|
|
|
|
db.ExecuteNonQuery(cmdUpdate, tran);
|
|
|
|
|
|
|
|
|
|
tran.Commit();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
tran.Rollback();
|
|
|
|
result.Success = false;
|
|
result.Message = "删除出现错误,请重试或联系系统管理员";
|
|
|
|
return result;
|
|
}
|
|
}
|
|
result.Success = true;
|
|
result.Message = "删除成功";
|
|
|
|
return result;
|
|
}
|
|
|
|
private static int DateDiff(string dateStart, string dateEnd)
|
|
{
|
|
DateTime start = Convert.ToDateTime(dateStart);
|
|
DateTime end = Convert.ToDateTime(dateEnd);
|
|
|
|
TimeSpan sp = end.Subtract(start);
|
|
|
|
return sp.Days;
|
|
}
|
|
static public int GetRdCount(string strCondition)
|
|
{
|
|
var strSql = new StringBuilder();
|
|
strSql.Append("SELECT Count(BSNO) AS CT from op_ctnbscard (NOLOCK) ");
|
|
if (strCondition.Trim() != String.Empty)
|
|
{
|
|
strSql.Append(" where " + strCondition);
|
|
}
|
|
var ct = 0;
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
{
|
|
while (reader.Read())
|
|
{
|
|
ct = Convert.ToInt16(reader["CT"]);
|
|
}
|
|
reader.Close();
|
|
}
|
|
return ct;
|
|
}
|
|
|
|
public static DBResult UpCtnStatus(string CTNNO)
|
|
{
|
|
var result = new DBResult();
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
try
|
|
{
|
|
|
|
|
|
var cmdUpdate = db.GetSqlStringCommand("update code_ctntk set CTNSTATUS='可用' where CTNNO='"+CTNNO+"'");
|
|
|
|
db.ExecuteNonQuery(cmdUpdate, tran);
|
|
|
|
|
|
tran.Commit();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
tran.Rollback();
|
|
|
|
result.Success = false;
|
|
result.Message = "删除出现错误,请重试或联系系统管理员";
|
|
|
|
return result;
|
|
}
|
|
}
|
|
result.Success = true;
|
|
result.Message = "删除成功";
|
|
|
|
return result;
|
|
}
|
|
|
|
|
|
public static DBResult SaveFeeDR(OpCtnBsCard headdata, string userid,string feetype)
|
|
{
|
|
var result = new DBResult();
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
try
|
|
{
|
|
|
|
var cmdInsert =
|
|
db.GetSqlStringCommand(
|
|
@"INSERT INTO ch_fee(GID, BSNO, FEETYPE, FEENAME, FEEDESCRIPTION, CUSTOMERTYPE, CUSTOMERNAME, UNIT, UNITPRICE, QUANTITY, AMOUNT, CURRENCY,
|
|
EXCHANGERATE, REASON, REMARK, COMMISSIONRATE,ENTEROPERATOR, ENTERDATE,ISOPEN, ISADVANCEDPAY, SORT, FEESTATUS, FEEFRT,
|
|
TAXRATE,NOTAXAMOUNT,ACCTAXRATE,LINENUM,TAXUNITPRICE,MODIFIEDUSER,MODIFIEDTIME,WMSOUTBSNO,PREAMOUNT,INPUTMODE)
|
|
VALUES
|
|
(@gid,@bsno,@fee_type,@fee_name,@fee_description,@customer_type,@customer_name,@unit,@unit_price,@quantity,@amount,@currency,
|
|
@exchange_rate,@reason,@remark,@comm_rate,@enter_operator,@enter_date,@is_open,@is_advance_pay,@sort,@fee_status,@fee_frt,
|
|
@taxrate,@notaxamount,@acctaxrate,@LINENUM,@taxunit_price,@MODIFIEDUSER,@MODIFIEDTIME,@WMSOUTBSNO,@PREAMOUNT,@INPUTMODE) ");
|
|
|
|
if (headdata.PORTLOAD_OVER_DAYS_AMT != 0 && feetype=="1")
|
|
{
|
|
|
|
|
|
cmdInsert.Parameters.Clear();
|
|
db.AddInParameter(cmdInsert, "@gid", DbType.String, Guid.NewGuid().ToString());
|
|
db.AddInParameter(cmdInsert, "@bsno", DbType.String, headdata.GID);
|
|
db.AddInParameter(cmdInsert, "@fee_type", DbType.Int16, 1);
|
|
db.AddInParameter(cmdInsert, "@fee_name", DbType.String, "箱使费");
|
|
db.AddInParameter(cmdInsert, "@customer_type", DbType.String, "");
|
|
db.AddInParameter(cmdInsert, "@customer_name", DbType.String, headdata.AGENTNAME);
|
|
db.AddInParameter(cmdInsert, "@unit", DbType.String, "罐");
|
|
db.AddInParameter(cmdInsert, "@unit_price", DbType.Decimal, headdata.PORTLOAD_OVER_DAYS_AMT);
|
|
db.AddInParameter(cmdInsert, "@fee_description", DbType.String, "DEMURRAGE CHARGE");
|
|
|
|
db.AddInParameter(cmdInsert, "@quantity", DbType.Decimal,1);
|
|
|
|
db.AddInParameter(cmdInsert, "@amount", DbType.Decimal, headdata.PORTLOAD_OVER_DAYS_AMT);
|
|
|
|
db.AddInParameter(cmdInsert, "@currency", DbType.String, "USD");
|
|
db.AddInParameter(cmdInsert, "@exchange_rate", DbType.Decimal, MsChFeeDAL.GetUsdExrate("", "",""));
|
|
db.AddInParameter(cmdInsert, "@reason", DbType.String, "");
|
|
|
|
var remark = headdata.CTNNO + "," + headdata.PORTLOAD_CNT_TIME + "到," + headdata.ETD + "还," + headdata.PORTLOAD_FREE_DAYS + "," + headdata.PORTLOAD_OVER_DAYS_FEE + ",超期" + headdata.PORTLOAD_OVER_DAYS + "天," + headdata.PORTLOAD_OVER_DAYS_AMT;
|
|
|
|
db.AddInParameter(cmdInsert, "@remark", DbType.String, remark);
|
|
|
|
// db.AddInParameter(cmdInsert, "@CARGO_GID", DbType.String, enumValue.PRICETYPE);
|
|
|
|
db.AddInParameter(cmdInsert, "@comm_rate", DbType.Decimal, 0);
|
|
db.AddInParameter(cmdInsert, "@enter_operator", DbType.String, userid);
|
|
db.AddInParameter(cmdInsert, "@enter_date", DbType.String, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
db.AddInParameter(cmdInsert, "@is_open", DbType.String, "0");
|
|
db.AddInParameter(cmdInsert, "@is_advance_pay", DbType.String, "0");
|
|
db.AddInParameter(cmdInsert, "@sort", DbType.Int16, 0);
|
|
db.AddInParameter(cmdInsert, "@fee_status", DbType.Int16, 1);
|
|
db.AddInParameter(cmdInsert, "@fee_frt", DbType.String, "");
|
|
db.AddInParameter(cmdInsert, "@taxrate", DbType.Decimal, 0);
|
|
db.AddInParameter(cmdInsert, "@notaxamount", DbType.Decimal, headdata.PORTLOAD_OVER_DAYS_AMT);
|
|
|
|
|
|
db.AddInParameter(cmdInsert, "@acctaxrate", DbType.Decimal, 0);
|
|
db.AddInParameter(cmdInsert, "@LINENUM", DbType.Int16, 0);
|
|
db.AddInParameter(cmdInsert, "@taxunit_price", DbType.Decimal, 0);
|
|
db.AddInParameter(cmdInsert, "@MODIFIEDUSER", DbType.String, userid);
|
|
db.AddInParameter(cmdInsert, "@MODIFIEDTIME", DbType.String, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
db.AddInParameter(cmdInsert, "@WMSOUTBSNO", DbType.String, "");
|
|
db.AddInParameter(cmdInsert, "@PREAMOUNT", DbType.Decimal,0);
|
|
|
|
db.AddInParameter(cmdInsert, "@INPUTMODE", DbType.String, "手工");
|
|
db.ExecuteNonQuery(cmdInsert, tran);
|
|
|
|
}
|
|
|
|
if (headdata.DESTPORT_OVER_DAYS_AMT != 0 && feetype == "2")
|
|
{
|
|
|
|
|
|
cmdInsert.Parameters.Clear();
|
|
db.AddInParameter(cmdInsert, "@gid", DbType.String, Guid.NewGuid().ToString());
|
|
db.AddInParameter(cmdInsert, "@bsno", DbType.String, headdata.GID);
|
|
db.AddInParameter(cmdInsert, "@fee_type", DbType.Int16, 1);
|
|
db.AddInParameter(cmdInsert, "@fee_name", DbType.String, "箱使费");
|
|
db.AddInParameter(cmdInsert, "@customer_type", DbType.String, "");
|
|
db.AddInParameter(cmdInsert, "@customer_name", DbType.String, headdata.AGENTNAME);
|
|
db.AddInParameter(cmdInsert, "@unit", DbType.String, "罐");
|
|
db.AddInParameter(cmdInsert, "@unit_price", DbType.Decimal, headdata.DESTPORT_OVER_DAYS_AMT);
|
|
db.AddInParameter(cmdInsert, "@fee_description", DbType.String, "DEMURRAGE CHARGE");
|
|
|
|
db.AddInParameter(cmdInsert, "@quantity", DbType.Decimal, 1);
|
|
|
|
db.AddInParameter(cmdInsert, "@amount", DbType.Decimal, headdata.DESTPORT_OVER_DAYS_AMT);
|
|
|
|
db.AddInParameter(cmdInsert, "@currency", DbType.String, "USD");
|
|
db.AddInParameter(cmdInsert, "@exchange_rate", DbType.Decimal, MsChFeeDAL.GetUsdExrate("", "",""));
|
|
db.AddInParameter(cmdInsert, "@reason", DbType.String, "");
|
|
|
|
|
|
var remark = headdata.CTNNO + "," + headdata.ETA + "到," + headdata.DEST_RTCNT_TIME + "还," + headdata.DESTPORT_FREE_DAYS + "," + headdata.DESTPORT_OVER_DAYS_FEE + ",超期" + headdata.DESTPORT_OVER_DAYS + "天," + headdata.DESTPORT_OVER_DAYS_AMT;
|
|
|
|
db.AddInParameter(cmdInsert, "@remark", DbType.String, remark);
|
|
|
|
// db.AddInParameter(cmdInsert, "@CARGO_GID", DbType.String, enumValue.PRICETYPE);
|
|
|
|
db.AddInParameter(cmdInsert, "@comm_rate", DbType.Decimal, 0);
|
|
db.AddInParameter(cmdInsert, "@enter_operator", DbType.String, userid);
|
|
db.AddInParameter(cmdInsert, "@enter_date", DbType.String, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
db.AddInParameter(cmdInsert, "@is_open", DbType.String, "0");
|
|
db.AddInParameter(cmdInsert, "@is_advance_pay", DbType.String, "0");
|
|
db.AddInParameter(cmdInsert, "@sort", DbType.Int16, 0);
|
|
db.AddInParameter(cmdInsert, "@fee_status", DbType.Int16, 1);
|
|
db.AddInParameter(cmdInsert, "@fee_frt", DbType.String, "");
|
|
db.AddInParameter(cmdInsert, "@taxrate", DbType.Decimal, 0);
|
|
db.AddInParameter(cmdInsert, "@notaxamount", DbType.Decimal, headdata.DESTPORT_OVER_DAYS_AMT);
|
|
|
|
|
|
db.AddInParameter(cmdInsert, "@acctaxrate", DbType.Decimal, 0);
|
|
db.AddInParameter(cmdInsert, "@LINENUM", DbType.Int16, 0);
|
|
db.AddInParameter(cmdInsert, "@taxunit_price", DbType.Decimal, 0);
|
|
db.AddInParameter(cmdInsert, "@MODIFIEDUSER", DbType.String, userid);
|
|
db.AddInParameter(cmdInsert, "@MODIFIEDTIME", DbType.String, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
db.AddInParameter(cmdInsert, "@WMSOUTBSNO", DbType.String, "");
|
|
db.AddInParameter(cmdInsert, "@PREAMOUNT", DbType.Decimal, 0);
|
|
|
|
db.AddInParameter(cmdInsert, "@INPUTMODE", DbType.String, "手工");
|
|
db.ExecuteNonQuery(cmdInsert, tran);
|
|
|
|
}
|
|
if (headdata.DESTPORT_OVER_DAYS_AMT != 0 && feetype == "3")
|
|
{
|
|
|
|
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
|
|
var sSQL = "SELECT CHANGERATE as inum from op_ctnapply where BSNO='" + headdata.APPLYNO + "'";
|
|
var sNum = T_ALL_DA.GetStrSQL("inum", sSQL);
|
|
|
|
if (sNum != "" && sNum != "0")
|
|
{
|
|
var amountfee=headdata.DESTPORT_OVER_DAYS_AMT*Convert.ToDecimal(sNum)/100;
|
|
cmdInsert.Parameters.Clear();
|
|
db.AddInParameter(cmdInsert, "@gid", DbType.String, Guid.NewGuid().ToString());
|
|
db.AddInParameter(cmdInsert, "@bsno", DbType.String, headdata.GID);
|
|
db.AddInParameter(cmdInsert, "@fee_type", DbType.Int16, 1);
|
|
db.AddInParameter(cmdInsert, "@fee_name", DbType.String, "箱使代理费");
|
|
db.AddInParameter(cmdInsert, "@customer_type", DbType.String, "");
|
|
db.AddInParameter(cmdInsert, "@customer_name", DbType.String, headdata.AGENTNAME);
|
|
db.AddInParameter(cmdInsert, "@unit", DbType.String, "罐");
|
|
db.AddInParameter(cmdInsert, "@unit_price", DbType.Decimal, -amountfee);
|
|
db.AddInParameter(cmdInsert, "@fee_description", DbType.String, "COMMISSION");
|
|
|
|
db.AddInParameter(cmdInsert, "@quantity", DbType.Decimal, 1);
|
|
|
|
db.AddInParameter(cmdInsert, "@amount", DbType.Decimal, -amountfee);
|
|
|
|
db.AddInParameter(cmdInsert, "@currency", DbType.String, "USD");
|
|
db.AddInParameter(cmdInsert, "@exchange_rate", DbType.Decimal, MsChFeeDAL.GetUsdExrate("", "",""));
|
|
db.AddInParameter(cmdInsert, "@reason", DbType.String, "");
|
|
|
|
|
|
|
|
db.AddInParameter(cmdInsert, "@remark", DbType.String, "");
|
|
|
|
// db.AddInParameter(cmdInsert, "@CARGO_GID", DbType.String, enumValue.PRICETYPE);
|
|
|
|
db.AddInParameter(cmdInsert, "@comm_rate", DbType.Decimal, 0);
|
|
db.AddInParameter(cmdInsert, "@enter_operator", DbType.String, userid);
|
|
db.AddInParameter(cmdInsert, "@enter_date", DbType.String, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
db.AddInParameter(cmdInsert, "@is_open", DbType.String, "0");
|
|
db.AddInParameter(cmdInsert, "@is_advance_pay", DbType.String, "0");
|
|
db.AddInParameter(cmdInsert, "@sort", DbType.Int16, 0);
|
|
db.AddInParameter(cmdInsert, "@fee_status", DbType.Int16, 1);
|
|
db.AddInParameter(cmdInsert, "@fee_frt", DbType.String, "");
|
|
db.AddInParameter(cmdInsert, "@taxrate", DbType.Decimal, 0);
|
|
db.AddInParameter(cmdInsert, "@notaxamount", DbType.Decimal, -amountfee);
|
|
|
|
|
|
db.AddInParameter(cmdInsert, "@acctaxrate", DbType.Decimal, 0);
|
|
db.AddInParameter(cmdInsert, "@LINENUM", DbType.Int16, 0);
|
|
db.AddInParameter(cmdInsert, "@taxunit_price", DbType.Decimal, 0);
|
|
db.AddInParameter(cmdInsert, "@MODIFIEDUSER", DbType.String, userid);
|
|
db.AddInParameter(cmdInsert, "@MODIFIEDTIME", DbType.String, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
db.AddInParameter(cmdInsert, "@WMSOUTBSNO", DbType.String, "");
|
|
db.AddInParameter(cmdInsert, "@PREAMOUNT", DbType.Decimal,0);
|
|
|
|
db.AddInParameter(cmdInsert, "@INPUTMODE", DbType.String, "手工");
|
|
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 UpdOpseaiDEST_RTCNT_TIME(OpCtnBsCard headData) {
|
|
var result = new DBResult();
|
|
|
|
if (!string.IsNullOrWhiteSpace(headData.DEST_RTCNT_TIME) && !headData.DEST_RTCNT_TIME.Contains("1900-01-01"))
|
|
{
|
|
result.SetErrorInfo("");
|
|
}
|
|
else {
|
|
var _r = BasicDataRefDAL.ExecSql($" update op_seai set DEST_RTCNT_TIME='{headData.DEST_RTCNT_TIME}' where applyno='{headData.APPLYNO}' and not exists(select 1 from v_top_opctnbscard where applyno='{headData.APPLYNO}' and isnull(DEST_RTCNT_TIME,'')='')");
|
|
if (_r > 0) result.Success = true;
|
|
}
|
|
|
|
|
|
return result;
|
|
}
|
|
|
|
|
|
public static DBResult UpBsCtn(OpCtnBsCard headData,string updatetype="0")
|
|
{
|
|
var result = new DBResult();
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
try
|
|
{
|
|
|
|
if (updatetype == "0" || updatetype == "1")
|
|
{
|
|
var cmdUpdate = db.GetSqlStringCommand("update op_ctn set TIXIANGSHIJIAN='" + headData.PORTLOAD_CNT_TIME + "',FREECTNDAY=" + headData.PORTLOAD_FREE_DAYS + ",CTNDAY=" + headData.PORTLOAD_OVER_DAYS.ToString() + ",CTNPRICE="+ headData.PORTLOAD_OVER_DAYS_FEE.ToString()+ " FROM op_ctn WHERE CNTRNO='" + headData.CTNNO + "' AND EXISTS (SELECT 1 FROM OP_SEAE WHERE OP_SEAE.BSNO=op_ctn.BSNO AND OP_SEAE.APPLYNO='" + headData.APPLYNO + "') ");
|
|
|
|
db.ExecuteNonQuery(cmdUpdate, tran);
|
|
}
|
|
if (updatetype == "0" || updatetype == "2")
|
|
{
|
|
var cmdUpdateSeai = db.GetSqlStringCommand("update op_ctn set TIXIANGSHIJIAN='" + headData.DEST_RTCNT_TIME + "',FREECTNDAY=" + headData.DESTPORT_FREE_DAYS + ",CTNDAY=" + headData.DESTPORT_OVER_DAYS + ",CTNPRICE=" + headData.DESTPORT_OVER_DAYS_FEE.ToString() + " FROM OP_CTN WHERE CNTRNO='" + headData.CTNNO + "' AND EXISTS (SELECT 1 FROM OP_SEAI WHERE OP_SEAI.BSNO=op_ctn.BSNO AND OP_SEAI.APPLYNO='" + headData.APPLYNO + "') ");
|
|
|
|
db.ExecuteNonQuery(cmdUpdateSeai, tran);
|
|
}
|
|
|
|
tran.Commit();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
tran.Rollback();
|
|
|
|
result.Success = false;
|
|
result.Message = "更新出现错误,请重试或联系系统管理员";
|
|
|
|
return result;
|
|
}
|
|
}
|
|
result.Success = true;
|
|
result.Message = "更新成功";
|
|
|
|
return result;
|
|
}
|
|
|
|
|
|
#region 权限范围
|
|
public static string GetRangDAStr(string tb, string userid, string username, string companyid)
|
|
{
|
|
string str = "";
|
|
string modustr = "modOpCtnBsCard";// modOpCtnApply
|
|
|
|
|
|
var strSql = new StringBuilder();
|
|
strSql.Append("SELECT ");
|
|
strSql.Append(" VISIBLERANGE,OPERATERANGE ");
|
|
strSql.Append(" from VW_User_Authority ");
|
|
strSql.Append(" where [NAME]='" + modustr + "' and USERID='" + userid + "' and ISDELETE=0");
|
|
|
|
string visiblerange = "4";
|
|
string operaterange = "4";
|
|
|
|
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"]);
|
|
break;
|
|
}
|
|
reader.Close();
|
|
}
|
|
if (visiblerange == "4")
|
|
{
|
|
str = " (b.OP='" + username + "')";
|
|
}
|
|
else if (visiblerange == "3")
|
|
{
|
|
|
|
str = " (b.OP='" + username + "')";
|
|
|
|
|
|
}
|
|
else if (visiblerange == "2")
|
|
{
|
|
if (tb == "index")
|
|
{
|
|
var rangeDa = new RangeDA();
|
|
var deptname = rangeDa.GetDEPTNAME(userid);
|
|
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"]) + "' ";
|
|
}
|
|
else
|
|
{
|
|
str = str + " or b.OP='" + Convert.ToString(reader["SHOWNAME"]) + "' ";
|
|
};
|
|
}
|
|
str = str + ")";
|
|
reader.Close();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
str = " b.COMPANYID='" + companyid + "'";
|
|
}
|
|
|
|
}
|
|
else if (visiblerange == "1")
|
|
{
|
|
str = " b.COMPANYID='" + companyid + "'";
|
|
}
|
|
return str;
|
|
}
|
|
#endregion
|
|
|
|
|
|
}
|
|
}
|