Monday, 30 October 2017

Upload HSN code rate for GST .csv file code

//Added  to Upload GST Tax Rate-13/6/2017
public void Alle_UploadGSTTaxRate()
{
    TaxRuntimeLookupCondition           taxRuntimeLookupCondition;
    TaxRuntimeLookupMeasureResultDetail taxRuntimeLookupMeasureResultDetail;
    TaxRuntimeLookupMeasureResult       taxRuntimeLookupMeasureResult;
    Dialog                              dialog  = new Dialog();
    DialogField                         dialogField;
    str                                 Delimiter = ",";
    str                                 filePath,fileNameOnly,type;
    AsciiIo                             importFile;
    container                           record;
    int                                 totalRecords;
    NumberSeq                           num;
    TaxRuntimeLookup                    runTimeLookup;
    TaxRuntimeDocComponentMeasure       docComponentMeasure;
    TaxRuntimeDocContext                taxRuntimeDocContext;
    TaxSolutionScopeSetup               taxSolutionScopeSetup;
    RefRecId                            ledger;


    dialogField=dialog.addField(extendedTypeStr(FilenameOpen),"Select File to Import","Select file to import");
    dialog.addText("File-Format Sequence: ConsumptionState, HSNCode, SAC, TransactionDateFrom, TransactionDateTo");
    dialog.addText("NetPriceMin, NetPriceMax, PriceIncl, MRPMin, MRPMax");

    dialog.caption("Import File");
    dialog.filenameLookupFilter(['csv','*.csv']);
    if(!dialog.run())

    return;

    [filePath, fileNameOnly, type] = fileNameSplit(dialogField.value());

    importFile = new AsciiIo(dialogField.value(), 'R');

    if((!importFile) || (importFile.status() != IO_Status::Ok))
    {
        warning("Error in opening import file");
        throw(Exception::Error);
    }

    importFile.inFieldDelimiter(Delimiter);

    if((!importFile) || (importFile.status() != IO_Status::Ok))
    {
        warning("Error in opening log file");
        throw(Exception::Error);
    }

    ttsbegin;

    try
    {
        record = importFile.read();

        while(importFile.status() ==  IO_Status::Ok)
        {
            taxRuntimeLookupCondition.clear();
            TaxRuntimeLookupMeasureResultDetail.clear();
            taxRuntimeLookupMeasureResult.clear();

            record = importFile.read();

            if(!record)

            break;

            totalRecords = totalRecords + 1;
            runTimeLookup   =   this.parmRuntimeLookup();

            taxRuntimeLookupCondition.LookupVersion         =   lookup.RecId;
            taxRuntimeLookupCondition.DimValue1             =   conPeek(record,1);  //State
            taxRuntimeLookupCondition.DimValue2             =   conPeek(record,2);  //HSN
            taxRuntimeLookupCondition.DimValue3             =   conPeek(record,3);  //SAC
            taxRuntimeLookupCondition.DateRangeFrom1        =   str2Date(conPeek(record,4),213);    //TransDateFrom
            taxRuntimeLookupCondition.DateRangeTo1          =   str2Date(conPeek(record,5),213);    //TransDateTo
            taxRuntimeLookupCondition.ValueRangeFrom1       =   conPeek(record,6);  //NetPrice Min
            taxRuntimeLookupCondition.ValueRangeTo1         =   conPeek(record,7);  //NetPrice Max
            taxRuntimeLookupCondition.DimValue4             =   conPeek(record,8);  // Price Incl
            taxRuntimeLookupCondition.ValueRangeFrom2       =   conPeek(record,9);  // MRP min
            taxRuntimeLookupCondition.ValueRangeTo2         =   conPeek(record,10); // MRP max

            select firstOnly taxSolutionScopeSetup where
                    taxSolutionScopeSetup.TaxSolutionScope   ==  taxruntimedoccontext::find(TaxRuntimeDocComponentMeasure::find
                                                                    (runTimeLookup.LookupOwnerRecId).DocContext).TaxSolutionScope;

            taxRuntimeLookupCondition.Ledger    =   taxSolutionScopeSetup.Ledger;

            taxRuntimeLookupCondition.write();

            try
            {
                conditionEditingHelper.writtenLookupCondition(taxRuntimeLookupCondition);

                select firstOnly taxRuntimeLookupMeasureResult
                        join forUpdate taxRuntimeLookupMeasureResultDetail
                    where taxRuntimeLookupMeasureResult.LookupCondition == taxRuntimeLookupCondition.RecId
                        && taxRuntimeLookupMeasureResultDetail.LookupMeasureResult == taxRuntimeLookupMeasureResult.RecId;


                taxRuntimeLookupMeasureResultDetail.Value   =   conPeek(record,11);
                taxRuntimeLookupMeasureResultDetail.write();

            }

            catch(Exception::Error)
            {
                throw(Exception::Error);
            }
        }

    }

    catch(Exception::Error)
    {
        Throw(Exception::Error);
    }

    ttsCommit;

    info(strFmt("%1 Lines imported",totalRecords));
}

