Set userdefined delivery address from Quote by scripts

lock
push_pin
done
Besvart
1

Is it possible to setup the values for the userdefined delivery address fields in the quote module by using scripts?
 

25. mar. 2024 | 05:04 p.m.

Alle Svar (1)

Yes this is possible, but a bit awkward due to the handling of localized addresses and such, sample below (NOT production ready):

#setLanguageLevel 4;

Integer quoteId = 76;

NSQuoteAgent quoteAgent;
NSContactAgent contactAgent;

NSQuoteEntity quoteEntity = quoteAgent.GetQuoteEntity(quoteId);

NSQuoteVersion quoteVersion = quoteAgent.GetQuoteVersion(quoteEntity.GetActiveQuoteVersionId());

quoteVersion.SetHasOwnDeliveryAddress(true);

quoteAgent.SaveQuoteVersion(quoteVersion);

// complex type, see https://docs.superoffice.com/en/globalization-and-localization/address/index.html
// and https://docs.superoffice.com/en/globalization-and-localization/address/howto/crmscript/set-address.html
NSAddress[] quoteVersionAddressses = contactAgent.GetQuoteVersionAddresses(quoteVersion.GetQuoteVersionId());

NSAddress quoteDeliveryAddress;

foreach (NSAddress address in quoteVersionAddressses)
{
    // delivery
    if (address.GetStreet().GetAtypeIdx() == NSAddressType.QuoteShippingAddress)
    {
        NSStructuredAddress structuredDeliveryaddress = address.GetStreet();
      
        structuredDeliveryaddress.SetAddress1("test delivery 1");
        structuredDeliveryaddress.SetAddress2("test delivery 2");
        structuredDeliveryaddress.SetAddress2("test delivery 3");
        structuredDeliveryaddress.SetCity("delivery city");
        structuredDeliveryaddress.SetZipcode("zip");
      
        address.SetStreet(structuredDeliveryaddress);
      
        quoteDeliveryAddress = address;
    }
}

// list: general - country
Integer countryId = 527;

contactAgent.SaveQuoteVersionAddress(quoteVersion.GetQuoteVersionId(), quoteDeliveryAddress, NSAddressType.QuoteShippingAddress, countryId);

12. apr. 2024 | 02:37 p.m.

Legg til svar