validation on Fin. Dim. before submit

PHOTO EMBED

Tue Dec 31 2024 12:17:27 GMT+0000 (Coordinated Universal Time)

Saved by @MinaTimo

public void  submit()
{
    PurchLine PurchLine;
    if(!purchTable.PurchAgreement())
    {
        if(!purchTable.PaymentTerms) throw Error("Payment Terms must be filled");
        if(!purchTable.DeliveryTerms) throw Error("Delivery Terms must be filled");
        if(!purchTable.DeliveryTime) throw Error("Delivery Time must be filled");
        if(!purchTable.QuotationRef) throw Error("Quotation Reference must be filled");
    }
    if(purchTable.DefaultDimension==0)
    {
        throw Error("Dimension for PO must be filled");
    }
    select PurchLine where PurchLine.PurchId==purchTable.purchid && PurchLine.DefaultDimension==0;
    if(PurchLine)
    {
        throw Error("Dimension for PO line must be filled");
    }
    DimensionAttributeValueSetStorage dimStorage;
    dimStorage = DimensionAttributeValueSetStorage::find(purchTable.DefaultDimension);
    // check the number of Dimensions have value the same number of Dimension
    if(dimStorage.elements() !=5)
        throw Error("Dimension for PO must be filled");
    // or check each dimension has value
    /*DimensionAttribute  DimensionAttribute;
    DimensionAttribute = DimensionAttribute::findByName('BudgetCode');
    if(!dimStorage.containsDimensionAttribute(DimensionAttribute.RecId))
        throw Error("Financial Dimension BudgetCode is required.");

    DimensionAttribute = DimensionAttribute::findByName('Department');
    if(!dimStorage.containsDimensionAttribute(DimensionAttribute.RecId))
        throw Error("Financial Dimension Department is required.");

    DimensionAttribute = DimensionAttribute::findByName('General');
    if(!dimStorage.containsDimensionAttribute(DimensionAttribute.RecId))
        throw Error("Financial Dimension General is required.");

    DimensionAttribute = DimensionAttribute::findByName('Vendor');
    if(!dimStorage.containsDimensionAttribute(DimensionAttribute.RecId))
        throw Error("Financial Dimension Vendor is required.");

    DimensionAttribute = DimensionAttribute::findByName('Worker');
    if(!dimStorage.containsDimensionAttribute(DimensionAttribute.RecId))
        throw Error("Financial Dimension Worker is required.");
    */
    //for(int i = 1; i< dimStorage.elements(); i++)
    //{
    //    info(DimensionAttribute::find(dimStorage.getAttributeByIndex(i)).Name);
    //    info(dimStorage.getDisplayValueByIndex(i));
    //}
    while select PurchLine 
        where PurchLine.PurchId==purchTable.purchid
    {
        dimStorage = DimensionAttributeValueSetStorage::find(PurchLine.DefaultDimension);
        // check the number of Dimensions have value the same number of Dimension
        if(dimStorage.elements() !=5)
            throw Error("Dimension for PO line must be filled");
    }
    next submit();
}
content_copyCOPY