This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user