public PurchaseInvoiceComplex Create(PurchaseInvoiceComplex source) { #region 取資料 #endregion #region 邏輯驗證 if (this.IsDataExists(source)) { throw new Exception($"{"InvoiceID".ToLocalized()}:{source.Invoice.InvoiceID} 已經存在!"); } #endregion #region 變為Models需要之型別及邏輯資料 PurchaseInvoice main = GetPurchaseInvoiceOnCreate(source); List <PurchaseInvoiceDetail> children = GetChildOnCreate(main, source); #endregion #region Models資料庫 this._Repository.Create(main); foreach (PurchaseInvoiceDetail item in children) { this._DetailRepository.Create(item); } this._UnitOfWork.SaveChange(); #endregion return(this.Get(main.InvoiceID)); }
public bool IsDataExists(PurchaseInvoiceComplex info) { var query = this._Repository .Get(x => x.InvoiceID == info.Invoice.InvoiceID); return(query != null); }
public void Delete(PurchaseInvoiceComplex model) { //#region 取資料 //Model.PurchaseInvoice query = this.Get(Model.InvoiceID); ////var queryoverseastaff = this._overseaService.GetForOverType(query.ID_OverType); //#endregion //#region 邏輯驗證 //if (query == null)//沒有資料 // throw new Exception("MessageNoData".ToLocalized()); ////驗證 ////if (queryoverseastaff == null)//沒有資料 //// throw new Exception("MessageDataHasLinking".ToLocalized()); //#endregion //#region 變為Models需要之型別及邏輯資料 //#endregion //#region Models資料庫 //this._Repository.Delete(query); //this._UnitOfWork.SaveChange(); //#endregion }
private PurchaseInvoice GetPurchaseInvoiceOnUpdate(PurchaseInvoiceComplex source) { PurchaseInvoice info = Mapper.Map <PurchaseInvoice>(source.Invoice); info.LastPerson = IdentityService.GetUserData().UserID; info.LastUpdate = DateTime.Now; return(info); }
private PurchaseInvoice GetPurchaseInvoiceOnCreate(PurchaseInvoiceComplex source) { PurchaseInvoice info = Mapper.Map <PurchaseInvoice>(source.Invoice); // 取得詢價單號;目前由使用者自型輸入 info.InvoiceID = GenerateInvoiceID(info); info.LastPerson = IdentityService.GetUserData().UserID; info.LastUpdate = DateTime.Now; return(info); }
public ActionResult Create() { var info = new PurchaseInvoiceComplex() { #if DEBUG Invoice = new PurchaseInvoiceViewModel() { InvoiceID = "", InvoiceDate = DateTime.Today, Title = "Title", TaxID = "0".PadLeft(8, '0'), //統一編號 TaxLevelID = TaxLevel.TaxInclude.Value, TaxExcluded = 10000, TaxIncluded = 10500, Tax = 500, DiscountAmount = 2000, DeductAmount = 1000, SupplierID = "888888", AccountMonth = "1712", InvoiceStatusID = InvoiceStatus.Valid.Value, Remarks = "Remarks" }, ChildList = new List <PurchaseInvoiceDetailViewModel>() { new PurchaseInvoiceDetailViewModel() { SeqNo = 0, InvoiceID = "", ProductID = "9".PadLeft(20, '9'), Price = 2000, Qty = 2, Amount = 4000, IsDirty = true }, new PurchaseInvoiceDetailViewModel() { SeqNo = 0, InvoiceID = "", ProductID = "8".PadLeft(20, '8'), Price = 1000, Qty = 6, Amount = 6000, IsDirty = true }, } #endif }; InitViewBag(info); InitChildViewBag(null); return(View(info)); }
public PurchaseInvoiceComplex Get(string id) { PurchaseInvoiceComplex info = new PurchaseInvoiceComplex(); var query = from u in this._Repository.GetAll() join p in this._Company.GetAll() on u.SupplierID equals p.CompanyID into g from p in g.DefaultIfEmpty() where (u.InvoiceID == id) select new PurchaseInvoiceViewModel() { InvoiceID = u.InvoiceID, InvoiceDate = u.InvoiceDate, Title = u.Title, TaxID = u.TaxID, TaxLevelID = u.TaxLevelID, TaxExcluded = u.TaxExcluded, TaxIncluded = u.TaxIncluded, Tax = u.Tax, DiscountAmount = u.DiscountAmount, DeductAmount = u.DeductAmount, SupplierID = u.SupplierID, AccountMonth = u.AccountMonth, InvoiceStatusID = u.InvoiceStatusID, Remarks = u.Remarks, CompanyName = (p == null) ? "" : p.ShortName }; info.Invoice = query.SingleOrDefault(); var query2 = from u in this._DetailRepository.GetAll() join p in this._Product.GetAll() on u.ProductID equals p.ProductID into g from p in g.DefaultIfEmpty() where (u.InvoiceID == id) select new PurchaseInvoiceDetailViewModel() { SeqNo = u.SeqNo, InvoiceID = u.InvoiceID, ProductID = u.ProductID, Price = u.Price, Qty = u.Qty, Amount = u.Amount, ProductName = (p == null) ? "" : p.ProductName }; info.ChildList = query2.ToList(); return(info); }
public ActionResult Create(PurchaseInvoiceComplex info) { ResultModel result = new ResultModel(); try { #region 驗證Model if (!ModelState.IsValid) { throw new Exception(ModelStateErrorClass.FormatToString(ModelState)); } if (this._PurchaseInvoiceComplexService.IsDataExists(info)) { ModelState.AddModelError("InvoiceID", $"{"InvoiceID".ToLocalized()}:{info.Invoice.InvoiceID} 已經存在!"); throw new Exception(ModelStateErrorClass.FormatToString(ModelState)); } #endregion #region 前端資料變後端用資料ViewModel時用 #endregion #region Service資料庫 info = this._PurchaseInvoiceComplexService.Create(info); #endregion #region 息頁面設定 result.Status = true; result.CloseWindow = false; result.Url = Url.Action("Edit", new { id = info.Invoice.InvoiceID }); result.Message = "MessageComplete".ToLocalized(); #endregion } catch (Exception ex) { #region 錯誤時錯誤訊息 result.Status = false; result.Message = ex.Message.ToString(); #endregion } return(Json(result)); }
private void InitViewBag(PurchaseInvoiceComplex info) { // 公司供應商廠商名稱 ViewBag.CompanyList = new SelectList(this._GlobalService.GetCompanyShortNameList(), "Key", "Value", null); // 課稅別 ViewBag.TaxLevelList = new SelectList(TaxLevel.GetAll(), "Value", "Text", null); // 營業稅率 ViewBag.TaxRateList = new SelectList(TaxRate.GetAll(), "Value", "Text", null); // 狀態 ViewBag.InvoiceStatusList = new SelectList(InvoiceStatus.GetAll(), "Value", "Text", null); }
public void Update(PurchaseInvoiceComplex source) { #region 取資料 #endregion #region 邏輯驗證 #endregion #region 變為Models需要之型別及邏輯資料 PurchaseInvoice main = GetPurchaseInvoiceOnUpdate(source); List <PurchaseInvoiceDetail> children = GetChildOnCreate(main, source); #endregion #region Models資料庫 this._Repository.Update(main); foreach (PurchaseInvoiceDetail item in children) { if (item.SeqNo == 0) { this._DetailRepository.Create(item); } else { this._DetailRepository.Update(item); } } this._UnitOfWork.SaveChange(); #endregion }
public ActionResult DeleteConfirmed(PurchaseInvoiceComplex info) { ResultModel result = new ResultModel(); try { #region Service資料庫 this._PurchaseInvoiceComplexService.Delete(info); #endregion #region 息頁面設定 result.Status = true; result.Message = "MessageComplete".ToLocalized(); #endregion } catch (Exception ex) { #region 錯誤時錯誤訊息 result.Status = false; result.Message = ex.Message.ToString(); #endregion } return(Json(result)); }
private List <PurchaseInvoiceDetail> GetChildOnCreate(PurchaseInvoice master, PurchaseInvoiceComplex source) { List <PurchaseInvoiceDetail> infos = new List <PurchaseInvoiceDetail>(); var wanted = source.ChildList.Where(x => x.IsDirty == true); foreach (var item in wanted) { PurchaseInvoiceDetail temp = Mapper.Map <PurchaseInvoiceDetail>(item); temp.InvoiceID = master.InvoiceID; temp.LastPerson = IdentityService.GetUserData().UserID; temp.LastUpdate = DateTime.Now; infos.Add(temp); } return(infos); }