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());
}
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