mirror of
https://github.com/stokebob/bnhtrade.git
synced 2026-03-25 17:17:15 +00:00
57 lines
2.0 KiB
C#
57 lines
2.0 KiB
C#
using bnhtrade.Core.Data.Database.UnitOfWork;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace bnhtrade.Core.Logic.Account
|
|
{
|
|
public class InvoiceLineItemService : UnitOfWorkBase
|
|
{
|
|
private Logic.Log.LogEvent _log = new Logic.Log.LogEvent();
|
|
|
|
public InvoiceLineItemService()
|
|
{
|
|
}
|
|
|
|
internal InvoiceLineItemService(IUnitOfWork unitOfWork) : base(unitOfWork)
|
|
{
|
|
}
|
|
|
|
/// <summary>
|
|
/// Creates new 'default' item code entry. The item code and title are set, will require updating by user before use.
|
|
/// </summary>
|
|
/// <param name="itemCode">Item code string</param>
|
|
/// <returns></returns>
|
|
public Model.Account.InvoiceLineItem CreateNew(string itemCode)
|
|
{
|
|
return WithUnitOfWork(uow =>
|
|
{
|
|
uow.InvoiceRepository.CreateDefaultInvoiceLineItem(itemCode);
|
|
var item = uow.InvoiceRepository.GetInvoiceLineItem(null, new List<string> { itemCode });
|
|
if (item == null || item.Count == 0)
|
|
{
|
|
_log.LogError("InvoiceLineItemService.CreateNew", "Error creating new invoice line item in database for item code: " + itemCode);
|
|
throw new Exception("Error creating new invoice line item in database");
|
|
}
|
|
CommitIfOwned(uow);
|
|
return item[0];
|
|
});
|
|
}
|
|
|
|
public Dictionary<string, Model.Account.InvoiceLineItem> GetLineItems(List<string> itemCodes)
|
|
{
|
|
return WithUnitOfWork(uow =>
|
|
{
|
|
var dbResult = uow.InvoiceRepository.GetInvoiceLineItem(null, itemCodes);
|
|
var returnDict = new Dictionary<string, Model.Account.InvoiceLineItem>();
|
|
foreach (var item in dbResult)
|
|
{
|
|
returnDict.Add(item.Value.ItemCode, item.Value);
|
|
}
|
|
return returnDict;
|
|
});
|
|
}
|
|
}
|
|
} |