Пример #1
0
        private LineItemDetail GetLineItemDetail(FlatPrimeRecord flatCargoLineItemDetail, int lineItemNo, int lineItemDetailNo, int batchSequenceNumber, int recordSequenceWithinBatch)
        {
            LineItemDetail lineItemDetail = new LineItemDetail();
            lineItemDetail.DetailNumber = (lineItemDetailNo + 1).ToString();
            lineItemDetail.LineItemNumber = (lineItemNo + 1).ToString();
            lineItemDetail.BatchSequenceNumber = batchSequenceNumber.ToString();
            lineItemDetail.RecordSequenceWithinBatch = recordSequenceWithinBatch.ToString();

            lineItemDetail.ChargeAmount =
                new ChargeAmount[] {
                                new ChargeAmount(){
                                    Name = ChargeAmountName.WeightBilled,
                                    NameSpecified=true,
                                    Value = flatCargoLineItemDetail.DetailsWeightChargeAmount
                                },
                                new ChargeAmount(){
                                    Name = ChargeAmountName.ValuationBilled,
                                    NameSpecified=true,
                                    Value = flatCargoLineItemDetail.DetailsValuationChargeAmount
                                }
                            };

            #region LineItemDetail Addon Charges
            //----------------------------------------------------------------
            //--Addon Charges
            //----------------------------------------------------------------

            //TODO:Number Format??
            List<AddOnCharges> allAddonCharges = new List<AddOnCharges>();
            decimal allAddonChargesAmount = 0;
            //decimal allISCAmount = 0;
            //decimal allOtherChargesAmount = 0;
            if (flatCargoLineItemDetail.DetailsISCAllowed != 0)
            {
                AddOnCharges addonCharges = new AddOnCharges();
                addonCharges.AddOnChargeName = "AmountSubjectToISCAllowed";
                addonCharges.AddOnChargeAmount = flatCargoLineItemDetail.DetailsAmountSubjectToISCAllowed;
                allAddonCharges.Add(addonCharges);

                addonCharges = new AddOnCharges();
                addonCharges.AddOnChargeName = "ISCAllowed";
                addonCharges.AddOnChargeAmount = flatCargoLineItemDetail.DetailsISCAllowed;
                addonCharges.AddOnChargePercentageSpecified = true;
                addonCharges.AddOnChargePercentage = flatCargoLineItemDetail.ChargeCode == Constants.PrepaidChargeCode ?
                   - flatCargoLineItemDetail.DetailsISCPercentage : flatCargoLineItemDetail.DetailsISCPercentage ;
                allAddonCharges.Add(addonCharges);
                allAddonChargesAmount += flatCargoLineItemDetail.DetailsISCAllowed;
                //allISCAmount += flatCargoFileLineItem.DetailsISCAllowed;
            }
            if (flatCargoLineItemDetail.DetailsOtherChargesAllowed != 0)
            {
                AddOnCharges addonCharges = new AddOnCharges();
                addonCharges.AddOnChargeName = "OtherChargesAllowed";
                addonCharges.AddOnChargeAmount = flatCargoLineItemDetail.DetailsOtherChargesAllowed;
                allAddonCharges.Add(addonCharges);
                allAddonChargesAmount += flatCargoLineItemDetail.DetailsOtherChargesAllowed;
                //allOtherChargesAmount += flatCargoFileLineItem.DetailsOtherChargesAllowed;
            }
            if (allAddonCharges.Count > 0) lineItemDetail.AddOnCharges = allAddonCharges.ToArray();

            #endregion

            lineItemDetail.TotalNetAmount = flatCargoLineItemDetail.DetailsValuationChargeAmount +
                                            flatCargoLineItemDetail.DetailsWeightChargeAmount +
                                            allAddonChargesAmount;
            lineItemDetail.TotalNetAmountSpecified = true;

            #region AWB DATA
            //----------------------------------------------------------------
            //--AirWaybill Data
            //----------------------------------------------------------------

            AirWaybillDetails awbDetails = new AirWaybillDetails();
            awbDetails.AWBDate = string.Format("{0:yyyy-MM-dd}", flatCargoLineItemDetail.AWBDate);
            awbDetails.AWBIssuingAirline = flatCargoLineItemDetail.AWBIssuingAirline.ToString();
            awbDetails.AWBSerialNumber = flatCargoLineItemDetail.AWBSerialNumber.ToString();
            awbDetails.AWBCheckDigit = flatCargoLineItemDetail.AWBCheckDigit.ToString();
            awbDetails.OriginAirportCode = flatCargoLineItemDetail.OriginAirportCode;
            awbDetails.DestinationAirportCode = flatCargoLineItemDetail.DestinationAirportCode;
            awbDetails.FromAirportCode = flatCargoLineItemDetail.FromAirportCode;
            awbDetails.ToAirportOrPointOfTransferCode = flatCargoLineItemDetail.ToAirportOrPointOfTransferCode;
            awbDetails.DateOfCarriageOrTransfer = string.Format("{0:yyyy-MM-dd}", flatCargoLineItemDetail.DateOfCarriageOrTransfer);
            awbDetails.CurrAdjustmentIndicator = flatCargoLineItemDetail.CurrAdjustmentIndicator;

            lineItemDetail.AirWaybillDetails = awbDetails;

            #endregion
            //add LineItem to allLineItems collection
            return lineItemDetail;
        }
