This commit is contained in:
@@ -91,7 +91,7 @@ namespace AyaNova.Api.Controllers
|
||||
ret.Add(new KeyValuePair<string, string>(StringUtil.TrimTypeName(typeof(ContractOverrideType).ToString()), "Contract price adjustment type"));
|
||||
ret.Add(new KeyValuePair<string, string>(StringUtil.TrimTypeName(typeof(WorkorderItemTaskCompletionType).ToString()), "Work order item task completion type"));
|
||||
ret.Add(new KeyValuePair<string, string>(StringUtil.TrimTypeName(typeof(PMTimeUnit).ToString()), "PM time units"));
|
||||
ret.Add(new KeyValuePair<string, string>(StringUtil.TrimTypeName(typeof(DaysOfWeek).ToString()), "Days of the week"));
|
||||
ret.Add(new KeyValuePair<string, string>(StringUtil.TrimTypeName(typeof(AyaDaysOfWeek).ToString()), "Days of the week"));
|
||||
return Ok(ApiOkResponse.Response(ret));
|
||||
}
|
||||
|
||||
@@ -576,7 +576,7 @@ namespace AyaNova.Api.Controllers
|
||||
ReturnList.Add(new NameIdItem() { Name = LT["TimeSpanMinutes"], Id = (long)PMTimeUnit.Minutes });
|
||||
|
||||
}
|
||||
else if (keyNameInLowerCase == StringUtil.TrimTypeName(typeof(DaysOfWeek).ToString()).ToLowerInvariant())
|
||||
else if (keyNameInLowerCase == StringUtil.TrimTypeName(typeof(AyaDaysOfWeek).ToString()).ToLowerInvariant())
|
||||
{
|
||||
|
||||
TranslationKeysToFetch.Add("DayMonday");
|
||||
@@ -590,13 +590,13 @@ namespace AyaNova.Api.Controllers
|
||||
|
||||
var LT = await TranslationBiz.GetSubsetStaticAsync(TranslationKeysToFetch, translationId);
|
||||
|
||||
ReturnList.Add(new NameIdItem() { Name = LT["DayMonday"], Id = (long)DaysOfWeek.Monday });
|
||||
ReturnList.Add(new NameIdItem() { Name = LT["DayTuesday"], Id = (long)DaysOfWeek.Tuesday });
|
||||
ReturnList.Add(new NameIdItem() { Name = LT["DayWednesday"], Id = (long)DaysOfWeek.Wednesday });
|
||||
ReturnList.Add(new NameIdItem() { Name = LT["DayThursday"], Id = (long)DaysOfWeek.Thursday });
|
||||
ReturnList.Add(new NameIdItem() { Name = LT["DayFriday"], Id = (long)DaysOfWeek.Friday });
|
||||
ReturnList.Add(new NameIdItem() { Name = LT["DaySaturday"], Id = (long)DaysOfWeek.Saturday });
|
||||
ReturnList.Add(new NameIdItem() { Name = LT["DaySunday"], Id = (long)DaysOfWeek.Sunday });
|
||||
ReturnList.Add(new NameIdItem() { Name = LT["DayMonday"], Id = (long)AyaDaysOfWeek.Monday });
|
||||
ReturnList.Add(new NameIdItem() { Name = LT["DayTuesday"], Id = (long)AyaDaysOfWeek.Tuesday });
|
||||
ReturnList.Add(new NameIdItem() { Name = LT["DayWednesday"], Id = (long)AyaDaysOfWeek.Wednesday });
|
||||
ReturnList.Add(new NameIdItem() { Name = LT["DayThursday"], Id = (long)AyaDaysOfWeek.Thursday });
|
||||
ReturnList.Add(new NameIdItem() { Name = LT["DayFriday"], Id = (long)AyaDaysOfWeek.Friday });
|
||||
ReturnList.Add(new NameIdItem() { Name = LT["DaySaturday"], Id = (long)AyaDaysOfWeek.Saturday });
|
||||
ReturnList.Add(new NameIdItem() { Name = LT["DaySunday"], Id = (long)AyaDaysOfWeek.Sunday });
|
||||
|
||||
}
|
||||
//#################################################################################################################
|
||||
|
||||
@@ -5,7 +5,7 @@ namespace AyaNova.Biz
|
||||
/// Days of week
|
||||
/// </summary>
|
||||
[Flags]
|
||||
public enum DaysOfWeek : int
|
||||
public enum AyaDaysOfWeek : int
|
||||
{
|
||||
//https://stackoverflow.com/questions/8447/what-does-the-flags-enum-attribute-mean-in-c
|
||||
//MAX 31 (2147483647)!!! or will overflow int and needs to be turned into a long
|
||||
@@ -428,7 +428,7 @@ namespace AyaNova.Biz
|
||||
/// generate before span and unit
|
||||
/// </summary>
|
||||
internal static void SetGenerateDate(PM p)
|
||||
{
|
||||
{
|
||||
p.GenerateDate = CalculateNewDateFromSpanAndUnit(p.NextServiceDate, p.GenerateBeforeUnit, -System.Math.Abs(p.GenerateBeforeInterval));
|
||||
}
|
||||
|
||||
@@ -436,7 +436,7 @@ namespace AyaNova.Biz
|
||||
|
||||
internal static DateTime CalculateNewDateFromSpanAndUnit(DateTime StartDate, PMTimeUnit unit, int interval)
|
||||
{
|
||||
if(interval==0) return StartDate;
|
||||
if (interval == 0) return StartDate;
|
||||
switch (unit)
|
||||
{
|
||||
case PMTimeUnit.Minutes:
|
||||
@@ -458,7 +458,7 @@ namespace AyaNova.Biz
|
||||
return StartDate;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
private async Task AutoSetAddressAsync(PM newObj)
|
||||
{
|
||||
@@ -5226,7 +5226,41 @@ namespace AyaNova.Biz
|
||||
if (await NewServiceWorkOrderFromPMAsync(p, ct, log))
|
||||
{
|
||||
//Success
|
||||
//fixup dates and update pm
|
||||
|
||||
//Calculate next service date
|
||||
DateTime dtNewNextServiceDate = CalculateNewDateFromSpanAndUnit(p.NextServiceDate, p.RepeatUnit, p.RepeatInterval);
|
||||
|
||||
//Check Exclusions and adjust
|
||||
if ((int)p.ExcludeDaysOfWeek != 0)
|
||||
{
|
||||
//days of week cant be used as flags hence our own
|
||||
var excluded = new List<DayOfWeek>();
|
||||
if (p.ExcludeDaysOfWeek.HasFlag(AyaDaysOfWeek.Monday)) excluded.Add(DayOfWeek.Monday);
|
||||
if (p.ExcludeDaysOfWeek.HasFlag(AyaDaysOfWeek.Tuesday)) excluded.Add(DayOfWeek.Tuesday);
|
||||
if (p.ExcludeDaysOfWeek.HasFlag(AyaDaysOfWeek.Wednesday)) excluded.Add(DayOfWeek.Wednesday);
|
||||
if (p.ExcludeDaysOfWeek.HasFlag(AyaDaysOfWeek.Thursday)) excluded.Add(DayOfWeek.Thursday);
|
||||
if (p.ExcludeDaysOfWeek.HasFlag(AyaDaysOfWeek.Friday)) excluded.Add(DayOfWeek.Friday);
|
||||
if (p.ExcludeDaysOfWeek.HasFlag(AyaDaysOfWeek.Saturday)) excluded.Add(DayOfWeek.Saturday);
|
||||
if (p.ExcludeDaysOfWeek.HasFlag(AyaDaysOfWeek.Sunday)) excluded.Add(DayOfWeek.Sunday);
|
||||
|
||||
while (excluded.Contains(dtNewNextServiceDate.DayOfWeek))
|
||||
dtNewNextServiceDate = dtNewNextServiceDate.AddDays(1);
|
||||
}
|
||||
|
||||
TimeSpan tsAdd = dtNewNextServiceDate - p.NextServiceDate;
|
||||
|
||||
//Stop generating date reached??
|
||||
if (p.StopGeneratingDate != null && p.StopGeneratingDate < dtNewNextServiceDate)
|
||||
{
|
||||
p.Active = false;
|
||||
await ct.SaveChangesAsync();
|
||||
log.LogTrace($"PMBiz:: PM {p.Serial} has reached it's stop generating date and has been automatically deactivated");
|
||||
return;
|
||||
}
|
||||
|
||||
//add the new timespan to all dates in pm
|
||||
|
||||
|
||||
//note p is ready to modify and save here as it's tracked
|
||||
}
|
||||
}
|
||||
@@ -5297,7 +5331,7 @@ namespace AyaNova.Biz
|
||||
foreach (PMItemScheduledUser pmsu in pmi.ScheduledUsers)
|
||||
{
|
||||
var wois = new WorkOrderItemScheduledUser();
|
||||
wois.ServiceRateId = pmsu.ServiceRateId;
|
||||
wois.ServiceRateId = pmsu.ServiceRateId;
|
||||
wois.StartDate = pmsu.StartDate;//DATE ADJUST
|
||||
wois.StopDate = pmsu.StopDate;//DATE ADJUST
|
||||
wois.Tags = pmsu.Tags;
|
||||
@@ -5330,9 +5364,9 @@ namespace AyaNova.Biz
|
||||
wil.Rate = pml.Rate;
|
||||
wil.Tags = pml.Tags;
|
||||
wil.TaxCodeId = pml.TaxCodeId;
|
||||
wil.DueDate=pml.DueDate;//DATE ADJUST
|
||||
wil.OutDate=pml.OutDate;//DATE ADJUST
|
||||
wil.ReturnDate=pml.ReturnDate;//DATE ADJUST
|
||||
wil.DueDate = pml.DueDate;//DATE ADJUST
|
||||
wil.OutDate = pml.OutDate;//DATE ADJUST
|
||||
wil.ReturnDate = pml.ReturnDate;//DATE ADJUST
|
||||
|
||||
woi.Loans.Add(wil);
|
||||
}
|
||||
@@ -5349,8 +5383,8 @@ namespace AyaNova.Biz
|
||||
wilab.TaxCodeSaleId = pmlab.TaxCodeSaleId;
|
||||
wilab.UserId = pmlab.UserId;
|
||||
|
||||
wilab.ServiceStartDate=pmlab.ServiceStartDate;//DATE ADJUST
|
||||
wilab.ServiceStopDate=pmlab.ServiceStopDate;//DATE ADJUST
|
||||
wilab.ServiceStartDate = pmlab.ServiceStartDate;//DATE ADJUST
|
||||
wilab.ServiceStopDate = pmlab.ServiceStopDate;//DATE ADJUST
|
||||
|
||||
woi.Labors.Add(wilab);
|
||||
}
|
||||
@@ -5366,9 +5400,9 @@ namespace AyaNova.Biz
|
||||
witrav.TravelRateQuantity = pmtrav.TravelRateQuantity;
|
||||
witrav.TaxCodeSaleId = pmtrav.TaxCodeSaleId;
|
||||
witrav.UserId = pmtrav.UserId;
|
||||
witrav.TravelStartDate=pmtrav.TravelStartDate;//DATE ADJUST
|
||||
witrav.TravelStopDate=pmtrav.TravelStopDate;//DATE ADJUST
|
||||
|
||||
witrav.TravelStartDate = pmtrav.TravelStartDate;//DATE ADJUST
|
||||
witrav.TravelStopDate = pmtrav.TravelStopDate;//DATE ADJUST
|
||||
|
||||
woi.Travels.Add(witrav);
|
||||
}
|
||||
|
||||
@@ -5379,7 +5413,7 @@ namespace AyaNova.Biz
|
||||
wit.Sequence = pmt.Sequence;
|
||||
wit.Status = pmt.Status;
|
||||
wit.Task = pmt.Task;
|
||||
wit.CompletedDate=pmt.CompletedDate;//DATE ADJUST
|
||||
wit.CompletedDate = pmt.CompletedDate;//DATE ADJUST
|
||||
|
||||
woi.Tasks.Add(wit);
|
||||
}
|
||||
@@ -5413,9 +5447,9 @@ namespace AyaNova.Biz
|
||||
wio.UnitId = pmo.UnitId;
|
||||
wio.VendorSentToId = pmo.VendorSentToId;
|
||||
wio.VendorSentViaId = pmo.VendorSentViaId;
|
||||
wio.SentDate=pmo.SentDate;//DATE ADJUST
|
||||
wio.ReturnDate=pmo.ReturnDate;//DATE ADJUST
|
||||
wio.ETADate=pmo.ETADate;//DATE ADJUST
|
||||
wio.SentDate = pmo.SentDate;//DATE ADJUST
|
||||
wio.ReturnDate = pmo.ReturnDate;//DATE ADJUST
|
||||
wio.ETADate = pmo.ETADate;//DATE ADJUST
|
||||
|
||||
woi.OutsideServices.Add(wio);
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace AyaNova.Models
|
||||
public bool CopyAttachments { get; set; }
|
||||
public DateTime? StopGeneratingDate { get; set; }
|
||||
[Required]
|
||||
public DaysOfWeek ExcludeDaysOfWeek { get; set; }//bit field flags set
|
||||
public AyaDaysOfWeek ExcludeDaysOfWeek { get; set; }//bit field flags set
|
||||
[Required]
|
||||
public bool Active { get; set; }
|
||||
[Required]
|
||||
|
||||
@@ -3704,7 +3704,7 @@ namespace AyaNova.Util
|
||||
o.CopyAttachments=true;
|
||||
o.CopyWiki=true;
|
||||
o.StopGeneratingDate = woDate.AddYears(1);
|
||||
o.ExcludeDaysOfWeek = DaysOfWeek.Saturday | DaysOfWeek.Sunday;
|
||||
o.ExcludeDaysOfWeek = AyaDaysOfWeek.Saturday | AyaDaysOfWeek.Sunday;
|
||||
o.Active = true;
|
||||
o.NextServiceDate = woDate.AddDays(1);
|
||||
o.RepeatInterval = 1;
|
||||
|
||||
Reference in New Issue
Block a user