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

@@ -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.");
var OrderedWorkOrderItems = w.Items.OrderBy(z => z.Sequence).ToList();
if (bFirstLoop)
{
bFirstLoop = false;
@@ -6214,7 +6216,7 @@ namespace AyaNovaQBI
#endregion header text
#region Part charges
foreach (var it in w.Items)
foreach (var it in OrderedWorkOrderItems)
{
foreach (var p in it.Parts)
{
@@ -6229,7 +6231,7 @@ namespace AyaNovaQBI
#endregion part charges
#region Service charges
foreach (var it in w.Items)
foreach (var it in OrderedWorkOrderItems)
{
foreach (var l in it.Labors)
{
@@ -6250,7 +6252,7 @@ namespace AyaNovaQBI
#endregion Service charges
#region Travel charges
foreach (var it in w.Items)
foreach (var it in OrderedWorkOrderItems)
{
foreach (var l in it.Travels)
{
@@ -6263,7 +6265,7 @@ namespace AyaNovaQBI
#endregion Travel charges
#region MiscExpense charges
foreach (var it in w.Items)
foreach (var it in OrderedWorkOrderItems)
{
foreach (var l in it.Expenses)
{
@@ -6277,7 +6279,7 @@ namespace AyaNovaQBI
#endregion MiscExpense charges
#region Loaner charges
foreach (var it in w.Items)
foreach (var it in OrderedWorkOrderItems)
{
foreach (var l in it.Loans)
{
@@ -6288,7 +6290,7 @@ namespace AyaNovaQBI
#endregion Loaner charges
#region OutsideService charges
foreach (var it in w.Items)
foreach (var it in OrderedWorkOrderItems)
{
foreach (var os in it.OutsideServices)
{
@@ -6304,7 +6306,7 @@ namespace AyaNovaQBI
//inserting descriptive text as required
if (QDat.HasAnyInvoiceFooterTemplateFields)
{
foreach (var it in w.Items)
foreach (var it in OrderedWorkOrderItems)
{
#region Item (footer) fields
if (!string.IsNullOrWhiteSpace(QDat.InvoiceFooterTemplate))
@@ -6313,7 +6315,7 @@ namespace AyaNovaQBI
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)
@@ -6321,12 +6323,9 @@ namespace AyaNovaQBI
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_TYPE~", "");
else
s = s.Replace("~ITEM_TYPE~", NameFetcher.GetItem("aWorkorderItemType", "aName", it.TypeID).RecordName);
s = s.Replace("~ITEM_TAGS~", String.Join(",", it.Tags));
}
if (s.IndexOf("~ITEM_REQUEST_DATE~") != -1)
@@ -6336,10 +6335,7 @@ namespace AyaNovaQBI
if (s.IndexOf("~ITEM_STATUS~") != -1)
{
if (it.WorkorderStatusID == Guid.Empty)
s = s.Replace("~ITEM_STATUS~", "");
else
s = s.Replace("~ITEM_STATUS~", NameFetcher.GetItem("aWorkorderStatus", "aName", it.WorkorderStatusID).RecordName);
s = s.Replace("~ITEM_STATUS~", it.WorkOrderItemStatusNameViz);
}
InvoiceAddText(i, s);
@@ -6349,48 +6345,50 @@ namespace AyaNovaQBI
#region Unit fields
if (!string.IsNullOrWhiteSpace(QDat.InvoiceUnitTemplate))
{
TODO: LOOPIFY THIS BLOCK TO NEW STANDARD
string s = QDat.InvoiceUnitTemplate;
UnitPickList up = UnitPickList.GetListOfOneSpecificUnit(it.UnitID);
if (s.IndexOf("~AYAFORMAT~") != -1)
foreach (var u in it.units)
{
s = s.Replace("~AYAFORMAT~", up[0].UnitName());
string s = QDat.InvoiceUnitTemplate;
UnitPickList up = UnitPickList.GetListOfOneSpecificUnit(it.UnitID);
if (s.IndexOf("~AYAFORMAT~") != -1)
{
s = s.Replace("~AYAFORMAT~", up[0].UnitName());
}
if (s.IndexOf("~UNIT_SN~") != -1)
{
s = s.Replace("~UNIT_SN~", up[0].Serial);
}
if (s.IndexOf("~UNIT_METER~") != -1)
{
if (!up[0].Metered)
s = s.Replace("~UNIT_METER~", "");
else
s = s.Replace("~UNIT_METER~", Unit.LastMeterReading(up[0].ID).ToString());
}
if (s.IndexOf("~UNIT_MAKE~") != -1)
{
s = s.Replace("~UNIT_MAKE~", up[0].VendorName);
}
if (s.IndexOf("~UNIT_MODEL_NAME~") != -1)
{
s = s.Replace("~UNIT_MODEL_NAME~", up[0].ModelName);
}
if (s.IndexOf("~UNIT_MODEL_NUMBER~") != -1)
{
s = s.Replace("~UNIT_MODEL_NUMBER~", up[0].ModelNumber);
}
InvoiceAddText(i, s);
}
if (s.IndexOf("~UNIT_SN~") != -1)
{
s = s.Replace("~UNIT_SN~", up[0].Serial);
}
if (s.IndexOf("~UNIT_METER~") != -1)
{
if (!up[0].Metered)
s = s.Replace("~UNIT_METER~", "");
else
s = s.Replace("~UNIT_METER~", Unit.LastMeterReading(up[0].ID).ToString());
}
if (s.IndexOf("~UNIT_MAKE~") != -1)
{
s = s.Replace("~UNIT_MAKE~", up[0].VendorName);
}
if (s.IndexOf("~UNIT_MODEL_NAME~") != -1)
{
s = s.Replace("~UNIT_MODEL_NAME~", up[0].ModelName);
}
if (s.IndexOf("~UNIT_MODEL_NUMBER~") != -1)
{
s = s.Replace("~UNIT_MODEL_NUMBER~", up[0].ModelNumber);
}
InvoiceAddText(i, s);
}
#endregion unit