public override void New() { invoice = new DAL.InvoiceHeader() { Drawer = Session.Defaults.Drawer, Date = DateTime.Now, PostedToStore = true, PostDate = DateTime.Now, Code = GetNewInvoiceCode(), }; switch (type) { case InvoiceType.PurchaseReturn: case InvoiceType.Purchase: invoice.PartType = (int)PartType.Vendor; invoice.PartID = (int)Session.Defaults.Vendor; invoice.Branch = Session.Defaults.RawStore; break; case InvoiceType.SalesReturn: case InvoiceType.Sales: invoice.PartType = (int)PartType.Customer; invoice.PartID = (int)Session.Defaults.Customer; invoice.Branch = Session.Defaults.Store; break; default: throw new NotImplementedException(); } base.New(); MoveFocusToGrid(); }
public void Save() { DAL.CustomersDataContext dc = new DAL.CustomersDataContext(); DAL.InvoiceHeader dalInvoiceHeader = null; if (this.Id == 0) { dalInvoiceHeader = new DAL.InvoiceHeader(); map(this, dalInvoiceHeader); dc.InvoiceHeaders.InsertOnSubmit(dalInvoiceHeader); } else { dalInvoiceHeader = findRecord(dc, this.Id); map(this, dalInvoiceHeader); } dc.SubmitChanges(); this.Id = dalInvoiceHeader.Id; // save all new objects and update existing ones if modified foreach (var item in this.InvoiceDetails) { item.SaveDependent(dc, dalInvoiceHeader); } // delete all missing objects foreach (var item in InvoiceDetail.LoadWithInvoiceId(dc, this.Id)) { if (!this.InvoiceDetails.Contains(item)) InvoiceDetail.Delete(dc, item); } }