private void btnSave_Click(object sender, EventArgs e) { var rec = new ReceiveDoc(); var itm = new Items(); var itemprogram = new ProgramProduct(); string valid = ValidateFields(); if (valid == "true") { if ( XtraMessageBox.Show("Are you sure you want to save this transaction?", "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { try { for (int i = 0; i < dtRecGrid.Rows.Count; i++) { if (dtRecGrid.Rows[i]["Expiry Date"] != DBNull.Value) { if (Convert.ToDateTime(dtRecGrid.Rows[i]["Expiry Date"]) <= DateTime.Now) { var dialog = XtraMessageBox.Show( "The item " + dtRecGrid.Rows[i]["Item Name"].ToString() + " has already expired. Are you sure you want to receive it?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (dialog == DialogResult.No) { return; } } } rec.AddNew(); rec.StoreID = Convert.ToInt32(cboStores.EditValue); rec.RefNo = txtRefNo.Text.Trim(); rec.Remark = txtRemark.Text; rec.ReceivedBy = txtReceivedBy.Text; DateTime xx = dtRecDate.Value; dtRecDate.CustomFormat = "MM/dd/yyyy"; DateTime dtRec = new DateTime(); rec.Date = ConvertDate.DateConverter(dtRecDate.Text); dtRec = ConvertDate.DateConverter(dtRecDate.Text); dtRecDate.IsGregorianCurrentCalendar = true; rec.EurDate = dtRecDate.Value; dtRecDate.IsGregorianCurrentCalendar = false; rec.ItemID = Convert.ToInt32(dtRecGrid.Rows[i][0]); switch (VisibilitySetting.HandleUnits) { case 1: rec.UnitID = 0; rec.QtyPerPack = Convert.ToInt32(dtRecGrid.Rows[i]["Qty/Pack"]); break; case 2: rec.UnitID = Convert.ToInt32(dtRecGrid.Rows[i]["UnitID"]); rec.QtyPerPack = 1; break; case 3: rec.UnitID = Convert.ToInt32(dtRecGrid.Rows[i]["UnitID"]); rec.QtyPerPack = 1; break; } rec.NoOfPack = Convert.ToInt32(dtRecGrid.Rows[i]["Pack Qty"]); rec.Quantity = rec.NoOfPack * rec.QtyPerPack; rec.QuantityLeft = rec.Quantity; if (dtRecGrid.Rows[i]["Price/Pack"] != null && dtRecGrid.Rows[i]["Price/Pack"].ToString() != "") { double pre = Convert.ToDouble(dtRecGrid.Rows[i]["Price/Pack"]) / rec.QtyPerPack; rec.Cost = Convert.ToDouble(pre); } else { rec.Cost = 0; } itm.LoadByPrimaryKey(Convert.ToInt32(dtRecGrid.Rows[i]["ID"])); rec.BatchNo = dtRecGrid.Rows[i][8].ToString(); if (dtRecGrid.Rows[i]["Expiry Date"] != DBNull.Value) { rec.ExpDate = Convert.ToDateTime(dtRecGrid.Rows[i]["Expiry Date"]); } rec.SupplierID = Convert.ToInt32(cboSupplier.EditValue); rec.SubProgramID = Convert.ToInt32(cboProgram.EditValue); string batch = DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + rec.ItemID.ToString(); rec.LocalBatchNo = batch; rec.Out = false; rec.IsApproved = false; dtRecDate.Value = xx; rec.Save(); //check if there is any data on stockoutLog about this item on this store //and update its enddate to today StockoutLog stockoutLog = new StockoutLog(); DataTable tblStockoutLog = stockoutLog.LoadByStoreAndItemId(rec.ItemID, rec.StoreID, true); if (tblStockoutLog != null) { if (tblStockoutLog.Rows.Count > 0) { stockoutLog.LoadByPrimaryKey(int.Parse(tblStockoutLog.Rows[0]["ID"].ToString())); stockoutLog.EndDate = DateTime.Today; stockoutLog.Save(); } } itemprogram.LoadByOldProgramIdAndItemId(Convert.ToInt32(dtRecGrid.Rows[i][0]), Convert.ToInt32(cboProgram.EditValue)); if (itemprogram.RowCount != 0) { continue; } else { itemprogram.AddNew(); itemprogram.ItemID = Convert.ToInt32(dtRecGrid.Rows[i][0]); itemprogram.ProgramID = Convert.ToInt32(cboProgram.EditValue); itemprogram.Save(); } } XtraMessageBox.Show("Transaction Successfully Saved!", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); ResetFields(); // mgr.CommitTransaction(); } catch (Exception exp) { //mgr.RollbackTransaction(); BLL.User user = new User(); user.LoadByPrimaryKey(MainWindow.LoggedinId); if (user.UserType == UserType.Constants.SYSTEM_ADMIN) XtraMessageBox.Show(exp.Message); else XtraMessageBox.Show("Saving Error!", "Error", MessageBoxButtons.OK); } } } else { XtraMessageBox.Show(valid, "Validation", MessageBoxButtons.OK, MessageBoxIcon.Stop); } }
private void btnConfirm_Click(object sender, EventArgs e) { var confirmedItemsQuantity = new Dictionary<int, long>(); var confirmedItems = new List<int>(); var valid = ValidateFields(); if (valid == "true") { if (XtraMessageBox.Show("Are You Sure, You Want To Save This Transaction?", "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { var issDoc = new IssueDoc(); var recDoc = new ReceiveDoc(); DataTable dtConfirm; long currentSOH = 0; var storeId = 0; var itemId = 0; using (dtConfirm = (DataTable)gridConfirmation.DataSource) { for (int i = 0; i < dtConfirm.Rows.Count; i++) { var receivedocid = Convert.ToInt32(dtConfirm.Rows[i]["RecId"]); issDoc.GetDULastIssue(Convert.ToInt32(dtConfirm.Rows[i]["ItemID"]), Convert.ToInt32(cboReceivingUnits.EditValue)); confirmedItems.Add(Convert.ToInt32(dtConfirm.Rows[i]["ItemID"])); if (issDoc.RowCount > 0) { //issDoc.DUSOH = ((dtConfirmation.Rows[i]["DUSOH"] != null) ? Convert.ToInt64(dtConfirmation.Rows[i]["DUSOH"]) : 0); //issDoc.Save(); } //Saving the issue issDoc.AddNew(); issDoc.StoreId = Convert.ToInt32(cboStores.EditValue); issDoc.RefNo = txtRefNo.Text.Trim(); issDoc.ReceivingUnitID = Convert.ToInt32(cboReceivingUnits.EditValue); DateTime xx = dtIssueDate.Value; dtIssueDate.CustomFormat = "MM/dd/yyyy"; DateTime dtCurrent = ConvertDate.DateConverter(dtIssueDate.Text); issDoc.Date = dtCurrent; dtIssueDate.IsGregorianCurrentCalendar = true; issDoc.EurDate = dtIssueDate.Value; dtIssueDate.IsGregorianCurrentCalendar = false; issDoc.RecievDocID =Convert.ToInt32(dtConfirm.Rows[i]["RecId"]); // Used to have 8 as an index recDoc.LoadByPrimaryKey(receivedocid); issDoc.IsApproved = true; issDoc.IsTransfer = false; issDoc.Remark = txtRemark.Text; issDoc.RecipientName = txtRecipientName.Text; issDoc.IssuedBy = txtIssuedBy.Text; issDoc.DUSOH = Convert.ToInt32(dtConfirm.Rows[i]["DUSOH"]); issDoc.ItemID = Convert.ToInt32(dtConfirm.Rows[i]["ItemId"]); issDoc.Quantity = Convert.ToInt64(dtConfirm.Rows[i]["Quantity"]); issDoc.NoOfPack = Convert.ToInt32(dtConfirm.Rows[i]["No Of Pack"]); issDoc.QtyPerPack = Convert.ToInt32(dtConfirm.Rows[i]["Qty Per Pack"]); switch (VisibilitySetting.HandleUnits) { case 1: issDoc.UnitID = 0; break; case 2: issDoc.UnitID = Convert.ToInt32(dtConfirm.Rows[i]["UnitID"]); break; default: issDoc.UnitID = Convert.ToInt32(dtConfirm.Rows[i]["UnitID"]); break; } issDoc.BatchNo = dtConfirm.Rows[i]["BatchNo"].ToString(); issDoc.Cost = Convert.ToDouble(dtConfirm.Rows[i]["Unit Price"]); issDoc.RecomendedQty = Convert.ToInt32(dtConfirm.Rows[i]["DURecomended"]);// ((recQty > 0) ? Convert.ToInt64(recQty) : 0); //End DU issDoc.Save(); //updating the receiving doc recDoc.LoadByPrimaryKey(Convert.ToInt32(dtConfirm.Rows[i]["RecId"])); //this line calculates the current SOH recDoc.QuantityLeft = recDoc.QuantityLeft - issDoc.Quantity; currentSOH = currentSOH + recDoc.QuantityLeft; itemId = Convert.ToInt32(dtConfirm.Rows[i]["ItemId"]); var unitId = Convert.ToInt32(dtConfirm.Rows[i]["UnitID"]); if (recDoc.QuantityLeft != 0) recDoc.Out = false; else recDoc.Out = true; if (confirmedItemsQuantity.ContainsKey(itemId)) confirmedItemsQuantity[itemId] += recDoc.QuantityLeft; else { confirmedItemsQuantity.Add(itemId, recDoc.QuantityLeft); } recDoc.Save(); storeId = Convert.ToInt32(cboStores.EditValue); //Log Activity dtIssueDate.Value = xx; Builder.RefreshAMCValues(storeId, confirmedItemsQuantity,unitId); } //save stockout information for the current item in current store //if current SOH after this issue is 0 if (currentSOH == 0) { StockoutLog stockoutLog = new StockoutLog(); stockoutLog.AddNew(); stockoutLog.StoreID = storeId; stockoutLog.ItemID = itemId; stockoutLog.StartDate = DateTime.Today; stockoutLog.Save(); } } XtraMessageBox.Show("Transaction Successfully Saved!", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); } } else { XtraMessageBox.Show(valid, "Validation", MessageBoxButtons.OK, MessageBoxIcon.Stop); } xpButton2_Click(sender, e); issueGrid.DataSource = null; issueGridView.RefreshData(); RefreshItems(); }