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

468 lines
31 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.Extensions;
namespace BeWo.Service.DCEntityMapper
{
public class SettlementDC_SettlementInvoice : AbstractIDCEntityMapper<SettlementInvoice, Settlement2DC>
{
public Settlement2DC CreateDCFromXMLData(SettlementInvoice pEntity)
{
SettlementDC dc = null;
if (pEntity.InvoiceBase != null && !String.IsNullOrEmpty(pEntity.InvoiceBase.XMLData))
{
dc = Utils.XMLDeserializeFromString<SettlementDC>(pEntity.InvoiceBase.XMLData);
}
if (dc == null)
{
dc = new SettlementDC();
}
Settlement2DC dc2 = new Settlement2DC();
MapDC2DC2(dc, dc2);
return dc2;
}
public override Settlement2DC MapToNewDC(SettlementInvoice pEntity)
{
Settlement2DC dc = this.CreateDCFromXMLData(pEntity);
return this.MergeWithDC(pEntity, dc);
}
public override List<Settlement2DC> MapToNewDCs(IEnumerable<SettlementInvoice> pEntitys)
{
List<Settlement2DC> lResult = new List<Settlement2DC>();
foreach (SettlementInvoice iEntity in pEntitys)
{
Settlement2DC dc = this.CreateDCFromXMLData(iEntity);
lResult.Add(this.MergeWithDC(iEntity, dc));
}
return lResult;
}
public override Settlement2DC MergeWithDC(SettlementInvoice pEntity, Settlement2DC pDataContract)
{
pDataContract.SettlementIvoiceOid = pEntity.Oid;
pDataContract.SettlementInvoiceVersion = pEntity.Version;
pDataContract.Claim = pEntity.Claim;
pDataContract.AmountAdvancedPayments = pEntity.AmountAdvancedPayments;
pDataContract.RateFactor = pEntity.AmountRateFactor;
pDataContract.AmountBillableTotal = pEntity.AmountBillableTotal;
pDataContract.RecordedBillableFLSNotBillableCustomerAbsent = pEntity.RecordedBillableFLSNotBillableCustomerAbsent ?? 0;
pDataContract.RecordedBillableFLSNotBillableOutOfApprovedSpan = pEntity.RecordedBillableFLSNotBillableOutOfApprovedSpan ?? 0;
pDataContract.RecordedBillableFLSNetto = pEntity.RecordedBillableFLSNetto ?? 0;
pDataContract.ApprovedFLS = pEntity.ApprovedFLS;
pDataContract.ApprovalNoticeDate = pEntity.ApprovalNoticeDate;
pDataContract.ErrorNotice = pEntity.ErrorNotice;
if (pEntity.InvoiceBase != null)
{
if (!String.IsNullOrEmpty(pEntity.InvoiceBase.XMLData))
{
}
pDataContract.DunningLetterCount = pEntity.InvoiceBase.DunningLetterCount;
pDataContract.InvoiceBaseOid = pEntity.InvoiceBase.Oid;
pDataContract.InvoiceBaseVersion = pEntity.InvoiceBase.Version;
pDataContract.SupportConceptOid = pEntity.InvoiceBase.SupportConceptOid;
pDataContract.IsPaid = pEntity.InvoiceBase.IsPaid;
pDataContract.IsSent = pEntity.InvoiceBase.IsSent;
pDataContract.IsReviewed = pEntity.InvoiceBase.IsReviewed;
pDataContract.IsExported = pEntity.InvoiceBase.IsExported;
pDataContract.PartialPayment = pEntity.InvoiceBase.PartialPayment;
if (pEntity.InvoiceBase.CostBearer2SupportConcept != null)
pDataContract.CostBearer2SupportConceptOid = pEntity.InvoiceBase.CostBearer2SupportConcept.Oid;
// pDataContract.SenderOrganisation = pEntity.InvoiceBase.SenderOrganisation;
pDataContract.SenderContactPersonLastName = pEntity.InvoiceBase.SenderLastName;
pDataContract.SenderContactPersonFirstName = pEntity.InvoiceBase.SenderFirstName;
pDataContract.SenderContactPersonDivision = pEntity.InvoiceBase.SenderDivision;
pDataContract.RecipientContactPerson = pEntity.InvoiceBase.RecipientPersonFirstName;
// pDataContract.RecipientPersonFirstName = pEntity.InvoiceBase.RecipientPersonFirstName;
pDataContract.RecipientOrganisation = pEntity.InvoiceBase.RecipientOrganisation;
pDataContract.RecipientDivision = pEntity.InvoiceBase.RecipientDivision;
pDataContract.InvoiceNumber = pEntity.InvoiceBase.InvoiceNumber;
pDataContract.InvoiceDate = pEntity.InvoiceBase.InvoiceDate;
pDataContract.CreatorLastName = pEntity.InvoiceBase.CreatorLastName;
pDataContract.CreatorFirstName = pEntity.InvoiceBase.CreatorFirstName;
pDataContract.AccountingPeriodEnd = pEntity.InvoiceBase.AccountingPeriodEnd;
pDataContract.AccountingPeriodStart = pEntity.InvoiceBase.AccountingPeriodStart;
pDataContract.CustomerReferenceNumber = pEntity.InvoiceBase.CustomerReferenceNumber;
pDataContract.Notice = pEntity.InvoiceBase.Notice;
pDataContract.AmountTotalAdvancedPaidWithNewHourlyRate = pEntity.AmountTotalAdvancedPaidWithNewHourlyRate;
pDataContract.AmountTotalAdvancedPaidWithNewHourlyRate = pEntity.AmountTotalAdvancedPaidWithNewHourlyRate;
pDataContract.HourlyRateOld = pEntity.HourlyRateOld;
pDataContract.AmountTotalAdvancedPaidWithOldHourlyRate = pEntity.AmountTotalAdvancedPaidWithOldHourlyRate;
pDataContract.HourlyRateNew = pEntity.HourlyRateNew;
pDataContract.HourlyRateNewStartDate = pEntity.HourlyRateNewStartDate;
pDataContract.HourlyRateOldEndDate = pEntity.HourlyRateOldEndDate;
pDataContract.ApprovedFLSWithOldHourlyRate = pEntity.ApprovedFLSWithOldHourlyRate ?? 0;
pDataContract.ApprovedFLSWithActualHourlyRate = pEntity.ApprovedFLSWithActualHourlyRate ?? 0;
pDataContract.AmountWithRateFactor = pEntity.AmountWithRateFactor ?? 0;
pDataContract.RecordedBillableFLSBrutto = pEntity.RecordedBillableFLSBrutto;
pDataContract.ServiceUnit = pEntity.InvoiceBase.CostBearer2SupportConcept.CostBearer.CostRatePeriods.MapToNewDCs()
.GetCostRatePeriodForDate(CostRatePeriodType.MinutesPerServiceUnit, pEntity.InvoiceBase.InvoiceDate.Value);
if (pDataContract.ServiceUnit == null)
{
pDataContract.ServiceUnit = new CostRatePeriodDC();
pDataContract.ServiceUnit.CostRateType = CostRatePeriodType.MinutesPerServiceUnit;
pDataContract.ServiceUnit.UnitName = "FLS";
pDataContract.ServiceUnit.CostRateValue = 60;
}
if (pEntity.InvoiceBase.RecipientAddress != null)
{
pDataContract.RecipientAddressOid = pEntity.InvoiceBase.RecipientAddress.Oid;
pDataContract.RecipientStreet = pEntity.InvoiceBase.RecipientAddress.Street;
pDataContract.RecipientTown = pEntity.InvoiceBase.RecipientAddress.Town;
pDataContract.RecipientPostCode = pEntity.InvoiceBase.RecipientAddress.PostalCode;
pDataContract.RecipientAddressVersion = pEntity.InvoiceBase.RecipientAddress.Version;
}
// In InvoiceBase.SenderContacts
//pDataContract.RecipientPostBox = pEntity.InvoiceBase.RecipientPostBox;
foreach (var iContact in pEntity.InvoiceBase.SenderContacts)
{
if (iContact.Type == ContactType.business_Fax)
{
pDataContract.SenderContactPersonFax = iContact.Value;
}
if (iContact.Type == ContactType.business_Phone)
{
pDataContract.SenderContactPersonPhone = iContact.Value;
}
if (iContact.Type == ContactType.business_Mail)
{
pDataContract.SenderContactPersonMail = iContact.Value;
}
}
}
if (pEntity.InvoiceBase != null)
{
pDataContract.InvoiceItems = MapperFactory.InvoiceItemDC_InvoiceItem.MapToNewDCs(pEntity.InvoiceBase.InvoiceItems);
pDataContract.InvoiceItems.Sort((x, y) => x.ItemPeriodStart.Value.CompareTo(y.ItemPeriodStart.Value));
}
return pDataContract;
}
public override SettlementInvoice MergeWithEntity(Settlement2DC pDataContract, SettlementInvoice pEntity)
{
this.ConcurrencyCheck(pDataContract.SettlementInvoiceVersion, pEntity);
pEntity.Oid = pDataContract.SettlementIvoiceOid;
pEntity.Claim = pDataContract.Claim;
pEntity.AmountAdvancedPayments = pDataContract.AmountAdvancedPayments;
pEntity.AmountRateFactor = pDataContract.RateFactor;
pEntity.AmountBillableTotal = pDataContract.AmountBillableTotal;
pEntity.RecordedBillableFLSNotBillableCustomerAbsent = pDataContract.RecordedBillableFLSNotBillableCustomerAbsent;
pEntity.RecordedBillableFLSNotBillableOutOfApprovedSpan = pDataContract.RecordedBillableFLSNotBillableOutOfApprovedSpan;
pEntity.RecordedBillableFLSNetto = pDataContract.RecordedBillableFLSNetto;
pEntity.ApprovedFLS = pDataContract.ApprovedFLS;
pEntity.ApprovalNoticeDate = pDataContract.ApprovalNoticeDate;
pEntity.AmountTotalAdvancedPaidWithNewHourlyRate = pDataContract.AmountTotalAdvancedPaidWithNewHourlyRate;
pEntity.AmountTotalAdvancedPaidWithNewHourlyRate = pDataContract.AmountTotalAdvancedPaidWithNewHourlyRate;
pEntity.HourlyRateOld = pDataContract.HourlyRateOld;
pEntity.AmountTotalAdvancedPaidWithOldHourlyRate = pDataContract.AmountTotalAdvancedPaidWithOldHourlyRate;
pEntity.HourlyRateNew = pDataContract.HourlyRateNew;
pEntity.HourlyRateNewStartDate = pDataContract.HourlyRateNewStartDate;
pEntity.HourlyRateOldEndDate = pDataContract.HourlyRateOldEndDate;
pEntity.ApprovedFLSWithOldHourlyRate = pDataContract.ApprovedFLSWithOldHourlyRate;
pEntity.ApprovedFLSWithActualHourlyRate = pDataContract.ApprovedFLSWithActualHourlyRate;
pEntity.AmountWithRateFactor = pDataContract.AmountWithRateFactor;
pEntity.RecordedBillableFLSBrutto = pDataContract.RecordedBillableFLSBrutto;
pEntity.ErrorNotice = pDataContract.ErrorNotice;
if (pEntity.InvoiceBase == null)
{
pEntity.InvoiceBase = new InvoiceBase {Type = InvoiceType.Settlement};
}
ConcurrencyCheck(pDataContract.InvoiceBaseVersion, pEntity.InvoiceBase);
pEntity.InvoiceBase.Oid = pDataContract.InvoiceBaseOid;
pEntity.InvoiceBase.DunningLetterCount = pDataContract.DunningLetterCount;
if (pDataContract.CostBearer2SupportConceptOid.HasValue)
{
pEntity.InvoiceBase.CostBearer2SupportConcept = DAOFactory.GenericDAO.LoadByID<CostBearer2SupportConcept>(pDataContract.CostBearer2SupportConceptOid.Value);
}
pEntity.InvoiceBase.SenderLastName = pDataContract.SenderContactPersonLastName;
pEntity.InvoiceBase.SenderFirstName = pDataContract.SenderContactPersonFirstName;
pEntity.InvoiceBase.SenderDivision = pDataContract.SenderContactPersonDivision;
pEntity.InvoiceBase.IsPaid = pDataContract.IsPaid;
pEntity.InvoiceBase.IsSent = pDataContract.IsSent;
pEntity.InvoiceBase.IsReviewed = pDataContract.IsReviewed;
pEntity.InvoiceBase.IsExported = pDataContract.IsExported;
pEntity.InvoiceBase.PartialPayment = pDataContract.PartialPayment;
pEntity.InvoiceBase.RecipientPersonFirstName = pDataContract.RecipientContactPerson;
// pDataContract.RecipientrePersonLastName = pEntity.InvoiceBase.RecipientPersonLastName;
// pDataContract.RecipientPersonFirstName = pEntity.InvoiceBase.RecipientPersonFirstName;
pEntity.InvoiceBase.SupportConceptOid = pDataContract.SupportConceptOid;
pEntity.InvoiceBase.RecipientOrganisation = pDataContract.RecipientOrganisation;
//pEntity.InvoiceBase.RecipientPostBox = pDataContract.RecipientPostBox;
if (!String.IsNullOrEmpty(pDataContract.RecipientPostBox))
{
var pobox = pEntity.InvoiceBase.RecipientContacts.FirstOrDefault(f => f.Type.Equals(ContactType.business_POBox));
if (pobox != null)
{
pobox.Value = pDataContract.RecipientPostBox;
}
else
{
pEntity.InvoiceBase.RecipientContacts.Add(new Contact {Type = ContactType.business_POBox, Value = pDataContract.RecipientPostBox});
}
}
pEntity.InvoiceBase.RecipientDivision = pDataContract.RecipientDivision;
pEntity.InvoiceBase.InvoiceNumber = pDataContract.InvoiceNumber;
pEntity.InvoiceBase.InvoiceDate = pDataContract.InvoiceDate;
pEntity.InvoiceBase.CreatorLastName = pDataContract.CreatorLastName;
pEntity.InvoiceBase.CreatorFirstName = pDataContract.CreatorFirstName;
pEntity.InvoiceBase.AccountingPeriodEnd = pDataContract.AccountingPeriodEnd;
pEntity.InvoiceBase.AccountingPeriodStart = pDataContract.AccountingPeriodStart;
pEntity.InvoiceBase.CustomerReferenceNumber = pDataContract.CustomerReferenceNumber;
pEntity.InvoiceBase.Notice = pDataContract.Notice;
if (pDataContract.ContainsRecipientAddressData())
{
if (pEntity.InvoiceBase.RecipientAddress == null)
{
pEntity.InvoiceBase.RecipientAddress = new Address();
}
ConcurrencyCheck(pDataContract.RecipientAddressVersion, pEntity.InvoiceBase.RecipientAddress);
pEntity.InvoiceBase.RecipientAddress.Oid = pDataContract.RecipientAddressOid;
pEntity.InvoiceBase.RecipientAddress.Street = pDataContract.RecipientStreet;
pEntity.InvoiceBase.RecipientAddress.Town = pDataContract.RecipientTown;
pEntity.InvoiceBase.RecipientAddress.PostalCode = pDataContract.RecipientPostCode;
}
else if (pEntity.InvoiceBase.RecipientAddress != null)
{
// all-delete-orphan wird von NHibernate (noch) nicht unterstützt für many-to-one
var lInvoiceAddress = pEntity.InvoiceBase.RecipientAddress;
pEntity.InvoiceBase.RecipientAddress = null;
DAOFactory.GenericDAO.Delete(lInvoiceAddress);
}
CommitSenderContact(pDataContract.SenderContactPersonFax, ContactType.business_Fax, pDataContract, pEntity);
CommitSenderContact(pDataContract.SenderContactPersonPhone, ContactType.business_Phone, pDataContract, pEntity);
CommitSenderContact(pDataContract.SenderContactPersonMail, ContactType.business_Mail, pDataContract, pEntity);
var dcToSerialize = new SettlementDC();
MapDC22DC(pDataContract, dcToSerialize);
pEntity.InvoiceBase.XMLData = Utils.XMLSerializeToString(dcToSerialize);
MapperFactory.InvoiceItemDC_InvoiceItem.MergeWithEntitys(pDataContract.InvoiceItems, pEntity.InvoiceBase.InvoiceItems);
return pEntity;
}
private static void MapDC22DC(Settlement2DC source, SettlementDC target)
{
target.AccountingPeriodEnd = source.AccountingPeriodEnd;
target.AccountingPeriodStart = source.AccountingPeriodStart;
target.AmountAdvancedPayments = source.AmountAdvancedPayments;
target.AmountRecordedBillableFLS = source.AmountBillableTotal;
target.AmountTotalAdvancedPaidWithHourlyRate3 = source.AmountTotalAdvancedPaidWithHourlyRate3;
target.AmountTotalAdvancedPaidWithNewHourlyRate = source.AmountTotalAdvancedPaidWithNewHourlyRate;
target.AmountTotalAdvancedPaidWithOldHourlyRate = source.AmountTotalAdvancedPaidWithOldHourlyRate;
target.AmountTotalWithHourlyRate3 = source.AmountTotalWithHourlyRate3;
target.AmountWithRateFactor = source.AmountWithRateFactor;
target.ApprovalNoticeDate = source.ApprovalNoticeDate;
target.ApprovedFLS = source.ApprovedFLS;
target.ApprovedFLSWeekly = source.ApprovedFLSWeekly;
target.ApprovedFLSWithActualHourlyRate = source.ApprovedFLSWithActualHourlyRate;
target.ApprovedFLSWithHourlyRate3 = source.ApprovedFLSWithHourlyRate3;
target.ApprovedFLSWithOldHourlyRate = source.ApprovedFLSWithOldHourlyRate;
target.Claim = source.Claim;
target.CostBearer2SupportConceptOid = source.CostBearer2SupportConceptOid;
target.CreatorFirstName = source.CreatorFirstName;
target.CreatorLastName = source.CreatorLastName;
target.CustomerReferenceNumber = source.CustomerReferenceNumber;
target.DifferentHourlyRateCount = source.DifferentHourlyRateCount;
target.DunningLetterCount = source.DunningLetterCount;
target.EquityContribution = source.EquityContribution;
target.HourlyRate3 = source.HourlyRate3;
target.HourlyRateEndDate3 = source.HourlyRateEndDate3;
target.HourlyRateNew = source.HourlyRateNew;
target.HourlyRateNewStartDate = source.HourlyRateNewStartDate;
target.HourlyRateOld = source.HourlyRateOld;
target.HourlyRateOldEndDate = source.HourlyRateOldEndDate;
target.HourlyRateOldStartDate = source.HourlyRateOldStartDate;
target.InvoiceBaseOid = source.InvoiceBaseOid;
target.InvoiceBaseVersion = source.InvoiceBaseVersion;
target.InvoiceDate = source.InvoiceDate;
target.InvoiceNumber = source.InvoiceNumber;
target.IsPaid = source.IsPaid;
target.IsSent = source.IsSent;
target.MaxAmountAllowed = source.MaxAmountAllowed;
target.Notice = source.Notice;
target.RateFactor = source.RateFactor;
target.RecipientAddressOid = source.RecipientAddressOid;
target.RecipientAddressVersion = source.RecipientAddressVersion;
target.RecipientContactPerson = source.RecipientContactPerson;
target.RecipientDivision = source.RecipientDivision;
target.RecipientOrganisation = source.RecipientOrganisation;
target.RecipientPostCode = source.RecipientPostCode;
target.RecipientPostBox = source.RecipientPostBox;
target.RecipientStreet = source.RecipientStreet;
target.RecipientTown = source.RecipientTown;
target.RecordedBillableFLSBrutto = source.RecordedBillableFLSBrutto;
target.RecordedBillableFLSNetto = source.RecordedBillableFLSNetto;
target.RecordedBillableFLSNotBillableCustomerAbsent = source.RecordedBillableFLSNotBillableCustomerAbsent;
target.RecordedBillableFLSNotBillableOutOfApprovedSpan = source.RecordedBillableFLSNotBillableOutOfApprovedSpan;
target.SenderContactPersonDivision = source.SenderContactPersonDivision;
target.SenderContactPersonFax = source.SenderContactPersonFax;
target.SenderContactPersonFirstName = source.SenderContactPersonFirstName;
target.SenderContactPersonLastName = source.SenderContactPersonLastName;
target.SenderContactPersonMail = source.SenderContactPersonMail;
target.SenderContactPersonPhone = source.SenderContactPersonPhone;
target.ServiceUnit = source.ServiceUnit;
target.SettlementInvoiceVersion = source.SettlementInvoiceVersion;
target.SettlementIvoiceOid = source.SettlementIvoiceOid;
target.SupportConceptOid = source.SupportConceptOid;
target.TotalAmount = source.TotalAmount;
target.WeeksWithHourlyRate3 = source.WeeksWithHourlyRate3;
target.WeeksWithNewHourlyRate = source.WeeksWithNewHourlyRate;
target.WeeksWithOldHourlyRate = source.WeeksWithOldHourlyRate;
target.HasGroupRecords = source.HasGroupRecords;
}
private static void MapDC2DC2(SettlementDC source, Settlement2DC target)
{
target.AccountingPeriodEnd = source.AccountingPeriodEnd;
target.AccountingPeriodStart = source.AccountingPeriodStart;
target.AmountAdvancedPayments = source.AmountAdvancedPayments;
target.AmountBillableTotal = source.AmountRecordedBillableFLS;
target.AmountTotalAdvancedPaidWithHourlyRate3 = source.AmountTotalAdvancedPaidWithHourlyRate3;
target.AmountTotalAdvancedPaidWithNewHourlyRate = source.AmountTotalAdvancedPaidWithNewHourlyRate;
target.AmountTotalAdvancedPaidWithOldHourlyRate = source.AmountTotalAdvancedPaidWithOldHourlyRate;
target.AmountTotalWithHourlyRate3 = source.AmountTotalWithHourlyRate3;
target.AmountWithRateFactor = source.AmountWithRateFactor;
target.ApprovalNoticeDate = source.ApprovalNoticeDate;
target.ApprovedFLS = source.ApprovedFLS;
target.ApprovedFLSWeekly = source.ApprovedFLSWeekly;
target.ApprovedFLSWithActualHourlyRate = source.ApprovedFLSWithActualHourlyRate;
target.ApprovedFLSWithHourlyRate3 = source.ApprovedFLSWithHourlyRate3;
target.ApprovedFLSWithOldHourlyRate = source.ApprovedFLSWithOldHourlyRate;
target.Claim = source.Claim;
target.CostBearer2SupportConceptOid = source.CostBearer2SupportConceptOid;
target.CreatorFirstName = source.CreatorFirstName;
target.CreatorLastName = source.CreatorLastName;
target.CustomerReferenceNumber = source.CustomerReferenceNumber;
target.DifferentHourlyRateCount = source.DifferentHourlyRateCount;
target.DunningLetterCount = source.DunningLetterCount;
target.EquityContribution = source.EquityContribution;
target.HourlyRate3 = source.HourlyRate3;
target.HourlyRateEndDate3 = source.HourlyRateEndDate3;
target.HourlyRateNew = source.HourlyRateNew;
target.HourlyRateNewStartDate = source.HourlyRateNewStartDate;
target.HourlyRateOld = source.HourlyRateOld;
target.HourlyRateOldEndDate = source.HourlyRateOldEndDate;
target.HourlyRateOldStartDate = source.HourlyRateOldStartDate;
target.InvoiceBaseOid = source.InvoiceBaseOid;
target.InvoiceBaseVersion = source.InvoiceBaseVersion;
target.InvoiceDate = source.InvoiceDate;
target.InvoiceNumber = source.InvoiceNumber;
target.IsPaid = source.IsPaid;
target.IsSent = source.IsSent;
target.MaxAmountAllowed = source.MaxAmountAllowed;
target.Notice = source.Notice;
target.RateFactor = source.RateFactor;
target.RecipientAddressOid = source.RecipientAddressOid;
target.RecipientAddressVersion = source.RecipientAddressVersion;
target.RecipientContactPerson = source.RecipientContactPerson;
target.RecipientDivision = source.RecipientDivision;
target.RecipientOrganisation = source.RecipientOrganisation;
target.RecipientPostBox = source.RecipientPostBox;
target.RecipientPostCode = source.RecipientPostCode;
target.RecipientStreet = source.RecipientStreet;
target.RecipientTown = source.RecipientTown;
target.RecordedBillableFLSBrutto = source.RecordedBillableFLSBrutto;
target.RecordedBillableFLSNetto = source.RecordedBillableFLSNetto;
target.RecordedBillableFLSNotBillableCustomerAbsent = source.RecordedBillableFLSNotBillableCustomerAbsent;
target.RecordedBillableFLSNotBillableOutOfApprovedSpan = source.RecordedBillableFLSNotBillableOutOfApprovedSpan;
target.SenderContactPersonDivision = source.SenderContactPersonDivision;
target.SenderContactPersonFax = source.SenderContactPersonFax;
target.SenderContactPersonFirstName = source.SenderContactPersonFirstName;
target.SenderContactPersonLastName = source.SenderContactPersonLastName;
target.SenderContactPersonMail = source.SenderContactPersonMail;
target.SenderContactPersonPhone = source.SenderContactPersonPhone;
target.ServiceUnit = source.ServiceUnit;
target.SettlementInvoiceVersion = source.SettlementInvoiceVersion;
target.SettlementIvoiceOid = source.SettlementIvoiceOid;
target.SupportConceptOid = source.SupportConceptOid;
target.TotalAmount = source.TotalAmount;
target.WeeksWithHourlyRate3 = source.WeeksWithHourlyRate3;
target.WeeksWithNewHourlyRate = source.WeeksWithNewHourlyRate;
target.WeeksWithOldHourlyRate = source.WeeksWithOldHourlyRate;
target.HasGroupRecords = source.HasGroupRecords;
}
protected override bool AreDCAndEntityEqual(Settlement2DC pDC, SettlementInvoice pEntity)
{
if (pDC.SettlementIvoiceOid == null)
{
return false;
}
return pDC.SettlementIvoiceOid == pEntity.Oid;
}
private static void CommitSenderContact(string pValue, ContactType pContactType, Settlement2DC pDC, SettlementInvoice pEntity)
{
if (pEntity.InvoiceBase.SenderContacts == null)
{
pEntity.InvoiceBase.SenderContacts = new List<Contact>();
}
var lContact = pEntity.InvoiceBase.SenderContacts.SingleOrDefault(con => con.Type == pContactType);
if (string.IsNullOrEmpty(pValue) && lContact != null)
{
pEntity.InvoiceBase.SenderContacts.Remove(lContact);
}
else if (!string.IsNullOrEmpty(pValue))
{
if (lContact == null)
{
lContact = new Contact { Type = pContactType };
pEntity.InvoiceBase.SenderContacts.Add(lContact);
}
lContact.Value = pValue;
}
}
}
}