IMMREX7

aku nok ndi : /home/spdtg/www/schoolmis/app/Http/Controllers/School/Library/
File Up :
aku nok ndi : /home/spdtg/www/schoolmis/app/Http/Controllers/School/Library/BookEntryController.php

<?php

namespace App\Http\Controllers\School\Library;

use Illuminate\Http\Request;
use App\Http\Controllers\School\SchoolController;
use DB;
use Auth;
use App\Http\Requests\LibraryBookRequest;
use Carbon\Carbon;
use Session;

class BookEntryController extends SchoolController {

    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index(Request $request) {
        $today_date = Carbon::today()->format('Y-m-d');
        if ($request->has('fromDate') && $request->fromDate != null) {
            $from_date = Carbon::createFromFormat('d-m-Y', $request->fromDate);
        }
        if ($request->has('toDate') && $request->toDate != null) {
            $to_date = Carbon::createFromFormat('d-m-Y', $request->toDate);
        }
        $subjects = ['' => '---Select--'] + \App\BookSubject::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('subjectName', 'idBookSubject')->toArray();
        $publishers = ['' => '---Select--'] + \App\BookPublisher::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('publisherName', 'idPublisher')->toArray();
        $vendors = ['' => '---Select--'] + \App\BookVendor::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('vendorName', 'idVendor')->toArray();
        $faculties = ['' => '---Select--'] + \App\BookFaculty::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('facultyName', 'idFaculty')->toArray();
        $languages = ['' => '---Select--'] + \App\BookLanguage::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('languageName', 'idLanguage')->toArray();
        $booktypes = ['' => '---Select--'] + \App\BookType::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('typeName', 'idBookType')->toArray();
        $authors = ['' => '---Select--'] + \App\BookAuthor::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('authorName', 'idAuthor')->toArray();
        $series = ['' => '---Select--'] + \App\BookSeries::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('seriesName', 'idBookSeries')->toArray();
        $locations = ['' => '---Select--'] + \App\BookLocation::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('locName', 'idBookLocation')->toArray();
        $subclassesone = ['' => '---Select--'] + \App\BookSubclass::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->where('level', '=', '1')
                        ->pluck('classNo', 'idSubclass')->toArray();
        $books = DB::table('books')
                ->leftjoin('book_subjects', 'books.idBookSubject', '=', 'book_subjects.idBookSubject')
                ->leftjoin('book_publisher', 'books.idPublisher', '=', 'book_publisher.idPublisher')
                ->leftjoin('book_vendors', 'books.idVendor', '=', 'book_vendors.idVendor')
                ->leftjoin('book_faculty', 'books.idFaculty', '=', 'book_faculty.idFaculty')
                ->leftjoin('language', 'books.idLanguage', '=', 'language.idLanguage')
                ->leftjoin('book_types', 'books.idBookType', '=', 'book_types.idBookType')
                ->leftjoin('book_authors', 'books.idAuthor', '=', 'book_authors.idAuthor')
                ->leftjoin('book_editors', 'books.idEditor', '=', 'book_editors.idEditor')
                ->leftjoin('book_series', 'books.idBookSeries', '=', 'book_series.idBookSeries')
                ->leftjoin('book_location', 'books.idBookLocation', '=', 'book_location.idBookLocation')
                ->leftjoin('book_subclass', 'books.idSubClassno', '=', 'book_subclass.idSubclass')
                ->where('books.idSchool', '=', Auth::guard('school')->user()->idSchool)
                ->select('bookStatus', 'title', 'books.idSchool', 'idBook', 'bookImage', 'rfid', 'accessionNo', 'authorName', 'publisherName', 'publicationYear', 'seriesName', 'locName', 'editorName', 'classNo');
        //->get();
        if ($request->has('idBookType') && $request->idBookType != null) {
            $books = $books->where('idBookType', '=', $request->idBookType)->get();
        }
        if ($request->has('idSeries') && $request->idSeries != null) {
            $books = $books->where('idSeries', '=', $request->idSeries)->get();
        }
        if ($request->has('idLocation') && $request->idLocation != null) {
            $books = $books->where('idLocation', '=', $request->idLocation)->get();
        }
        if ($request->has('idPublisher') && $request->idPublisher != null) {
            $books = $books->where('idPublisher', '=', $request->idPublisher)->get();
        }
        if ($request->has('idAuthor') && $request->idAuthor != null) {
            $books = $books->where('idAuthor', '=', $request->idAuthor)->get();
        }
        if ($request->has('idVendor') && $request->idVendor != null) {
            $books = $books->where('idVendor', '=', $request->idVendor)->get();
        }
        if ($request->has('idLanguage') && $request->idLanguage != null) {
            $books = $books->where('idLanguage', '=', $request->idLanguage)->get();
        }
        if ($request->has('idBookSubject') && $request->idBookSubject != null) {
            $books = $books->where('idBookSubject', '=', $request->idBookSubject)->get();
        }
        if ($request->has('idFaculty') && $request->idFaculty != null) {
            $books = $books->where('idFaculty', '=', $request->idFaculty)->get();
        }

        if ($request->toDate != null && $request->fromDate != null) {
            $books = $books->whereBetween('books.billDate', [$from_date->format('Y-m-d'), $to_date->format('Y-m-d')])->get();
        } else if ($request->has('fromDate') && $request->fromDate != null) {
            $books = $books->whereBetween('books.billDate', [$from_date->format('Y-m-d'), $today_date])->get();
        } else if ($request->has('toDate') && $request->toDate != null) {
            $books = $books->whereDate('books.billDate', '<=', $to_date)->get();
        } else {
            $books = $books->get();
        }
        return view('schools.library.booklist', compact('books', 'subjects', 'publishers', 'vendors', 'faculties', 'languages', 'booktypes', 'authors', 'series', 'locations', 'subclassesone', 'editors'));
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create() {
        $booktypes = ['' => '---Select--'] + \App\BookType::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('typeName', 'idBookType')->toArray();
        $sizes = \App\BookSize::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('sizeName', 'idBookSize')->toArray();
        $publishers = \App\BookPublisher::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('publisherName', 'idPublisher')->toArray();
        $places = \App\BookPublicationPlace::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('placeName', 'idPublicationPlace')->toArray();
        $languages = \App\BookLanguage::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('languageName', 'idLanguage')->toArray();
        $sourcelangs = \App\BookSourceLanguage::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('sourcelangName', 'idSourceLanguage')->toArray();
        $authors = \App\BookAuthor::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('authorName', 'idAuthor')->toArray();
        $editors = \App\BookEditor::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('editorName', 'idEditor')->toArray();
        $series = \App\BookSeries::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('seriesName', 'idBookSeries')->toArray();
        $faculties = \App\BookFaculty::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('facultyName', 'idFaculty')->toArray();
        $subjects = \App\BookSubject::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('subjectName', 'idBookSubject')->toArray();
        $bindings = \App\BindingType::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('typeName', 'idBindingType')->toArray();
        $materials = \App\AccompanyMaterial::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('materialName', 'idMaterial')->toArray();
        $corporates = \App\BookCorporate::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('corporateName', 'idCorporate')->toArray();
        $vendors = \App\BookVendor::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('vendorName', 'idVendor')->toArray();
        $classifications = \App\BookClassification::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('classificationName', 'idClassification')->toArray();
        $subclassesone = \App\BookSubclass::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->where('level', '=', '1')
                        ->pluck('classNo', 'idSubclass')->toArray();
        $subclassestwo = \App\BookSubclass::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->where('level', '=', '2')
                        ->pluck('classNo', 'idSubclass')->toArray();
        $locations = \App\BookLocation::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('locName', 'idBookLocation')->toArray();
        return view('schools.library.book_entry', compact('sizes', 'locations', 'booktypes', 'authors', 'publishers', 'editors', 'places', 'languages', 'sourcelangs'
                        , 'series', 'faculties', 'subjects', 'bindings', 'materials', 'corporates', 'vendors', 'classifications', 'subclassesone', 'subclassestwo'));
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(LibraryBookRequest $request) {
        //dd($request->all());
        // If New Publisher is Added
        if ($request->has('Publisher') && $request->Publisher != null) {
            $publisher = \App\BookPublisher::where('publisherName', '=', $request->Publisher)
                    ->where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                    ->first();
            if (!empty($publisher)) {
                $idPublisher = $publisher->idPublisher;
            } else {
                $publisher = new \App\BookPublisher;
                $publisher->fill($request->all());
                $publisher->idSchool = Auth::guard('school')->user()->idSchool;
                $publisher->publisherName = $request->Publisher;
                $publisher->save();
                $idPublisher = $publisher->idPublisher;
            }
        } else {
            $idPublisher = null;
        }
        // If New Publication Place is Added
        if ($request->has('Publicationplace') && $request->Publicationplace != null) {
            $pubplace = \App\BookPublicationPlace::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                    ->where('placeName', '=', $request->Publicationplace)
                    ->first();
            if (!empty($pubplace)) {
                $idPublicationPlace = $pubplace->idPublicationPlace;
            } else {
                $pubplace = new \App\BookPublicationPlace;
                $pubplace->fill($request->all());
                $pubplace->idSchool = Auth::guard('school')->user()->idSchool;
                $pubplace->placeName = $request->Publicationplace;
                $pubplace->save();
                $idPublicationPlace = $pubplace->idPublicationPlace;
            }
        } else {
            $idPublicationPlace = null;
        }

        //If New Author  is Added
        if ($request->has('Author') && $request->Author != null) {
            $author = \App\BookAuthor::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                    ->where('authorName', '=', $request->Author)
                    ->first();
            if (!empty($author)) {
                $idAuthor = $author->idAuthor;
            } else {
                $author = new \App\BookAuthor;
                $author->fill($request->all());
                $author->idSchool = Auth::guard('school')->user()->idSchool;
                $author->authorName = $request->Author;
                $author->save();
                $idAuthor = $author->idAuthor;
            }
        } else {
            $idAuthor = null;
        }

        //If New Language  is Added
        if ($request->has('Language') && $request->Language != null) {
            $language = \App\BookLanguage::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                    ->where('languageName', '=', $request->Language)
                    ->first();
            if (!empty($language)) {
                $idLanguage = $language->idLanguage;
            } else {
                $language = new \App\BookLanguage;
                $language->fill($request->all());
                $language->idSchool = Auth::guard('school')->user()->idSchool;
                $language->languageName = $request->Language;
                $language->save();
                $idLanguage = $language->idLanguage;
            }
        } else {
            $idLanguage = null;
        }

        //If New SourceLanguage  is Added
        if ($request->has('SourceLanguage') && $request->SourceLanguage != null) {
            $slanguage = \App\BookSourceLanguage::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                    ->where('sourcelangName', '=', $request->SourceLanguage)
                    ->first();
            if (!empty($slanguage)) {
                $idSourceLanguage = $slanguage->idSourceLanguage;
            } else {
                $slanguage = new \App\BookSourceLanguage();
                $slanguage->fill($request->all());
                $slanguage->idSchool = Auth::guard('school')->user()->idSchool;
                $slanguage->sourcelangName = $request->SourceLanguage;
                $slanguage->save();
                $idSourceLanguage = $slanguage->idSourceLanguage;
            }
        } else {
            $idSourceLanguage = null;
        }

        //If New Classification  is Added
        if ($request->has('Classification') && $request->Classification != null) {
            $classification = \App\BookClassification::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                    ->where('classificationName', '=', $request->Classification)
                    ->first();
            if (!empty($classification)) {
                $idClassification = $classification->idClassification;
            } else {
                $classification = new \App\BookClassification();
                $classification->fill($request->all());
                $classification->idSchool = Auth::guard('school')->user()->idSchool;
                $classification->classificationName = $request->Classification;
                $classification->save();
                $idClassification = $classification->idClassification;
            }
        } else {
            $idClassification = null;
        }

        //If New Book Location  is Added
        if ($request->has('BookLocation') && $request->BookLocation != null) {
            $location = \App\BookLocation::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                    ->where('locName', '=', $request->BookLocation)
                    ->first();
            if (!empty($location)) {
                $idBookLocation = $location->idBookLocation;
            } else {
                $location = new \App\BookLocation;
                $location->fill($request->all());
                $location->idSchool = Auth::guard('school')->user()->idSchool;
                $location->locName = $request->BookLocation;
                $location->save();
                $idBookLocation = $location->idBookLocation;
            }
        } else {
            $idBookLocation = null;
        }

        //If New SubClass one  is Added
        if ($request->has('SubClassno') && $request->SubClassno != null) {
            $subclassone = \App\BookSubclass::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                    ->where('level', '=', '1')
                    ->where('classNo', '=', $request->SubClassno)
                    ->first();
            if (!empty($subclassone)) {
                $idSubclassone = $subclassone->idSubclass;
            } else {
                $subclassone = new \App\BookSubclass;
                $subclassone->fill($request->all());
                $subclassone->idSchool = Auth::guard('school')->user()->idSchool;
                $subclassone->level = 1;
                $subclassone->classNo = $request->SubClassno;
                $subclassone->save();
                $idSubclassone = $subclassone->idSubclass;
            }
        } else {
            $idSubclassone = null;
        }

        //If New SubClass TWO  is Added
        if ($request->has('SubClasstwo') && $request->SubClasstwo != null) {
            $subclasstwo = \App\BookSubclass::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                    ->where('level', '=', '2')
                    ->where('classNo', '=', $request->SubClasstwo)
                    ->first();
            if (!empty($subclasstwo)) {
                $idSubclasstwo = $subclasstwo->idSubclass;
            } else {
                $subclasstwo = new \App\BookSubclass;
                $subclasstwo->fill($request->all());
                $subclasstwo->idSchool = Auth::guard('school')->user()->idSchool;
                $subclasstwo->classNo = $request->SubClasstwo;
                $subclasstwo->level = 2;
                $subclasstwo->save();
                $idSubclasstwo = $subclasstwo->idSubclass;
            }
        } else {
            $idSubclasstwo = null;
        }

        //If New Editor  is Added
        if ($request->has('Editor') && $request->Editor != null) {
            $editor = \App\BookEditor::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                    ->where('editorName', '=', $request->Editor)
                    ->first();
            if (!empty($editor)) {
                $idEditor = $editor->idEditor;
            } else {
                $editor = new \App\BookEditor();
                $editor->fill($request->all());
                $editor->idSchool = Auth::guard('school')->user()->idSchool;
                $editor->editorName = $request->Editor;
                $editor->save();
                $idEditor = $editor->idEditor;
            }
        } else {
            $idEditor = null;
        }
        //If New BookSeries  is Added
        if ($request->has('BookSeries') && $request->BookSeries != null) {
            $series = \App\BookSeries::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                    ->where('seriesName', '=', $request->BookSeries)
                    ->first();
            if (!empty($series)) {
                $idBookSeries = $series->idBookSeries;
            } else {
                $series = new \App\BookSeries();
                $series->fill($request->all());
                $series->idSchool = Auth::guard('school')->user()->idSchool;
                $series->seriesName = $request->BookSeries;
                $series->save();
                $idBookSeries = $series->idBookSeries;
            }
        } else {
            $idBookSeries = null;
        }

        //If New Vendor  is Added
        if ($request->has('Vendor') && $request->Vendor != null) {
            $vendor = \App\BookVendor::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                    ->where('vendorName', '=', $request->Vendor)
                    ->first();
            if (!empty($vendor)) {
                $idVendor = $vendor->idVendor;
            } else {
                $vendor = new \App\BookVendor();
                $vendor->fill($request->all());
                $vendor->idSchool = Auth::guard('school')->user()->idSchool;
                $vendor->vendorName = $request->Vendor;
                $vendor->save();
                $idVendor = $vendor->idVendor;
            }
        } else {
            $idVendor = null;
        }

        //If New Book Subject  is Added
        if ($request->has('BookSubject') && $request->BookSubject != null) {
            $subject = \App\BookSubject::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                    ->where('subjectName', '=', $request->BookSubject)
                    ->first();
            if (!empty($subject)) {
                $idBookSubject = $subject->idBookSubject;
            } else {
                $subject = new \App\BookSubject();
                $subject->fill($request->all());
                $subject->idSchool = Auth::guard('school')->user()->idSchool;
                $subject->subjectName = $request->BookSubject;
                $subject->save();
                $idBookSubject = $subject->idBookSubject;
            }
        } else {
            $idBookSubject = null;
        }

        //If New Faculty  is Added
        if ($request->has('Faculty') && $request->Faculty != null) {
            $faculty = \App\BookFaculty::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                    ->where('facultyName', '=', $request->Faculty)
                    ->first();
            if (!empty($faculty)) {
                $idFaculty = $faculty->idFaculty;
            } else {
                $faculty = new \App\BookFaculty();
                $faculty->fill($request->all());
                $faculty->idSchool = Auth::guard('school')->user()->idSchool;
                $faculty->facultyName = $request->Faculty;
                $faculty->save();
                $idFaculty = $faculty->idFaculty;
            }
        } else {
            $idFaculty = null;
        }

        //If New BindingType  is Added
        if ($request->has('BindingType') && $request->BindingType != null) {
            $binding = \App\BindingType::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                    ->where('typeName', '=', $request->BindingType)
                    ->first();
            if (!empty($binding)) {
                $idBindingType = $binding->idBindingType;
            } else {
                $binding = new \App\BindingType();
                $binding->fill($request->all());
                $binding->idSchool = Auth::guard('school')->user()->idSchool;
                $binding->typeName = $request->BindingType;
                $binding->save();
                $idBindingType = $binding->idBindingType;
            }
        } else {
            $idBindingType = null;
        }

        //If New Book Size  is Added
        if ($request->has('BookSize') && $request->BookSize != null) {
            $size = \App\BookSize::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                    ->where('sizeName', '=', $request->BookSize)
                    ->first();
            if (!empty($size)) {
                $idBookSize = $size->idBookSize;
            } else {
                $size = new \App\BookSize();
                $size->fill($request->all());
                $size->idSchool = Auth::guard('school')->user()->idSchool;
                $size->sizeName = $request->BookSize;
                $size->save();
                $idBookSize = $size->idBookSize;
            }
        } else {
            $idBookSize = null;
        }

        //If New Material  is Added
        if ($request->has('Material') && $request->Material != null) {
            $material = \App\AccompanyMaterial::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                    ->where('materialName', '=', $request->Material)
                    ->first();
            if (!empty($material)) {
                $idMaterial = $material->idMaterial;
            } else {
                $material = new \App\AccompanyMaterial();
                $material->fill($request->all());
                $material->idSchool = Auth::guard('school')->user()->idSchool;
                $material->materialName = $request->Material;
                $material->save();
                $idMaterial = $material->idMaterial;
            }
        } else {
            $idMaterial = null;
        }

        //If New Corporate  is Added
        if ($request->has('Corporate') && $request->Corporate != null) {
            $corporate = \App\BookCorporate::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                    ->where('corporateName', '=', $request->Corporate)
                    ->first();
            if (!empty($corporate)) {
                $idCorporate = $corporate->idCorporate;
            } else {
                $corporate = new \App\BookCorporate();
                $corporate->fill($request->all());
                $corporate->idSchool = Auth::guard('school')->user()->idSchool;
                $corporate->corporateName = $request->Corporate;
                $corporate->save();
                $idCorporate = $corporate->idCorporate;
            }
        } else {
            $idCorporate = null;
        }
        // New Book Entry Start
        $book = new \App\Book;
        $book->fill($request->all());
        $book->idSchool = Auth::guard('school')->user()->idSchool;
        $book->idFinancialyear = Session::get('idFinancialYear');
        $book->idPublisher = $idPublisher;
        $book->idPlace = $idPublicationPlace;
        $book->idAuthor = $idAuthor;
        $book->idLanguage = $idLanguage;
        $book->idSourceLanguage = $idSourceLanguage;
        $book->idClassification = $idClassification;
        $book->idBookLocation = $idBookLocation;
        $book->idSubClassno = $idSubclassone;
        $book->idSubclasstwo = $idSubclasstwo;
        $book->idEditor = $idEditor;
        $book->idBookSeries = $idBookSeries;
        $book->idEditor = $idEditor;
        $book->idVendor = $idVendor;
        $book->idBookSubject = $idBookSubject;
        $book->idFaculty = $idFaculty;
        $book->idBindingType = $idBindingType;
        $book->idBookSize = $idBookSize;
        $book->idMaterial = $idMaterial;
        $book->idCorporate = $idCorporate;

        DB::beginTransaction();
        $book->save();
        if ($request->hasFile('bookImage')) {
            $image = 'book_' . $book->idBook . '.' . $request->file('bookImage')->getClientOriginalExtension();
            $request->file('bookImage')->storeAs('public/schools/' . Auth::guard('school')->user()->idSchool . '/library/', $image);
            $book->bookImage = $image;
        }
        if ($request->hasFile('ebook')) {
            $ebook = 'ebook_' . $book->idBook . '.' . $request->file('bookImage')->getClientOriginalExtension();
            $request->file('ebook')->storeAs('public/schools/' . Auth::guard('school')->user()->idSchool . '/library/', $ebook);
            $book->ebook = $ebook;
        }
        $book->update();
        DB::commit();
        // New Book Entry END
        $i = 0;
        if ($request->noOfCopy > 1) {
            for ($i = 1; $i < $request->noOfCopy; $i++) {
                $book_existing = \App\Book::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->where('idBookType', '=', $book->idBookType)
                        ->latest()
                        ->first();
                $newBook = $book->replicate();
                $accessionNo = $book_existing->accessionNo;
                $accession = ++$accessionNo;
                $newBook->accessionNo = $accession;
                $newBook->save();
            }
            
        }
       
        return redirect('school/books');
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id) {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id) {
        $booktypes = ['' => '---Select--'] + \App\BookType::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('typeName', 'idBookType')->toArray();
        $sizes = ['' => '---Select--'] + \App\BookSize::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('sizeName', 'idBookSize')->toArray();
        $publishers = ['' => '---Select--'] + \App\BookPublisher::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('publisherName', 'idPublisher')->toArray();
        $places = ['' => '---Select--'] + \App\BookPublicationPlace::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('placeName', 'idPublicationPlace')->toArray();
        $languages = ['' => '---Select--'] + \App\BookLanguage::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('languageName', 'idLanguage')->toArray();
        $sourcelangs = ['' => '---Select--'] + \App\BookSourceLanguage::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('sourcelangName', 'idSourceLanguage')->toArray();
        $authors = ['' => '---Select--'] + \App\BookAuthor::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('authorName', 'idAuthor')->toArray();
        $editors = ['' => '---Select--'] + \App\BookEditor::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('editorName', 'idEditor')->toArray();
        $series = ['' => '---Select--'] + \App\BookSeries::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('seriesName', 'idBookSeries')->toArray();
        $faculties = ['' => '---Select--'] + \App\BookFaculty::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('facultyName', 'idFaculty')->toArray();
        $subjects = ['' => '---Select--'] + \App\BookSubject::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('subjectName', 'idBookSubject')->toArray();
        $bindings = ['' => '---Select--'] + \App\BindingType::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('typeName', 'idBindingType')->toArray();
        $materials = ['' => '---Select--'] + \App\AccompanyMaterial::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('materialName', 'idMaterial')->toArray();
        $corporates = ['' => '---Select--'] + \App\BookCorporate::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('corporateName', 'idCorporate')->toArray();
        $vendors = ['' => '---Select--'] + \App\BookVendor::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('vendorName', 'idVendor')->toArray();
        $classifications = ['' => '---Select--'] + \App\BookClassification::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('classificationName', 'idClassification')->toArray();
        $subclassesone = ['' => '---Select--'] + \App\BookSubclass::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->where('level', '=', '1')
                        ->pluck('classNo', 'idSubclass')->toArray();
        $subclassestwo = ['' => '---Select--'] + \App\BookSubclass::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->where('level', '=', '2')
                        ->pluck('classNo', 'idSubclass')->toArray();
        $locations = ['' => '---Select--'] + \App\BookLocation::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->pluck('locName', 'idBookLocation')->toArray();
        $book = \App\Book::where('idBook', '=', $id)->first();
        return view('schools.library.book_edit', compact('book', 'sizes', 'locations', 'booktypes', 'authors', 'publishers', 'editors', 'places', 'languages', 'sourcelangs'
                        , 'series', 'faculties', 'subjects', 'bindings', 'materials', 'corporates', 'vendors', 'classifications', 'subclassesone', 'subclassestwo'));
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(LibraryBookRequest $request, $id) {
        $book = \App\Book::where('idBook', '=', $id)->first();
        $book->fill($request->all());
        if ($request->hasFile('bookImage')) {
            $image = 'book_' . $book->idBook . '.' . $request->file('bookImage')->getClientOriginalExtension();
            $request->file('bookImage')->storeAs('public/schools/' . Auth::guard('school')->user()->idSchool . '/library/', $image);
            $book->bookImage = $image;
        }
        if ($request->hasFile('ebook')) {
            $ebook = 'ebook_' . $book->idBook . '.' . $request->file('bookImage')->getClientOriginalExtension();
            $request->file('ebook')->storeAs('public/schools/' . Auth::guard('school')->user()->idSchool . '/library/', $ebook);
            $book->ebook = $ebook;
        }
        $book->update();
        return redirect('school/books');
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id) {
        $book = \App\Book::where('idBook', '=', $id)->first();
        $book->delete();
        return response()->json(['success' => "SUCCESS"], 200, ['app-status' => 'success']);
    }

    public function lostBook() {
        return view('schools.library.lost_damaged_book');
    }

    public function savelostBook(Request $request) {
        $book = \App\Book::where("accessionNo", '=', $request->accessionNo)
                ->where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                ->first();
        if ($request->memberType == 'student') {
            $member = \App\AdmEntry::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                    ->where('ecNo', '=', $request->ecNo)
                    ->select('idStudent as idMember')
                    ->first();
        } elseif ($request->memberType == 'employee') {
            $member = \App\Employee::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                    ->where('enrollmentNo', '=', $request->ecNo)
                    ->select('idEmployee as idMember')
                    ->first();
        }
        $bookissue = \App\BookIssueReturn::where('idBook', '=', $book->idBook)
                ->where('idMember', '=', $member->idMember)
                ->where('isReturn', '=', 'N')
                ->first();

        $booklost = new \App\LibraryTransaction();
        $booklost->fill($request->all());
        $booklost->idSchool = Auth::guard('school')->user()->idSchool;
        $booklost->idFinancialyear = Session::get('idFinancialYear');
        $booklost->paymentDate = today_date();
        $booklost->idMember = $member->idMember;
        $booklost->idBook = $book->idBook;
        $next_receiptno = next_libraryreceiptno();
        $booklost->receiptNo = 'INV000' . $next_receiptno;
        $booklost->payableAmount = $request->bookCost;
        DB::beginTransaction();
        if ($bookissue) {
            $bookissue->status = $request->bookStatus;
            $bookissue->update();
        }
        $booklost->save();
        $book->bookStatus = $request->bookStatus;
        $book->update();
        DB::commit();
        return redirect('school/booklost');
    }

    public function getBookDetail(Request $request) {
        $books = \App\Book::where("accessionNo", 'like', '%' . $request->name_startsWith . '%')
                ->where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                ->limit(20)
                ->get();
        foreach ($books as $query) {
            $results[] = [$query->accessionNo, $query->originalCost];
        }
        return json_encode($results);
    }

}

Copyright © 2021 - 2025 IMMREX7