@page "/contracts"
@using Umogen.Core;
@using Umogen.Core.Models;
@inject IJSRuntime js
@inject DataContext db
@using Microsoft.EntityFrameworkCore;
Umowy
Umowy
@code {
private string _employerId = "", _employeeId = "";
private Person? employee;
private IEntity? employer;
private string _query = "";
private ValidTime _validity;
private decimal _payment;
private string output = "";
private bool disB = false;
private async Task ChgEmployer(ChangeEventArgs e)
{
_employerId = (string)e.Value!;
employer = await db.Persons.AsNoTracking().SingleOrDefaultAsync(s => s.Pesel == _employerId) as IEntity ?? await
db.Companies.AsNoTracking().SingleOrDefaultAsync(s => s.Nip == _employerId);
StateHasChanged();
}
private async Task ChgEmployee(ChangeEventArgs e)
{
_employeeId = (string)e.Value!;
employee = await db.Persons.AsNoTracking().SingleOrDefaultAsync(s => s.Pesel == _employeeId);
}
private string _validityText = "";
private async Task ChgValidity(ChangeEventArgs e)
{
string val = (string)e.Value!;
_validityText = val;
StateHasChanged();
var now = DateTime.Now;
if (!TimeSpan.TryParse(val, out TimeSpan span))
{
_validityText = "nieokreślony";
_validity = ValidTime.Invalid;
}
if (span.TotalDays < 1)
{
_validityText = "nieokreślony";
_validity = ValidTime.Invalid;
StateHasChanged();
return;
}
_validityText = $"{span.TotalDays} d";
_validity = new ValidTime(now, span);
}
private IEnumerable<(string, string)> GetEmployers()
{
var pers = db.Persons.AsNoTracking().AsEnumerable().Select(p => ($"{p.Name} {p.Surname}", p.Pesel));
var comp = db.Companies.AsNoTracking().AsEnumerable().Select(c => (c.Name, c.Nip!));
return pers.Union(comp);
}
private IEnumerable<(string, string)> GetEmployees()
{
return db.Persons.AsNoTracking().AsEnumerable().Select(p => ($"{p.Name} {p.Surname}", p.Pesel));
}
private async Task Process()
{
disB = true;
this.StateHasChanged();
await Task.Yield();
output = string.Empty;
using UmoEngine eng = new();
UmoProcess proc = new(eng);
Thread.Yield();
await foreach (var str in proc.Ask(_query + $" wynagrodzenie {_payment} zł"))
{
output += str;
Console.Write(str);
this.StateHasChanged();
}
var anal = System.Text.Json.JsonSerializer.Deserialize(output, Umogen.JSON_OPTS);
UmoDocumentResult res = new(null, employee, employer, _validity, _payment,
anal);
var bytes = await res.ProcessPdf(Path.Combine(Environment.GetEnvironmentVariable("UMO_TEMPLATES")!,
anal.Doctype.TemplateDoc()));
await js.InvokeVoidAsync("blobby", bytes);
disB = false;
this.StateHasChanged();
}
}