|
@@ -15,12 +15,26 @@ namespace Comal.Classes
|
|
|
//
|
|
|
// public override Filter<PurchaseOrderItem>? Filter => new Filter<PurchaseOrderItem>(c => c.DueDate).IsNotEqualTo(DateTime.MinValue);
|
|
|
//
|
|
|
- // public override Dictionary<Expression<Func<PurchaseOrderItem, object>>, Expression<Func<PurchaseOrder, object>>> Links =>
|
|
|
- // new Dictionary<Expression<Func<PurchaseOrderItem, object>>, Expression<Func<PurchaseOrder, object>>>()
|
|
|
+ // public override Dictionary<Expression<Func<PurchaseOrderItem, object?>>, Expression<Func<PurchaseOrder, object?>>> Links =>
|
|
|
+ // new Dictionary<Expression<Func<PurchaseOrderItem, object?>>, Expression<Func<PurchaseOrder, object?>>>()
|
|
|
// {
|
|
|
// { PurchaseOrderItem => PurchaseOrderItem.PurchaseOrderLink.ID, PurchaseOrder => PurchaseOrder.ID }
|
|
|
// };
|
|
|
// }
|
|
|
+ public class PurchaseOrderUnreceivedQtyAggregate : CoreAggregate<PurchaseOrder, PurchaseOrderItem, double>
|
|
|
+ {
|
|
|
+ public override Expression<Func<PurchaseOrderItem, double>> Aggregate => x => x.Qty;
|
|
|
+
|
|
|
+ public override AggregateCalculation Calculation => AggregateCalculation.Sum;
|
|
|
+
|
|
|
+ public override Dictionary<Expression<Func<PurchaseOrderItem, object?>>, Expression<Func<PurchaseOrder, object?>>> Links =>
|
|
|
+ new Dictionary<Expression<Func<PurchaseOrderItem, object?>>, Expression<Func<PurchaseOrder, object?>>>()
|
|
|
+ {
|
|
|
+ { PurchaseOrderItem => PurchaseOrderItem.PurchaseOrderLink.ID, PurchaseOrder => PurchaseOrder.ID }
|
|
|
+ };
|
|
|
+
|
|
|
+ public override Filter<PurchaseOrderItem>? Filter => new Filter<PurchaseOrderItem>(x => x.ReceivedDate).IsEqualTo(DateTime.MinValue);
|
|
|
+ }
|
|
|
|
|
|
public class PurchaseOrderExTax : CoreAggregate<PurchaseOrder, PurchaseOrderItem, double>
|
|
|
{
|
|
@@ -28,8 +42,8 @@ namespace Comal.Classes
|
|
|
|
|
|
public override AggregateCalculation Calculation => AggregateCalculation.Sum;
|
|
|
|
|
|
- public override Dictionary<Expression<Func<PurchaseOrderItem, object>>, Expression<Func<PurchaseOrder, object>>> Links =>
|
|
|
- new Dictionary<Expression<Func<PurchaseOrderItem, object>>, Expression<Func<PurchaseOrder, object>>>()
|
|
|
+ public override Dictionary<Expression<Func<PurchaseOrderItem, object?>>, Expression<Func<PurchaseOrder, object?>>> Links =>
|
|
|
+ new Dictionary<Expression<Func<PurchaseOrderItem, object?>>, Expression<Func<PurchaseOrder, object?>>>()
|
|
|
{
|
|
|
{ PurchaseOrderItem => PurchaseOrderItem.PurchaseOrderLink.ID, PurchaseOrder => PurchaseOrder.ID }
|
|
|
};
|
|
@@ -41,8 +55,8 @@ namespace Comal.Classes
|
|
|
|
|
|
public override AggregateCalculation Calculation => AggregateCalculation.Sum;
|
|
|
|
|
|
- public override Dictionary<Expression<Func<PurchaseOrderItem, object>>, Expression<Func<PurchaseOrder, object>>> Links =>
|
|
|
- new Dictionary<Expression<Func<PurchaseOrderItem, object>>, Expression<Func<PurchaseOrder, object>>>()
|
|
|
+ public override Dictionary<Expression<Func<PurchaseOrderItem, object?>>, Expression<Func<PurchaseOrder, object?>>> Links =>
|
|
|
+ new Dictionary<Expression<Func<PurchaseOrderItem, object?>>, Expression<Func<PurchaseOrder, object?>>>()
|
|
|
{
|
|
|
{ PurchaseOrderItem => PurchaseOrderItem.PurchaseOrderLink.ID, PurchaseOrder => PurchaseOrder.ID }
|
|
|
};
|
|
@@ -54,8 +68,8 @@ namespace Comal.Classes
|
|
|
|
|
|
public override AggregateCalculation Calculation => AggregateCalculation.Sum;
|
|
|
|
|
|
- public override Dictionary<Expression<Func<PurchaseOrderItem, object>>, Expression<Func<PurchaseOrder, object>>> Links =>
|
|
|
- new Dictionary<Expression<Func<PurchaseOrderItem, object>>, Expression<Func<PurchaseOrder, object>>>()
|
|
|
+ public override Dictionary<Expression<Func<PurchaseOrderItem, object?>>, Expression<Func<PurchaseOrder, object?>>> Links =>
|
|
|
+ new Dictionary<Expression<Func<PurchaseOrderItem, object?>>, Expression<Func<PurchaseOrder, object?>>>()
|
|
|
{
|
|
|
{ PurchaseOrderItem => PurchaseOrderItem.PurchaseOrderLink.ID, PurchaseOrder => PurchaseOrder.ID }
|
|
|
};
|
|
@@ -67,8 +81,8 @@ namespace Comal.Classes
|
|
|
|
|
|
public override AggregateCalculation Calculation => AggregateCalculation.Sum;
|
|
|
|
|
|
- public override Dictionary<Expression<Func<PurchaseOrderItem, object>>, Expression<Func<PurchaseOrder, object>>> Links =>
|
|
|
- new Dictionary<Expression<Func<PurchaseOrderItem, object>>, Expression<Func<PurchaseOrder, object>>>()
|
|
|
+ public override Dictionary<Expression<Func<PurchaseOrderItem, object?>>, Expression<Func<PurchaseOrder, object?>>> Links =>
|
|
|
+ new Dictionary<Expression<Func<PurchaseOrderItem, object?>>, Expression<Func<PurchaseOrder, object?>>>()
|
|
|
{
|
|
|
{ PurchaseOrderItem => PurchaseOrderItem.PurchaseOrderLink.ID, PurchaseOrder => PurchaseOrder.ID }
|
|
|
};
|
|
@@ -120,6 +134,10 @@ namespace Comal.Classes
|
|
|
[TimestampEditor]
|
|
|
[EditorSequence("Additional",4)]
|
|
|
public DateTime ClosedDate { get; set; }
|
|
|
+
|
|
|
+ [TimestampEditor]
|
|
|
+ [EditorSequence("Additional",5)]
|
|
|
+ public DateTime CancelledDate { get; set; }
|
|
|
|
|
|
[EditorSequence(10)]
|
|
|
[DoubleEditor(Editable = Editable.Hidden, Summary = Summary.Sum)]
|
|
@@ -141,6 +159,11 @@ namespace Comal.Classes
|
|
|
[Aggregate(typeof(PurchaseOrderBalance))]
|
|
|
public double Balance { get; set; }
|
|
|
|
|
|
+ [EditorSequence(13)]
|
|
|
+ [DoubleEditor(Editable = Editable.Hidden, Summary = Summary.Sum)]
|
|
|
+ [Aggregate(typeof(PurchaseOrderUnreceivedQtyAggregate))]
|
|
|
+ public double Unreceived { get; set; }
|
|
|
+
|
|
|
[EditorSequence(14)]
|
|
|
[EnumLookupEditor(typeof(PurchaseOrderStatus), Editable = Editable.Hidden)]
|
|
|
public PurchaseOrderStatus Status { get; set; }
|
|
@@ -201,6 +224,10 @@ namespace Comal.Classes
|
|
|
if (IssuedDate == DateTime.MinValue)
|
|
|
IssuedDate = DateTime.Now;
|
|
|
}
|
|
|
+ else if(status == PurchaseOrderStatus.Cancelled)
|
|
|
+ {
|
|
|
+ CancelledDate = DateTime.Now;
|
|
|
+ }
|
|
|
else
|
|
|
{
|
|
|
if (ClosedDate != DateTime.MinValue)
|
|
@@ -211,12 +238,12 @@ namespace Comal.Classes
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- var closed = name.Equals("ClosedDate") ? (DateTime)after : ClosedDate;
|
|
|
- var issued = name.Equals("IssuedDate") ? (DateTime)after : IssuedDate;
|
|
|
var status = PurchaseOrderStatus.Closed;
|
|
|
- if (closed != DateTime.MinValue)
|
|
|
+ if (CancelledDate != DateTime.MinValue)
|
|
|
+ status = PurchaseOrderStatus.Cancelled;
|
|
|
+ else if (ClosedDate != DateTime.MinValue)
|
|
|
status = PurchaseOrderStatus.Closed;
|
|
|
- else if (issued != DateTime.MinValue)
|
|
|
+ else if (IssuedDate != DateTime.MinValue)
|
|
|
status = PurchaseOrderStatus.Issued;
|
|
|
else
|
|
|
status = PurchaseOrderStatus.Draft;
|