This commit is contained in:
@@ -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>
|
||||||
|
|||||||
4
AyaNovaQBI/InvoiceTemplateBuilder.Designer.cs
generated
4
AyaNovaQBI/InvoiceTemplateBuilder.Designer.cs
generated
@@ -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
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -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>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
47
AyaNovaQBI/WorkOrderItemPartRequest.cs
Normal file
47
AyaNovaQBI/WorkOrderItemPartRequest.cs
Normal 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; }
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
27
AyaNovaQBI/WorkOrderItemScheduledUser.cs
Normal file
27
AyaNovaQBI/WorkOrderItemScheduledUser.cs
Normal 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
|
||||||
|
}
|
||||||
34
AyaNovaQBI/WorkOrderItemTask.cs
Normal file
34
AyaNovaQBI/WorkOrderItemTask.cs
Normal 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
|
||||||
|
}
|
||||||
27
AyaNovaQBI/WorkOrderItemTaskCompletionType.cs
Normal file
27
AyaNovaQBI/WorkOrderItemTaskCompletionType.cs
Normal 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
|
||||||
|
}
|
||||||
|
}
|
||||||
32
AyaNovaQBI/WorkOrderItemUnit.cs
Normal file
32
AyaNovaQBI/WorkOrderItemUnit.cs
Normal 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
|
||||||
|
}
|
||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user