Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 4
CRAP
0.00% covered (danger)
0.00%
0 / 24
SubjectSemesterService
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 4
56.00
0.00% covered (danger)
0.00%
0 / 24
 __construct
0.00% covered (danger)
0.00%
0 / 1
2.00
0.00% covered (danger)
0.00%
0 / 3
 __clone
0.00% covered (danger)
0.00%
0 / 1
2.00
0.00% covered (danger)
0.00%
0 / 2
 getInstance
0.00% covered (danger)
0.00%
0 / 1
6.00
0.00% covered (danger)
0.00%
0 / 5
 assignSubjectToSemesters
0.00% covered (danger)
0.00%
0 / 1
12.00
0.00% covered (danger)
0.00%
0 / 14
<?php
/**
 * User: jithinvijayan
 * Date: 04/11/19
 * Time: 12:27 PM
 */
namespace com\linways\core\ams\professional\service;
use com\linways\core\ams\professional\exception\ProfessionalException;
use com\linways\core\ams\professional\logging\AMSLogger;
use com\linways\core\ams\professional\request\AssignSubjectToSemestersRequest;
class SubjectSemesterService extends BaseService
{
    /**
     * Presence of a static member variable
     *
     * @var null
     */
    private static $_instance = null;
    /**
     * @var null
     */
    private $logger = null;
    /**
     * Mapper variable
     * @var array
     */
    private $mapper = [];
    /**
     * Initialise mapper, logger, hooks here
     *
     * ReportGenderService constructor.
     */
    private function __construct()
    {
        /**
         * Initialising mapper
         */
//        $this->mapper = SBSServiceMapper::getInstance()->getMapper();
        /**
         * Initialising ams logger
         * logging to elastic search
         */
        $this->logger = AMSLogger::getLogger();
    }
    /**
     * Prevent any object or instance of that class to be cloned
     */
    private function __clone()
    {
    }
    /**
     * Have a single globally accessible static method
     *
     * @return SubjectSemesterService|null
     */
    public static function getInstance()
    {
        if (!is_object(self::$_instance))
            self::$_instance = new self ();
        return self::$_instance;
    }
    /**
     * Assign semesters to subjects
     *
     * @param AssignSubjectToSemestersRequest $request
     * @throws ProfessionalException
     * @author jithinvijayan
     */
    public function assignSubjectToSemesters(AssignSubjectToSemestersRequest $request)
    {
        $request = $this->realEscapeObject($request);
        $sql = "INSERT IGNORE INTO subject_sem_relation (subjectID, semID, created_by, created_date, updated_by, updated_date) 
                VALUES ";
        foreach ($request->semesterIds as $semesterId) {
            $sql .= " ($request->subjectId,$semesterId,$request->createdBy,UTC_TIMESTAMP(),$request->updatedBy,UTC_TIMESTAMP()),";
        }
        try {
            $sql = rtrim($sql, ",");
            $this->executeQuery($sql);
        } catch (\Exception $e) {
            throw new ProfessionalException($e->getCode(), $e->getMessage());
        }
    }
}