Skip to content

Commit 23add86

Browse files
Kevin VenclovasKevin Venclovas
authored andcommitted
added promotion id back
promotion is only available when one line has any promotion. Added new function to get the value with array length check
1 parent 6082eae commit 23add86

File tree

2 files changed

+44
-25
lines changed

2 files changed

+44
-25
lines changed

Source/FikaAmazonAPI/ReportGeneration/SettlementOrderReport.cs

Lines changed: 29 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
using System;
1+
using FikaAmazonAPI.AmazonSpApiSDK.Models.Finances;
2+
using FikaAmazonAPI.Utils;
3+
using Newtonsoft.Json.Linq;
4+
using System;
25
using System.Collections.Generic;
36
using System.IO;
47
using System.Linq;
@@ -46,36 +49,38 @@ public class SettlementOrderRow
4649
public string MerchantAdjustmentItemId { get; set; }
4750
public string SKU { get; set; }
4851
public int? QuantityPurchased { get; set; }
52+
public string PromotionId { get; set; }
4953
public string refNumber { get; set; }
5054

5155
public static SettlementOrderRow FromCsv(string csvLine, string refNumber)
5256
{
5357
string[] values = csvLine.Split('\t');
5458
var row = new SettlementOrderRow();
55-
row.SettlementId = values[0];
56-
row.SettlementStartDate = DataConverter.GetDate(values[1], DataConverter.DateTimeFormat.DATETIME_FORMAT_UTC_DOT);
57-
row.SettlementEndDate = DataConverter.GetDate(values[2], DataConverter.DateTimeFormat.DATETIME_FORMAT_UTC_DOT);
58-
row.DepositDate = DataConverter.GetDate(values[3], DataConverter.DateTimeFormat.DATETIME_FORMAT_UTC_DOT);
59-
row.TotalAmount = DataConverter.GetDecimal(values[4]);
60-
row.Currency = values[5];
61-
row.TransactionType = values[6];
62-
row.OrderId = values[7];
63-
row.MerchantOrderId = values[8];
64-
row.AdjustmentId = values[9];
65-
row.ShipmentId = values[10];
66-
row.MarketplaceName = values[11];
67-
row.AmountType = values[12];
68-
row.AmountDescription = values[13];
69-
row.Amount = DataConverter.GetDecimal(values[14]);
70-
row.FulfillmentId = values[15];
71-
row.PostedDate = DataConverter.GetDate(values[16], DataConverter.DateTimeFormat.DATE_FORMAT_DOT);
72-
row.PostedDateTime = DataConverter.GetDate(values[17], DataConverter.DateTimeFormat.DATETIME_FORMAT_UTC_DOT);
73-
row.OrderItemCode = values[18];
74-
row.MerchantOrderItemId = values[19];
75-
row.MerchantAdjustmentItemId = values[20];
76-
row.SKU = values[21];
59+
row.SettlementId = values.GetElementAtIndexOrDefault(0);
60+
row.SettlementStartDate = DataConverter.GetDate(values.GetElementAtIndexOrDefault(1), DataConverter.DateTimeFormat.DATETIME_FORMAT_UTC_DOT);
61+
row.SettlementEndDate = DataConverter.GetDate(values.GetElementAtIndexOrDefault(2), DataConverter.DateTimeFormat.DATETIME_FORMAT_UTC_DOT);
62+
row.DepositDate = DataConverter.GetDate(values.GetElementAtIndexOrDefault(3), DataConverter.DateTimeFormat.DATETIME_FORMAT_UTC_DOT);
63+
row.TotalAmount = DataConverter.GetDecimal(values.GetElementAtIndexOrDefault(4));
64+
row.Currency = values.GetElementAtIndexOrDefault(5);
65+
row.TransactionType = values.GetElementAtIndexOrDefault(6);
66+
row.OrderId = values.GetElementAtIndexOrDefault(7);
67+
row.MerchantOrderId = values.GetElementAtIndexOrDefault(8);
68+
row.AdjustmentId = values.GetElementAtIndexOrDefault(9);
69+
row.ShipmentId = values.GetElementAtIndexOrDefault(10);
70+
row.MarketplaceName = values.GetElementAtIndexOrDefault(11);
71+
row.AmountType = values.GetElementAtIndexOrDefault(12);
72+
row.AmountDescription = values.GetElementAtIndexOrDefault(13);
73+
row.Amount = DataConverter.GetDecimal(values.GetElementAtIndexOrDefault(14));
74+
row.FulfillmentId = values.GetElementAtIndexOrDefault(15);
75+
row.PostedDate = DataConverter.GetDate(values.GetElementAtIndexOrDefault(16), DataConverter.DateTimeFormat.DATE_FORMAT_DOT);
76+
row.PostedDateTime = DataConverter.GetDate(values.GetElementAtIndexOrDefault(17), DataConverter.DateTimeFormat.DATETIME_FORMAT_UTC_DOT);
77+
row.OrderItemCode = values.GetElementAtIndexOrDefault(18);
78+
row.MerchantOrderItemId = values.GetElementAtIndexOrDefault(19);
79+
row.MerchantAdjustmentItemId = values.GetElementAtIndexOrDefault(20);
80+
row.SKU = values.GetElementAtIndexOrDefault(21);
7781
row.QuantityPurchased = DataConverter.GetInt(values[22]);
78-
82+
row.PromotionId = values.GetElementAtIndexOrDefault(23);
83+
7984
row.refNumber = refNumber;
8085

8186
return row;

Source/FikaAmazonAPI/Utils/Listing.cs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
using System.Collections.Generic;
1+
using System;
2+
using System.Collections.Generic;
23
using System.Linq;
4+
using System.Reflection;
35

46
namespace FikaAmazonAPI.Utils
57
{
@@ -18,5 +20,17 @@ public static IList<IList<T>> Slice<T>(IList<T> list, int number)
1820
}
1921
return objListList;
2022
}
23+
24+
public static string GetElementAtIndexOrDefault(this object[] array, int index)
25+
{
26+
if (index >= 0 && index < array.Length)
27+
{
28+
return array[index].ToString();
29+
}
30+
else
31+
{
32+
return null;
33+
}
34+
}
2135
}
2236
}

0 commit comments

Comments
 (0)