This commit is contained in:
2022-07-11 20:58:50 +00:00
parent 33b564ad63
commit 4dd2df03cf
9 changed files with 233 additions and 63 deletions

View File

@@ -250,7 +250,12 @@
<Compile Include="WorkOrderItemLoan.cs" /> <Compile Include="WorkOrderItemLoan.cs" />
<Compile Include="WorkOrderItemOutsideService.cs" /> <Compile Include="WorkOrderItemOutsideService.cs" />
<Compile Include="WorkOrderItemPart.cs" /> <Compile Include="WorkOrderItemPart.cs" />
<Compile Include="WorkOrderItemPartRequest.cs" />
<Compile Include="WorkOrderItemScheduledUser.cs" />
<Compile Include="WorkOrderItemTask.cs" />
<Compile Include="WorkOrderItemTaskCompletionType.cs" />
<Compile Include="WorkOrderItemTravel.cs" /> <Compile Include="WorkOrderItemTravel.cs" />
<Compile Include="WorkOrderItemUnit.cs" />
<Compile Include="WorkOrderStatus.cs" /> <Compile Include="WorkOrderStatus.cs" />
<Compile Include="SetQBImportInventoryAccounts.cs"> <Compile Include="SetQBImportInventoryAccounts.cs">
<SubType>Form</SubType> <SubType>Form</SubType>

View File

@@ -561,8 +561,8 @@
// //
this.workOrderItemTypeToolStripMenuItem.Name = "workOrderItemTypeToolStripMenuItem"; this.workOrderItemTypeToolStripMenuItem.Name = "workOrderItemTypeToolStripMenuItem";
this.workOrderItemTypeToolStripMenuItem.Size = new System.Drawing.Size(231, 22); this.workOrderItemTypeToolStripMenuItem.Size = new System.Drawing.Size(231, 22);
this.workOrderItemTypeToolStripMenuItem.Tag = "~ITEM_TYPE~"; this.workOrderItemTypeToolStripMenuItem.Tag = "~ITEM_TAGS~";
this.workOrderItemTypeToolStripMenuItem.Text = "Work order item type"; this.workOrderItemTypeToolStripMenuItem.Text = "Work order item TAGS";
// //
// workOrderItemRequestDateToolStripMenuItem // workOrderItemRequestDateToolStripMenuItem
// //

View File

@@ -47,11 +47,11 @@ namespace AyaNovaQBI
public List<WorkOrderItemLabor> Labors { get; set; } = new List<WorkOrderItemLabor>(); public List<WorkOrderItemLabor> Labors { get; set; } = new List<WorkOrderItemLabor>();
public List<WorkOrderItemLoan> Loans { get; set; } = new List<WorkOrderItemLoan>(); public List<WorkOrderItemLoan> Loans { get; set; } = new List<WorkOrderItemLoan>();
public List<WorkOrderItemPart> Parts { get; set; } = new List<WorkOrderItemPart>(); public List<WorkOrderItemPart> Parts { get; set; } = new List<WorkOrderItemPart>();
// public List<WorkOrderItemPartRequest> PartRequests { get; set; } = new List<WorkOrderItemPartRequest>(); public List<WorkOrderItemPartRequest> PartRequests { get; set; } = new List<WorkOrderItemPartRequest>();
// public List<WorkOrderItemScheduledUser> ScheduledUsers { get; set; } = new List<WorkOrderItemScheduledUser>(); public List<WorkOrderItemScheduledUser> ScheduledUsers { get; set; } = new List<WorkOrderItemScheduledUser>();
// public List<WorkOrderItemTask> Tasks { get; set; } = new List<WorkOrderItemTask>(); public List<WorkOrderItemTask> Tasks { get; set; } = new List<WorkOrderItemTask>();
public List<WorkOrderItemTravel> Travels { get; set; } = new List<WorkOrderItemTravel>(); public List<WorkOrderItemTravel> Travels { get; set; } = new List<WorkOrderItemTravel>();
// public List<WorkOrderItemUnit> Units { get; set; } = new List<WorkOrderItemUnit>(); public List<WorkOrderItemUnit> Units { get; set; } = new List<WorkOrderItemUnit>();
public List<WorkOrderItemOutsideService> OutsideServices { get; set; } = new List<WorkOrderItemOutsideService>(); public List<WorkOrderItemOutsideService> OutsideServices { get; set; } = new List<WorkOrderItemOutsideService>();
} }
} }

View File

