private void SetSPReceiveDetails(Receive oReceive) { gvReceiveDetail.DataSource = null; gvReceiveDetail.DataBind(); DataTable oDataTable = new DataTable("dtData"); oDataTable.Columns.Add(new DataColumn("bfDenom", typeof(string))); oDataTable.Columns.Add(new DataColumn("bfSeries", typeof(string))); oDataTable.Columns.Add(new DataColumn("bfFrom", typeof(string))); oDataTable.Columns.Add(new DataColumn("bfTo", typeof(string))); oDataTable.Columns.Add(new DataColumn("bfQuantity", typeof(string))); oDataTable.Columns.Add(new DataColumn("bfDnmAmount", typeof(string))); oDataTable.Columns.Add(new DataColumn("bfCabinetNumber", typeof(string))); oDataTable.Columns.Add(new DataColumn("bfDrawerNumber", typeof(string))); DataRow row = null; ReceiveDetails oReceiveDetails = null; if (oReceive.ReceiveDetailsList != null) { if (oReceive.ReceiveDetailsList.Count > 0) { for (int i = 0; i < oReceive.ReceiveDetailsList.Count; i++) { oReceiveDetails = (ReceiveDetails)oReceive.ReceiveDetailsList[i]; row = oDataTable.NewRow(); row["bfDenom"] = oReceiveDetails.Denomination.DenominationID.ToString(); row["bfSeries"] = oReceiveDetails.SPSeries.ToString(); row["bfFrom"] = oReceiveDetails.SeriesFrom.ToString(); row["bfTo"] = oReceiveDetails.SeriesTo.ToString(); row["bfQuantity"] = oReceiveDetails.ReceiveQuantity.ToString(); int iTmp = oReceiveDetails.ReceiveQuantity * oReceiveDetails.Denomination.DenominationID; row["bfDnmAmount"] = iTmp.ToString(); row["bfCabinetNumber"] = oReceiveDetails.CabinetNumber.ToString().ToUpper(); row["bfDrawerNumber"] = oReceiveDetails.DrawerNumber.ToString().ToUpper(); oDataTable.Rows.Add(row); } gvReceiveDetail.DataSource = oDataTable; gvReceiveDetail.DataBind(); } else { ucMessage.OpenMessage(Constants.MSG_ERROR_NOT_FOUND, Constants.MSG_TYPE_ERROR); } } else { ucMessage.OpenMessage(Constants.MSG_ERROR_NOT_FOUND, Constants.MSG_TYPE_ERROR); } }
protected void btnApprove_Click(object sender, EventArgs e) { Receive oReceive = new Receive(hdReceiveTransNo.Value); oReceive.SPType.SPTypeID = ddlSPType.SelectedItem.Value; if (gvReceiveDetail.Rows.Count > 0) { ReceiveDetails oRd = null; foreach (GridViewRow row in gvReceiveDetail.Rows) { oRd = new ReceiveDetails(); oRd.Denomination.DenominationID = Util.GetIntNumber(row.Cells[0].Text); oRd.SPSeries = row.Cells[1].Text; oRd.SeriesFrom = row.Cells[2].Text; oRd.SeriesTo = row.Cells[3].Text; oRd.ReceiveQuantity = Util.GetIntNumber(row.Cells[4].Text); oReceive.ReceiveDetailsList.Add(oRd); } } ReceiveDAL oReceiveDAL = new ReceiveDAL(); oReceive.UserDetails = ucUserDet.UserDetail; oReceive.ReceiveAmount = Convert.ToDecimal(txtReceiveAmount.Text); Result oResult = (Result)oReceiveDAL.Approve(oReceive); if (oResult.Status) { ucMessage.OpenMessage(Constants.MSG_SUCCESS_APPROVE, Constants.MSG_TYPE_SUCCESS); } else { ucMessage.OpenMessage(Constants.MSG_ERROR_APPROVE, Constants.MSG_TYPE_ERROR); } }
public ActionResult SaveUpdateSaleRet(SaleRetMain SaleRet, List <SaleRetDetail> SaleRetDetail, string IsSave) { using (var transaction = new TransactionScope()) { try { RBACUser rUser = new RBACUser(Session["UserName"].ToString()); #region for Sales Return transection string trnType = "Save"; string Msg = "1"; //Firstly deleted the saved For Update if (IsSave == "1") { if (!rUser.HasPermission("SalesReturn_Update")) { return(Json("U", JsonRequestBehavior.AllowGet)); } trnType = "Update"; Msg = "2"; #region For AVP OR LOT if (Session["MaintLot"].ToString() == "True") { var sRetMain = _saleRetMainService.All().Where(s => s.SaleRetNo == SaleRet.SaleRetNo).FirstOrDefault(); var sRetDetail = _saleRetDetailService.All().Where(s => s.SaleRetId == sRetMain.SaleRetId).ToList(); foreach (var currentItem in sRetDetail) { var currentStocks = _currentStockService.All().ToList().FirstOrDefault(m => m.ItemCode == currentItem.ItemCode && m.LocCode == SaleRet.LocNo && m.LotNo == currentItem.LotNo); if (currentStocks != null) { currentStocks.CurrQty = currentStocks.CurrQty - currentItem.ReturnQty; currentStocks.UnitPrice = Convert.ToDouble(currentItem.UnitPrice); _currentStockService.Update(currentStocks); } } } else { // For Costledger Code } #endregion var saleRetDel = _saleRetMainService.All().ToList().Where(y => y.SaleRetNo == SaleRet.SaleRetNo).FirstOrDefault(); _saleRetDetailService.All().ToList().Where(y => y.SaleRetId == saleRetDel.SaleRetId).ToList().ForEach(x => _saleRetDetailService.Delete(x)); _saleRetDetailService.Save(); _saleRetMainService.Delete(saleRetDel); _saleRetMainService.Save(); var rcvDel = _receiveMainService.All().ToList().Where(y => y.ChallanNo == SaleRet.ChallanNo && y.RefNo == SaleRet.SaleRetNo && y.VchrNo == SaleRet.VchrNo).FirstOrDefault(); _receiveDetailService.All().ToList().Where(y => y.RcvNo == rcvDel.RcvNo).ToList().ForEach(x => _receiveDetailService.Delete(x)); _receiveDetailService.Save(); _receiveMainService.Delete(rcvDel); _receiveMainService.Save(); } if (!rUser.HasPermission("SalesReturn_Insert")) { return(Json("X", JsonRequestBehavior.AllowGet)); } var IfExist = _saleRetMainService.All().Where(x => x.SaleRetNo == SaleRet.SaleRetNo).FirstOrDefault(); if (IfExist == null) { SaleRet.FinYear = Session["FinYear"].ToString(); SaleRet.BranchCode = Session["BranchCode"].ToString(); SaleRet.ProjCode = Session["ProjCode"].ToString(); SaleRet.EntryDateTime = DateTime.Now; _saleRetMainService.Add(SaleRet); _saleRetMainService.Save(); if (SaleRetDetail != null) { foreach (var sRetDExtItem in SaleRetDetail) { SaleRetDetail sRetDetail = new SaleRetDetail(); var srID = _saleRetMainService.All().Select(s => s.SaleRetId).LastOrDefault(); if (srID == null) { sRetDExtItem.SaleRetId = 1; } else { sRetDExtItem.SaleRetId = srID; } sRetDetail = sRetDExtItem; _saleRetDetailService.Add(sRetDetail); } } _saleRetDetailService.Save(); #region for Receive transection //var ExistRcv = _receiveMainService.All().Where(x => x.RcvNo == SaleRet.SaleRetNo).FirstOrDefault(); var rcvNo = _receiveMainService.All().Select(s => Convert.ToInt32(s.RcvNo)).LastOrDefault() + 1; //if (ExistRcv == null) //{ var todayDate = DateTime.Now; ReceiveMain recvMain = new ReceiveMain(); recvMain.RcvNo = "0" + rcvNo.ToString(); recvMain.BranchCode = Session["BranchCode"].ToString(); recvMain.RcvDate = SaleRet.SaleRetDate.AddHours(todayDate.Hour).AddMinutes(todayDate.Minute).AddSeconds(todayDate.Second).AddMilliseconds(todayDate.Millisecond); recvMain.Source = SaleRet.CustCode; recvMain.ChallanNo = SaleRet.ChallanNo; recvMain.RefNo = SaleRet.SaleRetNo; recvMain.RefDate = (DateTime)SaleRet.SaleRetDate; recvMain.Remarks = SaleRet.Remarks; recvMain.AppByCode = SaleRet.ApprBy; recvMain.RcvdTime = DateTime.Now; recvMain.StoreLocCode = SaleRet.LocNo; recvMain.RecvFromSubCode = SaleRet.CustCode; recvMain.VchrNo = SaleRet.VchrNo; recvMain.FinYear = Session["FinYear"].ToString(); recvMain.GLPost = false; recvMain.RcvdDate = SaleRet.SaleRetDate.AddHours(todayDate.Hour).AddMinutes(todayDate.Minute).AddSeconds(todayDate.Second).AddMilliseconds(todayDate.Millisecond); recvMain.expenseStatus = false; recvMain.CreditPur = false; double amount = 0.0; List <ReceiveDetails> receveDetailsList = new List <ReceiveDetails>(); foreach (var recvDetailsItem in SaleRetDetail) { ReceiveDetails receivDetails = new ReceiveDetails(); receivDetails.RcvNo = "0" + rcvNo.ToString(); receivDetails.ItemCode = recvDetailsItem.ItemCode; receivDetails.SubCode = SaleRet.CustCode; receivDetails.Description = recvDetailsItem.Description; receivDetails.Qty = recvDetailsItem.ReturnQty; receivDetails.Price = Convert.ToDouble(recvDetailsItem.UnitPrice); receivDetails.ExQty = recvDetailsItem.ReturnQty; receivDetails.LotNo = recvDetailsItem.LotNo; amount = amount + Convert.ToDouble((recvDetailsItem.ReturnQty * recvDetailsItem.UnitPrice)); receveDetailsList.Add(receivDetails); } recvMain.Amount = amount; #region For AVP OR LOT if (Session["MaintLot"].ToString() == "True") { foreach (var currentItem in SaleRetDetail) { var currentStocks = _currentStockService.All().ToList().FirstOrDefault(m => m.ItemCode == currentItem.ItemCode && m.LocCode == recvMain.StoreLocCode && m.LotNo == currentItem.LotNo); if (currentStocks != null) { currentStocks.CurrQty = currentItem.ReturnQty + currentStocks.CurrQty; currentStocks.UnitPrice = Convert.ToDouble(currentItem.UnitPrice); _currentStockService.Update(currentStocks); } else { CurrentStock currStock = new CurrentStock(); currStock.LocCode = SaleRet.LocNo; currStock.LotNo = currentItem.LotNo; currStock.ItemCode = currentItem.ItemCode; currStock.CurrQty = currentItem.ReturnQty; currStock.UnitPrice = Convert.ToDouble(currentItem.UnitPrice); _currentStockService.Add(currStock); } var lotNO = _lotDtService.All().ToList().Where(m => m.LotNo == currentItem.LotNo).FirstOrDefault(); if (lotNO == null) { LotDT lotDt = new LotDT(); lotDt.LotNo = currentItem.LotNo; lotDt.LotDate = SaleRet.SaleRetDate.AddHours(todayDate.Hour).AddMinutes(todayDate.Minute).AddSeconds(todayDate.Second).AddMilliseconds(todayDate.Millisecond); lotDt.RefNo = SaleRet.SaleRetNo; lotDt.RefSource = "Sales Return Receive"; _lotDtService.Add(lotDt); } } } else { #region AVP foreach (var cItem in SaleRetDetail) { CostLedger cLedger = new CostLedger(); cLedger.RecQty = cItem.ReturnQty; cLedger.RecRate = Convert.ToDouble(cItem.UnitPrice); cLedger.RecTotal = System.Math.Round(cLedger.RecQty * cLedger.RecRate, 2); double CurrQty = 0, BalTotal = 0; var existCurrStoc = CostLedgerAppService.All().Where(x => x.ItemCode == cItem.ItemCode && x.LocNo == recvMain.StoreLocCode.Trim()).ToList(); if (existCurrStoc.Count != 0) { var date = existCurrStoc.Max(x => x.TrDate); var existCurrStock = CostLedgerAppService.All().OrderByDescending(s => s.RecId).Where(x => x.ItemCode == cItem.ItemCode && x.LocNo == recvMain.StoreLocCode.Trim() && x.TrDate == date).ToList(); foreach (var item in existCurrStock) { CurrQty = item.BalQty; BalTotal = item.BalTotal; } } cLedger.IssQty = 0; cLedger.IssRate = 0; cLedger.IssTotal = 0; cLedger.BalQty = CurrQty + cLedger.RecQty; if (cLedger.BalQty != 0) { cLedger.BalRate = (BalTotal + cLedger.RecTotal) / cLedger.BalQty; } else { cLedger.BalRate = 0; } cLedger.BalRate = System.Math.Round(cLedger.BalRate, 2); cLedger.BalTotal = System.Math.Round(cLedger.BalQty * cLedger.BalRate, 2); cLedger.LocNo = recvMain.StoreLocCode; cLedger.ItemCode = cItem.ItemCode; cLedger.TrDate = (DateTime)SaleRet.SaleRetDate.AddHours(todayDate.Hour).AddMinutes(todayDate.Minute).AddSeconds(todayDate.Second).AddMilliseconds(todayDate.Millisecond); cLedger.UpdSrcNo = SaleRet.SaleRetNo; cLedger.UpdSrc = "SR"; CostLedgerAppService.Add(cLedger); } CostLedgerAppService.Save(); #endregion } #endregion recvMain.RcvDetails = receveDetailsList; _receiveMainService.Add(recvMain); _currentStockService.Save(); _receiveMainService.Save(); //} #endregion TransactionLogService.SaveTransactionLog(_transactionLogService, "Sales Return", trnType, rcvNo.ToString(), Session["UserName"].ToString()); //LoadDropDown.ProvitionInvRSave("IR", "I", recvInfo.RcvNo, recvInfo.VchrNo, Session["FinYear"].ToString(), Session["ProjCode"].ToString(), Session["BranchCode"].ToString(), recvMain.RcvDate.ToString("yyyy-MM-dd"), Session["UserName"].ToString()); transaction.Complete(); return(Json(new { Msg = Msg }, JsonRequestBehavior.AllowGet)); } else { transaction.Dispose(); return(Json("3", JsonRequestBehavior.AllowGet)); } #endregion } catch (Exception ex) { transaction.Dispose(); return(Json(ex.Message.ToString(), JsonRequestBehavior.AllowGet)); } } }
private void AddRDetailToSession(Receive oReceive) { if (Session[SES_ROW_INDEX] != null) { oReceive.ReceiveDetailsList.RemoveAt((int)Session[SES_ROW_INDEX]); Session[SES_ROW_INDEX] = null; } // (New Denomination == Old Denomination) && // (Old Series == New Series) && // ( New-From point in || New-To point in || // Old-From point in || Old-To point in ) // != Incorrect Format ReceiveDetails oReceiveDetailExist = oReceive.ReceiveDetailsList.Where(c => c.Denomination.DenominationID.Equals(Util.GetIntNumber(ddlDenomination.SelectedItem.Value)) && c.SPSeries.Equals(txtSeries.Text.Trim()) && ( ( // New-From point in Util.GetIntNumber(txtFrom.Text) >= Util.GetIntNumber(c.SeriesFrom) && Util.GetIntNumber(txtFrom.Text) <= Util.GetIntNumber(c.SeriesTo) ) || ( // New-To point in Util.GetIntNumber(txtTo.Text) >= Util.GetIntNumber(c.SeriesFrom) && Util.GetIntNumber(txtTo.Text) <= Util.GetIntNumber(c.SeriesTo) ) || ( // Old-From point in Util.GetIntNumber(txtFrom.Text) <= Util.GetIntNumber(c.SeriesFrom) && Util.GetIntNumber(txtTo.Text) >= Util.GetIntNumber(c.SeriesFrom) ) || ( // Old-To point in Util.GetIntNumber(txtFrom.Text) <= Util.GetIntNumber(c.SeriesTo) && Util.GetIntNumber(txtTo.Text) >= Util.GetIntNumber(c.SeriesTo) ) ) ).SingleOrDefault(); if (oReceiveDetailExist != null) { ucMessage.OpenMessage("Inconsistent data !!", Constants.MSG_TYPE_INFO); ScriptManager.RegisterStartupScript(this.UpdatePanel2, typeof(string), Constants.POPUP_WINDOW, Util.OpenPopup("info"), true); } else { // add to list as a new data Config oConfig = (Config)Session[Constants.SES_USER_CONFIG]; int iExistTotalAmount = oReceive.ReceiveDetailsList.Sum(r => r.Denomination.DenominationID * r.ReceiveQuantity); if (Util.GetDecimalNumber(iExistTotalAmount.ToString()) + Util.GetDecimalNumber(txtDnmAmount.Text) > Util.GetIntNumber(txtReceiveAmount.Text)) { ucMessage.OpenMessage("Denomination amount & Receive Amount must be equal !!", Constants.MSG_TYPE_INFO); ScriptManager.RegisterStartupScript(this.UpdatePanel2, typeof(string), Constants.POPUP_WINDOW, Util.OpenPopup("info"), true); return; } ReceiveDetails oReceiveDetails = new ReceiveDetails(); oReceiveDetails.SPSeries = txtSeries.Text.Trim().ToUpper(); oReceiveDetails.SeriesFrom = txtFrom.Text.Trim().PadLeft(Convert.ToInt32(hdDigitsInSlNo.Value), '0').ToUpper(); oReceiveDetails.SeriesTo = txtTo.Text.Trim().PadLeft(Convert.ToInt32(hdDigitsInSlNo.Value), '0').ToUpper(); oReceiveDetails.CabinetNumber = Util.GetIntNumber(txtCabinetNumber.Text); oReceiveDetails.DrawerNumber = Util.GetIntNumber(txtDrawerNumber.Text); oReceiveDetails.ReceiveQuantity = Util.GetIntNumber(txtQuantity.Text); oReceiveDetails.Denomination.DenominationID = Util.GetIntNumber(ddlDenomination.SelectedItem.Value); oReceiveDetails.UserDetails = ucUserDet.UserDetail; oReceiveDetails.UserDetails.MakerID = oConfig.UserName; oReceive.ReceiveDetailsList.Add(oReceiveDetails); gvReceiveDetail.DataSource = null; gvReceiveDetail.DataBind(); DataTable oDataTable = new DataTable("dtData"); oDataTable.Columns.Add(new DataColumn("bfDenom", typeof(string))); oDataTable.Columns.Add(new DataColumn("bfSeries", typeof(string))); oDataTable.Columns.Add(new DataColumn("bfFrom", typeof(string))); oDataTable.Columns.Add(new DataColumn("bfTo", typeof(string))); oDataTable.Columns.Add(new DataColumn("bfQuantity", typeof(string))); oDataTable.Columns.Add(new DataColumn("bfDnmAmount", typeof(string))); oDataTable.Columns.Add(new DataColumn("bfCabinetNumber", typeof(string))); oDataTable.Columns.Add(new DataColumn("bfDrawerNumber", typeof(string))); DataRow row = null; if (oReceive.ReceiveDetailsList != null) { if (oReceive.ReceiveDetailsList.Count > 0) { for (int i = 0; i < oReceive.ReceiveDetailsList.Count; i++) { oReceiveDetails = (ReceiveDetails)oReceive.ReceiveDetailsList[i]; row = oDataTable.NewRow(); row["bfDenom"] = oReceiveDetails.Denomination.DenominationID.ToString().ToUpper(); row["bfSeries"] = oReceiveDetails.SPSeries.ToString().ToUpper(); row["bfFrom"] = oReceiveDetails.SeriesFrom.ToString().ToUpper(); row["bfTo"] = oReceiveDetails.SeriesTo.ToString().ToUpper(); row["bfQuantity"] = oReceiveDetails.ReceiveQuantity.ToString().ToUpper(); int iTmp = oReceiveDetails.ReceiveQuantity * oReceiveDetails.Denomination.DenominationID; row["bfDnmAmount"] = iTmp.ToString(); row["bfCabinetNumber"] = oReceiveDetails.CabinetNumber.ToString().ToUpper(); row["bfDrawerNumber"] = oReceiveDetails.DrawerNumber.ToString().ToUpper(); oDataTable.Rows.Add(row); } gvReceiveDetail.DataSource = oDataTable; gvReceiveDetail.DataBind(); } } Session[Constants.SES_RECEIVE] = oReceive; txtSeries.Text = ""; txtFrom.Text = ""; txtTo.Text = ""; txtQuantity.Text = ""; txtDnmAmount.Text = ""; txtDrawerNumber.Text = ""; txtCabinetNumber.Text = ""; if (ddlDenomination.Items.Count > 0) { ddlDenomination.SelectedIndex = 0; } } }
protected void gvReceiveDetail_RowCommand(object sender, GridViewCommandEventArgs e) { GridViewRow gvRow = (GridViewRow)((Button)e.CommandSource).NamingContainer; string sButtonText = ((Button)e.CommandSource).CommandName; if (sButtonText.Equals("Select")) { hdDenom.Value = gvRow.Cells[2].Text; DDListUtil.Assign(ddlDenomination, gvRow.Cells[2].Text); txtSeries.Text = gvRow.Cells[3].Text; txtFrom.Text = gvRow.Cells[4].Text; txtTo.Text = gvRow.Cells[5].Text; txtQuantity.Text = gvRow.Cells[6].Text; txtDnmAmount.Text = gvRow.Cells[7].Text; txtCabinetNumber.Text = gvRow.Cells[8].Text; txtDrawerNumber.Text = gvRow.Cells[9].Text; Session[SES_ROW_INDEX] = gvRow.RowIndex; } else if (sButtonText.Equals("Delete")) { // need to delete previous data by Denomination Receive oReceive = (Receive)Session[Constants.SES_RECEIVE]; if (oReceive.ReceiveDetailsList.Count > 0) { if (gvRow.RowIndex != -1) { oReceive.ReceiveDetailsList.RemoveAt(gvRow.RowIndex); } } gvReceiveDetail.DataSource = null; gvReceiveDetail.DataBind(); DataTable oDataTable = new DataTable("dtData"); oDataTable.Columns.Add(new DataColumn("bfDenom", typeof(string))); oDataTable.Columns.Add(new DataColumn("bfSeries", typeof(string))); oDataTable.Columns.Add(new DataColumn("bfFrom", typeof(string))); oDataTable.Columns.Add(new DataColumn("bfTo", typeof(string))); oDataTable.Columns.Add(new DataColumn("bfQuantity", typeof(string))); oDataTable.Columns.Add(new DataColumn("bfDnmAmount", typeof(string))); oDataTable.Columns.Add(new DataColumn("bfCabinetNumber", typeof(string))); oDataTable.Columns.Add(new DataColumn("bfDrawerNumber", typeof(string))); ReceiveDetails oReceiveDetails = null; DataRow row = null; if (oReceive.ReceiveDetailsList != null) { if (oReceive.ReceiveDetailsList.Count > 0) { for (int i = 0; i < oReceive.ReceiveDetailsList.Count; i++) { oReceiveDetails = (ReceiveDetails)oReceive.ReceiveDetailsList[i]; row = oDataTable.NewRow(); row["bfDenom"] = oReceiveDetails.Denomination.DenominationID.ToString().ToUpper(); row["bfSeries"] = oReceiveDetails.SPSeries.ToString().ToUpper(); row["bfFrom"] = oReceiveDetails.SeriesFrom.ToString().ToUpper(); row["bfTo"] = oReceiveDetails.SeriesTo.ToString().ToUpper(); row["bfQuantity"] = oReceiveDetails.ReceiveQuantity.ToString().ToUpper(); int iTmp = oReceiveDetails.ReceiveQuantity * oReceiveDetails.Denomination.DenominationID; row["bfDnmAmount"] = iTmp.ToString(); row["bfCabinetNumber"] = oReceiveDetails.CabinetNumber.ToString().ToUpper(); row["bfDrawerNumber"] = oReceiveDetails.DrawerNumber.ToString().ToUpper(); oDataTable.Rows.Add(row); } gvReceiveDetail.DataSource = oDataTable; gvReceiveDetail.DataBind(); } } ddlDenomination.SelectedIndex = 0; txtCabinetNumber.Text = string.Empty; txtDrawerNumber.Text = string.Empty; Session[Constants.SES_RECEIVE] = oReceive; } }