Ver Mensaje Individual
  #2  
Antiguo 19-12-2025
Avatar de seccion_31
seccion_31 seccion_31 is offline
Miembro
 
Registrado: ene 2017
Posts: 472
Reputación: 10
seccion_31 Va por buen camino
Como tengo con facturaE, uso records para generar el XML: (ejemplo)


Código:
  TTaxCategory = record
    cbc_ID                    : TFacturaUBLString;
    cbc_Percent               : TFacturaUBLString;
    cbc_BaseUnitMeasure       : TFacturaUBLString;
    cbc_PerUnitAmount         : TFacturaUBLString;
    cbc_TaxExemptionReasonCode: TFacturaUBLString;
    cbc_TaxExemptionReason    : TFacturaUBLString;
    cbc_TierRange             : TFacturaUBLString;
    cbc_TierRatePercent       : TFacturaUBLString;

    cac_TaxScheme             : TTaxScheme;
  end;

  TTaxSubtotal = record
    cbc_TaxableAmount_currencyID   : TFacturaUBLString;
    cbc_TaxAmount_currencyID       : TFacturaUBLString;

    cbc_BaseUnitMeasure : TFacturaUBLString;
    cbc_PerUnitAmount   : TFacturaUBLString;
    cbc_TierRange       : TFacturaUBLString;
    cbc_TierRatePercent : TFacturaUBLString;
    cac_TaxCategory     : TTaxCategory;

    _rttiForceNoTocar :array of Byte;      // para que el rtti genere estructura
  end;

  TTaxTotal = record
    cbc_TaxAmount_currencyID : TFacturaUBLString;
    cbc_RoundingAmount       : TFacturaUBLString;
    cbc_TaxEvidenceIndicator : TFacturaUBLString;
    cbc_TaxIncludedIndicator : TFacturaUBLString;

    cac_TaxSubtotal         : array [0..MAXSUBTOTALS] of TTaxSubtotal;

    _rttiForceNoTocar :array of Byte;      // para que el rtti genere estructura
  end;

  TAllowanceCharge = record
    cbc_ChargeIndicator       : TFacturaUBLString; // 'true' para cargo, 'false' para descuento
    cbc_AllowanceChargeReason : TFacturaUBLString; // nota del descuento
    cbc_Amount_currencyID     : TFacturaUBLString; // total del descuento o cargo

     _rttiForceNoTocar :array of Byte;      // para que el rtti genere estructura
  end;

  TItem =record
      cbc_Description           : TFacturaUBLString;
      cbc_PackQuantity          : TFacturaUBLString;
      cbc_PackSizeNumeric       : TFacturaUBLString;
      cbc_CatalogueIndicator    : TFacturaUBLString;
      cbc_Name                  : TFacturaUBLString;
      cbc_HazardousRiskIndicator: TFacturaUBLString;
      cbc_AdditionalInformation : TFacturaUBLString;
      cbc_KeyWord               : TFacturaUBLString;
      cbc_BrandName             : TFacturaUBLString;
      cbc_ModelName             : TFacturaUBLString;
  end;
Con la version 2 de la funcion recordToXML que usa el rtti de Delphi.
Responder Con Cita