This commit is contained in:
@@ -5269,42 +5269,47 @@ namespace AyaNova.Biz
|
||||
internal static async Task<bool> NewServiceWorkOrderFromPMAsync(PM p, AyContext ct, ILogger log)
|
||||
{
|
||||
|
||||
WorkOrder o = new WorkOrder();
|
||||
//todo: copy dates over after all, the pm will have it's dates moved forward so we should definitely
|
||||
//copy dates over as they should be refreshed and ready to accept
|
||||
//need to pick through this and find those dates and possibly other items
|
||||
//if user doesn't want dates set then they can leave them blank
|
||||
|
||||
o.Address = p.Address;
|
||||
o.City = p.City;
|
||||
WorkOrder wo = new WorkOrder();
|
||||
|
||||
wo.Address = p.Address;
|
||||
wo.City = p.City;
|
||||
//o.CompleteByDate=??
|
||||
o.ContractId = p.ContractId;
|
||||
o.Country = p.Country;
|
||||
o.CreatedDate = DateTime.UtcNow;
|
||||
o.CustomerContactName = p.CustomerContactName;
|
||||
o.CustomerId = p.CustomerId;
|
||||
o.CustomerReferenceNumber = p.CustomerReferenceNumber;
|
||||
o.CustomFields = p.CustomFields;
|
||||
o.FromPMId = p.Id;
|
||||
o.InternalReferenceNumber = p.InternalReferenceNumber;
|
||||
o.Latitude = p.Latitude;
|
||||
o.Longitude = p.Longitude;
|
||||
o.Notes = p.Notes;
|
||||
o.Onsite = p.Onsite;
|
||||
o.PostAddress = p.PostAddress;
|
||||
o.PostCity = p.PostCity;
|
||||
o.PostCode = p.PostCode;
|
||||
o.PostCountry = p.PostCountry;
|
||||
o.PostRegion = p.PostRegion;
|
||||
o.ProjectId = p.ProjectId;
|
||||
o.Region = p.Region;
|
||||
o.ServiceDate = p.NextServiceDate;
|
||||
o.Tags = p.Tags;
|
||||
wo.ContractId = p.ContractId;
|
||||
wo.Country = p.Country;
|
||||
wo.CreatedDate = DateTime.UtcNow;
|
||||
wo.CustomerContactName = p.CustomerContactName;
|
||||
wo.CustomerId = p.CustomerId;
|
||||
wo.CustomerReferenceNumber = p.CustomerReferenceNumber;
|
||||
wo.CustomFields = p.CustomFields;
|
||||
wo.FromPMId = p.Id;
|
||||
wo.InternalReferenceNumber = p.InternalReferenceNumber;
|
||||
wo.Latitude = p.Latitude;
|
||||
wo.Longitude = p.Longitude;
|
||||
wo.Notes = p.Notes;
|
||||
wo.Onsite = p.Onsite;
|
||||
wo.PostAddress = p.PostAddress;
|
||||
wo.PostCity = p.PostCity;
|
||||
wo.PostCode = p.PostCode;
|
||||
wo.PostCountry = p.PostCountry;
|
||||
wo.PostRegion = p.PostRegion;
|
||||
wo.ProjectId = p.ProjectId;
|
||||
wo.Region = p.Region;
|
||||
wo.ServiceDate = p.NextServiceDate;//DATE ADJUST
|
||||
wo.Tags = p.Tags;
|
||||
if (p.CopyWiki)
|
||||
o.Wiki = p.Wiki;
|
||||
wo.Wiki = p.Wiki;
|
||||
if (p.CopyAttachments)
|
||||
o.GenCopyAttachmentsFrom = new AyaTypeId(AyaType.PM, p.Id);
|
||||
wo.GenCopyAttachmentsFrom = new AyaTypeId(AyaType.PM, p.Id);
|
||||
foreach (PMItem pmi in p.Items)
|
||||
{
|
||||
var woi = new WorkOrderItem();
|
||||
woi.Notes = pmi.Notes;
|
||||
woi.RequestDate = pmi.RequestDate;
|
||||
woi.RequestDate = pmi.RequestDate;//DATE ADJUST
|
||||
woi.Sequence = pmi.Sequence;
|
||||
woi.Tags = pmi.Tags;
|
||||
woi.TechNotes = pmi.TechNotes;
|
||||
@@ -5330,15 +5335,9 @@ namespace AyaNova.Biz
|
||||
foreach (PMItemScheduledUser pmsu in pmi.ScheduledUsers)
|
||||
{
|
||||
var wois = new WorkOrderItemScheduledUser();
|
||||
wois.ServiceRateId = pmsu.ServiceRateId;
|
||||
//Note: sched users were not in v7 pm's but adding "ALL THE THINGS"
|
||||
//so the dates would be screwed up and could conflict if allow sched conflicts is
|
||||
//set to false.
|
||||
//We can't really guess what to schedule as so the sane choice seems to be to
|
||||
//not set a date but keep them so user can schedule to wherever they want
|
||||
//as null dates for sched user are supported
|
||||
wois.StartDate = null;//pmischeduser.StartDate;
|
||||
wois.StopDate = null;//pmischeduser.StopDate;
|
||||
wois.ServiceRateId = pmsu.ServiceRateId;
|
||||
wois.StartDate = pmsu.StartDate;//DATE ADJUST
|
||||
wois.StopDate = pmsu.StopDate;//DATE ADJUST
|
||||
wois.Tags = pmsu.Tags;
|
||||
wois.UserId = pmsu.UserId;
|
||||
|
||||
@@ -5369,29 +5368,107 @@ 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
|
||||
|
||||
woi.Loans.Add(wil);
|
||||
}
|
||||
|
||||
foreach(PMItemLabor pmlab in pmi.Labors){
|
||||
foreach (PMItemLabor pmlab in pmi.Labors)
|
||||
{
|
||||
var wilab = new WorkOrderItemLabor();
|
||||
wilab.NoChargeQuantity=pmlab.NoChargeQuantity;
|
||||
wilab.PriceOverride=pmlab.PriceOverride;
|
||||
wilab.ServiceDetails=pmlab.ServiceDetails;
|
||||
wilab.ServiceRateId=pmlab.ServiceRateId;
|
||||
wilab.ServiceRateQuantity=pmlab.ServiceRateQuantity;
|
||||
wilab.Tags=pmlab.Tags;
|
||||
wilab.TaxCodeSaleId=pmlab.TaxCodeSaleId;
|
||||
wilab.UserId=pmlab.UserId;
|
||||
woi.Labors.Add(wilab);
|
||||
wilab.NoChargeQuantity = pmlab.NoChargeQuantity;
|
||||
wilab.PriceOverride = pmlab.PriceOverride;
|
||||
wilab.ServiceDetails = pmlab.ServiceDetails;
|
||||
wilab.ServiceRateId = pmlab.ServiceRateId;
|
||||
wilab.ServiceRateQuantity = pmlab.ServiceRateQuantity;
|
||||
wilab.Tags = pmlab.Tags;
|
||||
wilab.TaxCodeSaleId = pmlab.TaxCodeSaleId;
|
||||
wilab.UserId = pmlab.UserId;
|
||||
|
||||
wilab.ServiceStartDate=pmlab.ServiceStartDate;//DATE ADJUST
|
||||
wilab.ServiceStopDate=pmlab.ServiceStopDate;//DATE ADJUST
|
||||
|
||||
woi.Labors.Add(wilab);
|
||||
}
|
||||
|
||||
foreach (PMItemTravel pmtrav in pmi.Travels)
|
||||
{
|
||||
var witrav = new WorkOrderItemTravel();
|
||||
witrav.Distance = pmtrav.Distance;
|
||||
witrav.NoChargeQuantity = pmtrav.NoChargeQuantity;
|
||||
witrav.PriceOverride = pmtrav.PriceOverride;
|
||||
witrav.TravelDetails = pmtrav.TravelDetails;
|
||||
witrav.TravelRateId = pmtrav.TravelRateId;
|
||||
witrav.TravelRateQuantity = pmtrav.TravelRateQuantity;
|
||||
witrav.TaxCodeSaleId = pmtrav.TaxCodeSaleId;
|
||||
witrav.UserId = pmtrav.UserId;
|
||||
witrav.TravelStartDate=pmtrav.TravelStartDate;//DATE ADJUST
|
||||
witrav.TravelStopDate=pmtrav.TravelStopDate;//DATE ADJUST
|
||||
|
||||
woi.Travels.Add(witrav);
|
||||
}
|
||||
|
||||
//------------
|
||||
foreach (PMItemTask pmt in pmi.Tasks)
|
||||
{
|
||||
var wit = new WorkOrderItemTask();
|
||||
wit.CompletedByUserId = pmt.CompletedByUserId;
|
||||
wit.Sequence = pmt.Sequence;
|
||||
wit.Status = pmt.Status;
|
||||
wit.Task = pmt.Task;
|
||||
wit.CompletedDate=pmt.CompletedDate;//DATE ADJUST
|
||||
|
||||
woi.Tasks.Add(wit);
|
||||
}
|
||||
|
||||
foreach (PMItemExpense pme in pmi.Expenses)
|
||||
{
|
||||
var wie = new WorkOrderItemExpense();
|
||||
wie.ChargeAmount = pme.ChargeAmount;
|
||||
wie.ChargeTaxCodeId = pme.ChargeTaxCodeId;
|
||||
wie.ChargeToCustomer = pme.ChargeToCustomer;
|
||||
wie.Description = pme.Description;
|
||||
wie.ReimburseUser = pme.ReimburseUser;
|
||||
wie.TaxPaid = pme.TaxPaid;
|
||||
wie.TotalCost = pme.TotalCost;
|
||||
wie.UserId = pme.UserId;
|
||||
|
||||
woi.Expenses.Add(wie);
|
||||
}
|
||||
|
||||
foreach (PMItemOutsideService pmo in pmi.OutsideServices)
|
||||
{
|
||||
var wio = new WorkOrderItemOutsideService();
|
||||
wio.Notes = pmo.Notes;
|
||||
wio.RepairCost = pmo.RepairCost;
|
||||
wio.RepairPrice = pmo.RepairPrice;
|
||||
wio.RMANumber = pmo.RMANumber;
|
||||
wio.ShippingCost = pmo.ShippingCost;
|
||||
wio.ShippingPrice = pmo.ShippingPrice;
|
||||
wio.TaxCodeId = pmo.TaxCodeId;
|
||||
wio.TrackingNumber = pmo.TrackingNumber;
|
||||
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
|
||||
|
||||
woi.OutsideServices.Add(wio);
|
||||
}
|
||||
|
||||
wo.Items.Add(woi);
|
||||
}
|
||||
|
||||
|
||||
|
||||
WorkOrderBiz biz = WorkOrderBiz.GetBiz(ct);
|
||||
var NewObject = await biz.WorkOrderCreateAsync(wo, false);
|
||||
if (NewObject == null)
|
||||
{
|
||||
var err = $"PMBiz::NewServiceWorkOrderFromPMAsync error creating from PM {p.Serial}\r\n{biz.GetErrorsAsString()}";
|
||||
log.LogError(err);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
#endregion
|
||||
|
||||
@@ -23,7 +23,7 @@ namespace AyaNova.Biz
|
||||
|
||||
|
||||
#if (DEBUG)
|
||||
private static TimeSpan RUN_EVERY_INTERVAL = new TimeSpan(0, 0, 20);//no more frequently than once every 20 seconds
|
||||
private static TimeSpan RUN_EVERY_INTERVAL = new TimeSpan(0, 0, 60);//no more frequently than once every 60 seconds
|
||||
#else
|
||||
private static TimeSpan RUN_EVERY_INTERVAL = new TimeSpan(0, 5, 0);//no more frequently than once every 5 minutes
|
||||
#endif
|
||||
|
||||
@@ -22,16 +22,16 @@ namespace AyaNova.Util
|
||||
//!!!!WARNING: BE SURE TO UPDATE THE DbUtil::EmptyBizDataFromDatabaseForSeedingOrImporting WHEN NEW TABLES ADDED!!!!
|
||||
private const int DESIRED_SCHEMA_LEVEL = 1;
|
||||
|
||||
internal const long EXPECTED_COLUMN_COUNT = 1221;
|
||||
internal const long EXPECTED_COLUMN_COUNT = 1223;
|
||||
internal const long EXPECTED_INDEX_COUNT = 145;
|
||||
internal const long EXPECTED_CHECK_CONSTRAINTS = 517;
|
||||
internal const long EXPECTED_CHECK_CONSTRAINTS = 519;
|
||||
internal const long EXPECTED_FOREIGN_KEY_CONSTRAINTS = 190;
|
||||
internal const long EXPECTED_VIEWS = 7;
|
||||
internal const long EXPECTED_ROUTINES = 2;
|
||||
|
||||
//!!!!WARNING: BE SURE TO UPDATE THE DbUtil::EmptyBizDataFromDatabaseForSeedingOrImporting WHEN NEW TABLES ADDED!!!!
|
||||
|
||||
///////////////////////////////////////////////////////////////// C1220:I145:CC515:FC190:V7:R2
|
||||
///////////////////////////////////////////////////////////////// C1223:I145:CC519:FC190:V7:R2
|
||||
|
||||
/*
|
||||
|
||||
|
||||
Reference in New Issue
Block a user