[DataContractAttribute]
public class NW_POConfirmationContract
{
    str 25            RequestID;
    TransDate         RequestDate;
    PurchIdBase       PurchaseOrder;
    PurchRFQCaseId    RFQId;
    PurchReqId        PurchReqId;
    Email             Email;
    str 200           SubjectOrProjectTitle;
    str               PoReport;
    EcoResProductType ProductType;
    VendAccount       Supplier;
    DlvDate           DeliveryDate;
    NW_Attachement    Attachment;
    List              Lines;
    List              Attachements;
    boolean           confirm, reject;

    [DataMemberAttribute('RequestID')]
    public str ParmRequestID(str _RequestID = RequestID)
    {
        RequestID = _RequestID;
        return RequestID;
    }

    [DataMemberAttribute('RequestDate')]
    public TransDate ParmRequestDate(TransDate _RequestDate = RequestDate)
    {
        RequestDate = _RequestDate;
        return RequestDate;
    }

    [DataMemberAttribute('PurchaseOrder')]
    public PurchIdBase ParmPurchaseOrder(PurchIdBase _PurchaseOrder = PurchaseOrder)
    {
        PurchaseOrder = _PurchaseOrder;
        return PurchaseOrder;
    }

    [DataMemberAttribute('RFQId')]
    public PurchRFQCaseId ParmRFQId(PurchRFQCaseId _RFQId = RFQId)
    {
        RFQId = _RFQId;
        return RFQId;
    }

    [DataMemberAttribute('OfficialContactEmail')]
    public Email ParmOfficialContactEmail(Email _Email = Email)
    {
        Email = _Email;
        return Email;
    }

    [DataMemberAttribute('PurchReqId')]
    public PurchReqId ParmPurchReqId(PurchReqId _PurchReqId = PurchReqId)
    {
        PurchReqId = _PurchReqId;
        return PurchReqId;
    }

    [DataMemberAttribute('SubjectOrProjectTitle')]
    public str ParmSubjectOrProjectTitle(str _SubjectOrProjectTitle = SubjectOrProjectTitle)
    {
        SubjectOrProjectTitle = _SubjectOrProjectTitle;
        return SubjectOrProjectTitle;
    }

    [DataMemberAttribute('ProductType')]
    public EcoResProductType ParmProductType(EcoResProductType _ProductType = ProductType)
    {
        ProductType = _ProductType;
        return ProductType;
    }

    [DataMemberAttribute('Supplier')]
    public VendAccount ParmSupplier(VendAccount _Supplier = Supplier)
    {
        Supplier = _Supplier;
        return Supplier;
    }

    [DataMemberAttribute('DeliveryDate')]
    public DlvDate ParmDeliveryDate(DlvDate _DeliveryDate = DeliveryDate)
    {
        DeliveryDate = _DeliveryDate;
        return DeliveryDate;
    }

    [DataMemberAttribute('IsConfirmedFromPortal')]
    public boolean ParmIsConfirmedFromPortal(boolean _confirm = confirm)
    {
        confirm = _confirm;
        return confirm;
    }

    [DataMemberAttribute('IsRejected')]
    public boolean ParmIsRejected(boolean _reject = reject)
    {
        reject = _reject;
        return reject;
    }

    [DataMemberAttribute('POReport')]
    public str ParmPoReport(str _PoReport = PoReport)
    {
        PoReport = _PoReport;
        return PoReport;
    }

    [DataMemberAttribute('Attachment')]
    public NW_Attachement ParmAttachment(NW_Attachement _Attachment = Attachment)
    {
        Attachment = _Attachment;
        return Attachment;
    }

    [DataMemberAttribute('Lines') , 
        AifCollectionType('Lines',Types::Class , classStr(NW_POConfirmationLinesContract))]
    public List ParmLines(List _Lines = Lines)
    {
        Lines = _Lines;
        return Lines;
    }

    [DataMemberAttribute('Attachements'), AifCollectionType('Attachements', Types::Class , classStr(NW_Attachement))]
    public List ParmAttachements(List _Attachements = Attachements)
    {
        Attachements = _Attachements;
        return Attachements;
    }

}
//-------------------------
[DataContractAttribute]
public class NW_POConfirmationLinesContract
{
    ItemIdSmall     ItemId;
    Description     Description;
    str 100         CategoryName;
    PurchOrderedQty Quantity;
    PurchUnit       PurchUnit;
    PurchPrice      Price;
    CurrencyCode    CurrencyCode;
    PurchPrice      TotalPrice;
    str 200         DeliveryLocation;
    TaxAmountCur    Tax;
    Amount          TotalOrderPrice;
    str             AdditionalNotes;
    List            Attachements;

    [DataMemberAttribute('ItemId')]
    public ItemIdSmall ParmItemId(ItemIdSmall _ItemId = ItemId)
    {
        ItemId = _ItemId;
        return ItemId;
    }

    [DataMemberAttribute('Description')]
    public Description ParmDescription(Description _Description = Description)
    {
        Description = _Description;
        return Description;
    }

    [DataMemberAttribute('CategoryName')]
    public str ParmCategoryName(str _CategoryName = CategoryName)
    {
        CategoryName = _CategoryName;
        return CategoryName;
    }

    [DataMemberAttribute('Quantity')]
    public PurchOrderedQty ParmQuantity(PurchOrderedQty _Quantity = Quantity)
    {
        Quantity = _Quantity;
        return Quantity;
    }

    [DataMemberAttribute('PurchUnit')]
    public PurchUnit ParmPurchUnit(PurchUnit _PurchUnit = PurchUnit)
    {
        PurchUnit = _PurchUnit;
        return PurchUnit;
    }

    [DataMemberAttribute('CurrencyCode')]
    public CurrencyCode ParmCurrencyCode(CurrencyCode _CurrencyCode = CurrencyCode)
    {
        CurrencyCode = _CurrencyCode;
        return CurrencyCode;
    }

    [DataMemberAttribute('Price')]
    public PurchPrice ParmPrice(PurchPrice _Price = Price)
    {
        Price = _Price;
        return Price;
    }

    [DataMemberAttribute('TotalPrice')]
    public PurchPrice ParmTotalPrice(PurchPrice _TotalPrice = TotalPrice)
    {
        TotalPrice = _TotalPrice;
        return TotalPrice;
    }

    [DataMemberAttribute('DeliveryLocation')]
    public str ParmDeliveryLocation(str _DeliveryLocation = DeliveryLocation)
    {
        DeliveryLocation = _DeliveryLocation;
        return DeliveryLocation;
    }

    [DataMemberAttribute('Tax')]
    public TaxAmountCur ParmTax(TaxAmountCur _Tax = Tax)
    {
        Tax = _Tax;
        return Tax;
    }

    [DataMemberAttribute('TotalOrderPrice')]
    public Amount ParmTotalOrderPrice(Amount _TotalOrderPrice = TotalOrderPrice)
    {
        TotalOrderPrice = _TotalOrderPrice;
        return TotalOrderPrice;
    }

    [DataMemberAttribute('AdditionalNotes')]
    public str ParmAdditionalNotes(str _AdditionalNotes = AdditionalNotes)
    {
        AdditionalNotes = _AdditionalNotes;
        return AdditionalNotes;
    }

    //[DataMemberAttribute('Attachement')]
    [DataMemberAttribute('Attachements'), AifCollectionType('Attachements', Types::Class , classStr(NW_Attachement))]
    public List ParmAttachements(List _Attachements = Attachements)
    {
        Attachements = _Attachements;
        return Attachements;
    }

}