You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
683 lines
44 KiB
683 lines
44 KiB
using EasyBL.WebApi.Message;
|
|
using Entity.Sugar;
|
|
using Entity.ViewModels;
|
|
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Linq;
|
|
using SqlSugar;
|
|
using SqlSugar.Base;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using System.Text.RegularExpressions;
|
|
|
|
namespace EasyBL.WEBAPP.CRM
|
|
{
|
|
public class Customers_QryService : ServiceBase
|
|
{
|
|
#region 客戶管理(分頁查詢)
|
|
|
|
/// <summary>
|
|
/// 客戶管理(分頁查詢)
|
|
/// </summary>
|
|
/// <param name="i_crm"></param>
|
|
/// <returns></returns>
|
|
public ResponseMessage QueryPage(RequestMessage i_crm)
|
|
{
|
|
ResponseMessage rm = null;
|
|
string sMsg = null;
|
|
var db = SugarBase.GetIntance();
|
|
try
|
|
{
|
|
do
|
|
{
|
|
var pml = new PageModel
|
|
{
|
|
PageIndex = _fetchInt(i_crm, @"pageIndex"),
|
|
PageSize = _fetchInt(i_crm, @"pageSize")
|
|
};
|
|
var iPageCount = 0;
|
|
var sSortField = _fetchString(i_crm, @"sortField");
|
|
var sSortOrder = _fetchString(i_crm, @"sortOrder");
|
|
|
|
var sCustomerNO = _fetchString(i_crm, @"CustomerNO");
|
|
var sUniCode = _fetchString(i_crm, @"UniCode");
|
|
var sCustomerName = _fetchString(i_crm, @"CustomerName");
|
|
var sCreateUser = _fetchString(i_crm, @"CreateUser");
|
|
var sTransactionType = _fetchString(i_crm, @"TransactionType");
|
|
var sEffective = _fetchString(i_crm, @"Effective");
|
|
var sState = _fetchString(i_crm, @"State");
|
|
var sIsAudit = _fetchString(i_crm, @"IsAudit");
|
|
var sCreateDateStart = _fetchString(i_crm, @"CreateDateStart");
|
|
var sCreateDateEnd = _fetchString(i_crm, @"CreateDateEnd");
|
|
var sModifyDateStart = _fetchString(i_crm, @"ModifyDateStart");
|
|
var sModifyDateEnd = _fetchString(i_crm, @"ModifyDateEnd");
|
|
var bExcel = _fetchBool(i_crm, @"Excel");
|
|
var sExcelType = _fetchString(i_crm, @"ExcelType");
|
|
|
|
string[] saEffective = null;
|
|
string[] saIsAudit = null;
|
|
string[] saTransactionType = null;
|
|
if (!string.IsNullOrEmpty(sEffective))
|
|
{
|
|
saEffective = sEffective.Split(',');
|
|
}
|
|
if (!string.IsNullOrEmpty(sIsAudit))
|
|
{
|
|
saIsAudit = sIsAudit.Split(',');
|
|
}
|
|
if (!string.IsNullOrEmpty(sTransactionType))
|
|
{
|
|
saTransactionType = sTransactionType.Split(',');
|
|
}
|
|
var rCreateDateStart = new DateTime();
|
|
var rCreateDateEnd = new DateTime();
|
|
var rModifyDateStart = new DateTime();
|
|
var rModifyDateEnd = new DateTime();
|
|
if (!string.IsNullOrEmpty(sCreateDateStart))
|
|
{
|
|
rCreateDateStart = SqlFunc.ToDate(sCreateDateStart);
|
|
}
|
|
if (!string.IsNullOrEmpty(sCreateDateEnd))
|
|
{
|
|
rCreateDateEnd = SqlFunc.ToDate(sCreateDateEnd).AddDays(1);
|
|
}
|
|
if (!string.IsNullOrEmpty(sModifyDateStart))
|
|
{
|
|
rModifyDateStart = SqlFunc.ToDate(sModifyDateStart);
|
|
}
|
|
if (!string.IsNullOrEmpty(sModifyDateEnd))
|
|
{
|
|
rModifyDateEnd = SqlFunc.ToDate(sModifyDateEnd).AddDays(1);
|
|
}
|
|
|
|
pml.DataList = db.Queryable<OTB_CRM_Customers, OTB_SYS_Members, OTB_CRM_CustomersMST>
|
|
((t1, t2, t3) =>
|
|
new object[] {
|
|
JoinType.Inner, t1.OrgID == t2.OrgID && t1.CreateUser == t2.MemberID,
|
|
JoinType.Inner, t3.customer_guid == t1.guid
|
|
}
|
|
)
|
|
.Where((t1, t2) => t1.OrgID == i_crm.ORIGID && t1.UniCode.Contains(sUniCode) && SqlFunc.ContainsArray(saTransactionType, t1.TransactionType) && SqlFunc.ContainsArray(saEffective, t1.Effective) && SqlFunc.ContainsArray(saIsAudit, t1.IsAudit) && (t1.CustomerCName.Contains(sCustomerName) || t1.CustomerEName.Contains(sCustomerName) || t1.CustomerShotCName.Contains(sCustomerName)))
|
|
.WhereIF(!string.IsNullOrEmpty(sCustomerNO), (t3) => t3.CustomerNO.Contains(sCustomerNO))
|
|
.WhereIF(string.IsNullOrEmpty(sCustomerNO), (t3) => t3.Effective == "Y")
|
|
.WhereIF(!string.IsNullOrEmpty(sCreateUser), (t1, t2) => t1.CreateUser == sCreateUser)
|
|
.WhereIF(!string.IsNullOrEmpty(sCreateDateStart), (t1, t2) => t1.CreateDate >= rCreateDateStart.Date)
|
|
.WhereIF(!string.IsNullOrEmpty(sCreateDateEnd), (t1, t2) => t1.CreateDate <= rCreateDateEnd.Date)
|
|
.WhereIF(!string.IsNullOrEmpty(sModifyDateStart), (t1, t2) => t1.ModifyDate >= rModifyDateStart.Date)
|
|
.WhereIF(!string.IsNullOrEmpty(sModifyDateEnd), (t1, t2) => t1.ModifyDate <= rModifyDateEnd.Date)
|
|
.WhereIF(!string.IsNullOrEmpty(sState), (t1, t2) => t1.State == sState)
|
|
.Select((t1, t2) => new OTB_CRM_Customers
|
|
{
|
|
guid = SqlFunc.GetSelfAndAutoFill(t1.guid),
|
|
CreateUserName = t2.MemberName
|
|
})
|
|
.MergeTable()
|
|
.OrderBy(sSortField, sSortOrder)
|
|
.ToPageList(pml.PageIndex, bExcel ? 100000 : pml.PageSize, ref iPageCount);
|
|
pml.Total = iPageCount;
|
|
|
|
rm = new SuccessResponseMessage(null, i_crm);
|
|
if (bExcel)
|
|
{
|
|
var sFileName = "";
|
|
var oHeader = new Dictionary<string, string>();
|
|
var listMerge = new List<Dictionary<string, int>>();
|
|
var dicAlain = new Dictionary<string, string>();
|
|
var dt_new = new DataTable();
|
|
var saCustomers1 = pml.DataList;
|
|
var saCustomers = pml.DataList as List<OTB_CRM_Customers>;
|
|
switch (sExcelType)
|
|
{
|
|
case "Cus_BasicInformation":
|
|
{
|
|
sFileName = "客戶基本資料";
|
|
oHeader = new Dictionary<string, string>
|
|
{
|
|
{ "RowIndex", "項次" },
|
|
{ "CustomerNO", "客戶代號" },
|
|
{ "CustomerCName", "公司中文名稱" },
|
|
{ "CustomerEName", "公司英文名稱" },
|
|
{ "CustomerShotCName", "客戶簡稱" },
|
|
{ "UniCode", "統一編號" },
|
|
{ "Telephone", "公司電話" },
|
|
{ "FAX", "公司傳真" },
|
|
{ "Address", "地址" },
|
|
{ "CreateUser", "創建人代號" },
|
|
{ "CreateUserName", "創建人名稱" },
|
|
{ "CreateDate", "創建時間" },
|
|
{ "IsAudit", "審核狀態" }
|
|
};
|
|
dt_new.Columns.Add("RowIndex");
|
|
dt_new.Columns.Add("CustomerNO");
|
|
dt_new.Columns.Add("CustomerCName");
|
|
dt_new.Columns.Add("CustomerEName");
|
|
dt_new.Columns.Add("CustomerShotCName");
|
|
dt_new.Columns.Add("UniCode");
|
|
dt_new.Columns.Add("Telephone");
|
|
dt_new.Columns.Add("FAX");
|
|
dt_new.Columns.Add("Address");
|
|
dt_new.Columns.Add("CreateUser");
|
|
dt_new.Columns.Add("CreateUserName");
|
|
dt_new.Columns.Add("CreateDate");
|
|
dt_new.Columns.Add("IsAudit");
|
|
foreach (var customer in saCustomers)
|
|
{
|
|
var row_new = dt_new.NewRow();
|
|
row_new["RowIndex"] = customer.RowIndex;
|
|
row_new["CustomerNO"] = customer.CustomerNO;
|
|
row_new["CustomerCName"] = customer.CustomerCName;
|
|
row_new["CustomerEName"] = customer.CustomerEName;
|
|
row_new["CustomerShotCName"] = customer.CustomerShotCName;
|
|
row_new["UniCode"] = customer.UniCode;
|
|
row_new["Telephone"] = customer.Telephone;
|
|
row_new["FAX"] = customer.FAX;
|
|
row_new["Address"] = customer.Address;
|
|
row_new["CreateUser"] = customer.CreateUser;
|
|
row_new["CreateUserName"] = customer.CreateUserName;
|
|
row_new["CreateDate"] = Convert.ToDateTime(customer.CreateDate).ToString("yyyy/MM/dd"); ;
|
|
row_new["IsAudit"] = customer.IsAudit == "Y" ? "已審核" : customer.IsAudit == "N" ? "未審核" : "審核中";
|
|
dt_new.Rows.Add(row_new);
|
|
}
|
|
dicAlain = ExcelService.GetExportAlain(oHeader, "CustomerNO,UniCode,Telephone,FAX,CreateUser,CreateUserName,CreateDate,IsAudit");
|
|
}
|
|
break;
|
|
|
|
case "Cus_Email":
|
|
{
|
|
sFileName = "客戶資料(名稱^Email)";
|
|
oHeader = new Dictionary<string, string>
|
|
{
|
|
{ "RowIndex", "項次" },
|
|
{ "CustomerCName", "公司中文名稱" },
|
|
{ "CustomerEName", "公司英文名稱" },
|
|
{ "Email", "Email" },
|
|
{ "Contactor", "聯絡人" },
|
|
{ "ContactorEmail", "聯絡人Email" }
|
|
};
|
|
dicAlain = ExcelService.GetExportAlain(oHeader, new string[] { "Email", "Contactor", "ContactorEmail" });
|
|
dt_new.Columns.Add("RowIndex");
|
|
dt_new.Columns.Add("CustomerCName");
|
|
dt_new.Columns.Add("CustomerEName");
|
|
dt_new.Columns.Add("Email");
|
|
dt_new.Columns.Add("Contactor");
|
|
dt_new.Columns.Add("ContactorEmail");
|
|
var iChildIndex = 0;
|
|
foreach (var customer in saCustomers)
|
|
{
|
|
var iLastIndex = iChildIndex;
|
|
var row_new = dt_new.NewRow();
|
|
row_new["RowIndex"] = customer.RowIndex;
|
|
row_new["CustomerCName"] = customer.CustomerCName;
|
|
row_new["CustomerEName"] = customer.CustomerEName;
|
|
row_new["Email"] = customer.Email;
|
|
row_new["Contactor"] = "";
|
|
row_new["ContactorEmail"] = "";
|
|
var jaContactors = (JArray)JsonConvert.DeserializeObject(customer.Contactors);
|
|
if (jaContactors != null && jaContactors.Count > 0)
|
|
{
|
|
var idx = 0;
|
|
foreach (JObject jo in jaContactors)
|
|
{
|
|
if (idx != 0)
|
|
{
|
|
row_new = dt_new.NewRow();
|
|
row_new["RowIndex"] = "";
|
|
row_new["CustomerCName"] = "";
|
|
row_new["CustomerEName"] = "";
|
|
row_new["Email"] = "";
|
|
row_new["Contactor"] = jo["FullName"];
|
|
row_new["ContactorEmail"] = jo["Email"];
|
|
dt_new.Rows.InsertAt(row_new, iChildIndex);
|
|
}
|
|
else
|
|
{
|
|
row_new["Contactor"] = jo["FullName"];
|
|
row_new["ContactorEmail"] = jo["Email"];
|
|
dt_new.Rows.Add(row_new);
|
|
}
|
|
idx++;
|
|
iChildIndex++;
|
|
}
|
|
if (jaContactors.Count > 1)
|
|
{
|
|
var dicMerge = new Dictionary<string, int>
|
|
{
|
|
{ "FirstRow", iLastIndex + 3 },
|
|
{ "FirstCol", 0 },
|
|
{ "RowCount", jaContactors.Count },
|
|
{ "ColCount", 1 }
|
|
};
|
|
listMerge.Add(dicMerge);
|
|
dicMerge = new Dictionary<string, int>
|
|
{
|
|
{ "FirstRow", iLastIndex + 3 },
|
|
{ "FirstCol", 1 },
|
|
{ "RowCount", jaContactors.Count },
|
|
{ "ColCount", 1 }
|
|
};
|
|
listMerge.Add(dicMerge);
|
|
dicMerge = new Dictionary<string, int>
|
|
{
|
|
{ "FirstRow", iLastIndex + 3 },
|
|
{ "FirstCol", 2 },
|
|
{ "RowCount", jaContactors.Count },
|
|
{ "ColCount", 1 }
|
|
};
|
|
listMerge.Add(dicMerge);
|
|
dicMerge = new Dictionary<string, int>
|
|
{
|
|
{ "FirstRow", iLastIndex + 3 },
|
|
{ "FirstCol", 3 },
|
|
{ "RowCount", jaContactors.Count },
|
|
{ "ColCount", 1 }
|
|
};
|
|
listMerge.Add(dicMerge);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
dt_new.Rows.Add(row_new);
|
|
iChildIndex++;
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
|
|
case "Cus_WenzhongCusFile":
|
|
{
|
|
sFileName = "文中客供商檔";
|
|
oHeader = new Dictionary<string, string>
|
|
{
|
|
{ "RowIndex", "項次" },
|
|
{ "CustomerNO", "客戶供應商代號" },
|
|
{ "CusField1", "客戶供應商類別" },
|
|
{ "CustomerShotCName", "客戶供應商簡稱" },
|
|
{ "CustomerCName", "客戶供應商全稱" },
|
|
{ "CusField2", "行業別" },
|
|
{ "CusField3", "類別科目代號" },
|
|
{ "UniCode", "統一編號" },
|
|
{ "CusField4", "稅籍編號" },
|
|
{ "CusField5", "郵遞區號" },
|
|
{ "InvoiceAddress", "發票地址" },
|
|
{ "Address", " 聯絡地址" },
|
|
{ "CusField6", "送貨地址" },
|
|
{ "CusField7", "電話(發票地址)" },
|
|
{ "Telephone", "電話(公司地址)" },
|
|
{ "CusField8", "電話(送貨地址)" },
|
|
{ "FAX", "傳真" },
|
|
{ "CusField9", "數據機種類" },
|
|
{ "CusField10", "傳呼機號碼" },
|
|
{ "CusField11", "行動電話" },
|
|
{ "CusField12", "網址" },
|
|
{ "CusField13", "負責人" },
|
|
{ "CusField14", "聯絡人" },
|
|
{ "Memo", "備註(30C" },
|
|
{ "CusField15", "銷售折數" },
|
|
{ "CusField16", "等級" },
|
|
{ "CusField17", "區域" },
|
|
{ "CusField18", "進貨折數" },
|
|
{ "CusField19", "部門|工地編號" },
|
|
{ "CusField20", "業務員代號" },
|
|
{ "CusField21", "服務人員" },
|
|
{ "CusField22", "建立日期" },
|
|
{ "CusField23", "最近交易日" },
|
|
{ "CusField24", "信用額度" },
|
|
{ "CusField25", "保證額度" },
|
|
{ "CusField26", "抵押額度" },
|
|
{ "CusField27", "已用額度" },
|
|
{ "CusField28", "開立發票方式" },
|
|
{ "CusField29", "收款方式" },
|
|
{ "CusField30", "匯款銀行代號" },
|
|
{ "CusField31", "匯款帳號" },
|
|
{ "CusField32", "結帳方式(作廢不使用)" },
|
|
{ "CusField33", "銷貨後幾個月結帳" },
|
|
{ "CusField34", "銷貨後逢幾日結帳" },
|
|
{ "CusField35", "結帳後幾個月收款" },
|
|
{ "CusField36", "結帳後逢幾日收款" },
|
|
{ "CusField37", "收款後幾個月兌現" },
|
|
{ "CusField38", "收款後逢幾日兌現" },
|
|
{ "CusField39", "進貨後幾個月結帳" },
|
|
{ "CusField40", "進貨後逢幾日結帳" },
|
|
{ "CusField41", "結帳後幾個月付款" },
|
|
{ "CusField42", "結帳後逢幾日付款" },
|
|
{ "CusField43", "付款後幾個月兌現" },
|
|
{ "CusField44", "付款後逢幾日兌現" },
|
|
{ "CusField45", "郵遞區號(聯絡地址)" },
|
|
{ "CusField46", "郵遞區號(送貨地址)" },
|
|
{ "CusField47", "職稱" },
|
|
{ "CusField48", "專案|項目編號" },
|
|
{ "CusField49", "請款客戶" },
|
|
{ "CusField50", "EAMIL ADDRS" },
|
|
{ "CusField51", "收款/付款方式(描述)" },
|
|
{ "CusField52", "交貨/收貨方式" },
|
|
{ "CusField53", "進出口交易方式" },
|
|
{ "CusField54", "交易幣別" },
|
|
{ "CusField55", "英文負責人" },
|
|
{ "CusField56", "英文聯絡人" },
|
|
{ "CusField57", "電子發票通知方式" },
|
|
{ "CusField58", "發票預設捐贈" },
|
|
{ "CusField59", "預設發票捐贈對象" },
|
|
{ "CusField60", "自定義欄位一" },
|
|
{ "CusField61", "自定義欄位二" },
|
|
{ "CusField62", "自定義欄位三" },
|
|
{ "CusField63", "自定義欄位四" },
|
|
{ "CusField64", "自定義欄位五" },
|
|
{ "CusField65", "自定義欄位六" },
|
|
{ "CusField66", "自定義欄位七" },
|
|
{ "CusField67", "自定義欄位八" },
|
|
{ "CusField68", "自定義欄位九" },
|
|
{ "CusField69", "自定義欄位十" },
|
|
{ "CusField71", "自定義欄位十一" },
|
|
{ "CusField72", "自定義欄位十二" },
|
|
{ "CusField73", "會員卡號" },
|
|
{ "CusField74", "客供商英文名稱" },
|
|
{ "CusField75", "客戶英文地址" },
|
|
{ "CusField76", "銷貨結帳終止日" },
|
|
{ "CusField77", "進貨結帳終止日" },
|
|
{ "CusField78", "銷貨收款週期選項" },
|
|
{ "CusField79", "進貨付款週期選項" },
|
|
{ "CusField80", "進貨收付條件" },
|
|
{ "CusField81", "客供商英文聯絡電話" },
|
|
{ "CusField82", "匯款戶名" },
|
|
{ "CusField83", "使用電子發票" },
|
|
{ "CusField84", "單價含稅否" },
|
|
{ "CusField85", "批次結帳" },
|
|
{ "CusField86", "發票服務平台登入密碼" },
|
|
{ "CusField87", "絡地址經度" },
|
|
{ "CusField88", "聯絡地址緯度" }
|
|
};
|
|
|
|
dt_new.Columns.Add("RowIndex");
|
|
dt_new.Columns.Add("CustomerNO");
|
|
dt_new.Columns.Add("CusField1");
|
|
dt_new.Columns.Add("CustomerShotCName");
|
|
dt_new.Columns.Add("CustomerCName");
|
|
dt_new.Columns.Add("CusField2");
|
|
dt_new.Columns.Add("CusField3");
|
|
dt_new.Columns.Add("UniCode");
|
|
dt_new.Columns.Add("CusField4");
|
|
dt_new.Columns.Add("CusField5");
|
|
dt_new.Columns.Add("InvoiceAddress");
|
|
dt_new.Columns.Add("Address");
|
|
dt_new.Columns.Add("CusField6");
|
|
dt_new.Columns.Add("CusField7");
|
|
dt_new.Columns.Add("Telephone");
|
|
dt_new.Columns.Add("CusField8");
|
|
dt_new.Columns.Add("FAX");
|
|
dt_new.Columns.Add("CusField9");
|
|
dt_new.Columns.Add("CusField10");
|
|
dt_new.Columns.Add("CusField11");
|
|
dt_new.Columns.Add("CusField12");
|
|
dt_new.Columns.Add("CusField13");
|
|
dt_new.Columns.Add("CusField14");
|
|
dt_new.Columns.Add("Memo");
|
|
dt_new.Columns.Add("CusField15");
|
|
dt_new.Columns.Add("CusField16");
|
|
dt_new.Columns.Add("CusField17");
|
|
dt_new.Columns.Add("CusField18");
|
|
dt_new.Columns.Add("CusField19");
|
|
dt_new.Columns.Add("CusField20");
|
|
dt_new.Columns.Add("CusField21");
|
|
dt_new.Columns.Add("CusField22");
|
|
dt_new.Columns.Add("CusField23");
|
|
dt_new.Columns.Add("CusField24");
|
|
dt_new.Columns.Add("CusField25");
|
|
dt_new.Columns.Add("CusField26");
|
|
dt_new.Columns.Add("CusField27");
|
|
dt_new.Columns.Add("CusField28");
|
|
dt_new.Columns.Add("CusField29");
|
|
dt_new.Columns.Add("CusField30");
|
|
dt_new.Columns.Add("CusField31");
|
|
dt_new.Columns.Add("CusField32");
|
|
dt_new.Columns.Add("CusField33");
|
|
dt_new.Columns.Add("CusField34");
|
|
dt_new.Columns.Add("CusField35");
|
|
dt_new.Columns.Add("CusField36");
|
|
dt_new.Columns.Add("CusField37");
|
|
dt_new.Columns.Add("CusField38");
|
|
dt_new.Columns.Add("CusField39");
|
|
dt_new.Columns.Add("CusField40");
|
|
dt_new.Columns.Add("CusField41");
|
|
dt_new.Columns.Add("CusField42");
|
|
dt_new.Columns.Add("CusField43");
|
|
dt_new.Columns.Add("CusField44");
|
|
dt_new.Columns.Add("CusField45");
|
|
dt_new.Columns.Add("CusField46");
|
|
dt_new.Columns.Add("CusField47");
|
|
dt_new.Columns.Add("CusField48");
|
|
dt_new.Columns.Add("CusField49");
|
|
dt_new.Columns.Add("CusField50");
|
|
dt_new.Columns.Add("CusField51");
|
|
dt_new.Columns.Add("CusField52");
|
|
dt_new.Columns.Add("CusField53");
|
|
dt_new.Columns.Add("CusField54");
|
|
dt_new.Columns.Add("CusField55");
|
|
dt_new.Columns.Add("CusField56");
|
|
dt_new.Columns.Add("CusField57");
|
|
dt_new.Columns.Add("CusField58");
|
|
dt_new.Columns.Add("CusField59");
|
|
dt_new.Columns.Add("CusField60");
|
|
dt_new.Columns.Add("CusField61");
|
|
dt_new.Columns.Add("CusField62");
|
|
dt_new.Columns.Add("CusField63");
|
|
dt_new.Columns.Add("CusField64");
|
|
dt_new.Columns.Add("CusField65");
|
|
dt_new.Columns.Add("CusField66");
|
|
dt_new.Columns.Add("CusField67");
|
|
dt_new.Columns.Add("CusField68");
|
|
dt_new.Columns.Add("CusField69");
|
|
dt_new.Columns.Add("CusField70");
|
|
dt_new.Columns.Add("CusField71");
|
|
dt_new.Columns.Add("CusField72");
|
|
dt_new.Columns.Add("CusField73");
|
|
dt_new.Columns.Add("CusField74");
|
|
dt_new.Columns.Add("CusField75");
|
|
dt_new.Columns.Add("CusField76");
|
|
dt_new.Columns.Add("CusField77");
|
|
dt_new.Columns.Add("CusField78");
|
|
dt_new.Columns.Add("CusField79");
|
|
dt_new.Columns.Add("CusField80");
|
|
dt_new.Columns.Add("CusField81");
|
|
dt_new.Columns.Add("CusField82");
|
|
dt_new.Columns.Add("CusField83");
|
|
dt_new.Columns.Add("CusField84");
|
|
dt_new.Columns.Add("CusField85");
|
|
dt_new.Columns.Add("CusField86");
|
|
dt_new.Columns.Add("CusField87");
|
|
dt_new.Columns.Add("CusField88");
|
|
|
|
foreach (var customer in saCustomers)
|
|
{
|
|
var sName = string.IsNullOrEmpty(customer.CustomerCName) ? customer.CustomerEName : customer.CustomerCName;
|
|
var sEName = customer.CustomerEName;
|
|
if (sName.Trim() == "")
|
|
{
|
|
sName = sEName;
|
|
}
|
|
var sMemo = customer.Memo;
|
|
var sInvoiceAddress = customer.InvoiceAddress;
|
|
var sAddress = customer.Address;
|
|
var sTelephone = customer.Telephone;
|
|
|
|
var row_new = dt_new.NewRow();
|
|
row_new["RowIndex"] = customer.RowIndex;
|
|
row_new["CustomerCName"] = Common.CutByteString(sName, 60);
|
|
row_new["InvoiceAddress"] = Common.CutByteString(sInvoiceAddress, 60);
|
|
row_new["Address"] = Common.CutByteString(sAddress, 60);
|
|
row_new["Telephone"] = Common.CutByteString(sTelephone, 60);
|
|
row_new["Memo"] = Common.CutByteString(sMemo, 30);
|
|
row_new["CusField1"] = "0";
|
|
row_new["CusField2"] = "";
|
|
row_new["CusField3"] = "";
|
|
row_new["CusField4"] = "";
|
|
row_new["CusField5"] = "";
|
|
row_new["CusField6"] = "";
|
|
row_new["CusField7"] = "";
|
|
row_new["CusField8"] = "";
|
|
row_new["CusField9"] = "";
|
|
row_new["CusField10"] = "";
|
|
row_new["CusField11"] = "";
|
|
row_new["CusField12"] = "";
|
|
row_new["CusField13"] = "";
|
|
row_new["CusField14"] = "";
|
|
row_new["CusField15"] = "";
|
|
row_new["CusField16"] = "";
|
|
row_new["CusField17"] = "";
|
|
row_new["CusField18"] = "";
|
|
row_new["CusField19"] = "";
|
|
var _CreateUser = customer.CreateUser;
|
|
sCreateUser = _CreateUser.Split('.')[0];
|
|
row_new["CusField20"] = Common.CutByteString(_CreateUser, 30); ;
|
|
row_new["CusField21"] = "";
|
|
row_new["CusField22"] = "";
|
|
row_new["CusField23"] = "";
|
|
row_new["CusField24"] = "";
|
|
row_new["CusField25"] = "";
|
|
row_new["CusField26"] = "";
|
|
row_new["CusField27"] = "";
|
|
row_new["CusField28"] = "B,C".IndexOf(customer.TransactionType.Trim()) > -1 ? "6" : "5";
|
|
row_new["CusField29"] = "";
|
|
row_new["CusField30"] = "";
|
|
row_new["CusField31"] = "";
|
|
row_new["CusField32"] = "";
|
|
row_new["CusField33"] = "";
|
|
row_new["CusField34"] = "";
|
|
row_new["CusField35"] = "";
|
|
row_new["CusField36"] = "";
|
|
row_new["CusField37"] = "";
|
|
row_new["CusField38"] = "";
|
|
row_new["CusField39"] = "";
|
|
row_new["CusField40"] = "";
|
|
row_new["CusField41"] = "";
|
|
row_new["CusField42"] = "";
|
|
row_new["CusField43"] = "";
|
|
row_new["CusField44"] = "";
|
|
row_new["CusField45"] = "";
|
|
row_new["CusField46"] = "";
|
|
row_new["CusField47"] = "";
|
|
row_new["CusField48"] = "";
|
|
row_new["CusField49"] = customer.CustomerNO;
|
|
row_new["CusField50"] = "";
|
|
row_new["CusField51"] = "";
|
|
row_new["CusField52"] = "";
|
|
row_new["CusField53"] = "";
|
|
row_new["CusField54"] = "";
|
|
row_new["CusField55"] = "";
|
|
row_new["CusField56"] = "";
|
|
row_new["CusField57"] = "";
|
|
row_new["CusField58"] = "";
|
|
row_new["CusField59"] = "";
|
|
row_new["CusField60"] = "";
|
|
row_new["CusField61"] = "";
|
|
row_new["CusField62"] = "";
|
|
row_new["CusField63"] = "";
|
|
row_new["CusField64"] = "";
|
|
row_new["CusField65"] = "";
|
|
row_new["CusField66"] = "";
|
|
row_new["CusField67"] = "";
|
|
row_new["CusField68"] = "";
|
|
row_new["CusField69"] = "";
|
|
row_new["CusField70"] = "";
|
|
row_new["CusField71"] = "";
|
|
row_new["CusField72"] = "";
|
|
row_new["CusField73"] = "";
|
|
row_new["CusField74"] = Common.CutByteString(customer.CustomerEName, 120);
|
|
if (Regex.IsMatch(sAddress, "[\u4e00-\u9fa5]+"))
|
|
{
|
|
sAddress = "";
|
|
}
|
|
row_new["CusField75"] = Common.CutByteString(sAddress, 240);
|
|
row_new["CusField76"] = "";
|
|
row_new["CusField77"] = "";
|
|
row_new["CusField78"] = "";
|
|
row_new["CusField79"] = "";
|
|
row_new["CusField80"] = "";
|
|
row_new["CusField81"] = "";
|
|
row_new["CusField82"] = "";
|
|
row_new["CusField83"] = "";
|
|
row_new["CusField84"] = "";
|
|
row_new["CusField85"] = "";
|
|
row_new["CusField86"] = "";
|
|
row_new["CusField87"] = "";
|
|
row_new["CusField88"] = "";
|
|
dt_new.Rows.Add(row_new);
|
|
}
|
|
dicAlain = ExcelService.GetExportAlain(oHeader, "CustomerNO,UniCode,Telephone,FAX,CusField1");
|
|
}
|
|
break;
|
|
|
|
default:
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
var bOk = new ExcelService().CreateExcelByTb(dt_new, out string sPath, oHeader, dicAlain, listMerge, sFileName);
|
|
|
|
rm.DATA.Add(BLWording.REL, sPath);
|
|
}
|
|
else
|
|
{
|
|
rm.DATA.Add(BLWording.REL, pml);
|
|
}
|
|
} while (false);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
sMsg = Util.GetLastExceptionMsg(ex);
|
|
LogAndSendEmail(sMsg + "Params:" + JsonToString(i_crm), ex, i_crm.ORIGID, i_crm.USERID, nameof(Customers_QryService), "", "QueryPage(客戶管理(分頁查詢))", "", "", "");
|
|
}
|
|
finally
|
|
{
|
|
if (null != sMsg)
|
|
{
|
|
rm = new ErrorResponseMessage(sMsg, i_crm);
|
|
}
|
|
}
|
|
return rm;
|
|
}
|
|
|
|
#endregion 客戶管理(分頁查詢)
|
|
|
|
#region 客戶管理(單筆查詢)
|
|
|
|
/// <summary>
|
|
/// 客戶管理(單筆查詢)
|
|
/// </summary>
|
|
/// <param name="i_crm"></param>
|
|
/// <returns></returns>
|
|
public ResponseMessage QueryOne(RequestMessage i_crm)
|
|
{
|
|
ResponseMessage rm = null;
|
|
string sMsg = null;
|
|
var db = SugarBase.GetIntance();
|
|
try
|
|
{
|
|
do
|
|
{
|
|
var sId = _fetchString(i_crm, @"Guid");
|
|
|
|
var oEntity = db.Queryable<OTB_CRM_Customers>().Single(x => x.OrgID == i_crm.ORIGID && x.guid == sId);
|
|
|
|
rm = new SuccessResponseMessage(null, i_crm);
|
|
rm.DATA.Add(BLWording.REL, oEntity);
|
|
} while (false);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
sMsg = Util.GetLastExceptionMsg(ex);
|
|
LogAndSendEmail(sMsg + "Params:" + JsonToString(i_crm), ex, i_crm.ORIGID, i_crm.USERID, nameof(Customers_QryService), "", "QueryOne(客戶管理(單筆查詢))", "", "", "");
|
|
}
|
|
finally
|
|
{
|
|
if (null != sMsg)
|
|
{
|
|
rm = new ErrorResponseMessage(sMsg, i_crm);
|
|
}
|
|
}
|
|
return rm;
|
|
}
|
|
|
|
#endregion 客戶管理(單筆查詢)
|
|
}
|
|
}
|