1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- using System.Linq;
- using Comal.Classes;
- using InABox.Core;
- using System;
- using System;
- using System;
- using InABox.Configuration;
- using InABox.Database;
- namespace Comal.Stores
- {
- internal class DeliveryItemStore : BaseStore<DeliveryItem>
- {
- protected override void BeforeSave(DeliveryItem entity)
- {
- base.BeforeSave(entity);
- if (!string.IsNullOrWhiteSpace(entity.SetoutLink.Number) & (entity.Sequence > 0))
- entity.Barcode = string.Format("{0}-{1:D3}", entity.SetoutLink.Number, entity.Sequence);
- }
- protected override void AfterSave(DeliveryItem entity)
- {
- base.AfterSave(entity);
- if (
- entity.ManufacturingPacketLink.IsValid()
- && entity.ShipmentLink.IsValid()
- && entity.ShipmentLink.HasOriginalValue(x => x.ID)
- )
- {
- var _settings = new GlobalConfiguration<ShipmentSettings>("", new DbConfigurationProvider<GlobalSettings>(this.UserID))
- .Load(false);
- if (_settings.CloseManufacturingPacketOnScan)
- {
- var filter =
- new Filter<ManufacturingPacket>(x => x.ID).IsEqualTo(entity.ManufacturingPacketLink.ID);
- filter.Ands.Add(new Filter<ManufacturingPacket>(x => x.Completed).IsEqualTo(DateTime.MinValue)
- .Or(x => x.Archived)
- .IsEqualTo(DateTime.MinValue));
- var row = Provider.Query(
- filter,
- Columns.None<ManufacturingPacket>().Add(x => x.ID, x => x.Completed, x => x.Archived)
- ).Rows.FirstOrDefault();
- if (row != null)
- {
- var packet = row.ToObject<ManufacturingPacket>();
- if (packet.Completed.IsEmpty())
- packet.Completed = DateTime.Now;
- if (packet.Archived.IsEmpty())
- packet.Archived = DateTime.Now;
- Provider.Save(packet);
- AuditTrail(packet, new[] { "Closing/Archiving Packet due to Shipment Allocation" });
- }
- }
- }
- }
- }
- }
|