mirror of
https://github.com/stokebob/bnhtrade.git
synced 2026-03-19 14:37:16 +00:00
53 lines
1.8 KiB
C#
53 lines
1.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace bnhtrade.Core.Logic.Export
|
|
{
|
|
public class SalesInvoice
|
|
{
|
|
private string sqlConnectionString;
|
|
private Logic.Log.LogEvent log = new Log.LogEvent();
|
|
|
|
public SalesInvoice(string sqlConnectionString)
|
|
{
|
|
this.sqlConnectionString = sqlConnectionString;
|
|
}
|
|
|
|
public string GetNextTempInvoiceNumber()
|
|
{
|
|
var sequence = new Data.Database.Programmability.Sequence(sqlConnectionString);
|
|
return "_tmp" + sequence.GetNext("ExportTempInvoiceNumber").ToString("00000000");
|
|
}
|
|
|
|
public void AddTempInvoiceNumber(IEnumerable<Model.Account.IInvoice> invoiceList, bool overwriteExisting)
|
|
{
|
|
for (int i = 0; i < invoiceList.Count(); i++)
|
|
{
|
|
if (invoiceList.ElementAt(i).InvoiceNumber != null && overwriteExisting == false)
|
|
{
|
|
continue;
|
|
}
|
|
invoiceList.ElementAt(i).InvoiceNumber = GetNextTempInvoiceNumber();
|
|
}
|
|
}
|
|
|
|
public void SaveSalesInvoice(List<Model.Account.SalesInvoice> invoiceList)
|
|
{
|
|
// validate the list of invoices
|
|
var validateInvoice = new Logic.Validate.SalesInvoice();
|
|
validateInvoice.IsValidExportInvoice(invoiceList);
|
|
if (validateInvoice.IsValidResult == false)
|
|
{
|
|
log.LogError("Invalid Sales invoice(s) found. See extended info.", validateInvoice.ValidationResultListToString());
|
|
return;
|
|
}
|
|
validateInvoice = null;
|
|
|
|
// save to database
|
|
new Data.Database.Export.CreateSalesInvoice(sqlConnectionString).Execute(invoiceList);
|
|
}
|
|
}
|
|
} |