public ActionResult Create(int id = 0) { int FyearId = Convert.ToInt32(Session["fyearid"]); CustomerRcieptVM cust = new CustomerRcieptVM(); cust.CustomerRcieptChildVM = new List <CustomerRcieptChildVM>(); List <CurrencyMaster> Currencys = new List <CurrencyMaster>(); Currencys = MM.GetCurrency(); ViewBag.Currency = new SelectList(Currencys, "CurrencyID", "CurrencyName"); if (Session["UserID"] != null) { var branchid = Convert.ToInt32(Session["CurrentBranchID"]); if (id > 0) { ViewBag.Title = "COD Receipt - Modify"; cust = RP.GetRecPayByRecpayID(id); var acheadforcash = (from c in db.AcHeads join g in db.AcGroups on c.AcGroupID equals g.AcGroupID where g.AcGroup1 == "Cash" select new { AcHeadID = c.AcHeadID, AcHead = c.AcHead1 }).ToList(); var acheadforbank = (from c in db.AcHeads join g in db.AcGroups on c.AcGroupID equals g.AcGroupID where g.AcGroup1 == "Bank" select new { AcHeadID = c.AcHeadID, AcHead = c.AcHead1 }).ToList(); ViewBag.achead = acheadforcash; ViewBag.acheadbank = acheadforbank; cust.recPayDetail = db.RecPayDetails.Where(item => item.RecPayID == id).ToList(); int fyearid = Convert.ToInt32(Session["fyearid"].ToString()); var salesinvoice = new List <CustomerTradeReceiptVM>(); salesinvoice = ReceiptDAO.GetCODPending(fyearid, id); Session["CODAWBList"] = salesinvoice; cust.CustomerRcieptChildVM = new List <CustomerRcieptChildVM>(); foreach (var item in cust.recPayDetail) { if (item.InScanID > 0) { if (salesinvoice.Count > 0) { CustomerTradeReceiptVM sales = salesinvoice.Where(cc => cc.InScanID == Convert.ToInt32(item.InScanID)).FirstOrDefault(); decimal invoicetotal = Convert.ToDecimal(sales.InvoiceAmount); decimal received = Convert.ToDecimal(sales.AmountReceived); var allrecpay = (from d in db.RecPayDetails where d.InScanID == item.InScanID select d).ToList(); var totamtpaid = allrecpay.Sum(d => d.Amount) * -1; var totadjust = allrecpay.Sum(d => d.AdjustmentAmount); var customerinvoice = new CustomerRcieptChildVM(); customerinvoice.InvoiceType = "D"; var inscan = db.InScanMasters.Find(item.InScanID); if (inscan != null) { customerinvoice.InScanID = inscan.InScanID; customerinvoice.ConsignmentNo = inscan.ConsignmentNo; customerinvoice.strDate = Convert.ToDateTime(inscan.TransactionDate).ToString("dd/MM/yyyy"); } customerinvoice.AmountToBeRecieved = invoicetotal; customerinvoice.AmountToBePaid = received; customerinvoice.Amount = Convert.ToDecimal(item.Amount) * -1; customerinvoice.Balance = invoicetotal - received; customerinvoice.RecPayDetailID = item.RecPayDetailID; customerinvoice.RecPayID = Convert.ToInt32(item.RecPayID); customerinvoice.AdjustmentAmount = 0; cust.CustomerRcieptChildVM.Add(customerinvoice); } } } Session["AWBAllocation"] = cust.AWBAllocation; } else { ViewBag.Title = "COD Receipt - Create"; var codcust = db.CustomerMasters.Where(cc => cc.CustomerName == "Cod Customer").FirstOrDefault(); var acheadforcash = (from c in db.AcHeads join g in db.AcGroups on c.AcGroupID equals g.AcGroupID where g.AcGroup1 == "Cash" select new { AcHeadID = c.AcHeadID, AcHead = c.AcHead1 }).ToList(); var acheadforbank = (from c in db.AcHeads join g in db.AcGroups on c.AcGroupID equals g.AcGroupID where g.AcGroup1 == "Bank" select new { AcHeadID = c.AcHeadID, AcHead = c.AcHead1 }).ToList(); ViewBag.achead = acheadforcash; ViewBag.acheadbank = acheadforbank; DateTime pFromDate = AccountsDAO.CheckParamDate(DateTime.Now, FyearId).Date; cust.RecPayDate = pFromDate; cust.RecPayID = 0; cust.CustomerID = codcust.CustomerID; cust.DocumentNo = ReceiptDAO.SP_GetMaxCODID(); cust.CurrencyId = Convert.ToInt32(Session["CurrencyId"].ToString()); var salesinvoice = new List <CustomerTradeReceiptVM>(); if (codcust != null) { int fyearid = Convert.ToInt32(Session["fyearid"].ToString()); salesinvoice = ReceiptDAO.GetCODPending(fyearid, 0); Session["CODAWBList"] = salesinvoice; } } } else { return(RedirectToAction("Login", "Login")); } var StaffNotes = (from d in db.StaffNotes where d.PageTypeId == 2 orderby d.NotesId descending select d).ToList(); var users = (from d in db.UserRegistrations select d).ToList(); var staffnotemodel = new List <StaffNoteModel>(); foreach (var item in StaffNotes) { var model = new StaffNoteModel(); model.id = item.NotesId; model.employeeid = item.EmployeeId; //model.jobid = item.JobId; model.TaskDetails = item.Notes; model.Datetime = item.EntryDate; model.EmpName = users.Where(d => d.UserID == item.EmployeeId).FirstOrDefault().UserName; staffnotemodel.Add(model); } ViewBag.StaffNoteModel = staffnotemodel; var customerdetails = (from d in db.CustomerMasters where d.CustomerID == cust.CustomerID && d.CustomerType == "CS" select d).FirstOrDefault(); if (customerdetails == null) { customerdetails = new CustomerMaster(); } ViewBag.CustomerDetail = customerdetails; var CustomerNotification = (from d in db.CustomerNotifications where d.RecPayID == id && d.PageTypeId == 2 orderby d.NotificationId descending select d).ToList(); var customernotification = new List <CustomerNotificationModel>(); foreach (var item in CustomerNotification) { var model = new CustomerNotificationModel(); model.id = item.NotificationId; model.employeeid = item.UserId; model.jobid = item.RecPayID; model.Message = item.MessageText; model.Datetime = item.EntryDate; model.IsEmail = item.NotifyByEmail; model.IsSms = item.NotifyBySMS; model.IsWhatsapp = item.NotifyByWhatsApp; model.EmpName = users.Where(d => d.UserID == item.UserId).FirstOrDefault().UserName; customernotification.Add(model); } cust.AWBAllocation = new List <ReceiptAllocationDetailVM>(); ViewBag.CustomerNotification = customernotification; return(View(cust)); }
public ActionResult Create(CustomerRcieptVM RecP, string Command, string Currency) { int RPID = 0; int fyearid = Convert.ToInt32(Session["fyearid"].ToString()); int i = 0; RecP.FYearID = Convert.ToInt32(Session["fyearid"]); RecP.UserID = Convert.ToInt32(Session["UserID"]); var StaffNotes = (from d in db.StaffNotes where d.RecPayID == RecP.RecPayID && d.PageTypeId == 2 orderby d.NotesId descending select d).ToList(); var branchid = Convert.ToInt32(Session["CurrentBranchID"]); var users = (from d in db.UserRegistrations select d).ToList(); List <ReceiptAllocationDetailVM> AWBAllocationall = (List <ReceiptAllocationDetailVM>)Session["AWBAllocation"]; var staffnotemodel = new List <StaffNoteModel>(); foreach (var item in StaffNotes) { var model = new StaffNoteModel(); model.id = item.NotesId; model.employeeid = item.EmployeeId; //model.jobid = item.JobId; model.TaskDetails = item.Notes; model.Datetime = item.EntryDate; model.EmpName = users.Where(d => d.UserID == item.EmployeeId).FirstOrDefault().UserName; staffnotemodel.Add(model); } ViewBag.StaffNoteModel = staffnotemodel; //if (RecP.RecPayID > 0) //{ // RP.EditCustomerRecPay(RecP, Session["UserID"].ToString()); // RP.EditCustomerRecieptDetails(RecP.recPayDetail, RecP.RecPayID); //} if (RecP.CashBank != null) { RecP.StatusEntry = "CS"; int acheadid = Convert.ToInt32(RecP.CashBank); var achead = (from t in db.AcHeads where t.AcHeadID == acheadid select t.AcHead1).FirstOrDefault(); RecP.BankName = achead; } else { RecP.StatusEntry = "BK"; int acheadid = Convert.ToInt32(RecP.ChequeBank); var achead = (from t in db.AcHeads where t.AcHeadID == acheadid select t.AcHead1).FirstOrDefault(); RecP.BankName = achead; } if (RecP.CustomerRcieptChildVM == null) { RecP.CustomerRcieptChildVM = new List <CustomerRcieptChildVM>(); } //Adding Entry in Rec PAY ///Insert Entry For RecPay Details /// if (RecP.RecPayID <= 0) { decimal Fmoney = 0; //for (int j = 0; j < RecP.CustomerRcieptChildVM.Count; j++) //{ // Fmoney = Fmoney + Convert.ToDecimal(RecP.CustomerRcieptChildVM[j].Amount); //} //if (Fmoney > 0) //{ // RecP.FMoney = Fmoney; //} RecP.AcCompanyID = branchid; RPID = ReceiptDAO.AddCustomerRecieptPayment(RecP, Session["UserID"].ToString()); //.AddCustomerRecieptPayment(RecP, Session["UserID"].ToString()); RecP.RecPayID = (from c in db.RecPays orderby c.RecPayID descending select c.RecPayID).FirstOrDefault(); decimal TotalAmount = 0; foreach (var item in RecP.CustomerRcieptChildVM) { if (item.Amount > 0) { RecPayDetail recpd = new RecPayDetail(); int? maxrecpaydetailid = (from c in db.RecPayDetails orderby c.RecPayDetailID descending select c.RecPayDetailID).FirstOrDefault(); if (maxrecpaydetailid == null) { maxrecpaydetailid = 1; } else { maxrecpaydetailid = maxrecpaydetailid + 1; } recpd.RecPayDetailID = Convert.ToInt32(maxrecpaydetailid); recpd.Amount = -(item.Amount); recpd.CurrencyID = item.CurrencyId; recpd.AdjustmentAmount = 0; recpd.InvDate = item.InvoiceDate.Value; recpd.RecPayID = RecP.RecPayID; recpd.Remarks = item.Remarks; recpd.InvoiceID = 0; recpd.InScanID = item.InScanID; recpd.AcOPInvoiceDetailID = 0; recpd.StatusInvoice = "D"; db.RecPayDetails.Add(recpd); db.SaveChanges(); } } //To Balance Invoice AMount if (RecP.FMoney > 0) { //int l = ReceiptDAO.InsertRecpayDetailsForCust(RecP.RecPayID, 0, 0, Convert.ToDecimal(RecP.FMoney), null, "D", false, null, null, null, Convert.ToInt32(RecP.CurrencyId), 4, 0); int fyaerId = Convert.ToInt32(Session["fyearid"].ToString()); ReceiptDAO.InsertJournalOfCustomer(RecP.RecPayID, fyaerId); } // var Recpaydata = (from d in db.RecPays where d.RecPayID == RecP.RecPayID select d).FirstOrDefault(); //Recpaydata.RecPayID = RecP.RecPayID; //Recpaydata.IsTradingReceipt = true; //db.Entry(Recpaydata).State = EntityState.Modified; //db.SaveChanges(); } else //edit mode { var details = (from d in db.RecPayDetails where d.RecPayID == RecP.RecPayID select d).ToList(); if (details != null) { db.RecPayDetails.RemoveRange(details); db.SaveChanges(); } RecPay recpay = new RecPay(); recpay = db.RecPays.Find(RecP.RecPayID); recpay.RecPayDate = RecP.RecPayDate; recpay.RecPayID = RecP.RecPayID; recpay.AcJournalID = RecP.AcJournalID; recpay.BankName = RecP.BankName; recpay.ChequeDate = RecP.ChequeDate; recpay.ChequeNo = RecP.ChequeNo; recpay.CustomerID = RecP.CustomerID; recpay.DocumentNo = RecP.DocumentNo; recpay.EXRate = RecP.EXRate; recpay.FYearID = RecP.FYearID; recpay.FMoney = RecP.FMoney; recpay.StatusEntry = RecP.StatusEntry; recpay.IsTradingReceipt = true; recpay.FMoney = RecP.FMoney; recpay.Remarks = RecP.Remarks; recpay.ModifiedBy = RecP.UserID; recpay.ModifiedDate = DateTime.Now; db.Entry(recpay).State = EntityState.Modified; db.SaveChanges(); foreach (var item in RecP.CustomerRcieptChildVM) { if (item.Amount > 0) { RecPayDetail recpd = new RecPayDetail(); int?maxrecpaydetailid = (from c in db.RecPayDetails orderby c.RecPayDetailID descending select c.RecPayDetailID).FirstOrDefault(); if (maxrecpaydetailid == null) { maxrecpaydetailid = 1; } else { maxrecpaydetailid = maxrecpaydetailid + 1; } recpd.RecPayDetailID = Convert.ToInt32(maxrecpaydetailid); recpd.Amount = -(item.Amount); recpd.CurrencyID = item.CurrencyId; recpd.AdjustmentAmount = 0; if (item.InvoiceDate != null) { recpd.InvDate = item.InvoiceDate.Value; } recpd.RecPayID = RecP.RecPayID; recpd.Remarks = item.Remarks; recpd.InvoiceID = 0; recpd.InScanID = item.InScanID; recpd.AcOPInvoiceDetailID = 0; recpd.StatusInvoice = "D"; db.RecPayDetails.Add(recpd); db.SaveChanges(); } } //int editrecPay = 0; //var sumOfAmount = db.RecPayDetails.Where(m => m.RecPayID == RecP.RecPayID && m.InvoiceID != 0).Sum(c => c.Amount); //editrecPay = editfu.EditRecpayDetailsCustR(RecP.RecPayID, Convert.ToInt32(sumOfAmount)); if (RecP.AcJournalID == null) { ReceiptDAO.InsertJournalOfCustomer(RecP.RecPayID, fyearid); } else { int editAcJdetails = editfu.EditAcJDetails(RecP.AcJournalID.Value, Convert.ToDecimal(RecP.FMoney)); } } return(RedirectToAction("Index", "CODReceipt")); }