Monday, 22 August 2016

How to get Company information and tax information using X++ code in Ax 2012

static void CompanyInformation(Args _args)
{
    CompanyInfo     Company;
    ;
    Company = CompanyInfo::find();
    info(strFmt("Company Name : %1", Company.Name));
    info(strFmt("Company Phone : %1", Company.phone()));
    info(strFmt("Company Phone : %1", Company.telefax()));
    info(strFmt("Company Address : %1", Company.postalAddress().Address));
}
How to get Company full name using x++ code 
str     countryName;

countryName= logisticsAddressCountryRegion::name(countryRegionId);

Company Tax details using X++ code
IEC
display TaxRegistrationNumber_IN  tax_IEC()
{
    TaxInformation_IN        taxInformation_IN;

    taxInformation_IN   = TaxInformation_IN::findDefaultbyLocation(LogisticsPostalAddress::findRecId(this.PrimaryAddressLocation).Location);

    return TaxRegistrationNumbers_IN::find(taxInformation_IN.IECRegistrationNumberTable).RegistrationNumber;
}

Service Tax (STC)
display TaxRegistrationNumber_IN  tax_STC()
{
    TaxInformation_IN        taxInformation_IN;

    taxInformation_IN   = TaxInformation_IN::findDefaultbyLocation(LogisticsPostalAddress::findRecId(this.PrimaryAddressLocation).Location);

    return TaxRegistrationNumbers_IN::find(taxInformation_IN.STCRegistrationNumberTable).RegistrationNumber;

}

Vendor STC number
public str vendorSTC(AccountNum   _accountNum)
{
    VendTable           vendTable;
    DirPartyTable       dirPartyTable;
    LogisticsLocation   logisticsLocation;
    TaxInformation_IN   taxInformation_IN;

    select vendTable where vendTable.AccountNum == _accountNum
        join dirPartyTable
            where dirPartyTable.RecId == vendTable.Party
        join logisticsLocation
            where logisticsLocation.RecId == dirPartyTable.PrimaryAddressLocation;


    taxInformation_IN   = TaxInformation_IN::findDefaultbyLocation(logisticsLocation.RecId);

    return TaxRegistrationNumbers_IN::find(taxInformation_IN.STCRegistrationNumberTable).RegistrationNumber;


}


Tax Identification number (TIN)
display TaxRegistrationNumber_IN  tax_TIN()
{
    TaxInformation_IN        taxInformation_IN;

    taxInformation_IN   = TaxInformation_IN::findDefaultbyLocation(LogisticsPostalAddress::findRecId(this.PrimaryAddressLocation).Location);

    return TaxRegistrationNumbers_IN::find(taxInformation_IN.TIN).RegistrationNumber;

}

Tax Account number(TAN) or PAN

display TaxRegistrationNumber_IN  tax_TAN()
{
    TaxInformation_IN           taxInformation_IN;
    utcDateTime                 fromDate, toDate;
    TaxRegistrationNumbers_IN   TaxRegistrationNumbers_IN;

    fromDate = DateTimeUtil::getSystemDateTime();
    toDate = DateTimeUtil::maxValue();

    taxInformation_IN   = TaxInformation_IN::findDefaultbyLocation(LogisticsPostalAddress::findByLocationAndValidDateTime_IN(this.PrimaryAddressLocation, fromDate, toDate).Location);
    select firstFast TaxRegistrationNumbers_IN
            where TaxRegistrationNumbers_IN.RecId   == taxInformation_IN.TAN
                &&   TaxRegistrationNumbers_IN.TaxType == TaxType_IN::None;

    return TaxRegistrationNumbers_IN.RegistrationNumber;
}

