Public Class Bookissueclass (
Public Class Bookissueclass (
//task 33
public static void bookissuevalidation(list<Book_issue__c> listbooks){
for(Book_issue__c bk: listbooks)
{
if(bk.return_date__c < bk.book_issued_date__c || bk.receive_date__c <
bk.book_issued_date__c|| bk.book_issued_date__c > system.today() ){
bk.addError('return date or receive date should not be less than
the issue date');
}
}
}
public static void updateissuedate(list<Book_issue__c> listbooks)
{ //task 34
for(Book_issue__c bk: listbooks){
if(bk.book_issued_date__c == null ){
bk.book_issued_date__c = system.today();
}
if(bk.return_date__c == null){
bk.return_date__c = bk.book_issued_date__c+7;
}
public static void updatecase(list<Book_issue__c> listbooks){
//task 40
system.debug('book issue records =='+ listbooks);
for(Book_issue__c bk: listbooks){
system.debug('book issue record =='+ bk);
system.debug('book issue record =='+ bk.receive_date__c);
if(bk.receive_date__c <> null && bk.return_date__c < system.today()){
system.debug('receive date value ==' + bk.receive_date__c);
list<case> cs = [SELECT Id,CaseNumber,Subject,Description,Status
FROM case WHERE subject LIKE: '%'+ bk.Name + '%'];
if(cs.size() >0){
case cs1 = new case();
cs1.Id = cs[0].Id;
cs1.Status ='Closed';
system.debug('case status value =='+ cs1.Status);
update cs1;
}
}
public static void getreceivedate(list<Book_issue__c>
listbooks,map<id,Book_issue__c> mapoldbi){ // using handler
for(Book_issue__c bk: listbooks){
if(bk.receive_date__c != mapoldbi.get(bk.Id).receive_date__c){
updatenoofbooksonstudent(bk);
}
}
}
public static void updatenoofbooksonstudent(Book_issue__c bk){
//task 41 and object manager using task 42 also
list<Book_issue__c> listbk = [SELECT ID,name,book_issued_date__c,
return_date__c,receive_date__c, Student__c FROM Book_issue__c WHERE Student__c =:
bk.Student__c and receive_date__c != null ];
if(listbk.size() > 0){
Student__c st = new Student__c();
st.Id = bk.Student__c;
st.No_of_books_returned__c = listbk.size();
update st;