namespace FKGees.DocsDefinitions.Decrets; public class MmMinus : IDecretsDefinition { public int DocType => 6; public string Type => "Mm-"; public List Definitions { get; } = [ new Definition("305-60-24", "MA", "[znr]"), new Definition("342-0-24", "MA", "[snr]-[znr]"), new Definition("343-0-24", "MA", "[sbr]-[snr]"), new Definition("332-0-24", "WN", "[sbr]") ]; public Task> Process(IReadOnlyList documents) { var result = new List(); var toProcess = documents.Where(x => x.TypDok == DocType); foreach (var dok in toProcess) { Definitions.ForEach(d => { var item = dok.DecretKontr(); item.Data = dok.DataPom; item.DataWplywu = dok.Data; item.Nr = dok.NrDok; item.Opis = $"{dok.NrDok} / PRZERZUT NA {item.k_Skrot}"; item.StronaKonta = d.AccountSide; item.KontoFk = d.Account; item.Kwota = ProcessValue(dok, d.Expression).AsString(); result.Add(item); }); } return Task.FromResult(result); } private static decimal ProcessValue(Dok doc, string expression) { return expression switch { "[znr]" => -(doc.Netto), "[snr]-[znr]" => -(doc.NettoDet - doc.Netto), "[sbr]-[snr]" => -(doc.PodatekDet), "[sbr]" => -(doc.NettoDet + doc.PodatekDet), _ => 0 }; } }