SANADالهندسة والتحليل التنافسي
Architecture &
Competitive Analysis
خمس حلول معمارية تعالج الفجوات في أنظمة الموارد البشرية الرائدة في السوق السعودي. كل حل يمثل مكوناً قائماً بذاته، قابل للتكامل والتوسع.
PROBLEM
أنظمة Jisr و ZenHR الحالية لا تتحقق من الامتثال مع مَـدَد في الوقت الفعلي. يكتشف الخطأ بعد فوات الأوان، مما يؤدي إلى غرامات تأخير واحتياج لإعادة المعالجة يدوياً.
SOLUTION
يعتمد الحل على بنية 'الدفتر الرقمي الأول' (Ledger-First) حيث يتم التحقق من كل عملية مالية عبر API مَـدَد قبل ترحيلها. نسخة EF Core من المخطط تضمن سلامة البيانات مع سجل تدقيق كامل.
C#
// MudadShadowValidator.cs - .NET 8 C#
public class MudadValidationMiddleware : IMiddleware
{
private readonly IMudadApiClient _mudadClient;
private readonly ShadowLedgerContext _ledger;
public async Task InvokeAsync(HttpContext context, RequestDelegate next)
{
if (context.Request.Path.StartsWithSegments("/api/payroll"))
{
var payload = await context.Request.ReadFromJsonAsync<PayrollSubmission>();
var validation = await _mudadClient.ValidateComplianceAsync(
new ComplianceRequest
{
EmployerId = payload.EmployerId,
Period = payload.Period,
TotalWages = payload.TotalWages,
WpsFileHash = payload.ComputeHash()
});
if (!validation.IsCompliant)
{
await _ledger.RecordRejectionAsync(
payload.EmployerId, validation.Errors);
context.Response.StatusCode = 422;
await context.Response.WriteAsJsonAsync(
new { error = "Compliance validation failed",
details = validation.Errors });
return;
}
await _ledger.RecordValidationAsync(payload);
}
await next(context);
}
}