// Company GSTINNumber 
   select companyInfo where companyInfo.DataArea == curext()
           join dirpartytable where dirpartytable.PartyNumber == companyInfo.PartyNumber
               join dirPartyLocation where dirPartyLocation.Party == dirpartytable.RecId
                   join logisticsLocation where logisticsLocation.RecId == dirPartyLocation.Location
                      join taxInformation_IN where taxInformation_IN.RegistrationLocation == logisticsLocation.RecId
                                                              && taxInformation_IN.IsPrimary == NoYes::Yes;

  tmp.comapanyGSTINNumber = TaxRegistrationNumbers_IN::find(taxInformation_IN.GSTIN).RegistrationNumber;

 //Vendor GSTINNumber
  select vendtable1 where vendtable1.AccountNum==vendtable.AccountNum
          join dirPartyLocation where dirPartyLocation.Party == vendtable1.Party
              join logisticsLocation where logisticsLocation.RecId == dirPartyLocation.Location
                   join taxInformation_IN where taxInformation_IN.RegistrationLocation == logisticsLocation.RecId
                                                          && taxInformation_IN.IsPrimary == NoYes::Yes;

     tmp.vendorGSTINNumber = TaxRegistrationNumbers_IN::find(taxInformation_IN.GSTIN).RegistrationNumber;

  // CGST , SGST & IGST numbers with rates.
  select firstOnly HSNCode, SAC from taxDocumentRowTransaction_IN
          join RecId, DiscountAmount from taxDocumentRowTransaction
               where taxDocumentRowTransaction.RecId == taxDocumentRowTransaction_IN.TaxDocumentRowTransactionRecId
               && taxDocumentRowTransaction.TransactionHeaderTableId == vendInvoiceinfotable.TableId
               && taxDocumentRowTransaction.TransactionHeaderRecId == vendInvoiceinfotable.RecId
               && taxDocumentRowTransaction.TransactionLineTableId == vendInvoiceinfoline.TableId
               && taxDocumentRowTransaction.TransactionLineRecId == vendInvoiceinfoline.RecId;

      if(taxDocumentRowTransaction.RecId)
     {
           while select taxDocumentComponentTransaction

            where taxDocumentComponentTransaction.TaxDocumentRowTransactionRecId == taxDocumentRowTransaction.RecId
         {
               if(taxDocumentComponentTransaction.TaxCode =="CGST")
               {
                     tmp.CGST_TaxRate = taxDocumentComponentTransaction.TaxRate*100;
                     tmp.CGST = taxDocumentComponentTransaction.TaxAmountCur;
               }
              if(taxDocumentComponentTransaction.TaxCode == "SGST")
              {
                    tmp.SGST_Taxrate = taxDocumentComponentTransaction.TaxRate*100;
                    tmp.SGST = taxDocumentComponentTransaction.TaxAmountCur;
              }
             if(taxDocumentComponentTransaction.TaxCode == "IGST")
             {
                   tmp.IGST_Taxrate = taxDocumentComponentTransaction.TaxRate*100;
                   tmp.IGST = taxDocumentComponentTransaction.TaxAmountCur;
             }
       }
   }



For multiple Phone numbers and fax Details

static void Companywithmultiplephonenumber(Args _args)
{
 
    DirPartyContactInfoView         contactInfoView;
    CompanyInfo companyinfo;
 
    companyinfo = CompanyInfo::find();
    info(strfmt("%1",companyinfo.Name));
 
  while  select  contactInfoView
        where
             contactInfoView.Type == LogisticsElectronicAddressMethodType::Phone
            || contactInfoView.Type == LogisticsElectronicAddressMethodType::Fax
            && contactInfoView.Party == companyinfo.RecId
    {
         
        if(contactInfoView.Type == LogisticsElectronicAddressMethodType::Phone)
        {
            info(strFmt("Description - %1   Phone -             %2",contactInfoView.LocationName,contactInfoView.Locator));
        }
        else
        {
            info(strFmt("Description - %1   Fax - %2",contactInfoView.LocationName,contactInfoView.Locator));
        }  
    }
}



static void CompanyInfo(Args _args)
{
    DirPartyContactInfoView         contactInfoView,contactInfoPhone,contactInfoFax;
    Name                            LocationName,Phone,Fax;
    description255                  contactAddress;
    CompanyInfo                     companyInfo = CompanyInfo::find();
    container                       CompanyLogo = FormLetter::companyLogo();
    Name                            PrintedBy   = xUserInfo::find(false,curUserId()).name;

    while  select contactInfoView group by LocationName
        where contactInfoView.Party == companyinfo.RecId
     {
           LocationName = contactInfoView.LocationName;

         select contactInfoPhone where contactInfoPhone.Party == companyinfo.RecId
         && contactInfoPhone.Type == LogisticsElectronicAddressMethodType::Phone
         && contactInfoPhone.LocationName == LocationName;

         if(contactInfoPhone)
         {
             Phone     = contactInfoPhone.Locator;
         }
         select contactInfoFax where contactInfoFax.Party == companyinfo.RecId
         && contactInfoFax.Type == LogisticsElectronicAddressMethodType::Fax
         && contactInfoFax.LocationName == LocationName;

         if(contactInfoFax)
         {
            Fax       = contactInfoFax.Locator;
         }

         contactAddress += LocationName + " Tel: " + Phone + " Fax: " + Fax + " " +'\n';


    }
    info(strFmt("ContactAddress = %1 , ExcutedBy = %2",contactAddress,PrintedBy));
}

9 comments:

  1. How to get Customer GSTIN number?

    ReplyDelete
  2. Awesome! your code saved my day :)
    Thanks a lot.

    ReplyDelete
  3. " CGST , SGST & IGST numbers with rates." Code shows Purchase order's data
    only when product receipts has been made against it or it has been invoiced. 'Open order' and 'Approved' status purchase orders data are not getting saved into tables.. !!
    is there any way to get tax info of an unvoiced Purchase order ? Please help !

    ReplyDelete
  4. Nice Information!!
    It is very helpful information about Digital printing Malaysia. Thanks for sharing
    Tax IT company

    ReplyDelete
  5. Impressed a lot really like your blog.
    Thanks for the posting.
    Tax IT company

    ReplyDelete
  6. Thank u so much it really help me

    ReplyDelete