protected void cmdSave_Click(object sender, EventArgs e) { if (!Page.IsValid) return; UpdateOrderData(); if (!CheckPartNo(true)) return; PartSalesDAO.CleanUp(); var db = DCFactory.GetDataContext<PartDataContext>(); try { db.SubmitChanges(); } catch { } if (PartSalesDAO.Parts.Count == 0) return; string svn = string.Empty; if (OrderId == 0) { var h = new SalesHeader { DealerCode = UserHelper.DealerCode, OrderDate = UserHelper.ParseDate(tbOrderDate.Text, false), CustomerName = cn.Text, Status = OrderStatus.OrderOpen, SalesPerson = UserHelper.Username, SubTotal = PartSalesDAO.Parts.Sum(i => i.Amount), TaxAmount = 0, Discount = PartSalesDAO.Parts.Sum(i => i.DiscountAmount), ModifiedDate = DateTime.Now, WarehouseId = UserHelper.WarehouseId, SalesComment = string.IsNullOrEmpty(tbComment.Text) ? null : tbComment.Text, SalesDate = GetSalesDate() }; h.SalesOrderNumber = PartSalesDAO.GenSaleNumber(h); tbTSVN.Text = tbTSVN.Text.Trim(); if (!string.IsNullOrEmpty(tbTSVN.Text)) h.ManualVoucherNumber = tbTSVN.Text; if (ddl1.SelectedIndex > 0) h.CustomerId = long.Parse(ddl1.SelectedValue); foreach (var item in PartSalesDAO.Parts) { var obj = new SalesDetail { PartCode = item.PartCode, PartInfoId = item.PartInfoId, PartName = item.PartName, OrderQuantity = item.Quantity, UnitPrice = item.UnitPrice, PercentDiscount = item.Discount, LineTotal = item.Amount, ModifiedDate = DateTime.Now, PartType = item.PartType, SalesHeader = h }; } db.SalesHeaders.InsertOnSubmit(h); db.SubmitChanges(); SalesOrderId = h.SalesHeaderId; svn = h.SalesOrderNumber; } else { foreach (var item in PartSalesDAO.Parts) { if (item.SalesDetailId != 0) { var od = db.SalesDetails.SingleOrDefault(p => p.SalesDetailId == item.SalesDetailId); if (string.IsNullOrEmpty(item.PartCode) || item.Quantity == 0) db.SalesDetails.DeleteOnSubmit(od); else { od.PartCode = item.PartCode; od.PartName = item.PartName; od.OrderQuantity = item.Quantity; od.PercentDiscount = item.Discount; od.ModifiedDate = DateTime.Now; od.LineTotal = item.Amount; }; } else { db.SalesDetails.InsertOnSubmit(new SalesDetail { PartCode = item.PartCode, PartName = item.PartName, OrderQuantity = item.Quantity, UnitPrice = item.UnitPrice, SalesHeaderId = OrderId, PercentDiscount = item.Discount, LineTotal = item.Amount, ModifiedDate = DateTime.Now, PartInfoId = item.PartInfoId, PartType = item.PartType }); } db.SubmitChanges(); } // update amount var oh = db.SalesHeaders.Single(p => p.SalesHeaderId == OrderId); oh.CustomerName = cn.Text; if (ddl1.SelectedIndex > 0) oh.CustomerId = long.Parse(ddl1.SelectedValue); oh.SubTotal = PartSalesDAO.Parts.Sum(i => i.Amount); oh.Discount = PartSalesDAO.Parts.Sum(i => i.DiscountAmount); db.SubmitChanges(); SalesOrderId = OrderId; svn = tbSVN.Text; } lblSaveOk.Visible = true; tbSVN.Text = svn; if (sender != null) { PartSalesDAO.Clear(); Response.Redirect(string.Format("Sale.aspx?id={0}&save=true&svn={1}", SalesOrderId, svn)); } else { db.Dispose(); DCFactory.RemoveDataContext<PartDataContext>(); } //DisableButton(); }
public SaleItem(SalesDetail sd) { this.UnitPrice = sd.UnitPrice; this.PartCode = sd.PartCode; this.Discount = sd.PercentDiscount; this.Quantity = sd.OrderQuantity; this.SaleHeaderId = sd.SalesHeaderId; this.SubAmount = (this.UnitPrice * this.Quantity); this.SubAmount = this.SubAmount - (this.SubAmount * this.Discount / 100); if (sd.SalesHeaderId > 0) { this.CustId = sd.SalesHeader.CustomerId == null ? 0 : (long)sd.SalesHeader.CustomerId; this.CustName = (sd.SalesHeader.CustomerId == null) ? sd.SalesHeader.CustomerName : sd.SalesHeader.Customer.Name; this.HeadStatus = sd.SalesHeader.Status; this.HeadVoucher = sd.SalesHeader.SalesOrderNumber; this.HeadManualVoucher = sd.SalesHeader.ManualVoucherNumber; } }
private void detach_SalesDetails(SalesDetail entity) { this.SendPropertyChanging(); entity.PartInfo = null; }
private void detach_SalesDetails(SalesDetail entity) { this.SendPropertyChanging(); entity.SalesHeader = null; }
private void attach_SalesDetails(SalesDetail entity) { this.SendPropertyChanging("SalesDetails"); entity.SalesHeader = this; }
private void attach_SalesDetails(SalesDetail entity) { this.SendPropertyChanging("SalesDetails"); entity.PartInfo = this; }
public SaleReportItem(SalesDetail sd) { this.PartCode = sd.PartCode; this.PartName = sd.PartName; this.Quantity = sd.OrderQuantity; this.UnitPrice = sd.UnitPrice; this.Discount = sd.PercentDiscount; this.SubAmount = this.UnitPrice * this.Quantity; this.DiscountAmount = this.SubAmount * this.Discount / 100; this.SubAmount -= this.DiscountAmount; }