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();
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
 private void GetDataContext(DisposalRequestDetails rowData)
 {
     DeclaredNetMass += rowData.DeclaredNetMass;
     AddedKg         += rowData.AddedKg;
 }