In the batch job. There is a script running
Get expense from Expense table where AX_Status not equal to processed and EXP_Status = Active.
public void select_ExpenseHead()
{
LoginProperty loginProperty;
OdbcConnection odbcConnection;
Statement statement, statementUpdate;
ResultSet resultSet;
str sql ;
SqlStatementExecutePermission perm;
str dsnStr = ACT_IntegrationParameters::findNTD().stagingDSN;
ACT_ExpenseHead expenseHead;
;
// Set the information on the ODBC.
loginProperty = new LoginProperty();
loginProperty.setDSN(dsnStr);
//Create a connection to external database.
odbcConnection = new OdbcConnection(loginProperty);
if (odbcConnection)
{
sql = "Select * from EXPENSES_HEAD where AX_Status != 'Processed' and EXP_Status = 'ACTIVE'" ;
sql = strFmt(sql);
//Assert permission for executing the sql string.
perm = new SqlStatementExecutePermission(sql);
perm.assert();
//Prepare the sql statement.
statement = odbcConnection.createStatement();
resultSet = statement.executeQuery(sql);
statement.executeQuery(sql);
//Cause the sql statement to run,
//then loop through each row in the result.
ttsBegin;
while (resultSet.next())
{
expenseHead.Id = resultSet.getInt(1);
expenseHead.Inspector = resultSet.getString(2);
expenseHead.EXP_NO = resultSet.getString(3);
expenseHead.EXP_DATE = resultSet.getDate(4);
expenseHead.EXP_STATUS = resultSet.getString(5);
expenseHead.DEPT = resultSet.getString(6);
expenseHead.Division = resultSet.getString(7);
expensehead.HKD_Total = resultSet.getReal(12);
expenseHead.RMB_Total = resultSet.getReal(13);
expenseHead.Exp_Date1 = resultSet.getDate(14);
expenseHead.Exp_Date2 = resultSet.getDate(15);
expenseHead.Exp_Date3 = resultSet.getDate(16);
expenseHead.Exp_Date4 = resultSet.getDate(17);
expenseHead.Exp_Date5 = resultSet.getDate(18);
expenseHead.Exp_Date6 = resultSet.getDate(19);
expenseHead.Exp_Date7 = resultSet.getDate(20);
expenseHead.Type1 = resultSet.getString(21);
expenseHead.Type2 = resultSet.getString(22);
expenseHead.Type3 = resultSet.getString(23);
expenseHead.Type4 = resultSet.getString(24);
expenseHead.Type5 = resultSet.getString(25);
expenseHead.Type6 = resultSet.getString(26);
expenseHead.Type7 = resultSet.getString(27);
expenseHead.Type8 = resultSet.getString(28);
expenseHead.Type9 = resultSet.getString(29);
expenseHead.Type10 = resultSet.getString(30);
expenseHead.Type11 = resultSet.getString(31);
expenseHead.Type12 = resultSet.getString(32);
expenseHead.Type13 = resultSet.getString(33);
expenseHead.Type14 = resultSet.getString(34);
expenseHead.Type15 = resultSet.getString(35);
expenseHead.Type16 = resultSet.getString(36);
expenseHead.Type17 = resultSet.getString(37);
expenseHead.Type18 = resultSet.getString(38);
expenseHead.Type19 = resultSet.getString(39);
expenseHead.Type20 = resultSet.getString(40);
expenseHead.Type_Desc1 = resultSet.getString(42);
expenseHead.Type_Desc2 = resultSet.getString(43);
expenseHead.Type_Desc3 = resultSet.getString(44);
expenseHead.Type_Desc4 = resultSet.getString(45);
expenseHead.Type_Desc5 = resultSet.getString(46);
expenseHead.Type_Desc6 = resultSet.getString(47);
expenseHead.Type_Desc7 = resultSet.getString(48);
expenseHead.Type_Desc8 = resultSet.getString(49);
expenseHead.Type_Desc9 = resultSet.getString(50);
expenseHead.Type_Desc10 = resultSet.getString(51);
expenseHead.Type_Desc11 = resultSet.getString(52);
expenseHead.Type_Desc12 = resultSet.getString(53);
expenseHead.Type_Desc13 = resultSet.getString(54);
expenseHead.Type_Desc14 = resultSet.getString(55);
expenseHead.Type_Desc15 = resultSet.getString(56);
expenseHead.Type_Desc16 = resultSet.getString(57);
expenseHead.Type_Desc17 = resultSet.getString(58);
expenseHead.Type_Desc18 = resultSet.getString(59);
expenseHead.Type_Desc19 = resultSet.getString(60);
expenseHead.Type_Desc20 = resultSet.getString(61);
expenseHead.CUR1_1 = resultSet.getString(62);
expenseHead.CUR1_2 = resultSet.getString(63);
expenseHead.CUR1_3 = resultSet.getString(64);
expenseHead.CUR1_4 = resultSet.getString(65);
expenseHead.CUR1_5 = resultSet.getString(66);
expenseHead.CUR1_6 = resultSet.getString(67);
expenseHead.CUR1_7 = resultSet.getString(68);
expenseHead.CUR2_1 = resultSet.getString(69);
expenseHead.CUR2_2 = resultSet.getString(70);
expenseHead.CUR2_3 = resultSet.getString(71);
expenseHead.CUR2_4 = resultSet.getString(72);
expenseHead.CUR2_5 = resultSet.getString(73);
expenseHead.CUR2_6 = resultSet.getString(74);
expenseHead.CUR2_7 = resultSet.getString(75);
expenseHead.CUR3_1 = resultSet.getString(76);
expenseHead.CUR3_2 = resultSet.getString(77);
expenseHead.CUR3_3 = resultSet.getString(78);
expenseHead.CUR3_4 = resultSet.getString(79);
expenseHead.CUR3_5 = resultSet.getString(80);
expenseHead.CUR3_6 = resultSet.getString(81);
expenseHead.CUR3_7 = resultSet.getString(82);
expenseHead.CUR4_1 = resultSet.getString(83);
expenseHead.CUR4_2 = resultSet.getString(84);
expenseHead.CUR4_3 = resultSet.getString(85);
expenseHead.CUR4_4 = resultSet.getString(86);
expenseHead.CUR4_5 = resultSet.getString(87);
expenseHead.CUR4_6 = resultSet.getString(88);
expenseHead.CUR4_7 = resultSet.getString(89);
expenseHead.CUR5_1 = resultSet.getString(90);
expenseHead.CUR5_2 = resultSet.getString(91);
expenseHead.CUR5_3 = resultSet.getString(92);
expenseHead.CUR5_4 = resultSet.getString(93);
expenseHead.CUR5_5 = resultSet.getString(94);
expenseHead.CUR5_6 = resultSet.getString(95);
expenseHead.CUR5_7 = resultSet.getString(96);
expenseHead.CUR6_1 = resultSet.getString(97);
expenseHead.CUR6_2 = resultSet.getString(98);
expenseHead.CUR6_3 = resultSet.getString(99);
expenseHead.CUR6_4 = resultSet.getString(100);
expenseHead.CUR6_5 = resultSet.getString(101);
expenseHead.CUR6_6 = resultSet.getString(102);
expenseHead.CUR6_7 = resultSet.getString(103);
expenseHead.CUR7_1 = resultSet.getString(104);
expenseHead.CUR7_2 = resultSet.getString(105);
expenseHead.CUR7_3 = resultSet.getString(106);
expenseHead.CUR7_4 = resultSet.getString(107);
expenseHead.CUR7_5 = resultSet.getString(108);
expenseHead.CUR7_6 = resultSet.getString(109);
expenseHead.CUR7_7 = resultSet.getString(110);
expenseHead.CUR8_1 = resultSet.getString(111);
expenseHead.CUR8_2 = resultSet.getString(112);
expenseHead.CUR8_3 = resultSet.getString(113);
expenseHead.CUR8_4 = resultSet.getString(114);
expenseHead.CUR8_5 = resultSet.getString(115);
expenseHead.CUR8_6 = resultSet.getString(116);
expenseHead.CUR8_7 = resultSet.getString(117);
expenseHead.CUR9_1 = resultSet.getString(118);
expenseHead.CUR9_2 = resultSet.getString(119);
expenseHead.CUR9_3 = resultSet.getString(120);
expenseHead.CUR9_4 = resultSet.getString(121);
expenseHead.CUR9_5 = resultSet.getString(122);
expenseHead.CUR9_6 = resultSet.getString(123);
expenseHead.CUR9_7 = resultSet.getString(124);
expenseHead.CUR10_1 = resultSet.getString(125);
expenseHead.CUR10_2 = resultSet.getString(126);
expenseHead.CUR10_3 = resultSet.getString(127);
expenseHead.CUR10_4 = resultSet.getString(128);
expenseHead.CUR10_5 = resultSet.getString(129);
expenseHead.CUR10_6 = resultSet.getString(130);
expenseHead.CUR10_7 = resultSet.getString(131);
expenseHead.CUR11_1 = resultSet.getString(132);
expenseHead.CUR11_2 = resultSet.getString(133);
expenseHead.CUR11_3 = resultSet.getString(134);
expenseHead.CUR11_4 = resultSet.getString(135);
expenseHead.CUR11_5 = resultSet.getString(136);
expenseHead.CUR11_6 = resultSet.getString(137);
expenseHead.CUR11_7 = resultSet.getString(138);
expenseHead.CUR12_1 = resultSet.getString(139);
expenseHead.CUR12_2 = resultSet.getString(140);
expenseHead.CUR12_3 = resultSet.getString(141);
expenseHead.CUR12_4 = resultSet.getString(142);
expenseHead.CUR12_5 = resultSet.getString(143);
expenseHead.CUR12_6 = resultSet.getString(144);
expenseHead.CUR12_7 = resultSet.getString(145);
expenseHead.CUR13_1 = resultSet.getString(147); // 147
expenseHead.CUR13_2 = resultSet.getString(148);
expenseHead.CUR13_3 = resultSet.getString(149);
expenseHead.CUR13_4 = resultSet.getString(150);
expenseHead.CUR13_5 = resultSet.getString(151);
expenseHead.CUR13_6 = resultSet.getString(152);
expenseHead.CUR13_7 = resultSet.getString(153);
expenseHead.CUR14_1 = resultSet.getString(154);
expenseHead.CUR14_2 = resultSet.getString(155);
expenseHead.CUR14_3 = resultSet.getString(156);
expenseHead.CUR14_4 = resultSet.getString(157);
expenseHead.CUR14_5 = resultSet.getString(158);
expenseHead.CUR14_6 = resultSet.getString(159);
expenseHead.CUR14_7 = resultSet.getString(160);
expenseHead.CUR15_1 = resultSet.getString(161);
expenseHead.CUR15_2 = resultSet.getString(162);
expenseHead.CUR15_3 = resultSet.getString(163);
expenseHead.CUR15_4 = resultSet.getString(164);
expenseHead.CUR15_5 = resultSet.getString(165);
expenseHead.CUR15_6 = resultSet.getString(166);
expenseHead.CUR15_7 = resultSet.getString(167);
expenseHead.CUR16_1 = resultSet.getString(169); // no 168
expenseHead.CUR16_2 = resultSet.getString(170);
expenseHead.CUR16_3 = resultSet.getString(171);
expenseHead.CUR16_4 = resultSet.getString(172);
expenseHead.CUR16_5 = resultSet.getString(173);
expenseHead.CUR16_6 = resultSet.getString(174);
expenseHead.CUR16_7 = resultSet.getString(175);
expenseHead.CUR17_1 = resultSet.getString(177);
expenseHead.CUR17_2 = resultSet.getString(178);
expenseHead.CUR17_3 = resultSet.getString(179);
expenseHead.CUR17_4 = resultSet.getString(180);
expenseHead.CUR17_5 = resultSet.getString(181);
expenseHead.CUR17_6 = resultSet.getString(182);
expenseHead.CUR17_7 = resultSet.getString(183);
expenseHead.CUR18_1 = resultSet.getString(184);
expenseHead.CUR18_2 = resultSet.getString(185);
expenseHead.CUR18_3 = resultSet.getString(186);
expenseHead.CUR18_4 = resultSet.getString(187);
expenseHead.CUR18_5 = resultSet.getString(188);
expenseHead.CUR18_6 = resultSet.getString(189);
expenseHead.CUR18_7 = resultSet.getString(190);
expenseHead.CUR19_1 = resultSet.getString(192);//no 191
expenseHead.CUR19_2 = resultSet.getString(193);
expenseHead.CUR19_3 = resultSet.getString(194);
expenseHead.CUR19_4 = resultSet.getString(195);
expenseHead.CUR19_5 = resultSet.getString(196);
expenseHead.CUR19_6 = resultSet.getString(197);
expenseHead.CUR19_7 = resultSet.getString(198);
expenseHead.CUR20_1 = resultSet.getString(200);
expenseHead.CUR20_2 = resultSet.getString(201);
expenseHead.CUR20_3 = resultSet.getString(202);
expenseHead.CUR20_4 = resultSet.getString(203);
expenseHead.CUR20_5 = resultSet.getString(204);
expenseHead.CUR20_6 = resultSet.getString(205);
expenseHead.CUR20_7 = resultSet.getString(206);
expenseHead.AMT1_1 = resultSet.getReal(207);
expenseHead.AMT1_2 = resultSet.getReal(208);
expenseHead.AMT1_3 = resultSet.getReal(209);
expenseHead.AMT1_4 = resultSet.getReal(210);
expenseHead.AMT1_5 = resultSet.getReal(211);
expenseHead.AMT1_6 = resultSet.getReal(212);
expenseHead.AMT1_7 = resultSet.getReal(213);
expenseHead.AMT2_1 = resultSet.getReal(214);
expenseHead.AMT2_2 = resultSet.getReal(215);
expenseHead.AMT2_3 = resultSet.getReal(216);
expenseHead.AMT2_4 = resultSet.getReal(217);
expenseHead.AMT2_5 = resultSet.getReal(218);
expenseHead.AMT2_6 = resultSet.getReal(219);
expenseHead.AMT2_7 = resultSet.getReal(220);
expenseHead.AMT3_1 = resultSet.getReal(221);
expenseHead.AMT3_2 = resultSet.getReal(222);
expenseHead.AMT3_3 = resultSet.getReal(223);
expenseHead.AMT3_4 = resultSet.getReal(224);
expenseHead.AMT3_5 = resultSet.getReal(225);
expenseHead.AMT3_6 = resultSet.getReal(226);
expenseHead.AMT3_7 = resultSet.getReal(227);
expenseHead.AMT4_1 = resultSet.getReal(228);
expenseHead.AMT4_2 = resultSet.getReal(229);
expenseHead.AMT4_3 = resultSet.getReal(230);
expenseHead.AMT4_4 = resultSet.getReal(231);
expenseHead.AMT4_5 = resultSet.getReal(232);
expenseHead.AMT4_6 = resultSet.getReal(233);
expenseHead.AMT4_7 = resultSet.getReal(234);
expenseHead.AMT5_1 = resultSet.getReal(235);
expenseHead.AMT5_2 = resultSet.getReal(236);
expenseHead.AMT5_3 = resultSet.getReal(237);
expenseHead.AMT5_4 = resultSet.getReal(238);
expenseHead.AMT5_5 = resultSet.getReal(239);
expenseHead.AMT5_6 = resultSet.getReal(240);
expenseHead.AMT5_7 = resultSet.getReal(241);
expenseHead.AMT6_1 = resultSet.getReal(242);
expenseHead.AMT6_2 = resultSet.getReal(243);
expenseHead.AMT6_3 = resultSet.getReal(244);
expenseHead.AMT6_4 = resultSet.getReal(245);
expenseHead.AMT6_5 = resultSet.getReal(246);
expenseHead.AMT6_6 = resultSet.getReal(247);
expenseHead.AMT6_7 = resultSet.getReal(248);
expenseHead.AMT7_1 = resultSet.getReal(250); // no 249
expenseHead.AMT7_2 = resultSet.getReal(251);
expenseHead.AMT7_3 = resultSet.getReal(252);
expenseHead.AMT7_4 = resultSet.getReal(253);
expenseHead.AMT7_5 = resultSet.getReal(254);
expenseHead.AMT7_6 = resultSet.getReal(255);
expenseHead.AMT7_7 = resultSet.getReal(256);
expenseHead.AMT8_1 = resultSet.getReal(257);
expenseHead.AMT8_2 = resultSet.getReal(258);
expenseHead.AMT8_3 = resultSet.getReal(259);
expenseHead.AMT8_4 = resultSet.getReal(260);
expenseHead.AMT8_5 = resultSet.getReal(261);
expenseHead.AMT8_6 = resultSet.getReal(262);
expenseHead.AMT8_7 = resultSet.getReal(263);
expenseHead.AMT9_1 = resultSet.getReal(265); // no 264
expenseHead.AMT9_2 = resultSet.getReal(266);
expenseHead.AMT9_3 = resultSet.getReal(267);
expenseHead.AMT9_4 = resultSet.getReal(268);
expenseHead.AMT9_5 = resultSet.getReal(269);
expenseHead.AMT9_6 = resultSet.getReal(270);
expenseHead.AMT9_7 = resultSet.getReal(271);
expenseHead.AMT10_1 = resultSet.getReal(273); // no 272
expenseHead.AMT10_2 = resultSet.getReal(274);
expenseHead.AMT10_3 = resultSet.getReal(275);
expenseHead.AMT10_4 = resultSet.getReal(276);
expenseHead.AMT10_5 = resultSet.getReal(277);
expenseHead.AMT10_6 = resultSet.getReal(278);
expenseHead.AMT10_7 = resultSet.getReal(279);
expenseHead.AMT11_1 = resultSet.getReal(281); // no 280
expenseHead.AMT11_2 = resultSet.getReal(282);
expenseHead.AMT11_3 = resultSet.getReal(283);
expenseHead.AMT11_4 = resultSet.getReal(284);
expenseHead.AMT11_5 = resultSet.getReal(285);
expenseHead.AMT11_6 = resultSet.getReal(286);
expenseHead.AMT11_7 = resultSet.getReal(287);
expenseHead.AMT12_1 = resultSet.getReal(289); // no 288
expenseHead.AMT12_2 = resultSet.getReal(290);
expenseHead.AMT12_3 = resultSet.getReal(291);
expenseHead.AMT12_4 = resultSet.getReal(292);
expenseHead.AMT12_5 = resultSet.getReal(293);
expenseHead.AMT12_6 = resultSet.getReal(294);
expenseHead.AMT12_7 = resultSet.getReal(295);
expenseHead.AMT13_1 = resultSet.getReal(296);
expenseHead.AMT13_2 = resultSet.getReal(297);
expenseHead.AMT13_3 = resultSet.getReal(298);
expenseHead.AMT13_4 = resultSet.getReal(299);
expenseHead.AMT13_5 = resultSet.getReal(300);
expenseHead.AMT13_6 = resultSet.getReal(301);
expenseHead.AMT13_7 = resultSet.getReal(302);
expenseHead.AMT14_1 = resultSet.getReal(304); //no 303
expenseHead.AMT14_2 = resultSet.getReal(305);
expenseHead.AMT14_3 = resultSet.getReal(306);
expenseHead.AMT14_4 = resultSet.getReal(307);
expenseHead.AMT14_5 = resultSet.getReal(308);
expenseHead.AMT14_6 = resultSet.getReal(309);
expenseHead.AMT14_7 = resultSet.getReal(310);
expenseHead.AMT15_1 = resultSet.getReal(311);
expenseHead.AMT15_2 = resultSet.getReal(312);
expenseHead.AMT15_3 = resultSet.getReal(313);
expenseHead.AMT15_4 = resultSet.getReal(314);
expenseHead.AMT15_5 = resultSet.getReal(315);
expenseHead.AMT15_6 = resultSet.getReal(316);
expenseHead.AMT15_7 = resultSet.getReal(317);
expenseHead.AMT16_1 = resultSet.getReal(319); //no 318
expenseHead.AMT16_2 = resultSet.getReal(320);
expenseHead.AMT16_3 = resultSet.getReal(321);
expenseHead.AMT16_4 = resultSet.getReal(322);
expenseHead.AMT16_5 = resultSet.getReal(323);
expenseHead.AMT16_6 = resultSet.getReal(324);
expenseHead.AMT16_7 = resultSet.getReal(325);
expenseHead.AMT17_1 = resultSet.getReal(326);
expenseHead.AMT17_2 = resultSet.getReal(327);
expenseHead.AMT17_3 = resultSet.getReal(328);
expenseHead.AMT17_4 = resultSet.getReal(329);
expenseHead.AMT17_5 = resultSet.getReal(330);
expenseHead.AMT17_6 = resultSet.getReal(331);
expenseHead.AMT17_7 = resultSet.getReal(332);
expenseHead.AMT18_1 = resultSet.getReal(334); //no 333
expenseHead.AMT18_2 = resultSet.getReal(335);
expenseHead.AMT18_3 = resultSet.getReal(336);
expenseHead.AMT18_4 = resultSet.getReal(337);
expenseHead.AMT18_5 = resultSet.getReal(338);
expenseHead.AMT18_6 = resultSet.getReal(339);
expenseHead.AMT18_7 = resultSet.getReal(340);
expenseHead.AMT17_1 = resultSet.getReal(341);
expenseHead.AMT17_2 = resultSet.getReal(342);
expenseHead.AMT17_3 = resultSet.getReal(343);
expenseHead.AMT17_4 = resultSet.getReal(344);
expenseHead.AMT17_5 = resultSet.getReal(345);
expenseHead.AMT17_6 = resultSet.getReal(346);
expenseHead.AMT17_7 = resultSet.getReal(347);
//no 348
expenseHead.AMT17_1 = resultSet.getReal(349);
expenseHead.AMT17_2 = resultSet.getReal(350);
expenseHead.AMT17_3 = resultSet.getReal(351);
expenseHead.AMT17_4 = resultSet.getReal(352);
expenseHead.AMT17_5 = resultSet.getReal(353);
expenseHead.AMT17_6 = resultSet.getReal(354);
expenseHead.AMT17_7 = resultSet.getReal(355);
expenseHead.insert();
this.update_ExpenseHead(expenseHead.Id);
}
ttsCommit;
//Close the connection.
resultSet.close();
statement.close();
}
else
{
error("Failed to log on to the database through ODBC.");
}
}
Then update this line as processed.
public void update_ExpenseHead(Int _id)
{
LoginProperty loginProperty;
OdbcConnection odbcConnection;
Statement statement;
ResultSet resultSet;
str sql;
SqlStatementExecutePermission perm;
str dsnStr = ACT_IntegrationParameters::findNTD().stagingDSN;
;
// Set the information on the ODBC.
loginProperty = new LoginProperty();
loginProperty.setDSN(dsnStr);
//Create a connection to external database.
odbcConnection = new OdbcConnection(loginProperty);
if (odbcConnection)
{
sql = "Update EXPENSES_HEAD Set AX_Status = 'Processed' WHERE ID = '%1'" ;
sql = strFmt(sql,_id );
//Assert permission for executing the sql string.
perm = new SqlStatementExecutePermission(sql);
perm.assert();
//Prepare the sql statement.
statement = odbcConnection.createStatement();
statement.executeUpdate(sql);
//Close the connection.
statement.close();
}
else
{
error("Failed to log on to the database through ODBC.");
}
}
then auto create general journal
由于有20 行,每行7列。要取用有数据的值来创建journal,所以做法是先取fieldid,然后通过id取值来实现。
Create GL的完整代码:
void CreateQCExpenesJournal()
{
ACT_ExpenseHead head;
FieldId fieldAMT;
FieldId fieldCUR;
FieldId fieldDesc;
FieldId fieldType;
int i ,j;
AxLedgerJournalTable journalTable;
AxLedgerJournalTrans journalTrans;
LedgerJournalTable ledgerJournalTable;
LedgerJournalTrans ledgerJournalTrans;
LedgerJournalName ledgerjournalName;
ACT_QCExpenseType expenseType;
container accCon;
container offSetCon;
ttsBegin;
//journal name
while select head where head.Generated == NoYes::No
{
journalTable = new AxLedgerJournalTable();
select firstonly ledgerJournalName where ledgerJournalname.JournalType == LedgerJournalType::Daily;
journalTable.parmJournalName(ledgerJournalName.JournalName);
journalTable.save();
ledgerjournalTable = LedgerJournalTable::findByRecId(journalTable.ledgerJournalTable().RecId, true);
ledgerJournalTable.Name = strFmt("%1-%2",head.Inspector , head.EXP_NO);
ledgerjournaltable.QCExpense = NoYes::Yes;
ledgerJournalTable.update();
for(i =1; i <=20; i++)
{
for(j = 1; j<=7 ; j ++)
{
fieldAMT = fieldName2Id(tableName2Id("ACT_ExpenseHead"),"AMT"+int2str(i)+"_"+int2str(j));
fieldCUR = fieldName2Id(tableName2Id("ACT_ExpenseHead"),"CUR"+int2str(i)+"_"+int2str(j));
fieldDesc = fieldName2id(TableName2Id("ACT_ExpenseHead"),"Type_Desc" + int2str(i));
fieldType = fieldName2id(TableName2Id("ACT_ExpenseHead"),"Type" + int2str(i));
if(!fieldType)
{
select firstOnly expenseType;
}
else
{
select firstOnly expenseType where expenseType.Type == head.(fieldType);
if(expenseType.RecId == 0)
{
select firstOnly expenseType;
}
}
if(fieldAMT && head.(fieldAMT) > 0)
{
journalTrans = new AxLedgerJournalTrans();
journalTrans.parmJournalNum(journalTable.ledgerJournalTable().JournalNum);
journaltrans.parmTransDate(systemDateGet());
journalTrans.parmAccountType(expenseType.Debit_Type);
accCon = [expenseType.Debit_Account, expenseType.Debit_Account, 0];
switch(expenseType.Debit_Type)
{
case LedgerJournalACType::Cust :
case LedgerJournalACType::Vend :
journalTrans.parmLedgerDimension(DimensionStorage::getDynamicAccount( conPeek(accCon, 1), expenseType.Debit_Type));
break;
case LedgerJournalACType::Ledger:
journalTrans.parmLedgerDimension(AxdDimensionUtil::getLedgerAccountId(accCon));
break;
default:
journalTrans.parmLedgerDimension(AxdDimensionUtil::getLedgerAccountId(accCon));
}
//info(strFmt("%1= %2, dollor = %3",fieldAMT, head.(fieldAMT), head.(fieldCUR)));
journalTrans.parmAmountCurDebit(head.(fieldAMT));
journalTrans.parmCurrencyCode(head.(fieldCUR));
journalTrans.parmTxt(head.(fieldDesc));
journalTrans.parmQCExpenseType(head.(fieldType));
offSetCon = [expenseType.Credit_Account,expenseType.Credit_Account,0];
journalTrans.parmOffsetAccountType(LedgerJournalACType::Ledger );
JournalTrans.clearField(fieldNum(ledgerJournalTrans, offsetLedgerDimension), false);
journalTrans.parmOffsetLedgerDimension(AxdDimensionUtil::getLedgerAccountId(offSetCon));
journalTrans.save();
}
}
}
head.selectForUpdate(true);
head.Generated = NoYes::Yes;
head.JournalNo = journalTable.ledgerJournalTable().JournalNum;
head.update();
info(strFmt("Journal %1 created", journalTable.ledgerJournalTable().JournalNum));
}
ttsCommit;
}