|
|
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 ");
|
|
|
|
|
|
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 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 ");
|
|
|
|
|
|
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 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");
|
|
|
|
|
|
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(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"]);//卸货代理
|
|
|
|
|
|
if (reader["SPCHARGE"] != DBNull.Value)
|
|
|
data.SPCHARGE = Convert.ToBoolean(reader["SPCHARGE"]);
|
|
|
|
|
|
#endregion
|
|
|
headList.Add(data);
|
|
|
}
|
|
|
reader.Close();
|
|
|
}
|
|
|
return headList;
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#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;//接单日期
|
|
|
headList.MBLNO ="32ES"+bill.MBLNO;//主提单号
|
|
|
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 ");
|
|
|
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")
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
else if (visiblerange == "1")
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
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;
|
|
|
var strCONTENT = "CWJIS" + strRULEYEAR;
|
|
|
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;
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
}
|