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

84 lines
2.7 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 AwoIntegrationsGGmbH.Invoicing
{
internal class CustomInvoiceNumberGenerator : InvoiceNumberGenerator
{
public long oid_ = 1;
public override string GetNextInvoiceNumber(int increment, InvoiceBase invoiceBase)
{
string next = String.Empty;
if (invoiceBase.InvoiceTypeText != null && invoiceBase.InvoiceTypeText.Contains("StabiFam"))
{
oid_ = 2;
}
InvoiceNumberDC invoiceNumber = LoadInvoiceNumber(oid_);
if (invoiceNumber != null && invoiceNumber.Use)
{
next = ApplyPattern(invoiceNumber.Pattern, invoiceNumber.CurrentNumber + increment, invoiceBase);
}
return next;
}
protected override String ApplyPattern(String pattern, long number, InvoiceBase invoiceBase)
{
String id = String.Empty;
if (invoiceBase != null && !String.IsNullOrEmpty(invoiceBase.InvoiceId))
{
id = invoiceBase.InvoiceId;
}
return ApplyPatternWithId(pattern, number, id, invoiceBase);
}
protected String ApplyPatternWithId(String pattern, long number, String id, InvoiceBase invoiceBase)
{
string next = base.ApplyPatternWithId(pattern, number, id);
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;
}
}
}