diff --git a/AsbCloudInfrastructure/Services/WellOperationService/OperationsStatService.cs b/AsbCloudInfrastructure/Services/WellOperationService/OperationsStatService.cs index 07146882..b1756101 100644 --- a/AsbCloudInfrastructure/Services/WellOperationService/OperationsStatService.cs +++ b/AsbCloudInfrastructure/Services/WellOperationService/OperationsStatService.cs @@ -431,6 +431,10 @@ public class OperationsStatService : IOperationsStatService int? iLastMatch = null; int iLastFact = 0; var nptHours = 0d; + + DateTimeOffset? firstDateStartFact = Fact!.DateStart; + DateTimeOffset? firstDateStartPlan = Plan?.DateStart; + for (int i = 0; i < wellOperations.Length; i++) { var item = wellOperations[i]; @@ -441,7 +445,13 @@ public class OperationsStatService : IOperationsStatService if (plan is not null) { planFactPredict.Plan = Convert(plan, tzOffsetHours); - planFactPredict.Plan.Day = (planFactPredict.Plan.DateStart - dateStart).TotalDays; + + if (!firstDateStartPlan.HasValue) { + firstDateStartPlan = planFactPredict.Plan.DateStart; + } + + planFactPredict.Plan.Day = (planFactPredict.Plan.DateStart - firstDateStartPlan.Value).TotalDays; + if (fact is not null) iLastMatch = i; } @@ -451,8 +461,9 @@ public class OperationsStatService : IOperationsStatService if(WellOperationCategory.NonProductiveTimeSubIds.Contains(fact.IdCategory)) nptHours += fact.DurationHours; - planFactPredict.Fact = Convert(fact, tzOffsetHours); - planFactPredict.Fact.Day = (planFactPredict.Fact.DateStart - dateStart).TotalDays; + planFactPredict.Fact = Convert(fact, tzOffsetHours); + planFactPredict.Fact.Day = (planFactPredict.Fact.DateStart - firstDateStartFact.Value).TotalDays; + planFactPredict.Fact.NptHours = nptHours; iLastFact = i; }