public static JobTask MapFromModel(tbl_Job_Tasks task) { var t = new JobTask(); t.CopyFrom(task); return(t); }
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")); } }
protected void CopyFrom(tbl_Job_Tasks task) { if (task == null) { return; } Description = task.JobCodeDescription; JobCode = task.JobCode; Rate = task.UnitPrice; Quantity = task.Quantity; Amount = task.Price; JobId = task.JobID; IsAddOn = task.AddOnYN; }
private void SetJobTasks(EightHundredEntities context, IEnumerable <SystemInfoModelWithParts> prMainJobs, IEnumerable <AccessoryModel> prAccessories) { var frId = GetFranchiseID(); var priceBookId = GetPriceBookId(context, frId); var jobId = GetJobCode(); foreach (var jobtask in prMainJobs) { var qty = 1; //var jobDesription = context.View_HVAC_APP.First(i => i.JobCode == jobtask.JobCode).JobCodeDescription; var jobTask = new tbl_Job_Tasks { JobID = jobId, JobCodeDescription = jobtask.Description, JobCode = jobtask.JobCode, AccountCode = jobtask.ResAccountCode, AddOnYN = false, AuthorizedYN = true, MemberYN = false, Cost = jobtask.Parts.Sum(item => item.PartStdPrice * item.Qty), Quantity = qty, JobCodeID = jobtask.JobCodeId, Price = jobtask.Parts.Sum(item => item.PartStdPrice * item.Qty), AdjustedPrice = 0, ErrorFlag = false, HomeGuardLink = 0, HomeGuardPrice = 0, LinePrice = 0, TabletTaskID = 0, UnitPrice = 0 }; context.tbl_Job_Tasks.AddObject(jobTask); context.SaveChanges(); foreach (var listpart in jobtask.Parts.Where(listpart => listpart.Qty != 0)) { context.tbl_Job_Task_Parts.AddObject(new tbl_Job_Task_Parts { Cost = listpart.PartCost, PartCode = listpart.PartCode, PartName = listpart.PartName, Price = listpart.PartStdPrice, PartsID = listpart.PartID, Quantity = listpart.Qty, }); } context.SaveChanges(); } var codes = prAccessories.Select(i => new KeyValuePair <string, AccessoryModel>(i.JobCode, i)); var jobcodes = codes.Select(item => item.Key); //var list = context.View_HVAC_APP.Where(item => item.PriceBookID == priceBookId).Where( // i => jobcodes.Contains(i.JobCode)).ToList(); var listparts = context.View_HVAC_APP_Parts.Where(item => item.PriceBookID == priceBookId).Where( i => jobcodes.Contains(i.JobCode)).ToList(); foreach (var jobtask in codes.Select(i => i.Value)) { var job_task = new tbl_Job_Tasks { JobID = jobId, JobCodeDescription = jobtask.Description, JobCode = jobtask.JobCode, AccountCode = jobtask.ResAccountCode, AddOnYN = false, AuthorizedYN = true, MemberYN = false, Cost = jobtask.Price, Quantity = jobtask.Count, JobCodeID = jobtask.JobCodeId, Price = jobtask.Price, AdjustedPrice = 0, ErrorFlag = false, HomeGuardLink = 0, HomeGuardPrice = 0, LinePrice = 0, TabletTaskID = 0, UnitPrice = 0 }; context.tbl_Job_Tasks.AddObject(job_task); context.SaveChanges(); foreach (var listpart in listparts.Where(i => i.JobCode == job_task.JobCode)) { context.tbl_Job_Task_Parts.AddObject(new tbl_Job_Task_Parts { Cost = listpart.PartCost, PartCode = listpart.PartCode, PartName = listpart.PartName, Price = listpart.PartStdPrice, JobTaskID = job_task.JobTaskID, PartsID = listpart.PartID, Quantity = listpart.Qty * job_task.Quantity, }); } context.SaveChanges(); } }
public int GetMemberType(tbl_Job_Tasks task) { return(1); }
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")); } }
public ActionResult ManageTask(FormCollection frmcollection, int JobId, string command) { var objmodcommon = new mod_common(UserInfo.UserKey); using (var DB = GetContext()) { if (Request.QueryString["JobId"] != null && Request.QueryString["JobId"] != "") { ViewBag.jobsid = Request.QueryString["JobId"].ToString(); #region "Update Task Part" if (command == "Update") { try { if (Convert.ToString(frmcollection["txtCode"]) != "" && Convert.ToString(frmcollection["txtCode"]) != null) { tbl_Job_Tasks objjobtask = new tbl_Job_Tasks(); int taskid = Convert.ToInt32(frmcollection["hdntaskid"]); objjobtask = (from t in DB.tbl_Job_Tasks where t.JobID == JobId && t.JobTaskID == taskid select t) .FirstOrDefault(); if (objjobtask != null) { if (frmcollection["chkMember"].ToString() == "true,false") { objjobtask.MemberYN = true; } else { objjobtask.MemberYN = false; } if (frmcollection["chkAddon"].ToString() == "true,false") { objjobtask.AddOnYN = true; } else { objjobtask.AddOnYN = false; } try { objjobtask.Quantity = Convert.ToDecimal(frmcollection["txtQty"]); } catch (Exception) { objjobtask.Quantity = 0; } try { objjobtask.Price = Convert.ToDecimal(frmcollection["txtPrice"]); } catch (Exception) { objjobtask.Price = 0; } objjobtask.JobCodeDescription = Convert.ToString(frmcollection["txtDescription"]); objjobtask.JobCode = Convert.ToString(frmcollection["txtCode"]); try { objjobtask.JobCodeID = Convert.ToInt32(frmcollection["ddlcode"]); } catch (Exception) { objjobtask.JobCodeID = 0; } } } if (Convert.ToString(frmcollection["txtPartno"]) != "" && Convert.ToString(frmcollection["txtPartno"]) != null) { int taskid = Convert.ToInt32(frmcollection["hdntaskid"]); int taskpartid = Convert.ToInt32(frmcollection["hdntaskpartid"]); tbl_Job_Task_Parts objjobtaskparts = new tbl_Job_Task_Parts(); objjobtaskparts = (from tp in DB.tbl_Job_Task_Parts where tp.JobTaskPartsID == taskpartid && tp.JobTaskID == taskid select tp) .FirstOrDefault(); if (objjobtaskparts != null) { objjobtaskparts.PartsID = Convert.ToInt32(frmcollection["ddlparts"]); objjobtaskparts.Quantity = Convert.ToDecimal(frmcollection["txtPartQty"]); objjobtaskparts.Price = Convert.ToDecimal(frmcollection["txtPartPrice"]); objjobtaskparts.PartCode = Convert.ToString(frmcollection["txtPartno"]).Trim(); objjobtaskparts.PartName = Convert.ToString(frmcollection["txtPartDescription"]); } } DB.SaveChanges(); } 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); } } } } #endregion #region "Delete Task Part" if (command == "Delete") { using (var scope = new TransactionScope()) { var taskid = Convert.ToInt32(frmcollection["hdntaskid"]); if (Convert.ToString(frmcollection["txtPartno"]) != "" && Convert.ToString(frmcollection["txtPartno"]) != null) { var taskpartid = Convert.ToInt32(frmcollection["hdntaskpartid"]); var objjobtaskparts = (from tp in DB.tbl_Job_Task_Parts where tp.JobTaskPartsID == taskpartid select tp) .SingleOrDefault(); if (objjobtaskparts != null) { DB.tbl_Job_Task_Parts.DeleteObject(objjobtaskparts); } } DB.SaveChanges(); //if no parts are left on the task, delete the taks. if (!DB.tbl_Job_Task_Parts.Any(p => p.JobTaskID == taskid)) { var task = DB.tbl_Job_Tasks.Single(jt => jt.JobTaskID == taskid); DB.tbl_Job_Tasks.DeleteObject(task); } DB.SaveChanges(); scope.Complete(); } } #endregion #region "Add Part" if (command == "Add Parts") { try { // && inoofrows > 0 if (Convert.ToInt32(frmcollection["ddlparts"]) != 0) { if (frmcollection["hdntaskid"] != "") { //there is a selected task to add the part to int holdpartid = Convert.ToInt32(frmcollection["ddlparts"]); var addpart = (from a in DB.tbl_PB_Parts where a.PartID == holdpartid select a) .Single(); int holdtaskid = Convert.ToInt32(frmcollection["hdntaskid"]); var task = (from t in DB.tbl_Job_Tasks where t.JobTaskID == holdtaskid select t) .Single(); tbl_Job_Task_Parts part = new tbl_Job_Task_Parts { JobTaskID = holdtaskid, PartCode = objmodcommon.GetPartCode(holdpartid).Trim(), PartName = objmodcommon.GetPartName(holdpartid).Trim(), PartsID = addpart.PartID }; if (task.MemberYN) { if (task.AddOnYN) { part.Price = addpart.PartAddonMemberPrice; } else { part.Price = addpart.PartMemberPrice; } } else { if (task.AddOnYN) { part.Price = addpart.PartAddonStdPrice; } else { part.Price = addpart.PartStdPrice; } } part.Quantity = 1; DB.tbl_Job_Task_Parts.AddObject(part); DB.SaveChanges(); } else { ViewBag.lblmessage = "Please select a task to add the part to."; } } } 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); } } } } #endregion #region "Add Task" if (command == "Add Code") { try { if (Convert.ToInt32(frmcollection["ddlcode"]) != 0) { int holdjobcodeid = Convert.ToInt32(frmcollection["ddlcode"]); var addtask = (from a in DB.tbl_PB_JobCodes where a.JobCodeID == holdjobcodeid select new { a.JobAddonMemberPrice, a.JobAddonStdPrice, a.JobCost, a.JobCode, a.JobCodeID, a.JobCodeDescription }) .Single(); var job = (from j in DB.tbl_Job where j.JobID == JobId select new { j.CustomerID, j.BusinessTypeID }) .Single(); var customerID = job.CustomerID; var customer = objmodcommon.GetCustomers(customerID); //get a new task record and save tbl_Job_Tasks task = new tbl_Job_Tasks(); if (inoofrows > 0) { task.AddOnYN = true; //if the customer is a member do stuff var member = (from m in DB.tbl_Customer_Members where m.CustomerID == customerID select m); bool memberyn = false; foreach (var item in member) { memberyn = true; } if (memberyn) { task.Price = addtask.JobAddonMemberPrice; } else { task.Price = addtask.JobAddonStdPrice; } task.Quantity = 1; } else { task.AddOnYN = false; //if the customer is a member do stuff var member = (from m in DB.tbl_Customer_Members where m.CustomerID == customerID select m); bool memberyn = false; foreach (var item in member) { memberyn = true; } if (memberyn) { task.Price = addtask.JobAddonMemberPrice; } else { task.Price = addtask.JobAddonStdPrice; } task.Quantity = 1; } task.AuthorizedYN = true; task.Cost = addtask.JobCost; task.JobCodeID = addtask.JobCodeID; task.JobCode = addtask.JobCode; task.JobCodeDescription = addtask.JobCodeDescription; task.JobID = JobId; int tmpBusID = job.BusinessTypeID; int tmpCodeID = addtask.JobCodeID; task.AccountCode = objmodcommon.Get_Account_Code(tmpCodeID, tmpBusID); //System.Text.Encoding enc = System.Text.Encoding.ASCII; //byte[] ByteArray = enc.GetBytes(DateTime.Now.ToShortTimeString()); //task.timestamp = DBNull.Value; DB.tbl_Job_Tasks.AddObject(task); DB.SaveChanges(); int myjobcodeID = task.JobCodeID; //now add any parts associated with this task var partlist = (from p in DB.tbl_PB_JobCodes_Details where p.JobCodeID == myjobcodeID select p); bool partadded = false; foreach (var partrec in partlist) { tbl_Job_Task_Parts part = new tbl_Job_Task_Parts(); part.JobTaskID = task.JobTaskID; int holdpartid = partrec.PartID; part.PartCode = objmodcommon.GetPartCode(holdpartid).Trim(); part.PartName = objmodcommon.GetPartName(holdpartid); part.PartsID = partrec.PartID; if (task.AddOnYN) { if (task.MemberYN) { part.Price = partrec.PartAddonMemberPrice; } else { part.Price = partrec.PartAddonStdPrice; } } else { if (task.MemberYN) { part.Price = partrec.PartMemberPrice; } else { part.Price = partrec.PartStdPrice; } } part.Quantity = task.Quantity * partrec.Qty; DB.tbl_Job_Task_Parts.AddObject(part); partadded = true; } if (partadded) { DB.SaveChanges(); } } } 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); } } } } #endregion var total = (from j in DB.tbl_Job join t in DB.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 DB.tbl_Payments where p.JobID == JobId select p.PaymentAmount).Sum() ?? 0; var objjob = (from j in DB.tbl_Job where j.JobID == JobId select j) .FirstOrDefault(); objjob.SubTotal = total; objjob.TotalSales = total + objjob.TaxAmount; objjob.Balance = objjob.TotalSales - totalpayment; DB.SaveChanges(); } var jobInfo = (from j in DB.tbl_Job join t in DB.tbl_Employee on j.ServiceProID equals t.EmployeeID into t1 from t in t1.DefaultIfEmpty() join tt in DB.tbl_Franchise_Tablets on t.EmployeeID equals tt.EmployeeID into tt1 from tt in tt1.DefaultIfEmpty() where j.JobID == JobId select new { j.FranchiseID }) .Single(); var pricebooks = DB.tbl_PriceBook.Where(pb => pb.FranchiseID == jobInfo.FranchiseID).ToArray(); var priceBookId = Convert.ToInt32(string.IsNullOrEmpty(frmcollection["ddlPriceBook"]) ? "0" : frmcollection["ddlPriceBook"]); if (priceBookId == 0 && pricebooks.Length > 0) { priceBookId = pricebooks.First().PriceBookID; } ViewBag.PriceBooks = pricebooks; ViewBag.PriceBookId = priceBookId; if (command == "Search Code") { string strjobcode = frmcollection["txtjobcode"].ToString(); var TaskList = (from b in DB.tbl_PB_JobCodes join c in DB.tbl_PB_SubSection on b.SubSectionID equals c.SubsectionID join d in DB.tbl_PB_Section on c.SectionID equals d.SectionID join e in DB.tbl_PriceBook on d.PriceBookID equals e.PriceBookID where e.FranchiseID == jobInfo.FranchiseID && e.ActiveBookYN && priceBookId == e.PriceBookID orderby b.JobCode select new { b.JobCodeID, Code = b.JobCode + " - " + b.JobCodeDescription }); TaskList = TaskList.Where(p => p.Code.Contains(strjobcode)); ViewBag.taskcode = TaskList.ToArray(); } else { var TaskList = (from b in DB.tbl_PB_JobCodes join c in DB.tbl_PB_SubSection on b.SubSectionID equals c.SubsectionID join d in DB.tbl_PB_Section on c.SectionID equals d.SectionID join e in DB.tbl_PriceBook on d.PriceBookID equals e.PriceBookID where e.FranchiseID == jobInfo.FranchiseID && e.ActiveBookYN && priceBookId == e.PriceBookID orderby b.JobCode select new { b.JobCodeID, Code = b.JobCode + " - " + b.JobCodeDescription }); ViewBag.taskcode = TaskList.ToArray(); } if (command == "Search Parts") { string strjobparts = frmcollection["txtPartcode"].ToString(); var Partslist = (from s in DB.tbl_PB_Parts join t in DB.tbl_PriceBook on s.PriceBookID equals t.PriceBookID join m in DB.tbl_PB_MasterParts on s.MasterPartID equals m.MasterPartID where m.FranchiseID == jobInfo.FranchiseID && t.ActiveBookYN && priceBookId == t.PriceBookID orderby m.PartCode select new { s.PartID, PCode = m.PartCode + " - " + m.PartName }); Partslist = Partslist.Where(p => p.PCode.Contains(strjobparts)); ViewBag.partlist = Partslist.ToArray(); } else { var Partslist = (from s in DB.tbl_PB_Parts join t in DB.tbl_PriceBook on s.PriceBookID equals t.PriceBookID join m in DB.tbl_PB_MasterParts on s.MasterPartID equals m.MasterPartID where m.FranchiseID == jobInfo.FranchiseID && t.ActiveBookYN && priceBookId == t.PriceBookID orderby m.PartCode select new { s.PartID, PCode = m.PartCode + " - " + m.PartName }); ViewBag.partlist = Partslist.ToArray(); } } return(View()); }