Tuesday, 10 October 2017

read all files from folder

The following examples will show you how to list all of the files in a folder and sub folder.

 static void GetFilesInFoldersAndSubFolders(Args _args)
{
    System.String[] filePaths = System.IO.Directory::GetFiles(@"folder location", "*.*", System.IO.SearchOption::AllDirectories); //get listing of all files within the folder
    int fileCount = filepaths.get_Length(); //get how many files were found
    int currentFileCount;
    
    //go throw each one of the files that were found
    for(currentFileCount = 0; currentFileCount < fileCount ; ++currentFileCount)
    {
        info(filepaths.GetValue(currentFileCount)); 
    }
}

Tuesday, 19 September 2017

filter grid based on conbobox ona form

public class FormRun extends ObjectRun
{
    SysFormSplitter_X verticalSplitter;
    QueryBuildRange                qbr;
}


public void executeQuery()
{
    if(BusinessUnit.text() != "")
    {
        qbr.value(queryValue(BusinessUnit.text()));
    }
    else
    {
        qbr.value(SysQuery::valueUnlimited());

    }

    super();
}




public void init()
{
    super();
    qbr= this.query().dataSourceTable(tableNum(VendTable)).addRange(fieldNum(VendTable, InventSiteId));

}


public void lookup()
{
    Query                   query = new Query();
    QueryBuildDataSource    queryBuildDataSource;

    SysTableLookup  sysTableLookup = SysTableLookup::newParameters(tableNum(OMOperatingUnit), this);
    ;
    queryBuildDataSource = query.addDataSource(tableNum(OMOperatingUnit));

    sysTableLookup.addLookupfield(fieldNum(OMOperatingUnit, OMOperatingUnitNumber));
    //sysTableLookup.addLookupfield(fieldNum(CustVendExternalItem, ExternalItemId));

    queryBuildDataSource.addRange(fieldNum(OMOperatingUnit, OMOperatingUnitType)).value(queryValue(OMOperatingUnitType::OMBusinessUnit));
    sysTableLookup.parmQuery(query);
    sysTableLookup.performFormLookup();

    super();
}

---------------------------------------------------------------------------------------------------------------
public boolean modified()
{
    boolean ret;

    ret = super();
    VendTable_ds.executeQuery();
    return ret;
}

write to csv from ax

static void customerExportCsv(Args _args)
{

    CommaTextIo file;
    container line;
    FileIoPermission perm;
    CustTable                   custTable;
        FreeText                address;
        TaxRegistrationNumber_IN gstNo;


    #define.filename(@"C:\cust.csv")
    #File
    perm = new FileIoPermission(@"C:\cust.csv", "w");
    perm.assert();
    file = new CommaTextIo(@"C:\cust.csv", "w");

    if (!file || file.status() != IO_Status::Ok)
    {
    throw error("@SYS19358");//throws error if file path is not found
    }

    while    select custTable
    {
        gstNo = TaxRegistrationNumbers_IN::find(TaxInformation_IN::findDefaultbyLocation(DirPartyTable::findRec(CustTable::find(custTable.AccountNum).Party).PrimaryAddressLocation).GSTIN).RegistrationNumber;
        address = DirParty::primaryPostalAddress(custTable.Party).Address;

    if(custTable)
    {
        line = [custTable.AccountNum,custTable.name(),custTable.InventSiteId,address,gstNo];
        file.writeExp(line);
    }
    }
   info("done");
}



