private void btnSave_Click(object sender, EventArgs e)
 {
     GoodsSaleReturnEventArgs eventArgs = new GoodsSaleReturnEventArgs();
     eventArgs.RefPurchaseOrder = ReturnPurchaseOrder;
     eventArgs.ReturnPurchaseOrderDetails = ObjectConverter.ConvertToNonGenericList<PurchaseOrderDetail>(pODReturnList);
     if (SelectReturnGoodsEvent != null)
     {
         EventUtility.fireEvent(SelectReturnGoodsEvent, this, eventArgs);
         Close();
     }
 }
Beispiel #2
0
        void form_SelectReturnGoodsEvent(object sender, GoodsSaleReturnEventArgs e)
        {
            if(GoodsSaleController.PurchaseOrder == null)
            {
                btnAdd_Click(null,null);
            }
            foreach (PurchaseOrderDetail returnPO in e.ReturnPurchaseOrderDetails)
            {
                returnPO.Price = 0 - returnPO.Price;
                pODList.Add(returnPO);
            }
            bdsBill.EndEdit();
            dgvBill.Refresh();
            dgvBill.Invalidate();
            GoodsSaleController.PurchaseOrder.PurchasePrice = CalculateTotalPrice(pODList);
            txtTotalAmount.Text = GoodsSaleController.PurchaseOrder.PurchasePrice.ToString();

            CreateRowNumbers();
            CalculateCharge();
            RemoveEmptyRowFromList(pODList);
            ClearReturnInput();
            ClearInput();
            txtBarcode.Focus();
            ReturnPurchaseOrder = e.RefPurchaseOrder;
        }
        private void btnLoadPO_Click(object sender, EventArgs e)
        {
            pODReturnList.Clear();
            pODList.Clear();
            bdsReturnBill.EndEdit();

            try
            {
                GoodsSaleReturnEventArgs goodsSaleReturnEventArgs = new GoodsSaleReturnEventArgs();
                goodsSaleReturnEventArgs.SearchPurchaseOrderId = txtBillNumber.Text.Trim();
                EventUtility.fireEvent(LoadPurchaseOrderEvent, this, goodsSaleReturnEventArgs);

                ReturnPurchaseOrder = goodsSaleReturnEventArgs.RefPurchaseOrder;
                txtBillDate.Text = ReturnPurchaseOrder.CreateDate.ToString("dd/MM/yyyy hh:mm:ss");

                foreach (PurchaseOrderDetail purchaseOrderDetail in ReturnPurchaseOrder.PurchaseOrderDetails)
                {
                    pODList.Add(purchaseOrderDetail);
                }
                bdsBill.EndEdit();
                dgvBill.Focus();
            }
            catch (Exception)
            {

                // do nothing
            }
        }
 void goodsSaleReturnView_LoadPurchaseOrderEvent(object sender, GoodsSaleReturnEventArgs e)
 {
     PurchaseOrderPK pk = new PurchaseOrderPK {DepartmentId = CurrentDepartment.Get().DepartmentId,PurchaseOrderId = e.SearchPurchaseOrderId};
     PurchaseOrder purchaseOrder = PurchaseOrderLogic.FindById(pk);
     e.RefPurchaseOrder = purchaseOrder;
 }
        void goodsSaleReturnView_SavePurchaseOrderEvent(object sender, GoodsSaleReturnEventArgs e)
        {
            try
                {
            // save return order to ReturnPo
            foreach (PurchaseOrderDetail purchaseOrderDetail in e.ReturnPurchaseOrderDetails)
            {

                    ReturnPo po = new ReturnPo();
                    po.CreateDate = DateTime.Now;
                    po.CreateId = ClientInfo.getInstance().LoggedUser.Name;
                    po.UpdateDate = DateTime.Now;
                    po.UpdateId = ClientInfo.getInstance().LoggedUser.Name;
                    ReturnPoPK poPK = new ReturnPoPK
                                          {
                                              DepartmentId = purchaseOrderDetail.PurchaseOrderDetailPK.DepartmentId,
                                              PurchaseOrderId =
                                                  purchaseOrderDetail.PurchaseOrderDetailPK.PurchaseOrderId,
                                              PurchaseOrderDetailId =
                                                  purchaseOrderDetail.PurchaseOrderDetailPK.PurchaseOrderDetailId,
                                              CreateDate = DateTime.Now

                                          };
                    po.ReturnPoPK = poPK;
                    po.Quantity = purchaseOrderDetail.Quantity;
                    po.ReturnDate = DateTime.Now;

                    long originAmount = FindOriginAmount(e.RefPurchaseOrder.PurchaseOrderDetails, purchaseOrderDetail);
                    if (originAmount == 0)
                    {
                        throw new BusinessException("Có lỗi ở hoá đơn gốc, đề nghị kiểm tra");
                    }
                    long returnedQuantity = (long) ReturnPoLogic.FindQuantityById(poPK);
                    long currentReturnQuantity = returnedQuantity + +po.Quantity;
                    if (originAmount < currentReturnQuantity)
                    {
                        throw new BusinessException(
                            "Lỗi :" + purchaseOrderDetail.Product.ProductMaster.ProductName +
                            " .Tổng cộng :" + originAmount +
                            " .Đã trả : " + returnedQuantity +
                            " .Số lượng muốn trả: " + po.Quantity + " !");
                    }

                    ObjectCriteria criteria = new ObjectCriteria();
                    criteria.AddEqCriteria("DepartmentStockPK.ProductId", purchaseOrderDetail.Product.ProductId);
                    IList deptStockList = DepartmentStockLogic.FindAll(criteria);
                    if(deptStockList!=null && deptStockList.Count > 0)
                    {

                        DepartmentStock departmentStock = (DepartmentStock)deptStockList[0];
                        departmentStock.GoodQuantity += po.Quantity;
                        departmentStock.Quantity += po.Quantity;
                        DepartmentStockLogic.Update(departmentStock);
                    }
                    else
                    {
                        throw new BusinessException("Không có mặt hàng này trong kho. Xin vui lòng kiểm tra dữ liệu");
                    }
                    ReturnPoLogic.Add(po);

                    }
            if (e.NextPurchaseOrder != null
                && e.NextPurchaseOrder.PurchaseOrderDetails!=null
                && e.NextPurchaseOrder.PurchaseOrderDetails.Count > 0)
            {
                PurchaseOrderLogic.Add(e.NextPurchaseOrder);
            }
                    e.HasErrors = false;
                }
            catch (Exception ex )
            {
                e.HasErrors = true;
                throw ex;
            }
        }
        private void PrintReturnReceipt(GoodsSaleReturnEventArgs args, Receipt receipt)
        {
            this.DepartmentBindingSource.DataSource = CurrentDepartment.Get();
            if (args.NextPurchaseOrder == null)
            {
                this.PurchaseOrderBindingSource.DataSource = args.RefPurchaseOrder;
            }
            else
            {
                this.PurchaseOrderBindingSource.DataSource = args.NextPurchaseOrder;
            }
            this.PurchaseOrderDetailBindingSource.DataSource =
                ObjectConverter.ConvertGenericList<PurchaseOrderDetail>(args.ReturnPurchaseOrderDetails);

            this.PurchaseOrderDetailCollectionBindingSource.DataSource = pODNewList;
            this.reportViewer1.RenderingComplete += new Microsoft.Reporting.WinForms.RenderingCompleteEventHandler(reportViewer1_RenderingComplete);
            //this.reportViewer1.LocalReport.Refresh();

            this.reportViewer1.RefreshReport();
        }
        private void PrintDirectlyToPrinter(GoodsSaleReturnEventArgs args, Receipt receipt)
        {
            this.DepartmentBindingSource.DataSource = CurrentDepartment.Get();
            if (args.NextPurchaseOrder == null)
            {
                args.RefPurchaseOrder.PurchaseOrderPK.PurchaseOrderId =
                    args.RefPurchaseOrder.PurchaseOrderPK.PurchaseOrderId + "RET";
                this.PurchaseOrderBindingSource.DataSource = args.RefPurchaseOrder;
            }
            else
            {
                this.PurchaseOrderBindingSource.DataSource = args.NextPurchaseOrder;
            }
            this.PurchaseOrderDetailBindingSource.DataSource =
                ObjectConverter.ConvertGenericList<PurchaseOrderDetail>(args.ReturnPurchaseOrderDetails);

            this.PurchaseOrderDetailCollectionBindingSource.DataSource = pODNewList;
            this.ReceiptBindingSource.DataSource = receipt;
            this.reportViewer1.RenderingComplete += new Microsoft.Reporting.WinForms.RenderingCompleteEventHandler(reportViewer1_RenderingComplete);
            this.reportViewer1.LocalReport.Refresh();

            streamList.Clear();
            //const string printerName = "Epson TM-T88IV";
            var configurationAppSettings = new AppSettingsReader();
            string printerName = (string)configurationAppSettings.GetValue("PrinterName", typeof(String));
            PrintDocument printDoc = new PrintDocument();
            printDoc.PrinterSettings.PrinterName = printerName;

            if (!printDoc.PrinterSettings.IsValid)
            {
                MessageBox.Show(String.Format("Can't find printer \"{0}\".", printerName));

                return;
            }
            printDoc.PrinterSettings.DefaultPageSettings.PrinterResolution.X = 180;
            printDoc.PrinterSettings.DefaultPageSettings.PrinterResolution.Y = 180;
            printDoc.PrintPage += new PrintPageEventHandler(printDoc_PrintPage);

            printDoc.Print();
        }
 void goodsSaleReturnController_CompletedSavePurchaseOrderEvent(object sender, GoodsSaleReturnEventArgs e)
 {
     MessageBox.Show("Lưu hoá đơn trả  thành công !");
     btnReset_Click(this, null);
 }
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (pODReturnList.Count <= 0)
            {
                MessageBox.Show("Không có hàng để trả !");
                return;
            }
            if(Int64.Parse(txtCharge.Text) < 0)
            {
                MessageBox.Show("Số tiền trả thêm chưa đủ !");
                return;
            }
            if (goodsSaleReturnController.ReturnPurchaseOrder == null)
            {
                // tra hang nghi van
            }
            else
            {
                // tra hang da co doi chieu
                GoodsSaleReturnEventArgs eventArgs = new GoodsSaleReturnEventArgs();
                eventArgs.RefPurchaseOrder = goodsSaleReturnController.ReturnPurchaseOrder;
                eventArgs.ReturnPurchaseOrderDetails = ObjectConverter.ConvertToNonGenericList<PurchaseOrderDetail>(pODReturnList);

                Receipt receipt = new Receipt();
                receipt.PurchaseOrder = goodsSaleReturnController.ReturnPurchaseOrder;
                receipt.ReceiptPK = new ReceiptPK
                                        {
                                            DepartmentId = CurrentDepartment.Get().DepartmentId
                                        };
                receipt.CreateDate = DateTime.Now;
                receipt.UpdateDate = DateTime.Now;
                receipt.UpdateId = ClientInfo.getInstance().LoggedUser.Name;
                receipt.CreateId = ClientInfo.getInstance().LoggedUser.Name;
                receipt.ReceiptName = "HDDTH";
                receipt.ReceiptNumber = goodsSaleReturnController.ReturnPurchaseOrder.PurchaseOrderPK.PurchaseOrderId;
                receipt.TotalAmount = Int64.Parse(txtTotalAmount.Text);
                receipt.CustomerPayment = Int64.Parse(txtPayment.Text);
                receipt.Charge = Int64.Parse(txtCharge.Text);
                receipt.ReturnAmount = Int64.Parse(txtReturnPayment.Text);

                if(pODNewList!=null && pODNewList.Count > 0 )
                {
                   PurchaseOrder nextOrder = new PurchaseOrder();
                    nextOrder.PurchaseOrderPK = new PurchaseOrderPK
                                                    {DepartmentId = CurrentDepartment.Get().DepartmentId};
                    nextOrder.PurchaseOrderDescription = " Next Purchase Order ";
                    nextOrder.DelFlg = 0;
                    nextOrder.ExclusiveKey = 1;

                    nextOrder.PurchaseOrderDetails = ObjectConverter.ConvertToNonGenericList(pODNewList);
                    foreach (PurchaseOrderDetail orderDetail in nextOrder.PurchaseOrderDetails)
                    {
                        nextOrder.PurchasePrice += orderDetail.Price;
                    }

                    eventArgs.NextPurchaseOrder = nextOrder;
                }

                EventUtility.fireEvent(SavePurchaseOrderEvent, this, eventArgs);
                if(!eventArgs.HasErrors)
                {
                    MessageBox.Show("Lưu thành công !");
                    PrintDirectlyToPrinter(eventArgs,receipt);
                    ClearForm();
                }

            }
        }
        private void btnLoadPO_Click(object sender, EventArgs e)
        {
            pODReturnList.Clear();
            bdsReturnBill.EndEdit();
            goodsSaleReturnController.ReturnPurchaseOrder = null;
            GoodsSaleReturnEventArgs goodsSaleReturnEventArgs = new GoodsSaleReturnEventArgs();
            goodsSaleReturnEventArgs.SearchPurchaseOrderId = txtBillNumber.Text.Trim();
            EventUtility.fireEvent(LoadPurchaseOrderEvent, this, goodsSaleReturnEventArgs);

            PurchaseOrder result = goodsSaleReturnEventArgs.RefPurchaseOrder;
            goodsSaleReturnController.ReturnPurchaseOrder = result;
            txtBillDate.Text = result.CreateDate.ToString("dd/MM/yyyy hh:mm:ss");
            pODList.Clear();
            foreach (PurchaseOrderDetail purchaseOrderDetail in result.PurchaseOrderDetails)
            {
                pODList.Add(purchaseOrderDetail);
            }
            bdsBill.EndEdit();
        }