Пример #2
0
        /// <summary>
        /// Returns a Line Item for a rejection memo invoice
        /// </summary>
        /// <param name="invoice"></param>
        /// <param name="lineItemCount"></param>
        /// <returns></returns>
        private LineItem GetLineItem(List<LineItemDetail> allLineItemDetails, int lineItemCount, string chargeCode)
        {
            LineItem lineItem = new LineItem();
            lineItem.LineItemNumber = (lineItemCount + 1).ToString();
            lineItem.ChargeCode = chargeCode;

            decimal iSCTotal = 0m;
            decimal otherChargesTotal = 0m;

            foreach (LineItemDetail liDetail in allLineItemDetails)
            {
                if (liDetail.AddOnCharges != null)
                {
                    foreach (AddOnCharges aoc in liDetail.AddOnCharges)
                    {
                        if (chargeCode == Constants.RejectionMemoChargeCode)
                        {
                            if (aoc.AddOnChargeName == "ISCDifference")
                                iSCTotal += aoc.AddOnChargeAmount;
                            if (aoc.AddOnChargeName == "OtherChargesDifference")
                                otherChargesTotal += aoc.AddOnChargeAmount;
                        }
                        else
                        {
                            if (aoc.AddOnChargeName == "ISCAllowed")
                                iSCTotal += aoc.AddOnChargeAmount;
                            if (aoc.AddOnChargeName == "OtherChargesAllowed")
                                otherChargesTotal += aoc.AddOnChargeAmount;
                        }
                    }
                }
            }

            List<AddOnCharges> liAOC = new List<AddOnCharges>();

            if (iSCTotal != 0)
            {
                AddOnCharges addOnCharges = new AddOnCharges();
                addOnCharges.AddOnChargeName = "ISCAllowed";
                addOnCharges.AddOnChargeAmount = iSCTotal;
                liAOC.Add(addOnCharges);
            }

            if (otherChargesTotal != 0)
            {
                AddOnCharges addOnCharges = new AddOnCharges();
                addOnCharges.AddOnChargeName = "OtherChargesAllowed";
                addOnCharges.AddOnChargeAmount = otherChargesTotal;
                liAOC.Add(addOnCharges);
            }
            lineItem.AddOnCharges = liAOC.ToArray();

            lineItem.ChargeAmount = new LineItemChargeAmount[]
                        {new LineItemChargeAmount
                            {Name = LineItemChargeAmountName.Weight,
                                            NameSpecified = true,
                                            Value = (from cc in allLineItemDetails
                                                    select cc.ChargeAmount[chargeCode == Constants.RejectionMemoChargeCode ? 2:0].Value).Sum()
                            },
                            new LineItemChargeAmount
                            {Name = LineItemChargeAmountName.Valuation ,
                                            NameSpecified = true,
                                            Value = (from cc in allLineItemDetails
                                                    select cc.ChargeAmount[chargeCode == Constants.RejectionMemoChargeCode ? 5:1].Value).Sum()
                            }
                        };

            lineItem.TotalNetAmount = (from cc in allLineItemDetails
                                       select cc.TotalNetAmount).Sum();

            lineItem.TotalNetAmountSpecified = true;
            lineItem.DetailCount = (from cc in allLineItemDetails
                                    select cc).Count().ToString();
            return lineItem;
        }