| Current Path : /var/www/html/app/code/FlipsDigital/HappyMind/Cron/ |
| 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;
}
}