Beispiel #1
0
        public int InsertTrans(ItemTransactionModel model)
        {
            model.CreationDate   = DateTime.Now;
            model.LastUpdateDate = DateTime.Now;

            return(factory.ItemTransactionDao.Insert(model));
        }
        public long Save(bool isAutoGenerateParallel)
        {
            var voucher = new ItemTransactionModel
            {
                RefId                          = View.RefId,
                RefTypeId                      = View.RefTypeId,
                RefNo                          = View.RefNo,
                PostedDate                     = View.PostedDate,
                RefDate                        = View.RefDate,
                AccountingObjectId             = View.AccountingObjectId,
                CustomerId                     = View.CustomerId,
                VendorId                       = View.VendorId,
                EmployeeId                     = View.EmployeeId,
                Trader                         = View.Trader,
                CurrencyCode                   = View.CurrencyCode,
                StockId                        = View.StockId,
                TotalAmount                    = View.TotalAmount,
                ExchangeRate                   = View.ExchangeRate,
                TotalAmountExchange            = View.TotalAmountExchange,
                JournalMemo                    = View.JournalMemo,
                DocumentInclude                = View.DocumentInclude,
                AccountingObjectType           = View.AccountingObjectType,
                TaxCode                        = View.TaxCode,
                BankId                         = View.BankId,
                ItemTransactionDetails         = View.ItemTransactionDetails,
                ItemTransactionDetailParallels = View.ItemTransactionDetailParallels
            };

            return(View.RefId == 0 ? Model.AddItemTransactionVoucher(voucher, isAutoGenerateParallel) : Model.UpdateItemTransactionVoucher(voucher, isAutoGenerateParallel));
        }
        public void Delete(ItemTransactionModel model)
        {
            string sql =
                @"DELETE FROM mtl_material_transactions
               WHERE transaction_id = @transaction_id";

            object[] parms = { "@transaction_id", model.TransactionId };
            db.Update(sql, parms);
        }
        private void Save_Click(object sender, EventArgs e)
        {
            MetroGrid grid   = sender as MetroGrid;
            string    msgErr = string.Empty;

            if (!ValidateLines(grid, out msgErr))
            {
                MessageBox.Show(string.Format("Have some lines is invalid.{0}{1}", Environment.NewLine, msgErr), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            DialogResult dialogResult = MessageBox.Show("Are you sure to Return", "Please confirm.", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (dialogResult == DialogResult.Yes)
            {
                string   returnNumber    = string.Empty;
                DateTime transactionDate = DateTime.Now;

                using (MaterialReturnEntryForm frm = new MaterialReturnEntryForm())
                {
                    frm.ShowDialog();
                    if (frm.returnNumber != null)
                    {
                        returnNumber    = frm.returnNumber;
                        transactionDate = frm.TransactionDate;
                    }
                }

                if (!string.IsNullOrEmpty(returnNumber))
                {
                    foreach (DataGridViewRow item in grid.Rows)
                    {
                        try
                        {
                            //if (string.IsNullOrEmpty(item.Cells[0].Value.ToString()))
                            //{
                            double qty = Convert.ToDouble(item.Cells[0].Value);
                            if (qty != 0)
                            {
                                ItemTransactionModel line = (ItemTransactionModel)item.DataBoundItem;
                                GenerateTransaction(line, qty, returnNumber, transactionDate);
                            }
                            //}
                        }
                        catch
                        {
                        }
                    }

                    MessageBox.Show("Issue Completed.", "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    _view.materialsReturn = new List <ItemTransactionModel>();
                    _view.bindingReturnLines.DataSource = _view.materialsReturn;
                    Filter_Click(null, null);
                }
            }
        }
        private bool ValidateLines(MetroGrid grid, out string msg)
        {
            string messageOut = string.Empty;
            bool   valid      = true;

            foreach (DataGridViewRow item in grid.Rows)
            {
                try
                {
                    ItemTransactionModel line = (ItemTransactionModel)item.DataBoundItem;
                    double qty     = Convert.ToDouble(item.Cells[0].Value);
                    int    lineNum = Convert.ToInt32(item.Index) + 1;
                    if (qty == 0)
                    {
                        valid = false;
                        if (string.IsNullOrEmpty(messageOut))
                        {
                            messageOut = "Line : " + lineNum + " value is not be zero.";
                        }
                        else
                        {
                            messageOut = messageOut + Environment.NewLine + "Line : " + lineNum + " value is not be zero.";
                        }
                    }

                    if (qty > line.NetIssueTransactionQty)
                    {
                        valid = false;
                        if (string.IsNullOrEmpty(messageOut))
                        {
                            messageOut = "Line : " + lineNum + " Return Qty. must less than or equal Transacion Qty.";
                        }
                        else
                        {
                            messageOut = messageOut + Environment.NewLine + "Line : " + lineNum + " Return Qty. must less than or equal Transacion Qty.";
                        }
                    }
                }
                catch
                {
                    valid = false;
                }
            }

            msg = messageOut;
            return(valid);
        }
        public int Insert(ItemTransactionModel model)
        {
            string sql =
                @"insert into mtl_material_transactions
                       (last_update_date, last_updated_by,
                        creation_date, created_by, last_update_login,
                        request_id, inventory_item_id, revision,
                        organization_id, subinventory_code, locator_id,
                        transaction_type_id, transaction_source_type_id, transaction_source_id,
                        transaction_source_name, transaction_quantity, transaction_uom,
                        primary_quantity, transaction_date, transaction_reference,
                        reason_id, costed_flag, actual_cost,
                        transaction_cost, new_cost, currency_code,
                        currency_conversion_rate, currency_conversion_type, currency_conversion_date,
                        quantity_adjusted, employee_code, trx_source_line_id,
                        trx_source_delivery_id, cycle_count_id, transfer_transaction_id,
                        transaction_set_id, rcv_transaction_id, move_transaction_id,
                        vendor_lot_number, transfer_organization_id, transfer_subinventory,
                        transfer_locator_id, shipment_number, attribute1,
                        attribute2, attribute3, attribute4,
                        attribute5, movement_id, task_id,
                        to_task_id, secondary_uom_code, secondary_transaction_quantity,
                        catalog_item_id, remarks)
                    values
                       (@last_update_date,@last_updated_by,
                        @creation_date,@created_by,@last_update_login,
                        @request_id,@inventory_item_id,@revision,
                        @organization_id,@subinventory_code,@locator_id,
                        @transaction_type_id,@transaction_source_type_id,@transaction_source_id,
                        @transaction_source_name,@transaction_quantity,@transaction_uom,
                        @primary_quantity,@transaction_date,@transaction_reference,
                        @reason_id,@costed_flag,@actual_cost,
                        @transaction_cost,@new_cost,@currency_code,
                        @currency_conversion_rate,@currency_conversion_type,@currency_conversion_date,
                        @quantity_adjusted,@employee_code,@trx_source_line_id,
                        @trx_source_delivery_id,@cycle_count_id,@transfer_transaction_id,
                        @transaction_set_id,@rcv_transaction_id,@move_transaction_id,
                        @vendor_lot_number,@transfer_organization_id,@transfer_subinventory,
                        @transfer_locator_id,@shipment_number,@attribute1,
                        @attribute2,@attribute3,@attribute4,
                        @attribute5,@movement_id,@task_id,
                        @to_task_id,@secondary_uom_code,@secondary_transaction_quantity,
                        @catalog_item_id, @remarks)";

            return(db.Insert(sql, Take(model)));
        }
Beispiel #7
0
        private bool GenerateTransaction(ItemOnhandModel line, double qty)
        {
            MaterialIssueModel Head = _view.head;

            ItemTransactionModel trans = new ItemTransactionModel();

            trans.InventoryItemId       = line.InventoryItemId;
            trans.SubinventoryCode      = line.SubinventoryCode;
            trans.TransactionSourceName = "MATERIAL ISSUE";
            trans.TransactionQuantity   = qty * -1;
            trans.TransactionUom        = string.IsNullOrEmpty(line.TransactionUomCode) ? "PCS" : line.TransactionUomCode;
            trans.PrimaryQuantity       = qty * -1;
            trans.TransactionDate       = Head.IssueDate;
            trans.TransactionReference  = Head.IssueNumber;
            //trans.TransactionSourceName
            trans.TransactionSourceId = line.OnhandQuantitiesId;        //Only Materail Issue using ONHAND_QUANTITIES_ID
            trans.CostedFlag          = "Y";
            trans.ActualCost          = line.TransactionUnitCost;
            trans.TransactionCost     = line.TransactionUnitCost;
            trans.Attribute1          = string.IsNullOrEmpty(line.IssueProjectNum) ? line.ProjectNum : line.IssueProjectNum;
            trans.Attribute2          = string.IsNullOrEmpty(line.IssueCostCode) ? line.ProjectCostCode : line.IssueCostCode;
            trans.Attribute3          = line.LotNumber;
            trans.Attribute4          = line.BomNo;

            int id = _repoTrans.InsertTrans(trans);

            ItemOnhandModel onhand = line;

            //if (onhand != null)
            //{

            double trxQty = onhand.PrimaryTransactionQuantity - qty;

            onhand.PrimaryTransactionQuantity = trxQty;
            onhand.TransactionQuantity        = trxQty;
            onhand.UpdateTransactionId        = id;
            onhand.TransactionUnitCost        = trans.ActualCost;

            _repoOnhand.UpdateOnhand(onhand);
            //}
            return(true);
        }
 internal static ItemTransactionEntity ToDataTransferObject(ItemTransactionModel model)
 {
     return(model == null ? null : AutoMapper.Mapper.Map <ItemTransactionModel, ItemTransactionEntity>(model));
 }
 private object[] Take(ItemTransactionModel model)
 {
     return(new object[]
     {
         "@transaction_id", model.TransactionId,
         "@last_update_date", model.LastUpdateDate,
         "@last_updated_by", model.LastUpdatedBy,
         "@creation_date", model.CreationDate,
         "@created_by", model.CreatedBy,
         "@last_update_login", model.LastUpdateLogin,
         "@request_id", model.RequestId,
         "@inventory_item_id", model.InventoryItemId,
         "@revision", model.Revision,
         "@organization_id", model.OrganizationId,
         "@subinventory_code", model.SubinventoryCode,
         "@locator_id", model.LocatorId,
         "@transaction_type_id", model.TransactionTypeId,
         "@transaction_source_type_id", model.TransactionSourceTypeId,
         "@transaction_source_id", model.TransactionSourceId,
         "@transaction_source_name", model.TransactionSourceName,
         "@transaction_quantity", model.TransactionQuantity,
         "@transaction_uom", model.TransactionUom,
         "@primary_quantity", model.PrimaryQuantity,
         "@transaction_date", model.TransactionDate,
         "@transaction_reference", model.TransactionReference,
         "@reason_id", model.ReasonId,
         "@costed_flag", model.CostedFlag,
         "@actual_cost", model.ActualCost,
         "@transaction_cost", model.TransactionCost,
         "@new_cost", model.NewCost,
         "@currency_code", model.CurrencyCode,
         "@currency_conversion_rate", model.CurrencyConversionRate,
         "@currency_conversion_type", model.CurrencyConversionType,
         "@currency_conversion_date", model.CurrencyConversionDate,
         "@quantity_adjusted", model.QuantityAdjusted,
         "@employee_code", model.EmployeeCode,
         "@trx_source_line_id", model.TrxSourceLineId,
         "@trx_source_delivery_id", model.TrxSourceDeliveryId,
         "@cycle_count_id", model.CycleCountId,
         "@transfer_transaction_id", model.TransferTransactionId,
         "@transaction_set_id", model.TransactionSetId,
         "@rcv_transaction_id", model.RcvTransactionId,
         "@move_transaction_id", model.MoveTransactionId,
         "@vendor_lot_number", model.VendorLotNumber,
         "@transfer_organization_id", model.TransferOrganizationId,
         "@transfer_subinventory", model.TransferSubinventory,
         "@transfer_locator_id", model.TransferLocatorId,
         "@shipment_number", model.ShipmentNumber,
         "@attribute1", model.Attribute1,
         "@attribute2", model.Attribute2,
         "@attribute3", model.Attribute3,
         "@attribute4", model.Attribute4,
         "@attribute5", model.Attribute5,
         "@movement_id", model.MovementId,
         "@task_id", model.TaskId,
         "@to_task_id", model.ToTaskId,
         "@secondary_uom_code", model.SecondaryUomCode,
         "@secondary_transaction_quantity", model.SecondaryTransactionQuantity,
         "@catalog_item_id", model.CatalogItemId,
         "@remarks", model.Remarks
     });
 }
        public void Update(ItemTransactionModel model)
        {
            string sql =
                @"update mtl_material_transactions
              set   last_update_date	= @last_update_date,
                    last_updated_by	= @last_updated_by,
                    last_update_login	= @last_update_login,
                    request_id	= @request_id,
                    inventory_item_id	= @inventory_item_id,
                    revision	= @revision,
                    organization_id	= @organization_id,
                    subinventory_code	= @subinventory_code,
                    locator_id	= @locator_id,
                    transaction_type_id	= @transaction_type_id,
                    transaction_source_type_id	= @transaction_source_type_id,
                    transaction_source_id	= @transaction_source_id,
                    transaction_source_name	= @transaction_source_name,
                    transaction_quantity	= @transaction_quantity,
                    transaction_uom	= @transaction_uom,
                    primary_quantity	= @primary_quantity,
                    transaction_date	= @transaction_date,
                    transaction_reference	= @transaction_reference,
                    reason_id	= @reason_id,
                    costed_flag	= @costed_flag,
                    actual_cost	= @actual_cost,
                    transaction_cost	= @transaction_cost,
                    new_cost	= @new_cost,
                    currency_code	= @currency_code,
                    currency_conversion_rate	= @currency_conversion_rate,
                    currency_conversion_type	= @currency_conversion_type,
                    currency_conversion_date	= @currency_conversion_date,
                    quantity_adjusted	= @quantity_adjusted,
                    employee_code	= @employee_code,
                    trx_source_line_id	= @trx_source_line_id,
                    trx_source_delivery_id	= @trx_source_delivery_id,
                    cycle_count_id	= @cycle_count_id,
                    transfer_transaction_id	= @transfer_transaction_id,
                    transaction_set_id	= @transaction_set_id,
                    rcv_transaction_id	= @rcv_transaction_id,
                    move_transaction_id	= @move_transaction_id,
                    vendor_lot_number	= @vendor_lot_number,
                    transfer_organization_id	= @transfer_organization_id,
                    transfer_subinventory	= @transfer_subinventory,
                    transfer_locator_id	= @transfer_locator_id,
                    shipment_number	= @shipment_number,
                    attribute1	= @attribute1,
                    attribute2	= @attribute2,
                    attribute3	= @attribute3,
                    attribute4	= @attribute4,
                    attribute5	= @attribute5,
                    movement_id	= @movement_id,
                    task_id	= @task_id,
                    to_task_id	= @to_task_id,
                    secondary_uom_code	= @secondary_uom_code,
                    secondary_transaction_quantity	= @secondary_transaction_quantity,
                    catalog_item_id	= @catalog_item_id,
                    remarks = @remarks
                where transaction_id = @transaction_id";

            db.Update(sql, Take(model));
        }
        private bool GenerateTransaction(IEnumerable <POReceiptLineModel> lines)
        {
            bool result = true;

            try
            {
                POReceiptHeaderModel recHead = _view.headSeleted;

                foreach (var recLine in lines)
                {
                    ItemTransactionModel trans = new ItemTransactionModel();
                    trans.InventoryItemId       = recLine.ItemId;
                    trans.SubinventoryCode      = recLine.ToSubinventory;
                    trans.TransactionSourceName = "PO RECEIVING";
                    trans.TransactionQuantity   = recLine.QuantityShipped;
                    trans.TransactionUom        = string.IsNullOrEmpty(recLine.UnitOfMeasure) ? "PCS" : recLine.UnitOfMeasure;
                    trans.PrimaryQuantity       = recLine.QuantityShipped;
                    trans.TransactionDate       = recHead.ReceiptDate;
                    trans.TransactionReference  = recHead.ReceiptNum;
                    trans.CostedFlag            = "Y";
                    trans.ActualCost            = recLine.ShipmentUnitPrice;
                    trans.TransactionCost       = recLine.ShipmentUnitPrice;
                    trans.Attribute1            = recLine.ProjectNum;
                    trans.Attribute2            = recLine.CostCode;
                    trans.Attribute3            = recLine.LotNumber;
                    trans.Attribute4            = recLine.Attribute1; //BOM No.
                    trans.TrxSourceLineId       = recLine.ReceiptLineId;
                    trans.TransferSubinventory  = recLine.ToSubinventory;

                    //Update po_line_id to task_id For PO line is Job Process.
                    if (recLine.QcRequireInspcFlag)
                    {
                        trans.TaskId = recLine.PoLineId;
                    }

                    int id = _repoTrans.InsertTrans(trans);

                    ItemOnhandModel onhand = _repoOnhand.GetDupplicated(recLine.ItemId
                                                                        , recLine.ToSubinventory
                                                                        , recLine.LotNumber
                                                                        , string.IsNullOrEmpty(recLine.Attribute1) ? "999" : recLine.Attribute1  //If BOM No. is null default '999'
                                                                        );
                    if (onhand != null)
                    {
                        double trxQty = onhand.PrimaryTransactionQuantity + recLine.QuantityShipped;
                        onhand.PrimaryTransactionQuantity = trxQty;
                        onhand.TransactionQuantity        = trxQty;
                        onhand.UpdateTransactionId        = id;
                        onhand.TransactionUnitCost        = recLine.ShipmentUnitPrice;

                        _repoOnhand.UpdateOnhand(onhand);
                    }
                    else
                    {
                        onhand = new ItemOnhandModel();
                        onhand.InventoryItemId            = recLine.ItemId;
                        onhand.DateReceived               = _view.headSeleted.RequestDate;
                        onhand.PrimaryTransactionQuantity = recLine.QuantityShipped;
                        onhand.TransactionQuantity        = recLine.QuantityShipped;
                        onhand.SubinventoryCode           = recLine.ToSubinventory;
                        onhand.LotNumber           = recLine.LotNumber;
                        onhand.TransactionUomCode  = recLine.UnitOfMeasure;
                        onhand.CreateTransactionId = id;
                        onhand.UpdateTransactionId = id;
                        onhand.BomNo = string.IsNullOrEmpty(recLine.Attribute1) ? "999" : recLine.Attribute1;  //If BOM No. is null default '999'
                        onhand.TransactionUnitCost = recLine.ShipmentUnitPrice;
                        onhand.ProjectId           = recLine.ProjectId;
                        onhand.ProjectNum          = recLine.ProjectNum;
                        onhand.ProjectCostCode     = recLine.CostCode;

                        //Update po_line_id to task_id For PO line is Job Process.
                        if (recLine.QcRequireInspcFlag)
                        {
                            onhand.TaskId = recLine.PoLineId;
                        }

                        int onhandId = _repoOnhand.InsertOnhand(onhand);
                    }
                }

                result = true;
            }
            catch (Exception ex)
            {
                MessageBox.Show("Received process error : ." + Environment.NewLine + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                result = false;
            }
            return(result);
        }
Beispiel #12
0
 public void DeleteTrans(ItemTransactionModel model)
 {
     factory.ItemTransactionDao.Delete(model);
 }
Beispiel #13
0
 public void UpdateTrans(ItemTransactionModel model)
 {
     model.LastUpdateDate = DateTime.Now;
     factory.ItemTransactionDao.Update(model);
 }
        private void GenerateTransaction(ItemTransactionModel line, double qty, string returnNumber, DateTime transactionDate)
        {
            //MaterialIssueModel Head = _view.head;

            ItemTransactionModel trans = new ItemTransactionModel();

            trans.InventoryItemId       = line.InventoryItemId;
            trans.SubinventoryCode      = line.TransferSubinventory; //Source Subinventory
            trans.TransferSubinventory  = line.TransferSubinventory;
            trans.TransactionSourceName = "MATERIAL RETURN";
            trans.TransactionQuantity   = Math.Abs(qty);
            trans.TransactionUom        = line.TransactionUom;
            trans.PrimaryQuantity       = Math.Abs(qty);
            trans.TransactionDate       = transactionDate;
            trans.TransactionReference  = returnNumber;
            //trans.TransactionSourceName
            trans.TransactionSourceId = line.TransactionId;     //Only Materail Return using transaction_id
            trans.CostedFlag          = "Y";
            trans.ActualCost          = line.ActualCost;
            trans.TransactionCost     = line.TransactionCost;
            trans.Attribute1          = line.Attribute1;
            trans.Attribute2          = line.Attribute2;
            trans.Attribute3          = line.Attribute3;
            trans.Attribute4          = line.Attribute4;

            line.QuantityAdjusted    = line.QuantityAdjusted + qty;
            line.TransactionQuantity = line.TransactionQuantity * -1;
            line.LastUpdateDate      = DateTime.Now;
            line.LastUpdatedBy       = _view.EpiSession.User.Id;
            _repoTrans.UpdateTrans(line);

            int id = _repoTrans.InsertTrans(trans);

            ItemOnhandModel onhand = _repoOnhand.GetDupplicated(line.InventoryItemId
                                                                , line.TransferSubinventory
                                                                , line.Attribute3
                                                                , string.IsNullOrEmpty(line.Attribute4) ? "999" : line.Attribute4  /*Bom Number*/
                                                                );

            if (onhand != null)
            {
                double trxQty = onhand.PrimaryTransactionQuantity + qty;
                onhand.PrimaryTransactionQuantity = trxQty;
                onhand.TransactionQuantity        = trxQty;
                onhand.UpdateTransactionId        = id;
                onhand.TransactionUnitCost        = trans.ActualCost;

                _repoOnhand.UpdateOnhand(onhand);
            }
            else
            {
                onhand = new ItemOnhandModel();
                onhand.InventoryItemId            = line.InventoryItemId;
                onhand.DateReceived               = DateTime.Now;
                onhand.PrimaryTransactionQuantity = qty;
                onhand.TransactionQuantity        = qty;
                onhand.SubinventoryCode           = line.TransferSubinventory;
                onhand.LotNumber           = line.Attribute3;
                onhand.TransactionUomCode  = line.TransactionUom;
                onhand.CreateTransactionId = id;
                onhand.UpdateTransactionId = id;
                onhand.BomNo = string.IsNullOrEmpty(line.Attribute4) ? "999" : line.Attribute4;
                onhand.TransactionUnitCost = trans.ActualCost;
                //onhand.ProjectId = ;
                onhand.ProjectNum      = line.Attribute1;
                onhand.ProjectCostCode = line.Attribute2;

                int onhandId = _repoOnhand.InsertOnhand(onhand);
            }
        }
        private void AddLine_Click(object sender, EventArgs e)
        {
            MetroGrid grid = sender as MetroGrid;
            List <ItemTransactionModel> lines = new List <ItemTransactionModel>(); //grid.SelectedRows.DataBoundItem;
            List <ItemTransactionModel> trans = _view.materialsTrans.ToList();
            string projectNumber = string.Empty;

            using (ProjectListForm frm = new ProjectListForm())
            {
                frm.ShowDialog();
                if (frm.projSelected != null)
                {
                    projectNumber = frm.projSelected.FirstOrDefault().ProjectNum;
                }
            }

            if (string.IsNullOrEmpty(projectNumber))
            {
                MessageBox.Show("Please select Subinventory.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            if (_view.materialsReturn != null)
            {
                lines = _view.materialsReturn.ToList();
            }

            List <int> trxIds = new List <int>();

            foreach (DataGridViewRow item in grid.Rows)
            {
                try
                {
                    if ((bool)item.Cells[0].Value)
                    {
                        ItemTransactionModel line = (ItemTransactionModel)item.DataBoundItem;

                        line.TransactionQuantity  = line.TransactionQuantity;
                        line.TransferSubinventory = projectNumber;
                        lines.Add(line);
                        trxIds.Add(line.TransactionId);
                        //trans.RemoveAll(x => x.TransactionId == line.TransactionId);
                    }
                }
                catch
                {
                }
            }

            if (lines.Count > 0)
            {
                _view.materialsReturn = lines;
                _view.bindingReturnLines.DataSource = _view.materialsReturn;
                _view.BindingReturns();
                //_view.BindingCache(_view.onhandsCache.ToList());

                _view.materialsTrans = trans.Where(x => !trxIds.Contains(x.TransactionId)).ToList();
                _view.bindingMaterialsTrans.DataSource = _view.materialsTrans;
                //_view.BindingData(_view.onhands.ToList());
            }
            else
            {
                MessageBox.Show("Please select rows.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
        }