Files
BeWoPlaner/ReportImp/AsbRheinErftDuerenSBD/Invoicing/CustomInvoiceNumberGenerator.cs

64 lines
2.0 KiB
C#

using System;
using System.Collections.Generic;
using System.Diagnostics.Eventing.Reader;
using System.Linq;
using System.Text;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.Invoicing;
using BeWo.Service.Plugins;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.Services;
using DevExpress.XtraPrinting.BarCode;
namespace AsbRheinErftDuerenSBD.Invoicing
{
internal class CustomInvoiceNumberGenerator : InvoiceNumberGenerator
{
public long oid_ = 1;
public override string GetNextInvoiceNumber(int increment, InvoiceBase invoiceBase)
{
string next = String.Empty;
if (invoiceBase.InvoiceTypeText == "Abrechnung Aldenhoven")
oid_ = 2;
InvoiceNumberDC invoiceNumber = LoadInvoiceNumber(oid_);
if (invoiceNumber != null && invoiceNumber.Use)
{
next = ApplyPattern(invoiceNumber.Pattern, invoiceNumber.CurrentNumber + increment, invoiceBase);
}
return next;
}
private InvoiceNumberDC LoadInvoiceNumber(long oid)
{
var inr = DAOFactory.GenericDAO.LoadByID<InvoiceNumber>(oid_);
if (inr != null)
return MapperFactory.InvoiceNumberDC_InvoiceNumber.MapToNewDC(inr);
return null;
}
public override InvoiceNumberDC UpdateInvoiceNumber(InvoiceNumberDC dc)
{
var old = DAOFactory.GenericDAO.LoadByID<InvoiceNumber>(oid_);
MapperFactory.InvoiceNumberDC_InvoiceNumber.MergeWithEntity(dc, old);
DAOFactory.GenericDAO.Update(old);
return MapperFactory.InvoiceNumberDC_InvoiceNumber.MapToNewDC(old);
}
public override InvoiceNumberDC LoadInvoiceNumber()
{
var inr = DAOFactory.GenericDAO.LoadByID<InvoiceNumber>(oid_);
if (inr != null)
return MapperFactory.InvoiceNumberDC_InvoiceNumber.MapToNewDC(inr);
return null;
}
}
}