public ActionResult InsertPayment(tbl_Payments paymentdata) { using (var ctx = new AuditedJobContext(UserInfo.UserKey, UserInfo.User.UserName, false)) { try { var job = (from j in ctx.tbl_Job where j.JobID == paymentdata.JobID select new { j.FranchiseID, j.CustomerID }) .First(); paymentdata.FranchiseID = job.FranchiseID; paymentdata.DepositStatus = false; paymentdata.CreateDate = DateTime.Now; ctx.tbl_Payments.AddObject(paymentdata); ctx.SaveChanges(); InvoiceFinancialDetail finance = RecalcJobData(paymentdata.JobID, job.CustomerID); return(Json(finance)); } catch (Exception) { } return(Json("fail")); } }
public ActionResult UpdatePayment(tbl_Payments paymentdata) { using (var ctx = new AuditedJobContext(UserInfo.UserKey, UserInfo.User.UserName, false)) { try { var payment = (from p in ctx.tbl_Payments where p.PaymentID == paymentdata.PaymentID select p).Single(); if (payment.DepositStatus == true) { return(Json("posted")); } payment.DepositStatus = false; payment.PaymentAmount = paymentdata.PaymentAmount; payment.PaymentDate = paymentdata.PaymentDate; payment.PaymentTypeID = paymentdata.PaymentTypeID; payment.CheckNumber = paymentdata.CheckNumber; payment.DriversLicNUm = paymentdata.DriversLicNUm; ctx.SaveChanges(); var CustomerID = ctx.tbl_Job.First(q => q.JobID == paymentdata.JobID).CustomerID; InvoiceFinancialDetail finance = RecalcJobData(paymentdata.JobID, CustomerID); return(Json(finance)); } catch (Exception) { } return(Json("fail")); } }
public ActionResult DeleteJobTask(int jobid, int taskid, int partid) { using (var ctx = new AuditedJobContext(UserInfo.UserKey, UserInfo.User.UserName, false)) { using (var scope = new TransactionScope()) { var part = ctx.tbl_Job_Task_Parts.SingleOrDefault(q => q.JobTaskPartsID == partid); if (part != null) { ctx.tbl_Job_Task_Parts.DeleteObject(part); ctx.SaveChanges(); } if (!ctx.tbl_Job_Task_Parts.Any(q => q.JobTaskID == taskid)) { var task = ctx.tbl_Job_Tasks.Single(q => q.JobTaskID == taskid); ctx.tbl_Job_Tasks.DeleteObject(task); ctx.SaveChanges(); } scope.Complete(); } var customerid = ctx.tbl_Job.FirstOrDefault(q => q.JobID == jobid).CustomerID; InvoiceFinancialDetail finance = RecalcJobData(jobid, customerid); return(Json(finance)); } }
public ActionResult AddPart(int partid, int jobid, int taskid) { var objmodcommon = new mod_common(UserInfo.UserKey); using (var ctx = new AuditedJobContext(UserInfo.UserKey, UserInfo.User.UserName, false)) { try { var part = (from p in ctx.tbl_PB_Parts where p.PartID == partid select p) .Single(); var task = (from t in ctx.tbl_Job_Tasks where t.JobTaskID == taskid select t) .Single(); var newpart = new tbl_Job_Task_Parts { JobTaskID = taskid, PartCode = objmodcommon.GetPartCode(partid).Trim(), PartName = objmodcommon.GetPartName(partid).Trim(), PartsID = part.PartID, Quantity = 1 }; if (task.MemberYN) { newpart.Price = task.AddOnYN ? part.PartAddonMemberPrice : part.PartMemberPrice; } else { newpart.Price = task.AddOnYN ? part.PartAddonStdPrice : part.PartStdPrice; } ctx.tbl_Job_Task_Parts.AddObject(newpart); ctx.SaveChanges(); var customerid = ctx.tbl_Job.FirstOrDefault(q => q.JobID == jobid).CustomerID; InvoiceFinancialDetail finance = RecalcJobData(jobid, customerid); return(Json(finance)); } catch (DbEntityValidationException dbEx) { foreach (var validationErrors in dbEx.EntityValidationErrors) { foreach (var validationError in validationErrors.ValidationErrors) { Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage); } } } return(Json("fail")); } }
public InvoiceFinancialDetail RecalcJobData(int jobid, int customerid) { using (var ctx = new AuditedJobContext(UserInfo.UserKey, UserInfo.User.UserName, false)) { try { var total = (from j in ctx.tbl_Job join t in ctx.tbl_Job_Tasks on j.JobID equals t.JobID where j.JobID == jobid select new { t.Price, t.Quantity }).ToArray().Sum(x => x.Price * x.Quantity); var totalpayment = (from p in ctx.tbl_Payments where p.JobID == jobid select p.PaymentAmount).Sum() ?? 0; var objjob = (from j in ctx.tbl_Job where j.JobID == jobid select j) .FirstOrDefault(); objjob.SubTotal = total; objjob.TotalSales = total + objjob.TaxAmount; objjob.Balance = objjob.TotalSales - totalpayment; ctx.SaveChanges(); var finance = new InvoiceFinancialDetail() { SubTotal = String.Format("{0:C}", objjob.SubTotal).Replace("$", ""), Total = String.Format("{0:C}", objjob.TotalSales).Replace("$", ""), Balance = String.Format("{0:C}", objjob.Balance).Replace("$", ""), TotalPaid = String.Format("{0:C}", totalpayment).Replace("$", "") }; var customerbalance = (from h in ctx.tbl_Job where h.CustomerID == customerid group h by h.CustomerID into g select new { TotalBalance = g.Sum(x => x.Balance) }) .Single(); finance.CustomerBalance = String.Format("{0:C}", customerbalance.TotalBalance).Replace("$", ""); return(finance); } catch (Exception) { } return(null); } }
public ActionResult UpdateJobTask(int jobid, tbl_Job_Tasks taskdata, tbl_Job_Task_Parts partdata) { using (var ctx = new AuditedJobContext(UserInfo.UserKey, UserInfo.User.UserName, false)) { try { var task = ctx.tbl_Job_Tasks.FirstOrDefault(t => t.JobID == jobid && t.JobTaskID == taskdata.JobTaskID); if (task != null) { task.MemberYN = taskdata.MemberYN; task.AddOnYN = taskdata.AddOnYN; task.Quantity = taskdata.Quantity; task.Price = taskdata.Price; task.JobCodeDescription = taskdata.JobCodeDescription; task.JobCode = taskdata.JobCode; task.JobCodeID = taskdata.JobCodeID; } var part = ctx.tbl_Job_Task_Parts.FirstOrDefault(q => q.JobTaskPartsID == partdata.JobTaskPartsID && q.JobTaskID == taskdata.JobTaskID); if (part != null) { part.PartsID = partdata.PartsID; part.Quantity = partdata.Quantity; part.Price = partdata.Price; part.PartCode = partdata.PartCode; part.PartName = partdata.PartName; } ctx.SaveChanges(); var customerid = ctx.tbl_Job.FirstOrDefault(q => q.JobID == jobid).CustomerID; InvoiceFinancialDetail finance = RecalcJobData(jobid, customerid); return(Json(finance)); } catch (DbEntityValidationException dbEx) { foreach (var validationErrors in dbEx.EntityValidationErrors) { foreach (var validationError in validationErrors.ValidationErrors) { Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage); } } } return(Json("fail")); } }
public ActionResult DeletePayment(tbl_Payments paymentdata) { using (var ctx = new AuditedJobContext(UserInfo.UserKey, UserInfo.User.UserName, false)) { var payment = (from p in ctx.tbl_Payments where p.PaymentID == paymentdata.PaymentID select p).Single(); if (payment.DepositStatus == true) { return(Json("posted")); } ctx.tbl_Payments.DeleteObject(payment); ctx.SaveChanges(); var CustomerID = ctx.tbl_Job.First(q => q.JobID == paymentdata.JobID).CustomerID; InvoiceFinancialDetail finance = RecalcJobData(paymentdata.JobID, CustomerID); return(Json(finance)); } }
public ActionResult InsertMultiplePayment(tbl_Payments[] paymentdata, DateTime PaymentDate) { using (var ctx = new AuditedJobContext(UserInfo.UserKey, UserInfo.User.UserName, false)) { var overpayments = 0; var underpayments = 0; var finance = new InvoiceFinancialDetail(); decimal amountRemaining = 0; paymentdata = paymentdata.OrderBy(x => x.PaymentDate).ToArray(); for (var i = 0; i < paymentdata.Length; i++) { var jobId = paymentdata[i].JobID; if (overpayments > 0) { paymentdata[i].PaymentAmount = amountRemaining; } var paymentAmount = Convert.ToDecimal(paymentdata[i].PaymentAmount); var job = (from j in ctx.tbl_Job where j.JobID == jobId select new { j.CustomerID, j.Balance }) .First(); var currentBalance = job.Balance; if (paymentAmount > currentBalance) { paymentdata[i].PaymentAmount = currentBalance; amountRemaining = paymentAmount - currentBalance; if (i == paymentdata.Length - 1) { paymentdata[i].PaymentAmount += amountRemaining; } overpayments++; } if (paymentAmount < currentBalance) { underpayments++; paymentdata[i].PaymentAmount = amountRemaining == 0 ? 0 : amountRemaining; if (i == paymentdata.Length - 1) { paymentdata[i].PaymentAmount = amountRemaining == 0 ? 0 : amountRemaining; } } if (paymentAmount == currentBalance) { paymentdata[i].PaymentAmount = paymentAmount; } if (underpayments > 1) { paymentdata[i].PaymentAmount = 0; } paymentdata[i].PaymentDate = PaymentDate; paymentdata[i].CreateDate = DateTime.Now; ctx.tbl_Payments.AddObject(paymentdata[i]); ctx.SaveChanges(); finance = RecalcMultipleJobData(paymentdata[i].JobID, job.CustomerID); i++; } return(Json(finance)); } }
public ActionResult AddCode(int jobcodeid, int jobid) { var objmodcommon = new mod_common(UserInfo.UserKey); using (var ctx = new AuditedJobContext(UserInfo.UserKey, UserInfo.User.UserName, false)) { try { //task var task = (from jc in ctx.tbl_PB_JobCodes where jc.JobCodeID == jobcodeid select new { jc.JobAddonMemberPrice, jc.JobAddonStdPrice, jc.JobCost, jc.JobCode, jc.JobCodeID, jc.JobCodeDescription }).Single(); var job = (from j in ctx.tbl_Job where j.JobID == jobid select new { j.CustomerID, j.BusinessTypeID }).Single(); var newtask = new tbl_Job_Tasks() { Cost = task.JobCost, JobCodeID = task.JobCodeID, JobCode = task.JobCode, JobCodeDescription = task.JobCodeDescription, JobID = jobid, AuthorizedYN = true, AddOnYN = true, Quantity = 1 }; if (ctx.tbl_Customer_Members.Any(q => q.CustomerID == job.CustomerID)) { newtask.Price = task.JobAddonMemberPrice; } else { newtask.Price = task.JobAddonStdPrice; } newtask.AccountCode = objmodcommon.Get_Account_Code(task.JobCodeID, job.BusinessTypeID); ctx.tbl_Job_Tasks.AddObject(newtask); ctx.SaveChanges(); //part var partlist = (from p in ctx.tbl_PB_JobCodes_Details where p.JobCodeID == newtask.JobCodeID select p); bool addflag = false; foreach (var part in partlist) { var newpart = new tbl_Job_Task_Parts() { JobTaskID = newtask.JobTaskID, PartCode = objmodcommon.GetPartCode(part.PartID).Trim(), PartName = objmodcommon.GetPartName(part.PartID), PartsID = part.PartID, Quantity = newtask.Quantity * part.Qty }; if (newtask.AddOnYN) { newpart.Price = newtask.MemberYN ? part.PartAddonMemberPrice : part.PartAddonStdPrice; } else { newpart.Price = newtask.MemberYN ? part.PartMemberPrice : part.PartStdPrice; } ctx.tbl_Job_Task_Parts.AddObject(newpart); addflag = true; } if (addflag) { ctx.SaveChanges(); } InvoiceFinancialDetail finance = RecalcJobData(jobid, job.CustomerID); return(Json(finance)); } catch (DbEntityValidationException dbEx) { foreach (var validationErrors in dbEx.EntityValidationErrors) { foreach (var validationError in validationErrors.ValidationErrors) { Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage); } } } return(Json("fail")); } }