|
|
using System;
|
|
|
using System.Linq;
|
|
|
using System.Web.Mvc;
|
|
|
|
|
|
using DSWeb.TruckMng.Comm.Cookie;
|
|
|
using DSWeb.TruckMng.Helper;
|
|
|
using DSWeb.TruckMng.Helper.Repository;
|
|
|
|
|
|
using DSWeb.MvcShipping.Models.MsOpSeae;
|
|
|
using DSWeb.MvcShipping.Models.MsOpSeai;
|
|
|
using DSWeb.Areas.MvcShipping.DAL.BookingConfirm;
|
|
|
using DSWeb.MvcShipping.Models.BookingConfirm;
|
|
|
using HcUtility.Core;
|
|
|
using System.Collections.Generic;
|
|
|
using HcUtility.Comm;
|
|
|
using DSWeb.MvcShipping.DAL.MsSysBillNoSet;
|
|
|
using DSWeb.Dispatch.DAL;
|
|
|
using DSWeb.MvcShipping.Models.MsSeaeOrder;
|
|
|
using System.Data.Entity;
|
|
|
using Microsoft.Practices.EnterpriseLibrary.Data;
|
|
|
using DSWeb.Areas.CommMng.DAL;
|
|
|
using DSWeb.MvcShipping.DAL.MsOpSeaeDAL;
|
|
|
using DSWeb.MvcShipping.DAL.MsSysParamSet;
|
|
|
using DSWeb.MvcShipping.DAL.MsBaseInfoDAL;
|
|
|
using MsOpSeaeDAL = DSWeb.MvcShipping.DAL.MsOpSeaeDAL.MsOpSeaeDAL;
|
|
|
using DSWeb.MvcShipping.DAL.MsInfoClient;
|
|
|
using DSWeb.SoftMng.DAL.SoftSysTable;
|
|
|
using DSWeb.EntityDA;
|
|
|
using DSWeb.Areas.MvcShipping.DAL;
|
|
|
using System.Text;
|
|
|
using DSWeb.MvcShipping.Models.MsOpSeaeBill;
|
|
|
using DSWeb.MvcShipping.DAL.MsOpSeaeEdiPortDAL;
|
|
|
using BookingWeb.DB;
|
|
|
using BookingWeb.DB.Model;
|
|
|
using DSWeb.MvcShipping.DAL.DsSendmail;
|
|
|
using DSWeb.MvcShipping.DAL.MsChFeeYsAutoDui;
|
|
|
using DSWeb.Areas.SysMng.DAL.SysUser;
|
|
|
|
|
|
namespace DSWeb.MvcShipping.Controllers
|
|
|
{
|
|
|
public class BookingConfirmController : Controller
|
|
|
{
|
|
|
//
|
|
|
// GET:
|
|
|
public ActionResult Index ( )
|
|
|
{
|
|
|
return View();
|
|
|
}
|
|
|
//
|
|
|
|
|
|
public ActionResult Edit()
|
|
|
{
|
|
|
return View();
|
|
|
}
|
|
|
|
|
|
public ActionResult Index_SI()
|
|
|
{
|
|
|
return View();
|
|
|
}
|
|
|
//
|
|
|
|
|
|
public ActionResult Edit_SI()
|
|
|
{
|
|
|
return View();
|
|
|
}
|
|
|
//
|
|
|
public ActionResult OpCtnDetailEdit()
|
|
|
{
|
|
|
return View();
|
|
|
}
|
|
|
|
|
|
#region 订舱 订舱审核
|
|
|
/// <summary>
|
|
|
/// 从订舱平台获取向本公司订舱的所有订舱信息,默认条件:业务状态BSSTATUS不为create
|
|
|
/// </summary>
|
|
|
/// <param name="condition"></param>
|
|
|
/// <returns></returns>
|
|
|
public ContentResult GetBookingList (int start, int limit, string BOOKING_COMPANYID, string condition,string sort="")
|
|
|
{
|
|
|
//var dataList = MsChDuiDAL.GetDataList(start, limit, condition, Convert.ToString(Session["USERID"]), Convert.ToString(Session["SHOWNAME"]), CookieConfig.GetCookie_OrgCode(Request), sort);
|
|
|
//int count = MsChDuiDAL.getTotalCount(condition, Convert.ToString(Session["USERID"]), Convert.ToString(Session["SHOWNAME"]), CookieConfig.GetCookie_OrgCode(Request));
|
|
|
|
|
|
var dataList = BookingConfirmDAL.GetBookingList( condition, Convert.ToString(Session["USERID"]), sort);
|
|
|
|
|
|
var list_2 = ModelObjectBill.getDicList(ModelObjectConvert<BookingConfirmmb>.ToModelObjectList(dataList));
|
|
|
var list_3 = list_2.Skip(start).Take(limit);
|
|
|
|
|
|
var json = JsonConvert.Serialize(new { Success = true, Message = "查询成功", totalCount = dataList.Count(), data = list_3.ToList()});
|
|
|
return new ContentResult() { Content = json };
|
|
|
}
|
|
|
public ContentResult GetBookingData(string BOOKING_COMPANYID, string condition, string sort = "")
|
|
|
{
|
|
|
//var dataList = MsChDuiDAL.GetDataList(start, limit, condition, Convert.ToString(Session["USERID"]), Convert.ToString(Session["SHOWNAME"]), CookieConfig.GetCookie_OrgCode(Request), sort);
|
|
|
//int count = MsChDuiDAL.getTotalCount(condition, Convert.ToString(Session["USERID"]), Convert.ToString(Session["SHOWNAME"]), CookieConfig.GetCookie_OrgCode(Request));
|
|
|
|
|
|
var dataList = BookingConfirmDAL.GetBookingList(condition, Convert.ToString(Session["USERID"]), sort);
|
|
|
|
|
|
var list_2 = ModelObjectBill.getDicList(ModelObjectConvert<BookingConfirmmb>.ToModelObjectList(dataList));
|
|
|
|
|
|
if (list_2.Count > 0)
|
|
|
{
|
|
|
var resultdata = list_2[0];
|
|
|
|
|
|
var json = JsonConvert.Serialize(new { Success = true, Message = "查询成功", totalCount = 0, data = resultdata });
|
|
|
return new ContentResult() { Content = json };
|
|
|
}
|
|
|
else {
|
|
|
var json = JsonConvert.Serialize(new { Success = true, Message = "查询成功", totalCount = 0, data = "" });
|
|
|
return new ContentResult() { Content = json };
|
|
|
}
|
|
|
}
|
|
|
|
|
|
private BookingConfirmmb GetBookingData(string condition, string sort = "")
|
|
|
{
|
|
|
var dataList = BookingConfirmDAL.GetBookingList(condition, Convert.ToString(Session["USERID"]), sort);
|
|
|
|
|
|
|
|
|
if (dataList.Count > 0)
|
|
|
{
|
|
|
var resultdata = dataList[0];
|
|
|
return resultdata;
|
|
|
}
|
|
|
else {
|
|
|
return new BookingConfirmmb();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**************************************/
|
|
|
/* 审核订舱 */
|
|
|
/**************************************/
|
|
|
public ContentResult AuditWebOrderForm(string data, string data2, string body, string accdate, string op, string custservice, string sale)
|
|
|
{
|
|
|
DBResult result = new DBResult();
|
|
|
var BSNO = "";
|
|
|
var modb = new ModelObjectRepository();
|
|
|
Microsoft.Practices.EnterpriseLibrary.Data.Database db = DatabaseFactory.CreateDatabase();
|
|
|
|
|
|
var head = new BookingConfirmmb();
|
|
|
var headDataStr = data.Replace("}", ",") + data2.Replace("{", "");
|
|
|
head.SetValue(db, headDataStr);
|
|
|
|
|
|
|
|
|
var candoresult = BookingConfirmDAL.Order_CanConfirm(head.GetValue("BSNO"), OrderStatus.Confirm.ToString());
|
|
|
if (candoresult.Success == false) {
|
|
|
var jsonRespose = new JsonResponse();
|
|
|
jsonRespose.SetDBResult(candoresult);
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
|
|
|
}
|
|
|
|
|
|
var _op = SysUserDAL.GetData(" SHOWNAME='" + op + "'");
|
|
|
|
|
|
var OrderData = head;//JsonConvert.Deserialize<BookingConfirmmb>(data.Replace("}", ",") + data2.Replace("{", ""));
|
|
|
|
|
|
var basebody = new Booking_Ctnmb();
|
|
|
basebody.GetTableField(db);
|
|
|
var bodyList = new List<Booking_Ctnmb>();
|
|
|
|
|
|
if (body != "")
|
|
|
{
|
|
|
var savedl = JsonConvert.Deserialize<List<Dictionary<string, string>>>(body);
|
|
|
foreach (var sdl in savedl)
|
|
|
{
|
|
|
var _body = new Booking_Ctnmb();
|
|
|
basebody.Copy(_body);
|
|
|
_body.SetValue(sdl);
|
|
|
bodyList.Add(_body);
|
|
|
}
|
|
|
}
|
|
|
//var bodyList = JsonConvert.Deserialize<List<Booking_Ctnmb>>(body);
|
|
|
|
|
|
var headData = new MsOpSeae();
|
|
|
//var headData2 = new MsOpSeai();
|
|
|
var headData2 = new MsOpSeai();
|
|
|
|
|
|
headData.CORPID = Convert.ToString(Session["COMPANYID"]);
|
|
|
|
|
|
headData.INPUTBY = Convert.ToString(Session["SHOWNAME"]);
|
|
|
headData.BSDATE = DateTime.Now;
|
|
|
headData.BSSTATUS = false;
|
|
|
headData.FEESTATUS = false;
|
|
|
headData.DbOperationType = DbOperationType.DbotIns;
|
|
|
|
|
|
BSNO= "topseae" + Guid.NewGuid().ToString();
|
|
|
headData.BSNO = BSNO;//获得新的海运出口业务编号;
|
|
|
headData.MBLNO = OrderData.GetValue("MBLNO");
|
|
|
headData.HBLNO = OrderData.GetValue("HBLNO");
|
|
|
headData.CUSTOMERNAME = OrderData.GetValue("CUSTOMERNAME");
|
|
|
headData.ORDERNO = OrderData.GetValue("ORDERNO");
|
|
|
headData.ORDERTYPE = "网上订舱";
|
|
|
|
|
|
headData.SHIPPER = OrderData.GetValue("SHIPPER");
|
|
|
headData.CONSIGNEE = OrderData.GetValue("CONSIGNEE");
|
|
|
headData.NOTIFYPARTY = OrderData.GetValue("NOTIFYPARTY");
|
|
|
headData.VESSEL = OrderData.GetValue("VESSEL");
|
|
|
headData.VOYNO = OrderData.GetValue("VOYNO");
|
|
|
headData.ETD = OrderData.GetValue("ETD");
|
|
|
headData.PORTLOADID = OrderData.GetValue("PORTLOADID");
|
|
|
headData.PORTLOAD = OrderData.GetValue("PORTLOAD");
|
|
|
headData.PORTDISCHARGEID = OrderData.GetValue("PORTDISCHARGEID");
|
|
|
headData.PORTDISCHARGE = OrderData.GetValue("PORTDISCHARGE");
|
|
|
headData.PLACERECEIPT = OrderData.GetValue("PLACERECEIPT");
|
|
|
headData.PLACERECEIPTID = OrderData.GetValue("PLACERECEIPTID");
|
|
|
headData.PLACEDELIVERYID = OrderData.GetValue("PLACEDELIVERYID");
|
|
|
headData.PLACEDELIVERY = OrderData.GetValue("PLACEDELIVERY");
|
|
|
headData.DESTINATIONID = OrderData.GetValue("DESTINATIONID");
|
|
|
headData.DESTINATION = OrderData.GetValue("DESTINATION");
|
|
|
headData.NOBILL = OrderData.GetValue("NOBILL");
|
|
|
headData.ISSUETYPE = OrderData.GetValue("ISSUETYPE");
|
|
|
headData.ISSUEDATE = OrderData.GetValue("ISSUEDATE");
|
|
|
headData.ISSUEPLACE = OrderData.GetValue("ISSUEPLACE");
|
|
|
headData.ISSUEPLACEID = OrderData.GetValue("ISSUEPLACEID");
|
|
|
headData.BLFRT = OrderData.GetValue("BLFRT");
|
|
|
headData.PREPARDAT = OrderData.GetValue("PREPARDAT");
|
|
|
headData.PAYABLEAT = OrderData.GetValue("PAYABLEAT");
|
|
|
headData.COPYNOBILL = OrderData.GetValue("COPYNOBILL");
|
|
|
|
|
|
headData.SERVICE = OrderData.GetValue("SERVICE");
|
|
|
headData.MARKS = OrderData.GetValue("MARKS");
|
|
|
headData.NOPKGS = OrderData.GetValue("NOPKGS");
|
|
|
headData.DESCRIPTION = OrderData.GetValue("DESCRIPTION");
|
|
|
headData.GOODSNAME = OrderData.GetValue("GOODSNAME");
|
|
|
headData.GROSSWEIGHT = OrderData.GetValue("GROSSWEIGHT");
|
|
|
headData.MEASUREMENT = OrderData.GetValue("");
|
|
|
headData.PKGS = OrderData.GetValue("PKGS");
|
|
|
headData.KINDPKGS = OrderData.GetValue("KINDPKGS");
|
|
|
headData.KGS = OrderData.GetValue("KGS");
|
|
|
headData.CBM = OrderData.GetValue("CBM");
|
|
|
headData.TOTALNO = OrderData.GetValue("TOTALNO");
|
|
|
headData.CNTRTOTAL = OrderData.GetValue("CNTRTOTAL");
|
|
|
headData.CARRIER = OrderData.GetValue("CARRIER");
|
|
|
headData.CARGOID = OrderData.GetValue("CARGOID");
|
|
|
headData.HSCODE = OrderData.GetValue("HSCODE");
|
|
|
headData.DCLASS = OrderData.GetValue("DCLASS");
|
|
|
headData.DPAGE = OrderData.GetValue("DPAGE");
|
|
|
headData.DUNNO = OrderData.GetValue("DUNNO");
|
|
|
headData.DLABEL = OrderData.GetValue("DLABEL");
|
|
|
headData.LINKMAN = OrderData.GetValue("LINKMAN");
|
|
|
headData.REEFERF = OrderData.GetValue("REEFERF");
|
|
|
headData.TEMPID = OrderData.GetValue("TEMPID");
|
|
|
headData.TEMPSET = OrderData.GetValue("TEMPSET");
|
|
|
headData.TEMPMAX = OrderData.GetValue("TEMPMAX");
|
|
|
headData.TEMPMIN = OrderData.GetValue("TEMPMIN");
|
|
|
//headData.CUSTOMSNUM = OrderData.GetValue("CUSTOMSNUM");
|
|
|
headData.REMARK = OrderData.GetValue("REMARK");//备注
|
|
|
|
|
|
headData.ISFUMIGATION = OrderData.GetBoolen("ISFUMIGATION");//熏蒸
|
|
|
headData.ISSTORAGE = OrderData.GetBoolen("ISSTORAGE");//仓储
|
|
|
headData.ISLAND = OrderData.GetBoolen("ISLAND");//陆运
|
|
|
headData.ISCUSTOMS = OrderData.GetBoolen("ISCUSTOMS");//报关
|
|
|
headData.ISINSPECTION = OrderData.GetBoolen("ISINSPECTION");//报检
|
|
|
headData.ISBOOKING = OrderData.GetBoolen("ISBOOKING");//订舱
|
|
|
headData.ISAGENT = OrderData.GetBoolen("ISAGENT");//使用代理
|
|
|
headData.ISHBLNO = OrderData.GetBoolen("ISHBLNO");//分单签单
|
|
|
headData.SERVICE9 = OrderData.GetBoolen("SERVICE9");//服务项目9
|
|
|
headData.SERVICE10 = OrderData.GetBoolen("SERVICE10");//服务项目10
|
|
|
headData.STLNAME = OrderData.GetValue("STLNAME");//结算方式
|
|
|
headData.STLDATE = OrderData.GetValue("STLDATE");//结算时间
|
|
|
//headData.SALE = OrderData.SALE");//揽货人
|
|
|
headData.PACKINGTYPE = OrderData.GetValue("PACKINGTYPE");//装箱类型
|
|
|
headData.BLTYPE = "整箱";//装运方式
|
|
|
headData.OP = op;//T_ALL_DA.GetShowName(op); ////操作员
|
|
|
headData.CUSTSERVICE = custservice;//T_ALL_DA.GetShowName(custservice);//客服员
|
|
|
headData.SALE = sale;
|
|
|
//headData.DOC = OrderData.DOC");//单证
|
|
|
headData.CONTRACTNO = OrderData.GetValue("CONTRACTNO");
|
|
|
|
|
|
headData.EDIREMARK = OrderData.GetValue("EDIREMARK");
|
|
|
|
|
|
|
|
|
if (headData.MASTERNO == null || headData.MASTERNO == "") { headData.MASTERNO = headData.BSNO; }
|
|
|
|
|
|
if (headData.ETA == "") headData.ETA = null;
|
|
|
if (headData.ETD == "") headData.ETD = null;
|
|
|
if (headData.STLDATE == "") headData.STLDATE = null;
|
|
|
|
|
|
if (headData.ISSUEDATE == "") headData.ISSUEDATE = null;
|
|
|
if (headData.CLOSINGDATE == "") headData.CLOSINGDATE = null;
|
|
|
|
|
|
|
|
|
var billnoset = MsSysBillNoSetDAL.GetData("OPLBNAME='海运出口' AND RULEBLNO='委托编号'", Convert.ToString(Session["COMPANYID"]));
|
|
|
if (billnoset.BILLTYPE != "")
|
|
|
headData.CUSTNO = MsSysBillNoSetDAL.GetBillNo(billnoset, headData.ETD.ToString().Trim(), accdate);
|
|
|
else
|
|
|
{
|
|
|
var jsonRespose = new JsonResponse
|
|
|
{
|
|
|
Success = false,
|
|
|
Message = "请先设定当前公司的海运出口编码规则",
|
|
|
Data = null
|
|
|
};
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
|
|
|
}
|
|
|
|
|
|
headData.ACCDATE = accdate;
|
|
|
|
|
|
//var modb = new ModelObjectDB();
|
|
|
result = modb.Save(headData);
|
|
|
BSNO = headData.BSNO;
|
|
|
|
|
|
//DoingOrder.Del(head.GetValue("ORDERNO"));
|
|
|
|
|
|
if (result.Success == true && !string.IsNullOrEmpty(body))
|
|
|
{
|
|
|
//引入箱明细
|
|
|
List<MsOpSeaeDetail> ctnlist = new List<MsOpSeaeDetail>();
|
|
|
|
|
|
foreach (var item in bodyList)
|
|
|
{
|
|
|
var ctn = new MsOpSeaeDetail();
|
|
|
ctn.GID = System.Guid.NewGuid().ToString();
|
|
|
ctn.CTN_ID = ctn.GID;
|
|
|
ctn.BSNO = "*";//用来令其执行insert操作
|
|
|
ctn.SIZE = item.GetValue("SIZE");
|
|
|
ctn.CTN = item.GetValue("CTN");
|
|
|
ctn.CTNNUM = item.GetInt32("CTNNUM");
|
|
|
ctn.TEU = item.GetInt32("TEU");
|
|
|
ctn.PKGS = item.GetInt32("PKGS");
|
|
|
ctn.KGS = item.GetInt32("KGS");
|
|
|
ctn.CBM = item.GetInt32("CBM");
|
|
|
ctn.REMARK = item.GetValue("REMARK");
|
|
|
ctn.CTNALL = item.GetValue("CTNALL");
|
|
|
|
|
|
ctnlist.Add(ctn);
|
|
|
}
|
|
|
result = DSWeb.MvcShipping.DAL.MsOpSeaeDAL.MsOpSeaeDAL.SaveDetail(BSNO, ctnlist, CookieConfig.GetCookie_UserId(Request), true);
|
|
|
}
|
|
|
|
|
|
|
|
|
if (result.Success == true)
|
|
|
{
|
|
|
//Audit_SaveBack(OrderData, "Confirm", headData.BSNO);
|
|
|
BookingConfirmDAL.BookingStatus_Order(OrderData.GetValue("ORDNO"), headData.BSNO, OrderStatus.Confirm.ToString(), Session["COMPANYNAME"].ToString(),_op.EMAIL1);
|
|
|
|
|
|
|
|
|
var email = head.GetValue("OPERATOREMAIL");
|
|
|
var _r = BookingConfirmDAL.SendMail_Order(head.GetValue("ORDNO"), "接受订舱", "", email, Session["USERID"].ToString(), Session["COMPANYNAME"].ToString(), headData);
|
|
|
|
|
|
var datareturn = GetBookingData(" ORDNO='"+ OrderData.GetValue("ORDNO") + "'","").ExtendDic;
|
|
|
var jsonRespose = new JsonResponse
|
|
|
{
|
|
|
Success = result.Success,
|
|
|
Message = result.Message,
|
|
|
Data = datareturn
|
|
|
};
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
var jsonRespose = new JsonResponse
|
|
|
{
|
|
|
Success = result.Success,
|
|
|
Message = result.Message,
|
|
|
Data = ""
|
|
|
};
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
public ContentResult AuditWebOrderBack(string data, string data2,string orreason,string email)
|
|
|
{
|
|
|
Microsoft.Practices.EnterpriseLibrary.Data.Database db = DatabaseFactory.CreateDatabase();
|
|
|
var head = new BookingConfirmmb();
|
|
|
var headDataStr = data.Replace("}", ",") + data2.Replace("{", "");
|
|
|
head.SetValue(db, headDataStr);
|
|
|
|
|
|
var candoresult = BookingConfirmDAL.Order_CanConfirm(head.GetValue("BSNO"), OrderStatus.Back.ToString());
|
|
|
if (candoresult.Success == false)
|
|
|
{
|
|
|
var jsonRespose1 = new JsonResponse();
|
|
|
jsonRespose1.SetDBResult(candoresult);
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose1) };
|
|
|
}
|
|
|
|
|
|
BookingConfirmDAL.BookingStatus_Order(head.GetValue("ORDNO"),head.GetValue("BSNO"), OrderStatus.Back.ToString(),Session["COMPANYNAME"].ToString());
|
|
|
//Audit_SaveBack(head, "Back","", orreason);
|
|
|
|
|
|
//DoingOrder.Del(head.GetValue("ORDERNO"));
|
|
|
|
|
|
var datareturn = GetBookingData(" ORDNO='" + head.GetValue("ORDNO") + "'", "").ExtendDic;
|
|
|
|
|
|
var _r = BookingConfirmDAL.SendMail_Order(head.GetValue("ORDNO"), "驳回订舱", orreason, email,Session["USERID"].ToString(),Session["COMPANYNAME"].ToString());
|
|
|
|
|
|
|
|
|
|
|
|
var jsonRespose = new JsonResponse
|
|
|
{
|
|
|
Success = true,
|
|
|
Message = "驳回成功",
|
|
|
Data = datareturn
|
|
|
};
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 后处理 已不再使用
|
|
|
/// </summary>
|
|
|
/// <param name="ORDNO"></param>
|
|
|
private void Audit_SaveBack(BookingConfirmmb Bookinghead, string audittype, string BSNO="",string ORREASON="")
|
|
|
{
|
|
|
var str = string.Format(" update OP_SEAE_ORDER set BSNO='{1}',BSSTATUS='{2}' where ORDNO='{0}' ", Bookinghead.GetValue("ORDNO"),BSNO, audittype);
|
|
|
BasicDataRefDAL.ExecSql_DB(str, "BookingDB");
|
|
|
}
|
|
|
|
|
|
|
|
|
public class DoingOrder
|
|
|
{
|
|
|
|
|
|
private static List<string> ORDERNOList { get; set; }
|
|
|
|
|
|
private static void makesureHave()
|
|
|
{
|
|
|
if (ORDERNOList == null)
|
|
|
ORDERNOList = new List<string>();
|
|
|
}
|
|
|
|
|
|
public static bool IsDoing(string ORDERNO)
|
|
|
{
|
|
|
makesureHave();
|
|
|
|
|
|
return ORDERNOList.Exists(x => x == ORDERNO);
|
|
|
}
|
|
|
|
|
|
public static void Add(string ORDERNO)
|
|
|
{
|
|
|
makesureHave();
|
|
|
|
|
|
ORDERNOList.Add(ORDERNO);
|
|
|
}
|
|
|
|
|
|
public static void Del(string ORDERNO)
|
|
|
{
|
|
|
makesureHave();
|
|
|
|
|
|
ORDERNOList.RemoveAll(x => x == ORDERNO);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
#region 提单确认
|
|
|
/// <summary>
|
|
|
/// 从订舱平台获取向本公司订舱的所有订舱信息,默认条件:业务状态BSSTATUS不为create
|
|
|
/// </summary>
|
|
|
/// <param name="condition"></param>
|
|
|
/// <returns></returns>
|
|
|
public ContentResult GetBooking_SIList(int start, int limit, string BOOKING_COMPANYID, string condition, string sort = "")
|
|
|
{
|
|
|
//var dataList = MsChDuiDAL.GetDataList(start, limit, condition, Convert.ToString(Session["USERID"]), Convert.ToString(Session["SHOWNAME"]), CookieConfig.GetCookie_OrgCode(Request), sort);
|
|
|
//int count = MsChDuiDAL.getTotalCount(condition, Convert.ToString(Session["USERID"]), Convert.ToString(Session["SHOWNAME"]), CookieConfig.GetCookie_OrgCode(Request));
|
|
|
|
|
|
var dataList = BookingConfirmDAL.GetBooking_SIList(condition, Convert.ToString(Session["USERID"]), sort);
|
|
|
|
|
|
var list_2 = ModelObjectBill.getDicList(ModelObjectConvert<Booking_OP_SEAE_SImb>.ToModelObjectList(dataList));
|
|
|
var list_3 = list_2.Skip(start).Take(limit);
|
|
|
|
|
|
var json = JsonConvert.Serialize(new { Success = true, Message = "查询成功", totalCount = dataList.Count(), data = list_3.ToList() });
|
|
|
return new ContentResult() { Content = json };
|
|
|
|
|
|
}
|
|
|
public ContentResult GetBooking_SIData(string BOOKING_COMPANYID, string condition, string sort = "") //, string SIFieldList
|
|
|
{
|
|
|
//var dataList = MsChDuiDAL.GetDataList(start, limit, condition, Convert.ToString(Session["USERID"]), Convert.ToString(Session["SHOWNAME"]), CookieConfig.GetCookie_OrgCode(Request), sort);
|
|
|
//int count = MsChDuiDAL.getTotalCount(condition, Convert.ToString(Session["USERID"]), Convert.ToString(Session["SHOWNAME"]), CookieConfig.GetCookie_OrgCode(Request));
|
|
|
|
|
|
var dataList = BookingConfirmDAL.GetBooking_SIList(condition, Convert.ToString(Session["USERID"]), sort);
|
|
|
|
|
|
var list_2 = ModelObjectBill.getDicList(ModelObjectConvert<Booking_OP_SEAE_SImb>.ToModelObjectList(dataList));
|
|
|
Dictionary<string, string> resultdata = list_2[0];
|
|
|
Dictionary<string, string> t_dic = new Dictionary<string, string>(resultdata);
|
|
|
|
|
|
//var HeadSIFieldList = JsonConvert.Deserialize<List<DiffFieldmb>>(SIFieldList);
|
|
|
|
|
|
//给前台需要打勾的复选框赋值
|
|
|
foreach (var item in t_dic)
|
|
|
{
|
|
|
resultdata.Add("IS" + item.Key, "1");
|
|
|
}
|
|
|
|
|
|
var json = JsonConvert.Serialize(new { Success = true, Message = "查询成功", totalCount = dataList.Count(), data = resultdata });
|
|
|
return new ContentResult() { Content = json };
|
|
|
}
|
|
|
|
|
|
#region 保存
|
|
|
|
|
|
public ContentResult SaveSI(string SINO ,string data1,string data2,string SIFieldList, string CtnFieldList, string CtnDetailFieldList,string DelMore="false")
|
|
|
{
|
|
|
//远程SI的SINO,需要将SI信息同步至本地的字段名列表,需要将SI的CTN信息同步至本地的字段名列表,需要将SI的CTNDetail信息同步至本地的字段名列表,
|
|
|
//是否需要
|
|
|
var HeadSIFieldList = JsonConvert.Deserialize<List<DiffFieldmb>>(SIFieldList);
|
|
|
var CtnSIFieldList = JsonConvert.Deserialize<List<DiffFieldmb>>(CtnFieldList);
|
|
|
var CtnDetailSIFieldList = JsonConvert.Deserialize<List<DiffFieldmb>>(CtnDetailFieldList);
|
|
|
|
|
|
var DiffData = JsonConvert.Deserialize<DiffCheckmb>(data1.Replace("}", ",") + data2.Replace("{", ""));
|
|
|
|
|
|
|
|
|
var dataList_1 = BookingConfirmDAL.GetBooking_SIList(" SINO='"+ SINO + "'", Convert.ToString(Session["USERID"]), "");
|
|
|
var list_1 = ModelObjectBill.getDicList(ModelObjectConvert<Booking_OP_SEAE_SImb>.ToModelObjectList(dataList_1));
|
|
|
var SIData = list_1[0];//SI 提单确认数据
|
|
|
|
|
|
var result = new DBResult();
|
|
|
var jsonRespose = new JsonResponse
|
|
|
{
|
|
|
Success = false,
|
|
|
Message = "",
|
|
|
Data = ""
|
|
|
};
|
|
|
|
|
|
var cando = BookingConfirmDAL.SI_CanConfirm(SIData["SINO"], OrderConfirmStatus.Confirm.ToString());
|
|
|
if (!cando.Success)
|
|
|
{
|
|
|
jsonRespose.SetDBResult(cando);
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
var dataList_2 = BookingConfirmDAL.GetCtnList(" ORDNO='" + SINO + "'", "");
|
|
|
//SI CTN数据
|
|
|
var SICtnList = ModelObjectBill.getDicList(ModelObjectConvert<Booking_Ctnmb>.ToModelObjectList(dataList_2));
|
|
|
|
|
|
var dataList_3 = BookingConfirmDAL.GetCtnDetailList(" CTN_ID in(select CTN_ID from OP_CTN where ORDNO='" + SINO + "')", Convert.ToString(Session["USERID"]), "");
|
|
|
//SI 多品名数据
|
|
|
var SICtnDetailList = ModelObjectBill.getDicList(ModelObjectConvert<Booking_CtnDetailmb>.ToModelObjectList(dataList_3));
|
|
|
|
|
|
|
|
|
|
|
|
var BillData = new MsOpSeaeBill();
|
|
|
var OpSeaeData = new MsOpSeae();
|
|
|
var OpSeaeAms = new MsOpSeaeAms();
|
|
|
var CtnCondition = "";
|
|
|
var CtnDetailCondition = "";
|
|
|
|
|
|
var DelCtnList = new List<MsOpSeaeDetail>();//需要删除的多余ctn信息
|
|
|
var DelCtnDetailList = new List<MsOpCtnDetail>();//需要删除的多余ctnDetail信息
|
|
|
|
|
|
|
|
|
OpSeaeData = MsOpSeaeDAL.GetData(" BSNO = '" + SIData["ORDER_BSNO"] + "'");
|
|
|
|
|
|
|
|
|
OpSeaeAms = MsOpSeaeEdiPortDAL.GetAmsData(" BSNO = '" + SIData["ORDER_BSNO"] + "'");
|
|
|
if (OpSeaeAms.BSNO == "")
|
|
|
{
|
|
|
OpSeaeAms.AMSNO = System.Guid.NewGuid().ToString();
|
|
|
OpSeaeAms.BSNO = SIData["ORDER_BSNO"];
|
|
|
OpSeaeAms.DbOperationType = DbOperationType.DbotIns;
|
|
|
}
|
|
|
|
|
|
|
|
|
//本地 OPSEAE数据/提单信息数据
|
|
|
if (SIData["ISMULTI"] == "true")
|
|
|
{
|
|
|
//使用提单信息 提单信息下的集装箱信息 集装箱明细(附着于OP_SEAE的,通过CNTRNO箱号关联)
|
|
|
BillData = MsOpSeaeDAL.GetBillData(" MBLNO = '" + SIData["MBLNO"] + "' ");
|
|
|
if (BillData.MBLNO == "") {
|
|
|
//代表需要新建一条提单信息
|
|
|
BillData.MBLNO = SIData["MBLNO"];
|
|
|
BillData.BSNO = SIData["ORDER_BSNO"];
|
|
|
BillData.AS_ID = System.Guid.NewGuid().ToString();
|
|
|
BillData.DbOperationType = DbOperationType.DbotIns;
|
|
|
}
|
|
|
|
|
|
CtnCondition = " BSNO = '" + BillData.AS_ID + "' ";
|
|
|
CtnDetailCondition = "CTN_ID in(select CTN_ID from op_ctn where " + CtnCondition + ") ";
|
|
|
}
|
|
|
else {
|
|
|
CtnCondition = " BSNO = '" + OpSeaeData.BSNO + "' ";
|
|
|
CtnDetailCondition = "CTN_ID in(select CTN_ID from op_ctn where " + CtnCondition + ") ";
|
|
|
}
|
|
|
|
|
|
|
|
|
var CtnList = MsOpSeaeDAL.GetBodyList(CtnCondition);
|
|
|
//var HeadCtnList = MsOpSeaeDAL.GetBodyList("CTN_ID in(select CTN_ID from op_ctn where BSNO = '" + OpSeaeData.BSNO + "') ");
|
|
|
|
|
|
//当前正在同步的业务的多品名信息(可能是主业务的,也可能是一条提单信息下的)
|
|
|
var CtnDetailList = MsOpSeaeDAL.GetOpCtnDetailList(CtnDetailCondition);
|
|
|
|
|
|
var ChangeCtnDetailList = new List<MsOpCtnDetail>();
|
|
|
|
|
|
var ctnParentIDValue = "";
|
|
|
|
|
|
//1: 遍历 字段名 列表 将相应值赋给对象里的相应对象
|
|
|
if (SIData["ISMULTI"] == "true")
|
|
|
{
|
|
|
foreach (var item in HeadSIFieldList)
|
|
|
{
|
|
|
|
|
|
if (!DiffData.getChecked(item.FieldName)) continue;
|
|
|
|
|
|
if (item.FieldName == "PKGS") {
|
|
|
BillData.SetPropertyValue("PKGS",Convert.ToInt32(DiffFieldmb.GetValue(HeadSIFieldList, SIData, "PKGS")));
|
|
|
}
|
|
|
else
|
|
|
if (item.FieldName == "KGS")
|
|
|
{
|
|
|
BillData.SetPropertyValue("KGS", Convert.ToDecimal(DiffFieldmb.GetValue(HeadSIFieldList, SIData, "KGS")));
|
|
|
}
|
|
|
else
|
|
|
if (item.FieldName == "CBM")
|
|
|
{
|
|
|
BillData.SetPropertyValue("CBM", Convert.ToDecimal(DiffFieldmb.GetValue(HeadSIFieldList, SIData, "CBM")));
|
|
|
}
|
|
|
else
|
|
|
BillData.SetPropertyValue(item.FieldName, DiffFieldmb.GetValue(HeadSIFieldList, SIData, item.FieldName));
|
|
|
}
|
|
|
//20191218 将一些字段用主业务信息填充
|
|
|
var head = MsOpSeaeDAL.GetData("BSNO='"+ SIData["ORDER_BSNO"] + "'");
|
|
|
BillData.VESSEL = head.VESSEL;
|
|
|
BillData.VOYNO = head.VOYNO;
|
|
|
BillData.YARD = head.YARD;
|
|
|
BillData.ETD = head.ETD;
|
|
|
BillData.CLOSINGDATE = head.CLOSINGDATE;
|
|
|
//BillData.CLOSEDOCDATE = head.CLOSEDOCDATE;
|
|
|
//BillData.VESSELID = head.VESSELID;
|
|
|
BillData.CARRIER = head.CARRIER;
|
|
|
|
|
|
//然后将一些op_seae_billmanage当中不存在 所以需要保存到主表的字段数据加入主业务表
|
|
|
var MainList = BookingConfirmDAL.GetMoreField(HeadSIFieldList);
|
|
|
foreach (var item in MainList)
|
|
|
{
|
|
|
if (!DiffData.getChecked(item.FieldName)) continue;
|
|
|
|
|
|
OpSeaeData.SetPropertyValue(item.FieldName, DiffFieldmb.GetValue(HeadSIFieldList, SIData, item.FieldName));
|
|
|
}
|
|
|
|
|
|
//将 SIREMARK字段写入OpseaeAms对象
|
|
|
if (!DiffData.getChecked("SIREMARK" )) { }
|
|
|
else
|
|
|
{
|
|
|
OpSeaeAms.SIREMARK = DiffFieldmb.GetValue(HeadSIFieldList, SIData, "SIREMARK").ToString();
|
|
|
}
|
|
|
|
|
|
ctnParentIDValue = BillData.AS_ID;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
foreach (var item in HeadSIFieldList)
|
|
|
{
|
|
|
if (!DiffData.getChecked(item.FieldName)) continue;
|
|
|
|
|
|
OpSeaeData.SetPropertyValue(item.FieldName, DiffFieldmb.GetValue(HeadSIFieldList, SIData, item.FieldName));
|
|
|
}
|
|
|
|
|
|
//将 SIREMARK字段写入OpseaeAms对象
|
|
|
OpSeaeAms.SIREMARK = DiffFieldmb.GetValue(HeadSIFieldList, SIData, "SIREMARK").ToString();
|
|
|
|
|
|
ctnParentIDValue = OpSeaeData.BSNO;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//2: 赋值ctn数据 依靠CNTRNO关联
|
|
|
var needinsert = true;
|
|
|
foreach (var SICtn in SICtnList)
|
|
|
{
|
|
|
needinsert = true;
|
|
|
foreach (var ctn in CtnList)
|
|
|
{
|
|
|
if (ctn.CNTRNO == SICtn["CNTRNO"]) {
|
|
|
foreach (var item in CtnSIFieldList) {
|
|
|
|
|
|
ctn.SetPropertyValue(item.FieldName, DiffFieldmb.GetValue(CtnSIFieldList, SICtn, item.FieldName));
|
|
|
}
|
|
|
needinsert = false;
|
|
|
continue;
|
|
|
}
|
|
|
}
|
|
|
if (needinsert) {
|
|
|
//代表这条SI数据在本地不存在 需要增加
|
|
|
var newCtn = new MsOpSeaeDetail();
|
|
|
newCtn.BSNO = "";//保持为空按插入处理;
|
|
|
newCtn.VGMCONNCOM = "";
|
|
|
newCtn.CTN_ID = System.Guid.NewGuid().ToString();
|
|
|
foreach (var item in CtnSIFieldList)
|
|
|
{
|
|
|
newCtn.SetPropertyValue(item.FieldName, DiffFieldmb.GetValue(CtnSIFieldList, SICtn, item.FieldName));
|
|
|
}
|
|
|
newCtn.SIZE = SICtn["CTNALL"].Substring(0, 2);
|
|
|
newCtn.CTN = SICtn["CTNALL"].Substring(2, 2);
|
|
|
newCtn.DbOperationType = DbOperationType.DbotIns;
|
|
|
CtnList.Add(newCtn);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//3: 赋值多品名ctnDetail数据
|
|
|
|
|
|
///循环SI内的多品名 CtnDetailList
|
|
|
foreach (var SICtnDetail in SICtnDetailList)
|
|
|
{
|
|
|
needinsert = true;
|
|
|
///本地CtnDetailList(当前进行保存的);可能是主业务的,也可能是提单列表中的一票下的
|
|
|
foreach (var LocalCtnDetail in CtnDetailList)
|
|
|
{
|
|
|
var _localcntrno = "";
|
|
|
var _localCTN_ID = "";
|
|
|
foreach (var LocalCtn in CtnList)
|
|
|
{
|
|
|
if (LocalCtn.CTN_ID == LocalCtnDetail.CTN_ID)
|
|
|
{
|
|
|
_localcntrno = LocalCtn.CNTRNO;
|
|
|
_localCTN_ID = LocalCtn.CTN_ID;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
var _SIcntrno = "";
|
|
|
foreach (var SICtn in SICtnList)
|
|
|
{
|
|
|
if (SICtn["CTN_ID"] == SICtnDetail["CTN_ID"])
|
|
|
{
|
|
|
_SIcntrno = SICtn["CNTRNO"];
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (_localcntrno == _SIcntrno && LocalCtnDetail.HSCODE== SICtnDetail["HSCODE"])
|
|
|
{
|
|
|
foreach (var item in CtnDetailSIFieldList)
|
|
|
{
|
|
|
LocalCtnDetail.SetPropertyValue(item.FieldName, DiffFieldmb.GetValue(CtnDetailSIFieldList, SICtnDetail, item.FieldName));
|
|
|
}
|
|
|
needinsert = false;
|
|
|
LocalCtnDetail.CTN_ID = _localCTN_ID;
|
|
|
LocalCtnDetail.DbOperationType = DbOperationType.DbotUpd;
|
|
|
ChangeCtnDetailList.Add(LocalCtnDetail);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (needinsert)
|
|
|
{
|
|
|
var newCtnDetail = new MsOpCtnDetail();
|
|
|
//寻找这条明细的CTN_ID应该是谁
|
|
|
//首先找到它的父节点 SI的CTN 获得它的CNTRNO
|
|
|
//然后在本地CTN信息里找到这个CTN,获取它的CTN_ID;这就是本地即将插入的CTNDetail的BSNO
|
|
|
var _localCTN_ID = "";
|
|
|
var _cntrno = "";
|
|
|
foreach (var SICtn in SICtnList) {
|
|
|
if (SICtn["CTN_ID"] == SICtnDetail["CTN_ID"])
|
|
|
{
|
|
|
_cntrno = SICtn["CNTRNO"];
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
foreach (var LocalCtn in CtnList) {
|
|
|
if (LocalCtn.CNTRNO == _cntrno) {
|
|
|
_localCTN_ID = LocalCtn.CTN_ID;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
foreach (var item in CtnDetailSIFieldList)
|
|
|
{
|
|
|
newCtnDetail.SetPropertyValue(item.FieldName, DiffFieldmb.GetValue(CtnDetailSIFieldList, SICtnDetail, item.FieldName));
|
|
|
}
|
|
|
newCtnDetail.GID = System.Guid.NewGuid().ToString();
|
|
|
newCtnDetail.CTN_ID = _localCTN_ID;
|
|
|
newCtnDetail.DbOperationType = DbOperationType.DbotIns;
|
|
|
ChangeCtnDetailList.Add(newCtnDetail);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
var modb = new ModelObjectRepository();
|
|
|
|
|
|
var detailmodb = new ModelObjectDB();
|
|
|
|
|
|
OpSeaeData.NOPKGS = OpSeaeData.PKGS.ToString() + OpSeaeData.KINDPKGS.ToString();
|
|
|
|
|
|
if (SIData["ISMULTI"] == "true")
|
|
|
{
|
|
|
BillData.INPUTBY = Session["SHOWNAME"].ToString();
|
|
|
result = modb.SaveHead(BillData);
|
|
|
if (!result.Success)
|
|
|
{
|
|
|
jsonRespose.SetDBResult(result);
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
|
|
|
}
|
|
|
}
|
|
|
|
|
|
result = modb.SaveHead(OpSeaeData);
|
|
|
if (!result.Success)
|
|
|
{
|
|
|
jsonRespose.SetDBResult(result);
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
|
|
|
}
|
|
|
|
|
|
result = modb.SaveHead(OpSeaeAms);
|
|
|
if (!result.Success)
|
|
|
{
|
|
|
jsonRespose.SetDBResult(result);
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
|
|
|
}
|
|
|
|
|
|
result = modb.SaveComm("BSNO", ctnParentIDValue
|
|
|
, ModelObjectConvert<MsOpSeaeDetail>.ToModelObjectList(CtnList)
|
|
|
,null);
|
|
|
if (!result.Success)
|
|
|
{
|
|
|
jsonRespose.SetDBResult(result);
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
|
|
|
}
|
|
|
|
|
|
|
|
|
foreach (var ctndetail in ChangeCtnDetailList) {
|
|
|
result = detailmodb.Save(ctndetail);
|
|
|
if (!result.Success)
|
|
|
{
|
|
|
jsonRespose.SetDBResult(result);
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
if (DelMore == "true") {
|
|
|
result = Do_DelMore(SICtnList,SICtnDetailList,CtnList,CtnDetailList);
|
|
|
if (!result.Success)
|
|
|
{
|
|
|
jsonRespose.SetDBResult(result);
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (SIData["ISMULTI"] == "true")
|
|
|
{
|
|
|
|
|
|
result = Do_SetSeaeChildValue(BillData.AS_ID,"true");
|
|
|
if (!result.Success)
|
|
|
{
|
|
|
jsonRespose.SetDBResult(result);
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
result = Do_SetSeaeChildValue(OpSeaeData.BSNO, "false");
|
|
|
if (!result.Success)
|
|
|
{
|
|
|
jsonRespose.SetDBResult(result);
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (result.Success) {
|
|
|
//SI_SaveBack(SINO, "Confirm");
|
|
|
BookingConfirmDAL.BookingStatus_Confirm(SIData["SINO"], OrderConfirmStatus.Confirm.ToString(),Session["COMPANYNAME"].ToString(),Session["USERID"].ToString());
|
|
|
|
|
|
|
|
|
//var sidata = GetBooking_SIData(" SINO='" + SIData["SINO"] + "'", Session["USERID"].ToString());
|
|
|
|
|
|
var _r = BookingConfirmDAL.SendMail_SI(SIData["SINO"], "接收提单确认", "", OpSeaeData, SIData["OPERATORMAIL"], Session["USERID"].ToString(), Session["COMPANYNAME"].ToString());
|
|
|
//OpSeaeData
|
|
|
}
|
|
|
|
|
|
jsonRespose.SetDBResult(result);
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
|
|
|
}
|
|
|
|
|
|
private static BookingDB bookingDB = new BookingDB();
|
|
|
|
|
|
public ContentResult RejectSI(string SINO,string orreason="",string email="") {
|
|
|
|
|
|
var confirm = bookingDB.Confirms.FirstOrDefault(o => o.SINO == SINO);
|
|
|
var jsonRespose = new JsonResponse
|
|
|
{
|
|
|
Success = false,
|
|
|
Message = "",
|
|
|
Data = ""
|
|
|
};
|
|
|
|
|
|
var cando = BookingConfirmDAL.SI_CanConfirm(SINO, OrderConfirmStatus.Reject.ToString());
|
|
|
|
|
|
if (!cando.Success) {
|
|
|
jsonRespose.SetDBResult(cando);
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
|
|
|
}
|
|
|
|
|
|
var result = BookingConfirmDAL.BookingStatus_Confirm(SINO, OrderConfirmStatus.Reject.ToString(), Session["COMPANYNAME"].ToString());
|
|
|
|
|
|
var _order = bookingDB.Orders.FirstOrDefault(o => o.ORDNO == confirm.ORDNO);
|
|
|
|
|
|
var OpSeaeData = MsOpSeaeDAL.GetData(" BSNO = '" + _order.BSNO + "'");
|
|
|
|
|
|
var _r = BookingConfirmDAL.SendMail_SI(SINO, "拒绝截单", orreason, OpSeaeData, email, Session["USERID"].ToString(), Session["COMPANYNAME"].ToString());
|
|
|
|
|
|
|
|
|
jsonRespose.SetDBResult(result);
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
|
|
|
}
|
|
|
|
|
|
private void SI_SaveBack(string SINO,string audittype)
|
|
|
{
|
|
|
var str = string.Format(" update OP_SEAE_SI set BSSTATUS='{1}' where SINO='{0}' ", SINO, audittype);
|
|
|
BasicDataRefDAL.ExecSql_DB(str, "BookingDB");
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 将本地的多余ctn信息和ctndetail信息删除
|
|
|
/// </summary>
|
|
|
/// <param name="CtnList"></param>
|
|
|
/// <param name="CtnDetailList"></param>
|
|
|
/// <returns></returns>
|
|
|
public static ContentResult DelMore(List<Dictionary<string,string>> SICtnList, List<Dictionary<string, string>> SICtnDetailList, List<MsOpSeaeDetail> LocalCtnList, List<MsOpCtnDetail> LocalCtnDetailList) {
|
|
|
|
|
|
var jsonRespose = new JsonResponse
|
|
|
{
|
|
|
Success = false,
|
|
|
Message = "",
|
|
|
Data = ""
|
|
|
};
|
|
|
|
|
|
var result = Do_DelMore(SICtnList, SICtnDetailList, LocalCtnList, LocalCtnDetailList);
|
|
|
|
|
|
jsonRespose.SetDBResult(result);
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
|
|
|
}
|
|
|
|
|
|
private static DBResult Do_DelMore(List<Dictionary<string, string>> SICtnList, List<Dictionary<string, string>> SICtnDetailList, List<MsOpSeaeDetail> LocalCtnList, List<MsOpCtnDetail> LocalCtnDetailList) {
|
|
|
|
|
|
var needdelete = true;
|
|
|
|
|
|
var DelCtnList = new List<MsOpSeaeDetail>();
|
|
|
var DelCtnDetailList = new List<MsOpCtnDetail>();
|
|
|
|
|
|
foreach (var Localctn in LocalCtnList)
|
|
|
{
|
|
|
needdelete = true;
|
|
|
foreach (var SICtn in SICtnList)
|
|
|
{
|
|
|
if (SICtn["CNTRNO"] == Localctn.CNTRNO)
|
|
|
{
|
|
|
needdelete = false;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
if (needdelete)
|
|
|
{
|
|
|
Localctn.DbOperationType = DbOperationType.DbotDel;
|
|
|
DelCtnList.Add(Localctn);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//foreach (var LocalctnDetail in LocalCtnDetailList)
|
|
|
//{
|
|
|
// needdelete = true;
|
|
|
// foreach (var SICtnDetail in SICtnDetailList)
|
|
|
// {
|
|
|
// if (SICtnDetail["CNTRNO"] == LocalctnDetail.CNTRNO)
|
|
|
// {
|
|
|
// needdelete = false;
|
|
|
// break;
|
|
|
// }
|
|
|
// }
|
|
|
// if (needdelete)
|
|
|
// {
|
|
|
// LocalctnDetail.DbOperationType = DbOperationType.DbotDel;
|
|
|
// DelCtnDetailList.Add(LocalctnDetail);
|
|
|
// }
|
|
|
//}
|
|
|
|
|
|
|
|
|
var detailmodb = new ModelObjectDB();
|
|
|
|
|
|
var result = detailmodb.Save(ModelObjectConvert<MsOpSeaeDetail>.ToModelObjectList(DelCtnList));
|
|
|
if (!result.Success)
|
|
|
{
|
|
|
return result;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
//删除所有无集装箱的集装箱明细
|
|
|
|
|
|
T_ALL_DA.ExecuteSqlCommand("delete from op_ctn_detail where CTN_ID not in(select ctn_id from op_ctn)");
|
|
|
//result = detailmodb.Save(ModelObjectConvert<MsOpCtnDetail>.ToModelObjectList(DelCtnDetailList));
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 根据SI的ctn信息和ctndetail信息,重新计算Opseae主表下的ctn信息和ctndetail信息
|
|
|
/// </summary>
|
|
|
/// <param name="CtnList">传入的OP_Seae.BSNO</param>
|
|
|
/// <returns></returns>
|
|
|
public static ContentResult SetSeaeChildValue(string BSNO,string ISMULTI = "false")
|
|
|
{
|
|
|
var jsonRespose = new JsonResponse
|
|
|
{
|
|
|
Success = false,
|
|
|
Message = "",
|
|
|
Data = ""
|
|
|
};
|
|
|
|
|
|
var result = Do_SetSeaeChildValue(BSNO, ISMULTI);
|
|
|
|
|
|
jsonRespose.SetDBResult(result);
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
|
|
|
}
|
|
|
|
|
|
|
|
|
private static DBResult Do_SetSeaeChildValue(string BSNO, string ISMULTI = "false")
|
|
|
{
|
|
|
|
|
|
var Main_BSNO = "";
|
|
|
var detailmodb = new ModelObjectDB();
|
|
|
var result = new DBResult();
|
|
|
|
|
|
var CTNDetailList = new List<MsOpCtnDetail>();
|
|
|
|
|
|
Main_BSNO = "";
|
|
|
bool needinsert = true;
|
|
|
|
|
|
var Main_CTNList = new List<MsOpSeaeDetail>();
|
|
|
|
|
|
//1首先看该截单对应的是否是一条提单信息 如是
|
|
|
if (ISMULTI == "true")
|
|
|
{
|
|
|
var BillManage = MsOpSeaeDAL.GetBillData(" AS_ID = '" + BSNO + "' ");
|
|
|
Main_BSNO = BillManage.BSNO;
|
|
|
|
|
|
//查询所有主业务下的集装箱信息
|
|
|
Main_CTNList = MsOpSeaeDAL.GetBodyList(" BSNO='" + Main_BSNO + "' ");
|
|
|
|
|
|
|
|
|
//查找所有提单列表信息
|
|
|
var BillManageList = MsOpSeaeDAL.GetBillList(" BSNO = '" + Main_BSNO + "' ");
|
|
|
|
|
|
//所有提单列表信息下的集装箱信息
|
|
|
var billManage_CTNList = MsOpSeaeDAL.GetBodyList(" BSNO in(select AS_ID from op_seae_billmanage where BSNO='" + Main_BSNO + "') ");
|
|
|
|
|
|
//查找其所有提单信息下的多品名明细信息
|
|
|
var billManage_CTNDetailList = MsOpSeaeDAL.GetOpCtnDetailList(" CTN_ID in(select CTN_ID from op_ctn where BSNO in(select AS_ID from op_seae_billmanage where BSNO='" + Main_BSNO + "')) ");
|
|
|
|
|
|
|
|
|
//首先查看主业务下的集装箱信息 如缺少则添加
|
|
|
//
|
|
|
foreach (var bill_ctn in billManage_CTNList)
|
|
|
{
|
|
|
needinsert = true;
|
|
|
foreach (var ctn in Main_CTNList)
|
|
|
{
|
|
|
if (bill_ctn.CNTRNO == ctn.CNTRNO)
|
|
|
{
|
|
|
needinsert = false;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
if (needinsert)
|
|
|
{
|
|
|
MsOpSeaeDetail newctn = new MsOpSeaeDetail();
|
|
|
|
|
|
//newctn = MsOpSeaeDetail.Copy(bill_ctn);
|
|
|
bill_ctn.Copy(newctn);
|
|
|
|
|
|
newctn.DbOperationType = DbOperationType.DbotIns;
|
|
|
//newctn.GID = System.Guid.NewGuid().ToString();
|
|
|
newctn.CTN_ID = System.Guid.NewGuid().ToString();
|
|
|
newctn.BSNO = Main_BSNO;
|
|
|
Main_CTNList.Add(newctn);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//查找所有主业务下的多品名信息 并根据CNTRNO和HSCODE合计所有主业务下的多品名信息
|
|
|
//但如果SI当中没有多品名信息 则不进行此操作
|
|
|
CTNDetailList = MsOpSeaeDAL.GetOpCtnDetailList(" CTN_ID in(select CTN_ID from op_ctn where BSNO='" + Main_BSNO + "') ");
|
|
|
|
|
|
if (billManage_CTNDetailList.Count > 0)
|
|
|
{
|
|
|
foreach (var billmanage_ctndetail in billManage_CTNDetailList) {
|
|
|
foreach (var CTNDetail in CTNDetailList)
|
|
|
if (CTNDetail.CNTRNO == billmanage_ctndetail.CNTRNO)
|
|
|
{
|
|
|
CTNDetail.PKGS = 0;
|
|
|
CTNDetail.KGS = 0;
|
|
|
CTNDetail.CBM = 0;
|
|
|
CTNDetail.DbOperationType = DbOperationType.DbotUpd;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
if (billManage_CTNDetailList.Count > 0)
|
|
|
{
|
|
|
|
|
|
//首先根据多品名合计多品名
|
|
|
foreach (var billmanage_ctndetail in billManage_CTNDetailList)
|
|
|
{
|
|
|
needinsert = true;
|
|
|
foreach (var ctndetail in CTNDetailList)
|
|
|
{
|
|
|
if (ctndetail.CNTRNO == billmanage_ctndetail.CNTRNO && ctndetail.HSCODE == billmanage_ctndetail.HSCODE)
|
|
|
{
|
|
|
ctndetail.PKGS += billmanage_ctndetail.PKGS;
|
|
|
ctndetail.KGS += billmanage_ctndetail.KGS;
|
|
|
ctndetail.CBM += billmanage_ctndetail.CBM;
|
|
|
needinsert = false;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
if (needinsert)
|
|
|
{
|
|
|
var _ctn_id = "";
|
|
|
foreach (var ctn in Main_CTNList)
|
|
|
{
|
|
|
if (ctn.CNTRNO == billmanage_ctndetail.CNTRNO)
|
|
|
{
|
|
|
_ctn_id = ctn.CTN_ID;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
MsOpCtnDetail newctndetail = new MsOpCtnDetail();
|
|
|
newctndetail.GID = System.Guid.NewGuid().ToString();
|
|
|
newctndetail.CTN_ID = _ctn_id;
|
|
|
newctndetail.KINDPKGS = billmanage_ctndetail.KINDPKGS;
|
|
|
newctndetail.PKGS = billmanage_ctndetail.PKGS;
|
|
|
newctndetail.KGS = billmanage_ctndetail.KGS;
|
|
|
newctndetail.CBM = billmanage_ctndetail.CBM;
|
|
|
newctndetail.CNTRNO = billmanage_ctndetail.CNTRNO;
|
|
|
newctndetail.HSCODE = billmanage_ctndetail.HSCODE;
|
|
|
|
|
|
newctndetail.DbOperationType = DbOperationType.DbotIns;
|
|
|
CTNDetailList.Add(newctndetail);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
else {
|
|
|
//SI中的该业务没有多品名
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//按CTN_ID合计计算各个提单信息内的集装箱信息
|
|
|
if (billManage_CTNDetailList.Count > 0)
|
|
|
{
|
|
|
foreach (var ctndetail in billManage_CTNDetailList)
|
|
|
{
|
|
|
foreach (var ctn in billManage_CTNList)
|
|
|
if (ctndetail.CTN_ID == ctn.CTN_ID)
|
|
|
{
|
|
|
ctn.PKGS = 0;
|
|
|
ctn.KGS = 0;
|
|
|
ctn.CBM = 0;
|
|
|
ctn.DbOperationType = DbOperationType.DbotUpd;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
if (billManage_CTNDetailList.Count > 0)
|
|
|
{
|
|
|
foreach (var ctn in billManage_CTNList)
|
|
|
{
|
|
|
foreach (var ctndetail in billManage_CTNDetailList)
|
|
|
{
|
|
|
if (ctndetail.CTN_ID == ctn.CTN_ID)
|
|
|
{
|
|
|
ctn.PKGS += ctndetail.PKGS;
|
|
|
ctn.KGS += ctndetail.KGS;
|
|
|
ctn.CBM += ctndetail.CBM;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//按CNTRNO合计计算主业务下 各个集装箱的信息
|
|
|
foreach (var ctn in Main_CTNList)
|
|
|
{
|
|
|
ctn.PKGS = 0;
|
|
|
ctn.KGS = 0;
|
|
|
ctn.CBM = 0;
|
|
|
}
|
|
|
|
|
|
foreach (var bill_ctn in billManage_CTNList)
|
|
|
{
|
|
|
foreach (var ctn in Main_CTNList)
|
|
|
{
|
|
|
if (ctn.CNTRNO == bill_ctn.CNTRNO)
|
|
|
{
|
|
|
ctn.PKGS += bill_ctn.PKGS;
|
|
|
ctn.KGS += bill_ctn.KGS;
|
|
|
ctn.CBM += bill_ctn.CBM;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//保存各个提单信息内的集装箱信息
|
|
|
result = detailmodb.Save(ModelObjectConvert<MsOpSeaeDetail>.ToModelObjectList(billManage_CTNList));
|
|
|
if (!result.Success)
|
|
|
{
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
////保存主业务下的多品名信息
|
|
|
//result = detailmodb.Save(ModelObjectConvert<MsOpCtnDetail>.ToModelObjectList(CTNDetailList));
|
|
|
//if (!result.Success)
|
|
|
//{
|
|
|
// return result;
|
|
|
//}
|
|
|
|
|
|
}
|
|
|
//如对应的不是一条提单信息 而是一对一的业务
|
|
|
else
|
|
|
{
|
|
|
|
|
|
Main_BSNO = BSNO;
|
|
|
//查询所有主业务下的多品名信息//查询所有主业务下的集装箱信息
|
|
|
Main_CTNList = MsOpSeaeDAL.GetBodyList(" BSNO='" + Main_BSNO + "' ");
|
|
|
|
|
|
CTNDetailList = MsOpSeaeDAL.GetOpCtnDetailList(" CTN_ID in(select CTN_ID from op_ctn where BSNO='" + Main_BSNO + "') ");
|
|
|
|
|
|
//如果有多品名 则根据CTN_ID合计主业务的集装箱信息
|
|
|
if (CTNDetailList.Count > 0)
|
|
|
{
|
|
|
|
|
|
foreach (var ctn in Main_CTNList)
|
|
|
foreach (var ctndetail in CTNDetailList)
|
|
|
if(ctn.CTN_ID == ctndetail.CTN_ID)
|
|
|
{
|
|
|
ctn.PKGS = 0;
|
|
|
ctn.KGS = 0;
|
|
|
ctn.CBM = 0;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (CTNDetailList.Count > 0)
|
|
|
{
|
|
|
foreach (var ctn in Main_CTNList)
|
|
|
{
|
|
|
foreach (var ctndetail in CTNDetailList)
|
|
|
{
|
|
|
if (ctn.CTN_ID == ctndetail.CTN_ID)
|
|
|
{
|
|
|
ctn.PKGS += ctndetail.PKGS;
|
|
|
ctn.KGS += ctndetail.KGS;
|
|
|
ctn.CBM += ctndetail.CBM;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
result = detailmodb.Save(ModelObjectConvert<MsOpSeaeDetail>.ToModelObjectList(Main_CTNList));
|
|
|
if (!result.Success)
|
|
|
{
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
result = detailmodb.Save(ModelObjectConvert<MsOpCtnDetail>.ToModelObjectList(CTNDetailList));
|
|
|
if (!result.Success)
|
|
|
{
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
SetSeaeMainCount(Main_BSNO);
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
private static void SetSeaeMainCount(string BSNO)
|
|
|
{
|
|
|
var str = string.Format(" update op_seae set pkgs = (select sum(isnull(pkgs, 0)) from op_ctn where bsno = op_seae.bsno),kgs = (select sum(isnull(kgs, 0)) from op_ctn where bsno = op_seae.bsno) ,CBM = (select sum(isnull(cbm, 0)) from op_ctn where bsno = op_seae.bsno) where bsno = '{0}'", BSNO);
|
|
|
BasicDataRefDAL.ExecSql(str);
|
|
|
|
|
|
var str2 = string.Format(" update op_seae_billmanage set pkgs = (select sum(isnull(pkgs, 0)) from op_ctn where bsno = op_seae_billmanage.AS_ID),kgs = (select sum(isnull(kgs, 0)) from op_ctn where bsno = op_seae_billmanage.AS_ID) ,CBM = (select sum(isnull(cbm, 0)) from op_ctn where bsno = op_seae_billmanage.AS_ID) where BSNO = '{0}'", BSNO);
|
|
|
BasicDataRefDAL.ExecSql(str2);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 检查主业务下的集装箱信息是否有不存在于对应的Booking.OP_SEAE_SI当中的
|
|
|
/// </summary>
|
|
|
/// <param name="MBLNO"></param>
|
|
|
/// <returns></returns>
|
|
|
public ContentResult CheckDiff_Main(string SINO) {
|
|
|
var result = new DBResult(false, "", null);
|
|
|
var jsonRespose = new JsonResponse(result);
|
|
|
|
|
|
//booking端的 SI下的 CTN数据
|
|
|
var booking_ctnlist_main_data = BookingConfirmDAL.GetCtnList(" ORDNO in(select SINO from op_seae_SI where ORDNO=(select ORDNO from op_seae_SI where SINO='" + SINO + "'))", "");
|
|
|
|
|
|
var booking_ctnlist_main_DicList = ModelObjectBill.getDicList(ModelObjectConvert<Booking_Ctnmb>.ToModelObjectList(booking_ctnlist_main_data));
|
|
|
var BSNO = booking_ctnlist_main_DicList[0]["BSNO_PARENT"];
|
|
|
|
|
|
var CtnCondition = " BSNO ='"+ BSNO + "' ";
|
|
|
|
|
|
var CtnList = MsOpSeaeDAL.GetBodyList(CtnCondition);
|
|
|
|
|
|
foreach (var localctn in CtnList) {
|
|
|
var ismore = true;
|
|
|
foreach (var BookingCtnDic in booking_ctnlist_main_DicList)
|
|
|
{
|
|
|
if (localctn.CNTRNO == BookingCtnDic["CNTRNO"]) {
|
|
|
ismore = false;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
if (ismore) {
|
|
|
result.Success = true;
|
|
|
result.Message += localctn.CNTRNO+" ";
|
|
|
}
|
|
|
}
|
|
|
|
|
|
jsonRespose.SetDBResult(result);
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
|
|
|
}
|
|
|
public ContentResult DelDiff_Main(string SINO)
|
|
|
{
|
|
|
var result = new DBResult(false, "", null);
|
|
|
var jsonRespose = new JsonResponse(result);
|
|
|
|
|
|
//booking端的 SI下的 CTN数据
|
|
|
var booking_ctnlist_main_data = BookingConfirmDAL.GetCtnList(" ORDNO in(select SINO from op_seae_SI where ORDNO=(select ORDNO from op_seae_SI where SINO='" + SINO + "'))", "");
|
|
|
|
|
|
var booking_ctnlist_main_DicList = ModelObjectBill.getDicList(ModelObjectConvert<Booking_Ctnmb>.ToModelObjectList(booking_ctnlist_main_data));
|
|
|
var BSNO = booking_ctnlist_main_DicList[0]["BSNO_PARENT"];
|
|
|
|
|
|
var CtnCondition = " BSNO ='" + BSNO + "' ";
|
|
|
|
|
|
var CtnList = MsOpSeaeDAL.GetBodyList(CtnCondition);
|
|
|
|
|
|
var cntrlist = "";
|
|
|
foreach (var BookingCtnDic in booking_ctnlist_main_DicList)
|
|
|
{
|
|
|
if (cntrlist != "") cntrlist += ",";
|
|
|
cntrlist +="'"+ BookingCtnDic["CNTRNO"]+ "'";
|
|
|
}
|
|
|
|
|
|
var str = string.Format(" delete from op_ctn where {0} and CNTRNO not in({1})", CtnCondition, cntrlist);
|
|
|
BasicDataRefDAL.ExecSql(str);
|
|
|
|
|
|
jsonRespose.SetDBResult(result);
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 检查 提单信息 下的集装箱信息是否有不存在于对应的Booking.OP_SEAE_SI当中的
|
|
|
/// </summary>
|
|
|
/// <param name="MBLNO"></param>
|
|
|
/// <returns></returns>
|
|
|
public ContentResult CheckDiff_Bill(string SINO)
|
|
|
{
|
|
|
var result = new DBResult(false, "", null);
|
|
|
var jsonRespose = new JsonResponse(result);
|
|
|
|
|
|
//booking端的 SI下的 CTN数据
|
|
|
var booking_ctnlist_main_data = BookingConfirmDAL.GetCtnList(" ORDNO ='" + SINO + "'", "");
|
|
|
|
|
|
var booking_ctnlist_main_DicList = ModelObjectBill.getDicList(ModelObjectConvert<Booking_Ctnmb>.ToModelObjectList(booking_ctnlist_main_data));
|
|
|
|
|
|
var BSNO = booking_ctnlist_main_DicList[0]["BSNO_PARENT"];
|
|
|
var MBLNO = booking_ctnlist_main_DicList[0]["SI_MBLNO"];
|
|
|
|
|
|
var CtnCondition = " BSNO in(select AS_ID from op_seae_billmanage where BSNO='" + BSNO + "' and MBLNO='"+ MBLNO + "') ";
|
|
|
|
|
|
var CtnList = MsOpSeaeDAL.GetBodyList(CtnCondition);
|
|
|
|
|
|
foreach (var localctn in CtnList)
|
|
|
{
|
|
|
var ismore = true;
|
|
|
foreach (var BookingCtnDic in booking_ctnlist_main_DicList)
|
|
|
{
|
|
|
if (localctn.CNTRNO == BookingCtnDic["CNTRNO"])
|
|
|
{
|
|
|
ismore = false;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
if (ismore)
|
|
|
{
|
|
|
result.Success = true;
|
|
|
result.Message += localctn.CNTRNO + " ";
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
if (result.Success)
|
|
|
{
|
|
|
jsonRespose.SetDBResult(result);
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
|
|
|
}
|
|
|
else{
|
|
|
return CheckDiff_Main(SINO);
|
|
|
}
|
|
|
}
|
|
|
public ContentResult DelDiff_Bill(string SINO)
|
|
|
{
|
|
|
var result = new DBResult(false, "", null);
|
|
|
var jsonRespose = new JsonResponse(result);
|
|
|
|
|
|
//booking端的 SI下的 CTN数据
|
|
|
var booking_ctnlist_main_data = BookingConfirmDAL.GetCtnList(" ORDNO ='" + SINO + "'", "");
|
|
|
|
|
|
var booking_ctnlist_main_DicList = ModelObjectBill.getDicList(ModelObjectConvert<Booking_Ctnmb>.ToModelObjectList(booking_ctnlist_main_data));
|
|
|
|
|
|
var BSNO = booking_ctnlist_main_DicList[0]["BSNO_PARENT"];
|
|
|
var MBLNO = booking_ctnlist_main_DicList[0]["SI_MBLNO"];
|
|
|
|
|
|
var CtnCondition = " BSNO in(select AS_ID from op_seae_billmanage where BSNO='" + BSNO + "' and MBLNO='" + MBLNO + "') ";
|
|
|
|
|
|
var CtnList = MsOpSeaeDAL.GetBodyList(CtnCondition);
|
|
|
|
|
|
var cntrlist = "";
|
|
|
foreach (var BookingCtnDic in booking_ctnlist_main_DicList)
|
|
|
{
|
|
|
if (cntrlist != "") cntrlist += ",";
|
|
|
cntrlist += "'" + BookingCtnDic["CNTRNO"] + "'";
|
|
|
}
|
|
|
|
|
|
var str = string.Format(" delete from op_ctn where {0} and CNTRNO not in({1})", CtnCondition, cntrlist);
|
|
|
BasicDataRefDAL.ExecSql(str);
|
|
|
|
|
|
//jsonRespose.SetDBResult(result);
|
|
|
//return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
|
|
|
return DelDiff_Main(SINO);
|
|
|
}
|
|
|
|
|
|
|
|
|
public static string ToDBC(string input)
|
|
|
{
|
|
|
char[] c = input.ToCharArray();
|
|
|
for (int i = 0; i < c.Length; i++)
|
|
|
{
|
|
|
if (c[i] == 12288)
|
|
|
{
|
|
|
c[i] = (char)32;
|
|
|
continue;
|
|
|
}
|
|
|
if (c[i] > 65280 && c[i] < 65375)
|
|
|
c[i] = (char)(c[i] - 65248);
|
|
|
}
|
|
|
return new string(c);
|
|
|
}
|
|
|
public static string DelEndSpace(string input)
|
|
|
{
|
|
|
if (input == "") return "";
|
|
|
|
|
|
|
|
|
input = input.Replace("\n", "\\");
|
|
|
input = input.Replace("\r", " ");
|
|
|
|
|
|
string[] StrList = input.Split('\\');
|
|
|
var result = "";
|
|
|
|
|
|
for (var i = 0; i <= StrList.Length - 1; i++)
|
|
|
{
|
|
|
var tmpstr = StrList[i].TrimEnd();
|
|
|
if (tmpstr != "")
|
|
|
{
|
|
|
if (result == "")
|
|
|
result = tmpstr;
|
|
|
else result = result + Environment.NewLine + tmpstr;
|
|
|
}
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
#region 全角空格转半角空格
|
|
|
|
|
|
public static string FullWidthToHalfWidth(string str)
|
|
|
{
|
|
|
byte[] t = Encoding.Default.GetBytes(str);
|
|
|
for (int i = 0; i < t.Length; i++)
|
|
|
{
|
|
|
if ((t[i].ToString() == "161") && (t[i + 1].ToString() == "161"))
|
|
|
{
|
|
|
t[i] = 32;
|
|
|
if (i + 1 == t.Length - 1)
|
|
|
{
|
|
|
t[i + 1] = 0;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
for (int j = i + 1; j + 1 < t.Length; j++)
|
|
|
{
|
|
|
t[j] = t[j + 1];
|
|
|
if (j + 1 == t.Length - 1)
|
|
|
{
|
|
|
t[j + 1] = 0;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return Encoding.Default.GetString(t);
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 集装箱明细信息
|
|
|
public ContentResult GetBookingCtnList(string condition, string sort = "")
|
|
|
{
|
|
|
|
|
|
var dataList = BookingConfirmDAL.GetCtnList(condition, sort);
|
|
|
|
|
|
var list_2 = ModelObjectBill.getDicList(ModelObjectConvert<Booking_Ctnmb>.ToModelObjectList(dataList));
|
|
|
|
|
|
var json = JsonConvert.Serialize(new { Success = true, Message = "查询成功", totalCount = dataList.Count(), data = list_2.ToList() });
|
|
|
return new ContentResult() { Content = json };
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 集装箱 内 明细信息
|
|
|
public ContentResult GetBookingCtnDetailList(string condition, string sort = "")
|
|
|
{
|
|
|
|
|
|
var dataList = BookingConfirmDAL.GetCtnDetailList(condition, Convert.ToString(Session["USERID"]), sort);
|
|
|
|
|
|
var list_2 = ModelObjectBill.getDicList(ModelObjectConvert<Booking_CtnDetailmb>.ToModelObjectList(dataList));
|
|
|
|
|
|
var json = JsonConvert.Serialize(new { Success = true, Message = "查询成功", totalCount = dataList.Count(), data = list_2.ToList() });
|
|
|
return new ContentResult() { Content = json };
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
}
|
|
|
} |