You need to sign in to do that
Don't have an account?
vishnukant pandey
my batch apex is not run properly in a for loop it takes other opportunity id automatically can any one help me
global class MasterPaymentSchedules implements Database.Batchable<sobject>{
global Database.querylocator start(Database.BatchableContext BC){
String s = String.valueOf(system.today());
String Query='select opportunity__c,IsDeleted, Date__c,Payment_Received_Date__c,Open_Principal__c,Total_Pay__c,InterestPmt__c,PrincipalPmt__c,PrincipalPmt_As_Per_Books__c,TDS__c,Net_Payment__c,Clearance__c,ClosingPrincipalBal_As_Per_Books__c,ClosingPrincipalBal__c,Balance_Days_for_NPA__c,Delinquent_Days__c from Payment_Schedules__c WHERE (CreatedDate = TODAY OR LastModifiedDate = TODAY)';
//QueryResult qr = connection.queryAll(Query);
return Database.getQueryLocator(Query);
}
global void execute(Database.BatchableContext BC,List<Payment_Schedules__c> paysch){
List<Master_Payment_Schedules__c> LstNewMPS = new List<Master_Payment_Schedules__c>();
set<id> SETOPP=NEW set<id>();
set<id> setoppid=new set<id>();
map<id,id> mapaccount=new map<id,id>();
FOR(Payment_Schedules__c ps2 : paysch){
Opportunity opp=[select id,accountid from opportunity where id=:ps2.Opportunity__c];
setopp.add(opp.accountid);
setoppid.add(opp.id);
mapaccount.put(opp.id, opp.AccountId);
}
List<Master_Payment_Schedules__c> LstMPS = [select id,Open_Principal__c,Total_Pay__c,InterestPmt__c,Clearance__c ,
PrincipalPmt__c,PrincipalPmt_As_Per_Books__c,TDS__c,Net_Payment__c,ClosingPrincipalBal__c,
ClosingPrincipalBal_As_Per_Books__c,Date__c,Payment_Received_Date__c,Balance_Days_for_NPA__c,
Delinquent_Days__c from Master_Payment_Schedules__c where Account__c in : setopp];
system.debug('LstMPS ** '+LstMPS);
if(LstMPS.Size() > 0){
Delete LstMPS ;
system.debug('MPS Record Delete** '+LstMPS);
}
List<TotalPS> LstTPS = New list<TotalPS>();
for(id opp :setoppid){
List<Payment_Schedules__c> LstPS = [select Date__c,Opportunity__c,Payment_Received_Date__c,Open_Principal__c,Total_Pay__c,InterestPmt__c,
PrincipalPmt__c,PrincipalPmt_As_Per_Books__c,TDS__c,Net_Payment__c,Clearance__c,
ClosingPrincipalBal_As_Per_Books__c,ClosingPrincipalBal__c,Balance_Days_for_NPA__c,Delinquent_Days__c
from Payment_Schedules__c where Opportunity__c =: opp order by Date__c ASC];
Integer psSize = LstPS.size();
//Checking for List of Opportunities on Paymemnt Schedules
for (Integer p = 0; p < psSize; p++) {
Payment_Schedules__c ps = LstPS[p];
TotalPS TPS = New TotalPS();
TPS.opportunityid=ps.Opportunity__c;
Datetime testDate = ps.Date__c;
Date DT = Date.newInstance(testDate.year(), testDate.month(), testDate.day());
Integer DTA = (testDate.year())*100 + testDate.month();
TPS.PSADate = DTA;
TPS.PSDate = DT;
TPS.PSPaymentReceivedDate=ps.Payment_Received_Date__c;
TPS.PSOpenPrincipal = ps.Open_Principal__c;
TPS.PSTotalPay = ps.Total_Pay__c;
TPS.PSInterestPmt = ps.InterestPmt__c;
TPS.PSPrincipalPmt = ps.PrincipalPmt__c;
TPS.PSPrincipalPmtAsPerBooks = ps.PrincipalPmt_As_Per_Books__c;
TPS.PSTDS = ps.TDS__c;
TPS.PSNetPayment = ps.Net_Payment__c;
TPS.PSClosingPrincipalBalAsPerBooks = ps.ClosingPrincipalBal_As_Per_Books__c;
TPS.PSClosingPrincipalBal = ps.ClosingPrincipalBal__c;
TPS.PSClearance = ps.Clearance__c;
TPS.PSDelinquentDays = ps.Delinquent_Days__c;
TPS.PSBalanceDaysforNPA = ps.Balance_Days_for_NPA__c;
system.debug('***TPS'+TPS.PSClosingPrincipalBal);
system.debug('***TPS'+TPS.opportunityid);
LstTPS.add(TPS);
system.debug('*****LstTPS'+LstTPS[p]);
}
}
decimal closingbalance = 0;
decimal openingbalance = 0;
decimal interestpmt = 0;
decimal pricipalpmt = 0;
decimal pricipalbalasperbooks = 0;
decimal closingbalasperbooks = 0;
decimal TotalPay = 0;
decimal NetPay = 0;
decimal TDS = 0;
decimal DelinquentDays=0;
decimal BalanceDaysforNPA=0;
Date dt;
Date PRDate;
Boolean clearence;
system.debug('*****LstTPS'+LstTPS);
Integer LstTPSSize = LstTPS.Size();
system.debug('***LstTPSSize'+LstTPSSize);
for(Integer k = 0 ; k< LstTPSSize ; k++ ){
system.debug('opporunityid'+LstTPS[k].opportunityid);
system.debug('***TPS'+LstTPS[k].PSClosingPrincipalBal);
}
for(payment_schedules__c ps1:paysch){
for(Integer J = 0 ; J< LstTPSSize ; J++ ){
system.debug('*****LstTPS'+mapaccount.get(LstTPS[J].opportunityid));
if(LstTPS[J].opportunityid==ps1.Opportunity__c){
If (J == 0) {
if (LstTPS[J].PSClosingPrincipalBal !=NULL) closingbalance = LstTPS[J].PSClosingPrincipalBal;
if (LstTPS[J].PSOpenPrincipal!=NULL) openingbalance = LstTPS[J].PSOpenPrincipal;
if (LstTPS[J].PSInterestPmt !=NULL) interestpmt = LstTPS[J].PSInterestPmt;
if (LstTPS[J].PSPrincipalPmt !=NULL) pricipalpmt = LstTPS[J].PSPrincipalPmt;
if (LstTPS[J].PSPrincipalPmtAsPerBooks!=NULL) pricipalbalasperbooks = LstTPS[J].PSPrincipalPmtAsPerBooks;
if (LstTPS[J].PSClosingPrincipalBalAsPerBooks!=NULL) closingbalasperbooks = LstTPS[J].PSClosingPrincipalBalAsPerBooks;
if (LstTPS[J].PSTotalPay !=NULL) TotalPay = LstTPS[J].PSTotalPay;
if (LstTPS[J].PSNetPayment!=NULL) NetPay = LstTPS[J].PSNetPayment;
if (LstTPS[J].PSTDS !=NULL ) TDS = LstTPS[J].PSTDS;
if (LstTPS[J].PSPaymentReceivedDate !=NULL) PRDate = LstTPS[J].PSPaymentReceivedDate ;
if (LstTPS[J].PSDate !=NULL) dt = LstTPS[J].PSDate ;
if (LstTPS[J].PSClearance !=NULL) clearence= LstTPS[J].PSClearance ;
if (LstTPS[J].PSDelinquentDays !=NULL) DelinquentDays= LstTPS[J].PSDelinquentDays ;
if (LstTPS[J].PSBalanceDaysforNPA !=NULL) BalanceDaysforNPA= LstTPS[J].PSBalanceDaysforNPA ;
}Else {
if(LstTPS[J].PSADate == LstTPS[J-1].PSADate ){
if (LstTPS[J].PSClosingPrincipalBal !=NULL) closingbalance = closingbalance + LstTPS[J].PSClosingPrincipalBal;
if (LstTPS[J].PSOpenPrincipal!=NULL ) openingbalance = openingbalance + LstTPS[J].PSOpenPrincipal;
if (LstTPS[J].PSInterestPmt !=NULL) interestpmt = interestpmt + LstTPS[J].PSInterestPmt;
if (LstTPS[J].PSPrincipalPmt !=NULL) pricipalpmt = pricipalpmt + LstTPS[J].PSPrincipalPmt;
if (LstTPS[J].PSPrincipalPmtAsPerBooks!=NULL) pricipalbalasperbooks = pricipalbalasperbooks + LstTPS[J].PSPrincipalPmtAsPerBooks;
if (LstTPS[J].PSClosingPrincipalBalAsPerBooks!=NULL) closingbalasperbooks = closingbalasperbooks + LstTPS[J].PSClosingPrincipalBalAsPerBooks;
if (LstTPS[J].PSTotalPay !=NULL) TotalPay = TotalPay + LstTPS[J].PSTotalPay;
if (LstTPS[J].PSNetPayment!=NULL) NetPay = NetPay + LstTPS[J].PSNetPayment;
if (LstTPS[J].PSTDS !=NULL ) TDS = TDS + LstTPS[J].PSTDS;
if (LstTPS[J].PSPaymentReceivedDate !=NULL) PRDate = LstTPS[J].PSPaymentReceivedDate;
if (LstTPS[J].PSDate !=NULL) dt = LstTPS[J].PSDate ;
// Checking True or False(checkbox) value of Clearance(Field) in PaymentSechduels and assign To MasterPaymentSchedules
if (LstTPS[J].PSClearance !=NULL)
if(LstTPS[J].PSClearance == False){
clearence= False ;
}
// Checking Minimum value of Balance Days for NPA(Field) in PaymentSechduels and assign To MasterPaymentSchedules
if (LstTPS[J].PSBalanceDaysforNPA !=NULL)
if (LstTPS[J].PSBalanceDaysforNPA < LstTPS[J-1].PSBalanceDaysforNPA ){
BalanceDaysforNPA = LstTPS[J].PSBalanceDaysforNPA ;
}
// Checking Maximum value of DelinquentDays (Field) in PaymentSechduels and assign To MasterPaymentSchedules
if (LstTPS[J].PSDelinquentDays !=NULL)
if(LstTPS[J].PSDelinquentDays > LstTPS[J-1].PSDelinquentDays ){
DelinquentDays = LstTPS[J].PSDelinquentDays ;
}
}else{
Master_Payment_Schedules__c MPS = new Master_Payment_Schedules__c();
MPS.ClosingPrincipalBal__c = closingbalance ;
MPS.Open_Principal__c = openingbalance;
MPS.InterestPmt__c = interestpmt;
MPS.PrincipalPmt__c = pricipalpmt;
MPS.PrincipalPmt_As_Per_Books__c = pricipalbalasperbooks ;
MPS.ClosingPrincipalBal_As_Per_Books__c = closingbalasperbooks;
MPS.Total_Pay__c = TotalPay;
MPS.Net_Payment__c = NetPay;
MPS.TDS__c = TDS ;
MPS.Date__c = dt ;
MPS.Payment_Received_Date__c = PRDate;
MPS.Clearance__c = clearence;
MPS.Delinquent_Days__c = DelinquentDays;
MPS.Balance_Days_for_NPA__c = BalanceDaysforNPA;
MPS.Account__c = mapaccount.get(ps1.Opportunity__c) ;
LstNewMPS.add(MPS);
system.debug('***LstTPS'+LstTPS[J].opportunityid+'closingbal'+MPS.ClosingPrincipalBal__c);
system.debug('****ps1'+ps1.Opportunity__c);
if (LstTPS[J].PSClosingPrincipalBal !=NULL) closingbalance = LstTPS[J].PSClosingPrincipalBal;
if (LstTPS[J].PSOpenPrincipal!=NULL ) openingbalance = LstTPS[J].PSOpenPrincipal;
if (LstTPS[J].PSInterestPmt !=NULL) interestpmt = LstTPS[J].PSInterestPmt;
if (LstTPS[J].PSPrincipalPmt !=NULL) pricipalpmt = LstTPS[J].PSPrincipalPmt;
if (LstTPS[J].PSPrincipalPmtAsPerBooks!=NULL) pricipalbalasperbooks = LstTPS[J].PSPrincipalPmtAsPerBooks;
if (LstTPS[J].PSClosingPrincipalBalAsPerBooks!=NULL) closingbalasperbooks = LstTPS[J].PSClosingPrincipalBalAsPerBooks;
if (LstTPS[J].PSTotalPay !=NULL) TotalPay = LstTPS[J].PSTotalPay;
if (LstTPS[J].PSNetPayment!=NULL) NetPay = LstTPS[J].PSNetPayment;
if (LstTPS[J].PSTDS !=NULL ) TDS = LstTPS[J].PSTDS;
if (LstTPS[J].PSPaymentReceivedDate !=NULL) PRDate = LstTPS[J].PSPaymentReceivedDate ;
if (LstTPS[J].PSDate !=NULL) dt = LstTPS[J].PSDate ;
if (LstTPS[J].PSClearance !=NULL) clearence = LstTPS[J].PSClearance ;
if (LstTPS[J].PSDelinquentDays !=NULL) DelinquentDays = LstTPS[J].PSDelinquentDays ;
if (LstTPS[J].PSBalanceDaysforNPA !=NULL) BalanceDaysforNPA = LstTPS[J].PSBalanceDaysforNPA ;
}
}
}
}
Master_Payment_Schedules__c MPS = new Master_Payment_Schedules__c();
MPS.ClosingPrincipalBal__c = closingbalance ;
MPS.Open_Principal__c = openingbalance;
MPS.InterestPmt__c = interestpmt;
MPS.PrincipalPmt__c = pricipalpmt;
MPS.PrincipalPmt_As_Per_Books__c = pricipalbalasperbooks ;
MPS.ClosingPrincipalBal_As_Per_Books__c = closingbalasperbooks;
MPS.Total_Pay__c = TotalPay;
MPS.Net_Payment__c = NetPay;
MPS.TDS__c = TDS ;
MPS.Date__c = dt ;
MPS.Payment_Received_Date__c = PRDate;
MPS.Clearance__c = clearence;
MPS.Delinquent_Days__c = DelinquentDays;
MPS.Balance_Days_for_NPA__c = BalanceDaysforNPA;
MPS.Account__c = mapaccount.get(ps1.Opportunity__c) ;
LstNewMPS.add(MPS);
}
Insert LstNewMPS;
system.debug('MPS Records Inserted** '+LstNewMPS);
}
global void finish(Database.BatchableContext BC){
}
}
global Database.querylocator start(Database.BatchableContext BC){
String s = String.valueOf(system.today());
String Query='select opportunity__c,IsDeleted, Date__c,Payment_Received_Date__c,Open_Principal__c,Total_Pay__c,InterestPmt__c,PrincipalPmt__c,PrincipalPmt_As_Per_Books__c,TDS__c,Net_Payment__c,Clearance__c,ClosingPrincipalBal_As_Per_Books__c,ClosingPrincipalBal__c,Balance_Days_for_NPA__c,Delinquent_Days__c from Payment_Schedules__c WHERE (CreatedDate = TODAY OR LastModifiedDate = TODAY)';
//QueryResult qr = connection.queryAll(Query);
return Database.getQueryLocator(Query);
}
global void execute(Database.BatchableContext BC,List<Payment_Schedules__c> paysch){
List<Master_Payment_Schedules__c> LstNewMPS = new List<Master_Payment_Schedules__c>();
set<id> SETOPP=NEW set<id>();
set<id> setoppid=new set<id>();
map<id,id> mapaccount=new map<id,id>();
FOR(Payment_Schedules__c ps2 : paysch){
Opportunity opp=[select id,accountid from opportunity where id=:ps2.Opportunity__c];
setopp.add(opp.accountid);
setoppid.add(opp.id);
mapaccount.put(opp.id, opp.AccountId);
}
List<Master_Payment_Schedules__c> LstMPS = [select id,Open_Principal__c,Total_Pay__c,InterestPmt__c,Clearance__c ,
PrincipalPmt__c,PrincipalPmt_As_Per_Books__c,TDS__c,Net_Payment__c,ClosingPrincipalBal__c,
ClosingPrincipalBal_As_Per_Books__c,Date__c,Payment_Received_Date__c,Balance_Days_for_NPA__c,
Delinquent_Days__c from Master_Payment_Schedules__c where Account__c in : setopp];
system.debug('LstMPS ** '+LstMPS);
if(LstMPS.Size() > 0){
Delete LstMPS ;
system.debug('MPS Record Delete** '+LstMPS);
}
List<TotalPS> LstTPS = New list<TotalPS>();
for(id opp :setoppid){
List<Payment_Schedules__c> LstPS = [select Date__c,Opportunity__c,Payment_Received_Date__c,Open_Principal__c,Total_Pay__c,InterestPmt__c,
PrincipalPmt__c,PrincipalPmt_As_Per_Books__c,TDS__c,Net_Payment__c,Clearance__c,
ClosingPrincipalBal_As_Per_Books__c,ClosingPrincipalBal__c,Balance_Days_for_NPA__c,Delinquent_Days__c
from Payment_Schedules__c where Opportunity__c =: opp order by Date__c ASC];
Integer psSize = LstPS.size();
//Checking for List of Opportunities on Paymemnt Schedules
for (Integer p = 0; p < psSize; p++) {
Payment_Schedules__c ps = LstPS[p];
TotalPS TPS = New TotalPS();
TPS.opportunityid=ps.Opportunity__c;
Datetime testDate = ps.Date__c;
Date DT = Date.newInstance(testDate.year(), testDate.month(), testDate.day());
Integer DTA = (testDate.year())*100 + testDate.month();
TPS.PSADate = DTA;
TPS.PSDate = DT;
TPS.PSPaymentReceivedDate=ps.Payment_Received_Date__c;
TPS.PSOpenPrincipal = ps.Open_Principal__c;
TPS.PSTotalPay = ps.Total_Pay__c;
TPS.PSInterestPmt = ps.InterestPmt__c;
TPS.PSPrincipalPmt = ps.PrincipalPmt__c;
TPS.PSPrincipalPmtAsPerBooks = ps.PrincipalPmt_As_Per_Books__c;
TPS.PSTDS = ps.TDS__c;
TPS.PSNetPayment = ps.Net_Payment__c;
TPS.PSClosingPrincipalBalAsPerBooks = ps.ClosingPrincipalBal_As_Per_Books__c;
TPS.PSClosingPrincipalBal = ps.ClosingPrincipalBal__c;
TPS.PSClearance = ps.Clearance__c;
TPS.PSDelinquentDays = ps.Delinquent_Days__c;
TPS.PSBalanceDaysforNPA = ps.Balance_Days_for_NPA__c;
system.debug('***TPS'+TPS.PSClosingPrincipalBal);
system.debug('***TPS'+TPS.opportunityid);
LstTPS.add(TPS);
system.debug('*****LstTPS'+LstTPS[p]);
}
}
decimal closingbalance = 0;
decimal openingbalance = 0;
decimal interestpmt = 0;
decimal pricipalpmt = 0;
decimal pricipalbalasperbooks = 0;
decimal closingbalasperbooks = 0;
decimal TotalPay = 0;
decimal NetPay = 0;
decimal TDS = 0;
decimal DelinquentDays=0;
decimal BalanceDaysforNPA=0;
Date dt;
Date PRDate;
Boolean clearence;
system.debug('*****LstTPS'+LstTPS);
Integer LstTPSSize = LstTPS.Size();
system.debug('***LstTPSSize'+LstTPSSize);
for(Integer k = 0 ; k< LstTPSSize ; k++ ){
system.debug('opporunityid'+LstTPS[k].opportunityid);
system.debug('***TPS'+LstTPS[k].PSClosingPrincipalBal);
}
for(payment_schedules__c ps1:paysch){
for(Integer J = 0 ; J< LstTPSSize ; J++ ){
system.debug('*****LstTPS'+mapaccount.get(LstTPS[J].opportunityid));
if(LstTPS[J].opportunityid==ps1.Opportunity__c){
If (J == 0) {
if (LstTPS[J].PSClosingPrincipalBal !=NULL) closingbalance = LstTPS[J].PSClosingPrincipalBal;
if (LstTPS[J].PSOpenPrincipal!=NULL) openingbalance = LstTPS[J].PSOpenPrincipal;
if (LstTPS[J].PSInterestPmt !=NULL) interestpmt = LstTPS[J].PSInterestPmt;
if (LstTPS[J].PSPrincipalPmt !=NULL) pricipalpmt = LstTPS[J].PSPrincipalPmt;
if (LstTPS[J].PSPrincipalPmtAsPerBooks!=NULL) pricipalbalasperbooks = LstTPS[J].PSPrincipalPmtAsPerBooks;
if (LstTPS[J].PSClosingPrincipalBalAsPerBooks!=NULL) closingbalasperbooks = LstTPS[J].PSClosingPrincipalBalAsPerBooks;
if (LstTPS[J].PSTotalPay !=NULL) TotalPay = LstTPS[J].PSTotalPay;
if (LstTPS[J].PSNetPayment!=NULL) NetPay = LstTPS[J].PSNetPayment;
if (LstTPS[J].PSTDS !=NULL ) TDS = LstTPS[J].PSTDS;
if (LstTPS[J].PSPaymentReceivedDate !=NULL) PRDate = LstTPS[J].PSPaymentReceivedDate ;
if (LstTPS[J].PSDate !=NULL) dt = LstTPS[J].PSDate ;
if (LstTPS[J].PSClearance !=NULL) clearence= LstTPS[J].PSClearance ;
if (LstTPS[J].PSDelinquentDays !=NULL) DelinquentDays= LstTPS[J].PSDelinquentDays ;
if (LstTPS[J].PSBalanceDaysforNPA !=NULL) BalanceDaysforNPA= LstTPS[J].PSBalanceDaysforNPA ;
}Else {
if(LstTPS[J].PSADate == LstTPS[J-1].PSADate ){
if (LstTPS[J].PSClosingPrincipalBal !=NULL) closingbalance = closingbalance + LstTPS[J].PSClosingPrincipalBal;
if (LstTPS[J].PSOpenPrincipal!=NULL ) openingbalance = openingbalance + LstTPS[J].PSOpenPrincipal;
if (LstTPS[J].PSInterestPmt !=NULL) interestpmt = interestpmt + LstTPS[J].PSInterestPmt;
if (LstTPS[J].PSPrincipalPmt !=NULL) pricipalpmt = pricipalpmt + LstTPS[J].PSPrincipalPmt;
if (LstTPS[J].PSPrincipalPmtAsPerBooks!=NULL) pricipalbalasperbooks = pricipalbalasperbooks + LstTPS[J].PSPrincipalPmtAsPerBooks;
if (LstTPS[J].PSClosingPrincipalBalAsPerBooks!=NULL) closingbalasperbooks = closingbalasperbooks + LstTPS[J].PSClosingPrincipalBalAsPerBooks;
if (LstTPS[J].PSTotalPay !=NULL) TotalPay = TotalPay + LstTPS[J].PSTotalPay;
if (LstTPS[J].PSNetPayment!=NULL) NetPay = NetPay + LstTPS[J].PSNetPayment;
if (LstTPS[J].PSTDS !=NULL ) TDS = TDS + LstTPS[J].PSTDS;
if (LstTPS[J].PSPaymentReceivedDate !=NULL) PRDate = LstTPS[J].PSPaymentReceivedDate;
if (LstTPS[J].PSDate !=NULL) dt = LstTPS[J].PSDate ;
// Checking True or False(checkbox) value of Clearance(Field) in PaymentSechduels and assign To MasterPaymentSchedules
if (LstTPS[J].PSClearance !=NULL)
if(LstTPS[J].PSClearance == False){
clearence= False ;
}
// Checking Minimum value of Balance Days for NPA(Field) in PaymentSechduels and assign To MasterPaymentSchedules
if (LstTPS[J].PSBalanceDaysforNPA !=NULL)
if (LstTPS[J].PSBalanceDaysforNPA < LstTPS[J-1].PSBalanceDaysforNPA ){
BalanceDaysforNPA = LstTPS[J].PSBalanceDaysforNPA ;
}
// Checking Maximum value of DelinquentDays (Field) in PaymentSechduels and assign To MasterPaymentSchedules
if (LstTPS[J].PSDelinquentDays !=NULL)
if(LstTPS[J].PSDelinquentDays > LstTPS[J-1].PSDelinquentDays ){
DelinquentDays = LstTPS[J].PSDelinquentDays ;
}
}else{
Master_Payment_Schedules__c MPS = new Master_Payment_Schedules__c();
MPS.ClosingPrincipalBal__c = closingbalance ;
MPS.Open_Principal__c = openingbalance;
MPS.InterestPmt__c = interestpmt;
MPS.PrincipalPmt__c = pricipalpmt;
MPS.PrincipalPmt_As_Per_Books__c = pricipalbalasperbooks ;
MPS.ClosingPrincipalBal_As_Per_Books__c = closingbalasperbooks;
MPS.Total_Pay__c = TotalPay;
MPS.Net_Payment__c = NetPay;
MPS.TDS__c = TDS ;
MPS.Date__c = dt ;
MPS.Payment_Received_Date__c = PRDate;
MPS.Clearance__c = clearence;
MPS.Delinquent_Days__c = DelinquentDays;
MPS.Balance_Days_for_NPA__c = BalanceDaysforNPA;
MPS.Account__c = mapaccount.get(ps1.Opportunity__c) ;
LstNewMPS.add(MPS);
system.debug('***LstTPS'+LstTPS[J].opportunityid+'closingbal'+MPS.ClosingPrincipalBal__c);
system.debug('****ps1'+ps1.Opportunity__c);
if (LstTPS[J].PSClosingPrincipalBal !=NULL) closingbalance = LstTPS[J].PSClosingPrincipalBal;
if (LstTPS[J].PSOpenPrincipal!=NULL ) openingbalance = LstTPS[J].PSOpenPrincipal;
if (LstTPS[J].PSInterestPmt !=NULL) interestpmt = LstTPS[J].PSInterestPmt;
if (LstTPS[J].PSPrincipalPmt !=NULL) pricipalpmt = LstTPS[J].PSPrincipalPmt;
if (LstTPS[J].PSPrincipalPmtAsPerBooks!=NULL) pricipalbalasperbooks = LstTPS[J].PSPrincipalPmtAsPerBooks;
if (LstTPS[J].PSClosingPrincipalBalAsPerBooks!=NULL) closingbalasperbooks = LstTPS[J].PSClosingPrincipalBalAsPerBooks;
if (LstTPS[J].PSTotalPay !=NULL) TotalPay = LstTPS[J].PSTotalPay;
if (LstTPS[J].PSNetPayment!=NULL) NetPay = LstTPS[J].PSNetPayment;
if (LstTPS[J].PSTDS !=NULL ) TDS = LstTPS[J].PSTDS;
if (LstTPS[J].PSPaymentReceivedDate !=NULL) PRDate = LstTPS[J].PSPaymentReceivedDate ;
if (LstTPS[J].PSDate !=NULL) dt = LstTPS[J].PSDate ;
if (LstTPS[J].PSClearance !=NULL) clearence = LstTPS[J].PSClearance ;
if (LstTPS[J].PSDelinquentDays !=NULL) DelinquentDays = LstTPS[J].PSDelinquentDays ;
if (LstTPS[J].PSBalanceDaysforNPA !=NULL) BalanceDaysforNPA = LstTPS[J].PSBalanceDaysforNPA ;
}
}
}
}
Master_Payment_Schedules__c MPS = new Master_Payment_Schedules__c();
MPS.ClosingPrincipalBal__c = closingbalance ;
MPS.Open_Principal__c = openingbalance;
MPS.InterestPmt__c = interestpmt;
MPS.PrincipalPmt__c = pricipalpmt;
MPS.PrincipalPmt_As_Per_Books__c = pricipalbalasperbooks ;
MPS.ClosingPrincipalBal_As_Per_Books__c = closingbalasperbooks;
MPS.Total_Pay__c = TotalPay;
MPS.Net_Payment__c = NetPay;
MPS.TDS__c = TDS ;
MPS.Date__c = dt ;
MPS.Payment_Received_Date__c = PRDate;
MPS.Clearance__c = clearence;
MPS.Delinquent_Days__c = DelinquentDays;
MPS.Balance_Days_for_NPA__c = BalanceDaysforNPA;
MPS.Account__c = mapaccount.get(ps1.Opportunity__c) ;
LstNewMPS.add(MPS);
}
Insert LstNewMPS;
system.debug('MPS Records Inserted** '+LstNewMPS);
}
global void finish(Database.BatchableContext BC){
}
}
One thing I did notice in your code is you are placing a soql query inside for loop which is not recommended by salesforce.
You can try by making this change. I'm not sure if this solve the real problem or not. You can try atleast.
Gauravendra for your response.
but my problem is that when i am insert or update payment schedule which is child of opportunity then master payment schedule insert which is child of account.it works but in my code last payment schedule of the list take other opportunity automatically.
i checked by debug when i am adding record in lstTPS list then opportunity is different but after the codition if(LstTPS[J].opportunityid==ps1.Opportunity__c) it also inters in code
but both is not equal i check by debug