| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 | 
							- using System;
 
- using System.Linq;
 
- using Comal.Classes;
 
- using InABox.Core;
 
- namespace Comal.Stores
 
- {
 
-     internal class JobStatusStore : BaseStore<JobStatus>
 
-     {
 
-         protected override void BeforeSave(JobStatus entity)
 
-         {
 
-             base.BeforeSave(entity);
 
-             var otherrows = Provider.Query(new Filter<JobStatus>(x => x.Default).IsEqualTo(true));
 
-             if (entity.Default)
 
-             {
 
-                 if (otherrows.Rows.Any())
 
-                 {
 
-                     var others = otherrows.Rows.Select(x => x.ToObject<JobStatus>()).ToArray();
 
-                     foreach (var other in others)
 
-                         other.Default = false;
 
-                     Provider.Save(others);
 
-                 }
 
-             }
 
-             else
 
-             {
 
-                 if (!otherrows.Rows.Any())
 
-                     entity.Default = true;
 
-             }
 
-         }
 
-     }
 
-     public class JobStore : ScheduleActionStore<Job>
 
-     {
 
-         protected override void BeforeSave(Job entity)
 
-         {
 
-             base.BeforeSave(entity);
 
-             if (!entity.Account.IsValid() && entity.Customer.IsValid())
 
-             {
 
-                 Customer final = null;
 
-                 var customer = Provider.Load(new Filter<Customer>(x => x.ID).IsEqualTo(entity.Customer.ID)).FirstOrDefault();
 
-                 if (customer != null)
 
-                 {
 
-                     final = customer;
 
-                     if (customer.Account.IsValid())
 
-                     {
 
-                         var account = Provider.Load(new Filter<Customer>(x => x.ID).IsEqualTo(customer.Account.ID)).FirstOrDefault();
 
-                         if (account != null)
 
-                             final = account;
 
-                     }
 
-                 }
 
-                 entity.Account.Synchronise(final);
 
-             }
 
-             StoreUtils.Geocode(entity.SiteAddress);
 
-         }
 
-         protected override void AfterSave(Job entity)
 
-         {
 
-             base.AfterSave(entity);
 
-             //Setout[] setouts = FindSubStore<Setout>().Load(new Filter<Setout>(x => x.JobLink.ID).IsEqualTo(entity.ID));
 
-             //for (int i=0; i< setouts.Length; i++)
 
-             //{
 
-             //    Setout setout = setouts[i];
 
-             //    if ((entity.Name != setout.JobLink.Name) || (entity.Number != setout.JobLink.Number))
 
-             //    {
 
-             //        setout.JobLink.Name = entity.Name;
 
-             //        setout.JobLink.Number = entity.Number;
 
-             //        FindSubStore<Setout>().Save(ref setout, "Updated Job Number/Name");
 
-             //    }
 
-             //}
 
-             //Requisition[] requis = FindSubStore<Requisition>().Load(new Filter<Requisition>(x => x.JobLink.ID).IsEqualTo(entity.ID));
 
-             //for (int i = 0; i < requis.Length; i++)
 
-             //{
 
-             //    Requisition requi = requis[i];
 
-             //    if ((entity.Name != requi.JobLink.Name) || (entity.Number != requi.JobLink.Number))
 
-             //    {
 
-             //        requi.JobLink.Name = entity.Name;
 
-             //        requi.JobLink.Number = entity.Number;
 
-             //        FindSubStore<Requisition>().Save(ref requi, "Updated Job Number/Name");
 
-             //    }
 
-             //}
 
-             //Kanban[] kanbans = FindSubStore<Kanban>().Load(new Filter<Kanban>(x => x.JobID).IsEqualTo(entity.ID));
 
-             //for (int i = 0; i < kanbans.Length; i++)
 
-             //{
 
-             //    Kanban kanban = kanbans[i];
 
-             //    if ((entity.Name != kanban.JobLink.Name) || (entity.Number != kanban.JobLink.Number))
 
-             //    {
 
-             //        kanban.JobLink.Name = entity.Name;
 
-             //        kanban.JobLink.Number = entity.Number;
 
-             //        FindSubStore<Kanban>().Save(ref kanban, "Updated Job Number/Name");
 
-             //    }
 
-             //}
 
-             //DeliveryItem[] items = FindSubStore<DeliveryItem>().Load(new Filter<DeliveryItem>(x => x.JobLink.ID).IsEqualTo(entity.ID));
 
-             //for (int i = 0; i < items.Length; i++)
 
-             //{
 
-             //    DeliveryItem item = items[i];
 
-             //    if ((entity.Name != item.JobLink.Name) || (entity.Number != item.JobLink.Number))
 
-             //    {
 
-             //        item.JobLink.Name = entity.Name;
 
-             //        item.JobLink.Number = entity.Number;
 
-             //        FindSubStore<DeliveryItem>().Save(ref item, "Updated Job Number/Name");
 
-             //    }
 
-             //}
 
-         }
 
-         protected override void AfterDelete(Job entity)
 
-         {
 
-             base.AfterDelete(entity);
 
-             var setoutstore = FindSubStore<Setout>();
 
-             var setouts = setoutstore.Load(new Filter<Setout>(x => x.JobLink.ID).IsEqualTo(entity.ID));
 
-             foreach (var setout in setouts)
 
-                 setoutstore.Delete(setout, "Cascaded Delete from Job");
 
-         }
 
-     }
 
- }
 
 
  |