public void BaseOnInit(ObjectOnInit method) { if (this.ExistProduct && !this.ExistInvoiceItemType) { this.InvoiceItemType = new InvoiceItemTypes(this.Strategy.Session).ProductItem; } }
public void BaseOnInit(ObjectOnInit method) { this.OrderDate = this.Session().Now(); this.PurchaseOrderState ??= new PurchaseOrderStates(this.Strategy.Session).Created; this.PurchaseOrderShipmentState ??= new PurchaseOrderShipmentStates(this.Strategy.Session).NotReceived; this.PurchaseOrderPaymentState ??= new PurchaseOrderPaymentStates(this.Strategy.Session).NotPaid; if (!this.ExistEntryDate) { this.EntryDate = this.Session().Now(); } if (!this.ExistOrderedBy) { var internalOrganisations = new Organisations(this.Strategy.Session).InternalOrganisations(); if (internalOrganisations.Count() == 1) { this.OrderedBy = internalOrganisations.First(); } } if (!this.ExistCurrency) { this.Currency = this.OrderedBy?.PreferredCurrency; } if (!this.ExistStoredInFacility && this.OrderedBy?.StoresWhereInternalOrganisation.Count == 1) { this.StoredInFacility = this.OrderedBy.StoresWhereInternalOrganisation.Single().DefaultFacility; } }
public void CustomOnInit(ObjectOnInit method) { if (this.ExistOrganisationWhereManager) { this.OrganisationWhereManager.AddEmployee(this); } }
public void BaseOnInit(ObjectOnInit method) { if (!this.ExistCurrency) { this.Currency = this.BilledTo?.PreferredCurrency; } }
public void BaseOnInit(ObjectOnInit method) { if (!this.ExistPartWhereSerialisedItem && this.ExistCreateForPart) { this.CreateForPart.AddSerialisedItem(this); this.RemoveCreateForPart(); } }
public void BaseOnInit(ObjectOnInit method) { var internalOrganisations = new Organisations(this.Strategy.Session).Extent().Where(v => Equals(v.IsInternalOrganisation, true)).ToArray(); if (!this.ExistContractor && internalOrganisations.Count() == 1) { this.Contractor = internalOrganisations.First(); } }
public void BaseOnInit(ObjectOnInit method) { // TODO: Don't extent for InternalOrganisations var internalOrganisations = new Organisations(this.Strategy.Session).Extent().Where(v => Equals(v.IsInternalOrganisation, true)).ToArray(); if (!this.ExistEmployer && internalOrganisations.Length == 1) { this.Employer = internalOrganisations.First(); } }
public void BaseOnInit(ObjectOnInit method) { this.DerivedCurrency = this.BilledTo?.PreferredCurrency; var internalOrganisations = new Organisations(this.Strategy.Session).Extent().Where(v => Equals(v.IsInternalOrganisation, true)).ToArray(); if (!this.ExistBilledTo && internalOrganisations.Count() == 1) { this.BilledTo = internalOrganisations.First(); } }
public void BaseOnInit(ObjectOnInit method) { if (!this.ExistStoredInFacility && this.ExistInvoiceItemType && (this.InvoiceItemType.IsPartItem || this.InvoiceItemType.IsProductItem)) { this.StoredInFacility = this.PurchaseOrderWherePurchaseOrderItem?.StoredInFacility; if (!this.ExistStoredInFacility && this.PurchaseOrderWherePurchaseOrderItem?.OrderedBy?.StoresWhereInternalOrganisation.Count == 1) { this.StoredInFacility = this.PurchaseOrderWherePurchaseOrderItem.OrderedBy.StoresWhereInternalOrganisation.Single().DefaultFacility; } } }
public void BaseOnInit(ObjectOnInit method) { var useInternalRate = this.WorkEffort?.Customer is Organisation organisation && organisation.IsInternalOrganisation; if (!this.ExistRateType) { this.RateType = useInternalRate ? new RateTypes(this.Session()).InternalRate : new RateTypes(this.Session()).StandardRate; } if (!this.ExistBillingFrequency) { this.BillingFrequency = new TimeFrequencies(this.Strategy.Session).Hour; } if (!this.ExistTimeFrequency) { this.TimeFrequency = new TimeFrequencies(this.Strategy.Session).Hour; } if (!this.ExistIsBillable) { this.IsBillable = true; } }
public void BaseOnInit(ObjectOnInit method) { var internalOrganisations = new Organisations(this.Strategy.Session).Extent().Where(v => Equals(v.IsInternalOrganisation, true)).ToArray(); if (!this.ExistInternalOrganisation && internalOrganisations.Count() == 1) { this.InternalOrganisation = internalOrganisations.First(); } if (!this.ExistNeedsApproval) { this.NeedsApproval = this.InternalOrganisation.PurchaseOrderNeedsApproval; } if (!this.ApprovalThresholdLevel1.HasValue) { this.ApprovalThresholdLevel1 = this.InternalOrganisation.PurchaseOrderApprovalThresholdLevel1; } if (!this.ApprovalThresholdLevel2.HasValue) { this.ApprovalThresholdLevel2 = this.InternalOrganisation.PurchaseOrderApprovalThresholdLevel2; } }
public void BaseOnInit(ObjectOnInit method) { if (!this.ExistPart) { this.Part = this.SerialisedItem?.PartWhereSerialisedItem; } if (!this.ExistFacility) { this.Facility = this.Part?.DefaultFacility; } if (!this.ExistUnitOfMeasure) { this.UnitOfMeasure = this.Part?.UnitOfMeasure; } if (this.ExistPart && this.Part.InventoryItemKind.Serialised) { if (!this.ExistSerialisedInventoryItemState) { this.SerialisedInventoryItemState = this.Reason.DefaultSerialisedInventoryItemState; } } else { if (!this.ExistNonSerialisedInventoryItemState) { this.NonSerialisedInventoryItemState = this.Reason.DefaultNonSerialisedInventoryItemState; } } if (!this.ExistInventoryItem) { this.SyncInventoryItem(); } // Match on required properties var matched = false; var matchingItems = this.Part.InventoryItemsWherePart.ToArray(); var possibleMatches = matchingItems.Length > 0; if (possibleMatches) { matchingItems = matchingItems.Where(i => i.Facility.Equals(this.Facility)).ToArray(); possibleMatches = (matchingItems != null) && (matchingItems.Length > 0); } if (possibleMatches) { matchingItems = matchingItems.Where(m => m.UnitOfMeasure.Equals(this.UnitOfMeasure)).ToArray(); possibleMatches = matchingItems.Length > 0; } // Match on optional properties if (possibleMatches && this.ExistLot) { matchingItems = matchingItems.Where(m => m.Lot.Equals(this.Lot)).ToArray(); possibleMatches = matchingItems.Length > 0; } if (possibleMatches && this.ExistSerialisedInventoryItemState) { if (matchingItems is SerialisedInventoryItem[] matchingSerialisedItems) { matchingItems = matchingSerialisedItems.Where(m => m.InventoryItemState.Equals(this.SerialisedInventoryItemState)).ToArray(); possibleMatches = matchingItems.Length > 0; } } if (possibleMatches && this.ExistNonSerialisedInventoryItemState) { if (matchingItems is NonSerialisedInventoryItem[] matchingNonSerialisedItems) { matchingItems = matchingNonSerialisedItems.Where(m => m.InventoryItemState.Equals(this.NonSerialisedInventoryItemState)).ToArray(); possibleMatches = matchingItems.Length > 0; } } if (possibleMatches) { // Match on Non/SerialisedInventoryItemState foreach (var item in matchingItems) { if (item is NonSerialisedInventoryItem nonSerialItem) { if (nonSerialItem.NonSerialisedInventoryItemState.Equals(this.NonSerialisedInventoryItemState)) { this.InventoryItem = item; matched = true; break; } } else if (item is SerialisedInventoryItem serialItem) { if (serialItem.SerialisedItem.Equals(this.SerialisedItem)) { this.InventoryItem = item; matched = true; break; } } } } if (matched) { if (this.InventoryItem is SerialisedInventoryItem serialItem) { serialItem.SerialisedInventoryItemState = this.SerialisedInventoryItemState; } if (this.InventoryItem is NonSerialisedInventoryItem nonSerialItem) { nonSerialItem.NonSerialisedInventoryItemState = this.NonSerialisedInventoryItemState; } } }