private void btnMoveToQuaranteen_Click(object sender, EventArgs e) { if (ValidateMoveToQuaranteen()) { if (DialogResult.Yes == XtraMessageBox.Show("Are you sure you want to move the items to Quarantine", "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question)) { InternalItemMovements ims = new InternalItemMovements(); PalletLocation pl = new PalletLocation(); int printNubmer = InternalTransfer.GetNewPrintNumber() + 1; for (int i = 0; i < gridView3.RowCount; i++) { DataRow dr = gridView3.GetDataRow(i); if (dr["Loss"] != DBNull.Value) { int amount = Convert.ToInt32(dr["Loss"]); int palletLocationID = Convert.ToInt32(dr["PalletLocationID"]); ReceivePallet rp = new ReceivePallet(); ReceiveDoc rdoc = new ReceiveDoc(); rp.LoadByPrimaryKey(Convert.ToInt32(dr["ReceivePalletID"])); rdoc.LoadByPrimaryKey(rp.ReceiveID); amount *= rdoc.QtyPerPack; if (rp.Balance - amount < rp.ReservedStock) { //Item has been reserved for a facility. This needs to be handled. DataTable dtble = rp.GetFacilitiesItemsReservedFor(); string facilities = ""; foreach (DataRow dRow in dtble.Rows) { if (dr != null) { facilities += dRow["Name"].ToString() + System.Environment.NewLine; } } XtraMessageBox.Show("You cannot fill in a loss because the item in this location has been reserved to the following facilities:" + System.Environment.NewLine + facilities, "Exisiting reservations must be cancelled", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } var receiveDocID = Convert.ToInt32(dr["ID"]); var rec = new ReceiveDoc(); rec.LoadByPrimaryKey(receiveDocID); int qPalletLocationID = PalletLocation.GetQuaranteenPalletLocation(rec.PhysicalStoreID); pl.LoadByPrimaryKey(qPalletLocationID); if (pl.IsColumnNull("PalletID")) { Pallet p = new Pallet(); p.AddNew(); p.StorageTypeID = Convert.ToInt32(StorageType.Quaranteen); p.Save(); pl.PalletID = p.ID; pl.Save(); } ReceivePallet rp2 = new ReceivePallet(); ReceiveDoc rd = new ReceiveDoc(); rd.LoadByPrimaryKey(rp.ReceiveID); rp2.AddNew(); rp2.PalletID = pl.PalletID; rp2.ReceiveID = rp.ReceiveID; rp2.PalletLocationID = pl.ID; // calculate the new balance BLL.ItemManufacturer im = new BLL.ItemManufacturer(); //im.LoadDefaultReceiving(rd.ItemID, Convert.ToInt32(dr["ManufacturerID"])); if (dr["BoxLevel"] == DBNull.Value) { dr["BoxLevel"] = 0; } im.LoadIMbyLevel(rd.ItemID, Convert.ToInt32(dr["ManufacturerID"]), Convert.ToInt32(dr["BoxLevel"])); int packqty = (amount / im.QuantityInBasicUnit); rp2.ReservedStock = 0; BLL.ReceivePallet.MoveBalance(rp, rp2, amount); //rp2.Balance = amount; //rp.Balance -= rp2.Balance; //rp.Save(); //rp2.Save(); pl.Confirmed = false; pl.Save(); if (rp.Balance == 0) { PalletLocation.GarbageCollection(); } InternalTransfer it = new InternalTransfer(); it.AddNew(); it.ItemID = rd.ItemID; it.BoxLevel = im.PackageLevel; if (!rd.IsColumnNull("ExpDate")) { it.ExpireDate = rd.ExpDate; } it.BatchNumber = rd.BatchNo; it.ManufacturerID = im.ManufacturerID; it.FromPalletLocationID = palletLocationID; it.ToPalletLocationID = qPalletLocationID; it.QtyPerPack = im.QuantityInBasicUnit; it.Packs = packqty; it.ReceiveDocID = rp.ReceiveID; it.QuantityInBU = rp2.Balance; //it.Packs * it.QtyPerPack; it.Type = "ToQuaranteen"; it.IssuedDate = DateTime.Today; it.Status = 0; it.PrintNumber = printNubmer; it.Save(); } } gridConfirmationControl.DataSource = InternalTransfer.GetAllTransfers("ToQuaranteen"); PopulateItemDetails(); XtraMessageBox.Show("Your items are marked for movement to Quarantine, please go to Internal Movements page to confirm!", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); } } }
/// <summary> /// Handles the Click event of the btnConfirmIssue control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param> /// <exception cref="System.Exception"></exception> private void btnConfirmIssue_Click(object sender, EventArgs e) { // This is where the Issue is actually recorded and the stv is printed. // Do all kinds of validations. XtraReport STVReport = null; XtraReport DeliveryNoteReport = null; btnConfirmIssue1.Enabled = false; if (!IssueValid()) { XtraMessageBox.Show("Please Correct the Items Marked in Red before Proceeding with Issue", "Errors", MessageBoxButtons.OK, MessageBoxIcon.Error); btnConfirmIssue1.Enabled = (BLL.Settings.UseNewUserManagement && this.HasPermission("Print-Invoice")) ? true : (!BLL.Settings.UseNewUserManagement); return; } if (XtraMessageBox.Show("Are You Sure, You want to save this Transaction?", "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { DateTimePickerEx dtDate = ConvertDate.GetCurrentEthiopianDateText(); DateTime dtCurrent = ConvertDate.DateConverter(dtDate.Text); // The User is now sure that the STV has to be printed and that // the order is also good to save. // This is the section that does the saving. BLL.Order order = new Order(); order.LoadByPrimaryKey(_orderID); // what are the pick lists, do we have devliery notes too? DataView dv = _dvOutstandingPickList; DataTable dvUnpriced = new DataTable(); DataTable dvPriced = dv.ToTable(); if (BLL.Settings.HandleGRV) { if (BLL.Settings.IsCenter) { dv.RowFilter = "(Cost is null or Cost=0)"; } else { dv.RowFilter = "DeliveryNote = true and (Cost is null or Cost=0)"; } dvUnpriced = dv.ToTable(); dv.RowFilter = "Cost is not null and Cost <> 0"; dvPriced = dv.ToTable(); } else { dvPriced = dv.ToTable(); } string stvPrinterName = ""; string deliveryNotePrinter = ""; if (!ConfirmPrinterSettings(dvPriced, dvUnpriced, out stvPrinterName, out deliveryNotePrinter)) { return; } bool saveSuccessful = false; MyGeneration.dOOdads.TransactionMgr mgr = MyGeneration.dOOdads.TransactionMgr.ThreadTransactionMgr(); try { if (dvPriced.Rows.Count == 0 && dvUnpriced.Rows.Count == 0) { throw new Exception("The Items doesn’t meet the requirement: please check the price status for non-delivery notes!"); } mgr.BeginTransaction(); if (dvPriced.Rows.Count > 0) { STVReport = SaveAndPrintSTV(dvPriced.DefaultView, false, stvPrinterName, dtDate, dtCurrent); } if (dvUnpriced.Rows.Count > 0) { DeliveryNoteReport = SaveAndPrintSTV(dvUnpriced.DefaultView, true, deliveryNotePrinter, dtDate, dtCurrent); } var ordr = new Order(); ordr.LoadByPrimaryKey(_orderID); if (!ordr.IsColumnNull("OrderTypeID") && (ordr.OrderTypeID == BLL.OrderType.CONSTANTS.ACCOUNT_TO_ACCOUNT_TRANSFER || ordr.OrderTypeID == BLL.OrderType.CONSTANTS.STORE_TO_STORE_TRANSFER)) { var transfer = new Transfer(); DateTime convertedEthDate = ConvertDate.DateConverter(dtDate.Text); transfer.CommitAccountToAccountTransfer(ordr.ID, CurrentContext.UserId, convertedEthDate); } mgr.CommitTransaction(); saveSuccessful = true; } catch (Exception exp) { mgr.RollbackTransaction(); //Removed the reset logic //MyGeneration.dOOdads.TransactionMgr.ThreadTransactionMgrReset(); XtraMessageBox.Show(exp.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); ErrorHandler.Handle(exp); saveSuccessful = false; } if (saveSuccessful) { if (STVReport != null) { if (InstitutionIType.IsVaccine(GeneralInfo.Current)) { for (int i = 0; i < BLL.Settings.STVCopies; i++) { STVReport.Print(stvPrinterName); } } else { STVReport.Print(stvPrinterName); } } if (DeliveryNoteReport != null) { DeliveryNoteReport.Print(deliveryNotePrinter); } XtraMessageBox.Show("Transaction Successfully Saved!", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); } btnConfirmIssue1.Enabled = (BLL.Settings.UseNewUserManagement && this.HasPermission("Print-Invoice")) ? true : (!BLL.Settings.UseNewUserManagement); BindOutstandingPicklists(); gridOutstandingPicklistDetail.DataSource = null; PalletLocation.GarbageCollection(); if (BLL.Settings.AllowOnlineOrders) { Helpers.RRFServiceIntegration.SubmitOnlineIssue(_orderID); } } }