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; }
/// <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; }