Code cleanup

This commit is contained in:
2022-04-12 17:40:24 +02:00
parent c70fa2dd5b
commit a7877d5a37
2 changed files with 99 additions and 74 deletions

View File

@@ -17,7 +17,8 @@ namespace SynchronizeOrdersWithMissingQty.DataProvider
public IList<ScheduleOrder> GetFaKrosnoScheduleOrders(DateTime plannedSendingDate)
{
IList<ScheduleOrder> scheduleOrders = FaKrosnoDataContext.ScheduleOrder
.Where(x => DbFunctions.TruncateTime(x.LastUpdateDate) <= plannedSendingDate.Date).OrderByDescending(x => x.LastUpdateDate).ToList();
.Where(x => DbFunctions.TruncateTime(x.LastUpdateDate) <= plannedSendingDate.Date &&
x.Recipient.Purchaser.Id == 2).OrderByDescending(x => x.LastUpdateDate).ToList();
foreach (ScheduleOrderDetail scheduleOrderDetail in scheduleOrders.SelectMany(x => x.ScheduleOrderDetail))
{
@@ -104,62 +105,14 @@ namespace SynchronizeOrdersWithMissingQty.DataProvider
foreach (ScheduleOrderDetail scheduleOrderDetail in missedDetailsMisc)
{
createdPlannedDetails.Add(new PlannedQty
{
DateFrom = plannedSendingDate,
DateTo = plannedSendingDate,
ScheduleOrderDetailId = scheduleOrderDetail.Id,
ScheduleOrderDetail = scheduleOrderDetail,
Recipient = scheduleOrderDetail.ScheduleOrder.Recipient,
LastUpdateDate = scheduleOrderDetail.ScheduleOrder.LastUpdateDate,
Qty = int.Parse(scheduleOrderDetail.ScheduleOrderDetailMisc.First(y => y.Type == "QTY_83" &&
DateTime.Parse(y.Label.Split(' ').Last()).Date == plannedSendingDate.Date).Value),
SccType = scheduleOrderDetail.ScheduleOrderDetailDetail.FirstOrDefault()?.SccType,
SccDesc = scheduleOrderDetail.ScheduleOrderDetailDetail.FirstOrDefault()?.SccDesc,
QtyType = scheduleOrderDetail.ScheduleOrderDetailDetail.FirstOrDefault()?.QtyType,
QtyDesc =
$"LATE: {scheduleOrderDetail.ScheduleOrderDetailDetail.FirstOrDefault()?.QtyDesc}",
Status = "new",
CreatedDate = createdDate,
RecipientCode = scheduleOrderDetail.RecipientCode,
RecipientId =
recipients.FirstOrDefault(x => x.RecipientCode == scheduleOrderDetail.RecipientCode)?.Id ??
scheduleOrderDetail.ScheduleOrder.Recipient.Id,
PlannedNumber = newPlannedNumber,
OrderId = scheduleOrderDetail.ScheduleOrder.OrderID,
CustomerCode = customers.FirstOrDefault(x => x.TpCode == scheduleOrderDetail.RecipientCode)
?.CustomerNumber
});
createdPlannedDetails.Add(scheduleOrderDetail.GeneratePlannedQty(plannedSendingDate, createdDate,
recipients, newPlannedNumber, customers));
}
foreach (ScheduleOrderDetailDetail scheduleOrderDetailDetail in newPlannedDetails)
{
createdPlannedDetails.Add(new PlannedQty
{
DateFrom = plannedSendingDate,
DateTo = plannedSendingDate,
ScheduleOrderDetailId = scheduleOrderDetailDetail.ScheduleOrderDetail.Id,
ScheduleOrderDetail = scheduleOrderDetailDetail.ScheduleOrderDetail,
Recipient = scheduleOrderDetailDetail.ScheduleOrderDetail.ScheduleOrder.Recipient,
LastUpdateDate = scheduleOrderDetailDetail.ScheduleOrderDetail.ScheduleOrder.LastUpdateDate,
Qty = scheduleOrderDetailDetail.Qty,
SccType = scheduleOrderDetailDetail.SccType,
SccDesc = scheduleOrderDetailDetail.SccDesc,
QtyType = scheduleOrderDetailDetail.QtyType,
QtyDesc = scheduleOrderDetailDetail.QtyDesc,
Status = "new",
CreatedDate = DateTime.Now,
RecipientCode = scheduleOrderDetailDetail.ScheduleOrderDetail.RecipientCode,
RecipientId =
recipients.FirstOrDefault(x =>
x.RecipientCode == scheduleOrderDetailDetail.ScheduleOrderDetail.RecipientCode)?.Id ??
scheduleOrderDetailDetail.ScheduleOrderDetail.ScheduleOrder.Recipient.Id,
PlannedNumber = newPlannedNumber,
OrderId = scheduleOrderDetailDetail.ScheduleOrderDetail.ScheduleOrder.OrderID,
CustomerCode = customers
.FirstOrDefault(x => x.TpCode == scheduleOrderDetailDetail.ScheduleOrderDetail.RecipientCode)
?.CustomerNumber
});
createdPlannedDetails.Add(scheduleOrderDetailDetail.GeneratePlannedQty(plannedSendingDate, createdDate,
recipients, newPlannedNumber, customers));
}
if (!createdPlannedDetails.Any())
@@ -171,27 +124,8 @@ namespace SynchronizeOrdersWithMissingQty.DataProvider
foreach (PlannedQty missingPlannedDetail in missingPlannedDetails)
{
createdPlannedDetails.Add(new PlannedQty
{
DateFrom = plannedSendingDate,
DateTo = plannedSendingDate,
ScheduleOrderDetailId = missingPlannedDetail.ScheduleOrderDetailId,
ScheduleOrderDetail = missingPlannedDetail.ScheduleOrderDetail,
Recipient = missingPlannedDetail.Recipient,
LastUpdateDate = missingPlannedDetail.LastUpdateDate,
Qty = missingPlannedDetail.Qty,
SccType = missingPlannedDetail.SccType,
SccDesc = missingPlannedDetail.SccDesc,
QtyType = missingPlannedDetail.QtyType,
QtyDesc = missingPlannedDetail.QtyDesc,
Status = "new",
CreatedDate = DateTime.Now,
RecipientCode = missingPlannedDetail.RecipientCode,
RecipientId = missingPlannedDetail.RecipientId,
PlannedNumber = newPlannedNumber,
OrderId = missingPlannedDetail.OrderId,
CustomerCode = missingPlannedDetail.CustomerCode
});
createdPlannedDetails.Add(
missingPlannedDetail.GenerateCopy(plannedSendingDate, createdDate, newPlannedNumber));
}
return createdPlannedDetails;

View File

@@ -4,6 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using FaKrosnoDataModel;
using SytelineSaAppDataModel;
namespace SynchronizeOrdersWithMissingQty
{
@@ -58,5 +59,95 @@ namespace SynchronizeOrdersWithMissingQty
{
return plannedQuantities.Any(x => x.IsEqualTo(other));
}
public static PlannedQty GeneratePlannedQty(this ScheduleOrderDetail scheduleOrderDetail,
DateTime plannedSendingDate, DateTime createdDate, IList<Recipient> recipients, int newPlannedNumber,
IList<CustomerTp> customers)
{
return new PlannedQty
{
DateFrom = plannedSendingDate,
DateTo = plannedSendingDate,
ScheduleOrderDetailId = scheduleOrderDetail.Id,
ScheduleOrderDetail = scheduleOrderDetail,
Recipient = scheduleOrderDetail.ScheduleOrder.Recipient,
LastUpdateDate = scheduleOrderDetail.ScheduleOrder.LastUpdateDate,
Qty = int.Parse(scheduleOrderDetail.ScheduleOrderDetailMisc.First(y => y.Type == "QTY_83" &&
DateTime.Parse(y.Label.Split(' ').Last()).Date == plannedSendingDate.Date).Value),
SccType = scheduleOrderDetail.ScheduleOrderDetailDetail.FirstOrDefault()?.SccType,
SccDesc = scheduleOrderDetail.ScheduleOrderDetailDetail.FirstOrDefault()?.SccDesc,
QtyType = scheduleOrderDetail.ScheduleOrderDetailDetail.FirstOrDefault()?.QtyType,
QtyDesc =
$"LATE: {scheduleOrderDetail.ScheduleOrderDetailDetail.FirstOrDefault()?.QtyDesc}",
Status = "new",
CreatedDate = createdDate,
RecipientCode = scheduleOrderDetail.RecipientCode,
RecipientId =
recipients.FirstOrDefault(x => x.RecipientCode == scheduleOrderDetail.RecipientCode)?.Id ??
scheduleOrderDetail.ScheduleOrder.Recipient.Id,
PlannedNumber = newPlannedNumber,
OrderId = scheduleOrderDetail.ScheduleOrder.OrderID,
CustomerCode = customers.FirstOrDefault(x => x.TpCode == scheduleOrderDetail.RecipientCode)
?.CustomerNumber
};
}
public static PlannedQty GeneratePlannedQty(this ScheduleOrderDetailDetail scheduleOrderDetailDetail,
DateTime plannedSendingDate, DateTime createdDate, IList<Recipient> recipients, int newPlannedNumber,
IList<CustomerTp> customers)
{
return new PlannedQty
{
DateFrom = plannedSendingDate,
DateTo = plannedSendingDate,
ScheduleOrderDetailId = scheduleOrderDetailDetail.ScheduleOrderDetail.Id,
ScheduleOrderDetail = scheduleOrderDetailDetail.ScheduleOrderDetail,
Recipient = scheduleOrderDetailDetail.ScheduleOrderDetail.ScheduleOrder.Recipient,
LastUpdateDate = scheduleOrderDetailDetail.ScheduleOrderDetail.ScheduleOrder.LastUpdateDate,
Qty = scheduleOrderDetailDetail.Qty,
SccType = scheduleOrderDetailDetail.SccType,
SccDesc = scheduleOrderDetailDetail.SccDesc,
QtyType = scheduleOrderDetailDetail.QtyType,
QtyDesc = scheduleOrderDetailDetail.QtyDesc,
Status = "new",
CreatedDate = createdDate,
RecipientCode = scheduleOrderDetailDetail.ScheduleOrderDetail.RecipientCode,
RecipientId =
recipients.FirstOrDefault(x =>
x.RecipientCode == scheduleOrderDetailDetail.ScheduleOrderDetail.RecipientCode)?.Id ??
scheduleOrderDetailDetail.ScheduleOrderDetail.ScheduleOrder.Recipient.Id,
PlannedNumber = newPlannedNumber,
OrderId = scheduleOrderDetailDetail.ScheduleOrderDetail.ScheduleOrder.OrderID,
CustomerCode = customers
.FirstOrDefault(x => x.TpCode == scheduleOrderDetailDetail.ScheduleOrderDetail.RecipientCode)
?.CustomerNumber
};
}
public static PlannedQty GenerateCopy(this PlannedQty plannedQty, DateTime plannedSendingDate,
DateTime createdDate, int newPlannedNumber)
{
return new PlannedQty
{
DateFrom = plannedSendingDate,
DateTo = plannedSendingDate,
ScheduleOrderDetailId = plannedQty.ScheduleOrderDetailId,
ScheduleOrderDetail = plannedQty.ScheduleOrderDetail,
Recipient = plannedQty.Recipient,
LastUpdateDate = plannedQty.LastUpdateDate,
Qty = plannedQty.Qty,
SccType = plannedQty.SccType,
SccDesc = plannedQty.SccDesc,
QtyType = plannedQty.QtyType,
QtyDesc = plannedQty.QtyDesc,
Status = "new",
CreatedDate = createdDate,
RecipientCode = plannedQty.RecipientCode,
RecipientId = plannedQty.RecipientId,
PlannedNumber = newPlannedNumber,
OrderId = plannedQty.OrderId,
CustomerCode = plannedQty.CustomerCode
};
}
}
}