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

3350 lines
147 KiB
C#

3 years ago
using System;
using System.Data;
using System.Collections.Generic;
using System.Collections;
using System.Text;
using DSWeb.MvcShipping.Models.MsOpSubSeaOrder;
using Microsoft.Practices.EnterpriseLibrary.Data;
using DSWeb.EntityDA;
using DSWeb.Areas.CommMng.Models;
using HcUtility.Comm;
using System.Data.SqlClient;
using DSWeb.DataAccess;
using WebSqlHelper;
using DSWeb.MvcShipping.Models.MsOpSeae;
using System.IO;
using DSWeb.MvcShipping.Models.FtpSet;
using System.Text.RegularExpressions;
namespace DSWeb.MvcShipping.DAL.MsOpSubSeaOrderDAL
{
public class MsOpSubSeaOrderDAL
{
#region 查询
static public List<MsOpSubSeaOrder> GetDataList(string strCondition, string billtype,int ortype, string userid, string usercode, string companyid, string sort = null)
{
if (!string.IsNullOrEmpty(strCondition))
{
strCondition = strCondition + " and (Companyid='" + companyid + "' or Agentid='"+companyid+"') and BILLTYPE="+billtype;
}
else
{
strCondition = " (Companyid='" + companyid + "' or Agentid='"+companyid+"') and BILLTYPE=" + billtype;
}
//
var strSql = new StringBuilder();
strSql.Append("SELECT ORDNO,BSNO,ORSTATUS,ORTYPE,ORREASON,BSDATE,MBLNO,HBLNO,CUSTOMERNAME");
strSql.Append(",SHIPPER,CONSIGNEE,NOTIFYPARTY,VESSEL,VOYNO,ETD,ETA,PlACERECEIPT,PORTLOADID,PORTLOAD,PORTDISCHARGEID,PORTDISCHARGE");
strSql.Append(",PLACEDELIVERYID,PLACEDELIVERY,DESTINATIONID,DESTINATION,NOBILL,ISSUETYPE,ISSUEDATE,ISSUEPLACE,BLFRT");
strSql.Append(",PREPARDAT,PAYABLEAT,[SERVICE],MARKS,NOPKGS,[DESCRIPTION],GOODSNAME,GROSSWEIGHT,MEASUREMENT,PKGS,KINDPKGS");
strSql.Append(",KGS,CBM,TOTALNO,CNTRTOTAL,INPUTBY,CARGOID,DCLASS,DUNNO,REEFERF,TEMPID,TEMPSET,TEMPMAX,TEMPMIN");
strSql.Append(",REMARK,AUDITOPERATOR,AUDITDATE,DPAGE,DLABEL,LINKMAN,BILLTYPE,COMPANYID,AGENTID,SPCHARGE");
strSql.Append(",SHIPPERCODE,SHIPPERCOUNTRY,SHIPPERTEL,CONSIGNEECODE,CONSIGNEECOUNTRY,CONSIGNEETEL,NOTIFYPARTYCODE,NOTIFYPARTYCOUNTRY,NOTIFYPARTYTEL");
if (ortype == 1)
{
strSql.Append(",(CASE ORSTATUS WHEN '0' THEN 'RECEIVE' WHEN '1' THEN 'POSTED' WHEN '2' THEN 'REJECTED' else 'ENTRY' end) as ORSTATUSREF ");
}
else {
strSql.Append(",(CASE ORSTATUS WHEN '0' THEN '确认' WHEN '1' THEN '提交' WHEN '2' THEN '驳回' else '录入' end) as ORSTATUSREF ");
}
strSql.Append(",(SELECT [NAME] from company where GID=B.COMPANYID) as COMPANY ");
strSql.Append(",(SELECT [NAME] from company where GID=B.AGENTID) as AGENT ");
2 years ago
strSql.Append(",dbo.F_GetBillDrFeeStatus(B.ORDNO) DRFEESTATUS");
strSql.Append(",dbo.F_GetBillCrFeeStatus(B.ORDNO) CRFEESTATUS");
3 years ago
strSql.Append(" from op_sub_seaorder B");
2 years ago
3 years ago
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 BSDATE desc");
}
return SetData(strSql);
}
static public string GetDataListStr(string strCondition, string billtype, int ortype, string userid, string usercode, string companyid, string sort = null)
{
if (!string.IsNullOrEmpty(strCondition))
{
strCondition = strCondition + " and (Companyid='" + companyid + "' or Agentid='" + companyid + "') and BILLTYPE=" + billtype;
}
else
{
strCondition = " (Companyid='" + companyid + "' or Agentid='" + companyid + "') and BILLTYPE=" + billtype;
}
//
var strSql = new StringBuilder();
strSql.Append("SELECT ORDNO,BSNO,ORSTATUS,ORTYPE,ORREASON,BSDATE,MBLNO,HBLNO,CUSTOMERNAME");
strSql.Append(",SHIPPER,CONSIGNEE,NOTIFYPARTY,VESSEL,VOYNO,ETD,ETA,PlACERECEIPT,PORTLOADID,PORTLOAD,PORTDISCHARGEID,PORTDISCHARGE");
strSql.Append(",PLACEDELIVERYID,PLACEDELIVERY,DESTINATIONID,DESTINATION,NOBILL,ISSUETYPE,ISSUEDATE,ISSUEPLACE,BLFRT");
strSql.Append(",PREPARDAT,PAYABLEAT,[SERVICE],MARKS,NOPKGS,[DESCRIPTION],GOODSNAME,GROSSWEIGHT,MEASUREMENT,PKGS,KINDPKGS");
strSql.Append(",KGS,CBM,TOTALNO,CNTRTOTAL,INPUTBY,CARGOID,DCLASS,DUNNO,REEFERF,TEMPID,TEMPSET,TEMPMAX,TEMPMIN");
strSql.Append(",REMARK,AUDITOPERATOR,AUDITDATE,DPAGE,DLABEL,LINKMAN,BILLTYPE,COMPANYID,AGENTID,SPCHARGE");
strSql.Append(",SHIPPERCODE,SHIPPERCOUNTRY,SHIPPERTEL,CONSIGNEECODE,CONSIGNEECOUNTRY,CONSIGNEETEL,NOTIFYPARTYCODE,NOTIFYPARTYCOUNTRY,NOTIFYPARTYTEL");
if (ortype == 1)
{
strSql.Append(",(CASE ORSTATUS WHEN '0' THEN 'RECEIVE' WHEN '1' THEN 'POSTED' WHEN '2' THEN 'REJECTED' else 'ENTRY' end) as ORSTATUSREF ");
}
else
{
strSql.Append(",(CASE ORSTATUS WHEN '0' THEN '确认' WHEN '1' THEN '提交' WHEN '2' THEN '驳回' else '录入' end) as ORSTATUSREF ");
}
strSql.Append(",(SELECT [NAME] from company where GID=B.COMPANYID) as COMPANY ");
strSql.Append(",(SELECT [NAME] from company where GID=B.AGENTID) as AGENT ");
2 years ago
strSql.Append(",dbo.F_GetBillDrFeeStatus(B.ORDNO) DRFEESTATUS");
strSql.Append(",dbo.F_GetBillCrFeeStatus(B.ORDNO) CRFEESTATUS");
3 years ago
strSql.Append(" from op_sub_seaorder B");
2 years ago
strSql.Append(" LEFT JOIN v_op_gain_dr_INV I ON (I.BSNO=B.ORDNO) ");
3 years ago
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 BSDATE desc");
}
return strSql.ToString();
}
static public MsOpSubSeaOrder GetData(string condition,int ortype)
{
var strSql = new StringBuilder();
strSql.Append("SELECT ORDNO,BSNO,ORSTATUS,ORTYPE,ORREASON,BSDATE,MBLNO,HBLNO,CUSTOMERNAME");
strSql.Append(",SHIPPER,CONSIGNEE,NOTIFYPARTY,VESSEL,VOYNO,ETD,ETA,PlACERECEIPT,PORTLOADID,PORTLOAD,PORTDISCHARGEID,PORTDISCHARGE");
strSql.Append(",PLACEDELIVERYID,PLACEDELIVERY,DESTINATIONID,DESTINATION,NOBILL,ISSUETYPE,ISSUEDATE,ISSUEPLACE,BLFRT");
strSql.Append(",PREPARDAT,PAYABLEAT,[SERVICE],MARKS,NOPKGS,[DESCRIPTION],GOODSNAME,GROSSWEIGHT,MEASUREMENT,PKGS,KINDPKGS");
strSql.Append(",KGS,CBM,TOTALNO,CNTRTOTAL,INPUTBY,CARGOID,DCLASS,DUNNO,REEFERF,TEMPID,TEMPSET,TEMPMAX,TEMPMIN");
strSql.Append(",REMARK,AUDITOPERATOR,AUDITDATE,DPAGE,DLABEL,LINKMAN,BILLTYPE,COMPANYID,AGENTID,SPCHARGE");
strSql.Append(",SHIPPERCODE,SHIPPERCOUNTRY,SHIPPERTEL,CONSIGNEECODE,CONSIGNEECOUNTRY,CONSIGNEETEL,NOTIFYPARTYCODE,NOTIFYPARTYCOUNTRY,NOTIFYPARTYTEL");
2 years ago
3 years ago
if (ortype == 1)
{
strSql.Append(",(CASE ORSTATUS WHEN '0' THEN 'RECEIVE' WHEN '1' THEN 'POSTED' WHEN '2' THEN 'REJECTED' else 'ENTRY' end) as ORSTATUSREF ");
}
else
{
strSql.Append(",(CASE ORSTATUS WHEN '0' THEN '确认' WHEN '1' THEN '提交' WHEN '2' THEN '驳回' else '录入' end) as ORSTATUSREF ");
}
strSql.Append(",(SELECT [NAME] from company where GID=B.COMPANYID ) as COMPANY ");
strSql.Append(",(SELECT [NAME] from company where GID=B.AGENTID ) as AGENT ");
2 years ago
strSql.Append(",dbo.F_GetBillDrFeeStatus(B.ORDNO) DRFEESTATUS");
strSql.Append(",dbo.F_GetBillCrFeeStatus(B.ORDNO) CRFEESTATUS");
3 years ago
strSql.Append(" from op_sub_seaorder B");
2 years ago
3 years ago
if (!string.IsNullOrEmpty(condition))
{
strSql.Append(" where " + condition);
}
var list=SetData(strSql);
if (list.Count > 0)
return list[0];
return new MsOpSubSeaOrder();
}
private static List<MsOpSubSeaOrder> SetData(StringBuilder strSql)
{
var headList = new List<MsOpSubSeaOrder>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
MsOpSubSeaOrder data = new MsOpSubSeaOrder();
#region Set DB data to Object
data.ORDNO = Convert.ToString(reader["ORDNO"]);//委托
data.BSNO = Convert.ToString(reader["BSNO"]);//业务编号
data.ORSTATUS = Convert.ToString(reader["ORSTATUS"]);//主编号
data.ORSTATUSREF = Convert.ToString(reader["ORSTATUSREF"]);//委托编号
data.ORREASON = Convert.ToString(reader["ORREASON"]);//分提单号
data.BSDATE = Convert.ToDateTime(reader["BSDATE"]);//接单日期
data.MBLNO = Convert.ToString(reader["MBLNO"]);//主提单号
data.HBLNO = Convert.ToString(reader["HBLNO"]);//分提单号
data.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]);//委托单位
data.SHIPPER = Convert.ToString(reader["SHIPPER"]);//收货人内容
data.CONSIGNEE = Convert.ToString(reader["CONSIGNEE"]);//收货人内容
data.NOTIFYPARTY = Convert.ToString(reader["NOTIFYPARTY"]);//通知人内容
data.VESSEL = Convert.ToString(reader["VESSEL"]);//船名
data.VOYNO = Convert.ToString(reader["VOYNO"]);//航次
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.PORTLOADID = Convert.ToString(reader["PORTLOADID"]);//装货港代码
data.PORTLOAD = Convert.ToString(reader["PORTLOAD"]);//装货港
data.PORTDISCHARGEID = Convert.ToString(reader["PORTDISCHARGEID"]);//卸货港代码
data.PORTDISCHARGE = Convert.ToString(reader["PORTDISCHARGE"]);//卸货港
data.PlACERECEIPT = Convert.ToString(reader["PlACERECEIPT"]);//收货地
data.PLACEDELIVERYID = Convert.ToString(reader["PLACEDELIVERYID"]);//交货地代码
data.PLACEDELIVERY = Convert.ToString(reader["PLACEDELIVERY"]);//交货地
data.DESTINATIONID = Convert.ToString(reader["DESTINATIONID"]);//目的地代码
data.DESTINATION = Convert.ToString(reader["DESTINATION"]);//目的地
data.NOBILL = Convert.ToString(reader["NOBILL"]);//提单份数
data.ISSUETYPE = Convert.ToString(reader["ISSUETYPE"]);//签单方式
if (reader["ISSUEDATE"] != DBNull.Value)
data.ISSUEDATE = Convert.ToDateTime(reader["ISSUEDATE"]).ToString("yyyy-MM-dd");//到港日期
data.ISSUEPLACE = Convert.ToString(reader["ISSUEPLACE"]);//签单地点
data.BLFRT = Convert.ToString(reader["BLFRT"]);//付费方式
data.PREPARDAT = Convert.ToString(reader["PREPARDAT"]);//预付地点
data.PAYABLEAT = Convert.ToString(reader["PAYABLEAT"]);//到付地点
data.SERVICE = Convert.ToString(reader["SERVICE"]);//运输条款
data.MARKS = Convert.ToString(reader["MARKS"]);//唛头
data.NOPKGS = Convert.ToString(reader["NOPKGS"]);//件数包装
data.DESCRIPTION = Convert.ToString(reader["DESCRIPTION"]);//货物描述
data.GOODSNAME = Convert.ToString(reader["GOODSNAME"]);//品名
data.GROSSWEIGHT = Convert.ToString(reader["GROSSWEIGHT"]);//货物毛重
data.MEASUREMENT = Convert.ToString(reader["MEASUREMENT"]);//货物尺码
data.PKGS = Convert.ToInt32(reader["PKGS"]);//件数
data.KINDPKGS = Convert.ToString(reader["KINDPKGS"]);//件数包装
data.KGS = Convert.ToDecimal(reader["KGS"]);//毛重
data.CBM = Convert.ToDecimal(reader["CBM"]);//立方数/尺码
data.TOTALNO = Convert.ToString(reader["TOTALNO"]);//件数大写
data.CNTRTOTAL = Convert.ToString(reader["CNTRTOTAL"]);//集装箱全部内容
data.INPUTBY = Convert.ToString(reader["INPUTBY"]);//录入人
data.CARGOID = Convert.ToString(reader["CARGOID"]);//货物标识
data.DCLASS = Convert.ToString(reader["DCLASS"]);//危险品分类/等级
data.DUNNO = Convert.ToString(reader["DUNNO"]);//危险品编号
data.DPAGE = Convert.ToString(reader["DPAGE"]);//危险品页号
data.DLABEL = Convert.ToString(reader["DLABEL"]);//危险品标签
data.LINKMAN = Convert.ToString(reader["LINKMAN"]);//危险品联系人
data.REEFERF = Convert.ToString(reader["REEFERF"]);//冷藏通风量
data.TEMPID = Convert.ToString(reader["TEMPID"]);//温度单位
data.TEMPSET = Convert.ToString(reader["TEMPSET"]);//设置温度
data.TEMPMAX = Convert.ToString(reader["TEMPMAX"]);//最高温度
data.TEMPMIN = Convert.ToString(reader["TEMPMIN"]);//最低温度
data.REMARK = Convert.ToString(reader["REMARK"]);//备注
data.BILLTYPE = Convert.ToInt16(reader["BILLTYPE"]);//装运方式
data.COMPANYID = Convert.ToString(reader["COMPANYID"]);//装运方式
data.AGENTID = Convert.ToString(reader["AGENTID"]);//卸货代理
data.AGENT = Convert.ToString(reader["AGENT"]);//卸货代理
data.AUDITOPERATOR = Convert.ToString(reader["AUDITOPERATOR"]);//审核人
data.AUDITDATE = Convert.ToString(reader["AUDITDATE"]);//审核日期
data.COMPANY = Convert.ToString(reader["COMPANY"]);//卸货代理
data.SHIPPERCODE = Convert.ToString(reader["SHIPPERCODE"]);//卸货代理
data.SHIPPERCOUNTRY = Convert.ToString(reader["SHIPPERCOUNTRY"]);//卸货代理
data.SHIPPERTEL = Convert.ToString(reader["SHIPPERTEL"]);//卸货代理
data.CONSIGNEECODE = Convert.ToString(reader["CONSIGNEECODE"]);//卸货代理
data.CONSIGNEECOUNTRY = Convert.ToString(reader["CONSIGNEECOUNTRY"]);//卸货代理
data.CONSIGNEETEL = Convert.ToString(reader["CONSIGNEETEL"]);//卸货代理
data.NOTIFYPARTYCODE = Convert.ToString(reader["NOTIFYPARTYCODE"]);//卸货代理
data.NOTIFYPARTYCOUNTRY = Convert.ToString(reader["NOTIFYPARTYCOUNTRY"]);//卸货代理
data.NOTIFYPARTYTEL = Convert.ToString(reader["NOTIFYPARTYTEL"]);//卸货代理
2 years ago
data.DRFEESTATUS = getfeestatus(Convert.ToString(reader["DRFEESTATUS"]));
data.CRFEESTATUS = getfeestatus(Convert.ToString(reader["CRFEESTATUS"]));
3 years ago
if (reader["SPCHARGE"] != DBNull.Value)
data.SPCHARGE = Convert.ToBoolean(reader["SPCHARGE"]);
#endregion
headList.Add(data);
}
reader.Close();
}
return headList;
}
2 years ago
public static string getfeestatus(string feestatusint)
{
var result = "";
if (feestatusint == "0:")
{
return "审核通过";
}
else if (feestatusint == "1:")
{
return "录入状态";
}
else if (feestatusint == "2:")
{
return "提交审核";
}
else if (feestatusint == "8:")
{
return "部分结算";
}
else if (feestatusint == "9:")
{
return "结算完毕";
}
else if (feestatusint == "")
{
return "未录入";
}
else if (feestatusint == "3:")
{
return "申请修改";
}
else if (feestatusint == "4:")
{
return "申请删除";
}
else if (feestatusint.IndexOf("6:") > -1)
{
return "驳回提交";
}
else if (feestatusint.IndexOf("7:") > -1)
{
return "驳回申请";
}
else if (feestatusint.IndexOf("1:") > -1)
{
return "部分录入";
}
else if (feestatusint.IndexOf("2:") > -1)
{
return "部分提交";
}
else if (feestatusint.IndexOf("9:") > -1)
{
return "部分结算";
}
else if (feestatusint.IndexOf("8:") > -1)
{
return "部分结算";
}
else if (feestatusint.IndexOf("0:") > -1)
{
return "部分审核";
}
else if (feestatusint.IndexOf("2:") > -1)
{
return "部分提交";
}
return result;
}
3 years ago
#endregion
2 years ago
3 years ago
#region 集装箱
static public List<MsOpSubSeaOrderCtn> GetBodyList(string strCondition)
{
var strSql = new StringBuilder();
strSql.Append("SELECT [CTN_ID],[BSNO],[CTNCODE],[CTNALL],[CNTRNO],[SEALNO],[PKGS],[KGS],[CBM],[REMARK],[CTNSOURCE],[STATUS] from op_seaorder_ctn");
if (strCondition.Trim() != String.Empty)
{
strSql.Append(" where " + strCondition);
}
strSql.Append(" order by BSNO,cast (ISNULL(CTNCODE,0) as int),CTNALL");
return SetBodyData(strSql);
}
private static List<MsOpSubSeaOrderCtn> SetBodyData(StringBuilder strSql)
{
var bodyList = new List<MsOpSubSeaOrderCtn>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
MsOpSubSeaOrderCtn data = new MsOpSubSeaOrderCtn();
#region Set DB data to Object
data.CTN_ID = Convert.ToString(reader["CTN_ID"]);//编号
data.BSNO = Convert.ToString(reader["BSNO"]);//业务编号
data.CTNCODE = Convert.ToString(reader["CTNCODE"]);//表现形式
data.CTNALL = Convert.ToString(reader["CTNALL"]);//表现形式
data.CNTRNO = Convert.ToString(reader["CNTRNO"]);//箱号
data.SEALNO = Convert.ToString(reader["SEALNO"]);//封号
if (reader["PKGS"] != DBNull.Value)
data.PKGS = Convert.ToInt32(reader["PKGS"]);//件数
if (reader["KGS"] != DBNull.Value)
data.KGS = Convert.ToDecimal(reader["KGS"]);//重量(货重)
if (reader["CBM"] != DBNull.Value)
data.CBM = Convert.ToDecimal(reader["CBM"]);//尺码
data.REMARK = Convert.ToString(reader["REMARK"]);//备注
data.CTNSOURCE = Convert.ToString(reader["CTNSOURCE"]);//备注
data.STATUS = Convert.ToString(reader["STATUS"]);//备注
#endregion
bodyList.Add(data);
}
reader.Close();
}
return bodyList;
}
#endregion
#region 保存集装箱
public static DBResult SaveDetail(MsOpSubSeaOrder headData, List<MsOpSubSeaOrderCtn> bodyList, string userid)
{
var result = new DBResult();
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
if (bodyList != null)
{
foreach (var enumValue in bodyList)
{
int SIZE = int.Parse(enumValue.CTNALL.ToString().Trim().Substring(0, 2));
string CTN = enumValue.CTNALL.ToString().Trim().Substring(2);
int iTEU = int.Parse(enumValue.CTNALL.ToString().Trim().Substring(0, 1));
//
if (enumValue.BSNO == "*")
{
var cmdInsert = db.GetSqlStringCommand(@"insert into op_seaorder_ctn (CTN_ID,BSNO,CTNCODE,CTNALL,CNTRNO,SEALNO,PKGS,KGS,CBM,REMARK,CTNSOURCE,STATUS) values (newid(),'" + headData.BSNO + "','" + enumValue.CTNCODE + "','" + enumValue.CTNALL + "','" + enumValue.CNTRNO + "','" + enumValue.SEALNO + "','" + enumValue.PKGS + "'," + enumValue.KGS + "," + enumValue.CBM + ",'" + enumValue.REMARK + "','" + enumValue.CTNSOURCE + "','" + enumValue.STATUS + "')");
db.ExecuteNonQuery(cmdInsert, tran);
}
else
{
var cmdUpdate = db.GetSqlStringCommand(@"update op_seaorder_ctn set CTNCODE='" + enumValue.CTNCODE + "',CTNALL='" + enumValue.CTNALL + "',CNTRNO='" + enumValue.CNTRNO + "',SEALNO='" + enumValue.SEALNO + "',PKGS='" + enumValue.PKGS + "',KGS=" + enumValue.KGS + ",CBM=" + enumValue.CBM + ",REMARK='" + enumValue.REMARK + "',CTNSOURCE='" + enumValue.CTNSOURCE + "',STATUS='" + enumValue.STATUS + "' where BSNO='" + enumValue.BSNO + "' AND CTN_ID='" + enumValue.CTN_ID + "'");
db.ExecuteNonQuery(cmdUpdate, tran);
}
}
}
//
tran.Commit();
}
catch (Exception)
{
tran.Rollback();
result.Success = false;
result.Message = "保存出现错误,请重试或联系系统管理员";
return result;
}
}
//
getCNTRTOTAL(headData.BSNO, "op_sub_seaorder");
//
result.Success = true;
result.Message = "保存成功" + result.Message;
return result;
}
public static void getCNTRTOTAL(string strBSNO, string bstype)
{
string strCNTRTOTAL = "";
string str = "";
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
DataSet dsDisp = T_ALL_DA.GetAllSQL("select * from code_ctn_disp");// where CORPID = '" + strCORPID + "'";
DataSet ds = T_ALL_DA.GetAllSQL("select * from op_seaorder_ctn where BSNO='" + strBSNO.Trim() + "'");
if (ds != null)
{
if (ds.Tables[0].Rows.Count > 0)
{
str = "select CTNALL,count(*) as hj from op_seaorder_ctn where BSNO='" + strBSNO.Trim() + "' group by CTNALL order by CTNALL";
ds = T_ALL_DA.GetAllSQL(str);
foreach (DataTable myTable in ds.Tables)
{
foreach (DataRow myRow in myTable.Rows)//遍历表
{
strCNTRTOTAL += myRow["CTNALL"].ToString().Trim() + "*" + myRow["hj"].ToString().Trim() + " / ";
}
}
strCNTRTOTAL = strCNTRTOTAL.Trim().Substring(0, strCNTRTOTAL.Trim().Length - 1);
}
}
str = "update op_sub_seaorder set CNTRTOTAL='" + strCNTRTOTAL + "' where BSNO='" + strBSNO.Trim() + "'";
bool bl = T_ALL_DA.GetExecuteSqlCommand(str);
}
#region 费用
static public List<MsOpSubSeaOrderFee> GetFeeList(string strCondition,int agentfee)
{
var strSql = new StringBuilder();
strSql.Append("SELECT [FEEID],[BSNO],[FEENAME],[UNITPRICE],[QUANTITY],[AMOUNT],[CURRENCY],[EXCHANGERATE],[REMARK],[FEEFRT] ,[SORT],UNIT,AGENTFEE from op_sub_seaorder_fee");
if (strCondition.Trim() != String.Empty)
{
strSql.Append(" where AGENTFEE="+agentfee.ToString()+" AND " + strCondition);
}
else {
strSql.Append(" where AGENTFEE=" + agentfee.ToString());
}
strSql.Append(" order by BSNO,SORT");
return SetFeeData(strSql);
}
private static List<MsOpSubSeaOrderFee> SetFeeData(StringBuilder strSql)
{
var bodyList = new List<MsOpSubSeaOrderFee>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
MsOpSubSeaOrderFee data = new MsOpSubSeaOrderFee();
#region Set DB data to Object
data.FEEID = Convert.ToString(reader["FEEID"]);//编号
data.BSNO = Convert.ToString(reader["BSNO"]);//业务编号
data.FeeName = Convert.ToString(reader["FEENAME"]);//费用名称
if (reader["UNITPRICE"] != DBNull.Value)
data.UnitPrice = Convert.ToDecimal(reader["UNITPRICE"]);//单价
data.Unit = Convert.ToString(reader["UNIT"]);//单价
if (reader["QUANTITY"] != DBNull.Value)
data.Quantity = Convert.ToDecimal(reader["QUANTITY"]);//数量
if (reader["AMOUNT"] != DBNull.Value)
data.Amount = Convert.ToDecimal(reader["AMOUNT"]);//金额
data.Currency = Convert.ToString(reader["CURRENCY"]);//币别
data.FeeFrt = Convert.ToString(reader["FEEFRT"]);//FRT
if (reader["EXCHANGERATE"] != DBNull.Value)
data.ExChangerate = Convert.ToDecimal(reader["EXCHANGERATE"]);//汇率
data.REMARK = Convert.ToString(reader["REMARK"]);//备
if (reader["AGENTFEE"] != DBNull.Value)
data.AGENTFEE = Convert.ToInt16(reader["AGENTFEE"]);
if (reader["SORT"] != DBNull.Value)
data.SORT = Convert.ToInt16(reader["SORT"]);//排序
#endregion
bodyList.Add(data);
}
reader.Close();
}
return bodyList;
}
static public List<MsOpSubSeaOrderFee> GetDefFeeList(string Companyid, int agentfee)
{
var strSql = new StringBuilder();
strSql.Append("SELECT FEENAME,CURRENCY,EXCHANGERATE,[UNITPRICE],1 AS QUANTITY,SORT,AGENTFEE,UNIT");
strSql.Append(" FROM company_orderfee WHERE COMPANYID='" + Companyid + "' and AGENTFEE="+agentfee.ToString());
strSql.Append(" order by SORT");
return SetDefFeeData(strSql);
}
private static List<MsOpSubSeaOrderFee> SetDefFeeData(StringBuilder strSql)
{
var bodyList = new List<MsOpSubSeaOrderFee>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
MsOpSubSeaOrderFee data = new MsOpSubSeaOrderFee();
#region Set DB data to Object
data.FEEID = Guid.NewGuid().ToString();//编号
data.BSNO = "*";//业务编号
data.FeeName = Convert.ToString(reader["FEENAME"]);//费用名称
data.Unit = Convert.ToString(reader["UNIT"]);//费用名称
if (reader["UNITPRICE"] != DBNull.Value)
data.UnitPrice = Convert.ToDecimal(reader["UNITPRICE"]);//单价
data.Quantity =1;//数量
if (reader["UNITPRICE"] != DBNull.Value)
data.Amount = Convert.ToDecimal(reader["UNITPRICE"]); //金额
data.Currency = Convert.ToString(reader["CURRENCY"]);//币别
if (reader["EXCHANGERATE"] != DBNull.Value)
data.ExChangerate = Convert.ToDecimal(reader["EXCHANGERATE"]);//汇率
if (reader["SORT"] != DBNull.Value)
data.SORT = Convert.ToInt16(reader["SORT"]);//排序
if (reader["AGENTFEE"] != DBNull.Value)
data.AGENTFEE = Convert.ToInt16(reader["AGENTFEE"]);//
#endregion
bodyList.Add(data);
}
reader.Close();
}
return bodyList;
}
static public List<MsCompanyOrderFee> GetCompanyFeeList(string strCondition, string companyid)
{
var strSql = new StringBuilder();
strSql.Append("SELECT GID,COMPANYID,FEENAME,CURRENCY,EXCHANGERATE,SORT,AGENTFEE,UNIT,UNITPRICE from company_orderfee");
if (strCondition.Trim() != String.Empty)
{
strSql.Append(" where COMPANYID='" + companyid + "' AND " + strCondition);
}
else
{
strSql.Append(" where COMPANYID='" + companyid + "'");
}
strSql.Append(" order by SORT");
return SetCompanyFeeData(strSql);
}
private static List<MsCompanyOrderFee> SetCompanyFeeData(StringBuilder strSql)
{
var bodyList = new List<MsCompanyOrderFee>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
MsCompanyOrderFee data = new MsCompanyOrderFee();
#region Set DB data to Object
data.GID = Convert.ToString(reader["GID"]);//编号
data.COMPANYID = Convert.ToString(reader["COMPANYID"]);//
data.FEENAME = Convert.ToString(reader["FEENAME"]);//
data.UNIT = Convert.ToString(reader["UNIT"]);//
data.CURRENCY = Convert.ToString(reader["CURRENCY"]);//
if (reader["UNITPRICE"] != DBNull.Value)
data.UNITPRICE = Convert.ToDecimal(reader["UNITPRICE"]);//
if (reader["EXCHANGERATE"] != DBNull.Value)
data.EXCHANGERATE = Convert.ToDecimal(reader["EXCHANGERATE"]);//
if (reader["SORT"] != DBNull.Value)
data.SORT = Convert.ToInt16(reader["SORT"]);//
if (reader["AGENTFEE"] != DBNull.Value)
data.AGENTFEE = Convert.ToInt16(reader["AGENTFEE"]);//
if (reader["SORT"] != DBNull.Value)
data.SORT = Convert.ToInt16(reader["SORT"]);//排序
#endregion
bodyList.Add(data);
}
reader.Close();
}
return bodyList;
}
#endregion
#region 保存费用
public static DBResult SaveFee(MsOpSubSeaOrder headData, List<MsOpSubSeaOrderFee> bodyList, string userid,string agentfee)
{
var result = new DBResult();
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
if (bodyList != null)
{
foreach (var enumValue in bodyList)
{
if (enumValue.BSNO == "*")
{
var cmdInsert = db.GetSqlStringCommand(@"insert into op_sub_seaorder_fee (FEEID,BSNO,FEENAME,UNITPRICE,QUANTITY,AMOUNT,CURRENCY,EXCHANGERATE,FEEFRT,REMARK,SORT,Agentfee) values (newid(),'" + headData.BSNO + "','" + enumValue.FeeName + "'," + enumValue.UnitPrice + "," + enumValue.Quantity + "," + enumValue.Amount + ",'" + enumValue.Currency + "'," + enumValue.ExChangerate + ",'" + enumValue.FeeFrt + "','" + enumValue.REMARK + "'," + enumValue.SORT + "," +agentfee+ ")");
db.ExecuteNonQuery(cmdInsert, tran);
}
else
{
var cmdUpdate = db.GetSqlStringCommand(@"update op_sub_seaorder_fee set FEENAME='" + enumValue.FeeName + "',QUANTITY=" + enumValue.Quantity + ",UNITPRICE=" + enumValue.UnitPrice + ",AMOUNT=" + enumValue.Amount + ",CURRENCY='" + enumValue.Currency + "',EXCHANGERATE=" + enumValue.ExChangerate + ",SORT=" + enumValue.SORT + ",REMARK='" + enumValue.REMARK + "',FEEFRT='" + enumValue.FeeFrt + "',agentfee="+agentfee+" where BSNO='" + enumValue.BSNO + "' AND FEEID='" + enumValue.FEEID + "'");
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 SaveCompanyOrderFee(List<MsCompanyOrderFee> bodyList, string companyid)
{
var result = new DBResult();
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
var cmdDelete = db.GetSqlStringCommand("delete from company_orderfee where COMPANYID='" + companyid + "'");
db.ExecuteNonQuery(cmdDelete, tran);
var cmdInsert =
db.GetSqlStringCommand(
@"insert into company_orderfee (GID,COMPANYID,FEENAME,UNIT,CURRENCY,UNITPRICE,SORT,EXCHANGERATE,AGENTFEE)
values (@GID,@COMPANYID,@FEENAME,@UNIT,@CURRENCY,@UNITPRICE,@SORT,@EXCHANGERATE,@AGENTFEE) ");
if (bodyList != null)
{
foreach (var enumValue in bodyList)
{
cmdInsert.Parameters.Clear();
db.AddInParameter(cmdInsert, "@GID", DbType.String, Guid.NewGuid().ToString());
db.AddInParameter(cmdInsert, "@COMPANYID", DbType.String,companyid);
db.AddInParameter(cmdInsert, "@FEENAME", DbType.String, enumValue.FEENAME);
db.AddInParameter(cmdInsert, "@UNIT", DbType.String, enumValue.UNIT);
db.AddInParameter(cmdInsert, "@CURRENCY", DbType.String, enumValue.CURRENCY);
db.AddInParameter(cmdInsert, "@UNITPRICE", DbType.Decimal, enumValue.UNITPRICE);
db.AddInParameter(cmdInsert, "@SORT", DbType.Int32, enumValue.SORT);
db.AddInParameter(cmdInsert, "@EXCHANGERATE", DbType.Decimal, enumValue.EXCHANGERATE);
db.AddInParameter(cmdInsert, "@AGENTFEE", DbType.Int32, enumValue.AGENTFEE);
db.ExecuteNonQuery(cmdInsert, tran);
}
}
tran.Commit();
}
catch (Exception)
{
tran.Rollback();
result.Success = false;
result.Message = "保存出现错误,请重试或联系系统管理员";
return result;
}
}
result.Success = true;
result.Message = "保存成功";
return result;
}
public static DBResult SaveArrivalFee(MsOpSubSeaArrival headData, List<MsOpSubSeaArrivalFee> bodyList, string userid)
{
var result = new DBResult();
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
if (bodyList != null)
{
foreach (var enumValue in bodyList)
{
if (enumValue.ORDNO == "*")
{
var cmdInsert = db.GetSqlStringCommand(@"insert into op_sub_seaorder_arrivalfee (GID,ORDNO,FEENAME,UNITPRICE,QUANTITY,UNIT,AMOUNTJPY,AMOUNTUSD,CURRENCY,REMARK,SORT,EXCHANGERATE) values (newid(),'" + headData.ORDNO + "','" + enumValue.FeeName + "'," + enumValue.UnitPrice + "," + enumValue.Quantity + ",'" + enumValue.Unit + "'," + enumValue.AmountJpy + "," + enumValue.AmountUsd + ",'" + enumValue.Currency + "','" + enumValue.REMARK + "'," + enumValue.SORT + "," + enumValue.EXCHANGERATE + ")");
db.ExecuteNonQuery(cmdInsert, tran);
}
else
{
var cmdUpdate = db.GetSqlStringCommand(@"update op_sub_seaorder_arrivalfee set FEENAME='" + enumValue.FeeName + "',QUANTITY=" + enumValue.Quantity + ",UNITPRICE=" + enumValue.UnitPrice + ",UNIT='" + enumValue.Unit + "',AMOUNTJPY=" + enumValue.AmountJpy + ",AMOUNTUSD=" + enumValue.AmountUsd + ",CURRENCY='" + enumValue.Currency + "',SORT=" + enumValue.SORT + ",EXCHANGERATE="+enumValue.EXCHANGERATE+",REMARK='" + enumValue.REMARK + "' where ORDNO='" + enumValue.ORDNO + "' AND GID='" + enumValue.FEEID + "'");
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
//判断单号是否重复
static public int GetRdCount(string strCondition)
{
var strSql = new StringBuilder();
strSql.Append("SELECT Count(BSNO) AS CT from op_sub_seaorder");
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;
}
#endregion
#region 删除
public static DBResult DeleteDetail(MsOpSubSeaOrder headData)
{
var result = new DBResult();
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
var cmdDelete = db.GetSqlStringCommand("delete from op_seaorder_ctn where BSNO='" + headData.BSNO + "'");
db.ExecuteNonQuery(cmdDelete, tran);
var cmdDeleteFee = db.GetSqlStringCommand("delete from op_sub_seaorder_fee where BSNO='" + headData.BSNO + "'");
db.ExecuteNonQuery(cmdDeleteFee, tran);
tran.Commit();
}
catch (Exception)
{
tran.Rollback();
result.Success = false;
result.Message = "删除出现错误,请重试或联系系统管理员";
return result;
}
}
result.Success = true;
result.Message = "操作成功";
return result;
}
public static DBResult DeleteDetail2(MsOpSubSeaOrderCtn headData)
{
var result = new DBResult();
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
var cmdDelete = db.GetSqlStringCommand("delete from op_seaorder_ctn where CTN_ID='" + headData.CTN_ID + "'");
db.ExecuteNonQuery(cmdDelete, tran);
tran.Commit();
}
catch (Exception)
{
tran.Rollback();
result.Success = false;
result.Message = "删除出现错误,请重试或联系系统管理员";
return result;
}
}
getCNTRTOTAL(headData.BSNO,"");
result.Success = true;
result.Message = "操作成功";
return result;
}
public static DBResult DeleteFeeDetail(MsOpSubSeaOrderFee headData)
{
var result = new DBResult();
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
var cmdDelete = db.GetSqlStringCommand("delete from op_sub_seaorder_fee where CTN_ID='" + headData.FEEID + "'");
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 到货通知
static public List<MsOpSubSeaOrder> GetArrivalDataList(string strCondition, string billtype, int ortype, string userid, string usercode, string companyid, string sort = null)
{
if (!string.IsNullOrEmpty(strCondition))
{
strCondition = strCondition + " and (Companyid='" + companyid + "' or Agentid='" + companyid + "') and BILLTYPE=" + billtype;
}
else
{
strCondition = " (Companyid='" + companyid + "' or Agentid='" + companyid + "') and BILLTYPE=" + billtype;
}
//
var strSql = new StringBuilder();
strSql.Append("SELECT ORDNO,BSNO,ORSTATUS,ORTYPE,ORREASON,BSDATE,MBLNO,HBLNO,CUSTOMERNAME");
strSql.Append(",SHIPPER,CONSIGNEE,NOTIFYPARTY,VESSEL,VOYNO,ETD,ETA,PlACERECEIPT,PORTLOADID,PORTLOAD,PORTDISCHARGEID,PORTDISCHARGE");
strSql.Append(",PLACEDELIVERYID,PLACEDELIVERY,DESTINATIONID,DESTINATION,NOBILL,ISSUETYPE,ISSUEDATE,ISSUEPLACE,BLFRT");
strSql.Append(",PREPARDAT,PAYABLEAT,[SERVICE],MARKS,NOPKGS,[DESCRIPTION],GOODSNAME,GROSSWEIGHT,MEASUREMENT,PKGS,KINDPKGS");
strSql.Append(",KGS,CBM,TOTALNO,CNTRTOTAL,INPUTBY,CARGOID,DCLASS,DUNNO,REEFERF,TEMPID,TEMPSET,TEMPMAX,TEMPMIN");
strSql.Append(",REMARK,AUDITOPERATOR,AUDITDATE,DPAGE,DLABEL,LINKMAN,BILLTYPE,COMPANYID,AGENTID,SPCHARGE");
strSql.Append(",SHIPPERCODE,SHIPPERCOUNTRY,SHIPPERTEL,CONSIGNEECODE,CONSIGNEECOUNTRY,CONSIGNEETEL,NOTIFYPARTYCODE,NOTIFYPARTYCOUNTRY,NOTIFYPARTYTEL");
if (ortype == 1)
{
strSql.Append(",(CASE ORSTATUS WHEN '0' THEN 'RECEIVE' WHEN '1' THEN 'POSTED' WHEN '2' THEN 'REJECTED' else 'ENTRY' end) as ORSTATUSREF ");
}
else
{
strSql.Append(",(CASE ORSTATUS WHEN '0' THEN '确认' WHEN '1' THEN '提交' WHEN '2' THEN '驳回' else '录入' end) as ORSTATUSREF ");
}
strSql.Append(",(SELECT [NAME] from company where GID=B.COMPANYID) as COMPANY ");
strSql.Append(",(SELECT [NAME] from company where GID=B.AGENTID) as AGENT ");
strSql.Append(" from op_sub_seaorder 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 BSDATE desc");
}
return SetData(strSql);
}
static public List<MsOpSubSeaArrival> GetArrivalData(string condition, string sort = null)
{
var strSql = new StringBuilder();
strSql.Append("SELECT GID,ORDNO,INPUTBY,BSDATE,REFNO,MBLNO,HBLNO,MESSRS,");
strSql.Append("VESSEL,VOYNO,ETD,ETA,FREETIME,PlACERECEIPT,PORTLOADID,PORTLOAD,");
strSql.Append("PORTDISCHARGEID,PORTDISCHARGE,PLACEDELIVERYID,PLACEDELIVERY,ISSUETYPE,OFFICEADDR,DOADDR,");
strSql.Append("BLFRT,[SERVICE],MARKS,NOPKGS,[DESCRIPTION],GROSSWEIGHT,MEASUREMENT,");
strSql.Append("PKGS,KINDPKGS,KGS,CBM,TOTALNO,CNTRTOTAL,REMARK,AMOUNTUSD,AMOUNTJPY,MARKCOUNT,EXCHANGERATE ");
strSql.Append(" from op_sub_seaorder_arrival");
if (!string.IsNullOrEmpty(condition))
{
strSql.Append(" where " + condition);
}
var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sortstring))
{
strSql.Append(" order by " + sortstring);
}
else
{
strSql.Append(" order by REFNO ");
}
return SetArrivalData(strSql);
}
static public string GetArrivalDataStr(string condition, string sort = null)
{
var strSql = new StringBuilder();
strSql.Append("SELECT GID,ORDNO,INPUTBY,BSDATE,REFNO,MBLNO,HBLNO,MESSRS,");
strSql.Append("VESSEL,VOYNO,ETD,ETA,FREETIME,PlACERECEIPT,PORTLOADID,PORTLOAD,");
strSql.Append("PORTDISCHARGEID,PORTDISCHARGE,PLACEDELIVERYID,PLACEDELIVERY,ISSUETYPE,OFFICEADDR,DOADDR,");
strSql.Append("BLFRT,[SERVICE],MARKS,NOPKGS,[DESCRIPTION],GROSSWEIGHT,MEASUREMENT,");
strSql.Append("PKGS,KINDPKGS,KGS,CBM,TOTALNO,CNTRTOTAL,REMARK,AMOUNTUSD,AMOUNTJPY");
strSql.Append(" from op_sub_seaorder_arrival");
if (!string.IsNullOrEmpty(condition))
{
strSql.Append(" where " + condition);
}
// var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sort))
{
strSql.Append(" order by " + sort);
}
else
{
strSql.Append(" order by REFNO ");
}
return strSql.ToString();
}
private static List<MsOpSubSeaArrival> SetArrivalData(StringBuilder strSql)
{
var headList = new List<MsOpSubSeaArrival>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
MsOpSubSeaArrival data = new MsOpSubSeaArrival();
#region Set DB data to Object
data.ORDNO = Convert.ToString(reader["ORDNO"]);//委托
data.GID = Convert.ToString(reader["GID"]);//业务编号
data.BSDATE = Convert.ToDateTime(reader["BSDATE"]);//接单日期
data.MBLNO = Convert.ToString(reader["MBLNO"]);//主提单号
data.HBLNO = Convert.ToString(reader["HBLNO"]);//分提单号
data.REFNO = Convert.ToString(reader["REFNO"]);//分提单号
data.MESSRS = Convert.ToString(reader["MESSRS"]);//收货人内容
data.VESSEL = Convert.ToString(reader["VESSEL"]);//船名
data.VOYNO = Convert.ToString(reader["VOYNO"]);//航次
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["FREETIME"] != DBNull.Value)
data.FREETIME = Convert.ToDateTime(reader["FREETIME"]).ToString("yyyy-MM-dd");//预抵日期
data.PORTLOADID = Convert.ToString(reader["PORTLOADID"]);//装货港代码
data.PORTLOAD = Convert.ToString(reader["PORTLOAD"]);//装货港
data.PORTDISCHARGEID = Convert.ToString(reader["PORTDISCHARGEID"]);//卸货港代码
data.PORTDISCHARGE = Convert.ToString(reader["PORTDISCHARGE"]);//卸货港
data.PlACERECEIPT = Convert.ToString(reader["PlACERECEIPT"]);//收货地
data.PLACEDELIVERYID = Convert.ToString(reader["PLACEDELIVERYID"]);//交货地代码
data.PLACEDELIVERY = Convert.ToString(reader["PLACEDELIVERY"]);//交货地
data.OFFICEADDR = Convert.ToString(reader["OFFICEADDR"]);//交货地
data.DOADDR = Convert.ToString(reader["DOADDR"]);//交货地
data.ISSUETYPE = Convert.ToString(reader["ISSUETYPE"]);//签单方式
data.BLFRT = Convert.ToString(reader["BLFRT"]);//付费方式
data.SERVICE = Convert.ToString(reader["SERVICE"]);//运输条款
data.MARKS = Convert.ToString(reader["MARKS"]);//唛头
data.NOPKGS = Convert.ToString(reader["NOPKGS"]);//件数包装
data.DESCRIPTION = Convert.ToString(reader["DESCRIPTION"]);//货物描述
data.GROSSWEIGHT = Convert.ToString(reader["GROSSWEIGHT"]);//货物毛重
data.MEASUREMENT = Convert.ToString(reader["MEASUREMENT"]);//货物尺码
data.PKGS = Convert.ToInt32(reader["PKGS"]);//件数
data.KINDPKGS = Convert.ToString(reader["KINDPKGS"]);//件数包装
data.KGS =string.Format("{0:0.00}",Convert.ToDecimal(reader["KGS"]));//毛重
data.CBM =string.Format("{0:0.000}", Convert.ToDecimal(reader["CBM"]));//立方数/尺码
data.TOTALNO = Convert.ToString(reader["TOTALNO"]);//件数大写
data.CNTRTOTAL = Convert.ToString(reader["CNTRTOTAL"]);//集装箱全部内容
data.INPUTBY = Convert.ToString(reader["INPUTBY"]);//录入人
data.REMARK = Convert.ToString(reader["REMARK"]);//备注
if (reader["AMOUNTUSD"] != DBNull.Value)
data.AMOUNTUSD = Convert.ToDecimal(reader["AMOUNTUSD"]);
if (reader["AMOUNTJPY"] != DBNull.Value)
data.AMOUNTJPY = Convert.ToDecimal(reader["AMOUNTJPY"]);
#endregion
headList.Add(data);
}
reader.Close();
}
return headList;
}
public static MsOpSubSeaArrival SetDefArrivalData(MsOpSubSeaOrder bill, string username)
{
var ctnlist=GetBodyList("BSNO='"+bill.BSNO+"'");
var ctnliststr="";
var ctnnum=0;
if (ctnlist != null)
{
foreach (var enumValue in ctnlist)
{
ctnliststr=ctnliststr+enumValue.CNTRNO+"("+enumValue.CTNALL+")\r\n";
ctnnum = ctnnum + 1;
}
}
var headList = new MsOpSubSeaArrival();
headList.ORDNO = bill.ORDNO;//委托
headList.GID ="*";//业务编号
headList.BSDATE = DateTime.Now;//接单日期
2 years ago
headList.MBLNO ="43LG"+bill.MBLNO;//主提单号
3 years ago
headList.HBLNO =bill.MBLNO;//分提单号
headList.MESSRS =bill.CONSIGNEE;//收货人内容
headList.VESSEL =bill.VESSEL;//船名
headList.VOYNO =bill.VOYNO;//航次
headList.ETD = bill.ETD;
headList.ETA = bill.ETA;
headList.REFNO ="";
headList.PlACERECEIPT = bill.PlACERECEIPT;
headList.PORTLOAD = bill.PORTLOAD;
headList.PORTDISCHARGE = bill.PORTDISCHARGE;
headList.PLACEDELIVERY = bill.PLACEDELIVERY;
headList.ISSUETYPE = bill.ISSUETYPE;
headList.BLFRT = bill.BLFRT;
headList.SERVICE = bill.SERVICE;
headList.MARKS = bill.MARKS + "\r\n" + ctnliststr;
headList.NOPKGS = bill.NOPKGS;
headList.TOTALNO = ctnnum.ToString() + " CONTAINERS (" + bill.PKGS.ToString() + " " + bill.KINDPKGS + ")";
var str = bill.DESCRIPTION;
str = str.Replace("\n", "\\");
str = str.Replace("\r", " ");
string[] StrList = str.Split('\\');
headList.DESCRIPTION = ctnnum.ToString() + " CONTAINERS (" + bill.PKGS.ToString() + " " + bill.KINDPKGS + ")" +
"\r\n\r\n ";
for (var i = 0; i <= StrList.Length - 1; i++)
{
headList.DESCRIPTION = headList.DESCRIPTION + "\r\n " + StrList[i];
}
headList.DESCRIPTION=headList.DESCRIPTION + "\r\n\r\n " + bill.BLFRT;
headList.GROSSWEIGHT = bill.GROSSWEIGHT;
headList.MEASUREMENT = bill.MEASUREMENT;
headList.KGS = string.Format("{0:0.00}",bill.KGS);
headList.CBM = string.Format("{0:0.000}",bill.CBM);
headList.INPUTBY = username;
return headList;
}
static public List<MsOpSubSeaArrivalFee> GetArrivalFeeList(string strCondition)
{
var strSql = new StringBuilder();
strSql.Append("SELECT [GID],[ORDNO],[FEENAME],[UNITPRICE],[QUANTITY],EXCHANGERATE,[AMOUNTJPY],[AMOUNTUSD],[CURRENCY],[REMARK],[SORT],UNIT from op_sub_seaorder_arrivalfee");
if (strCondition.Trim() != String.Empty)
{
strSql.Append(" where " + strCondition);
}
strSql.Append(" order by ORDNO,SORT");
return SetArrivalFeeData(strSql);
}
private static List<MsOpSubSeaArrivalFee> SetArrivalFeeData(StringBuilder strSql)
{
var bodyList = new List<MsOpSubSeaArrivalFee>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
MsOpSubSeaArrivalFee data = new MsOpSubSeaArrivalFee();
#region Set DB data to Object
data.FEEID = Convert.ToString(reader["GID"]);//编号
data.ORDNO = Convert.ToString(reader["ORDNO"]);//业务编号
data.FeeName = Convert.ToString(reader["FEENAME"]);//费用名称
if (reader["UNITPRICE"] != DBNull.Value)
data.UnitPrice = Convert.ToDecimal(reader["UNITPRICE"]);//单价
data.Unit = Convert.ToString(reader["UNIT"]);//单价
if (reader["QUANTITY"] != DBNull.Value)
data.Quantity = Convert.ToDecimal(reader["QUANTITY"]);//数量
if (reader["AMOUNTJPY"] != DBNull.Value)
data.AmountJpy = Convert.ToDecimal(reader["AMOUNTJPY"]);//金额
if (reader["EXCHANGERATE"] != DBNull.Value)
data.EXCHANGERATE = Convert.ToDecimal(reader["EXCHANGERATE"]);//金额
if (reader["AMOUNTUSD"] != DBNull.Value)
data.AmountUsd = Convert.ToDecimal(reader["AMOUNTUSD"]);//金额
data.Currency = Convert.ToString(reader["CURRENCY"]);//币别
if (reader["SORT"] != DBNull.Value)
data.SORT = Convert.ToInt16(reader["SORT"]);//排序
#endregion
bodyList.Add(data);
}
reader.Close();
}
return bodyList;
}
public static int p_update_ARRIVEL(string bsno)
{
Database db = DatabaseFactory.CreateDatabase();
var cmd = db.GetStoredProcCommand("p_update_arrival");
db.AddInParameter(cmd, "@con_no", DbType.String, bsno);
db.ExecuteNonQuery(cmd);
return 0;
}
static public List<MsOpSubSeaArrivalYard> GetArrivalYardList(string strCondition)
{
var strSql = new StringBuilder();
strSql.Append("SELECT [GID],[YARDCODE],[DESCRIP] from op_sub_seaorder_arrival_yard");
if (strCondition.Trim() != String.Empty)
{
strSql.Append(" where " + strCondition);
}
strSql.Append(" order by YARDCODE");
return SetArrivalYardData(strSql);
}
private static List<MsOpSubSeaArrivalYard> SetArrivalYardData(StringBuilder strSql)
{
var bodyList = new List<MsOpSubSeaArrivalYard>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
MsOpSubSeaArrivalYard data = new MsOpSubSeaArrivalYard();
#region Set DB data to Object
data.GID = Convert.ToString(reader["GID"]);//编号
data.YARDCODE = Convert.ToString(reader["YARDCODE"]);//
data.DESCRIP = Convert.ToString(reader["DESCRIP"]);//
#endregion
bodyList.Add(data);
}
reader.Close();
}
return bodyList;
}
public static DBResult DeleteArrivalFeeDetail(MsOpSubSeaArrivalFee headData)
{
var result = new DBResult();
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
var cmdDelete = db.GetSqlStringCommand("delete from op_sub_seaorder_arrivalfee where GID='" + headData.FEEID + "'");
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 集装箱动态
static public List<MsOpOrderCtnStatus> GetCtnStatusList(string strCondition,string billtype,string companyid)
{
if (!string.IsNullOrEmpty(strCondition))
{
strCondition = strCondition + " and (b.Companyid='" + companyid + "' or Agentid='"+companyid+"') and b.BILLTYPE=" + billtype;
}
else
{
strCondition = " (b.Companyid='" + companyid + "' or Agentid='"+companyid+"') and b.BILLTYPE=" + billtype;
}
var strSql = new StringBuilder();
strSql.Append("SELECT c.[CTN_ID],c.[BSNO],c.[CTNCODE],c.[CTNALL],c.[CNTRNO],c.[SEALNO],c.[PKGS],c.[KGS],c.[CBM],c.[REMARK],c.[STATUS], ");
strSql.Append(" c.[CTNSTATUS],c.[CTNSTATUSDATE],b.[ORSTATUS],b.[BSDATE],b.[MBLNO],b.[VESSEL],b.[VOYNO],b.[ETD],b.[ETA],b.[PORTLOADID],b.[PORTLOAD], ");
strSql.Append(" b.[PORTDISCHARGEID],b.[PORTDISCHARGE],b.[PLACEDELIVERYID],b.[PLACEDELIVERY],b.[DESTINATIONID],b.[DESTINATION],b.[SERVICE],b.[CNTRTOTAL],b.[CARGOID] ");
strSql.Append(" from op_seaorder_ctn c left join op_sub_seaorder b on (b.BSNO=c.BSNO)");
if (strCondition.Trim() != String.Empty)
{
strSql.Append(" where " + strCondition);
}
strSql.Append(" order by b.BSDATE DESC");
return SetCtnStatusData(strSql);
}
private static List<MsOpOrderCtnStatus> SetCtnStatusData(StringBuilder strSql)
{
var bodyList = new List<MsOpOrderCtnStatus>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
MsOpOrderCtnStatus data = new MsOpOrderCtnStatus();
#region Set DB data to Object
data.CTN_ID = Convert.ToString(reader["CTN_ID"]);//编号
data.BSNO = Convert.ToString(reader["BSNO"]);//业务编号
data.CTNCODE = Convert.ToString(reader["CTNCODE"]);//表现形式
data.CTNALL = Convert.ToString(reader["CTNALL"]);//表现形式
data.CNTRNO = Convert.ToString(reader["CNTRNO"]);//箱号
data.SEALNO = Convert.ToString(reader["SEALNO"]);//封号
if (reader["PKGS"] != DBNull.Value)
data.PKGS = Convert.ToInt32(reader["PKGS"]);//件数
if (reader["KGS"] != DBNull.Value)
data.KGS = Convert.ToDecimal(reader["KGS"]);//重量(货重)
if (reader["CBM"] != DBNull.Value)
data.CBM = Convert.ToDecimal(reader["CBM"]);//尺码
data.STATUS = Convert.ToString(reader["STATUS"]);
data.REMARK = Convert.ToString(reader["REMARK"]);//备注
data.CTNSTATUS = Convert.ToString(reader["CTNSTATUS"]);
data.CTNSTATUSDATE = Convert.ToString(reader["CTNSTATUSDATE"]);
data.ORSTATUS = Convert.ToString(reader["ORSTATUS"]);//
data.BSDATE = Convert.ToDateTime(reader["BSDATE"]);//
data.MBLNO = Convert.ToString(reader["MBLNO"]);//
data.VESSEL = Convert.ToString(reader["VESSEL"]);//船名
data.VOYNO = Convert.ToString(reader["VOYNO"]);//航次
if (reader["ETD"] != DBNull.Value)
data.ETD = Convert.ToDateTime(reader["ETD"]).ToShortDateString();//到港日期
if (reader["ETA"] != DBNull.Value)
data.ETA = Convert.ToDateTime(reader["ETA"]).ToShortDateString();//到港日期
data.PORTLOADID = Convert.ToString(reader["PORTLOADID"]);//装货港代码
data.PORTLOAD = Convert.ToString(reader["PORTLOAD"]);//装货港
data.PORTDISCHARGEID = Convert.ToString(reader["PORTDISCHARGEID"]);//卸货港代码
data.PORTDISCHARGE = Convert.ToString(reader["PORTDISCHARGE"]);//卸货港
data.PLACEDELIVERYID = Convert.ToString(reader["PLACEDELIVERYID"]);//交货地代码
data.PLACEDELIVERY = Convert.ToString(reader["PLACEDELIVERY"]);//交货地
data.DESTINATIONID = Convert.ToString(reader["DESTINATIONID"]);//目的地代码
data.DESTINATION = Convert.ToString(reader["DESTINATION"]);//目的地
data.SERVICE = Convert.ToString(reader["SERVICE"]);//运输条款
data.CNTRTOTAL = Convert.ToString(reader["CNTRTOTAL"]);//集装箱全部内容
data.CARGOID = Convert.ToString(reader["CARGOID"]);//货物标识
#endregion
bodyList.Add(data);
}
reader.Close();
}
return bodyList;
}
#endregion
#region 集装箱动态维护
public static DBResult UpdateCtnStatus(List<MsOpOrderCtnStatus> bodylist, string type, string opdatetime,string opname)
{
var result = new DBResult();
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
foreach (var OrderData in bodylist)
{
if (type == "1")
{
var cmdupdateModify = db.GetSqlStringCommand("update V_ORDER_CTNSTATUS set ctnstatus=' Shipper ON "+opdatetime+"' where CTN_ID=@ID");
cmdupdateModify.Parameters.Clear();
db.AddInParameter(cmdupdateModify, "@ID", DbType.String, OrderData.CTN_ID);
db.ExecuteNonQuery(cmdupdateModify, tran);
}
else if (type == "2")
{
var cmdupdateModify = db.GetSqlStringCommand("update V_ORDER_CTNSTATUS set ctnstatus=' Receipt ON " + opdatetime + "' where CTN_ID=@ID");
cmdupdateModify.Parameters.Clear();
db.AddInParameter(cmdupdateModify, "@ID", DbType.String, OrderData.CTN_ID);
db.ExecuteNonQuery(cmdupdateModify, tran);
}
else if (type == "3")
{
var cmdupdateModify = db.GetSqlStringCommand("update V_ORDER_CTNSTATUS set ctnstatus=' Loading ON " + opdatetime + "' where CTN_ID=@ID");
cmdupdateModify.Parameters.Clear();
db.AddInParameter(cmdupdateModify, "@ID", DbType.String, OrderData.CTN_ID);
db.ExecuteNonQuery(cmdupdateModify, tran);
}
else if (type == "4")
{
var cmdupdateModify = db.GetSqlStringCommand("update V_ORDER_CTNSTATUS set ctnstatus=' OnBorad ON " + opdatetime + "' where CTN_ID=@ID");
cmdupdateModify.Parameters.Clear();
db.AddInParameter(cmdupdateModify, "@ID", DbType.String, OrderData.CTN_ID);
db.ExecuteNonQuery(cmdupdateModify, tran);
}
else if (type == "5")
{
var cmdupdateModify = db.GetSqlStringCommand("update V_ORDER_CTNSTATUS set ctnstatus=' Discharging ON " + opdatetime + "' where CTN_ID=@ID");
cmdupdateModify.Parameters.Clear();
db.AddInParameter(cmdupdateModify, "@ID", DbType.String, OrderData.CTN_ID);
db.ExecuteNonQuery(cmdupdateModify, tran);
}
else if (type == "6")
{
var cmdupdateModify = db.GetSqlStringCommand("update V_ORDER_CTNSTATUS set ctnstatus=' Delivery ON " + opdatetime + "' where CTN_ID=@ID");
cmdupdateModify.Parameters.Clear();
db.AddInParameter(cmdupdateModify, "@ID", DbType.String, OrderData.CTN_ID);
db.ExecuteNonQuery(cmdupdateModify, tran);
}
else if (type == "7")
{
var cmdupdateModify = db.GetSqlStringCommand("update V_ORDER_CTNSTATUS set ctnstatus=' Consignee ON " + opdatetime + "' where CTN_ID=@ID");
cmdupdateModify.Parameters.Clear();
db.AddInParameter(cmdupdateModify, "@ID", DbType.String, OrderData.CTN_ID);
db.ExecuteNonQuery(cmdupdateModify, tran);
}
else if (type == "8")
{
var cmdupdateModify = db.GetSqlStringCommand("update V_ORDER_CTNSTATUS set ctnstatus=' Return Ctn ON " + opdatetime + "' where CTN_ID=@ID");
cmdupdateModify.Parameters.Clear();
db.AddInParameter(cmdupdateModify, "@ID", DbType.String, OrderData.CTN_ID);
db.ExecuteNonQuery(cmdupdateModify, tran);
}
if (type == "4" || type == "5")
{
importBox(OrderData, opname);
}
}
result = new DBResult();
result.Success = true;
result.Message = "提交成功";
tran.Commit();
}
catch (Exception)
{
tran.Rollback();
result.Success = false;
result.Message = "提交错误,请重试或联系系统管理员";
return result;
}
}
return result;
}
#region 查询当前登录用户
static public string getuser(string userid)
{
string sql = "select showname from [user] where gid='" + userid + "'";
return SetUser(sql);
}
private static string SetUser(string sb)
{
string s = "";
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, sb.ToString()))
{
while (reader.Read())
{
#region Set DB data to Object
s = Convert.ToString(reader["showname"]);
#endregion
}
reader.Close();
}
return s;
}
#endregion
public static DBResult UpdateOpCtnStatus(List<MsOpOrderCtnStatus> bodylist, string time, string remarks,string type,string userid)
{
var result = new DBResult();
string opdatetime = DateTime.Now.ToShortDateString();
StringBuilder sb = new StringBuilder("");
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
string msg = "";
string insertsql = string.Empty;
try
{
if (bodylist!=null)
{
foreach (var enumValue in bodylist)
{
string sql = " update container_info set cntype='" + enumValue.CTNALL + "' where cntrno='" + enumValue.CNTRNO + "'";
var cmd = db.GetSqlStringCommand(sql);
int a = db.ExecuteNonQuery(cmd, tran);
if (a == 0)
{
sb.Append(enumValue.CNTRNO+",");
}
else
{
if (type == "1")
{
insertsql = string.Format("insert into container_business(jcyy,box_no,vessel,voyage,blno,etd,"
+ "fobportname,operman,opertime,Remarks,jctime) values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}')",
"装船", enumValue.CNTRNO, enumValue.VESSEL, enumValue.VOYNO, enumValue.MBLNO, Convert.ToDateTime(time).ToString("yyyy-MM-dd HH:mm:ss"), enumValue.PORTLOAD, getuser(userid), opdatetime, remarks, Convert.ToDateTime(time).ToString("yyyy-MM-dd HH:mm:ss"));
}
else
{
insertsql = string.Format("insert into container_business(jcyy,box_no,vessel,voyage,blno,reachtime,"
+ "positionname,operman,opertime,Remarks,jctime) values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}')",
"卸船", enumValue.CNTRNO, enumValue.VESSEL, enumValue.VOYNO, enumValue.MBLNO, Convert.ToDateTime(time).ToString("yyyy-MM-dd HH:mm:ss"), enumValue.PORTDISCHARGE, getuser(userid), opdatetime, remarks, Convert.ToDateTime(time).ToString("yyyy-MM-dd HH:mm:ss"));
}
var cmdmx = db.GetSqlStringCommand(insertsql);
db.ExecuteNonQuery(cmdmx, tran);
}
}
}
msg = sb.ToString();
result.Success = true;
if (msg!="")
{
result.Message = "更新成功,以下箱号不存在,故未能更新:</br>" + msg;
}
else
{
result.Message = "更新成功";
}
tran.Commit();
}
catch (Exception)
{
tran.Rollback();
result.Success = false;
result.Message = "提交错误,请重试或联系系统管理员";
return result;
}
}
return result;
}
public static string importBox(MsOpOrderCtnStatus headdata, string username)
{
string str = "";
if (isCntrNO(headdata.CNTRNO))
{
try
{
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
DataSet ds = T_ALL_DA.GetAllSQL("select * from container_business where vessel='" + headdata.VESSEL + "' and Voyage='" + headdata.VOYNO + "' and Box_No='" + headdata.CNTRNO + "'");
if (ds != null && ds.Tables[0].Rows.Count > 0)
{
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
var cmdupdate = db.GetSqlStringCommand("update container_business set BLNO=@BLNO,Etd=@Etd,State=@State,Position=@Position,ReachTime=@ReachTime,fobport=@fobport,operman=@operman ,opertime=@opertime,Remarks=@Remarks where Vessel=@Vessel and Voyage=@Voyage and Box_No=@Box_No");
cmdupdate.Parameters.Clear();
db.AddInParameter(cmdupdate, "@BLNO", DbType.String, headdata.MBLNO);
db.AddInParameter(cmdupdate, "@Vessel", DbType.String, headdata.VESSEL);
db.AddInParameter(cmdupdate, "@Voyage", DbType.String, headdata.VOYNO);
db.AddInParameter(cmdupdate, "@Box_No", DbType.String, headdata.CNTRNO);
db.AddInParameter(cmdupdate, "@Etd", DbType.String, headdata.ETD);
db.AddInParameter(cmdupdate, "@State", DbType.String, setFE(headdata.STATUS));
db.AddInParameter(cmdupdate, "@Position", DbType.String, GetPortID(headdata.PORTDISCHARGE));
db.AddInParameter(cmdupdate, "@ReachTime", DbType.String, headdata.ETA);
db.AddInParameter(cmdupdate, "@fobport", DbType.String, GetPortID(headdata.PORTLOAD));
db.AddInParameter(cmdupdate, "@operman", DbType.String, username);
db.AddInParameter(cmdupdate, "@opertime", DbType.String, DateTime.Now.ToString());
db.AddInParameter(cmdupdate, "@Remarks", DbType.String,"");
db.ExecuteNonQuery(cmdupdate, tran);
tran.Commit();
}
catch (Exception)
{
tran.Rollback();
}
}
}
else
{
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
var cmdupdate = db.GetSqlStringCommand("insert into container_business (BLNO,Vessel,Voyage,Box_No,Etd,State,Position,ReachTime,fobport,operman,opertime)values(@BLNO,@Vessel,@Voyage,@Box_No,@Etd,@State,@Position,@ReachTime,@fobport,@operman,@opertime)");
cmdupdate.Parameters.Clear();
db.AddInParameter(cmdupdate, "@BLNO", DbType.String, headdata.MBLNO);
db.AddInParameter(cmdupdate, "@Vessel", DbType.String, headdata.VESSEL);
db.AddInParameter(cmdupdate, "@Voyage", DbType.String, headdata.VOYNO);
db.AddInParameter(cmdupdate, "@Box_No", DbType.String, headdata.CNTRNO);
db.AddInParameter(cmdupdate, "@Etd", DbType.String, headdata.ETD);
db.AddInParameter(cmdupdate, "@State", DbType.String, setFE(headdata.STATUS));
db.AddInParameter(cmdupdate, "@Position", DbType.String, GetPortID(headdata.PORTDISCHARGE));
db.AddInParameter(cmdupdate, "@ReachTime", DbType.String, headdata.ETA);
db.AddInParameter(cmdupdate, "@fobport", DbType.String, GetPortID(headdata.PORTLOAD));
db.AddInParameter(cmdupdate, "@operman", DbType.String, username);
db.AddInParameter(cmdupdate, "@opertime", DbType.String, DateTime.Now.ToString());
db.ExecuteNonQuery(cmdupdate, tran);
tran.Commit();
}
catch (Exception)
{
tran.Rollback();
}
}
}
// BaseClass.db.SetSqlStrNonQuery("update container_info set status=" + setFE(dr["ISFULL"].ToString()) + ",Position='" + posi + "',positionname='" + posiname + "',Vessel='" + vsl + "',Voyage='" + val + "' where CntrNo='" + dr["CNTR NO"].ToString().Trim() + "'");
}
catch { }
}
else
{
str += headdata.CNTRNO + ",";
}
if (!string.IsNullOrEmpty(str.TrimEnd(',')))
{
str = "已导入,以下箱号不合法未能导入:\\n" + str.TrimEnd(',');
}
else
str += "导入成功";
return str;
}
//public static string getPosition(string position)
//{
// string str = "";
// try
// {
// str = BaseClass.db.GetSqlStrScalar("select portid from code_disport where cname='" + position + "'").ToString();
// }
// catch { }
// return str;
//}
public static string getDate(string date)
{
string str = null;
try
{
str = DateTime.Parse(date).ToString("yyyy-MM-dd");
}
catch { }
return str;
}
public static string getStatus(string s)
{
string str = null;
switch (s)
{
case "可用":
str = "1";
break;
case "已用":
str = "2";
break;
case "维修":
str = "3";
break;
case "停用":
str = "4";
break;
case "退租":
str = "5";
break;
case "灭失":
str = "6";
break;
case "卖出":
str = "7";
break;
}
return str;
}
public static string setFE(string s)
{
string str = null;
if (s.ToUpper() == "F")
str = "2";
else if (s.ToUpper() == "E")
str = "1";
return str;
}
public static bool isCntrNO(string no)
{
String regex = @"^[a-zA-Z]{4}\d{7}$";
if (Regex.IsMatch(no, regex))
{
return true;
}
else
{
return false;
}
}
static public string GetPortID(string PORT)
{
string EDICODE = "";
var strSql = new StringBuilder();
strSql.Append("select PORTID from code_disport where PORT like '%" + PORT + "%'");
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
EDICODE = Convert.ToString(reader["PORTID"]);
}
reader.Close();
}
return EDICODE;
}
#endregion
#region 引入集装箱和费用明细
static public string GetCustName(string GID)
{
string EDICODE = "";
var strSql = new StringBuilder();
strSql.Append("select [NAME] from company where GID='" + GID + "'");
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
EDICODE = Convert.ToString(reader["NAME"]);
}
reader.Close();
}
return EDICODE;
}
static public string GetCustID(string NAME)
{
string EDICODE = "";
var strSql = new StringBuilder();
strSql.Append("select GID from company where [NAME]='" +NAME+ "'");
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
EDICODE = Convert.ToString(reader["GID"]);
}
reader.Close();
}
return EDICODE;
}
public static DBResult AddOrderDetail(string bsno, MsOpSubSeaOrder orderdata,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_ctn (CTN_ID,BSNO,CTNCODE,[SIZE],CTN,CTNNUM,TEU,CTNALL,CNTRNO,SEALNO,PKGS,KGS,CBM,REMARK,KINDPKGS)
values (@CTN_ID,@BSNO,@CTNCODE,@SIZE,@CTN,@CTNNUM,@TEU,@CTNALL,@CNTRNO,@SEALNO,@PKGS,@KGS,@CBM,@REMARK,@KINDPKGS) ");
var cmdInsertfee =
db.GetSqlStringCommand(
@"INSERT into ch_fee (GID, BSNO, FEETYPE, FEENAME, CUSTOMERNAME, UNIT, UNITPRICE, QUANTITY, AMOUNT, CURRENCY,
EXCHANGERATE,ENTEROPERATOR, ENTERDATE,ISOPEN, ISADVANCEDPAY, SORT, FEESTATUS, FEEFRT, TAXRATE,NOTAXAMOUNT,ACCTAXRATE,TAXUNITPRICE)
values (@GID, @BSNO, @FEETYPE, @FEENAME, @CUSTOMERNAME,@UNIT,@UNITPRICE,@QUANTITY,@AMOUNT, @CURRENCY,
@EXCHANGERATE,@ENTEROPERATOR, @ENTERDATE,@ISOPEN, @ISADVANCEDPAY, @SORT, @FEESTATUS, @FEEFRT, @TAXRATE,@NOTAXAMOUNT,@ACCTAXRATE,@TAXUNITPRICE)");
var cmdUpdateOrder =
db.GetSqlStringCommand(
@"update op_sub_seaorder set ORSTATUS='0' where BSNO=@BSNO");
var bodyList = GetBodyList("BSNO='" + orderdata.BSNO + "'");
if (bodyList != null)
{
foreach (var enumValue in bodyList)
{
int SIZE = int.Parse(enumValue.CTNALL.ToString().Trim().Substring(0, 2));
string CTN = enumValue.CTNALL.ToString().Trim().Substring(2);
int TEU = 1;
int iTEU = int.Parse(enumValue.CTNALL.ToString().Trim().Substring(0, 1));
if (iTEU == 4)
{
TEU = TEU * 2;
}
var feedoid = Guid.NewGuid().ToString();
cmdInsert.Parameters.Clear();
db.AddInParameter(cmdInsert, "@CTN_ID", DbType.String, feedoid);
db.AddInParameter(cmdInsert, "@BSNO", DbType.String, bsno);
db.AddInParameter(cmdInsert, "@CTNCODE", DbType.String,enumValue.CTNCODE);
db.AddInParameter(cmdInsert, "@SIZE", DbType.Int16, SIZE);
db.AddInParameter(cmdInsert, "@CTN", DbType.String, CTN);
db.AddInParameter(cmdInsert, "@CTNNUM", DbType.Int16, 1);
db.AddInParameter(cmdInsert, "@TEU", DbType.Int16, TEU);
db.AddInParameter(cmdInsert, "@CTNALL", DbType.String, enumValue.CTNALL);
db.AddInParameter(cmdInsert, "@CNTRNO", DbType.String, enumValue.CNTRNO);
db.AddInParameter(cmdInsert, "@SEALNO", DbType.String, enumValue.SEALNO);
db.AddInParameter(cmdInsert, "@PKGS", DbType.Int16, enumValue.PKGS);
db.AddInParameter(cmdInsert, "@KGS", DbType.Decimal, enumValue.KGS);
db.AddInParameter(cmdInsert, "@CBM", DbType.Decimal, enumValue.CBM);
db.AddInParameter(cmdInsert, "@TAREWEIGHT", DbType.Decimal, null);
db.AddInParameter(cmdInsert, "@REMARK", DbType.String, enumValue.REMARK);
db.AddInParameter(cmdInsert, "@KINDPKGS", DbType.String,"");
db.ExecuteNonQuery(cmdInsert, tran);
}
}
var AfeeList = GetFeeList("BSNO='" + orderdata .BSNO+ "'", 1);
if (AfeeList != null)
{
foreach (var enumValue in AfeeList)
{
var feedoid = Guid.NewGuid().ToString();
cmdInsertfee.Parameters.Clear();
db.AddInParameter(cmdInsertfee, "@GID", DbType.String, feedoid);
db.AddInParameter(cmdInsertfee, "@BSNO", DbType.String, bsno);
db.AddInParameter(cmdInsertfee, "@FEETYPE", DbType.Int16, 1);
db.AddInParameter(cmdInsertfee, "@FEENAME", DbType.String, enumValue.FeeName);
db.AddInParameter(cmdInsertfee, "@CUSTOMERNAME", DbType.String, GetCustName(orderdata.AGENTID));
db.AddInParameter(cmdInsertfee, "@UNIT", DbType.String,enumValue.Unit);
db.AddInParameter(cmdInsertfee, "@UNITPRICE", DbType.Decimal, enumValue.UnitPrice);
db.AddInParameter(cmdInsertfee, "@QUANTITY", DbType.Decimal, enumValue.Quantity);
db.AddInParameter(cmdInsertfee, "@AMOUNT", DbType.Decimal, enumValue.Amount);
db.AddInParameter(cmdInsertfee, "@CURRENCY", DbType.String, enumValue.Currency);
db.AddInParameter(cmdInsertfee, "@EXCHANGERATE", DbType.Decimal, enumValue.ExChangerate);
db.AddInParameter(cmdInsertfee, "@ENTEROPERATOR", DbType.String, userid);
db.AddInParameter(cmdInsertfee, "@ENTERDATE", DbType.Date,DateTime.Now);
db.AddInParameter(cmdInsertfee, "@ISOPEN", DbType.String,"0");
db.AddInParameter(cmdInsertfee, "@ISADVANCEDPAY", DbType.String, "0");
db.AddInParameter(cmdInsertfee, "@SORT", DbType.Int16, enumValue.SORT);
db.AddInParameter(cmdInsertfee, "@FEESTATUS", DbType.Int16, 0);
db.AddInParameter(cmdInsertfee, "@FEEFRT", DbType.String, enumValue.FeeFrt);
db.AddInParameter(cmdInsertfee, "@TAXRATE", DbType.Decimal, 0);
db.AddInParameter(cmdInsertfee, "@NOTAXAMOUNT", DbType.Decimal, enumValue.Amount);
db.AddInParameter(cmdInsertfee, "@ACCTAXRATE", DbType.Decimal,0);
db.AddInParameter(cmdInsertfee, "@TAXUNITPRICE", DbType.Decimal, enumValue.UnitPrice);
db.ExecuteNonQuery(cmdInsertfee, tran);
}
}
var feeList = GetFeeList("BSNO='" + orderdata.BSNO + "'", 0);
if (feeList != null)
{
foreach (var enumValue in feeList)
{
var feedoid = Guid.NewGuid().ToString();
cmdInsertfee.Parameters.Clear();
db.AddInParameter(cmdInsertfee, "@GID", DbType.String, feedoid);
db.AddInParameter(cmdInsertfee, "@BSNO", DbType.String, bsno);
db.AddInParameter(cmdInsertfee, "@FEETYPE", DbType.Int16, 1);
db.AddInParameter(cmdInsertfee, "@FEENAME", DbType.String, enumValue.FeeName);
db.AddInParameter(cmdInsertfee, "@CUSTOMERNAME", DbType.String, GetCustName(orderdata.COMPANYID));
db.AddInParameter(cmdInsertfee, "@UNIT", DbType.String, enumValue.Unit);
db.AddInParameter(cmdInsertfee, "@UNITPRICE", DbType.Decimal, enumValue.UnitPrice);
db.AddInParameter(cmdInsertfee, "@QUANTITY", DbType.Decimal, enumValue.Quantity);
db.AddInParameter(cmdInsertfee, "@AMOUNT", DbType.Decimal, enumValue.Amount);
db.AddInParameter(cmdInsertfee, "@CURRENCY", DbType.String, enumValue.Currency);
db.AddInParameter(cmdInsertfee, "@EXCHANGERATE", DbType.Decimal, enumValue.ExChangerate);
db.AddInParameter(cmdInsertfee, "@ENTEROPERATOR", DbType.String, userid);
db.AddInParameter(cmdInsertfee, "@ENTERDATE", DbType.Date, DateTime.Now);
db.AddInParameter(cmdInsertfee, "@ISOPEN", DbType.String, "0");
db.AddInParameter(cmdInsertfee, "@ISADVANCEDPAY", DbType.String, "0");
db.AddInParameter(cmdInsertfee, "@SORT", DbType.Int16, enumValue.SORT);
db.AddInParameter(cmdInsertfee, "@FEESTATUS", DbType.Int16, 0);
db.AddInParameter(cmdInsertfee, "@FEEFRT", DbType.String, enumValue.FeeFrt);
db.AddInParameter(cmdInsertfee, "@TAXRATE", DbType.Decimal, 0);
db.AddInParameter(cmdInsertfee, "@NOTAXAMOUNT", DbType.Decimal, enumValue.Amount);
db.AddInParameter(cmdInsertfee, "@ACCTAXRATE", DbType.Decimal, 0);
db.AddInParameter(cmdInsertfee, "@TAXUNITPRICE", DbType.Decimal, enumValue.UnitPrice);
db.ExecuteNonQuery(cmdInsertfee, tran);
}
}
cmdUpdateOrder.Parameters.Clear();
db.AddInParameter(cmdUpdateOrder, "@BSNO", DbType.String, bsno);
db.ExecuteNonQuery(cmdUpdateOrder, tran);
tran.Commit();
result.Success = true;
result.Message = "保存成功" + result.Message;
return result;
}
catch (Exception)
{
tran.Rollback();
result.Success = false;
result.Message = "保存出现错误,请重试或联系系统管理员";
return result;
}
}
result.Success = true;
result.Message = "保存成功" + result.Message;
return result;
}
public static DBResult ImportSeaeDetail(string bsno, List<MsOpSeaeDetail> ctnbodyList, 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_seaorder_ctn (CTN_ID,BSNO,CTNCODE,CTNALL,CNTRNO,SEALNO,PKGS,KGS,CBM,REMARK)
values (@CTN_ID,@BSNO,@CTNCODE,@CTNALL,@CNTRNO,@SEALNO,@PKGS,@KGS,@CBM,@REMARK) ");
if (ctnbodyList != null)
{
foreach (var enumValue in ctnbodyList)
{
var feedoid = Guid.NewGuid().ToString();
cmdInsert.Parameters.Clear();
db.AddInParameter(cmdInsert, "@CTN_ID", DbType.String, feedoid);
db.AddInParameter(cmdInsert, "@BSNO", DbType.String, bsno);
db.AddInParameter(cmdInsert, "@CTNCODE", DbType.String, enumValue.CTNCODE);
db.AddInParameter(cmdInsert, "@CTNALL", DbType.String, enumValue.CTNALL);
db.AddInParameter(cmdInsert, "@CNTRNO", DbType.String, enumValue.CNTRNO);
db.AddInParameter(cmdInsert, "@SEALNO", DbType.String, enumValue.SEALNO);
db.AddInParameter(cmdInsert, "@PKGS", DbType.Int16, enumValue.PKGS);
db.AddInParameter(cmdInsert, "@KGS", DbType.Decimal, enumValue.KGS);
db.AddInParameter(cmdInsert, "@CBM", DbType.Decimal, enumValue.CBM);
db.AddInParameter(cmdInsert, "@REMARK", DbType.String, enumValue.REMARK);
db.ExecuteNonQuery(cmdInsert, tran);
}
}
tran.Commit();
result.Success = true;
result.Message = "生成成功" + result.Message;
return result;
}
catch (Exception)
{
tran.Rollback();
result.Success = false;
result.Message = "生成过程出现错误,请重试或联系系统管理员";
return result;
}
}
result.Success = true;
result.Message = "生成成功" + result.Message;
return result;
}
#endregion
#region 判断是否有费用
public static bool GetFeeCount(string BSNO)
{
var isfee = false;
var strSql = new StringBuilder();
strSql.Append("Select count(*) as count ");
strSql.Append(" from ch_fee ");
strSql.Append(" where BSNO='" + BSNO+"'");
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
var evData = Convert.ToInt32(reader["count"]);
if (evData > 0) { isfee = true; };
}
reader.Close();
}
return isfee;
}
#endregion
#region 审核通过处理
static public List<MsOpSubSeaOrder> GetAuditDataList(string strCondition, string billtype, string userid, string usercode, string companyid, string sort = null)
{
if (!string.IsNullOrEmpty(strCondition))
{
strCondition = strCondition + " and BILLTYPE=" + billtype;
}
else
{
strCondition = " BILLTYPE=" + billtype;
}
var strSql = new StringBuilder();
strSql.Append("SELECT ORDNO,BSNO,ORSTATUS,ORTYPE,ORREASON,BSDATE,MBLNO,HBLNO,CUSTOMERNAME");
strSql.Append(",SHIPPER,CONSIGNEE,NOTIFYPARTY,VESSEL,VOYNO,ETD,ETA,PlACERECEIPT,PORTLOADID,PORTLOAD,PORTDISCHARGEID,PORTDISCHARGE");
strSql.Append(",PLACEDELIVERYID,PLACEDELIVERY,DESTINATIONID,DESTINATION,NOBILL,ISSUETYPE,ISSUEDATE,ISSUEPLACE,BLFRT");
strSql.Append(",PREPARDAT,PAYABLEAT,[SERVICE],MARKS,NOPKGS,[DESCRIPTION],GOODSNAME,GROSSWEIGHT,MEASUREMENT,PKGS,KINDPKGS");
strSql.Append(",KGS,CBM,TOTALNO,CNTRTOTAL,INPUTBY,CARGOID,DCLASS,DUNNO,REEFERF,TEMPID,TEMPSET,TEMPMAX,TEMPMIN");
strSql.Append(",REMARK,AUDITOPERATOR,AUDITDATE,DPAGE,DLABEL,LINKMAN,BILLTYPE,COMPANYID,AGENTID,SPCHARGE");
strSql.Append(",SHIPPERCODE,SHIPPERCOUNTRY,SHIPPERTEL,CONSIGNEECODE,CONSIGNEECOUNTRY,CONSIGNEETEL,NOTIFYPARTYCODE,NOTIFYPARTYCOUNTRY,NOTIFYPARTYTEL");
strSql.Append(",(CASE ORSTATUS WHEN '0' THEN '引入' WHEN '1' THEN '提交' WHEN '2' THEN '驳回' else '录入' end) as ORSTATUSREF ");
strSql.Append(",(SELECT [NAME] from company where GID=B.COMPANYID ) as COMPANY ");
strSql.Append(",(SELECT [NAME] from company where GID=B.AGENTID) as AGENT ");
2 years ago
strSql.Append(",'' DRFEESTATUS");
strSql.Append(",'' CRFEESTATUS");
3 years ago
strSql.Append(" from op_sub_seaorder 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 BSDATE desc");
}
return SetData(strSql);
}
#endregion
#region 外代EDI
static public string GetVesselEdi(string Vessel)
{
string EDICODE = "";
var strSql = new StringBuilder();
strSql.Append("select EDICODE from code_vessel where Vessel='" + Vessel + "'");
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
EDICODE = Convert.ToString(reader["EDICODE"]);
}
reader.Close();
}
return EDICODE;
}
static public string GetPackageEDICode(string Package)
{
string EDICODE = "";
var strSql = new StringBuilder();
strSql.Append("select EDICODE from CODE_PACKAGE where PKGS='" + Package + "'");
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
EDICODE = Convert.ToString(reader["EDICODE"]);
}
reader.Close();
}
return EDICODE;
}
static public string GetCtnEDICode(string Ctn)
{
string EDICODE = "";
Ctn = Ctn.Replace("'", "''");
var strSql = new StringBuilder();
strSql.Append("select EDICODE from code_ctn where CTN='" + Ctn + "'");
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
EDICODE = Convert.ToString(reader["EDICODE"]);
}
reader.Close();
}
return EDICODE;
}
static public decimal GetCtnWeight(string Ctn)
{
decimal CTNWEIGHT = 0;
Ctn = Ctn.Replace("'", "''");
var strSql = new StringBuilder();
strSql.Append("select CTNWEIGHT from code_ctn where CTN='" + Ctn + "'");
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
CTNWEIGHT = Convert.ToDecimal(reader["CTNWEIGHT"]);
}
reader.Close();
}
return CTNWEIGHT;
}
static public string GetFrtEDICode(string FRT)
{
string EDICODE = "P";
var strSql = new StringBuilder();
strSql.Append("select EDICODE from code_frt where FRT='" + FRT + "'");
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
EDICODE = Convert.ToString(reader["EDICODE"]);
}
reader.Close();
}
return EDICODE;
}
static public string GetLaneEDICode(string lane)
{
string EDICODE = "";
var strSql = new StringBuilder();
strSql.Append("select EDICODE from code_lanes where lane='" + lane + "'");
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
EDICODE = Convert.ToString(reader["EDICODE"]);
}
reader.Close();
}
return EDICODE;
}
public static string formatEdiStr(string str)
{
return str.Replace("?", "??").Replace(":", "?:").Replace("+", "?+").Replace(";", "?;");
}
public static List<System.String> formatlengthStr(string str, int length)
{
str = str.Replace("\n", "\\");
str = str.Replace("\r", " ");
string[] StrList = str.Split('\\');
var strtemp = "";
var strnewline = "";
var strtempnewline = "";
char[] spstring = { ' ', ';', ',', '.', ':', '/', '(', ')', '?', '+', '-' };
List<System.String> DestList = new List<System.String>();
for (var i = 0; i <= StrList.Length - 1; i++)
{
if (StrList[i].Length <= length) DestList.Add(StrList[i]);
else
{
strtemp = StrList[i];
for (var j = 0; j < strtemp.Length; j++)
{
strtempnewline = strtempnewline + strtemp[j];
if (strtemp[j] == ' ' || strtemp[j] == ':' || strtemp[j] == ',' || strtemp[j] == '.' || strtemp[j] == ':' || strtemp[j] == '/'
|| strtemp[j] == '?' || strtemp[j] == ')' || strtemp[j] == '}' || strtemp[j] == '+' || strtemp[j] == '-')
{
if ((strnewline.Length + strtempnewline.Length) <= length)
strnewline = strnewline + strtempnewline;
else
{
DestList.Add(strnewline);
strnewline = "";
}
strtempnewline = "";
}
}
}
}
return DestList;
}
public static string formatListStr(List<System.String> DestList, int lineCount)
{
var result = "";
for (var i = 0; i < lineCount; i++)
{
if (DestList.Count > i)
{
result = result + DestList[i] + ":";
}
else result = result + ":";
}
return result;
}
public static string BreakLongString(string SubjectString, int lineLength)
{
StringBuilder sb = new StringBuilder(SubjectString);
int offset = 0;
ArrayList indexList = buildInsertIndexList(SubjectString, lineLength);
for (int i = 0; i < indexList.Count; i++)
{
sb.Insert((int)indexList[i] + offset, '\n');
offset++;
}
return sb.ToString();
}
public static bool IsChinese(char c)
{
return (int)c > 0x80;
}
public static bool StringIsChinese(string str)
{
var result = false;
for (int i = 1; i < str.Length; i++)
{
if (IsChinese(str[i]))
{
result = true;
return result;
}
}
return result;
}
private static ArrayList buildInsertIndexList(string str, int maxLen)
{
int nowLen = 0;
ArrayList list = new ArrayList();
for (int i = 1; i < str.Length; i++)
{
if (IsChinese(str[i]))
{
nowLen += 2;
}
else
{
nowLen++;
}
if (nowLen > maxLen)
{
nowLen = 0;
list.Add(i);
}
}
return list;
}
public static string GetDateStr(string datestr, string dateformat)
{
var result = "";
if (datestr == null || datestr == "")
{
result = "";
}
else
{
result = Convert.ToDateTime(datestr).ToString(dateformat);
}
return result;
}
public static string IsCreateEdiWD(List<MsOpSubSeaOrder> headData)
{
var error = "";
foreach (var bill in headData)
{
if (bill.MBLNO == null || bill.MBLNO == "")
{ error = error + "|MBLNO Can't Empty"; }
if (bill.BLFRT == null || bill.BLFRT == "")
{ error = error + "|MBLNO" + bill.MBLNO + "PREPAID OR COLLECT Can't Empty"; }
if (bill.VESSEL == null || bill.VESSEL == "")
{ error = error + "|MBLNO" + bill.MBLNO + "Vessel Can't Empty"; }
if (bill.SHIPPERCODE == null || bill.SHIPPERCODE == "")
{ error = error + "|MBLNO" + bill.MBLNO + "Shipper Code Can't Empty"; }
if (bill.SHIPPERTEL == null || bill.SHIPPERTEL == "")
{ error = error + "|MBLNO" + bill.MBLNO + "Shipper Tel Can't Empty"; }
if (bill.CONSIGNEECODE == null || bill.CONSIGNEECODE == "")
{ error = error + "|MBLNO" + bill.MBLNO + "Consignee Code Can't Empty"; }
if (bill.CONSIGNEETEL == null || bill.CONSIGNEETEL == "")
{ error = error + "|MBLNO" + bill.MBLNO + "Consignee Tel Can't Empty"; }
if (bill.VOYNO == null || bill.VOYNO == "")
{ error = error + "|MBLNO" + bill.MBLNO + "VoyNo Can't Empty"; }
if (bill.PORTLOADID == null || bill.PORTLOADID == "")
{ error = error + "|MBLNO" + bill.MBLNO + "PORTLOAD CODE Can't Empty"; }
if (bill.PORTLOAD == null || bill.PORTLOAD == "")
{ error = error + "|MBLNO" + bill.MBLNO + "PORTLOAD Can't Empty"; }
if (bill.ETD == null || bill.ETD == "")
{
error = error + "|MBLNO" + bill.MBLNO + "ETD Can't Empty";
return error;
}
if (bill.PORTDISCHARGEID == null || bill.PORTDISCHARGEID == "")
{ error = error + "|MBLNO" + bill.MBLNO + "PORTDISCHARGE CODE Can't Empty"; }
if (bill.DESTINATION == null || bill.DESTINATION == "")
{ error = error + "|MBLNO" + bill.MBLNO + "PORTDISCHARGE Can't Empty"; }
//if (GetPackageEDICode(bill.KINDPKGS) == "")
//{ error = error + "|提单号:" + bill.MBLNO + "包装EDI代码不能为空"; }
if (bill.DESCRIPTION == null || bill.DESCRIPTION == "")
{ error = error + "|MBLNO" + bill.MBLNO + "DESCRIPTION Can't Empty"; }
if (bill.MARKS == null || bill.MARKS == "")
{ error = error + "|MBLNO" + bill.MBLNO + "MARKS Can't Empty"; }
//if (bill.PKGS == 0)
//{ error = error + "|MBLNO" + bill.MBLNO + "PKGS Can't Empty"; }
if (bill.CARGOID == null || bill.CARGOID == "")
{ error = error + "|MBLNO" + bill.MBLNO + "CARGO CODE Can't Empty"; }
if (bill.CARGOID == "D")
{
if (bill.DCLASS == null || bill.DCLASS == "")
{ error = error + "|MBLNO" + bill.MBLNO + " DANGEROUS CLASS Can't Empty"; }
if (bill.DUNNO == null || bill.DUNNO == "")
{ error = error + "|MBLNO" + bill.MBLNO + "UNDG NO. Can't Empty"; }
}
if (bill.CARGOID == "R")
{
if (bill.TEMPSET == null || bill.TEMPSET == "")
{ error = error + "|MBLNO" + bill.MBLNO + "设置温度不能为空"; }
}
var ctnlist = GetBodyList("BSNO='" + bill.BSNO + "'");
if (ctnlist.Count == 0) { error = error + "|MBLNO" + bill.MBLNO + "CTN DETTAIL Can't Empty"; };
foreach (var ctn in ctnlist)
{
if (ctn.CNTRNO == null || ctn.CNTRNO == "")
{ error = error + "|MBLNO" + bill.MBLNO + "CNTRNO Can't Empty"; }
}
if (StringIsChinese(bill.SHIPPER))
{
error = error + "|MBLNO" + bill.MBLNO + "SHIPPER Can't Contains Special Word";
}
if (StringIsChinese(bill.CONSIGNEE))
{
error = error + "|MBLNO" + bill.MBLNO + "CONSIGNEE Can't Contains Special Word";
}
if (StringIsChinese(bill.NOTIFYPARTY))
{
error = error + "|MBLNO" + bill.MBLNO + "NOTIFYPARTY Can't Contains Special Word";
}
if (StringIsChinese(bill.MARKS))
{
error = error + "|MBLNO" + bill.MBLNO + "MARKS Can't Contains Special Word";
}
if (StringIsChinese(bill.DESCRIPTION))
{
error = error + "|MBLNO" + bill.MBLNO + "DESCRIPTION Can't Contains Special Word";
}
}
return error;
}
public static string CreateEdiWD(List<MsOpSubSeaOrder> headData, string usercode, string path, string mblno, CodeFtpSet ftpset)
{
string filename = path + "\\" + mblno + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".txt";
if (System.IO.File.Exists(filename))
{
System.IO.File.Delete(filename);
}
FileStream f = new FileStream(filename, FileMode.Create);
StreamWriter r = new StreamWriter(f, Encoding.Default);
var icount = 0;
var filerole = "9";
var isfirst = true;
foreach (var bill in headData)
{
if (isfirst)
{
r.WriteLine("00:PENSUM:MANIFEST:" + filerole + ":" + ftpset.SENDCODE + ":" + ftpset.RECEIVECODE + ":" + DateTime.Now.ToString("yyyyMMddHHmm") + ":" + bill.PORTLOADID+"::2.0'");
icount = icount + 1;
r.WriteLine("10:" + GetVesselEdi(bill.VESSEL) + ":" + bill.VESSEL + "::" + bill.VOYNO + "::::" + GetDateStr(bill.ETD, "yyyyMMddHHmmss") + ":" + bill.PORTLOADID + ":" + bill.PORTLOAD+":::1'");
// r.WriteLine("10:" + GetVesselEdi(bill.VESSEL) + ":" + bill.VESSEL + "::" + bill.VOYNO + ":::" + GetDateStr(bill.ETA, "yyyyMMdd") + ":" + GetDateStr(bill.ETD, "yyyyMMdd") + "::::::1'");
isfirst = false;
r.WriteLine("11:" + ftpset.SENDCODE + ":" + ftpset.SENDNAME + ":::" + GetDateStr(bill.ETD, "yyyyMMddHHmmss") + "::'");
icount = icount + 2;
}
// r.WriteLine("11:" + ftpset.SENDCODE + ":SOFAST SHIPPING LIMITED::4227163583837::'");
//var xtype = "PO";
// if (bill.BLFRT.IndexOf("FREIGHT COLLECT") >= 0)
// xtype = "CC";
// r.WriteLine("12:" + bill.MBLNO.Trim() + "::::::" + bill.PORTLOADID + ":" + bill.PORTLOAD
// + ":10:" + xtype + ":" + GetDateStr(bill.ETD, "yyyyMMdd") + "::::::" + bill.PKGS.ToString() +":"+
// GetPackageEDICode(bill.KINDPKGS) + ":" + string.Format("{0:0.0000}", bill.KGS) + ":" + bill.CBM.ToString() + ":0.00:::::001'");
// r.WriteLine("13:" + bill.PORTDISCHARGEID + ":" + bill.PORTDISCHARGE
// + ":" + bill.DESTINATIONID + ":" + bill.DESTINATION + "::::" + bill.ISSUEPLACE + "::'");
var xtype = "P";
if (bill.BLFRT.IndexOf("FREIGHT COLLECT") >= 0)
xtype = "C";
r.WriteLine("12:" + bill.MBLNO.Trim() + "::::" + bill.PORTLOADID + ":" + bill.PORTLOAD
+ ":" + bill.PORTLOADID + ":" + bill.PORTLOAD
+ ":" + bill.SERVICE + ":" + xtype + ":" + GetDateStr(bill.ETD, "yyyyMMddHHmmss") + "::::::::::'");
r.WriteLine("13:" + bill.PORTDISCHARGEID + ":" + bill.PORTDISCHARGE
+ ":" + bill.PORTDISCHARGEID + ":" + bill.PORTDISCHARGE + "::::" + bill.ISSUEPLACE + "::::'");
var Shipping = "";
Shipping = formatEdiStr(bill.SHIPPER);
List<System.String> ShippingList = formatlengthStr(Shipping, 35);
if (ShippingList.Count != 0)
{
r.WriteLine("16:" + formatEdiStr(bill.SHIPPERCODE) + ":" + formatListStr(ShippingList, 2) + formatEdiStr(bill.SHIPPERTEL)+ ":::::::" + bill.SHIPPERCOUNTRY + ":" + ":'");
// r.WriteLine("\"16::" + ShippingList[0] + "\r:" + ShippingList[0] + "::::::::'\"");
}
Shipping = formatEdiStr(bill.CONSIGNEE);
ShippingList = formatlengthStr(Shipping, 35);
if (ShippingList.Count != 0)
{
r.WriteLine("17:" + formatEdiStr(bill.CONSIGNEECODE) + ":" + formatListStr(ShippingList, 2) + formatEdiStr(bill.CONSIGNEETEL)+ ":::::::" + bill.CONSIGNEECOUNTRY + ":" + ":'");
}
Shipping = formatEdiStr(bill.NOTIFYPARTY);
ShippingList = formatlengthStr(Shipping, 35);
if (ShippingList.Count != 0)
{
r.WriteLine("18:" + formatEdiStr(bill.NOTIFYPARTYCODE) + ":" + formatListStr(ShippingList, 2) + formatEdiStr(bill.NOTIFYPARTYTEL)+ ":::::::" + bill.NOTIFYPARTYCOUNTRY + ":" + ":'");
// r.WriteLine("\"18::" + ShippingList[0] + "\r:" + ShippingList[0] + "::::::::'\"");
}
var cargoid = bill.CARGOID;
if (cargoid == "") cargoid = "S";
r.WriteLine("41:1::" + bill.PKGS.ToString() + ":" + GetPackageEDICode(bill.KINDPKGS) + ":" + bill.KINDPKGS + ":"
+ bill.KGS.ToString() + "::" + bill.CBM.ToString() + "::::'");
icount = icount + 6;
if (cargoid=="D"){
r.WriteLine("43::" + bill.DCLASS + ":none:" + bill.DUNNO + ":none:::::::::'");
icount = icount + 1;
}
Shipping = formatEdiStr(bill.MARKS);
ShippingList = formatlengthStr(Shipping, 35);
if (ShippingList.Count != 0)
{
r.WriteLine("44::" + formatListStr(ShippingList, 5) + "'");
icount = icount + 1;
}
Shipping = formatEdiStr(bill.DESCRIPTION);
ShippingList = formatlengthStr(Shipping, 35);
var strtemp = "";
var m = 0;
if (ShippingList.Count != 0)
{
for (var i = 0; i < ShippingList.Count; i++)
{
if (m <= 4)
{
if (m == 0) strtemp = "47:" + ShippingList[i] + ":";
else
{
if (m == 4)
strtemp = strtemp + ShippingList[i];
else
strtemp = strtemp + ShippingList[i] + ":";
}
}
else
{
m =0;
r.WriteLine(strtemp + "'");
strtemp = "47:" + ShippingList[i] + ":";
icount = icount + 1;
}
m = m + 1;
}
}
if (strtemp != "")
{
r.WriteLine(strtemp + "'");
icount = icount + 1;
};
var ctnlist = GetBodyList("BSNO='" + bill.BSNO + "'");
foreach (var ctn in ctnlist)
{
var ctnpkg ="0";
if (ctn.STATUS == "E")
{
ctnpkg ="1";
}
else ctnpkg = ctn.PKGS.ToString();
r.WriteLine("51:1:" + ctn.CNTRNO + ":" + ctn.SEALNO + ":" + ctn.CTNALL + ":" + ctn.STATUS + ":" + ctnpkg
+ ":" + ctn.KGS.ToString() + "::"+ctn.CBM.ToString()+":::::::2'");
if (ctn.STATUS=="F")
r.WriteLine("52:M:SH:"+ ctn.SEALNO + "'");
icount = icount + 2;
}
}
icount = icount + 1;
r.WriteLine("99:" + icount.ToString() + "'");
r.Close();
f.Close();
return filename;
}
public static string CreateEdiWD2(List<MsOpSubSeaOrder> headData, string usercode, string path, string mblno, CodeFtpSet ftpset)
{
string filename = path + "\\" + mblno + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".txt";
if (System.IO.File.Exists(filename))
{
System.IO.File.Delete(filename);
}
FileStream f = new FileStream(filename, FileMode.Create);
StreamWriter r = new StreamWriter(f, Encoding.Default);
var icount = 1;
// filerole = "9C";
r.WriteLine("00:CN1101::9:" + ftpset.SENDCODE + ":" + ftpset.RECEIVECODE + ":" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ":1.0'");
var isfirst = true;
foreach (var bill in headData)
{
if (isfirst) {
r.WriteLine("10:" + GetVesselEdi(bill.VESSEL) + ":" + bill.VESSEL + "::" + bill.VOYNO + "::::" + GetDateStr(bill.ETD, "yyyyMMddHHmm") + "086:" + bill.PORTLOADID + ":" + bill.PORTLOAD + "::::1'");
r.WriteLine("11:SOF::" + ftpset.SENDCODE + "::" + bill.PORTDISCHARGEID + ":" + GetDateStr(bill.ETA, "yyyyMMddHHmm") + "086'");
isfirst = false;
}
var xtype = "";
var TransType = "";
if (bill.BLFRT.IndexOf("FREIGHT PREPAID") > 0)
xtype = "PO";
else if (bill.BLFRT.IndexOf("FREIGHT COLLECT") > 0)
xtype = "CC";
else
xtype = "PO";
if (bill.SERVICE.ToUpper() == "PORT TO PORT")
TransType = "10";
else if (bill.SERVICE.ToUpper() == "DOOR TO DOOR")
TransType = "27";
else if (bill.SERVICE.ToUpper() == "DOOR TO PIER")
TransType = "28";
else if (bill.SERVICE.ToUpper() == "PIER TO DOOR")
TransType = "29";
else
TransType = "10";
r.WriteLine("12:" + bill.MBLNO.Trim() + "::::" + bill.PLACEDELIVERYID + ":" + bill.PLACEDELIVERY + ":" + bill.PORTLOADID + ":" + bill.PORTLOAD
+ ":" + TransType + ":" + xtype + ":" + GetDateStr(bill.ETD, "yyyyMMddHHmm") + "086:::::" + bill.HBLNO + ":"
+ bill.PKGS.ToString() + ":" + GetPackageEDICode(bill.KINDPKGS).Trim() + ":" + bill.KGS.ToString() + ":::::::001'");
r.WriteLine("13:" + bill.PORTDISCHARGEID + ":" + bill.PORTDISCHARGE + ":" + bill.DESTINATIONID + ":" + bill.DESTINATION + ":::JP:::'"
+ GetDateStr(bill.ETA, "yyyyMMdd") + "::'");
r.WriteLine("14:JP'");
r.WriteLine("14:CN'");
var Shipping = "";
Shipping = formatEdiStr(bill.SHIPPER);
List<System.String> ShippingList = formatlengthStr(Shipping, 35);
if (ShippingList.Count != 0)
{
r.WriteLine("16::" + formatListStr(ShippingList, 2) + "::::::::'");
}
Shipping = formatEdiStr(bill.CONSIGNEE);
ShippingList = formatlengthStr(Shipping, 35);
if (ShippingList.Count != 0)
{
r.WriteLine("17::" + formatListStr(ShippingList, 2) + "::::::::'");
}
Shipping = formatEdiStr(bill.NOTIFYPARTY);
ShippingList = formatlengthStr(Shipping, 35);
if (ShippingList.Count != 0)
{
r.WriteLine("18::" + formatListStr(ShippingList, 2) + "::::::::'");
}
//Shipping = formatEdiStr(bill.AGENT);
//ShippingList = formatlengthStr(Shipping, 35);
//if (ShippingList.Count != 0)
//{
// r.WriteLine("19::" + formatListStr(ShippingList, 6) + "'");
//}
var cargoid = bill.CARGOID;
if (cargoid == "") cargoid = "S";
r.WriteLine("41:1::" + bill.PKGS.ToString() + ":" + GetPackageEDICode(bill.KINDPKGS).Trim() + ":" + bill.KINDPKGS + ":"
+ bill.KGS.ToString() + ":" + bill.KGS.ToString() + ":" + bill.CBM.ToString() + ":::'");
icount = icount + 10;
var ctnlist = GetBodyList("BSNO='" + bill.BSNO + "'");
foreach (var ctn in ctnlist)
{
r.WriteLine("42:" + ctn.CNTRNO + "'");
icount = icount + 1;
}
if (bill.CARGOID == "D")
{
r.WriteLine("43:" + bill.DCLASS + ":none:" + bill.DUNNO + ":none::::::::::::'");
icount = icount + 1;
}
else if (bill.CARGOID == "R")
{
r.WriteLine("43:::::::::C:" + bill.TEMPSET + "::::::'");
icount = icount + 1;
}
r.WriteLine("44:" + formatEdiStr(bill.MARKS).Replace("//r//n", " ") + "'");
r.WriteLine("47:" + formatEdiStr(bill.DESCRIPTION).Replace("//r//n", " ") + "'");
icount = icount + 2;
foreach (var ctn in ctnlist)
{
var ctnstatus = "5";
if (ctn.STATUS == "E") ctnstatus = "4";
if (ctn.STATUS == "F") ctnstatus = "5";
r.WriteLine("51:1:" + ctn.CNTRNO + ":" + ctn.SEALNO + ":" + GetCtnEDICode(ctn.CTNALL) + ":" + ctnstatus + ":" + ctn.PKGS.ToString()
+ ":" + ctn.KGS.ToString() + ":0:" + ctn.CBM + ":::::::2'");
r.WriteLine("52:" + ctn.SEALNO + ":M:CA'");
icount = icount + 2;
}
}
r.WriteLine("99:" + icount.ToString() + "'");
r.Close();
f.Close();
return filename;
}
#endregion
#region 权限范围
public static string GetRangDAStr(string tb, string userid, string username, string companyid)
{
string str = "";
var strSql = new StringBuilder();
strSql.Append("SELECT ");
strSql.Append(" VISIBLERANGE,OPERATERANGE ");
strSql.Append(" from VW_User_Authority ");
if (tb == "audit")
{
strSql.Append(" where [NAME]='modSeaeOrderAudit' and USERID='" + userid + "' and ISDELETE=0");
}
else
{
strSql.Append(" where [NAME]='modSeaeOrderList' 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 = "1=2";
}
else if (visiblerange == "3")
{
str = " (OP='" + username + "' OR SALE='" + username + "')";
}
else if (visiblerange == "2")
{
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 = " (OP='" + Convert.ToString(reader["SHOWNAME"]) + "' OR SALE='" + Convert.ToString(reader["SHOWNAME"]) + "'";
}
else
{
str = str + " or OP='" + Convert.ToString(reader["SHOWNAME"]) + "' OR SALE='" + Convert.ToString(reader["SHOWNAME"]) + "' ";
};
}
str = str + ")";
reader.Close();
}
}
else if (visiblerange == "1")
{
var rangeDa = new RangeDA();
var userstr = new StringBuilder();
userstr.Append(" select SHOWNAME from [user] where GID in (select USERID from user_company where COMPANYID='" + companyid + "') ");
Database userdb = DatabaseFactory.CreateDatabase();
using (IDataReader reader = userdb.ExecuteReader(CommandType.Text, userstr.ToString()))
{
str = "";
while (reader.Read())
{
if (str == "")
{
str = " (OP='" + Convert.ToString(reader["SHOWNAME"]) + "' OR SALE='" + Convert.ToString(reader["SHOWNAME"]) + "'";
}
else
{
str = str + " or OP='" + Convert.ToString(reader["SHOWNAME"]) + "' OR SALE='" + Convert.ToString(reader["SHOWNAME"]) + "'";
};
}
str = str + ")";
reader.Close();
}
}
return str;
}
#endregion
#region 到货通知编码生成
public static string getREFNo(string strETD)
{
DateTime dETD = System.Convert.ToDateTime(strETD.Trim());
var strRULEYEAR = dETD.ToString("yy") + dETD.ToString("MM");
int iRULENOLENGTH =4;
int inum = 0;
2 years ago
var strCONTENT = "NOSIS" + strRULEYEAR;
3 years ago
string strRULENOLENGTH = "";
T_ALL_DA T_ALL_DA = new T_ALL_DA();
strRULENOLENGTH = T_ALL_DA.GetStrSQL("REFNO", "select top 1 REFNO from [op_sub_seaorder_arrival] where REFNO like '" + strCONTENT.Trim() + "%' order by REFNO DESC");
if (strRULENOLENGTH == "")
{
strRULENOLENGTH = "1";
}
else
{
strRULENOLENGTH = strRULENOLENGTH.Replace(strCONTENT.Trim(), "");
inum = int.Parse(strRULENOLENGTH.Trim());
inum = inum + 1;
strRULENOLENGTH = inum.ToString();
}
int j = iRULENOLENGTH - strRULENOLENGTH.Length;
for (int i = 1; i <= j; i++)
{
strRULENOLENGTH = "0" + strRULENOLENGTH;
}
//
strCONTENT = strCONTENT + strRULENOLENGTH;
return strCONTENT;
}
#endregion
public static bool ImportCtnData(string bsno, DataTable table, out string msg, out List<MsOpSubSeaOrderCtn> headList)
{
var isSucess = false;
msg = "";
headList = new List<MsOpSubSeaOrderCtn>();
if (table == null) throw new ArgumentNullException("table");
var billNoList = new List<string>();
Database db = DatabaseFactory.CreateDatabase();
var i = 1;
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
foreach (DataRow row in table.Rows)
{
var custName = Convert.ToString(row["CONTAINER NO"]);
if (custName != "")
{
#region 托单数据生成
//
var size = Convert.ToString(row["SIZE"]);
var type = Convert.ToString(row["TYPE"]);
var ctnall="";
if (type == "DR" && size == "22")
ctnall = "20GP";
else if (type == "DR" && (size == "42"||size == "40"))
ctnall = "40GP";
else if (type == "HC" && (size == "42"||size == "40"))
ctnall = "40HC";
else if (type == "HR" && (size == "42"||size=="40"))
ctnall = "40HR";
else ctnall = size + type;
var cmdInsert = db.GetSqlStringCommand(@"insert into op_seaorder_ctn (CTN_ID,BSNO,CTNCODE,CTNALL,CNTRNO,SEALNO,PKGS,KGS,CBM,REMARK,CTNSOURCE,STATUS) values (newid(),'" + bsno + "','" + i.ToString() + "','" + ctnall + "','" + Convert.ToString(row["CONTAINER NO"]) + "','','',0,0,'','','" + Convert.ToString(row["STATUS"]) + "')");
db.ExecuteNonQuery(cmdInsert, tran);
#endregion
}
i = i + 1;
}
tran.Commit();
getCNTRTOTAL(bsno, "op_sub_seaorder");
isSucess = true;
}
catch (Exception exception)
{
tran.Rollback();
isSucess = false;
msg = exception.Message;
}
}
return isSucess;
}
public static bool ImportCtnDataTOKYO(string bsno, DataTable table, out string msg, out List<MsOpSubSeaOrderCtn> headList)
{
var isSucess = false;
msg = "";
headList = new List<MsOpSubSeaOrderCtn>();
if (table == null) throw new ArgumentNullException("table");
var billNoList = new List<string>();
Database db = DatabaseFactory.CreateDatabase();
var i = 1;
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
foreach (DataRow row in table.Rows)
{
var custName = Convert.ToString(row["AECTNO"]);
if (custName != "")
{
#region 托单数据生成
//
var size = Convert.ToString(row["AESIZE"]);
var type = Convert.ToString(row["AETYPE"]);
var ctnall = "";
if (type == "DR" && size == "22")
ctnall = "20GP";
else if (type == "DR" && (size == "42" || size == "40" || size == "44"))
ctnall = "40GP";
else if (type == "HC" && (size == "42" || size == "40" || size == "44"))
ctnall = "40HC";
else if (type == "HR" && (size == "42" || size == "40" || size == "44"))
ctnall = "40HR";
else ctnall = size + type;
var cmdInsert = db.GetSqlStringCommand(@"insert into op_seaorder_ctn (CTN_ID,BSNO,CTNCODE,CTNALL,CNTRNO,SEALNO,PKGS,KGS,CBM,REMARK,CTNSOURCE,STATUS) values (newid(),'" + bsno + "','" + i.ToString() + "','" + ctnall + "','" + Convert.ToString(row["AECTNO"]) + "','','',0,0,'','','')");
db.ExecuteNonQuery(cmdInsert, tran);
#endregion
}
i = i + 1;
}
tran.Commit();
getCNTRTOTAL(bsno, "op_sub_seaorder");
isSucess = true;
}
catch (Exception exception)
{
tran.Rollback();
isSucess = false;
msg = exception.Message;
}
}
return isSucess;
}
public static bool ImportCtnDataOSAKA(string bsno, DataTable table, out string msg, out List<MsOpSubSeaOrderCtn> headList)
{
var isSucess = false;
msg = "";
headList = new List<MsOpSubSeaOrderCtn>();
if (table == null) throw new ArgumentNullException("table");
var billNoList = new List<string>();
Database db = DatabaseFactory.CreateDatabase();
var i = 1;
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
foreach (DataRow row in table.Rows)
{
var custName = Convert.ToString(row["EACTNO"]);
if (custName != "")
{
#region 托单数据生成
//
var size = Convert.ToString(row["EASIZE"]);
var type = Convert.ToString(row["EATYPE"]);
var ctnall = "";
if (type == "DR" && (size == "22"||size == "20"))
ctnall = "20GP";
else if (type == "RF" && (size == "22"||size == "20"))
ctnall = "20RF";
else if (type == "DR" && (size == "42" || size == "40"))
ctnall = "40GP";
else if (type == "DR" && (size == "40HC"))
ctnall = "40HC";
else if (type == "RF" && (size == "40HC"))
ctnall = "40HR";
else if (type == "RF" && (size == "40" || size == "42"))
ctnall = "40RF";
else ctnall = size + type;
var cmdInsert = db.GetSqlStringCommand(@"insert into op_seaorder_ctn (CTN_ID,BSNO,CTNCODE,CTNALL,CNTRNO,SEALNO,PKGS,KGS,CBM,REMARK,CTNSOURCE,STATUS) values (newid(),'" + bsno + "','" + i.ToString() + "','" + ctnall + "','" + Convert.ToString(row["EACTNO"]) + "','','',0,0,'','','')");
db.ExecuteNonQuery(cmdInsert, tran);
#endregion
}
i = i + 1;
}
tran.Commit();
getCNTRTOTAL(bsno, "op_sub_seaorder");
isSucess = true;
}
catch (Exception exception)
{
tran.Rollback();
isSucess = false;
msg = exception.Message;
}
}
return isSucess;
}
public static bool ImportCtnDataMOJI(string bsno, DataTable table, out string msg, out List<MsOpSubSeaOrderCtn> headList)
{
var isSucess = false;
msg = "";
headList = new List<MsOpSubSeaOrderCtn>();
if (table == null) throw new ArgumentNullException("table");
var billNoList = new List<string>();
Database db = DatabaseFactory.CreateDatabase();
var i = 1;
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
foreach (DataRow row in table.Rows)
{
var custName = Convert.ToString(row["コンテナ番号"]);
if (custName != "")
{
#region 托单数据生成
//
var size = Convert.ToString(row["サイズ"]);
var type = Convert.ToString(row["タイプ"]);
var ctnall = "";
if (type == "DRY" && (size == "22" || size == "20"))
ctnall = "20GP";
else if ((type == "RF" || type == "CR" || type == "HCR") && (size == "22" || size == "20"))
ctnall = "20RF";
else if (type == "DRY" && (size == "42" || size == "40"))
ctnall = "40GP";
else if (type == "HCD" && (size == "40"))
ctnall = "40HC";
else if (type == "HCR" && (size == "40"))
ctnall = "40HR";
else if ((type == "RF" || type == "CR") && (size == "40" || size == "42"))
ctnall = "40RF";
else ctnall = size + type;
var cmdInsert = db.GetSqlStringCommand(@"insert into op_seaorder_ctn (CTN_ID,BSNO,CTNCODE,CTNALL,CNTRNO,SEALNO,PKGS,KGS,CBM,REMARK,CTNSOURCE,STATUS) values (newid(),'" + bsno + "','" + i.ToString() + "','" + ctnall + "','" + Convert.ToString(row["コンテナ番号"]) + "','','',0,0,'','','')");
db.ExecuteNonQuery(cmdInsert, tran);
#endregion
}
i = i + 1;
}
tran.Commit();
getCNTRTOTAL(bsno, "op_sub_seaorder");
isSucess = true;
}
catch (Exception exception)
{
tran.Rollback();
isSucess = false;
msg = exception.Message;
}
}
return isSucess;
}
public static bool ImportCtnDataYOKOHAMA(string bsno, DataTable table, out string msg, out List<MsOpSubSeaOrderCtn> headList)
{
var isSucess = false;
msg = "";
headList = new List<MsOpSubSeaOrderCtn>();
if (table == null) throw new ArgumentNullException("table");
var billNoList = new List<string>();
Database db = DatabaseFactory.CreateDatabase();
var i = 1;
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
foreach (DataRow row in table.Rows)
{
var custName = Convert.ToString(row["Container No#"]);
if (custName != "")
{
#region 托单数据生成
//
var size = Convert.ToString(row["Size/Type"]);
var type = Convert.ToString(row["F4"]);
var ctnall = "";
if (type == "DRY" && (size == "22" || size == "20"))
ctnall = "20GP";
else if ((type == "RF" || type == "CR" || type == "F/R") && (size == "22" || size == "20"))
ctnall = "20RF";
else if ((type == "O/T") && (size == "22" || size == "20"))
ctnall = "20OT";
else if (type == "DRY" && (size == "42" || size == "40"))
ctnall = "40GP";
else if (type == "HCD" && (size == "40"))
ctnall = "40HC";
else if (type == "HCR" && (size == "40"))
ctnall = "40HR";
else if ((type == "RF" || type == "F/R") && (size == "40" || size == "42"))
ctnall = "40RF";
else if ((type == "O/T") && (size == "42" || size == "40"))
ctnall = "40OT";
else ctnall = size + type;
var cmdInsert = db.GetSqlStringCommand(@"insert into op_seaorder_ctn (CTN_ID,BSNO,CTNCODE,CTNALL,CNTRNO,SEALNO,PKGS,KGS,CBM,REMARK,CTNSOURCE,STATUS) values (newid(),'" + bsno + "','" + i.ToString() + "','" + ctnall + "','" + Convert.ToString(row["Container No#"]) + "','','',0,0,'','','')");
db.ExecuteNonQuery(cmdInsert, tran);
#endregion
}
i = i + 1;
}
tran.Commit();
getCNTRTOTAL(bsno, "op_sub_seaorder");
isSucess = true;
}
catch (Exception exception)
{
tran.Rollback();
isSucess = false;
msg = exception.Message;
}
}
return isSucess;
}
}
}