internal static CustomsWarehouseDisposal Create(DisposalRequestDetails disposalRequestDetails, int disposalRequestLibId, CustomsWarehouse account, string customsProcedure) { Debug.Assert(account != null, "Disposal have to has account assigned."); CustomsWarehouseDisposal _newItem = new CustomsWarehouseDisposal() { Archival = false, CNIDId = account.CNIDId, ClearingType = Linq.ClearingType.PartialWindingUp, CustomsStatus = Linq.CustomsStatus.NotStarted, CustomsProcedure = customsProcedure, CW_AddedKg = 0, //Assigned in Recalculate CW_DeclaredNetMass = 0, CW_SettledNetMass = 0, //Assigned in Recalculate CW_SettledGrossMass = 0, //Assigned in Recalculate CW_PackageToClear = 0, //Assigned in Recalculate TobaccoValue = 0, //Assigned in Recalculate DisposalRequestId = disposalRequestLibId, CWL_CWDisposal2CustomsWarehouseID = account, SKUDescription = "N/A", Title = "ToDo", SADDate = Extensions.SPMinimum, }; _newItem.Recalculate(disposalRequestDetails); _newItem.Title = String.Format("CW-{0:D4}-{1}", DateTime.Today.Year, "XXXXXX"); //TODO Id.Value); return(_newItem); }
/// <summary> /// Updates the disposal using user entered data. /// </summary> /// <param name="disposalRequestDetails">The disposal request details <see cref="DisposalRequestDetails"/>.</param> internal void Update(DisposalRequestDetails disposalRequestDetails) { if (this.CustomsStatus.Value != Linq.CustomsStatus.NotStarted) { return; } Recalculate(disposalRequestDetails); }
private void Recalculate(DisposalRequestDetails disposalRequestDetails) { CW_PackageToClear = disposalRequestDetails.PackagesToDispose; double _diff = disposalRequestDetails.QuantityyToClearSumRounded - CW_SettledNetMass.Value; CWL_CWDisposal2CustomsWarehouseID.TobaccoNotAllocated -= _diff; CW_DeclaredNetMass = disposalRequestDetails.DeclaredNetMass; CW_SettledNetMass = disposalRequestDetails.QuantityyToClearSumRounded; CW_SettledGrossMass = (CW_PackageToClear.Value * CWL_CWDisposal2CustomsWarehouseID.PackageWeight() + CW_SettledNetMass.Value).RoundValue(); CW_AddedKg = disposalRequestDetails.AddedKg; double _Portion = CW_SettledNetMass.Value / CWL_CWDisposal2CustomsWarehouseID.CW_Quantity.Value; TobaccoValue = (_Portion * CWL_CWDisposal2CustomsWarehouseID.Value.Value).RoundValue(); }
internal void GoUp(int sequenceNumber) { Dictionary <int, DisposalRequestDetails> _dctnry = Items.ToDictionary(x => x.SequenceNumber); DisposalRequestDetails _prvs = _dctnry[sequenceNumber - 1]; DisposalRequestDetails _current = _dctnry[sequenceNumber]; _dctnry.Remove(sequenceNumber); _dctnry.Remove(sequenceNumber - 1); _current.SequenceNumber -= 1; _prvs.SequenceNumber += 1; _dctnry.Add(_current.SequenceNumber, _current); _dctnry.Add(_prvs.SequenceNumber, _prvs); RecreateDisposals(_dctnry.Values); }
private static DisposalRequest Create (List <CustomsWarehouse> listOfAccounts, IGrouping <string, CustomsWarehouseDisposal> disposals, string description, string procedure, Action <DisposalRequest, PropertyChangedEventArgs> notify) { CustomsWarehouse _firstAccount = listOfAccounts.First <CustomsWarehouse>(); DisposalRequest _newRequest = CreateDisposalRequest(_firstAccount, description, procedure, notify); listOfAccounts.Sort(new Comparison <CustomsWarehouse>(CustomsWarehouse.CompareCustomsWarehouse)); List <DisposalRequestDetails> _newCollection = new List <DisposalRequestDetails>(); int _sequenceNumber = 0; List <CustomsWarehouse> _copylistOfAccounts = new List <CustomsWarehouse>(listOfAccounts); if (disposals != null) { foreach (CustomsWarehouseDisposal _cwdx in disposals) { DisposalRequestDetails _newDisposalRequestDetails = new DisposalRequestDetails(_newRequest, _cwdx, ref _sequenceNumber); _copylistOfAccounts.Remove(_cwdx.CWL_CWDisposal2CustomsWarehouseID); _newCollection.Add(_newDisposalRequestDetails); _newRequest.GetDataContext(_newDisposalRequestDetails); if (_cwdx.CustomsStatus.GetValueOrDefault(CustomsStatus.NotStarted) != CustomsStatus.NotStarted) { _newRequest.ReadOnly = true; } } } foreach (CustomsWarehouse _cwx in _copylistOfAccounts) { if (_cwx.TobaccoNotAllocated == 0) { continue; } DisposalRequestDetails _newDisposalRequestDetails = new DisposalRequestDetails(_newRequest, _cwx, ref _sequenceNumber); _newCollection.Add(_newDisposalRequestDetails); } _newRequest.RemainingOnStock = _newCollection.Sum(x => x.RemainingOnStock); _newRequest.UpdateOnInit(_newCollection); return(_newRequest); }
private void GetDataContext(DisposalRequestDetails rowData) { DeclaredNetMass += rowData.DeclaredNetMass; AddedKg += rowData.AddedKg; }