|
|
using System;
|
|
|
using System.Linq;
|
|
|
using System.Web.Mvc;
|
|
|
using DSWeb.MvcShipping.DAL.MsCrmQuotationDAL;
|
|
|
using DSWeb.MvcShipping.Models.MsCrmQuotation;
|
|
|
using DSWeb.MvcShipping.Helper;
|
|
|
using DSWeb.MvcShipping.Comm.Cookie;
|
|
|
using HcUtility.Comm;
|
|
|
using HcUtility.Core;
|
|
|
using System.Collections.Generic;
|
|
|
using DSWeb.MvcShipping.DAL.MsBaseInfoDAL;
|
|
|
using DSWeb.EntityDA;
|
|
|
using DSWeb.Models;
|
|
|
using DSWeb.Attributes;
|
|
|
using DSWeb.MvcShipping.Models.MsSysBillNoSet;
|
|
|
using DSWeb.MvcShipping.DAL.MsSysBillNoSet;
|
|
|
using DSWeb.MvcShipping.Models.MsCodeServiceFeeTemplate;
|
|
|
using DSWeb.SoftMng.Filter;
|
|
|
|
|
|
namespace DSWeb.MvcShipping.Controllers
|
|
|
{
|
|
|
[JsonRequestBehavior]
|
|
|
public class MsCrmQuotationController : Controller
|
|
|
{
|
|
|
public ActionResult Index()
|
|
|
{
|
|
|
return View();
|
|
|
}
|
|
|
|
|
|
public ActionResult Edit()
|
|
|
{
|
|
|
return View();
|
|
|
}
|
|
|
|
|
|
public ActionResult HistryFeeAgentIndex()
|
|
|
{
|
|
|
return View();
|
|
|
}
|
|
|
|
|
|
#region 查询
|
|
|
|
|
|
[SqlKeyWordsFilter(Type = "Action")]//sql 防注入过滤器
|
|
|
public ContentResult GetDataList(int start, int limit, string sort, string condition)
|
|
|
{
|
|
|
var dataList = MsCrmQuotationDAL.GetDataList(condition, Convert.ToString(Session["USERID"]), Convert.ToString(Session["SHOWNAME"]), Convert.ToString(Session["COMPANYID"]), sort);
|
|
|
var list = dataList.Skip(start).Take(limit);
|
|
|
var json = JsonConvert.Serialize(new { Success = true, Message = "查询成功", totalCount = dataList.Count, data = list.ToList() });
|
|
|
return new ContentResult() { Content = json };
|
|
|
}
|
|
|
|
|
|
[SqlKeyWordsFilter(Type = "Action")]//sql 防注入过滤器
|
|
|
public ContentResult GetData(string handle, string condition)
|
|
|
{
|
|
|
MsCrmQuotationEntity head = null;
|
|
|
if (handle == "edit")
|
|
|
{
|
|
|
head = MsCrmQuotationDAL.GetData(condition, Convert.ToString(Session["USERID"]), Convert.ToString(Session["SHOWNAME"]), Convert.ToString(Session["COMPANYID"]));
|
|
|
}
|
|
|
var json = JsonConvert.Serialize( new { Success = true, Message = "查询成功", data = head });
|
|
|
return new ContentResult() { Content = json };
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 打印
|
|
|
|
|
|
[SqlKeyWordsFilter(Type = "Action")]//sql 防注入过滤器
|
|
|
public ContentResult GetDataListStr(string condition, string gids, string printstr)
|
|
|
{
|
|
|
var dataListStr = MsCrmQuotationDAL.GetDataListStr(condition, gids, Convert.ToString(Session["USERID"]), Convert.ToString(Session["SHOWNAME"]), Convert.ToString(Session["COMPANYID"]));
|
|
|
var json = JsonConvert.Serialize(new { Success = true, Message = "查询成功", data = dataListStr });
|
|
|
return new ContentResult() { Content = json };
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 明细查询
|
|
|
|
|
|
[SqlKeyWordsFilter(Type = "Action")]//sql 防注入过滤器
|
|
|
public ContentResult GetDetailList(string condition)
|
|
|
{
|
|
|
var dataList = MsCrmQuotationDAL.GetDetailList(condition, Convert.ToString(Session["USERID"]), Convert.ToString(Session["SHOWNAME"]), Convert.ToString(Session["COMPANYID"]));
|
|
|
var json = JsonConvert.Serialize(new { Success = true, Message = "查询成功", totalCount = dataList.Count, data = dataList.ToList() });
|
|
|
return new ContentResult() { Content = json };
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 保存
|
|
|
public ContentResult Save(string opStatus, string data, string body)
|
|
|
{
|
|
|
if (Convert.ToString(Session["COMPANYID"]).ToString().Trim() == "" || Convert.ToString(Session["USERID"]).ToString().Trim() == "" || Convert.ToString(Session["CODENAME"]).ToString().Trim() == "" || Convert.ToString(Session["SHOWNAME"]).ToString().Trim() == "" || Convert.ToString(Session["DEPTNAME"]).ToString().Trim() == "")
|
|
|
{
|
|
|
var jsonRespose2 = new JsonResponse { Success = false, Message = "登录超时,请退出系统重新登录!" };
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose2) };
|
|
|
}
|
|
|
//
|
|
|
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
|
|
|
var headData = JsonConvert.Deserialize<MsCrmQuotationEntity>(data);
|
|
|
var bodyList = JsonConvert.Deserialize<List<CrmQuotationDetailEntity>>(body);
|
|
|
var isPost = true;
|
|
|
var errorstr = "";
|
|
|
|
|
|
#region 报价编号规则(取自“编码规则设置”)
|
|
|
string sQUOTATIONCODE = headData.QUOTATIONCODE.ToString().Trim();
|
|
|
if (sQUOTATIONCODE == "")
|
|
|
{
|
|
|
sQUOTATIONCODE = MsCrmQuotationDAL.getCodeRuleWmsOut("报价编号", "QUOTATIONCODE", 1, Convert.ToString(Session["USERID"]).Trim(), Convert.ToString(Session["COMPANYID"]).Trim());
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 基本信息
|
|
|
headData.QUOTATIONCODE = sQUOTATIONCODE;//报价编号
|
|
|
headData.CLIENTGID = "";//相关联的潜在客户GID
|
|
|
headData.DESCRIPTION = headData.SHORTNAME;//客户全称
|
|
|
headData.CORPID = Convert.ToString(Session["COMPANYID"]).ToString().Trim();//所属分公司代码
|
|
|
headData.LANE = "";//航线
|
|
|
headData.ETD = DateTime.Now;//开船日期
|
|
|
headData.ENTREPORT = "";//中转港
|
|
|
headData.TT = "";//航程
|
|
|
headData.CONTACTNAME = "";//CONTACTNAME
|
|
|
headData.WEEK = "";//WEEK
|
|
|
#endregion
|
|
|
//
|
|
|
if (opStatus == "add")
|
|
|
{
|
|
|
headData.GID = Guid.NewGuid().ToString();//惟一值
|
|
|
headData.MODIFIEDUSER = Convert.ToString(Session["USERID"]);//最后一次操作人
|
|
|
headData.MODIFIEDTIME = DateTime.Now;//最后一次操作时间
|
|
|
//
|
|
|
headData.DbOperationType = DbOperationType.DbotIns;
|
|
|
}
|
|
|
else if (opStatus == "edit")
|
|
|
{
|
|
|
headData.MODIFIEDUSER = Convert.ToString(Session["USERID"]);//最后一次操作人
|
|
|
headData.MODIFIEDTIME = DateTime.Now;//最后一次操作时间
|
|
|
//
|
|
|
headData.DbOperationType = DbOperationType.DbotUpd;
|
|
|
headData.ModelUIStatus = "E";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
headData.DbOperationType = DbOperationType.DbotDel;
|
|
|
}
|
|
|
|
|
|
if (isPost)
|
|
|
{
|
|
|
var modb = new ModelObjectDB();
|
|
|
DBResult result = modb.Save(headData);
|
|
|
if (result.Success == true)
|
|
|
{
|
|
|
#region 明细表保存
|
|
|
if (bodyList != null)
|
|
|
{
|
|
|
int n = 1;
|
|
|
foreach (var enumValue in bodyList)
|
|
|
{
|
|
|
#region 默认值
|
|
|
CrmQuotationDetailEntity headRow = new CrmQuotationDetailEntity();
|
|
|
headRow.LINKGID = headData.GID.ToString().Trim();//主表关联GID
|
|
|
headRow.FEETYPE = enumValue.FEETYPE == null ? "" : enumValue.FEETYPE.ToString().Trim();//费用类型
|
|
|
headRow.FEENAME = enumValue.FEENAME == null ? "" : enumValue.FEENAME.ToString().Trim();//费用中文名称
|
|
|
headRow.UNIT = enumValue.UNIT == null ? "" : enumValue.UNIT.ToString().Trim();//单位标准
|
|
|
headRow.UNITPRICE = enumValue.UNITPRICE;//单价
|
|
|
headRow.CURRENCY = enumValue.CURRENCY == null ? "" : enumValue.CURRENCY.ToString().Trim();//币别
|
|
|
headRow.CARRIER = enumValue.CARRIER == null ? "" : enumValue.CARRIER.ToString().Trim();//船公司
|
|
|
headRow.REMARK = enumValue.REMARK == null ? "" : enumValue.REMARK.ToString().Trim();//备注
|
|
|
//
|
|
|
headRow.CREATEUSER = Convert.ToString(Session["USERID"]);//创建人
|
|
|
headRow.CREATETIME = DateTime.Now;//创建时间
|
|
|
headRow.MODIFIEDUSER = Convert.ToString(Session["USERID"]);//最后一次更新操作人
|
|
|
headRow.MODIFIEDTIME = DateTime.Now;//最后一次更新操作时间
|
|
|
|
|
|
//需求编号:SR2017071700006-2、3、4
|
|
|
if (headRow.CURRENCY == "RMB")
|
|
|
{
|
|
|
headRow.USDHJ = 0;
|
|
|
}
|
|
|
else if (headRow.CURRENCY == "USD")
|
|
|
{
|
|
|
headRow.USDHJ = headRow.UNITPRICE;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
string sLs = "select USDHJ=isnull(convert(decimal(18, 2), (" + headRow.UNITPRICE + "*(isnull((select top 1 VALUE from [currency_exchange] where (select top 1 [CODENAME] from [code_currency] where gid=[currency_exchange].[CURRENCYID])='" + headRow.CURRENCY + "' and [STARTTIME]<='" + headData.CREATETIME + "' and [ENDTIME]>='" + headData.CREATETIME + "'),0)/isnull((select top 1 VALUE from [currency_exchange] where (select top 1 [CODENAME] from [code_currency] where gid=[currency_exchange].[CURRENCYID])='USD' and [STARTTIME]<='" + headData.CREATETIME + "' and [ENDTIME]>='" + headData.CREATETIME + "'),0)))),0)";
|
|
|
Decimal dl = Decimal.Parse(T_ALL_DA.GetStrSQL("USDHJ", sLs));
|
|
|
headRow.USDHJ = dl;
|
|
|
}
|
|
|
#endregion
|
|
|
//
|
|
|
if (enumValue.GID.ToString().Trim() == "*" || enumValue.GID.ToString().Trim() == "")//"add"
|
|
|
{
|
|
|
headRow.GID = Guid.NewGuid().ToString();
|
|
|
headRow.DbOperationType = DbOperationType.DbotIns;
|
|
|
}
|
|
|
else//"edit"
|
|
|
{
|
|
|
headRow.GID = enumValue.GID.ToString().Trim();//唯一编码
|
|
|
headRow.DbOperationType = DbOperationType.DbotUpd;
|
|
|
headRow.ModelUIStatus = "E";
|
|
|
}
|
|
|
//
|
|
|
modb = new ModelObjectDB();
|
|
|
result = modb.Save(headRow);
|
|
|
if (result.Message.ToString().IndexOf("插入重复键") > -1)
|
|
|
{
|
|
|
errorstr += "重复数据不再重复插入!";
|
|
|
}
|
|
|
n++;
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
}
|
|
|
var jsonRespose = new JsonResponse
|
|
|
{
|
|
|
Success = result.Success,
|
|
|
Message = result.Message,
|
|
|
Data = MsCrmQuotationDAL.GetData("GID='" + headData.GID.ToString().Trim() + "'", Convert.ToString(Session["USERID"]), Convert.ToString(Session["SHOWNAME"]), Convert.ToString(Session["COMPANYID"]))
|
|
|
};
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
|
|
|
}
|
|
|
else {
|
|
|
var jsonRespose = new JsonResponse { Success = false, Message =errorstr };
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 保存明细
|
|
|
public ContentResult SaveDetail(string body, string sLINKGID)
|
|
|
{
|
|
|
if (Convert.ToString(Session["COMPANYID"]).ToString().Trim() == "" || Convert.ToString(Session["USERID"]).ToString().Trim() == "" || Convert.ToString(Session["CODENAME"]).ToString().Trim() == "" || Convert.ToString(Session["SHOWNAME"]).ToString().Trim() == "" || Convert.ToString(Session["DEPTNAME"]).ToString().Trim() == "")
|
|
|
{
|
|
|
var jsonRespose2 = new JsonResponse { Success = false, Message = "登录超时,请退出系统重新登录!" };
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose2) };
|
|
|
}
|
|
|
//
|
|
|
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
|
|
|
var bodyList = JsonConvert.Deserialize<List<CrmQuotationDetailEntity>>(body);
|
|
|
DBResult result = null;
|
|
|
var errorstr = "";
|
|
|
|
|
|
#region 明细表保存
|
|
|
if (bodyList != null)
|
|
|
{
|
|
|
string sLs = "select top 1 CREATETIME from crm_quotation where gid='" + sLINKGID + "'";
|
|
|
string strCREATETIME = T_ALL_DA.GetStrSQL("CREATETIME", sLs);
|
|
|
|
|
|
int n = 1;
|
|
|
foreach (var enumValue in bodyList)
|
|
|
{
|
|
|
#region 默认值
|
|
|
CrmQuotationDetailEntity headRow = new CrmQuotationDetailEntity();
|
|
|
headRow.LINKGID = sLINKGID;//主表关联GID
|
|
|
headRow.FEETYPE = enumValue.FEETYPE == null ? "" : enumValue.FEETYPE.ToString().Trim();//费用类型
|
|
|
headRow.FEENAME = enumValue.FEENAME == null ? "" : enumValue.FEENAME.ToString().Trim();//费用中文名称
|
|
|
headRow.UNIT = enumValue.UNIT == null ? "" : enumValue.UNIT.ToString().Trim();//单位标准
|
|
|
headRow.UNITPRICE = enumValue.UNITPRICE;//单价
|
|
|
headRow.CURRENCY = enumValue.CURRENCY == null ? "" : enumValue.CURRENCY.ToString().Trim();//币别
|
|
|
headRow.CARRIER = enumValue.CARRIER == null ? "" : enumValue.CARRIER.ToString().Trim();//船公司
|
|
|
headRow.REMARK = enumValue.REMARK == null ? "" : enumValue.REMARK.ToString().Trim();//备注
|
|
|
//
|
|
|
headRow.CREATEUSER = Convert.ToString(Session["USERID"]);//创建人
|
|
|
headRow.CREATETIME = DateTime.Now;//创建时间
|
|
|
headRow.MODIFIEDUSER = Convert.ToString(Session["USERID"]);//最后一次更新操作人
|
|
|
headRow.MODIFIEDTIME = DateTime.Now;//最后一次更新操作时间
|
|
|
|
|
|
//需求编号:SR2017071700006-2、3、4
|
|
|
if (headRow.CURRENCY == "RMB")
|
|
|
{
|
|
|
headRow.USDHJ = 0;
|
|
|
}
|
|
|
else if (headRow.CURRENCY == "USD")
|
|
|
{
|
|
|
headRow.USDHJ = headRow.UNITPRICE;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
sLs = "select USDHJ=isnull(convert(decimal(18, 2), (" + headRow.UNITPRICE + "*(isnull((select top 1 VALUE from [currency_exchange] where (select top 1 [CODENAME] from [code_currency] where gid=[currency_exchange].[CURRENCYID])='" + headRow.CURRENCY + "' and [STARTTIME]<='" + strCREATETIME + "' and [ENDTIME]>='" + strCREATETIME + "'),0)/isnull((select top 1 VALUE from [currency_exchange] where (select top 1 [CODENAME] from [code_currency] where gid=[currency_exchange].[CURRENCYID])='USD' and [STARTTIME]<='" + strCREATETIME + "' and [ENDTIME]>='" + strCREATETIME + "'),0)))),0)";
|
|
|
Decimal dl = Decimal.Parse(T_ALL_DA.GetStrSQL("USDHJ", sLs));
|
|
|
headRow.USDHJ = dl;
|
|
|
}
|
|
|
#endregion
|
|
|
//
|
|
|
if (enumValue.GID.ToString().Trim() == "*" || enumValue.GID.ToString().Trim() == "")//"add"
|
|
|
{
|
|
|
headRow.GID = Guid.NewGuid().ToString();
|
|
|
headRow.DbOperationType = DbOperationType.DbotIns;
|
|
|
}
|
|
|
else//"edit"
|
|
|
{
|
|
|
headRow.GID = enumValue.GID.ToString().Trim();//唯一编码
|
|
|
headRow.DbOperationType = DbOperationType.DbotUpd;
|
|
|
headRow.ModelUIStatus = "E";
|
|
|
}
|
|
|
//
|
|
|
var modb = new ModelObjectDB();
|
|
|
result = modb.Save(headRow);
|
|
|
if (result.Message.ToString().IndexOf("插入重复键") > -1)
|
|
|
{
|
|
|
errorstr += "重复数据不再重复插入!";
|
|
|
}
|
|
|
n++;
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
var jsonRespose = new JsonResponse
|
|
|
{
|
|
|
Success = result.Success,
|
|
|
Message = result.Message,
|
|
|
Data = MsCrmQuotationDAL.GetDataDetail("LINKGID='" + sLINKGID + "'")
|
|
|
};
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 删除
|
|
|
public ContentResult Delete(string gids)
|
|
|
{
|
|
|
if (Convert.ToString(Session["COMPANYID"]).ToString().Trim() == "" || Convert.ToString(Session["USERID"]).ToString().Trim() == "" || Convert.ToString(Session["CODENAME"]).ToString().Trim() == "" || Convert.ToString(Session["SHOWNAME"]).ToString().Trim() == "" || Convert.ToString(Session["DEPTNAME"]).ToString().Trim() == "")
|
|
|
{
|
|
|
var jsonRespose2 = new JsonResponse { Success = false, Message = "登录超时,请退出系统重新登录!" };
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose2) };
|
|
|
}
|
|
|
//
|
|
|
var isfee = MsCrmQuotationDAL.GetFeeCount(gids);
|
|
|
if (isfee)
|
|
|
{
|
|
|
var jsonRespose = new JsonResponse { Success = false, Message ="此票业务存在费用,请先删除费用才能删除此票业务!" };
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
|
|
|
}
|
|
|
else {
|
|
|
var modb = new ModelObjectDB();
|
|
|
DBResult result = MsCrmQuotationDAL.Delete(gids);
|
|
|
var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message };
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 删除明细
|
|
|
public ContentResult DeleteDetail(string gids)
|
|
|
{
|
|
|
if (Convert.ToString(Session["COMPANYID"]).ToString().Trim() == "" || Convert.ToString(Session["USERID"]).ToString().Trim() == "" || Convert.ToString(Session["CODENAME"]).ToString().Trim() == "" || Convert.ToString(Session["SHOWNAME"]).ToString().Trim() == "" || Convert.ToString(Session["DEPTNAME"]).ToString().Trim() == "")
|
|
|
{
|
|
|
var jsonRespose2 = new JsonResponse { Success = false, Message = "登录超时,请退出系统重新登录!" };
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose2) };
|
|
|
}
|
|
|
//
|
|
|
var modb = new ModelObjectDB();
|
|
|
DBResult result = MsCrmQuotationDAL.DeleteDetail(gids);
|
|
|
var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message };
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 品名code_msds _下拉框
|
|
|
public JsonResult GetCodeMsdsList()
|
|
|
{
|
|
|
var evList = MsCrmQuotationDAL.GetCodeMsdsList();
|
|
|
if (evList.Count == 0)
|
|
|
{
|
|
|
return Json(new { success = true, data = new CodeMsdsEntity() });
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
return Json(new { success = true, data = evList.ToList() });
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
}
|
|
|
}
|
|
|
|