Read file dynamically.

 int currentFileCount;
   
     System.String[] filePaths = System.IO.Directory::GetFiles(@"C:\folder\", "*.CSV*", System.IO.SearchOption::AllDirectories);
   fileNameOpen = filepaths.GetValue(currentFileCount);
custom number seq

NumberSequenceCode numberSequenceCode,numberSequenceCodeVoucher;
Numberseq          numberseqLocal,numberseqVoucher;

 localSalesTable = salesParmTable.salesTable();
    numberSequenceCode = Alle_ARBusinessUnitNumberSeq::find(localSalesTable.Alle_BusinessUnit).CustomerInvoice;
    numberSequenceCodeVoucher = Alle_ARBusinessUnitNumberSeq::find(localSalesTable.Alle_BusinessUnit).CustomerInvoiceVoucher;

 numberseqLocal = NumberSeq::newGetNumFromCode(numberSequenceCode,NumberSeqScopeFactory::createDefaultScope(), true,true);
    numberseqVoucher = NumberSeq::newGetNumFromCode(numberSequenceCodeVoucher,NumberSeqScopeFactory::createDefaultScope(), true,true);
    custInvoiceJour.InvoiceId        = numberseqLocal.num();
    custInvoiceJour.LedgerVoucher        = numberseqVoucher.num();

sysoperation framework 2012

class MRKPEmailBatchServiceController extends SysOperationServiceController
{
    TransDate                               fromDate;
    TransDate                               toDate;
    MainAccount                             mainAccount;
    GeneralJournalEntry                     generalJournalEntry;
    #define.RecordsToDisplay(6)

}

-----------------------------------------------------------------------------------------------------------
protected ClassDescription defaultCaption()
{
    ClassDescription ret;

    ret = "@AAM50";

    return ret;

}

---------------------------------------------------------------------------------------------------------------

protected void new()
{
    super(classStr(MRKPEmailBatchService), methodStr(MRKPEmailBatchService, SemdEmail), SysOperationExecutionMode::Synchronous);

}

-----------------------------------------------------------------------------------------------------------

public void run()
{
    super();

}

---------------------------------------------------------------------------------------------------

public static MRKPEmailBatchServiceController construct()
{
    MRKPEmailBatchServiceController    controller;
    MRKPEmailBatchServiceContract      datacontract;

    controller  = new MRKPEmailBatchServiceController();
    controller.parmShowDialog(true);
    controller.parmShowProgressForm(false);
    datacontract = controller.getDataContractObject('');
    datacontract.parmFromDate(dateStartMth(prevMth(systemDateGet())));
    datacontract.parmToDate(dateEndMth(prevMth(systemDateGet())));

    return controller;

}

-------------------------------------------------------------------------------------------------

public static void main(args _args)
{
    MRKPEmailBatchServiceController controller;

    controller = MRKPEmailBatchServiceController::construct();
    controller.startOperation();

}

---------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------

[DataContractAttribute,
SysOperationLabelAttribute(literalStr("@SYS80056")),
SysOperationGroupAttribute('FromGroup', literalStr("@SYS181135"), '1', FormArrangeMethod::HorizontalFlushRight),
SysOperationGroupAttribute('ToGroup', literalStr("@SYS53942"), '1')]

class MRKPEmailBatchServiceContract  implements SysOperationValidatable
{
    TransDate   fromDate;
    TransDate   toDate;

}

----------------
[DataMemberAttribute
,SysOperationLabelAttribute(literalStr("@SYS80056")),
SysOperationGroupMemberAttribute('FromGroup'),SysOperationDisplayOrderAttribute('1')]
public sysdate parmFromDate(TransDate _fromDate = fromDate)
{
    fromDate = _fromDate;
    return fromDate;
}
--------------
[DataMemberAttribute
,SysOperationLabelAttribute(literalStr("@SYS80056")),
SysOperationGroupMemberAttribute('ToGroup'),SysOperationDisplayOrderAttribute('1')]
public TransDate parmToDate(TransDate _toDate = toDate)
{
    toDate = _toDate;
    return toDate;
}
--------------------
public boolean validate()
{
    boolean     isValid;
    isValid = true;

    if (!fromDate)
    {
        isValid = checkFailed(strFmt("@SYS84753", "@SYS24050"));
    }
    if (!toDate)
    {
        isValid = checkFailed(strFmt("@SYS84753", "@SYS36680"));
    }

    return isValid;
}

=-----------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------

class MRKPEmailBatchService  extends SysOperationServiceBase
{
    TransDate               fromDate;
    TransDate               toDate;
    LedgerJournalId         journalNumber;
    boolean                 headerCreated;
    #define.WorkFlowComment("Auto submitted to workflow")
}

------------------------------------------------------------

[SysEntryPointAttribute]
public void SemdEmail(MRKPEmailBatchServiceContract _serviceContract)
{
  #File
SampleTable  sampleTable;

    IO                    iO;
HcmPersonnelNumberId  employerefno;
ProjId                site;
TextIo                file;
//FilenameOpen          filename = "C:o assign file name
     FilenameOpen          filename = "C:\\MO\\test1.csv";
Container             record,line;
ProjJournalTrans      projJournalTrans;

HcmWorker             hcmWorker;
  ProjJournalTable      projJournalTable;
    date     tdate;
    str emply,dates;
boolean first = true;

;
projJournalTable.JournalNameId = "Hours";
//projJournalTable.JournalId = "SelfTEst";
projJournalTable.Description = "devel";

   // ProjJournalTable.insert();
}

---------------------------------------------------------------------------------------------------------------
public static  MRKPEmailBatchService construct()
{
    MRKPEmailBatchService      service;

    service = new MRKPEmailBatchService();

    return service;
}

Wednesday, 6 September 2017

Tax calculation in ax 2009 GST


TaxEngineService
getTaxDocumentGUIDBySource(TableId _sourceTableId, RecId _sourceRecId)