You writing two metot .
First method code
static void LedgerDataAreaUpdateWhile(Ledgertable _Ledgertable)
{
dataarea qdataarea;
DataAreaId eskiDataArea;
Ledgertable TLedgertable ;
LedgerTableInterval sLedgerTableInterval, tLedgerTableInterval;
recid hedefrecid;
;
eskiDataArea = companyinfo::find().dataAreaId;
while select qdataarea where qdataarea.Id != companyinfo::find().KonsilideSirket &&
qdataarea.Id != curext() &&
!qdataarea.isVirtual
{
entegrasyon::LedgerDataAreaUpdate(_Ledgertable,qdataarea);
}
}
======
Second method code
static void LedgerDataAreaUpdate(Ledgertable _Ledgertable,DataArea _DataArea)
{
Ledgertable TLedgertable ;
LedgerTableInterval sLedgerTableInterval, tLedgerTableInterval;
recid hedefrecid;
;
//öncelikle hedefte mevcut mu ya bakýcaz
changeCompany(_DataArea.Id)
{
Select ForUpdate TLedgertable
where TLedgertable.Accountnum ==_Ledgertable.Accountnum
&& TLedgertable.dataAreaId == _DataArea.Id;
if (TLedgertable )
{
ttsbegin;
buf2buf (_Ledgertable,TLedgertable);
TLedgertable.update();
//// accountRecId uyumsuzluðu nedeniyle interval kayýtlarý silinip yeniden oluþturulacak
if (TLedgertable.AccountPlType == LedgerAccountType::sum)
{
while select forupdate TLedgerTableInterval
where TLedgerTableInterval.AccountRecID ==TLedgertable.RecId &&
TLedgerTableInterval.dataAreaId == _DataArea.Id
{
TLedgerTableInterval.delete();
}
}
ttscommit;
}
hedefrecid = TLedgerTable.RecId;
}
///////////////// alt kayýtlarý yeniden ekleyelim. ////////////////////////
if (_Ledgertable.AccountPlType == LedgerAccountType::sum)
{
while select forupdate sLedgerTableInterval
where sLedgerTableInterval.AccountRecID == _Ledgertable.RecId
{
changeCompany(_DataArea.Id)
{
TLedgerTableInterval.selectForUpdate(True);
Buf2Buf(sLedgerTableInterval,TLedgerTableInterval);
TLedgerTableInterval.AccountRecID = hedefrecid;
TLedgerTableInterval.insert();
}
}
}
}
First method code
static void LedgerDataAreaUpdateWhile(Ledgertable _Ledgertable)
{
dataarea qdataarea;
DataAreaId eskiDataArea;
Ledgertable TLedgertable ;
LedgerTableInterval sLedgerTableInterval, tLedgerTableInterval;
recid hedefrecid;
;
eskiDataArea = companyinfo::find().dataAreaId;
while select qdataarea where qdataarea.Id != companyinfo::find().KonsilideSirket &&
qdataarea.Id != curext() &&
!qdataarea.isVirtual
{
entegrasyon::LedgerDataAreaUpdate(_Ledgertable,qdataarea);
}
}
======
Second method code
static void LedgerDataAreaUpdate(Ledgertable _Ledgertable,DataArea _DataArea)
{
Ledgertable TLedgertable ;
LedgerTableInterval sLedgerTableInterval, tLedgerTableInterval;
recid hedefrecid;
;
//öncelikle hedefte mevcut mu ya bakýcaz
changeCompany(_DataArea.Id)
{
Select ForUpdate TLedgertable
where TLedgertable.Accountnum ==_Ledgertable.Accountnum
&& TLedgertable.dataAreaId == _DataArea.Id;
if (TLedgertable )
{
ttsbegin;
buf2buf (_Ledgertable,TLedgertable);
TLedgertable.update();
//// accountRecId uyumsuzluðu nedeniyle interval kayýtlarý silinip yeniden oluþturulacak
if (TLedgertable.AccountPlType == LedgerAccountType::sum)
{
while select forupdate TLedgerTableInterval
where TLedgerTableInterval.AccountRecID ==TLedgertable.RecId &&
TLedgerTableInterval.dataAreaId == _DataArea.Id
{
TLedgerTableInterval.delete();
}
}
ttscommit;
}
hedefrecid = TLedgerTable.RecId;
}
///////////////// alt kayýtlarý yeniden ekleyelim. ////////////////////////
if (_Ledgertable.AccountPlType == LedgerAccountType::sum)
{
while select forupdate sLedgerTableInterval
where sLedgerTableInterval.AccountRecID == _Ledgertable.RecId
{
changeCompany(_DataArea.Id)
{
TLedgerTableInterval.selectForUpdate(True);
Buf2Buf(sLedgerTableInterval,TLedgerTableInterval);
TLedgerTableInterval.AccountRecID = hedefrecid;
TLedgerTableInterval.insert();
}
}
}
}