Exemplo n.º 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;
        }
Exemplo n.º 2
0
        /// <summary>
        /// Creates the InvoiceHeader
        /// </summary>
        /// <param name="headerData"></param>
        /// <returns></returns>
        private InvoiceHeader GetInvoiceHeader(FlatPrimeRecord headerData)
        {
            InvoiceHeader invoiceHeader = new InvoiceHeader();
            invoiceHeader.InvoiceNumber = headerData.InvoiceNumber;
            invoiceHeader.InvoiceDate = string.Format("{0:yyyy-MM-dd}", headerData.InvoiceDate);
            invoiceHeader.InvoiceType = InvoiceType.Invoice;
            invoiceHeader.ChargeCategory = Constants.ChargeCategory;
            //Seller Organization
            SellerOrganization sellerOrganization = new SellerOrganization();
            sellerOrganization.OrganizationID = Constants.SellerOrganizationID;
            invoiceHeader.SellerOrganization = sellerOrganization;
            //Buyer Organization
            BuyerOrganization buyerOrganization = new BuyerOrganization();
            buyerOrganization.OrganizationID = headerData.BuyerOrganizationID;
            invoiceHeader.BuyerOrganization = buyerOrganization;
            //Payment Terms
            PaymentTerms paymentTerms = new PaymentTerms();
            paymentTerms.CurrencyCode = string.IsNullOrWhiteSpace(headerData.CurrencyCode) ? Constants.ClearanceCurrency : headerData.CurrencyCode;
            paymentTerms.ClearanceCurrencyCode = Constants.ClearanceCurrency;
            paymentTerms.ExchangeRate = paymentTerms.CurrencyCode == Constants.ClearanceCurrency ? 1.00000m : headerData.ExchangeRate;
            paymentTerms.ExchangeRateSpecified = true;
            paymentTerms.SettlementMethod = SettlementMethod.I;
            paymentTerms.SettlementMethodSpecified = true;

            paymentTerms.SettlementMonthPeriod = IATAPeriodHelper.GetIATAPeriodForXML(_iATAPeriod);
            invoiceHeader.PaymentTerms = paymentTerms;
            //ISDetails
            ISDetails isDetails = new ISDetails();
            isDetails.DigitalSignatureFlag = DigitalSignatureFlag.Y;
            invoiceHeader.ISDetails = isDetails;
            return invoiceHeader;
        }