Ejemplo n.º 1
0
    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;
    }
Ejemplo n.º 2
0
    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();
    }
Ejemplo n.º 3
0
 private void detach_SalesHeaders(SalesHeader entity)
 {
     this.SendPropertyChanging();
     entity.Dealer = null;
 }
Ejemplo n.º 4
0
 private void attach_SalesHeaders(SalesHeader entity)
 {
     this.SendPropertyChanging();
     entity.Warehouse = this;
 }
Ejemplo n.º 5
0
 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;
 }
Ejemplo n.º 9
0
 private IList<SaleReportItem> GetReportSource(SalesHeader sh)
 {
     return sh.SalesDetails.Select(sd => new SaleReportItem(sd)).ToList();
 }