Files
BeWoPlaner/ReportImp/OwnSoftTestSchmitzi/Service/CustomAccountingService.cs

61 lines
1.8 KiB
C#

using System;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.Plugins;
using BS.Shared.DataContracts;
namespace OwnSoftTestSchmitzi.Service
{
public class CustomAccountingService : AccountingService
{
public override ServiceInvoice ErstelleStornoRechnung(InvoiceBaseDC ibdc)
{
var i = base.ErstelleStornoRechnung(ibdc);
SetzeRechnungsnummer(i.InvoiceBase, ibdc);
i.InvoiceBase.StornoInvoiceBaseOid = ibdc.InvoiceBaseOid.Value;
DAOFactory.GenericDAO.Insert(i);
var original = DAOFactory.GenericDAO.LoadByID<InvoiceBase>(ibdc.InvoiceBaseOid.Value);
original.StornoInvoiceBaseOid = i.Oid;
DAOFactory.GenericDAO.Update(original);
return i;
}
public override InvoiceBase ErstelleStornoAllgemeineRechnung(InvoiceBaseDC ibdc)
{
var i = base.ErstelleStornoAllgemeineRechnung(ibdc);
SetzeRechnungsnummer(i, ibdc);
i.StornoInvoiceBaseOid = ibdc.InvoiceBaseOid.Value;
DAOFactory.GenericDAO.Insert(i);
var original = DAOFactory.GenericDAO.LoadByID<InvoiceBase>(ibdc.InvoiceBaseOid.Value);
original.StornoInvoiceBaseOid = i.Oid;
DAOFactory.GenericDAO.Update(original);
return i;
}
private void SetzeRechnungsnummer(InvoiceBase neu, InvoiceBaseDC alt)
{
if (!String.IsNullOrEmpty(neu.InvoiceNumber))
{
neu.InvoiceNumber = alt.InvoiceNumber + " Storno";
}
if (String.IsNullOrEmpty(neu.InvoiceTypeText))
{
neu.InvoiceTypeText = "Storno";
}
else
{
neu.InvoiceTypeText += " Storno";
}
}
}
}