Compare commits
No commits in common. "67a788d622baa523ec3df0100271acda8e411379" and "0b95afb125f92445205ad209c0652e9c8fc5d84c" have entirely different histories.
67a788d622
...
0b95afb125
|
|
@ -10,9 +10,6 @@ using Org.BouncyCastle.Bcpg.OpenPgp;
|
|||
using NPOI.OpenXmlFormats.Shared;
|
||||
using NPOI.SS.Formula.PTG;
|
||||
using System.Data;
|
||||
using System;
|
||||
using AutoMapper;
|
||||
using Org.BouncyCastle.Asn1.X509;
|
||||
|
||||
namespace QuotationMaker.Controllers
|
||||
{
|
||||
|
|
@ -32,486 +29,6 @@ namespace QuotationMaker.Controllers
|
|||
|
||||
}
|
||||
|
||||
[Route("saveas")]
|
||||
public ActionResult SaveAs(IFormCollection obj) {
|
||||
saveasResult ret = new saveasResult();
|
||||
|
||||
authToken token = new authToken(this._httpContextAccessor);
|
||||
if (token.user_isLogin == false)
|
||||
{
|
||||
HttpContext.Response.Cookies.Delete("token_key");
|
||||
ret.ret = "no";
|
||||
ret.err_code = "99999";
|
||||
ret.message = "非登入狀態!";
|
||||
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
||||
}
|
||||
|
||||
string quotation_uid = obj["quotation_uid"].ToString();
|
||||
string quotation_name = obj["quotation_name"].ToString();
|
||||
string quotation_version = obj["quotation_version"].ToString();
|
||||
string project_uid = obj["project_uid"].ToString();
|
||||
string project_name = obj["project_name"].ToString();
|
||||
string company_uid = obj["company_uid"].ToString();
|
||||
string contactPerson_uid = obj["contactPerson_uid"].ToString();
|
||||
string method = obj["method"].ToString();
|
||||
|
||||
if (method == "save_to_other") {
|
||||
quotation oldQuotation = conn.QueryFirstOrDefault<quotation>("select * from quotation where quotation_isdel = 'N' and quotation_uid = @quotation_uid and quotation_version = @quotation_version ", new { quotation_uid = quotation_uid, quotation_version = quotation_version });
|
||||
|
||||
if (oldQuotation == null)
|
||||
{
|
||||
ret.ret = "no";
|
||||
ret.err_code = "0005";
|
||||
ret.message = "無此版本號的 quotation_uid 資料!";
|
||||
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
||||
}
|
||||
|
||||
string new_quotation_uid = "q_" + GlobalClass.CreateRandomCode(24);
|
||||
|
||||
var config = new MapperConfiguration(cfg =>
|
||||
{
|
||||
cfg.CreateMap<quotation, quotation>();
|
||||
});
|
||||
var mapper = config.CreateMapper();
|
||||
quotation quotation = new quotation();
|
||||
|
||||
mapper.Map(oldQuotation, quotation);
|
||||
|
||||
quotation.quotation_uid = new_quotation_uid;
|
||||
quotation.quotation_name = quotation_name;
|
||||
quotation.quotation_log = "由 [" + oldQuotation.quotation_name + "] 此報價單另存產生!";
|
||||
quotation.quotation_version = 1;
|
||||
quotation.quotation_createdate = DateTime.Now;
|
||||
quotation.quotation_modifydate = DateTime.Now;
|
||||
quotation.quotation_create_uid = token.user_uid;
|
||||
quotation.quotation_modify_uid = token.user_uid;
|
||||
quotation.quotation_revoke = "N";
|
||||
quotation.company_uid = company_uid;
|
||||
quotation.contactPerson_uid = contactPerson_uid;
|
||||
quotation.project_uid = project_uid;
|
||||
|
||||
|
||||
List<quotationMainItem> quotationMainItems = new List<quotationMainItem>();
|
||||
List<quotationSubItem> quotationSubItems = new List<quotationSubItem>();
|
||||
List<payment> payments = new List<payment>();
|
||||
List<invoice> invoices = new List<invoice>();
|
||||
|
||||
List<quotationMainItem> old_quotationMainItems = conn.Query<quotationMainItem>("select * from quotationMainItem where quotation_uid = @quotation_uid and quotationMainItem_version = @quotation_version", new { quotation_uid = quotation_uid, quotation_version = quotation_version }).ToList();
|
||||
|
||||
List<payment> old_payments = conn.Query<payment>("select * from payment where quotation_uid = @quotation_uid and payment_version = @quotation_version", new { quotation_uid = quotation_uid, quotation_version = quotation_version }).ToList();
|
||||
List<invoice> old_invoices = conn.Query<invoice>("select * from invoice where quotation_uid = @quotation_uid and invoice_version = @quotation_version", new { quotation_uid = quotation_uid, quotation_version = quotation_version }).ToList();
|
||||
|
||||
//主項目複製
|
||||
foreach (quotationMainItem item in old_quotationMainItems)
|
||||
{
|
||||
var configItem = new MapperConfiguration(cfg =>
|
||||
{
|
||||
cfg.CreateMap<quotationMainItem, quotationMainItem>();
|
||||
});
|
||||
var mapperItem = configItem.CreateMapper();
|
||||
|
||||
quotationMainItem quotationMainItem = new quotationMainItem();
|
||||
|
||||
mapperItem.Map(item, quotationMainItem);
|
||||
|
||||
quotationMainItem.quotation_uid = new_quotation_uid;
|
||||
quotationMainItem.quotationMainItem_version = 1;
|
||||
quotationMainItem.quotationMainItem_revoke = "N";
|
||||
quotationMainItem.quotationMainItem_uid = "qm_" + GlobalClass.CreateRandomCode(24);
|
||||
quotationMainItem.quotationMainItem_createdate = DateTime.Now;
|
||||
quotationMainItem.quotationMainItem_modifydate = DateTime.Now;
|
||||
|
||||
|
||||
quotationMainItems.Add(quotationMainItem);
|
||||
|
||||
List<quotationSubItem> old_quotationSubItems = conn.Query<quotationSubItem>("select * from quotationSubItem where quotation_uid = @quotation_uid and quotationSubItem_version = @quotation_version and quotationMainItem_uid = @quotationMainItem_uid ", new { quotation_uid = quotation_uid, quotation_version = quotation_version, quotationMainItem_uid = item.quotationMainItem_uid }).ToList();
|
||||
|
||||
foreach (quotationSubItem subItem in old_quotationSubItems)
|
||||
{
|
||||
var configSubItem = new MapperConfiguration(cfg =>
|
||||
{
|
||||
cfg.CreateMap<quotationSubItem, quotationSubItem>();
|
||||
});
|
||||
var mapperSubItem = configSubItem.CreateMapper();
|
||||
|
||||
quotationSubItem quotationSubItem = new quotationSubItem();
|
||||
|
||||
mapperSubItem.Map(subItem, quotationSubItem);
|
||||
|
||||
quotationSubItem.quotationMainItem_uid = quotationMainItem.quotationMainItem_uid;
|
||||
quotationSubItem.quotation_uid = new_quotation_uid;
|
||||
quotationSubItem.quotationSubItem_version = 1;
|
||||
quotationSubItem.quotationSubItem_uid = "qs_" + GlobalClass.CreateRandomCode(24);
|
||||
quotationSubItem.quotationSubItem_createdate = DateTime.Now;
|
||||
quotationSubItem.quotationSubItem_modifydate = DateTime.Now;
|
||||
|
||||
quotationSubItems.Add(quotationSubItem);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
foreach (payment item in old_payments)
|
||||
{
|
||||
var configItem = new MapperConfiguration(cfg =>
|
||||
{
|
||||
cfg.CreateMap<payment, payment>();
|
||||
});
|
||||
var mapperItem = configItem.CreateMapper();
|
||||
|
||||
payment paymentItem = new payment();
|
||||
|
||||
mapperItem.Map(item, paymentItem);
|
||||
|
||||
paymentItem.payment_uid = "pay_" + GlobalClass.CreateRandomCode(24);
|
||||
paymentItem.quotation_uid = new_quotation_uid;
|
||||
paymentItem.payment_version = 1;
|
||||
paymentItem.payment_createdate = DateTime.Now;
|
||||
paymentItem.payment_modifydate = DateTime.Now;
|
||||
|
||||
payments.Add(paymentItem);
|
||||
}
|
||||
|
||||
foreach (invoice item in old_invoices)
|
||||
{
|
||||
var configItem = new MapperConfiguration(cfg =>
|
||||
{
|
||||
cfg.CreateMap<invoice, invoice>();
|
||||
});
|
||||
var mapperItem = configItem.CreateMapper();
|
||||
|
||||
invoice invoiceItem = new invoice();
|
||||
|
||||
mapperItem.Map(item, invoiceItem);
|
||||
|
||||
invoiceItem.invoice_uid = "inv_" + GlobalClass.CreateRandomCode(24);
|
||||
invoiceItem.invoice_version = 1;
|
||||
invoiceItem.invoice_revoke = "N";
|
||||
invoiceItem.quotation_uid = new_quotation_uid;
|
||||
|
||||
invoices.Add(invoiceItem);
|
||||
|
||||
}
|
||||
|
||||
conn.Insert(invoices);
|
||||
conn.Insert(payments);
|
||||
conn.Insert(quotationSubItems);
|
||||
conn.Insert(quotationMainItems);
|
||||
conn.Insert(quotation);
|
||||
|
||||
ret.ret = "yes";
|
||||
ret.quotationView = conn.QueryFirstOrDefault<quotationView>("select * from quotationView where quotation_isdel = 'N' and quotation_revoke = 'N' and quotation_uid = @quotation_uid", new { quotation_uid = new_quotation_uid });
|
||||
|
||||
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
||||
}
|
||||
|
||||
if (method == "save_to_same") {
|
||||
quotation oldQuotation = conn.QueryFirstOrDefault<quotation>("select * from quotation where quotation_isdel = 'N' and quotation_uid = @quotation_uid and quotation_version = @quotation_version ", new { quotation_uid = quotation_uid, quotation_version = quotation_version });
|
||||
|
||||
if (oldQuotation == null) {
|
||||
ret.ret = "no";
|
||||
ret.err_code = "0005";
|
||||
ret.message = "無此版本號的 quotation_uid 資料!";
|
||||
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
||||
}
|
||||
|
||||
string new_quotation_uid = "q_" + GlobalClass.CreateRandomCode(24);
|
||||
|
||||
var config = new MapperConfiguration(cfg =>
|
||||
{
|
||||
cfg.CreateMap<quotation, quotation>();
|
||||
});
|
||||
var mapper = config.CreateMapper();
|
||||
quotation quotation = new quotation();
|
||||
|
||||
mapper.Map(oldQuotation, quotation);
|
||||
|
||||
quotation.quotation_uid = new_quotation_uid;
|
||||
quotation.quotation_name = quotation_name;
|
||||
quotation.quotation_log = "由 [" + oldQuotation.quotation_name + "] 此報價單另存產生!";
|
||||
quotation.quotation_version = 1;
|
||||
quotation.quotation_createdate = DateTime.Now;
|
||||
quotation.quotation_modifydate = DateTime.Now;
|
||||
quotation.quotation_create_uid = token.user_uid;
|
||||
quotation.quotation_modify_uid = token.user_uid;
|
||||
quotation.quotation_revoke = "N";
|
||||
|
||||
List<quotationMainItem> quotationMainItems = new List<quotationMainItem>();
|
||||
List<quotationSubItem> quotationSubItems = new List<quotationSubItem>();
|
||||
List<payment> payments = new List<payment>();
|
||||
List<invoice> invoices = new List<invoice>();
|
||||
|
||||
List<quotationMainItem> old_quotationMainItems = conn.Query<quotationMainItem>("select * from quotationMainItem where quotation_uid = @quotation_uid and quotationMainItem_version = @quotation_version", new { quotation_uid = quotation_uid, quotation_version = quotation_version }).ToList();
|
||||
|
||||
List<payment> old_payments = conn.Query<payment>("select * from payment where quotation_uid = @quotation_uid and payment_version = @quotation_version", new { quotation_uid = quotation_uid, quotation_version = quotation_version }).ToList();
|
||||
List<invoice> old_invoices = conn.Query<invoice>("select * from invoice where quotation_uid = @quotation_uid and invoice_version = @quotation_version", new { quotation_uid = quotation_uid, quotation_version = quotation_version }).ToList();
|
||||
|
||||
//主項目複製
|
||||
foreach (quotationMainItem item in old_quotationMainItems) {
|
||||
var configItem = new MapperConfiguration(cfg =>
|
||||
{
|
||||
cfg.CreateMap<quotationMainItem, quotationMainItem>();
|
||||
});
|
||||
var mapperItem = configItem.CreateMapper();
|
||||
|
||||
quotationMainItem quotationMainItem = new quotationMainItem();
|
||||
|
||||
mapperItem.Map(item, quotationMainItem);
|
||||
|
||||
quotationMainItem.quotation_uid = new_quotation_uid;
|
||||
quotationMainItem.quotationMainItem_version = 1;
|
||||
quotationMainItem.quotationMainItem_revoke = "N";
|
||||
quotationMainItem.quotationMainItem_uid = "qm_" + GlobalClass.CreateRandomCode(24);
|
||||
quotationMainItem.quotationMainItem_createdate = DateTime.Now;
|
||||
quotationMainItem.quotationMainItem_modifydate = DateTime.Now;
|
||||
|
||||
quotationMainItems.Add(quotationMainItem);
|
||||
|
||||
List<quotationSubItem> old_quotationSubItems = conn.Query<quotationSubItem>("select * from quotationSubItem where quotation_uid = @quotation_uid and quotationSubItem_version = @quotation_version and quotationMainItem_uid = @quotationMainItem_uid ", new { quotation_uid = quotation_uid, quotation_version = quotation_version, quotationMainItem_uid = item.quotationMainItem_uid }).ToList();
|
||||
|
||||
foreach (quotationSubItem subItem in old_quotationSubItems)
|
||||
{
|
||||
var configSubItem = new MapperConfiguration(cfg =>
|
||||
{
|
||||
cfg.CreateMap<quotationSubItem, quotationSubItem>();
|
||||
});
|
||||
var mapperSubItem = configSubItem.CreateMapper();
|
||||
|
||||
quotationSubItem quotationSubItem = new quotationSubItem();
|
||||
|
||||
mapperSubItem.Map(subItem, quotationSubItem);
|
||||
|
||||
quotationSubItem.quotationMainItem_uid = quotationMainItem.quotationMainItem_uid;
|
||||
quotationSubItem.quotation_uid = new_quotation_uid;
|
||||
quotationSubItem.quotationSubItem_version = 1;
|
||||
quotationSubItem.quotationSubItem_uid = "qs_" + GlobalClass.CreateRandomCode(24);
|
||||
quotationSubItem.quotationSubItem_createdate = DateTime.Now;
|
||||
quotationSubItem.quotationSubItem_modifydate = DateTime.Now;
|
||||
|
||||
quotationSubItems.Add(quotationSubItem);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
foreach (payment item in old_payments) {
|
||||
var configItem = new MapperConfiguration(cfg =>
|
||||
{
|
||||
cfg.CreateMap<payment, payment>();
|
||||
});
|
||||
var mapperItem = configItem.CreateMapper();
|
||||
|
||||
payment paymentItem = new payment();
|
||||
|
||||
mapperItem.Map(item, paymentItem);
|
||||
|
||||
paymentItem.payment_uid = "pay_" + GlobalClass.CreateRandomCode(24);
|
||||
paymentItem.quotation_uid = new_quotation_uid;
|
||||
paymentItem.payment_version = 1;
|
||||
paymentItem.payment_createdate = DateTime.Now;
|
||||
paymentItem.payment_modifydate = DateTime.Now;
|
||||
|
||||
payments.Add(paymentItem);
|
||||
}
|
||||
|
||||
foreach (invoice item in old_invoices) {
|
||||
var configItem = new MapperConfiguration(cfg =>
|
||||
{
|
||||
cfg.CreateMap<invoice, invoice>();
|
||||
});
|
||||
var mapperItem = configItem.CreateMapper();
|
||||
|
||||
invoice invoiceItem = new invoice();
|
||||
|
||||
mapperItem.Map(item, invoiceItem);
|
||||
|
||||
invoiceItem.invoice_uid = "inv_" + GlobalClass.CreateRandomCode(24);
|
||||
invoiceItem.invoice_version = 1;
|
||||
invoiceItem.invoice_revoke = "N";
|
||||
invoiceItem.quotation_uid = new_quotation_uid;
|
||||
|
||||
invoices.Add(invoiceItem);
|
||||
|
||||
}
|
||||
|
||||
conn.Insert(invoices);
|
||||
conn.Insert(payments);
|
||||
conn.Insert(quotationSubItems);
|
||||
conn.Insert(quotationMainItems);
|
||||
conn.Insert(quotation);
|
||||
|
||||
ret.ret = "yes";
|
||||
ret.quotationView = conn.QueryFirstOrDefault<quotationView>("select * from quotationView where quotation_isdel = 'N' and quotation_revoke = 'N' and quotation_uid = @quotation_uid", new { quotation_uid = new_quotation_uid });
|
||||
|
||||
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
||||
}
|
||||
|
||||
if (method == "save_to_new") {
|
||||
quotation oldQuotation = conn.QueryFirstOrDefault<quotation>("select * from quotation where quotation_isdel = 'N' and quotation_uid = @quotation_uid and quotation_version = @quotation_version ", new { quotation_uid = quotation_uid, quotation_version = quotation_version });
|
||||
|
||||
if (oldQuotation == null)
|
||||
{
|
||||
ret.ret = "no";
|
||||
ret.err_code = "0005";
|
||||
ret.message = "無此版本號的 quotation_uid 資料!";
|
||||
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
||||
}
|
||||
|
||||
project_uid = "p_" + GlobalClass.CreateRandomCode(24);
|
||||
project new_project = new project();
|
||||
new_project.project_uid = project_uid;
|
||||
new_project.dept_uid = oldQuotation.dept_uid;
|
||||
new_project.company_uid = company_uid;
|
||||
new_project.project_datetime = DateTime.Now.ToString("yyyy/MM/dd");
|
||||
new_project.project_creative_uid = token.user_uid;
|
||||
new_project.project_lastmodify_uid = token.user_uid;
|
||||
new_project.project_isdel = "N";
|
||||
new_project.project_modifydate = DateTime.Now;
|
||||
new_project.project_createdate = DateTime.Now;
|
||||
new_project.project_name = project_name;
|
||||
|
||||
string new_quotation_uid = "q_" + GlobalClass.CreateRandomCode(24);
|
||||
|
||||
var config = new MapperConfiguration(cfg =>
|
||||
{
|
||||
cfg.CreateMap<quotation, quotation>();
|
||||
});
|
||||
var mapper = config.CreateMapper();
|
||||
quotation quotation = new quotation();
|
||||
|
||||
mapper.Map(oldQuotation, quotation);
|
||||
|
||||
quotation.quotation_uid = new_quotation_uid;
|
||||
quotation.quotation_name = quotation_name;
|
||||
quotation.quotation_log = "由 [" + oldQuotation.quotation_name + "] 此報價單另存產生!";
|
||||
quotation.quotation_version = 1;
|
||||
quotation.quotation_createdate = DateTime.Now;
|
||||
quotation.quotation_modifydate = DateTime.Now;
|
||||
quotation.quotation_create_uid = token.user_uid;
|
||||
quotation.quotation_modify_uid = token.user_uid;
|
||||
quotation.quotation_revoke = "N";
|
||||
quotation.company_uid = company_uid;
|
||||
quotation.contactPerson_uid = contactPerson_uid;
|
||||
quotation.project_uid = project_uid;
|
||||
|
||||
|
||||
List<quotationMainItem> quotationMainItems = new List<quotationMainItem>();
|
||||
List<quotationSubItem> quotationSubItems = new List<quotationSubItem>();
|
||||
List<payment> payments = new List<payment>();
|
||||
List<invoice> invoices = new List<invoice>();
|
||||
|
||||
List<quotationMainItem> old_quotationMainItems = conn.Query<quotationMainItem>("select * from quotationMainItem where quotation_uid = @quotation_uid and quotationMainItem_version = @quotation_version", new { quotation_uid = quotation_uid, quotation_version = quotation_version }).ToList();
|
||||
|
||||
List<payment> old_payments = conn.Query<payment>("select * from payment where quotation_uid = @quotation_uid and payment_version = @quotation_version", new { quotation_uid = quotation_uid, quotation_version = quotation_version }).ToList();
|
||||
List<invoice> old_invoices = conn.Query<invoice>("select * from invoice where quotation_uid = @quotation_uid and invoice_version = @quotation_version", new { quotation_uid = quotation_uid, quotation_version = quotation_version }).ToList();
|
||||
|
||||
//主項目複製
|
||||
foreach (quotationMainItem item in old_quotationMainItems)
|
||||
{
|
||||
var configItem = new MapperConfiguration(cfg =>
|
||||
{
|
||||
cfg.CreateMap<quotationMainItem, quotationMainItem>();
|
||||
});
|
||||
var mapperItem = configItem.CreateMapper();
|
||||
|
||||
quotationMainItem quotationMainItem = new quotationMainItem();
|
||||
|
||||
mapperItem.Map(item, quotationMainItem);
|
||||
|
||||
quotationMainItem.quotation_uid = new_quotation_uid;
|
||||
quotationMainItem.quotationMainItem_version = 1;
|
||||
quotationMainItem.quotationMainItem_revoke = "N";
|
||||
quotationMainItem.quotationMainItem_uid = "qm_" + GlobalClass.CreateRandomCode(24);
|
||||
quotationMainItem.quotationMainItem_createdate = DateTime.Now;
|
||||
quotationMainItem.quotationMainItem_modifydate = DateTime.Now;
|
||||
|
||||
|
||||
quotationMainItems.Add(quotationMainItem);
|
||||
|
||||
List<quotationSubItem> old_quotationSubItems = conn.Query<quotationSubItem>("select * from quotationSubItem where quotation_uid = @quotation_uid and quotationSubItem_version = @quotation_version and quotationMainItem_uid = @quotationMainItem_uid ", new { quotation_uid = quotation_uid, quotation_version = quotation_version, quotationMainItem_uid = item.quotationMainItem_uid }).ToList();
|
||||
|
||||
foreach (quotationSubItem subItem in old_quotationSubItems)
|
||||
{
|
||||
var configSubItem = new MapperConfiguration(cfg =>
|
||||
{
|
||||
cfg.CreateMap<quotationSubItem, quotationSubItem>();
|
||||
});
|
||||
var mapperSubItem = configSubItem.CreateMapper();
|
||||
|
||||
quotationSubItem quotationSubItem = new quotationSubItem();
|
||||
|
||||
mapperSubItem.Map(subItem, quotationSubItem);
|
||||
|
||||
quotationSubItem.quotationMainItem_uid = quotationMainItem.quotationMainItem_uid;
|
||||
quotationSubItem.quotation_uid = new_quotation_uid;
|
||||
quotationSubItem.quotationSubItem_version = 1;
|
||||
quotationSubItem.quotationSubItem_uid = "qs_" + GlobalClass.CreateRandomCode(24);
|
||||
quotationSubItem.quotationSubItem_createdate = DateTime.Now;
|
||||
quotationSubItem.quotationSubItem_modifydate = DateTime.Now;
|
||||
|
||||
quotationSubItems.Add(quotationSubItem);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
foreach (payment item in old_payments)
|
||||
{
|
||||
var configItem = new MapperConfiguration(cfg =>
|
||||
{
|
||||
cfg.CreateMap<payment, payment>();
|
||||
});
|
||||
var mapperItem = configItem.CreateMapper();
|
||||
|
||||
payment paymentItem = new payment();
|
||||
|
||||
mapperItem.Map(item, paymentItem);
|
||||
|
||||
paymentItem.payment_uid = "pay_" + GlobalClass.CreateRandomCode(24);
|
||||
paymentItem.quotation_uid = new_quotation_uid;
|
||||
paymentItem.payment_version = 1;
|
||||
paymentItem.payment_createdate = DateTime.Now;
|
||||
paymentItem.payment_modifydate = DateTime.Now;
|
||||
|
||||
payments.Add(paymentItem);
|
||||
}
|
||||
|
||||
foreach (invoice item in old_invoices)
|
||||
{
|
||||
var configItem = new MapperConfiguration(cfg =>
|
||||
{
|
||||
cfg.CreateMap<invoice, invoice>();
|
||||
});
|
||||
var mapperItem = configItem.CreateMapper();
|
||||
|
||||
invoice invoiceItem = new invoice();
|
||||
|
||||
mapperItem.Map(item, invoiceItem);
|
||||
|
||||
invoiceItem.invoice_uid = "inv_" + GlobalClass.CreateRandomCode(24);
|
||||
invoiceItem.invoice_version = 1;
|
||||
invoiceItem.invoice_revoke = "N";
|
||||
invoiceItem.quotation_uid = new_quotation_uid;
|
||||
|
||||
invoices.Add(invoiceItem);
|
||||
|
||||
}
|
||||
|
||||
conn.Insert(invoices);
|
||||
conn.Insert(payments);
|
||||
conn.Insert(quotationSubItems);
|
||||
conn.Insert(quotationMainItems);
|
||||
conn.Insert(quotation);
|
||||
conn.Insert(new_project);
|
||||
|
||||
ret.ret = "yes";
|
||||
ret.quotationView = conn.QueryFirstOrDefault<quotationView>("select * from quotationView where quotation_isdel = 'N' and quotation_revoke = 'N' and quotation_uid = @quotation_uid", new { quotation_uid = new_quotation_uid });
|
||||
ret.projectView = conn.QueryFirstOrDefault<projectView>("select * from projectView where project_isdel = 'N' and project_uid = @project_uid ", new { project_uid = project_uid });
|
||||
|
||||
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
||||
}
|
||||
|
||||
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
|
||||
|
||||
}
|
||||
|
||||
[Route("getHistoryList")]
|
||||
public ActionResult GetHistoryList(IFormCollection obj) {
|
||||
quotationViewListResult ret = new quotationViewListResult();
|
||||
|
|
|
|||
|
|
@ -4,15 +4,6 @@ using Dapper;
|
|||
using static DbTableClass;
|
||||
public class resultClass
|
||||
{
|
||||
public class saveasResult
|
||||
{
|
||||
public string ret = "no";
|
||||
public string err_code = "0000";
|
||||
public string message = "";
|
||||
public quotationView quotationView = new quotationView();
|
||||
public projectView projectView = new projectView();
|
||||
}
|
||||
|
||||
public class quotationDetailResult
|
||||
{
|
||||
public string ret = "no";
|
||||
|
|
|
|||
|
|
@ -43,11 +43,10 @@
|
|||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="AutoMapper" Version="13.0.1" />
|
||||
<PackageReference Include="Dapper" Version="2.1.35" />
|
||||
<PackageReference Include="Dapper.Contrib" Version="2.0.78" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||
<PackageReference Include="NPOI" Version="2.7.1" />
|
||||
<PackageReference Include="NPOI" Version="2.7.0" />
|
||||
<PackageReference Include="System.Data.SqlClient" Version="4.8.6" />
|
||||
</ItemGroup>
|
||||
|
||||
|
|
|
|||
|
|
@ -724,7 +724,6 @@
|
|||
<!-- .modal-body -->
|
||||
<div class="modal-body">
|
||||
<input type="hidden" id="save_to_same_quotation_uid" />
|
||||
<input type="hidden" id="save_to_same_quotation_version" />
|
||||
<div class="form-label-group">
|
||||
<input type="text" id="save_to_same_quotation_name" class="form-control" value="" placeholder="新報價單名稱" maxlength="45" required=""> <label for="save_to_same_quotation_name">新報價單名稱</label>
|
||||
</div>
|
||||
|
|
@ -737,102 +736,4 @@
|
|||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div>
|
||||
</form><!-- /.modal -->
|
||||
|
||||
<!--另存到別專案-->
|
||||
<!-- .modal -->
|
||||
<form id="clientSavetootherForm" name="clientSavetootherForm">
|
||||
<div class="modal fade" id="clientSaveToOtherModal" tabindex="-1" role="dialog" aria-labelledby="clientSaveToOtherModalLabel" data-backdrop="static"
|
||||
data-keyboard="false" aria-hidden="true">
|
||||
<!-- .modal-dialog -->
|
||||
<div class="modal-dialog" role="document">
|
||||
<!-- .modal-content -->
|
||||
<div class="modal-content">
|
||||
<!-- .modal-header -->
|
||||
<div class="modal-header">
|
||||
<h6 id="clientProjectModalLabel" class="modal-title inline-editable">
|
||||
<span class="sr-only"></span> <input id="modelSaveToOtherTitle" type="text" class="form-control form-control-lg" placeholder="另存為新報價單至其他專案" required="">
|
||||
</h6>
|
||||
<button type="button" class="close" data-dismiss="modal">
|
||||
<span aria-hidden="true">×</span><span class="sr-only">Close</span>
|
||||
</button>
|
||||
</div><!-- /.modal-header -->
|
||||
<!-- .modal-body -->
|
||||
<div class="modal-body">
|
||||
<input type="hidden" id="save_to_other_quotation_uid" />
|
||||
<input type="hidden" id="save_to_other_quotation_version" />
|
||||
<div class="form-label-group">
|
||||
<input type="text" id="save_to_other_quotation_name" class="form-control" value="" placeholder="新報價單名稱" maxlength="45" required=""> <label for="save_to_other_quotation_name">新報價單名稱</label>
|
||||
</div>
|
||||
<br />
|
||||
<div class="form-group">
|
||||
<label for="project_select">專案名稱</label>
|
||||
<select class="custom-select custom-select-sm" id="project_select" name="project_select" required="">
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="contactPerson_select">窗口</label>
|
||||
<select class="custom-select custom-select-sm" id="contactPerson_select" name="contactPerson_select" required="">
|
||||
</select>
|
||||
</div>
|
||||
</div><!-- /.modal-body -->
|
||||
<!-- .modal-footer -->
|
||||
<div class="modal-footer">
|
||||
<button type="button" id="save_to_other_SaveBtn" class="btn btn-primary">儲存</button> <button id="closeBtn" type="button" class="btn btn-light" data-dismiss="modal">關閉</button>
|
||||
</div><!-- /.modal-footer -->
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div>
|
||||
</form><!-- /.modal -->
|
||||
|
||||
<!--另存到新專案-->
|
||||
<!-- .modal -->
|
||||
<form id="clientSavetonewForm" name="clientSavetonewForm">
|
||||
<div class="modal fade" id="clientSaveToNewModal" tabindex="-1" role="dialog" aria-labelledby="clientSaveToNewModalLabel" data-backdrop="static"
|
||||
data-keyboard="false" aria-hidden="true">
|
||||
<!-- .modal-dialog -->
|
||||
<div class="modal-dialog" role="document">
|
||||
<!-- .modal-content -->
|
||||
<div class="modal-content">
|
||||
<!-- .modal-header -->
|
||||
<div class="modal-header">
|
||||
<h6 id="clientProjectModalLabel" class="modal-title inline-editable">
|
||||
<span class="sr-only"></span> <input id="modelSaveToNewTitle" type="text" class="form-control form-control-lg" placeholder="另存為新報價單至新專案" required="">
|
||||
</h6>
|
||||
<button type="button" class="close" data-dismiss="modal">
|
||||
<span aria-hidden="true">×</span><span class="sr-only">Close</span>
|
||||
</button>
|
||||
</div><!-- /.modal-header -->
|
||||
<!-- .modal-body -->
|
||||
<div class="modal-body">
|
||||
<input type="hidden" id="save_to_new_quotation_uid" />
|
||||
<input type="hidden" id="save_to_new_quotation_version" />
|
||||
<div class="form-label-group">
|
||||
<input type="text" id="save_to_new_quotation_name" class="form-control" value="" placeholder="新報價單名稱" maxlength="45" required=""> <label for="save_to_other_quotation_name">新報價單名稱</label>
|
||||
</div>
|
||||
<br/>
|
||||
<div class="form-label-group">
|
||||
<input type="text" id="save_to_new_project_name" class="form-control" value="" placeholder="新專案名稱" maxlength="45" required=""> <label for="save_to_other_quotation_name">新專案名稱</label>
|
||||
</div>
|
||||
<br />
|
||||
<div class="form-group">
|
||||
<label for="project_select">客戶公司</label>
|
||||
<select class="custom-select custom-select-sm" id="company_new_select" name="company_new_select" required="">
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="contactPerson_select">窗口</label>
|
||||
<select class="custom-select custom-select-sm" id="contactPerson_new_select" name="contactPerson_new_select" required="">
|
||||
</select>
|
||||
</div>
|
||||
</div><!-- /.modal-body -->
|
||||
<!-- .modal-footer -->
|
||||
<div class="modal-footer">
|
||||
<button type="button" id="save_to_new_SaveBtn" class="btn btn-primary">儲存</button> <button id="closeBtn" type="button" class="btn btn-light" data-dismiss="modal">關閉</button>
|
||||
</div><!-- /.modal-footer -->
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div>
|
||||
</form><!-- /.modal -->
|
||||
|
|
@ -1028,320 +1028,8 @@ $(document).ready(function () {
|
|||
}
|
||||
});
|
||||
});
|
||||
|
||||
//另存報價單儲存鈕
|
||||
$('#save_to_same_SaveBtn').on('click', function () {
|
||||
var quotation_uid = $('#save_to_same_quotation_uid').val();
|
||||
var quotation_version = $('#save_to_same_quotation_version').val();
|
||||
var quotation_name = $('#save_to_same_quotation_name').val();
|
||||
|
||||
|
||||
if (quotation_name == '') {
|
||||
alert('請輸入新的報價單名稱!');
|
||||
return;
|
||||
}
|
||||
|
||||
var formData = {
|
||||
quotation_uid: quotation_uid,
|
||||
quotation_version: quotation_version,
|
||||
quotation_name: quotation_name,
|
||||
method: 'save_to_same'
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url: "/Api/saveas",
|
||||
type: "post",
|
||||
data: formData,
|
||||
success: function (data, textStatus, jqXHR) {
|
||||
if (data.ret == "yes") {
|
||||
obj = data.quotationView;
|
||||
|
||||
quotationTable.fnAddData(obj);
|
||||
|
||||
alert('另存至本專案為新報價單完成!');
|
||||
|
||||
$('#clientSaveToSameModal').modal('toggle');
|
||||
$('#clientHistoryListModal').modal('toggle');
|
||||
} else {
|
||||
alert(data.message);
|
||||
|
||||
if (data.err_code == "99999") {
|
||||
location.href = "/Root/Login";
|
||||
}
|
||||
}
|
||||
},
|
||||
error: function (jqXHR, textStatus, errorThrown) {
|
||||
alert('網路或伺服器發生錯誤,請稍後重試!');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
//另存至其他專案
|
||||
$('#save_to_other_SaveBtn').on('click', function () {
|
||||
var quotation_uid = $('#save_to_other_quotation_uid').val();
|
||||
var quotation_version = $('#save_to_other_quotation_version').val();
|
||||
var quotation_name = $('#save_to_other_quotation_name').val();
|
||||
var project_value = $('#project_select').val();
|
||||
|
||||
if (project_value == '') {
|
||||
alert('請選擇要加入的專案');
|
||||
return;
|
||||
}
|
||||
|
||||
var arr = project_value.split('/');
|
||||
var project_uid = arr[0];
|
||||
var company_uid = arr[1];
|
||||
var contactPerson_uid = $('#contactPerson_select').val();
|
||||
|
||||
if (quotation_name == '') {
|
||||
alert('請輸入新的報價單名稱!');
|
||||
return;
|
||||
}
|
||||
|
||||
if (contactPerson_uid == '') {
|
||||
alert('請選擇窗口!');
|
||||
return;
|
||||
}
|
||||
|
||||
var formData = {
|
||||
quotation_uid: quotation_uid,
|
||||
quotation_version: quotation_version,
|
||||
quotation_name: quotation_name,
|
||||
project_uid: project_uid,
|
||||
company_uid: company_uid,
|
||||
contactPerson_uid: contactPerson_uid,
|
||||
method: 'save_to_other'
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url: "/Api/saveas",
|
||||
type: "post",
|
||||
data: formData,
|
||||
success: function (data, textStatus, jqXHR) {
|
||||
if (data.ret == "yes") {
|
||||
obj = data.quotationView;
|
||||
|
||||
if (obj.project_uid == $('#quotation_project_uid').val()) {
|
||||
quotationTable.fnAddData(obj);
|
||||
}
|
||||
|
||||
|
||||
|
||||
alert('另存至其他專案完成!');
|
||||
|
||||
$('#clientSaveToOtherModal').modal('toggle');
|
||||
$('#clientHistoryListModal').modal('toggle');
|
||||
} else {
|
||||
alert(data.message);
|
||||
|
||||
if (data.err_code == "99999") {
|
||||
location.href = "/Root/Login";
|
||||
}
|
||||
}
|
||||
},
|
||||
error: function (jqXHR, textStatus, errorThrown) {
|
||||
alert('網路或伺服器發生錯誤,請稍後重試!');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
//另存至新專案
|
||||
$('#save_to_new_SaveBtn').on('click', function () {
|
||||
var quotation_uid = $('#save_to_new_quotation_uid').val();
|
||||
var quotation_version = $('#save_to_new_quotation_version').val();
|
||||
var quotation_name = $('#save_to_new_quotation_name').val();
|
||||
var project_name = $('#save_to_new_project_name').val();
|
||||
var company_uid = $('#company_new_select').val();
|
||||
var contactPerson_uid = $('#contactPerson_new_select').val();
|
||||
|
||||
if (project_name == '') {
|
||||
alert('請輸入新專案名稱!');
|
||||
return;
|
||||
}
|
||||
|
||||
if (quotation_name == '') {
|
||||
alert('請輸入新報價單名稱!');
|
||||
return;
|
||||
}
|
||||
|
||||
if (company_uid == '') {
|
||||
aler('請選擇客戶公司!');
|
||||
return;
|
||||
}
|
||||
|
||||
if (contactPerson_uid == '') {
|
||||
alert('請選擇窗口!');
|
||||
return;
|
||||
}
|
||||
|
||||
var formData = {
|
||||
quotation_uid: quotation_uid,
|
||||
quotation_version: quotation_version,
|
||||
quotation_name: quotation_name,
|
||||
project_name: project_name,
|
||||
company_uid: company_uid,
|
||||
contactPerson_uid: contactPerson_uid,
|
||||
method: 'save_to_new'
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url: "/Api/saveas",
|
||||
type: "post",
|
||||
data: formData,
|
||||
success: function (data, textStatus, jqXHR) {
|
||||
if (data.ret == "yes") {
|
||||
obj = data.projectView;
|
||||
|
||||
projectTable.fnAddData(obj);
|
||||
|
||||
alert('另存至新專案完成!');
|
||||
|
||||
$('#clientSaveToNewModal').modal('toggle');
|
||||
$('#clientHistoryListModal').modal('toggle');
|
||||
} else {
|
||||
alert(data.message);
|
||||
|
||||
if (data.err_code == "99999") {
|
||||
location.href = "/Root/Login";
|
||||
}
|
||||
}
|
||||
},
|
||||
error: function (jqXHR, textStatus, errorThrown) {
|
||||
alert('網路或伺服器發生錯誤,請稍後重試!');
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
//下拉專案列表選擇
|
||||
$('#project_select').on('change', function () {
|
||||
var project_value = $('#project_select').val();
|
||||
|
||||
if (project_value == '') {
|
||||
$('#contactPerson_select').empty();
|
||||
return;
|
||||
}
|
||||
|
||||
var arr = project_value.split('/');
|
||||
var project_uid = arr[0];
|
||||
var company_uid = arr[1];
|
||||
|
||||
var formData = {
|
||||
company_uid: company_uid
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url: "/Api/contactPersonList",
|
||||
type: "post",
|
||||
data: formData,
|
||||
success: function (data, textStatus, jqXHR) {
|
||||
if (data.ret == "yes") {
|
||||
var obj = data.contactPersons;
|
||||
|
||||
$("#contactPerson_select").empty();
|
||||
|
||||
$.each(obj, function (i, item) {
|
||||
$("#contactPerson_select").append($("<option>", {
|
||||
value: item.contactPerson_uid,
|
||||
text: item.contactPerson_name + ' (Tel:' + item.contactPerson_tel + ', Email:' + item.contactPerson_email + ')'
|
||||
}));
|
||||
});
|
||||
} else {
|
||||
alert(data.message);
|
||||
|
||||
if (data.err_code == "99999") {
|
||||
location.href = "/Root/Login";
|
||||
}
|
||||
}
|
||||
},
|
||||
error: function (jqXHR, textStatus, errorThrown) {
|
||||
alert('網路或伺服器發生錯誤,請稍後重試!');
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
//下拉客戶公司列表
|
||||
$("#company_new_select").on('change', function () {
|
||||
var company_uid = $("#company_new_select").val();
|
||||
|
||||
var formData = {
|
||||
company_uid: company_uid
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url: "/Api/contactPersonList",
|
||||
type: "post",
|
||||
data: formData,
|
||||
success: function (data, textStatus, jqXHR) {
|
||||
if (data.ret == "yes") {
|
||||
var obj = data.contactPersons;
|
||||
|
||||
$("#contactPerson_new_select").empty();
|
||||
|
||||
$.each(obj, function (i, item) {
|
||||
$("#contactPerson_new_select").append($("<option>", {
|
||||
value: item.contactPerson_uid,
|
||||
text: item.contactPerson_name + ' (Tel:' + item.contactPerson_tel + ', Email:' + item.contactPerson_email + ')'
|
||||
}));
|
||||
});
|
||||
} else {
|
||||
alert(data.message);
|
||||
|
||||
if (data.err_code == "99999") {
|
||||
location.href = "/Root/Login";
|
||||
}
|
||||
}
|
||||
},
|
||||
error: function (jqXHR, textStatus, errorThrown) {
|
||||
alert('網路或伺服器發生錯誤,請稍後重試!');
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
function companyNewList() {
|
||||
$.ajax({
|
||||
url: "/Api/companyList",
|
||||
type: "post",
|
||||
data: null,
|
||||
success: function (data, textStatus, jqXHR) {
|
||||
if (data.ret == "yes") {
|
||||
var obj = data.companys;
|
||||
var items = "";
|
||||
|
||||
$("#company_new_select").empty();
|
||||
|
||||
$("#company_new_select").append($("<option>", {
|
||||
value: '',
|
||||
text: '請選擇客戶公司'
|
||||
}));
|
||||
$.each(obj, function (i, item) {
|
||||
|
||||
|
||||
$("#company_new_select").append($("<option>", {
|
||||
value: item.company_uid,
|
||||
text: item.company_name
|
||||
}));
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
} else {
|
||||
alert(data.message);
|
||||
|
||||
if (data.err_code == "99999") {
|
||||
location.href = "/Root/Login";
|
||||
}
|
||||
}
|
||||
},
|
||||
error: function (jqXHR, textStatus, errorThrown) {
|
||||
alert('網路或伺服器發生錯誤,請稍後重試!');
|
||||
}
|
||||
});
|
||||
}
|
||||
function loadContactPersion() {
|
||||
var data = $('#dt-responsive').DataTable().row(projectRowPos).data();
|
||||
var uid = $('#quotation_company_uid').val();
|
||||
|
|
@ -1422,37 +1110,18 @@ function buttonHistoryClick(obj) {
|
|||
var quotation_uid = obj.getAttribute('data-uid');
|
||||
var quotation_version = obj.getAttribute('data-version');
|
||||
|
||||
historyRowID = $('#history_' + quotation_version + '_' + quotation_uid);
|
||||
historyRowID = $('#history_' + quotation_uid);
|
||||
|
||||
historyRowPos = historyTable.fnGetPosition($('#history_' + quotation_version + '_' + quotation_uid)[0]);
|
||||
historyRowPos = historyTable.fnGetPosition($('#history_' + quotation_uid)[0]);
|
||||
|
||||
var quotation_row = historyDataTable.row(historyRowPos).data();
|
||||
|
||||
|
||||
|
||||
if (type == 'save_in_same') {
|
||||
$('#save_to_same_quotation_uid').val(quotation_uid);
|
||||
$('#save_to_same_quotation_version').val(quotation_version);
|
||||
$('#save_to_same_quotation_name').val(quotation_row.quotation_name + ' - Copy').trigger('change');
|
||||
$('#clientSaveToSameModal').modal('toggle');
|
||||
}
|
||||
|
||||
if (type == 'saveas_to_other') {
|
||||
projectList();
|
||||
$('#save_to_other_quotation_uid').val(quotation_uid);
|
||||
$('#save_to_other_quotation_version').val(quotation_version);
|
||||
$('#save_to_other_quotation_name').val(quotation_row.quotation_name + ' - Copy').trigger('change');
|
||||
$('#clientSaveToOtherModal').modal('toggle');
|
||||
}
|
||||
|
||||
if (type == 'saveas_to_new') {
|
||||
companyNewList();
|
||||
$('#save_to_new_quotation_uid').val(quotation_uid);
|
||||
$('#save_to_new_quotation_version').val(quotation_version);
|
||||
$('#save_to_new_quotation_name').val(quotation_row.quotation_name + ' - Copy').trigger('change');
|
||||
$('#clientSaveToNewModal').modal('toggle');
|
||||
}
|
||||
|
||||
if (type == 'view') {
|
||||
var formData = {
|
||||
method: 'history',
|
||||
|
|
@ -2078,7 +1747,7 @@ function loadHistoryTable() {
|
|||
},
|
||||
autoWidth: false,
|
||||
rowId: function (row) {
|
||||
return 'history_' + row.quotation_version + '_' + row.quotation_uid;
|
||||
return 'history_' + row.quotation_uid;
|
||||
},
|
||||
deferRender: true,
|
||||
initComplete: function () {
|
||||
|
|
@ -2120,7 +1789,7 @@ function loadHistoryTable() {
|
|||
drowdownHtml += ' <div class="dropdown-arrow"></div>';
|
||||
drowdownHtml += ' <button data-uid="' + row.quotation_uid + '" data-version="' + row.quotation_version + '" data-method="save_in_same" type="button" class="dropdown-item">另存到此專案</button>';
|
||||
drowdownHtml += ' <button data-uid="' + row.quotation_uid + '" data-version="' + row.quotation_version + '" data-method="saveas_to_other" type="button" class="dropdown-item">另存到其他專案</button>';
|
||||
drowdownHtml += ' <button data-uid="' + row.quotation_uid + '" data-version="' + row.quotation_version + '" data-method="saveas_to_new" type="button" class="dropdown-item">另存為新專案</button>';
|
||||
drowdownHtml += ' <button data-uid="' + row.quotation_uid + '" data-version="' + row.quotation_version + '" data-method="saveas_new_proj" type="button" class="dropdown-item">另存為新專案</button>';
|
||||
drowdownHtml += ' </div>';
|
||||
drowdownHtml += '</div> ';
|
||||
ret += drowdownHtml;
|
||||
|
|
@ -2245,7 +1914,7 @@ function loadQuotationTable() {
|
|||
searching: true,
|
||||
columns: [
|
||||
{ data: 'quotation_name', className: 'align-top text-left', orderable: true, searchable: true },
|
||||
{ data: 'quotation_createdate', className: 'align-top text-left', orderable: true, searchable: true },
|
||||
{ data: 'quotation_date', className: 'align-top text-left', orderable: true, searchable: true },
|
||||
{ data: 'contactPerson_name', className: 'align-top text-left', orderable: true, searchable: true },
|
||||
{ data: 'quotation_uid', className: 'align-top text-center', orderable: false, searchable: false }
|
||||
],
|
||||
|
|
@ -2262,28 +1931,15 @@ function loadQuotationTable() {
|
|||
return row.quotation_name;
|
||||
}
|
||||
},
|
||||
{
|
||||
targets: 1,
|
||||
className: 'align-middle text-left',
|
||||
orderable: false,
|
||||
searchable: true,
|
||||
render: function render(data, type, row, meta) {
|
||||
|
||||
return (new Date(row.quotation_createdate)).format("yyyy/MM/dd hh:mm:ss");
|
||||
//return '<a href="javascript: void(0);" data-uid="' + row.quotation_uid + '" data-version="' + row.quotation_version + '" data-method="preview" >' + row.quotation_name + '</a>';
|
||||
//return row.quotation_name;
|
||||
}
|
||||
},
|
||||
{
|
||||
targets: 3,
|
||||
orderable: false,
|
||||
searchable: false,
|
||||
render: function render(data, type, row, meta) {
|
||||
var ret = '';
|
||||
|
||||
ret += '<button type="button" data-uid="' + row.quotation_uid + '" data-version="' + row.quotation_version + '" data-method="history" class="btn btn-sm btn-icon btn-secondary" ><i class="oi oi-list"></i> <span class="sr-only">History</span></button>';
|
||||
ret += '<button type="button" data-uid="' + row.quotation_uid + '" data-version="' + row.quotation_version + '" data-method="edit" class="btn btn-sm btn-icon btn-secondary" ><i class="fa fa-pencil-alt"></i> <span class="sr-only">Edit</span></button>';
|
||||
ret += '<button type="button" data-uid="' + row.quotation_uid + '" data-version="' + row.quotation_version + '" data-method="del" class="btn btn-sm btn-icon btn-secondary"><i class="far fa-trash-alt"></i> <span class="sr-only">Remove</span></button>';
|
||||
ret += '<button type="button" data-uid="' + row.quotation_uid + '" data-version="' + row.quotation_version + '" data-method="history" class="btn btn-sm btn-icon btn-secondary" ><i class="oi oi-list"></i> <span class="sr-only">History</span></button>';
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
|
@ -2532,48 +2188,6 @@ function deptList() {
|
|||
});
|
||||
}
|
||||
|
||||
function projectList() {
|
||||
var formData = {
|
||||
dept_uid: $('#dept_select').val(),
|
||||
start_txt: '2023/09',
|
||||
end_txt: $('#dateEnd').val()
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url: "/Api/projectViewList",
|
||||
type: "post",
|
||||
data: formData,
|
||||
success: function (data, textStatus, jqXHR) {
|
||||
if (data.ret == "yes") {
|
||||
var obj = data.projectViews;
|
||||
var items = "";
|
||||
|
||||
$('#project_select')
|
||||
.empty()
|
||||
.append('<option selected="selected" value="">請選擇要加入的專案</option>');
|
||||
|
||||
$.each(obj, function (i, item) {
|
||||
|
||||
$("#project_select").append($("<option>", {
|
||||
value: item.project_uid + '/' + item.company_uid,
|
||||
text: item.project_name + ' (' + item.company_name + ')'
|
||||
}));
|
||||
});
|
||||
|
||||
} else {
|
||||
alert(data.message);
|
||||
|
||||
if (data.err_code == "99999") {
|
||||
location.href = "/Root/Login";
|
||||
}
|
||||
}
|
||||
},
|
||||
error: function (jqXHR, textStatus, errorThrown) {
|
||||
alert('網路或伺服器發生錯誤,請稍後重試!');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function mainItemHtml(obj) {
|
||||
var ac_string = '';
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue