Files
BeWoPlaner/Service/DCEntityMapper/SupportConceptCostBearerRelDC_CostBearer2SupportConcept.cs
Alexandra 06332aed88 Erweiterung Rechnungsübersicht um neue Bools,
neues Recht Rechnung nach Versand bearbeiten
2024-06-12 16:58:10 +02:00

109 lines
4.7 KiB
C#

using BeWo.Data.Access;
using BeWo.Data.Entities;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
namespace BeWo.Service.DCEntityMapper
{
public class SupportConceptCostBearerRelDC_CostBearer2SupportConcept : AbstractIDCEntityMapper<CostBearer2SupportConcept, SupportConceptCostBearerRelDC>
{
public override SupportConceptCostBearerRelDC MergeWithDC(CostBearer2SupportConcept pEntity, SupportConceptCostBearerRelDC pDataContract)
{
if (pEntity.CostBearer.Organisation != null)
{
pDataContract.CostBearer = MapperFactory.CompactOrganisationDC_Organisation.MapToNewDC(pEntity.CostBearer.Organisation);
}
pDataContract.CostBearer2SupportConceptOid = pEntity.Oid;
pDataContract.CostBearer2SupportConceptVersion = pEntity.Version;
pDataContract.Notice = pEntity.Notice;
pDataContract.Status = pEntity.Status;
pDataContract.SupportConcept = MapperFactory.CompactSupportConceptDC_SupportConcept.MapToNewDC(pEntity.SupportConcept);
// pDataContract.NoRelationExists = pEntity.ServiceRecords.Count == 0;
pDataContract.RequestedStartDate = pEntity.RequestedStartDate;
pDataContract.RequestedEndDate = pEntity.RequestedEndDate;
pDataContract.ApprovedStartDate = pEntity.ApprovedStartDate;
pDataContract.ApprovedEndDate = pEntity.ApprovedEndDate;
pDataContract.CustomerReferenceNumber = pEntity.CustomerReferenceNumber;
pDataContract.AuswahlBezeichnung = pEntity.AuswahlBezeichnung;
pDataContract.MonthlyPayment = pEntity.MonthlyPayment;
//pDataContract.ApprovedFLS = pEntity.ApprovedFLS;
//pDataContract.ApprovedFLSTotal = pEntity.ApprovedFLSTotal;
if (pEntity.CostBearerContactPerson != null)
pDataContract.CostBearerContactPerson = MapperFactory.CompactPersonDC_Person.MapToNewDC(pEntity.CostBearerContactPerson);
pDataContract.ApprovalPeriodList = MapperFactory.SupportConceptApprovalPeriodDC_SupportConceptApprovalPeriod.MapToNewDCs(pEntity.ApprovalPeriodList);
if (pDataContract.ApprovalPeriodList != null)
{
foreach (SupportConceptApprovalPeriodDC item in pDataContract.ApprovalPeriodList)
{
if (!item.StartDate.HasValue)
{
item.StartDate = pEntity.ApprovedStartDate.HasValue ? pEntity.ApprovedStartDate : pEntity.RequestedStartDate;
}
if (!item.EndDate.HasValue)
{
item.EndDate = pEntity.ApprovedEndDate.HasValue ? pEntity.ApprovedEndDate : pEntity.RequestedEndDate;
}
}
}
return pDataContract;
}
public override CostBearer2SupportConcept MergeWithEntity(SupportConceptCostBearerRelDC pDataContract, CostBearer2SupportConcept pEntity)
{
ConcurrencyCheck(pDataContract.CostBearer2SupportConceptVersion, pEntity);
pEntity.Notice = pDataContract.Notice;
pEntity.Oid = pDataContract.CostBearer2SupportConceptOid;
pEntity.Status = pDataContract.Status;
pEntity.RequestedStartDate = pDataContract.RequestedStartDate;
pEntity.RequestedEndDate = pDataContract.RequestedEndDate;
pEntity.ApprovedStartDate = pDataContract.ApprovedStartDate;
pEntity.ApprovedEndDate = pDataContract.ApprovedEndDate;
pEntity.CustomerReferenceNumber = pDataContract.CustomerReferenceNumber;
pEntity.AuswahlBezeichnung = pDataContract.AuswahlBezeichnung;
if (pDataContract.ApprovedStartDate.HasValue)
{
pEntity.Status = CostBearer2SupportConceptStatus.Approved;
}
else if (pDataContract.RequestedStartDate.HasValue)
{
pEntity.Status = CostBearer2SupportConceptStatus.Requested;
}
else
{
pEntity.Status = CostBearer2SupportConceptStatus.Created;
}
if (pEntity.CostBearer == null || (pDataContract.CostBearer.CostBearerOid.HasValue && pDataContract.CostBearer.CostBearerOid.Value != pEntity.CostBearer.Oid))
{
pEntity.CostBearer = DAOFactory.GenericDAO.LoadByID<CostBearer>(pDataContract.CostBearer.CostBearerOid.Value);
}
pEntity.CostBearerContactPerson = null;
if (pDataContract.CostBearerContactPerson != null)
pEntity.CostBearerContactPerson = DAOFactory.GenericDAO.LoadByID<Person>(pDataContract.CostBearerContactPerson.PersonOid);
//pEntity.ApprovedFLS = pDataContract.ApprovedFLS;
//pEntity.ApprovedFLSTotal = pDataContract.ApprovedFLSTotal;
pEntity.MonthlyPayment = pDataContract.MonthlyPayment;
MapperFactory.SupportConceptApprovalPeriodDC_SupportConceptApprovalPeriod.MergeWithEntitys(pDataContract.ApprovalPeriodList, pEntity.ApprovalPeriodList);
return pEntity;
}
protected override bool AreDCAndEntityEqual(SupportConceptCostBearerRelDC pDC, CostBearer2SupportConcept pEntity)
{
if (pDC.CostBearer2SupportConceptOid == null)
{
return false;
}
return pDC.CostBearer2SupportConceptOid == pEntity.Oid;
}
}
}