InvoiceNumber
This commit is contained in:
@@ -18,7 +18,7 @@ namespace BeWo.Converter
|
||||
{
|
||||
if(value is string val_str && parameter is ValidationType val_type)
|
||||
{
|
||||
return Validator.IsValid(val_type, val_str);
|
||||
return GkvValidator.IsValid(val_type, val_str);
|
||||
}
|
||||
|
||||
return null;
|
||||
|
||||
@@ -22,7 +22,7 @@ namespace BeWo.Converter
|
||||
|
||||
if (value is bool val_bool && parameter is ValidationType val_type)
|
||||
{
|
||||
return val_bool ? null : Validator.InvalidTooltipTxt(val_type);
|
||||
return val_bool ? null : GkvValidator.InvalidTooltipTxt(val_type);
|
||||
}
|
||||
|
||||
return "xxx";
|
||||
|
||||
@@ -713,8 +713,8 @@ namespace BeWo.ViewModel
|
||||
}
|
||||
|
||||
public bool IsIKNumberValid
|
||||
=> Validator.IsIKNumberValid(IKKrankenkasse)
|
||||
&& Validator.IsLeistungserbringergruppeValid(Leistungserbringergruppe);
|
||||
=> GkvValidator.IsIKNumberValid(IKKrankenkasse)
|
||||
&& GkvValidator.IsLeistungserbringergruppeValid(Leistungserbringergruppe);
|
||||
|
||||
public string IKKrankenkasse
|
||||
{
|
||||
|
||||
@@ -67,7 +67,7 @@ namespace BeWo.Service.DCEntityMapper
|
||||
// Hole OrganisationLight
|
||||
var orga = DAOFactory.GenericDAO.LoadByID<OrganisationLight>(orga_oid);
|
||||
|
||||
if (!Validator.IsOrganisationInformationValid(orga))
|
||||
if (!GkvValidator.IsOrganisationInformationValid(orga))
|
||||
{
|
||||
isReady = false;
|
||||
tooltip = "Organisation ist nicht Gkv Ready";
|
||||
|
||||
@@ -146,8 +146,12 @@ namespace BeWo.Service.DCEntityMapper
|
||||
pDataContract.CustomerOid = customer.Oid.Value;
|
||||
pDataContract.CustomerFirstName = customer.Person.FirstName;
|
||||
pDataContract.CustomerLastName = customer.Person.LastName;
|
||||
var error = Validator.ValidateCustomer(customer.InsuranceNumber, customer.VersichertenStatus);
|
||||
pDataContract.IsGkvValidError = error;
|
||||
|
||||
var error = GkvValidator.ValidateCustomer(customer.InsuranceNumber, customer.VersichertenStatus);
|
||||
if (error is null)
|
||||
error = GkvValidator.ValidateInvoiceBase(pDataContract);
|
||||
|
||||
pDataContract.IsGkvValidError = error;
|
||||
pDataContract.IsGkvValid = error is null;
|
||||
}
|
||||
|
||||
|
||||
@@ -852,7 +852,7 @@ namespace BeWo.Service.ServiceImplementations
|
||||
IList<Organisation> list = DAOFactory.GenericDAO.GetAllActiveAndArchived<Organisation>();
|
||||
|
||||
list = list.Where(x => !x.GkvAusblenden &&
|
||||
Validator.IsOrganisationInformationValid(x.IKDatenannahmestelle, x.IKKostentrager, x.IKKrankenkasse, x.BezDatenannahmestelle)).ToList();
|
||||
GkvValidator.IsOrganisationInformationValid(x.IKDatenannahmestelle, x.IKKostentrager, x.IKKrankenkasse, x.BezDatenannahmestelle)).ToList();
|
||||
|
||||
return CreateCompactOrganisations(list);
|
||||
}
|
||||
|
||||
@@ -377,12 +377,12 @@ namespace BeWo.Service.ServiceImplementations
|
||||
var manager = new DakotaManager();
|
||||
var mandatordc = new OperationsServiceImp().GetMandator();
|
||||
|
||||
Validator.ValidateMandator(mandatordc);
|
||||
GkvValidator.ValidateMandator(mandatordc);
|
||||
|
||||
var gkvAbrechnungDC = MapperFactory.GkvAbrechnungDC_GkvAbrechnung.MapToNewDC(gkvAbrechnung);
|
||||
var orgadc = gkvAbrechnungDC.Organisation;
|
||||
|
||||
Validator.ValidateOrganisation(orgadc);
|
||||
GkvValidator.ValidateOrganisation(orgadc);
|
||||
|
||||
var datenannahmestelle = orgadc.IKDatenannahmestelle;
|
||||
var (datenaustauschreferenz, transfernummer) = GetNextDatenaustauschreferenzTransfernummer(gkvAbrechnung, datenannahmestelle);
|
||||
@@ -416,7 +416,7 @@ namespace BeWo.Service.ServiceImplementations
|
||||
var servicedc = MapperFactory.ServiceInvoiceDC_ServiceInvoice.MapToNewDC(service);
|
||||
var customerdc = MapperFactory.CustomerDC_Customer.MapToNewDC(customer);
|
||||
|
||||
Validator.ValidateCustomer(customerdc);
|
||||
GkvValidator.ValidateCustomer(customerdc);
|
||||
|
||||
manager.Add(servicedc, orgadc, customerdc, addressInfo, dat_short, tra_short);
|
||||
}
|
||||
|
||||
@@ -6,11 +6,12 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BS.Shared.Core
|
||||
{
|
||||
public static class Validator
|
||||
public static class GkvValidator
|
||||
{
|
||||
public static bool? IsValid(ValidationType val_type, string val_str)
|
||||
{
|
||||
@@ -73,7 +74,7 @@ namespace BS.Shared.Core
|
||||
if (mandatordc == null)
|
||||
throw new GkvException("Mandator ist null");
|
||||
|
||||
if (!Validator.IsIKNumberValid(mandatordc.IKLeistungserbringer))
|
||||
if (!IsIKNumberValid(mandatordc.IKLeistungserbringer))
|
||||
throw new GkvException($"Die IK Nummer des Leistungserbringers \"{mandatordc.IKLeistungserbringer}\" ist ungültig.");
|
||||
}
|
||||
public static void ValidateCustomer(CustomerDC customerDC)
|
||||
@@ -110,16 +111,35 @@ namespace BS.Shared.Core
|
||||
if (error != null)
|
||||
throw new GkvException(error);
|
||||
}
|
||||
public static bool IsOrganisationInformationValid(IOrganisation orga)
|
||||
public static string ValidateInvoiceBases(IEnumerable<IInvoiceBase> invoices)
|
||||
{
|
||||
foreach (var invoice in invoices)
|
||||
{
|
||||
if (ValidateInvoiceBase(invoice) is string error)
|
||||
return error;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
public static string ValidateInvoiceBase(IInvoiceBase invoice)
|
||||
{
|
||||
if (!IsInvoiceNumberValid(invoice.InvoiceNumber))
|
||||
return $"Rechnungsnummer \"{invoice.InvoiceNumber}\" ist ungültig";
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static bool IsOrganisationInformationValid(IOrganisation orga)
|
||||
{
|
||||
return IsOrganisationInformationValid(orga.IKDatenannahmestelle, orga.IKKostentrager, orga.IKKrankenkasse, orga.BezDatenannahmestelle);
|
||||
}
|
||||
public static bool IsOrganisationInformationValid(string ik_datenannahmestelle, string ik_kostentrager, string ik_krankenkasse, string bez_datenannahmestelle)
|
||||
}
|
||||
public static bool IsOrganisationInformationValid(string ik_datenannahmestelle, string ik_kostentrager, string ik_krankenkasse, string bez_datenannahmestelle)
|
||||
=> IsIKNumberValid(ik_datenannahmestelle, ik_kostentrager, ik_krankenkasse) && IsBezDatenannahmestelleValid(bez_datenannahmestelle);
|
||||
public static bool IsIKNumberValid(params string[] iks)
|
||||
=> iks?.All(IsIKNumberValid) ?? false;
|
||||
|
||||
public static bool IsBezDatenannahmestelleValid(string bez_datenannahmestelle)
|
||||
|
||||
public static bool IsBezDatenannahmestelleValid(string bez_datenannahmestelle)
|
||||
{
|
||||
return !string.IsNullOrWhiteSpace(bez_datenannahmestelle);
|
||||
}
|
||||
@@ -180,5 +200,11 @@ namespace BS.Shared.Core
|
||||
|
||||
return true;
|
||||
}
|
||||
public static bool IsInvoiceNumberValid(string invoiceNumber)
|
||||
{
|
||||
var pattern = @"^(?!.*[-/]{2})(?![-/])(?!.*[-/]$)[A-Za-z0-9]+(?:[/-][A-Za-z0-9]+)*$";
|
||||
|
||||
return Regex.IsMatch(invoiceNumber, pattern);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7,6 +7,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BS.Shared.Core
|
||||
@@ -23,6 +24,8 @@ namespace BS.Shared.Core
|
||||
error = "Unterschiedliche Rechnungspositionen";
|
||||
else if (GetInvalidUnitDescription(invoiceBases) is IInvoiceItem invalid)
|
||||
error = $"Ungültige Rechnungsposition: {invalid.ItemDescription}:{invalid.UnitDescription}";
|
||||
else if (GetInvalidInvoiceNumber(invoiceBases) is IInvoiceBase invalid2)
|
||||
error = $"Ungültige Rechnungsnummer: {invalid2.InvoiceNumber}";
|
||||
|
||||
if(error is string)
|
||||
throw new GkvException(error, "Validierung");
|
||||
@@ -71,5 +74,7 @@ namespace BS.Shared.Core
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ namespace BS.Shared.Interface
|
||||
public interface IInvoiceBase
|
||||
{
|
||||
long? Oid { get; }
|
||||
string InvoiceNumber { get; }
|
||||
string InvoiceTitle { get; }
|
||||
string InvoiceId { get; }
|
||||
string SenderStreet { get; }
|
||||
|
||||
@@ -151,7 +151,7 @@
|
||||
<Compile Include="Core\SecurityUtils.cs" />
|
||||
<Compile Include="Core\TokenUtils.cs" />
|
||||
<Compile Include="Core\Utilities\WebUtils.cs" />
|
||||
<Compile Include="Core\Validator.cs" />
|
||||
<Compile Include="Core\GkvValidator.cs" />
|
||||
<Compile Include="Core\DebugUtils.cs" />
|
||||
<Compile Include="Core\ImageUtils.cs" />
|
||||
<Compile Include="Core\PersonFilterEnum.cs" />
|
||||
|
||||
Reference in New Issue
Block a user