3ca8b29e04
Regression: PrintLocation added the compare methods back Breaking: Kot.Code is now integers Breaking: Kot Update is now via Stored Procedure to get DB Values Breaking: Reprints Insert is now via Stored Procedure to get DV Values Breaking: Voucher.BillID and KotID are now integers Breaking: Voucher Insert/Update is now via Stored Procedures to get DV Values also Dirty Checking for Voucher has been overwritten to set dirty for LastEditDate update Fix: Login forms simplified Feature: PrintLocation and Products are cached application wide.
44 lines
1.3 KiB
C#
44 lines
1.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using NHibernate;
|
|
using Tanshu.Accounts.Entities;
|
|
|
|
namespace Tanshu.Accounts.Repository
|
|
{
|
|
public class VoucherDirty : EmptyInterceptor
|
|
{
|
|
public override int[] FindDirty(object entity, object id, object[] currentState, object[] previousState, string[] propertyNames, NHibernate.Type.IType[] types)
|
|
{
|
|
var result = new List<int>();
|
|
|
|
// we do not care about other entities here
|
|
if (!(entity is Voucher))
|
|
{
|
|
return null;
|
|
}
|
|
|
|
var length = propertyNames.Length;
|
|
|
|
// iterate all properties
|
|
for (var i = 0; i < length; i++)
|
|
{
|
|
bool areEqual;
|
|
if (currentState[i] == null)
|
|
areEqual = previousState[i] == null;
|
|
else
|
|
areEqual = currentState[i].Equals(previousState[i]);
|
|
var isResettingProperty = propertyNames[i] == "LastEditDate";
|
|
|
|
if (!areEqual || isResettingProperty)
|
|
{
|
|
result.Add(i); // the index of "Code" property will be added always
|
|
}
|
|
}
|
|
|
|
return result.ToArray();
|
|
}
|
|
}
|
|
}
|