Take care of splits
This commit is contained in:
@ -5,6 +5,7 @@ using Microsoft.Extensions.Logging;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
@ -15,6 +16,22 @@ namespace LoadStockDbFromTrans.Runners;
|
||||
|
||||
public class FileToJson : IFileToJson
|
||||
{
|
||||
//private const string BYTE_INLAGG_VP = "BYTE INLÄGG VP";
|
||||
//private const string BYTE_UTTAG_VP = "BYTE UTTAG VP";
|
||||
//private const string DECIMALER_LIKVID = "DECIMALER LIKVID";
|
||||
//private const string DECIMALER_UTTAG_VP = "DECIMALER UTTAG VP";
|
||||
//private const string INLAGG_FISSION = "INLÄGG FISSION";
|
||||
//private const string INLOSEN_LIKVID = "INLÖSEN LIKVID";
|
||||
//private const string INLOSEN_UTTAG_VP = "INLÖSEN UTTAG VP";
|
||||
//private const string INSATTNING = "INSÄTTNING";
|
||||
//private const string KOPT = "KÖPT";
|
||||
//private const string SPLIT_INLÄGG_VP = "SPLIT INLÄGG VP";
|
||||
//private const string SPLIT_UTTAG_VP = "SPLIT UTTAG VP";
|
||||
//private const string SALT = "SÅLT";
|
||||
//private const string UTDELNING = "UTDELNING";
|
||||
//private const string UTL_KUPSKATT = "UTL KUPSKATT";
|
||||
//private const string UTTAG = "UTTAG";
|
||||
|
||||
private readonly ILogger<FileToJson> _log;
|
||||
private readonly IConfiguration _config;
|
||||
private readonly IDapperStocksProvider _dapperStocksProvider;
|
||||
@ -63,7 +80,7 @@ public class FileToJson : IFileToJson
|
||||
var skrivna = 0;
|
||||
foreach (var rec in recList)
|
||||
{
|
||||
if (rec.Transaktionstyp == "KÖPT")
|
||||
if (rec.Transaktionstyp == ProcName.KOPT)
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -92,11 +109,27 @@ public class FileToJson : IFileToJson
|
||||
}
|
||||
}
|
||||
|
||||
_log.LogInformation("Köpta klart {skrivna} st skrivna", skrivna);
|
||||
|
||||
|
||||
_log.LogInformation($"Köpta klart {skrivna} st skrivna" );
|
||||
skrivna = 0;
|
||||
foreach (var rec in recList)
|
||||
{
|
||||
if (rec.Transaktionstyp == "SÅLT")
|
||||
if (rec.Transaktionstyp == ProcName.SPLIT_INLÄGG_VP)
|
||||
{
|
||||
UpDateWithSplitPlus(rec);
|
||||
|
||||
skrivna++;
|
||||
}
|
||||
|
||||
if (rec.Transaktionstyp == ProcName.SPLIT_UTTAG_VP)
|
||||
{
|
||||
UpDateWithSplitMinus(rec);
|
||||
|
||||
skrivna++;
|
||||
}
|
||||
|
||||
if (rec.Transaktionstyp == ProcName.SALT)
|
||||
{
|
||||
UpDateWithSold(rec);
|
||||
|
||||
@ -112,6 +145,8 @@ public class FileToJson : IFileToJson
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
private async Task PrepareNameConverter(List<FileModel> recList)
|
||||
{
|
||||
var tempListNew = new HashSet<string>();
|
||||
@ -173,6 +208,49 @@ public class FileToJson : IFileToJson
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
private async void UpDateWithSplitMinus(FileModel rec)
|
||||
{
|
||||
var members = await _dapperStocksProvider.GetStocksByStockIdPart(rec.Beskrivning, rec.Affärsdag);
|
||||
var remainingInit = rec.Antal;
|
||||
var remaining = rec.Antal;
|
||||
foreach (var member in members)
|
||||
{
|
||||
if (remaining >= member.ActAmount)
|
||||
{
|
||||
remaining -= (int)member.ActAmount;
|
||||
await _dapperStocksProvider.RemoveStockById(member.Id);
|
||||
}
|
||||
else
|
||||
{
|
||||
member.ActAmount -= remaining;
|
||||
member.Comment += ",-Split";
|
||||
await _dapperStocksProvider.UpdateStock(member);
|
||||
}
|
||||
|
||||
_log.LogInformation($"Splittade {member.StockId}({member.Id}) st ändrad (minskad)");
|
||||
|
||||
if (remaining <= 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private async void UpDateWithSplitPlus(FileModel rec)
|
||||
{
|
||||
var members = await _dapperStocksProvider.GetStocksByStockIdPart(
|
||||
rec.Beskrivning, rec.Affärsdag);
|
||||
foreach (var member in members)
|
||||
{
|
||||
member.ActAmount += rec.Antal;
|
||||
member.Comment += ", +split";
|
||||
|
||||
await _dapperStocksProvider.UpdateStock(member);
|
||||
_log.LogInformation($"Sålda {member.Id} st ändrad");
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private async Task UpDateNameConverter()
|
||||
@ -218,6 +296,5 @@ public class FileToJson : IFileToJson
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user