zoukankan      html  css  js  c++  java
  • How to using x++ creating Vendors [AX2012]

    1.//Create party for the vendor
    public void createParty(VendorRequestCreate          _vendorRequestCreate)
    {
        ;
        if(_vendorRequestCreate.DirPartyType        == DirPartyBaseType::Person)
        {
            dirPerson.Name                          = _vendorRequestCreate.VendorName;
            dirPerson.NameAlias                     = _vendorRequestCreate.FirstName;
            dirPerson.NameSequence                  = dirNameSequence::find('First Last').RecId;
            dirPerson.insert();
    
    
            dirPersonName.FirstName                 = _vendorRequestCreate.FirstName;
            dirPersonName.MiddleName                = _vendorRequestCreate.MiddleName;
            dirPersonName.LastName                  = _vendorRequestCreate.LastName;
            dirPersonName.ValidFrom                 = DateTimeUtil::newDateTime(systemDateGet(),str2time ('00:00:00'),DateTimeUtil::getUserPreferredTimeZone());
            dirPersonName.ValidTo                   = DateTimeUtil::maxValue();
            dirPersonName.Person                    = dirPerson.RecId;
            dirPersonName.insert();
    
    
            dirParty                                = new DirParty(dirPerson);
        }
        else
        {
            dirOrganisation.Name                    = _vendorRequestCreate.VendorName;
            dirOrganisation.NameAlias               = _vendorRequestCreate.FirstName;
            dirOrganisation.LanguageId              = 'EN-US';
            dirOrganisation.KnownAs                 = _vendorRequestCreate.VendorName;
            dirOrganisation.PhoneticName            = _vendorRequestCreate.VendorName;
            dirOrganisation.insert();
    
    
    
            dirParty                                = new DirParty(dirOrganisation);
        }
    
    
    }
    
    2.//Create vendor and associate with vendor
    public void convertToVendor(VendorRequestCreate          _vendorRequestCreate)
    {
        VendorRequestCreate                  vendorRequestCreate = VendorRequestCreate::find(_vendorRequestCreate.VendorNo,true);
        ;
    
    
        if(_vendorRequestCreate.DirPartyType    == DirPartyBaseType::Person)
            vendTable.Party         = dirPerson.RecId;
        else
            vendTable.Party         = dirOrganisation.RecId;
    
    
        ttsBegin;
        vendTable.AccountNum    = NumberSeq::newGetNum(VendParameters::numRefVendAccount()).num();
        ttsCommit;
        if(vendTable.AccountNum == '')
            vendTable.AccountNum= int2str(_vendorRequestCreate.VendorNo);
    
    
        vendTable.Currency      = _vendorRequestCreate.CurrencyCode;
        vendTable.VendGroup     = _vendorRequestCreate.VendGroupId;
        vendTable.PaymTermId    = _vendorRequestCreate.PaymTermId;
        vendTable.DefaultDimension = _vendorRequestCreate.DefaultDimension;
        vendTable.OneTimeVendor = _vendorRequestCreate.OneTimeSupplier;
        vendTable.PaymMode      = _vendorRequestCreate.PaymMode;
        vendTable.BankAccount   = _vendorRequestCreate.BankAccount;
        vendTable.WI_Remarks    = _vendorRequestCreate.Remarks;
        vendTable.WI_DepartmentEmail = _vendorRequestCreate.DepartmentEmail;
        vendTable.insert();
    
    
        this.createPostalAddress(_vendorRequestCreate);
        this.createCommAddress(_vendorRequestCreate);
        this.createBankDetails(_vendorRequestCreate,vendTable.AccountNum);
        this.createContact(_vendorRequestCreate,vendTable.Party);
    
    
        if(vendTable.RecId)
        {
            vendorRequestCreate.VendAccount = vendTable.AccountNum;
            vendorRequestCreate.update();
            info(strFmt('Vendor %1 has been successfully created',vendTable.AccountNum));
        }
    
    
    }
    
    3.//Create postal address
    public void createPostalAddress(VendorRequestCreate          _vendorRequestCreate)
    {
        VendorRequestAddress             vendorRequestAddress;
        DirPartyPostalAddressView           dirPartyPostalAddressView;
        ;
    
    
        select Addressing, LogisticsAddressCity, LogisticsAddressCountryRegionId, LogisticsAddressStateId,
                LogisticsAddressZipCodeId from vendorRequestAddress
            where vendorRequestAddress.WI_VendorRequestCreate       == _vendorRequestCreate.RecId;
    
    
        // Create postal address
        if(dirPerson.RecId || dirOrganisation.RecId)
        {
            dirPartyPostalAddressView.LocationName                  = 'Primary business';
            dirPartyPostalAddressView.Address                       = vendorRequestAddress.Addressing;
            dirPartyPostalAddressView.City                          = vendorRequestAddress.LogisticsAddressCity;
            dirPartyPostalAddressView.ZipCode                       = vendorRequestAddress.LogisticsAddressZipCodeId;
            dirPartyPostalAddressView.State                         = vendorRequestAddress.LogisticsAddressStateId;
            dirPartyPostalAddressView.Street                        = vendorRequestAddress.Addressing;
            //dirPartyPostalAddressView.Street                        = 'Dover Street';
            //dirPartyPostalAddressView.StreetNumber                  = '123';
            dirPartyPostalAddressView.CountryRegionId               = vendorRequestAddress.LogisticsAddressCountryRegionId;
    
    
            dirParty.createOrUpdatePostalAddress(dirPartyPostalAddressView);
        }
    
    
    }
    
    4.//Create communication details
    public void createCommAddress(VendorRequestCreate          _vendorRequestCreate)
    {
    
    
        VendorRequestCommunication       vendorRequestCommunication;
        ;
    
    
        select Phone1, Phone2, Email, Fax from vendorRequestCommunication
                where vendorRequestCommunication.WI_VendorRequestCreate == _vendorRequestCreate.RecId;
    
    
        //Phone 1
        if(vendorRequestCommunication.Phone1 != '' && vendTable.Party != 0)
        {
            logisticsLocation.clear();
            logisticsLocation   = LogisticsLocation::create('Phone', NoYes::No);
    
    
            dirPartyContactInfoView.LocationName                = 'Primay Phone 1';
            dirPartyContactInfoView.Locator                     = vendorRequestCommunication.Phone1;
            dirPartyContactInfoView.Type                        = LogisticsElectronicAddressMethodType::Phone;
            dirPartyContactInfoView.Party                       = vendTable.Party;
            dirPartyContactInfoView.IsPrimary                   = NoYes::Yes;
            dirParty.createOrUpdateContactInfo(dirPartyContactInfoView);
        }
    
    
        //Phone 2
        if(vendorRequestCommunication.Phone2 != '' && vendTable.Party != 0)
        {
            logisticsLocation.clear();
            logisticsLocation   = LogisticsLocation::create('Phone', NoYes::No);
    
    
            dirPartyContactInfoView.LocationName                = 'Primay Phone 2';
            dirPartyContactInfoView.Locator                     = vendorRequestCommunication.Phone2;
            dirPartyContactInfoView.Type                        = LogisticsElectronicAddressMethodType::Phone;
            dirPartyContactInfoView.Party                       = vendTable.Party;
            dirPartyContactInfoView.IsPrimary                   = NoYes::No;
            dirParty.createOrUpdateContactInfo(dirPartyContactInfoView);
        }
    
    
        //Email
        if(vendorRequestCommunication.Email != '' && vendTable.Party != 0)
        {
            logisticsLocation.clear();
            logisticsLocation   = LogisticsLocation::create('Phone', NoYes::No);
    
    
            dirPartyContactInfoView.LocationName                = 'Primay Email';
            dirPartyContactInfoView.Locator                     = vendorRequestCommunication.Email;
            dirPartyContactInfoView.Type                        = LogisticsElectronicAddressMethodType::Email;
            dirPartyContactInfoView.Party                       = vendTable.Party;
            dirPartyContactInfoView.IsPrimary                   = NoYes::Yes;
            dirParty.createOrUpdateContactInfo(dirPartyContactInfoView);
        }
    
    
        //Fax
        if(vendorRequestCommunication.Fax != '' && vendTable.Party != 0)
        {
            logisticsLocation.clear();
            logisticsLocation   = LogisticsLocation::create('Phone', NoYes::No);
    
    
            dirPartyContactInfoView.LocationName                = 'Primay Fax';
            dirPartyContactInfoView.Locator                     = vendorRequestCommunication.Fax;
            dirPartyContactInfoView.Type                        = LogisticsElectronicAddressMethodType::Fax;
            dirPartyContactInfoView.Party                       = vendTable.Party;
            dirPartyContactInfoView.IsPrimary                   = NoYes::Yes;
            dirParty.createOrUpdateContactInfo(dirPartyContactInfoView);
        }
    }
    
    5.//Create bank details for the vendor
    private void createBankDetails(WI_VendorRequestCreate          _vendorRequestCreate,
                                   VendAccount                     _vendAcc)
    {
        VendBankAccount         vendBankAccount;
        LogisticsLocation       lLogisticsLocation;
        LogisticsPostalAddress  logisticsPostalAddress;
    
    
        ;
    
    
        ttsBegin;
    
    
        lLogisticsLocation.Description      = _vendorRequestCreate.FirstName;
        lLogisticsLocation.insert();
    
    
        logisticsPostalAddress.Street       = _vendorRequestCreate.VendBankAddress;
        logisticsPostalAddress.Address      = _vendorRequestCreate.VendBankAddress;
        logisticsPostalAddress.Location     = lLogisticsLocation.RecId;
        logisticsPostalAddress.insert();
    
    
        vendBankAccount.AccountID           = subStr(_vendorRequestCreate.BankAccount,1,10);
        vendBankAccount.Name                = _vendorRequestCreate.BankAccount;
        vendBankAccount.AccountNum          = _vendorRequestCreate.BankAccountNum;
        vendBankAccount.VendAccount         = _vendAcc;
        vendBankAccount.CurrencyCode        = _vendorRequestCreate.CurrencyCode;
        vendBankAccount.BankGroupID         = BankAccountTable::find(vendBankAccount.AccountID).BankGroupId;
        vendBankAccount.Location            = lLogisticsLocation.RecId;
        vendBankAccount.WI_BeneficiaryName  = _vendorRequestCreate.BeneficiaryName;
        vendBankAccount.initFromBankGroup(BankGroup::find(vendBankAccount.BankGroupID));
    
    
        vendBankAccount.insert();
        ttsCommit;
    }
    
    6.
    //Create contact for the vendor
    private void createContact(VendorRequestCreate       _vendorRequestCreate,
                               RefRecId                     _partyId)
    {
        ContactPerson           contactPerson;
        DirPersonName           lDirPersonName;
        DirPerson               lDirPerson;
        DirParty                lDirParty;
        LogisticsLocation       lLogisticsLocation;
        DirPartyContactInfoView             lDirPartyContactInfoView;
        ;
    
    
        //Create party for Contact
        lDirPerson.Name                          = _vendorRequestCreate.ContactPersonName;
        lDirPerson.NameAlias                     = _vendorRequestCreate.ContactPersonName;
        lDirPerson.NameSequence                  = dirNameSequence::find('First Last').RecId;
        lDirPerson.insert();
    
    
        lDirPersonName.FirstName                 = _vendorRequestCreate.ContactPersonName;
        //lDirPersonName.MiddleName                = _vendorRequestCreate.ContactPersonName;
        //lDirPersonName.LastName                  = _vendorRequestCreate.LastName;
        lDirPersonName.ValidFrom                 = DateTimeUtil::newDateTime(systemDateGet(),str2time ('00:00:00'),DateTimeUtil::getUserPreferredTimeZone());
        lDirPersonName.ValidTo                   = DateTimeUtil::maxValue();
        lDirPersonName.Person                    = lDirPerson.RecId;
        lDirPersonName.insert();
    
    
        lDirParty                                = new DirParty(lDirPerson);
    
    
        //Create contact and associate with party
        contactPerson.ContactForParty           = vendTable.Party;
        contactPerson.Party                     = lDirPerson.RecId;
        contactPerson.insert();
    
    
        //Create contact number
        if(_vendorRequestCreate.ContactPersonNo != '')
        {
            lLogisticsLocation.clear();
            lLogisticsLocation                  = LogisticsLocation::create('Phone', NoYes::No);
    
    
            lDirPartyContactInfoView.LocationName                = 'Primay Phone';
            lDirPartyContactInfoView.Locator                     = _vendorRequestCreate.ContactPersonNo;
            lDirPartyContactInfoView.Type                        = LogisticsElectronicAddressMethodType::Phone;
            lDirPartyContactInfoView.Party                       = contactPerson.Party;
            lDirPartyContactInfoView.IsPrimary                   = NoYes::Yes;
            lDirParty.createOrUpdateContactInfo(lDirPartyContactInfoView);
        }
    }
  • 相关阅读:
    eclipse下c/cpp " undefined reference to " or "launch failed binary not found"问题
    blockdev 设置文件预读大小
    宝宝语录
    CentOS修改主机名(hostname)
    subprocess报No such file or directory
    用ldap方式访问AD域的的错误解释
    英特尔的VTd技术是什么?
    This virtual machine requires the VMware keyboard support driver which is not installed
    Linux内核的文件预读详细详解
    UNP总结 Chapter 26~29 线程、IP选项、原始套接字、数据链路访问
  • 原文地址:https://www.cnblogs.com/Fandyx/p/3204784.html
Copyright © 2011-2022 走看看