Your IP : 216.73.216.220


Current Path : /var/www/html/app/code/FlipsDigital/HappyMind/Cron/
Upload File :
Current File : /var/www/html/app/code/FlipsDigital/HappyMind/Cron/FetchMersStockStudentData.php

<?php
namespace FlipsDigital\HappyMind\Cron;

class FetchMersStockStudentData extends AbstractCron
{
    protected $_className = __CLASS__;
    public function __construct(
        \Magento\Framework\ObjectManagerInterface $objectManagerInterface,
        \FlipsDigital\TextbookListStudent\Model\TextbookListStudentFactory $textbookListStudentFactory
    ) {
        parent::__construct($objectManagerInterface);
        $this->_tlsFactory = $textbookListStudentFactory;
    }
    public function execute()
    {
        if( $this->_connection === false ) return;
        $this->_logger->info("START: " . __METHOD__ );
        $strSQL = $this->_getRawDataSQL();
        $arrRawData = $this->_executeFetchArray($strSQL);
        foreach ($arrRawData as $key => $value) {
            $identifierBS = $value['G_GL_STUDENT_GL_ID'].'-'.$value['G_GL_STUDENT_GL_GROUP_ID'].'-'.$value['G_GL_STUDENT_ID'];
            $objTLS = $this->_tlsFactory->create();
            $collectionTLS = $objTLS->getCollection();
            $collectionTLS->addFieldToFilter('identifier', $identifierBS);
            $arrData = [];
            if ($collectionTLS->count()){
                $objTLS = $collectionTLS->getFirstItem();
                $arrData = $objTLS->getData();
            }
            $arrData = array_merge(
                $arrData,
                [
                    'identifier' => $identifierBS,
                    'mers_stock_source_g_gl_student_id' => $value['G_GL_STUDENT_ID'],
                    'mers_stock_source_g_gl_student_gl_id' => $value['G_GL_STUDENT_GL_ID'],
                    'mers_stock_source_g_gl_student_gl_group_id' => $value['G_GL_STUDENT_GL_GROUP_ID'],
                    'mers_stock_source_g_gl_student_gl_classname' => $value['G_GL_STUDENT_GL_CLASSNAME'],
                    'mers_stock_source_g_gl_student_student_class' => $value['G_GL_STUDENT_STUDENT_CLASS'],
                    'mers_stock_source_g_gl_student_student_no' => $value['G_GL_STUDENT_STUDENT_NO'],
                    'mers_stock_source_g_gl_student_name' => $value['G_GL_STUDENT_STUDENT_NAME'],
                    'mers_stock_source_g_gl_student_barcode711' => $value['G_GL_STUDENT_BARCODE711'],
                    'mers_stock_source_g_gl_student_edit_date' => $value['G_GL_STUDENT_EDIT_DATE'],
                    'status' => 1,
                ]
            );
            $objTLS->setData($arrData);
            $objTLS->save();
            $this->_logger->info("Sync Data: BookListStudent - " . $objTLS->getId() . " |  G_GL_STUDENT - " . $value['G_GL_STUDENT_ID']);
        }
        $this->_logger->info("END: " . __METHOD__ );
    }

    private function _getRawDataSQL()
    {
        $strSQL = "SELECT";
        $arrSQLFields[] = "G_GL_STUDENT.ID as G_GL_STUDENT_ID";
        $arrSQLFields[] = "G_GL_STUDENT.GL_ID as G_GL_STUDENT_GL_ID";
        $arrSQLFields[] = "G_GL_STUDENT.GL_GROUP_ID as G_GL_STUDENT_GL_GROUP_ID";
        $arrSQLFields[] = "G_GL_STUDENT.GL_CLASSNAME as G_GL_STUDENT_GL_CLASSNAME";
        $arrSQLFields[] = "G_GL_STUDENT.STUDENT_CLASS as G_GL_STUDENT_STUDENT_CLASS";
        $arrSQLFields[] = "G_GL_STUDENT.STUDENT_NO as G_GL_STUDENT_STUDENT_NO";
        $arrSQLFields[] = "G_GL_STUDENT.STUDENT_NAME as G_GL_STUDENT_STUDENT_NAME";
        $arrSQLFields[] = "G_GL_STUDENT.BARCODE711 as G_GL_STUDENT_BARCODE711";
        $arrSQLFields[] = "G_GL_STUDENT.EDIT_DATE as G_GL_STUDENT_EDIT_DATE";
        if (count($arrSQLFields)){
            $strSQL .= " ".implode(", ", $arrSQLFields);
        }
        $arrSQLFrom[] = "G_GL_STUDENT";
        $arrSQLFrom[] = "LEFT JOIN G_GL ON G_GL_STUDENT.GL_ID = G_GL.ID";
        if (count($arrSQLFrom)){
            $strSQL .= " FROM ".implode(" ", $arrSQLFrom);
        }

        $arrSQLWhereAnd[] = "G_GL.MAGENTO_START_DATE is not NULL";
        $arrSQLWhereAnd[] = "G_GL.MAGENTO_START_DATE <= getdate()";
        $arrSQLWhereAnd[] = "G_GL.MAGENTO_END_DATE >= getdate()";
        if (count($arrSQLWhereAnd)){
            $strSQL .= " WHERE (".implode(" AND ", $arrSQLWhereAnd).")";
// $strSQL .= " OR";
// $strSQL .= " G_GL.ID = 23042";
// $strSQL .= " G_GL.ID = 23096";
        }
        $strSQL .= " ORDER BY G_GL_STUDENT_ID ASC";
        return $strSQL;
    }
}