2022-12-12 07:14:48 +01:00
|
|
|
|
// ***********************************************************************
|
|
|
|
|
// Assembly : FCS.Lib.Virk
|
2023-03-21 07:19:30 +01:00
|
|
|
|
// Author : fhdk
|
2023-03-21 07:07:55 +01:00
|
|
|
|
// Created : 2022 12 17 13:33
|
|
|
|
|
//
|
2023-03-21 07:19:30 +01:00
|
|
|
|
// Last Modified By: fhdk
|
2023-03-21 07:07:55 +01:00
|
|
|
|
// Last Modified On : 2023 03 14 09:16
|
2022-12-12 07:14:48 +01:00
|
|
|
|
// ***********************************************************************
|
2023-03-21 07:07:55 +01:00
|
|
|
|
// <copyright file="VrVatInfoMapper.cs" company="FCS">
|
|
|
|
|
// Copyright (C) 2022-2023 FCS Frede's Computer Services.
|
|
|
|
|
// This program is free software: you can redistribute it and/or modify
|
|
|
|
|
// it under the terms of the GNU Affero General Public License as
|
|
|
|
|
// published by the Free Software Foundation, either version 3 of the
|
|
|
|
|
// License, or (at your option) any later version.
|
|
|
|
|
//
|
|
|
|
|
// This program is distributed in the hope that it will be useful,
|
|
|
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
// GNU Affero General Public License for more details.
|
|
|
|
|
//
|
|
|
|
|
// You should have received a copy of the GNU Affero General Public License
|
|
|
|
|
// along with this program. If not, see [https://www.gnu.org/licenses]
|
2022-12-12 07:14:48 +01:00
|
|
|
|
// </copyright>
|
|
|
|
|
// <summary></summary>
|
|
|
|
|
// ***********************************************************************
|
|
|
|
|
|
|
|
|
|
using FCS.Lib.Common;
|
|
|
|
|
|
|
|
|
|
namespace FCS.Lib.Virk
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Vr Vat Info Mapper
|
|
|
|
|
/// </summary>
|
|
|
|
|
public class VrVatInfoMapper
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Vr to CRM mapper
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="vrVirk"></param>
|
|
|
|
|
/// <returns>Vat Info Data Transfer Object</returns>
|
|
|
|
|
/// <see cref="VatInfoDto"/>
|
|
|
|
|
/// <see cref="VrVirksomhed"/>
|
|
|
|
|
/// <see cref="VatState"/>
|
|
|
|
|
/// <see cref="LifeCycle"/>
|
|
|
|
|
/// <see cref="TimeFrame"/>
|
|
|
|
|
public VatInfoDto MapVrToCrm(VrVirksomhed vrVirk)
|
|
|
|
|
{
|
|
|
|
|
var c = new VatInfoDto
|
|
|
|
|
{
|
|
|
|
|
Name = vrVirk.VirksomhedMetadata.NyesteNavn.Navn,
|
|
|
|
|
Address =
|
|
|
|
|
$"{vrVirk.VirksomhedMetadata.NyesteBeliggenhedsadresse.Vejnavn} {vrVirk.VirksomhedMetadata.NyesteBeliggenhedsadresse.HusnummerFra}",
|
|
|
|
|
CoName = vrVirk.VirksomhedMetadata.NyesteBeliggenhedsadresse.CoNavn,
|
|
|
|
|
ZipCode = vrVirk.VirksomhedMetadata.NyesteBeliggenhedsadresse.Postnummer.ToString(),
|
|
|
|
|
City = vrVirk.VirksomhedMetadata.NyesteBeliggenhedsadresse.PostDistrikt,
|
|
|
|
|
VatNumber = vrVirk.CvrNummer,
|
|
|
|
|
RequestDate = $"{DateTime.Now:yyyy-MM-dd}"
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
if (vrVirk.VirksomhedsStatus.Any())
|
|
|
|
|
foreach (var cs in vrVirk.VirksomhedsStatus.Select(vrStatus => new VatState
|
|
|
|
|
{
|
|
|
|
|
State = vrStatus.Status,
|
|
|
|
|
LastUpdate = vrStatus.SidstOpdateret,
|
|
|
|
|
TimeFrame = new TimeFrame
|
|
|
|
|
{
|
|
|
|
|
StartDate = vrStatus.Periode.GyldigFra,
|
2023-03-21 07:07:55 +01:00
|
|
|
|
EndDate = !string.IsNullOrWhiteSpace(vrStatus.Periode.GyldigTil)
|
|
|
|
|
? vrStatus.Periode.GyldigTil
|
|
|
|
|
: ""
|
2022-12-12 07:14:48 +01:00
|
|
|
|
}
|
|
|
|
|
}))
|
|
|
|
|
c.States.Add(cs);
|
|
|
|
|
else
|
|
|
|
|
c.States.Add(new VatState());
|
|
|
|
|
|
|
|
|
|
if (vrVirk.Livsforloeb.Any())
|
|
|
|
|
foreach (var lc in vrVirk.Livsforloeb.Select(
|
|
|
|
|
vrCourse => new LifeCycle
|
|
|
|
|
{
|
|
|
|
|
LastUpdate = vrCourse.SidstOpdateret,
|
|
|
|
|
TimeFrame = new TimeFrame
|
|
|
|
|
{
|
|
|
|
|
StartDate = vrCourse.Periode.GyldigFra,
|
2023-03-21 07:07:55 +01:00
|
|
|
|
EndDate = !string.IsNullOrWhiteSpace(vrCourse.Periode.GyldigTil)
|
|
|
|
|
? vrCourse.Periode.GyldigTil
|
|
|
|
|
: ""
|
2022-12-12 07:14:48 +01:00
|
|
|
|
}
|
|
|
|
|
}
|
2023-03-21 07:07:55 +01:00
|
|
|
|
))
|
2022-12-12 07:14:48 +01:00
|
|
|
|
c.LifeCycles.Add(lc);
|
|
|
|
|
else
|
|
|
|
|
c.LifeCycles.Add(new LifeCycle());
|
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(c.States[c.States.Count - 1].State)) return c;
|
|
|
|
|
|
|
|
|
|
var sc = c.States.Count - 1;
|
|
|
|
|
var lcc = c.LifeCycles.Count - 1;
|
|
|
|
|
c.States[sc].LastUpdate = c.LifeCycles[lcc].LastUpdate;
|
|
|
|
|
c.States[sc].TimeFrame.StartDate = c.LifeCycles[lcc].TimeFrame.StartDate;
|
|
|
|
|
c.States[sc].TimeFrame.EndDate = c.LifeCycles[lcc].TimeFrame.EndDate;
|
2023-03-21 07:07:55 +01:00
|
|
|
|
c.States[sc].State = string.IsNullOrWhiteSpace(c.LifeCycles[c.LifeCycles.Count - 1].TimeFrame.EndDate)
|
|
|
|
|
? "NORMAL"
|
|
|
|
|
: "LUKKET";
|
2022-12-12 07:14:48 +01:00
|
|
|
|
return c;
|
|
|
|
|
}
|
|
|
|
|
}
|
2022-02-21 18:08:26 +01:00
|
|
|
|
}
|