123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- using System;
- using System.Collections.Generic;
- using System.Linq.Expressions;
- using InABox.Core;
- namespace Comal.Classes
- {
- public class ConsignmentLastReceived : CoreAggregate<Consignment, PurchaseOrderItem, DateTime>
- {
- public override Expression<Func<PurchaseOrderItem, DateTime>> Aggregate => x => x.ReceivedDate;
- public override AggregateCalculation Calculation => AggregateCalculation.Maximum;
- public override Dictionary<Expression<Func<PurchaseOrderItem, object>>, Expression<Func<Consignment, object>>> Links =>
- new Dictionary<Expression<Func<PurchaseOrderItem, object>>, Expression<Func<Consignment, object>>>()
- {
- { PurchaseOrderItem => PurchaseOrderItem.Consignment.ID, Consignment => Consignment.ID }
- };
- }
- public class ConsignmentUnreceivedItems : CoreAggregate<Consignment, PurchaseOrderItem, Guid>
- {
- public override Expression<Func<PurchaseOrderItem, Guid>> Aggregate => x => x.ID;
- public override AggregateCalculation Calculation => AggregateCalculation.Count;
- public override Filter<PurchaseOrderItem> Filter => new Filter<PurchaseOrderItem>(x => x.ReceivedDate).IsEqualTo(DateTime.MinValue);
- public override Dictionary<Expression<Func<PurchaseOrderItem, object>>, Expression<Func<Consignment, object>>> Links =>
- new Dictionary<Expression<Func<PurchaseOrderItem, object>>, Expression<Func<Consignment, object>>>()
- {
- { PurchaseOrderItem => PurchaseOrderItem.Consignment.ID, Consignment => Consignment.ID }
- };
- }
- //public class ConsignmentClosed : ICondition<Consignment, int, DateTime>
- //{
- // public static readonly DateTime DefaultDate = DateTime.MinValue;
- // public Expression<Func<Consignment, int>> Left => x => x.UnreceivedItems;
- // public Condition Condition => Condition.Equals;
- // public Expression<Func<Consignment, int>> Right => x => 0;
- // public Expression<Func<Consignment, DateTime>> True => x => x.LastReceived;
- // public Expression<Func<Consignment, DateTime>> False => x => DateTime.MinValue;
- //}
- [UserTracking(typeof(Delivery))]
- public class Consignment : Entity, IRemotable, IPersistent, ILicense<LogisticsLicense>
- {
- [TextBoxEditor]
- [EditorSequence(0)]
- public string Number { get; set; }
- [EditorSequence(1)]
- public ConsignmentTypeLink Type { get; set; }
- [EditorSequence(2)]
- public PurchaseOrderCategoryLink Category { get; set; }
- [EditorSequence(3)]
- public SupplierLink Supplier { get; set; }
- [TextBoxEditor]
- [EditorSequence(4)]
- public string Origin { get; set; }
- [TextBoxEditor]
- [EditorSequence(5)]
- public string Description { get; set; }
- [DateEditor]
- [Caption("Est. Shipping Date")]
- [EditorSequence(6)]
- public DateTime EstimatedDispatchDate { get; set; }
- [DateEditor]
- [Caption("Act. Shipping Date")]
- [EditorSequence(7)]
- public DateTime ActualDispatchDate { get; set; }
- [DateEditor]
- [Caption("Est. Port Arrival")]
- [EditorSequence(8)]
- public DateTime EstimatedPortArrival { get; set; }
- [DateEditor]
- [Caption("Act. Port Arrival")]
- [EditorSequence(9)]
- public DateTime ActualPortArrival { get; set; }
- [NullEditor]
- [EditorSequence(10)]
- public DateTime EstimatedDepotArrival { get; set; }
- [NullEditor]
- [EditorSequence(11)]
- public DateTime ActualDepotArrival { get; set; }
- [DateEditor]
- [Caption("Est. Warehouse Arrival")]
- [EditorSequence(12)]
- public DateTime EstimatedWarehouseArrival { get; set; }
- [DateEditor]
- [Caption("Act. Warehouse Arrival")]
- [EditorSequence(13)]
- public DateTime ActualWarehouseArrival { get; set; }
- [TextBoxEditor]
- [EditorSequence(14)]
- public string Status { get; set; }
-
- [EditorSequence(14)]
- public PDFDocumentLink BillOfLading { get; set; }
- [TimestampEditor(Editable = Editable.Disabled)]
- [EditorSequence(15)]
- [Aggregate(typeof(ConsignmentLastReceived))]
- public DateTime LastReceived { get; set; }
- [IntegerEditor(Visible = Visible.Optional, Editable = Editable.Hidden)]
- [Aggregate(typeof(ConsignmentUnreceivedItems))]
- public int UnreceivedItems { get; set; }
- [TimestampEditor] //(Editable = Editable.Disabled)]
- [EditorSequence(16)]
- //[Condition(typeof(ConsignmentClosed))]
- public DateTime Closed { get; set; }
- [NullEditor]
- [EditorSequence(17)]
- public EmployeeLink Employee { get; set; }
- }
- }
|