DeliveryItemStore.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using System.Linq;
  2. using Comal.Classes;
  3. using InABox.Core;
  4. using System;
  5. using System;
  6. using System;
  7. using InABox.Configuration;
  8. using InABox.Database;
  9. namespace Comal.Stores
  10. {
  11. internal class DeliveryItemStore : BaseStore<DeliveryItem>
  12. {
  13. protected override void BeforeSave(DeliveryItem entity)
  14. {
  15. base.BeforeSave(entity);
  16. if (!string.IsNullOrWhiteSpace(entity.SetoutLink.Number) & (entity.Sequence > 0))
  17. entity.Barcode = string.Format("{0}-{1:D3}", entity.SetoutLink.Number, entity.Sequence);
  18. }
  19. protected override void AfterSave(DeliveryItem entity)
  20. {
  21. base.AfterSave(entity);
  22. if (
  23. entity.ManufacturingPacketLink.IsValid()
  24. && entity.ShipmentLink.IsValid()
  25. && entity.ShipmentLink.HasOriginalValue(x => x.ID)
  26. )
  27. {
  28. var _settings = new GlobalConfiguration<ShipmentSettings>("", new DbConfigurationProvider<GlobalSettings>(this.UserID))
  29. .Load(false);
  30. if (_settings.CloseManufacturingPacketOnScan)
  31. {
  32. var filter =
  33. new Filter<ManufacturingPacket>(x => x.ID).IsEqualTo(entity.ManufacturingPacketLink.ID);
  34. filter.Ands.Add(new Filter<ManufacturingPacket>(x => x.Completed).IsEqualTo(DateTime.MinValue)
  35. .Or(x => x.Archived)
  36. .IsEqualTo(DateTime.MinValue));
  37. var row = Provider.Query(
  38. filter,
  39. Columns.None<ManufacturingPacket>().Add(x => x.ID, x => x.Completed, x => x.Archived)
  40. ).Rows.FirstOrDefault();
  41. if (row != null)
  42. {
  43. var packet = row.ToObject<ManufacturingPacket>();
  44. if (packet.Completed.IsEmpty())
  45. packet.Completed = DateTime.Now;
  46. if (packet.Archived.IsEmpty())
  47. packet.Archived = DateTime.Now;
  48. Provider.Save(packet);
  49. AuditTrail(packet, new[] { "Closing/Archiving Packet due to Shipment Allocation" });
  50. }
  51. }
  52. }
  53. }
  54. }
  55. }