using System;
using System.Linq;
using System.Text;
using System.Web.Mvc;
using DSWeb.MvcShipping.Helper;
using DSWeb.MvcShipping.Comm.Cookie;
using HcUtility.Comm;
using HcUtility.Core;
using System.Collections.Generic;
using System.IO;
using System.Data;
using DSWeb.Areas.CommMng.DAL;
using DSWeb.TruckMng.Helper.Repository;
using DSWeb.Areas.MvcShipping.DAL.MsPrice;
using DSWeb.MvcShipping.Models.MsPrice;
using DSWeb.Areas.OA.Models.WorkFlow;
using DSWeb.EntityDA;
using DSWeb.MvcShipping.DAL.MsSysParamSet;
using DSWeb.MvcShipping.DAL.MsSysBillNoSet;//编码规则
using DSWeb.Areas.SysMng.DAL.SysTask;
using DSWeb.MvcShipping.DAL.MsOpSeaiDAL;
using DSWeb.MvcShipping.Models.MsOpSeai;//海运进口业务
using DSWeb.Areas.Import.Models.Comm;//用于生成费用
using DSWeb.Areas.CommMng.Models;
using DSWeb.MvcShipping.DAL.MsBaseInfoDAL;//查询OP权限
using DSWeb.MvcShipping.DAL.MsCodeOpDef;
using DSWeb.MvcShipping.DAL.MsInfoClient;
using DSWeb.MvcShipping.Models.MsCrmPriceCarrier;
using DSWeb.MvcShipping.DAL.MsCrmPriceCarrierDAL;
using DSWeb.MvcShipping.DAL.MsCrmPriceCarrierListDAL;
using DSWeb.Areas.Dispatch.DB;
using System.Data.Entity;
using Microsoft.Practices.EnterpriseLibrary.Data;
using DSWeb.Areas.MvcShipping.Helper;
namespace DSWeb.MvcShipping.Controllers
{
///
/// 运价合约/报价管理 邓羽 20200410
/// 需求编号 张工
///
[JsonRequestBehavior]
public class MsPriceController : Controller
{
//
// GET: /RptMng/MsRptPcHeadQry
public ActionResult ContractIndex()
{
return View();
}
public ActionResult ContractEdit()
{
return View();
}
public ActionResult QuotationIndex()
{
return View();
}
public ActionResult QuotationEdit()
{
return View();
}
#region 运价合约 头表/明细表
//public ContentResult GetSqlStr(string YXNOList) {
// string sql = MsOp_YAXIANGDAL.gethea;
//}
public ContentResult GetContractList(int start, int limit, string condition, string sort="")
{
var canlogin = BasicDataRefDAL.CheckLogin(Session);
if (!canlogin.Success)
{
return (ContentResult)canlogin.Data;
}
var _count = 0;
var dataList = MsPriceContractDAL.GetDataList(start,limit,condition, Session["USERID"].ToString(),out _count, sort);
var list_2 = ModelObjectBill.getDicList(ModelObjectConvert.ToModelObjectList(dataList));
var json = JsonConvert.Serialize(new
{
Success = true,
Message = "查询成功",
totalCount = _count,
data = list_2.ToList()
});
return new ContentResult() { Content = json };
}
public ContentResult GetContractData(string handle, string condition)
{
var result = new MsPrice_Contract_mb();
if (handle == "add") {
result.getDef(Session["USERID"].ToString());
}else
result = MsPriceContractDAL.GetData(condition, Session["USERID"].ToString());
var json = JsonConvert.Serialize(new
{
Success = true,
Message = "查询成功",
//totalCount = 1,
data = result.ExtendDic
//,fieldlist = fieldlist.ToList()
});
return new ContentResult() { Content = json };
}
public ContentResult GetContractDetailList( string condition )
{
var dataList = MsPriceContractDAL.GetBodyList(condition);
var list = new List>();
if (dataList.Count() > 0)
{
foreach (var data in dataList)
{
list.Add(data.ExtendDic);
}
}
var json = JsonConvert.Serialize(new
{
Success = true,
Message = "查询成功",
totalCount = list.Count,
data = list.ToList()
});
return new ContentResult() { Content = json };
}
public ContentResult GetContractWayList(int start, int limit, string condition, string sort = "")
{
var canlogin = BasicDataRefDAL.CheckLogin(Session);
if (!canlogin.Success)
{
return (ContentResult)canlogin.Data;
}
var dataList = MsPriceContractDAL.GetWayList( condition, sort);
var list_1 = ModelObjectBill.getDicList(ModelObjectConvert.ToModelObjectList(dataList));
var list_2 = list_1.Skip(start).Take(limit);
var json = JsonConvert.Serialize(new
{
Success = true,
Message = "查询成功",
totalCount = list_1.Count(),
data = list_2.ToList()
});
return new ContentResult() { Content = json };
}
public ContentResult GetContractPortDetentionList(int start, int limit, string condition, string sort = "")
{
var canlogin = BasicDataRefDAL.CheckLogin(Session);
if (!canlogin.Success)
{
return (ContentResult)canlogin.Data;
}
var dataList = MsPriceContractDAL.GetPortDetentionList(condition, sort);
var list_1 = ModelObjectBill.getDicList(ModelObjectConvert.ToModelObjectList(dataList));
//var list_2 = list_1.Skip(start).Take(limit);
var json = JsonConvert.Serialize(new
{
Success = true,
Message = "查询成功",
totalCount = list_1.Count(),
data = list_1.ToList()
});
return new ContentResult() { Content = json };
}
#endregion
#region 运价合约 保存/删除/删除明细
public ContentResult SaveContract(string opstatus, string data, string Body, string Way,string PORTDETENTION)//
{
var canlogin = BasicDataRefDAL.CheckLogin(Session);
if (!canlogin.Success)
{
return (ContentResult)canlogin.Data;
}
//BasicDataRefDAL.SaveLog("1:保存开始", "", "运价合约管理", "保存");
DateTime dt1 = DateTime.Now;
while ((DateTime.Now - dt1).TotalMilliseconds < 1)
{
continue;
};
var modb = new ModelObjectRepository();
var db = DatabaseFactory.CreateDatabase();
var _date = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
var head = new MsPrice_Contract_mb();
head.SetValue(db, data);
//head.GetTableField(db);
var basebody = new MsPrice_Contract_Detailmb();
basebody.GetTableField(db);
var BodyList = new List();
var DelBodyList = new List();
if (Body != "")
{
var savedl = JsonConvert.Deserialize>>(Body);
foreach (var sdl in savedl)
{
var body = new MsPrice_Contract_Detailmb();
basebody.Copy(body);
body.SetValue(sdl);
BodyList.Add(body);
}
}
var waybody = new MsPrice_Contract_Waymb();
waybody.GetTableField(db);
var WayList = new List();
var DelWayList = new List();
if (Way != "")
{
var savedl = JsonConvert.Deserialize>>(Way);
foreach (var sdl in savedl)
{
var body = new MsPrice_Contract_Waymb();
waybody.Copy(body);
body.SetValue(sdl);
WayList.Add(body);
}
}
var PortDetentionBody = new MsPrice_Contract_PortDetentionmb();
PortDetentionBody.GetTableField(db);
var PortDetentionList = new List();
var DelPortDetentionList = new List();
if (!string.IsNullOrWhiteSpace( PORTDETENTION))
{
var savedl = JsonConvert.Deserialize>>(PORTDETENTION);
foreach (var sdl in savedl)
{
var body = new MsPrice_Contract_PortDetentionmb();
PortDetentionBody.Copy(body);
body.SetValue(sdl);
PortDetentionList.Add(body);
}
}
//BasicDataRefDAL.SaveLog("2:数据组织完毕", "", "运价合约管理", "保存");
dt1 = DateTime.Now;
while ((DateTime.Now - dt1).TotalMilliseconds < 1)
{
continue;
};
if (string.IsNullOrWhiteSpace(head.GetValue("BSNO"))) {
var billnoset = MsSysBillNoSetDAL.GetData("OPLBNAME='运价合约业务' AND RULEBLNO='委托编号' ", Convert.ToString(Session["COMPANYID"]));
var BSNO = MsSysBillNoSetDAL.GetBillNo(billnoset, _date, _date, "", Session["USERID"].ToString(), Session["COMPANYID"].ToString());
if (string.IsNullOrWhiteSpace(BSNO))
{
var _r = new DBResult();
_r.SetErrorInfo("请检查【编码规则】设置,【运价合约业务-委托编号】");
var jsonRespose2 = new JsonResponse
{
Success = _r.Success,
Message = _r.Message,
Data = ""
};
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose2) };
}
else {
head.SetValue("BSNO", BSNO);
}
//BasicDataRefDAL.SaveLog("3:编码规则", "", "运价合约管理", "保存");
dt1 = DateTime.Now;
while ((DateTime.Now - dt1).TotalMilliseconds < 1)
{
continue;
};
}
if (opstatus == "add")
{
head.DbOperationType = DbOperationType.DbotIns;
head.ModelUIStatus = "I";
head.SetValue("CREATOR", Session["SHOWNAME"].ToString());
head.SetValue("CREATETIME", _date);
}
else if (opstatus == "edit")
{
head.DbOperationType = DbOperationType.DbotUpd;
head.ModelUIStatus = "E";
}
else
{
head.DbOperationType = DbOperationType.DbotDel;
}
//BasicDataRefDAL.SaveLog("4:保存开始", "", "运价合约管理", "保存");
dt1 = DateTime.Now;
while ((DateTime.Now - dt1).TotalMilliseconds < 1)
{
continue;
};
DBResult result = modb.Save(head,
ModelObjectConvert.ToModelObjectList(BodyList),
ModelObjectConvert.ToModelObjectList(DelBodyList),
ModelObjectConvert.ToModelObjectList(WayList),
ModelObjectConvert.ToModelObjectList(DelWayList),
ModelObjectConvert.ToModelObjectList(PortDetentionList),
ModelObjectConvert.ToModelObjectList(DelPortDetentionList)
);
//BasicDataRefDAL.SaveLog("5:保存结束", result.Success.ToString()+";"+ result.Message, "运价合约管理", "保存");
dt1 = DateTime.Now;
while ((DateTime.Now - dt1).TotalMilliseconds < 1)
{
continue;
};
var bsnovalue = head.GetBillNoValue();
var bsnoname = head.GetBillNoFieldName();
var _Data = MsPriceContractDAL.GetData(head.GetBillNoFieldName() + " = '" + head.GetBillNoValue() + "'", Session["USERID"].ToString()).ExtendDic;
//BasicDataRefDAL.SaveLog("6:获取返回的数据", _Data.ToString(), "运价合约管理", "保存");
dt1 = DateTime.Now;
while ((DateTime.Now - dt1).TotalMilliseconds < 1)
{
continue;
};
var jsonRespose = new JsonResponse
{
Success = result.Success,
Message = result.Message,
Data = _Data//fieldlist
};
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
public ContentResult SaveContract_ef(string opstatus, string data, string Body, string Way, string PORTDETENTION)//
{
DBResult result = new DBResult();
result.Success = true;
result.Message = "";
var canlogin = BasicDataRefDAL.CheckLogin(Session);
if (!canlogin.Success)
{
return (ContentResult)canlogin.Data;
}
try
{
DataContext dc = new DataContext();
Op_SeaPrice_Contract headData = JsonConvert.Deserialize(data);
var WayList = JsonConvert.Deserialize>(Way);
var BodyList = JsonConvert.Deserialize>(Body);
var PortDetentionList = JsonConvert.Deserialize>(PORTDETENTION);
var BSNO = "";
if (opstatus == "edit")
{
var oldhead = dc.Op_SeaPrice_Contract.First(x => x.BSNO == headData.BSNO);
oldhead.savecopy(headData);
BSNO = headData.BSNO;
}
else
{
var billnoset = MsSysBillNoSetDAL.GetData("OPLBNAME='运价合约业务' AND RULEBLNO='委托编号' ", Convert.ToString(Session["COMPANYID"]));
var _date = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
BSNO = MsSysBillNoSetDAL.GetBillNo(billnoset, _date, _date, "", Session["USERID"].ToString(), Session["COMPANYID"].ToString());
if (string.IsNullOrWhiteSpace(BSNO))
{
var _r = new DBResult();
_r.SetErrorInfo("请检查【编码规则】设置,【运价合约业务-委托编号】");
var jsonRespose2 = new JsonResponse
{
Success = _r.Success,
Message = _r.Message,
Data = ""
};
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose2) };
}
else
{
headData.BSNO = BSNO;
dc.Op_SeaPrice_Contract.Add(headData);
}
}
result.Data = headData;
if (WayList != null)
{
var oldwaylist = dc.Op_SeaPrice_Contract_Way.Where(x => x.BSNO == BSNO).ToList();
foreach (var way in WayList)
{
if (string.IsNullOrWhiteSpace(way.BSNO))
{
way.BSNO = BSNO;
dc.Op_SeaPrice_Contract_Way.Add(way);
}
else
{
var oldway = oldwaylist.First(x => x.ID == way.ID);
oldway.savecopy(way);
}
}
}
if (BodyList != null)
{
var oldBodyList = dc.Op_SeaPrice_Contract_Detail.Where(x => x.BSNO == BSNO).ToList();
foreach (var body in BodyList)
{
if (string.IsNullOrWhiteSpace(body.BSNO))
{
body.BSNO = BSNO;
dc.Op_SeaPrice_Contract_Detail.Add(body);
}
else
{
var oldBody = oldBodyList.First(x => x.GID == body.GID);
oldBody.savecopy(body);
}
}
}
if (PortDetentionList != null)
{
var oldPortdetentionList = dc.Op_SeaPrice_Contract_PortDetention.Where(x => x.BSNO == BSNO).ToList();
foreach (var pd in PortDetentionList)
{
if (string.IsNullOrWhiteSpace(pd.BSNO))
{
pd.BSNO = BSNO;
dc.Op_SeaPrice_Contract_PortDetention.Add(pd);
}
else
{
var oldpd = oldPortdetentionList.First(x => x.ID == pd.ID);
oldpd.savecopy(pd);
}
}
}
dc.SaveChanges();
}
catch (Exception e) {
result.Success = false;
result.Message = e.Message;
}
var jsonRespose = new JsonResponse
{
Success = result.Success,
Message = result.Message,
Data = result.Data
};
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
public ContentResult SaveContract_Detail(string opstatus, string data, string Body, string Way, string Type="")//
{
var canlogin = BasicDataRefDAL.CheckLogin(Session);
if (!canlogin.Success)
{
return (ContentResult)canlogin.Data;
}
if (opstatus != "edit")
{
var _r = new DBResult();
_r.SetErrorInfo("请先保存本业务");
var jsonRespose3 = new JsonResponse
{
Success = _r.Success,
Message = _r.Message,
Data = ""
};
return jsonRespose3.getContentReult();
}
DataContext dc = new DataContext();
Op_SeaPrice_Contract headData = JsonConvert.Deserialize(data);
var NewWay = JsonConvert.Deserialize(Way);
var BodyList = JsonConvert.Deserialize>(Body);
var OLDBodyList = dc.Op_SeaPrice_Contract_Detail.Where(x => x.BSNO == headData.BSNO).ToList();
if (string.IsNullOrWhiteSpace(NewWay.BSNO)&&Type=="4")
{
NewWay.BSNO = headData.BSNO;
dc.Op_SeaPrice_Contract_Way.Add(NewWay);
}
else {
if (dc.Op_SeaPrice_Contract_Way.Where(x => x.ID == NewWay.ID).ToList().Count > 0)
{
var oldway = dc.Op_SeaPrice_Contract_Way.First(x => x.ID == NewWay.ID);
oldway.savecopy(NewWay);
}
}
if (Type == "4" && !string.IsNullOrWhiteSpace( NewWay.PODLOAD)) {
Op_SeaPrice_Contract_Way addway = new Op_SeaPrice_Contract_Way();
addway.BSNO = headData.BSNO;
if (!string.IsNullOrWhiteSpace(NewWay.PODLOAD))
{
addway.PODLOAD = NewWay.PODLOAD;
}
dc.Op_SeaPrice_Contract_Way.Add(addway);
//同时复制模板费用
var 模板费用List = dc.Op_SeaPrice_Contract_Detail.Where(x => x.BSNO == headData.BSNO && (x.PODLOAD == null||x.PODLOAD.Trim()=="")).ToList();
if (模板费用List != null) {
foreach (var item in 模板费用List) {
var newfee = new Op_SeaPrice_Contract_Detail();
newfee.savecopy(item);
newfee.PODLOAD = addway.PODLOAD;
dc.Op_SeaPrice_Contract_Detail.Add(newfee);
}
}
}
if (BodyList != null)
{
for (var _i = 0; _i < BodyList.Count(); _i++)
{
var upd = false;
for (var _j = 0; _j < OLDBodyList.Count(); _j++)
{
if (BodyList[_i].GID == OLDBodyList[_j].GID)
{
OLDBodyList[_j].savecopy(BodyList[_i]);
upd = true;
break;
}
}
if (!upd)
{
BodyList[_i].BSNO = headData.BSNO;
dc.Op_SeaPrice_Contract_Detail.Add(BodyList[_i]);
}
}
}
dc.SaveChanges();
var jsonRespose = new JsonResponse
{
Success = true,
Message = "",
Data = ""
};
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
public ContentResult DeleteContract(string data)
{
var db = DatabaseFactory.CreateDatabase();
var head = new MsPrice_Contract_mb();
head.SetValue(db, data);
var canbedel = SysTaskDAL.TaskGetWord(head.GetValue("CSTATUS"), "candelete");
//var canbedel = true;
if (canbedel == false)
{
var jsonRespose = new JsonResponse { Success = false, Message = "此状态下的业务不能进行删除!" };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
else
{
var modb = new ModelObjectDBBill();
DBResult result = modb.Delete(head,
"delete from op_SeaPrice_Contract_Detail where BSNO='" + head.GetValue("BSNO") + "'"
, "delete from op_SeaPrice_Contract_Way where BSNO='" + head.GetValue("BSNO") + "'"
, "delete from op_SeaPrice_Contract_PortDetention where BSNO='" + head.GetValue("BSNO") + "'"
);
//MsSysBillNoSetDAL.DeleteBsNo(head.BillNo);
var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
}
public ContentResult CopyNew_Contract(string OLDBSNO)//
{
var canlogin = BasicDataRefDAL.CheckLogin(Session);
if (!canlogin.Success)
{
return (ContentResult)canlogin.Data;
}
var condition = "BSNO='" + OLDBSNO + "'";
var oldhead = MsPriceContractDAL.GetData(condition, Session["USERID"].ToString());
var oldwaylist = MsPriceContractDAL.GetWayList(condition, "");
var oldbodylist = MsPriceContractDAL.GetBodyList(condition, "");
var oldPortDetentionlist = MsPriceContractDAL.GetPortDetentionList(condition, "");
var modb = new ModelObjectRepository();
var db = DatabaseFactory.CreateDatabase();
var _date = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
var head = new MsPrice_Contract_mb();
head.GetTableField(db);
head.SetValue(oldhead.ExtendDic);
#region 获取新的序列号
var billnoset = MsSysBillNoSetDAL.GetData("OPLBNAME='运价合约业务' AND RULEBLNO='委托编号' ", Convert.ToString(Session["COMPANYID"]));
var BSNO = MsSysBillNoSetDAL.GetBillNo(billnoset, _date, _date, "", Session["USERID"].ToString(), Session["COMPANYID"].ToString());
head.SetValue("BSNO", BSNO);
head.DbOperationType = DbOperationType.DbotIns;
head.ModelUIStatus = "I";
head.SetValue("CREATOR", Session["SHOWNAME"].ToString());
head.SetValue("CREATETIME", _date);
#endregion
var basebody = new MsPrice_Contract_Detailmb();
basebody.GetTableField(db);
var BodyList = new List();
var DelBodyList = new List();
foreach (var oldbody in oldbodylist)
{
var body = new MsPrice_Contract_Detailmb();
basebody.Copy(body);
body.SetValue(oldbody.ExtendDic);
body.SetValue("GID", Guid.NewGuid().ToString());
body.SetValue("BSNO", "");
BodyList.Add(body);
}
var baseway = new MsPrice_Contract_Waymb();
baseway.GetTableField(db);
var WayList = new List();
var DelWayList = new List();
foreach (var oldway in oldwaylist)
{
var way = new MsPrice_Contract_Waymb();
baseway.Copy(way);
way.SetValue(oldway.ExtendDic);
way.SetValue("GID", Guid.NewGuid().ToString());
way.SetValue("BSNO", "");
WayList.Add(way);
}
var basePD = new MsPrice_Contract_PortDetentionmb();
basePD.GetTableField(db);
var PDList = new List();
var DelPDList = new List();
foreach (var oldPD in oldPortDetentionlist)
{
var PD = new MsPrice_Contract_PortDetentionmb();
basePD.Copy(PD);
PD.SetValue(oldPD.ExtendDic);
//PD.SetValue("GID", Guid.NewGuid().ToString());
PD.SetValue("BSNO", "");
PDList.Add(PD);
}
DBResult result = modb.Save(head,
ModelObjectConvert.ToModelObjectList(BodyList),
ModelObjectConvert.ToModelObjectList(DelBodyList),
ModelObjectConvert.ToModelObjectList(WayList),
ModelObjectConvert.ToModelObjectList(DelWayList),
ModelObjectConvert.ToModelObjectList(PDList),
ModelObjectConvert.ToModelObjectList(DelPDList)
);
var bsnovalue = head.GetBillNoValue();
var bsnoname = head.GetBillNoFieldName();
var _Data = MsPriceContractDAL.GetData(head.GetBillNoFieldName() + " = '" + head.GetBillNoValue() + "'", Session["USERID"].ToString()).ExtendDic;
var jsonRespose = new JsonResponse
{
Success = result.Success,
Message = result.Message,
Data = _Data//fieldlist
};
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
public ContentResult DelContractDetail(string data,string GID)
{
var db = DatabaseFactory.CreateDatabase();
var head = new MsPrice_Contract_mb();
head.SetValue(db, data);
var canbedel = SysTaskDAL.TaskGetWord(head.GetValue("CSTATUS"), "candelete");
//var canbedel = true;
if (canbedel == false)
{
var jsonRespose = new JsonResponse { Success = false, Message = "此状态下的业务不能进行删除!" };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
else
{
var strSql = new StringBuilder();
var jsonRespose = new JsonResponse { Success = false, Message = "" };
strSql.Append(" delete from op_SeaPrice_Contract_Detail where GID in (" + GID + ")");
try
{
var _r = db.ExecuteNonQuery(CommandType.Text, strSql.ToString());
}
catch (Exception ee)
{
jsonRespose.Success = false;
jsonRespose.Message = ee.Message;
}
jsonRespose.Success = true;
jsonRespose.Message = "明细删除成功";
jsonRespose.Data = "";
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
}
public ContentResult DelContractWay(string data, string ID)
{
var db = DatabaseFactory.CreateDatabase();
var head = new MsPrice_Contract_mb();
head.SetValue(db, data);
var canbedel = SysTaskDAL.TaskGetWord(head.GetValue("CSTATUS"), "candelete");
//var canbedel = true;
if (canbedel == false)
{
var jsonRespose = new JsonResponse { Success = false, Message = "此状态下的业务不能进行删除!" };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
else
{
var strSql = new StringBuilder();
var jsonRespose = new JsonResponse { Success = false, Message = "" };
strSql.Append(" delete from op_SeaPrice_Contract_Way where ID in (" + ID + ")");
strSql.Append(" delete from op_SeaPrice_Contract_Detail where not exists(select 1 from op_SeaPrice_Contract_Way where bsno=op_SeaPrice_Contract_Detail.BSNO and PODLOAD=op_SeaPrice_Contract_Detail.PODLOAD and PORTDISCHARGE=op_SeaPrice_Contract_Detail.PORTDISCHARGE and VIA=op_SeaPrice_Contract_Detail.VIA) and isnull(PODLOAD,'')<>'' ");
try
{
var _r = db.ExecuteNonQuery(CommandType.Text, strSql.ToString());
}
catch (Exception ee)
{
jsonRespose.Success = false;
jsonRespose.Message = ee.Message;
}
jsonRespose.Success = true;
jsonRespose.Message = "明细删除成功";
jsonRespose.Data = "";
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
}
public ContentResult DelContractPORTDETENTION(string data, string ID)
{
var db = DatabaseFactory.CreateDatabase();
var head = new MsPrice_Contract_mb();
head.SetValue(db, data);
var canbedel = SysTaskDAL.TaskGetWord(head.GetValue("CSTATUS"), "candelete");
//var canbedel = true;
if (canbedel == false)
{
var jsonRespose = new JsonResponse { Success = false, Message = "此状态下的业务不能进行删除!" };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
else
{
var strSql = new StringBuilder();
var jsonRespose = new JsonResponse { Success = false, Message = "" };
strSql.Append(" delete from op_SeaPrice_Contract_PortDetention where ID in (" + ID + ")");
try
{
var _r = db.ExecuteNonQuery(CommandType.Text, strSql.ToString());
}
catch (Exception ee)
{
jsonRespose.Success = false;
jsonRespose.Message = ee.Message;
}
jsonRespose.Success = true;
jsonRespose.Message = "明细删除成功";
jsonRespose.Data = "";
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
}
#endregion
#region 运价单 状态变更
public ContentResult PushState(string data, string Execution)
{
var db = DatabaseFactory.CreateDatabase();
var head = new MsPrice_Contract_mb();
head.SetValue(db, data);
return doPushState(head, Execution);
}
private ContentResult doPushState(MsPrice_Contract_mb head, string Execution)
{
var statusfield = "CSTATUS";
var modb = new ModelObjectRepository();
JsonResponse result = new JsonResponse();
var STATE = head.GetValue(statusfield);
var newState = SysTaskDAL.DoExecution(STATE, Execution);
if (newState.STATEKEY == "0000")
{
result.Success = false;
result.Message = head.GetValue("CSTATUSREF") + "状态下的业务不能进行此操作";
}
else
{
head.SetValue(statusfield, newState.STATEKEY);
head.DbOperationType = DbOperationType.DbotUpd;
head.ModelUIStatus = "E";
var _r = modb.Save(head);
result.Success = _r.Success;
result.Message = _r.Message;
}
return new ContentResult() { Content = JsonConvert.Serialize(result) };
}
#endregion
///
/// 由合约生成运价
///
///
///
///
public ContentResult MakePrice(string BSNOList)
{
DelPrice(BSNOList);
var _count = 0;
var HeadList = MsPriceContractDAL.GetDataList(0, 9999, " BSNO in(" + BSNOList + ")", Session["USERID"].ToString(),out _count);
var _r = new JsonResponse();
_r.Success = true;
var saveresult = new DBResult();
var modb = new ModelObjectRepository();
foreach (var 合约 in HeadList)
{
if (string.IsNullOrWhiteSpace(合约.GetValue("EFFECTIVEDATE")) || string.IsNullOrWhiteSpace(合约.GetValue("VALIDDATE"))) {
_r.Success = false;
_r.Message += "没有有效的生效日期 和/或 失效日期;";
}
if (string.IsNullOrWhiteSpace(合约.GetValue("CARRIER")) )
{
_r.Success = false;
_r.Message += "请选择船公司;";
}
if (!_r.Success) {
return _r.getContentReult();
}
var crmpricelist = MsCrmPriceCarrierDAL.getNewWithContractValue(合约, Session["USERID"].ToString());
if (crmpricelist.Count > 0) {
saveresult = modb.SaveHead(
ModelObjectConvert.ToModelObjectList(crmpricelist)
);
}
if (!_r.Success) break;
}
_r.Success = true;
_r.Message = "所有费用目前均已生成";
return _r.getContentReult();
}
//删除由合约而生成的运价 通常在生成前执行
private void DelPrice(string BSNOList) {
var _c = BasicDataRefDAL.ExecSql("delete from crm_price_carrier_2 where CONTRACTBSNO in(" + BSNOList + ")");
}
#region 运价合约 获取打印的sql文本
public ContentResult GetContractPrintSql(string printname,string BSNOList)
{
var jsonRespose = new JsonResponse { Success = false, Message = "" };
if (printname == "Print1")
{
var result = new PrintSql();
result.sql1 = MsPriceContractDAL.getHeadListStr(" and BSNO in(" + BSNOList + ")");
result.sql2 = MsPriceContractDAL.getBodyListStr(" and BSNO in(" + BSNOList + ")");
jsonRespose.Success = true;
jsonRespose.Message = "查询成功";
jsonRespose.Data = result;
}
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
#endregion
#region 报价单 头表 / 明细表 查询
public ContentResult GetQuotationList(int start, int limit, string condition, string sort = "")
{
var _count = 0;
var dataList = MsQuotationDAL.GetDataList(start, limit, condition, Session["USERID"].ToString(), sort);
var list_2 = ModelObjectBill.getDicList(ModelObjectConvert.ToModelObjectList(dataList));
var json = JsonConvert.Serialize(new
{
Success = true,
Message = "查询成功",
totalCount = _count,
data = list_2.ToList()
});
return new ContentResult() { Content = json };
}
public ContentResult GetQuotationData(string handle, string condition)
{
var result = new MsQuotationmb();
if (handle == "add")
{
result.getDef(Session["USERID"].ToString());
}
else
result = MsQuotationDAL.GetData(condition, Session["USERID"].ToString());
var json = JsonConvert.Serialize(new
{
Success = true,
Message = "查询成功",
//totalCount = 1,
data = result.ExtendDic
//,fieldlist = fieldlist.ToList()
});
return new ContentResult() { Content = json };
}
public ContentResult GetQuotationDetailList(string condition)
{
var dataList = MsQuotationDAL.GetBodyList(condition);
var list = new List>();
if (dataList.Count() > 0)
{
foreach (var data in dataList)
{
list.Add(data.ExtendDic);
}
}
var json = JsonConvert.Serialize(new
{
Success = true,
Message = "查询成功",
totalCount = list.Count,
data = list.ToList()
});
return new ContentResult() { Content = json };
}
public ContentResult GetQuotationAddList(int start,int limit,string condition,string sort="")
{
var canlogin = BasicDataRefDAL.CheckLogin(Session);
if (!canlogin.Success)
{
return (ContentResult)canlogin.Data;
}
if (!string.IsNullOrWhiteSpace(condition)) condition += " and ";
condition += " LOCKFLAG='true' and ISISSUE='true' ";
var dataList = MsCrmPriceCarrierListDAL.GetDataList(condition, start, limit, Session["USERID"].ToString(), Session["CODENAME"].ToString(), Session["COMPANYID"].ToString(), sort);
int count = MsCrmPriceCarrierListDAL.getTotalCount(condition, CookieConfig.GetCookie_UserId(Request), Convert.ToString(Session["SHOWNAME"]), Convert.ToString(Session["COMPANYID"]));
var json = JsonConvert.Serialize(new { Success = true, Message = "查询成功", totalCount = count, data = dataList.ToList() });
return new ContentResult() { Content = json };
}
///
/// 用于费用列表内的关联报价单列表
///
///
///
///
public ContentResult GetSmallQuotationList(string condition, string mblno) {
var _count = 0;
var dataList = MsQuotationDAL.GetSmallDataList(0, 10, condition, mblno, Session["USERID"].ToString(), "CREATETIME DESC");
var list_2 = ModelObjectBill.getDicList(ModelObjectConvert.ToModelObjectList(dataList));
var json = JsonConvert.Serialize(new
{
Success = true,
Message = "查询成功",
totalCount = _count,
data = list_2.ToList()
});
return new ContentResult() { Content = json };
}
public ContentResult GetZaFeiList(string condition)
{
var _count = 0;
var dataList = MsQuotationDAL.GetZaFeiDataList(condition);
var list_2 = ModelObjectBill.getDicList(ModelObjectConvert.ToModelObjectList(dataList));
var json = JsonConvert.Serialize(new
{
Success = true,
Message = "查询成功",
totalCount = _count,
data = list_2.ToList()
});
return new ContentResult() { Content = json };
}
#endregion
#region 查询 指定报价的箱型的底价费用明细
public ContentResult GetFeeDetail(string fieldname,string CONTRACTBSNO,string PODLOAD,string PORTDISCHARGEID,string VIA, string VIA2)
{
var result = new JsonResponse();
var _fieldname = fieldname.Substring(0, fieldname.Length - 1);
var rdlist = BasicDataRefDAL.GeneralSelect($"select '' GID,dbo.F_ContractPriceStr_{_fieldname}('{CONTRACTBSNO}','{PODLOAD}','{PORTDISCHARGEID}','{VIA}','{VIA2}') GVALUE ");
if (rdlist.Count > 0)
{
var rd = rdlist[0];
result.Success = true;
result.Message = "";
result.Data = rd.GVALUE;
}
else {
result.Success = false;
result.Message = "";
result.Data = "";
}
return new ContentResult() { Content = JsonConvert.Serialize(result) };
}
#endregion
#region 报价单 保存/删除/删除明细
public ContentResult SaveQuotation_old(string opstatus, string data, string Body, string ZaFei)//
{
var modb = new ModelObjectRepository();
var db = DatabaseFactory.CreateDatabase();
var _date = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
var head = new MsQuotationmb();
head.SetValue(db, data);
head.GetTableField(db);
var basebody = new MsQuotation_Detailmb();
basebody.GetTableField(db);
var BodyList = new List();
var DelBodyList = new List();
if (Body != "")
{
var savedl = JsonConvert.Deserialize>>(Body);
foreach (var sdl in savedl)
{
var body = new MsQuotation_Detailmb();
basebody.Copy(body);
body.SetValue(sdl);
BodyList.Add(body);
}
}
var base_ZaFeibody = new MsQuotation_ZaFeiListmb();
base_ZaFeibody.GetTableField(db);
var ZaFeiList = new List();
var DelZaFeiList = new List();
if (ZaFei != "")
{
var savedl = JsonConvert.Deserialize>>(ZaFei);
foreach (var sdl in savedl)
{
var body = new MsQuotation_ZaFeiListmb();
base_ZaFeibody.Copy(body);
body.SetValue(sdl);
ZaFeiList.Add(body);
}
}
if (string.IsNullOrWhiteSpace(head.GetValue("BSNO")))
{
var billnoset = MsSysBillNoSetDAL.GetData("OPLBNAME='运价报价业务' AND RULEBLNO='委托编号' ", Convert.ToString(Session["COMPANYID"]));
var BSNO = MsSysBillNoSetDAL.GetBillNo(billnoset, _date, _date, "", Session["USERID"].ToString(), Session["COMPANYID"].ToString());
if (string.IsNullOrWhiteSpace(BSNO))
{
var _r = new DBResult();
_r.SetErrorInfo("请检查【编码规则】设置,【运价报价业务-委托编号】");
var jsonRespose2 = new JsonResponse
{
Success = _r.Success,
Message = _r.Message,
Data = ""
};
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose2) };
}
else
{
head.SetValue("BSNO", BSNO);
}
}
if (opstatus == "add")
{
head.DbOperationType = DbOperationType.DbotIns;
head.ModelUIStatus = "I";
head.SetValue("CREATOR", Session["SHOWNAME"].ToString());
head.SetValue("CREATETIME", _date);
}
else if (opstatus == "edit")
{
head.DbOperationType = DbOperationType.DbotUpd;
head.ModelUIStatus = "E";
}
else
{
head.DbOperationType = DbOperationType.DbotDel;
}
DBResult result = modb.Save(head,
ModelObjectConvert.ToModelObjectList(BodyList),
ModelObjectConvert.ToModelObjectList(DelBodyList),
ModelObjectConvert.ToModelObjectList(ZaFeiList),
ModelObjectConvert.ToModelObjectList(DelZaFeiList)
);
var bsnovalue = head.GetBillNoValue();
var bsnoname = head.GetBillNoFieldName();
var jsonRespose = new JsonResponse
{
Success = result.Success,
Message = result.Message,
Data = MsQuotationDAL.GetData(head.GetBillNoFieldName() + " = '" + head.GetBillNoValue() + "'", Session["USERID"].ToString()).ExtendDic//fieldlist
};
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
public ContentResult SaveQuotation(string opstatus, string data, string Body, string ZaFei)//
{
DBResult result = new DBResult();
result.Success = true;
result.Message = "";
var canlogin = BasicDataRefDAL.CheckLogin(Session);
if (!canlogin.Success)
{
return (ContentResult)canlogin.Data;
}
var _date = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
try
{
DataContext dc = new DataContext();
Op_SeaPrice_Quotation headData = JsonConvert.Deserialize(data);
var BodyList = JsonConvert.Deserialize>(Body);
var ZaFeiList = JsonConvert.Deserialize>(ZaFei);
var BSNO = "";
if (opstatus == "edit")
{
var oldhead = dc.Op_SeaPrice_Quotation.First(x => x.BSNO == headData.BSNO);
oldhead.savecopy(headData);
BSNO = headData.BSNO;
}
else
{
var billnoset = MsSysBillNoSetDAL.GetData("OPLBNAME='运价报价业务' AND RULEBLNO='委托编号' ", Convert.ToString(Session["COMPANYID"]));
BSNO = MsSysBillNoSetDAL.GetBillNo(billnoset, _date, _date, "", Session["USERID"].ToString(), Session["COMPANYID"].ToString());
if (string.IsNullOrWhiteSpace(BSNO))
{
var _r = new DBResult();
_r.SetErrorInfo("请检查【编码规则】设置,【运价报价业务-委托编号】");
var jsonRespose2 = new JsonResponse
{
Success = _r.Success,
Message = _r.Message,
Data = ""
};
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose2) };
}
else
{
headData.BSNO = BSNO;
}
}
result.Data = headData;
if (BodyList != null)
{
var oldBodyList = dc.Op_SeaPrice_Quotation_Detail.Where(x => x.BSNO == BSNO).ToList();
foreach (var body in BodyList)
{
if (string.IsNullOrWhiteSpace(body.BSNO))
{
body.BSNO = BSNO;
dc.Op_SeaPrice_Quotation_Detail.Add(body);
}
else
{
var oldBody = oldBodyList.First(x => x.GID == body.GID);
dc.Op_SeaPrice_Quotation_Detail.Remove(oldBody);
dc.Op_SeaPrice_Quotation_Detail.Add(body);
}
}
}
if (ZaFeiList != null)
{
var oldPortdetentionList = dc.Op_SeaPrice_Quotation_ZaFeiList.Where(x => x.BSNO == BSNO).ToList();
foreach (var pd in ZaFeiList)
{
if (string.IsNullOrWhiteSpace(pd.BSNO))
{
pd.BSNO = BSNO;
dc.Op_SeaPrice_Quotation_ZaFeiList.Add(pd);
}
else
{
var oldpd = oldPortdetentionList.First(x => x.ID == pd.ID);
dc.Op_SeaPrice_Quotation_ZaFeiList.Remove(oldpd);
dc.Op_SeaPrice_Quotation_ZaFeiList.Add(pd);
}
}
}
dc.SaveChanges();
}
catch (Exception e)
{
result.Success = false;
result.Message = e.Message;
}
var jsonRespose = new JsonResponse
{
Success = result.Success,
Message = result.Message,
Data = result.Data
};
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
public ContentResult DeleteQuotation(string data)
{
var db = DatabaseFactory.CreateDatabase();
var head = new MsQuotationmb();
head.SetValue(db, data);
//var canbedel = SysTaskDAL.TaskGetWord(head.GetValue("CSTATUS"), "candelete");
var canbedel = true;
if (canbedel == false)
{
var jsonRespose = new JsonResponse { Success = false, Message = "此状态下的业务不能进行删除!" };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
else
{
var modb = new ModelObjectDBBill();
DBResult result = modb.Delete(head,
"delete from op_SeaPrice_Quotation_Detail where BSNO='" + head.GetValue("BSNO") + "'"
, "delete from Op_SeaPrice_Quotation_ZaFeiList where BSNO='" + head.GetValue("BSNO") + "'"
);
//MsSysBillNoSetDAL.DeleteBsNo(head.BillNo);
var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
}
public ContentResult DelQuotationDetail(string data, string GID)
{
var db = DatabaseFactory.CreateDatabase();
var head = new MsPrice_Contract_mb();
head.SetValue(db, data);
//var canbedel = SysTaskDAL.TaskGetWord(head.GetValue("CSTATUS"), "candelete");
var canbedel = true;
if (canbedel == false)
{
var jsonRespose = new JsonResponse { Success = false, Message = "此状态下的业务不能进行删除!" };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
else
{
var strSql = new StringBuilder();
var jsonRespose = new JsonResponse { Success = false, Message = "" };
strSql.Append(" delete from op_SeaPrice_Quotation_Detail where GID in (" + GID + ")");
try
{
var _r = db.ExecuteNonQuery(CommandType.Text, strSql.ToString());
}
catch (Exception ee)
{
jsonRespose.Success = false;
jsonRespose.Message = ee.Message;
}
jsonRespose.Success = true;
jsonRespose.Message = "明细删除成功";
jsonRespose.Data = "";
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
}
public ContentResult DelZaFeiDetail(string data, string GID)
{
var db = DatabaseFactory.CreateDatabase();
var head = new MsPrice_Contract_mb();
head.SetValue(db, data);
//var canbedel = SysTaskDAL.TaskGetWord(head.GetValue("CSTATUS"), "candelete");
var canbedel = true;
if (canbedel == false)
{
var jsonRespose = new JsonResponse { Success = false, Message = "此状态下的业务不能进行删除!" };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
else
{
var strSql = new StringBuilder();
var jsonRespose = new JsonResponse { Success = false, Message = "" };
strSql.Append(" delete from Op_SeaPrice_Quotation_ZaFeiList where ID in (" + GID + ")");
try
{
var _r = db.ExecuteNonQuery(CommandType.Text, strSql.ToString());
}
catch (Exception ee)
{
jsonRespose.Success = false;
jsonRespose.Message = ee.Message;
}
jsonRespose.Success = true;
jsonRespose.Message = "明细删除成功";
jsonRespose.Data = "";
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
}
#endregion
#region 报价单 提单号关联表//该表只有单个添加/删除 操作 不与其他操作联动
public ContentResult GetQuotationMblnoList(string condition)
{
var _count = 0;
var dataList = MsQuotationDAL.GetMblnoList(condition);
var list_2 = ModelObjectBill.getDicList(ModelObjectConvert.ToModelObjectList(dataList));
var json = JsonConvert.Serialize(new
{
Success = true,
Message = "查询成功",
totalCount = _count,
data = list_2.ToList()
});
return new ContentResult() { Content = json };
}
public ContentResult QuotationAddMblno(string BSNO, string MBLNO) {
var db = DatabaseFactory.CreateDatabase();
MsQuotation_MblnoListmb ml = new MsQuotation_MblnoListmb();
ml.GetTableField(db);
ml.DbOperationType = DbOperationType.DbotIns;
ml.SetValue("MBLNO", MBLNO);
ml.SetValue("CREATOR", Session["SHOWNAME"].ToString());
ml.SetValue("CREATETIME", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
var modb = new ModelObjectRepository();
var savelist = new List();
savelist.Add(ml);
var result = modb.SaveComm("BSNO", BSNO, ModelObjectConvert.ToModelObjectList(savelist), null);
var jsonRespose = new JsonResponse
{
Success = result.Success,
Message = result.Message,
Data = null
};
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
public ContentResult QuotationDelMblno(string BSNO, string MBLNO)
{
var _r = BasicDataRefDAL.ExecSql($" Delete from Op_SeaPrice_Quotation_MblnoList where BSNO='{BSNO}' and MBLNO='{MBLNO}' ");
//return _r;
var jsonRespose = new JsonResponse
{
Success = true,
Message = "",
Data = null
};
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
#endregion
#region 从运价中生成报价
public ContentResult AddQuotationDetail(string data, string GID)
{
var db = DatabaseFactory.CreateDatabase();
var head = new MsPrice_Contract_mb();
head.SetValue(db, data);
var currQuoList = MsQuotationDAL.GetBodyList(" BSNO='"+ head.GetValue("BSNO") + "' ");
string condition = " GID in (" + GID + ") ";
var CRMPriceList = MsCrmPriceCarrierListDAL.GetDataList(condition, 0, 9999, Session["USERID"].ToString(), Session["CODENAME"].ToString(), Session["COMPANYID"].ToString(), "");
if (CRMPriceList.Count == 0) {
var jsonRespose2 = new JsonResponse { Success = false, Message = "没有要添加的运价" };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose2) };
}
var newquolist = new List();
var _tabquo = new MsQuotation_Detailmb();
_tabquo.GetTableField(db);
foreach (var item in CRMPriceList) {
var newquo = new MsQuotation_Detailmb();
_tabquo.Copy(newquo);
newquo.SetValue("BSNO", head.GetValue("BSNO"));
if (currQuoList.Count > 0) {
var _curr = currQuoList.Find(o => o.Issame(item));
//如果能找到一条 船公司 起运港 目的港 中转港 信息完全一致的 则不添加此条
if (_curr!=null) {
continue;
}
}
newquo.setCrmValue(item);
newquolist.Add(newquo);
}
var modb = new ModelObjectDBBill();
var dbresult = modb.Save(ModelObjectConvert.ToModelObjectList(newquolist));
var jsonRespose = new JsonResponse { Success = dbresult.Success, Message = dbresult.Message };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
#endregion
#region 报价单 获取打印的sql文本
public ContentResult GetQuotationPrintSql(string printname, string BSNOList)
{
var jsonRespose = new JsonResponse { Success = false, Message = "" };
var result = new PrintSql();
result.sql1 = MsQuotationDAL.getHeadListStr(" BSNO in(" + BSNOList + ")");
result.sql2 = MsQuotationDAL.getBodyListStr(" and BSNO in(" + BSNOList + ")");
jsonRespose.Success = true;
jsonRespose.Message = "查询成功";
jsonRespose.Data = result;
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
public ContentResult GetQuotationPrintSql_Fen(string printname, string BSNOList,string[] ctntype)
{
var jsonRespose = new JsonResponse { Success = false, Message = "" };
var result = new PrintSql();
result.sql1 = MsQuotationDAL.getHeadListStr(" BSNO in(" + BSNOList + ")");
result.sql2 = MsQuotationDAL.getBodyListStr_Fen(" and BSNO in(" + BSNOList + ")", ctntype);
jsonRespose.Success = true;
jsonRespose.Message = "查询成功";
jsonRespose.Data = result;
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
#endregion
}
}