private object LoadSalesOrder(long SalesOrderId) { ReportDocument rptDoc = ReportFactory.GetReport(); saleHeader = PartSalesDAO.GetSalesHeader(SalesOrderId); if (saleHeader != null) { rptDoc.Load(HttpContext.Current.Server.MapPath(@"~/Part/Report/Crystal/OrderSheet.rpt")); IList<SaleReportItem> data = GetReportSource(saleHeader); rptDoc.SetDataSource(data); string cus = "", vat = "", add = "", phone = ""; if (saleHeader.CustomerName != null) cus = saleHeader.CustomerName; if (saleHeader.Customer != null) { cus = saleHeader.Customer.Name; if (saleHeader.Customer.VATCode != null) vat = saleHeader.Customer.VATCode; if (saleHeader.Customer.Contact != null) { if (saleHeader.Customer.Contact.Address != null) add = saleHeader.Customer.Contact.Address; phone = saleHeader.Customer.AnyPhone; } } string dealer = saleHeader.Dealer.DealerName; string saleman = string.IsNullOrEmpty(UserHelper.Fullname) ? UserHelper.Username : UserHelper.Fullname; saleman = saleHeader.SalesPerson; string sheet = saleHeader.SalesOrderNumber; rptDoc.SetParameterValue("Customer", cus); rptDoc.SetParameterValue("SheetNo", sheet); rptDoc.SetParameterValue("Dealer", dealer); rptDoc.SetParameterValue("SaleMan", saleman); rptDoc.SetParameterValue("VAT", vat); rptDoc.SetParameterValue("Address", add); rptDoc.SetParameterValue("Phone", phone); rptDoc.SetParameterValue("Note", string.IsNullOrEmpty(saleHeader.SalesComment) ? "" : saleHeader.SalesComment); } return rptDoc; }
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(); }
private void detach_SalesHeaders(SalesHeader entity) { this.SendPropertyChanging(); entity.Dealer = null; }
private void attach_SalesHeaders(SalesHeader entity) { this.SendPropertyChanging(); entity.Warehouse = this; }
private void attach_SalesHeaders(SalesHeader entity) { this.SendPropertyChanging(); entity.Customer = this; }
private void detach_SalesHeaders(SalesHeader entity) { this.SendPropertyChanging("SalesHeaders"); entity.Warehouse = null; }
private void detach_SalesHeaders(SalesHeader entity) { this.SendPropertyChanging("SalesHeaders"); entity.Customer = null; }
private void attach_SalesHeaders(SalesHeader entity) { this.SendPropertyChanging("SalesHeaders"); entity.Dealer = this; }
private IList<SaleReportItem> GetReportSource(SalesHeader sh) { return sh.SalesDetails.Select(sd => new SaleReportItem(sd)).ToList(); }