@@ -0,0 +1,47 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AyaNovaQBI
{
public class WorkOrderItemPartRequest
{
public long Id { get; set; }
public uint Concurrency { get; set; }
public long WorkOrderItemId { get; set; }
public long PartId { get; set; }
public long PartWarehouseId { get; set; }
public decimal Quantity { get; set; }
public long? PurchaseOrderItemId { get; set; }
public long? RequestedByUserId { get; set; }
public decimal Received { get; set; }
public DateTime RequestDate { get; set; } = DateTime.UtcNow;
public string PartNameViz { get; set; }
public string PartDescriptionViz { get; set; }
public string UpcViz { get; set; }
public string RequestedByUserViz { get; set; }
public string PurchaseOrderViz { get; set; }
public long? PurchaseOrderIdViz { get; set; }
public DateTime? PurchaseOrderDateViz { get; set; }
public DateTime? PurchaseOrderExpectedDateViz { get; set; }
public string PartWarehouseViz { get; set; }
}
}

View File

@@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AyaNovaQBI
{
public class WorkOrderItemScheduledUser
{
public long Id { get; set; }
public uint Concurrency { get; set; }
public long? UserId { get; set; }
public string UserViz { get; set; }
public decimal EstimatedQuantity { get; set; }
public DateTime? StartDate { get; set; }
public DateTime? StopDate { get; set; }
public long? ServiceRateId { get; set; }
public string ServiceRateViz { get; set; }
public long WorkOrderItemId { get; set; }
}//eoc
}

View File

@@ -0,0 +1,34 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AyaNovaQBI
{
public class WorkOrderItemTask
{
public long Id { get; set; }
public uint Concurrency { get; set; }
public int Sequence { get; set; }
public string Task { get; set; }
public WorkOrderItemTaskCompletionType Status { get; set; } = WorkOrderItemTaskCompletionType.Incomplete;
public string StatusViz { get; set; }
public long? CompletedByUserId { get; set; }
public string CompletedByUserViz { get; set; }
public DateTime? CompletedDate { get; set; }
public long WorkOrderItemId { get; set; }
}//eoc
}

View File

@@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AyaNovaQBI
{/// <summary>
/// Indicates status of task
/// </summary>
public enum WorkOrderItemTaskCompletionType : int
{
/// <summary>
/// Not finished
/// </summary>
Incomplete = 1,
/// <summary>
/// Finished
/// </summary>
Complete = 2,
/// <summary>
/// Not relevant
/// </summary>
NotApplicable = 3,
Failed = 4
}
}

View File

@@ -0,0 +1,32 @@
using System.Collections.Generic;
namespace AyaNovaQBI
{
public class WorkOrderItemUnit
{
public long Id { get; set; }
public uint Concurrency { get; set; }
public string Notes { get; set; }
public string Wiki { get; set; }
public string CustomFields { get; set; }
public List<string> Tags { get; set; } = new List<string>();
public long UnitId { get; set; }
public string UnitViz { get; set; }
public long WorkOrderItemId { get; set; }
public string UnitModelNameViz { get; set; }
public string UnitModelVendorViz { get; set; }
public string UnitDescriptionViz { get; set; }
public bool UnitMeteredViz { get; set; }
//PHYSICAL ADDRESS
public string AddressViz { get; set; }
public string CityViz { get; set; }
public string RegionViz { get; set; }
public string CountryViz { get; set; }
public decimal? LatitudeViz { get; set; }
public decimal? LongitudeViz { get; set; }
}//eoc
}

View File

