//用發票號碼去DB讀取對應的發票資料
        private void LoadReceipt(string ReceiptNumber)
        {
            //讀取資料並放入資料model
            var manager = new ReceiptManager();
            var model   = manager.GetReceipt(ReceiptNumber);

            //如果讀取不到資料,回到發票總覽頁面
            if (model == null)
            {
                Response.Redirect("~/ReceiptList.aspx");
            }

            //讀取到的資料放入畫面中各個使用者輸入項目裡
            this.txtReceiptNumber.Text    = model.ReceiptNumber;
            this.lbDate.Text              = string.Format("{0:yyyy-MM-dd}", model.Date);
            this.dplCompany.SelectedValue = model.Company;
            this.txtAmount.Text           = model.Amount.ToString();
            this.dplRE.SelectedValue      = ((int)model.Revenue_Expense).ToString();
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            //如果第一次載入這個Page
            if (!IsPostBack)
            {
                //讀取DB的Company表來設定下拉選單內容
                DDLManager ddlManager   = new DDLManager();
                DataTable  ddlDataTable = ddlManager.GetCompanyDDL();
                this.dplCompany.DataSource     = ddlDataTable;
                this.dplCompany.DataValueField = "Cid";
                this.dplCompany.DataTextField  = "Name";
                this.dplCompany.DataBind();

                //宣告變數存取QueryString
                string RepNumber = Request.QueryString["RepNo"];

                //分為更新模式及新增模式
                if (ReceiptDetailHelper.isUpdateMode())
                {
                    this.h1Title.InnerText = "修改發票";

                    //讀取DB內的資料顯示在畫面
                    this.LoadReceipt(RepNumber);

                    //鎖定發票號碼
                    this.txtReceiptNumber.Enabled   = false;
                    this.txtReceiptNumber.BackColor = System.Drawing.Color.LightGray;
                }
                else if (!string.IsNullOrEmpty(RepNumber))
                {
                    //Uri的QueryString被更改時、直接跳回發票總覽頁面
                    var manager = new ReceiptManager();
                    if (manager.GetReceipt(RepNumber) == null)
                    {
                        Response.Redirect("~/ReceiptList.aspx");
                    }
                }
                else
                {
                    this.h1Title.InnerText = "新增發票";
                }
            }
        }
        //檢查發票號碼
        public static string checkReceiptNumber(string receiptNumber)
        {
            string label;
            var    manager = new ReceiptManager();

            if (receiptNumber == null || receiptNumber.Length == 0)
            {
                label = "發票編號不能為空";
            }
            else if (receiptNumber.Length != 11 || !Regex.IsMatch(receiptNumber, @"^[A-Z]{2}[-]{1}[0-9]{8}$"))
            {
                label = "發票格式不正確";
            }
            else if (HttpContext.Current.Request.QueryString["RepNo"] == null && manager.GetReceipt(receiptNumber) != null)
            {
                label = "此發票號碼重複";
            }
            else
            {
                label = string.Empty;
            }
            return(label);
        }
Beispiel #4
0
    public static bool DeleteReceipt(int receiptId, int companyId)
    {
        bool result = true;

        var sale = new SaleManager(null).GetSaleByReceipt(companyId, receiptId);

        if (sale != null)
        {
            new SaleManager(null).SetNullReceiptIDInSale(sale.SaleId);
        }

        using (ReceiptManager receiptManager = new ReceiptManager(null))
        {
            try
            {
                receiptManager.DeleteReceipt(receiptManager.GetReceipt(receiptId, companyId));
            }
            catch (System.Data.SqlClient.SqlException)
            {
                result = false;
            }
        }
        return(result);
    }
        /// <summary>
        /// This method cancels a sale and return the products to inventory
        /// </summary>
        /// <param name="saleId"></param>
        /// <param name="matrixId"></param>
        public void CancelSale(int saleId, int matrixId, Int32 userId)
        {
            var inventoryManager = new InventoryManager(this);
            var receiptManager = new ReceiptManager(this);
            var financialManager = new FinancialManager(this);
            var parcelManager = new ParcelsManager(this);

            Sale sale = GetSale(matrixId, saleId);
            sale.IsCanceled = true;

            if (sale.ReceiptId != null)
            {
                Receipt receipt = receiptManager.GetReceipt((int)sale.ReceiptId, sale.CompanyId);
                sale.ReceiptId = null;
                receiptManager.DeleteReceipt(receipt);
                receipt.IsCanceled = true;
            }

            sale.InvoiceId = null;

            //
            // return the products to inventory
            //
            foreach (SaleItem saleItem in sale.SaleItems)
            {
                if (saleItem.ProductId != null)
                {
                    Inventory inventory = inventoryManager.GetProductInventory(saleItem.CompanyId,
                                                                               (int)saleItem.ProductId,
                                                                               (int)sale.DepositId);
                    if (inventory != null)
                        inventoryManager.StockDeposit(inventory, null, userId);
                }
            }

            //
            // Delete the invoice of sale
            //
            if (sale.InvoiceId.HasValue)
                financialManager.DeleteInvoice((int)sale.InvoiceId, sale.CompanyId);

            DbContext.SubmitChanges();
        }
    public static bool DeleteReceipt(int receiptId, int companyId)
    {

        bool result = true;

        var sale = new SaleManager(null).GetSaleByReceipt(companyId, receiptId);

        if (sale != null)
            new SaleManager(null).SetNullReceiptIDInSale(sale.SaleId);

        using (ReceiptManager receiptManager = new ReceiptManager(null))
        {
            try
            {
                receiptManager.DeleteReceipt(receiptManager.GetReceipt(receiptId, companyId));
            }
            catch (System.Data.SqlClient.SqlException)
            {
                result = false;
            }
        }
        return result;
    }