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);
        }
    }
  • 相关阅读:
    Linux 环境下umount, 报 device is busy 的问题分析与解决方法
    WScript与CScript的区别
    20170803上课笔记
    20170802上课随笔
    20170801上课笔记
    20170731上课笔记
    20170729上课笔记
    20170727上课笔记
    20170726上课笔记
    20170725上课笔记
  • 原文地址:https://www.cnblogs.com/Fandyx/p/3204784.html
Copyright © 2011-2022 走看看