@@ -6118,6 +6118,8 @@ namespace AyaNovaQBI
throw new Exception($"util.Invoice: WorkOrder with record id {SelectedWorkOrderId} was not found in AyaNova and may have just been deleted.\r\nUnable to invoice this wo."); throw new Exception($"util.Invoice: WorkOrder with record id {SelectedWorkOrderId} was not found in AyaNova and may have just been deleted.\r\nUnable to invoice this wo.");
var OrderedWorkOrderItems = w.Items.OrderBy(z => z.Sequence).ToList();
if (bFirstLoop) if (bFirstLoop)
{ {
bFirstLoop = false; bFirstLoop = false;
@@ -6214,7 +6216,7 @@ namespace AyaNovaQBI
#endregion header text #endregion header text
#region Part charges #region Part charges
foreach (var it in w.Items) foreach (var it in OrderedWorkOrderItems)
{ {
foreach (var p in it.Parts) foreach (var p in it.Parts)
{ {
@@ -6229,7 +6231,7 @@ namespace AyaNovaQBI
#endregion part charges #endregion part charges
#region Service charges #region Service charges
foreach (var it in w.Items) foreach (var it in OrderedWorkOrderItems)
{ {
foreach (var l in it.Labors) foreach (var l in it.Labors)
{ {
@@ -6250,7 +6252,7 @@ namespace AyaNovaQBI
#endregion Service charges #endregion Service charges
#region Travel charges #region Travel charges
foreach (var it in w.Items) foreach (var it in OrderedWorkOrderItems)
{ {
foreach (var l in it.Travels) foreach (var l in it.Travels)
{ {
@@ -6263,7 +6265,7 @@ namespace AyaNovaQBI
#endregion Travel charges #endregion Travel charges
#region MiscExpense charges #region MiscExpense charges
foreach (var it in w.Items) foreach (var it in OrderedWorkOrderItems)
{ {
foreach (var l in it.Expenses) foreach (var l in it.Expenses)
{ {
@@ -6277,7 +6279,7 @@ namespace AyaNovaQBI
#endregion MiscExpense charges #endregion MiscExpense charges
#region Loaner charges #region Loaner charges
foreach (var it in w.Items) foreach (var it in OrderedWorkOrderItems)
{ {
foreach (var l in it.Loans) foreach (var l in it.Loans)
{ {
@@ -6288,7 +6290,7 @@ namespace AyaNovaQBI
#endregion Loaner charges #endregion Loaner charges
#region OutsideService charges #region OutsideService charges
foreach (var it in w.Items) foreach (var it in OrderedWorkOrderItems)
{ {
foreach (var os in it.OutsideServices) foreach (var os in it.OutsideServices)
{ {
@@ -6304,7 +6306,7 @@ namespace AyaNovaQBI
//inserting descriptive text as required //inserting descriptive text as required
if (QDat.HasAnyInvoiceFooterTemplateFields) if (QDat.HasAnyInvoiceFooterTemplateFields)
{ {
foreach (var it in w.Items) foreach (var it in OrderedWorkOrderItems)
{ {
#region Item (footer) fields #region Item (footer) fields
if (!string.IsNullOrWhiteSpace(QDat.InvoiceFooterTemplate)) if (!string.IsNullOrWhiteSpace(QDat.InvoiceFooterTemplate))
@@ -6313,7 +6315,7 @@ namespace AyaNovaQBI
if (s.IndexOf("~ITEM_SUMMARY~") != -1) if (s.IndexOf("~ITEM_SUMMARY~") != -1)
{ {
s = s.Replace("~ITEM_SUMMARY~", it.Summary); s = s.Replace("~ITEM_SUMMARY~", it.Notes);
} }
if (s.IndexOf("~ITEM_SERVICE_NOTES~") != -1) if (s.IndexOf("~ITEM_SERVICE_NOTES~") != -1)
@@ -6321,12 +6323,9 @@ namespace AyaNovaQBI
s = s.Replace("~ITEM_SERVICE_NOTES~", it.TechNotes); s = s.Replace("~ITEM_SERVICE_NOTES~", it.TechNotes);
} }
if (s.IndexOf("~ITEM_TYPE~") != -1) if (s.IndexOf("~ITEM_TAGS~") != -1)
{ {
if (it.TypeID == Guid.Empty) s = s.Replace("~ITEM_TAGS~", String.Join(",", it.Tags));
s = s.Replace("~ITEM_TYPE~", "");
else
s = s.Replace("~ITEM_TYPE~", NameFetcher.GetItem("aWorkorderItemType", "aName", it.TypeID).RecordName);
} }
if (s.IndexOf("~ITEM_REQUEST_DATE~") != -1) if (s.IndexOf("~ITEM_REQUEST_DATE~") != -1)
@@ -6336,10 +6335,7 @@ namespace AyaNovaQBI
if (s.IndexOf("~ITEM_STATUS~") != -1) if (s.IndexOf("~ITEM_STATUS~") != -1)
{ {
if (it.WorkorderStatusID == Guid.Empty) s = s.Replace("~ITEM_STATUS~", it.WorkOrderItemStatusNameViz);
s = s.Replace("~ITEM_STATUS~", "");
else
s = s.Replace("~ITEM_STATUS~", NameFetcher.GetItem("aWorkorderStatus", "aName", it.WorkorderStatusID).RecordName);
} }
InvoiceAddText(i, s); InvoiceAddText(i, s);
@@ -6349,7 +6345,8 @@ namespace AyaNovaQBI
#region Unit fields #region Unit fields
if (!string.IsNullOrWhiteSpace(QDat.InvoiceUnitTemplate)) if (!string.IsNullOrWhiteSpace(QDat.InvoiceUnitTemplate))
{ {
TODO: LOOPIFY THIS BLOCK TO NEW STANDARD foreach (var u in it.units)
{
string s = QDat.InvoiceUnitTemplate; string s = QDat.InvoiceUnitTemplate;
@@ -6392,6 +6389,7 @@ namespace AyaNovaQBI
InvoiceAddText(i, s); InvoiceAddText(i, s);
} }
}
#endregion unit #endregion unit
#region Labor fields #region Labor fields