Thursday, 20 April 2017

Project Times heets Integrations

Project Times heets Integrations

class AIFTimeSheetsService
{
}



[SysEntryPointAttribute(true), AifCollectionTypeAttribute('_TimeSheets',Types::Class)]
public void CreateTimesheets(AIFTimesheetsContract _TimeSheets)
{

        projJournalTable                projJournalTable;
        ProjJournalTrans                ProjJournalTrans;
        str                             ErrorMessage;
        ProjJournalTableData            jourTableData;
        ProjJournalTransData            jourTransData;
        numberSequenceTable             numberSequenceTable;
        ProjJournalStatic               jourStatic;
        journalTransData                journalTransData;
        journalTableData                journalTableData;
        NumberSeq                       numberSeq;
        LedgerJournalName               ledgerJournalName;
        LedgerJournalTable                      jourTable;
        LedgerJournalTrans                      jourTrans;
         Voucher         voucher;


    try
    {
        changeCompany (_TimeSheets.Company())
        ErrorMessage = this.ValidateTimeSheet(_TimeSheets);
            if(ErrorMessage != "")
            {
                throw Error(strFmtLB(ErrorMessage));
            }
            else
            {
            ttsBegin;

            projJournalTable    = ProjJournalTable::find(_TimeSheets.JournalId(),true);
            if(!numberSequenceTable.RecId)
            {

                while select  forUpdate ProjJournalTrans   where ProjJournalTrans.JournalId == _TimeSheets.JournalId()
                {
                    ProjJournalTrans.doDelete();
                }
                while select  forUpdate projJournalTable   where projJournalTable.JournalId == _TimeSheets.JournalId()
                {
                    projJournalTable.doDelete();
                }
            }



                jourTableData = JournalTableData::newTable(projJournalTable);
                ProjJournalTable.JournalId          = jourTableData.nextJournalId();
                ProjJournalTable.JournalType        = ProjJournalType::Hour;
                jourTableData.initFromJournalName(ProjJournalName::find(projJournalTable.JournalNameId));
                jourStatic                          = jourTableData.journalStatic();
                jourTransData                       = jourStatic.newJournalTransData(ProjJournalTrans,jourTableData);
                projJournalTable.JournalNameId      = "hours";
                projJournalTable.Description        = _TimeSheets.Description();
                projJournalTable.ProjQty            = _TimeSheets.ProjQty();
                jourTransData.initFromJournalTable();
                ProjJournalTrans.initValue();
                projJournalTable.insert();


                //numberSequenceTable = NumberSequenceTable::find(LedgerJournalName::find(jourTable.JournalName).NumberSequenceTable);
                //jourTrans.Voucher =  NumberSeq::newGetVoucherFromCode(numberSequenceTable.NumberSequence).voucher();
                //jourTrans.LineNum = LedgerJournalTrans::lastLineNum(jourTrans.JournalNum) + 1;
               // jourTrans.insert();
                ProjJournalTrans.TransDate         = _TimeSheets.TimeSheetLineProjTransDate();
                ProjJournalTrans.ProjTransDate     = _TimeSheets.TimeSheetLineProjTransDate();
                ProjJournalTrans.Txt               = _TimeSheets.TimeSheetLineDescription();
                ProjJournalTrans.CurrencyId        = _TimeSheets.TimeSheetLineCurrency();
                ProjJournalTrans.Worker            = hcmWorker::findByPersonnelNumber(_TimeSheets.TimeSheetLinePersonnelNumber()).RecId;
                ProjJournalTrans.ProjId            = _TimeSheets.TimeSheetLineProjId();
                ProjJournalTrans.CategoryId        = _TimeSheets.TimeSheetLineCategoryId();
                ProjJournalTrans.LinePropertyId    = _TimeSheets.TimeSheetLineLinePropertyId();
                ProjJournalTrans.Qty               = _TimeSheets.TimeSheetLineHours();
                ProjJournalTrans.CostPrice         = _TimeSheets.TimeSheetLineCostPrice();
                ProjJournalTrans.SalesPrice        = _TimeSheets.TimeSheetLineSalesPrice();
                ProjJournalTrans.TransactionDescription = _TimeSheets.TimeSheetLineEnglishRefence();
                ProjJournalTrans.LanguageTxt       = _TimeSheets.TimeSheetLineArabicReference();
                ProjJournalTrans.ReverseDate       = _TimeSheets.TimeSheetLineReverseDate();
                ProjJournalTrans.TransId           = ProjParameters::newTransId();

                //journalTransData.create();
                ProjJournalTrans.insert();
              }


            ttsCommit;


            }

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



private str ValidateTimeSheet(AIFTimesheetsContract _TimeSheets)
{
    boolean valid =         true;
    projTable               projTable;
    boolean                 ret=false,okk=true;
     ErrorLog               _ErrorLog,_ErrorLogAll,errorline;
    HcmWorker               hcmWorker;
    dirperson               dirperson;
    HcmEmployment           HcmEmployment;

    str Message = "";
    if(_TimeSheets.TimeSheetLineProjId() == "")
    {
        Message = Message + "Project id is required!\n";
        valid = false;
    }
    else if(!projTable::exist(_TimeSheets.TimeSheetLineProjId()))
    {
        Message = Message + "ProjId does not exits in master!\n";
        valid = false;
    }
//
    //if(_TimeSheets.TimeSheetLineCategoryId() == "")
    //{
        //Message = Message + "Category id is required!\n";
        //valid = false;
    //}
    //else if(!CategoryTable::exist(_TimeSheets.TimeSheetLineCategoryId()))
    //{
        //Message = Message + "CategoryId does not exits in master!\n ";
        //valid = false;
    //}
//
   //if(_TimeSheets.TimeSheetLineCostPrice() == 0)
    //{
        //Message = Message + "Cost price should greater than Zero "+"\n";
        //valid = false;
    //}
//
    //if(_TimeSheets.TimeSheetLineSalesPrice  () == 0)
    //{
        //Message = Message + "SalesPrice should greater than Zero "+"\n";
        //valid = false;
    //}

    return Message;
}



calling  job





static void Job_TimeSheets(Args _args)
{

    AIFTimesheetsContract      _AIFTimesheetsContract = new AIFTimesheetsContract();
    AIFTimeSheetsService     _AIFTimeSheetsService = new AIFTimeSheetsService();



    _AIFTimesheetsContract.JournalNameId("HR TimeSheet ");
    //_AIFTimesheetsContract.JournalId("000031_123");
    _AIFTimesheetsContract.Description("HR TimeSheet  ");
    //_AIFTimesheetsContract.ProjQty(10.00);

    _AIFTimesheetsContract.TimeSheetLineProjTransDate(10\1\2014);
    _AIFTimesheetsContract.TimeSheetLineReverseDate(30\1\2014);
    _AIFTimesheetsContract.TimeSheetLineTransDate(4\6\2016);

    _AIFTimesheetsContract.TimeSheetLineDescription ("2345");
    _AIFTimesheetsContract.TimeSheetLineCurrency("SAR");
    _AIFTimesheetsContract.Type(ProjType::FixedPrice);
   _AIFTimesheetsContract.TimeSheetLineEnglishRefence("Project Hour/Cost Journal");
    _AIFTimesheetsContract.TimeSheetLineArabicReference("إستحقاق سنوي – رصيد إفتتاحي 2.5 يوم");
    _AIFTimesheetsContract.TimeSheetLinePersonnelNumber("A0039");
    _AIFTimesheetsContract.TimeSheetLineCategoryId("Normal");
    _AIFTimesheetsContract.TimeSheetLineLinePropertyId("NC");
    _AIFTimesheetsContract.TimeSheetLineHours(10);
    _AIFTimesheetsContract.TimeSheetLineCostPrice(10);
    _AIFTimesheetsContract.TimeSheetLineSalesPrice(10);
    _AIFTimesheetsContract.TimeSheetLineProjId("2055");
    _AIFTimesheetsContract.Voucher("HRJ000023");
    //_AIFTimesheetsContract.ActivityNumber("000005_006");



     _AIFTimesheetsContract.Company("TAJ");
    _AIFTimeSheetsService.CreateTimesheets(_AIFTimesheetsContract);
   // _AIFTimeSheetsService.ExpenseTimesheets(_AIFTimesheetsContract);
    info(_AIFTimesheetsContract.JournalId());








}

No comments:

Post a Comment