| Current Path : /var/www/html/app/code/FlipsDigital/TextbookList/Controller/Adminhtml/TextbookList/ |
| Current File : /var/www/html/app/code/FlipsDigital/TextbookList/Controller/Adminhtml/TextbookList/SyncData.php |
<?php
namespace FlipsDigital\TextbookList\Controller\Adminhtml\TextbookList;
use Magento\Backend\App\Action;
use Magento\Backend\App\Action\Context;
use FlipsDigital\TextbookList\Model\TextbookListFactory;
use \Zend\Log\Writer\Stream;
use \Zend\Log\Logger;
use \Magento\Catalog\Model\Product;
use \Magento\Catalog\Model\Product\Type as ProductType;
class SyncData extends Action
{
/** @var textbooklistFactory $objectFactory */
protected $objectFactory;
/**
* @param Context $context
* @param TextbookListFactory $objectFactory
*/
public function __construct(
Context $context,
TextbookListFactory $objectFactory,
\Magento\Framework\ObjectManagerInterface $objectManager,
\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
\Magento\Catalog\Model\CategoryFactory $categoryFactory,
\Magento\Catalog\Model\CategoryLinkManagement $categoryLinkManagement,
\FlipsDigital\EducationInstitution\Model\EducationInstitutionFactory $educationInstitutionFactory,
\FlipsDigital\TextbookList\Model\TextbookListFactory $textbookListFactory,
\FlipsDigital\TextbookListBook\Model\TextbookListBookFactory $textbookListBookFactory,
\Magento\Framework\Stdlib\DateTime\TimezoneInterface $timezone
) {
$this->objectFactory = $objectFactory;
parent::__construct($context);
$this->_scopeConfig = $scopeConfig;
$this->_categoryFactory = $categoryFactory;
$this->_categoryLinkManagement = $categoryLinkManagement;
$this->_eiFactory = $educationInstitutionFactory;
$this->_tlFactory = $textbookListFactory;
$this->_tlbFactory = $textbookListBookFactory;
$this->_timezone = $timezone;
}
/**
* {@inheritdoc}
*/
protected function _isAllowed()
{
return $this->_authorization->isAllowed('FlipsDigital_TextbookList::textbooklist');
}
public function _executeQuery($sql, $params = []){
$stmt = sqlsrv_query( $this->_connection, $sql, $params);
if( $stmt === false ) {
die( print_r( sqlsrv_errors(), true));
}
return $stmt;
}
public function _executeFetchArray($sql, $params = []){
$stmt = $this->_executeQuery($sql, $params);
$arrData = array();
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
$arrData[] = $row;
}
sqlsrv_free_stmt($stmt);
return $arrData;
}
public function getEIData($G_GL_CUS){
$EI_ID = '';
$categoryTextbookList = $this->_categoryFactory->create()->getCollection()
->addFieldToFilter('entity_id', $this->_scopeConfig->getValue('happymind/textbook/default_textbook_list_category'))
->getFirstItem();
$arrSQLFields = [
'V_CUS.ID',
'V_CUS.CUS',
'V_CUS.ENAME',
'V_CUS.CNAME',
'V_CUS.CDATE',
'V_CUS.PCAT',
'V_CUS.STATUS',
];
$query = "SELECT ".implode(", ", $arrSQLFields)." FROM V_CUS WHERE CUS = '".$G_GL_CUS."'";
$arrRawData = $this->_executeFetchArray($query);
if(count($arrRawData)){
foreach ($arrRawData as $key => $value) {
$identifierEI = $value['CUS'].'-'.$value['ID'];
$objEI = $this->_eiFactory->create();
$collectionEI = $objEI->getCollection();
$collectionEI->addFieldToFilter('identifier', $identifierEI);
$collectionEI->addAttributeToSelect('*');
$arrData = [];
if ($collectionEI->count()){
$objEI = $collectionEI->getFirstItem();
$arrData = $objEI->getData();
}
$arrData['identifier'] = $identifierEI;
$arrData['mers_stock_source_v_cus_id'] = $value['ID'];
$arrData['mers_stock_source_v_cus_cus'] = $value['CUS'];
$arrData['mers_stock_source_v_cus_cdate'] = $value['CDATE'];
$arrData['group_id'] = $value['PCAT'];
$arrData['name'] = $value['ENAME'];
$arrData['chinese_name'] = $value['CNAME'];
$arrData['status'] = ($value['STATUS'] == 1)?"1":"0";
$objEI->setData($arrData);
$objEI->save();
$EI_ID = $objEI->getId();
$this->_logger->info("Sync Data: Education Institution - " . $EI_ID . " | V_CUS - " . $value['CUS']);
$objCategory = $this->_categoryFactory->create();
$collectionCategory = $objCategory->getCollection();
$collectionCategory->addAttributeToSelect('*')
->addAttributeToFilter('mers_stock_source_type', "V_CUS")
->addAttributeToFilter('mers_stock_source_id', $value['ID'])
->addAttributeToFilter('mers_stock_source_code', $value['CUS']);
$categoryTextbookListPath = $categoryTextbookList->getPath();
if ($collectionCategory->count()){
$objCategory = $collectionCategory->getFirstItem();
$categoryTextbookListPath .= "/".$objCategory->getId();
}
$objCategory->setStoreId(0);
$objCategory->setPath($categoryTextbookListPath);
$objCategory->setUrlKey($identifierEI);
$objCategory->setIncludeInMenu(false);
$objCategory->setParentId($categoryTextbookList->getId());
$objCategory->setIsActive(true);
$objCategory->setName($value['ENAME']);
$objCategory->setMersStockSourceType("V_CUS");
$objCategory->setMersStockSourceId($value['ID']);
$objCategory->setMersStockSourceCode($value['CUS']);
$objCategory->save();
$this->_logger->info("Sync Data: Category ( Education Institution ) - " . $objCategory->getId());
}
}
return $EI_ID;
}
public function getCategoryID_EI($eiEntityID){
$textBookListEI = $this->_eiFactory->create()->load($eiEntityID);
$objCategory = $this->_categoryFactory->create();
$collectionCategory = $objCategory->getCollection();
$collectionCategory->addAttributeToSelect('*')
->addAttributeToFilter('mers_stock_source_type', 'V_CUS')
->addAttributeToFilter('mers_stock_source_id', $textBookListEI->getData('mers_stock_source_v_cus_id'))
->addAttributeToFilter('mers_stock_source_code', $textBookListEI->getData('mers_stock_source_v_cus_cus'));
if ($collectionCategory->count()){
$objCategory = $collectionCategory->getFirstItem();
}
return $objCategory->getId();
}
public function getCategoryID_TB($GL_GROUP_ID, $categoryID_EI){
$objCategory = $this->_categoryFactory->create();
$collectionCategory = $objCategory->getCollection();
$collectionCategory->addAttributeToSelect('*')
->addAttributeToFilter('mers_stock_source_type', 'G_GL_GROUP')
->addAttributeToFilter('mers_stock_source_id', $GL_GROUP_ID)
->addAttributeToFilter('mers_stock_source_code', $categoryID_EI)
->setOrder('entity_id','DESC');
if ($collectionCategory->count()){
$objCategory = $collectionCategory->getFirstItem();
}
return $objCategory->getId();
}
public function setTextbookListBookStatus($tbEntityID, $status = 0){
$objTLB = $this->_tlbFactory->create();
$collectionTLB = $objTLB->getCollection();
$collectionTLB->addAttributeToSelect('*');
$collectionTLB->addFieldToFilter('booklist_id', $tbEntityID);
if ($collectionTLB->count()){
foreach ($collectionTLB->getItems() as $key => $value) {
$this->_logger->info("Textbook List Book - " . $value->getId() . " | Status From ".$value->getData('status')." to ".$status);
$value->setData('status', $status);
$value->save();
}
}
}
public function execute()
{
$logFile = BP . '/var/log/adminSyncTextbook.log';
$writer = new Stream($logFile);
$this->_logger = new Logger();
$this->_logger->addWriter($writer);
$serverName = "192.168.102.1";
$connectionInfo = array(
"Database"=>"MERS_STOCK",
"UID"=>"magento",
"PWD"=>"Magento888",
"CharacterSet"=>"UTF-8"
);
$this->_connection = sqlsrv_connect($serverName, $connectionInfo);
if( $this->_connection === false ) {
$this->_logger->err("Connection failed: " . print_r( sqlsrv_errors(), true));
}
if( $this->_connection === false ) return;
$this->_logger->info("START (".$this->_timezone->date()->format('Y-m-d H:i:s')."): " . __METHOD__ );
$resultRedirect = $this->resultRedirectFactory->create();
$entity_id = $this->getRequest()->getParam('entity_id', null);
$objTL = $this->objectFactory->create()->load($entity_id);
//Sync education institution data
$eiEntityID = $this->getEIData($objTL->getData('mers_stock_source_v_cus_cus'));
//Sync textbook data
$categoryTextbookList = $this->_categoryFactory->create()->getCollection()
->addFieldToFilter('entity_id', $this->_scopeConfig->getValue('happymind/textbook/default_textbook_list_category'))
->getFirstItem();
$categoryID_EI = $this->getCategoryID_EI($eiEntityID);
$arrSQLFields = [
'G_GL_GROUP.ID as G_GL_GROUP_ID',
'G_GL_GROUP.CLASSNAME',
'G_GL_GROUP.GROUP_ID',
'G_GL_GROUP.GROUPNAME',
'G_GL.ID as GL_ID',
'G_GL.GL_CODE',
'G_GL.CUS',
'G_GL.COMPANY',
'G_GL.PRINT_REMARK',
'G_GL.PLASTIC_BAG_LEVY',
'G_GL.PLASTIC_BAG_LEVY_AMOUNT', // New table field from 20230502
'G_GL.ALLOW_NOT_BUY_ALL',
'G_GL.INPUT_DATE',
'G_GL.EDIT_DATE',
'G_GL.MAGENTO_START_DATE',
'G_GL.MAGENTO_END_DATE',
];
$query = "SELECT ".implode(", ", $arrSQLFields)." FROM G_GL_GROUP
LEFT JOIN G_GL ON G_GL.ID = G_GL_GROUP.GL_ID
WHERE G_GL_GROUP.ID = '".$objTL->getData('mers_stock_source_g_gl_group_id')."'";
$arrRawData = $this->_executeFetchArray($query);
if(count($arrRawData)){
foreach ($arrRawData as $key => $value) {
$identifierTL = $value['GL_ID'].'-'.$value['G_GL_GROUP_ID'];
$arrData = [];
$arrData = $objTL->getData();
$arrData['identifier'] = $identifierTL;
$arrData['mers_stock_source_g_gl_id'] = $value['GL_ID'];
$arrData['mers_stock_source_g_gl_code'] = $value['GL_CODE'];
$arrData['mers_stock_source_v_cus_cus'] = $value['CUS'];
$arrData['mers_stock_source_g_gl_company'] = $value['COMPANY'];
$arrData['mers_stock_source_g_gl_input_date'] = $value['INPUT_DATE'];
$arrData['mers_stock_source_g_gl_edit_date'] = $value['EDIT_DATE'];
$arrData['mers_stock_source_g_gl_magento_start_date'] = $value['MAGENTO_START_DATE'];
$arrData['mers_stock_source_g_gl_magento_end_date'] = $value['MAGENTO_END_DATE'];
$arrData['mers_stock_source_g_gl_group_id'] = $value['G_GL_GROUP_ID'];
$arrData['mers_stock_source_g_gl_group_group_id'] = $value['GROUP_ID'];
$arrData['mers_stock_source_g_gl_plastic_bag_levy'] = $value['PLASTIC_BAG_LEVY'];
$arrData['mers_stock_source_g_gl_plastic_bag_levy_amount'] = $value['PLASTIC_BAG_LEVY_AMOUNT'];
$arrData['mers_stock_source_g_gl_allow_not_buy_all'] = $value['ALLOW_NOT_BUY_ALL'];
$arrData['education_institution_id'] = $eiEntityID;
$arrData['print_remark'] = $value['PRINT_REMARK'];
$arrData['class_name'] = $value['CLASSNAME'];
$arrData['group_name'] = $value['GROUPNAME'];
$arrData['status'] = $arrData['status'];
$arrData['sync_data_start_date'] = $this->_timezone->date()->format('Y-m-d H:i:s');
$objTL->setData($arrData);
$objTL->save();
$this->_logger->info("Sync Data: Textbook List - " . $objTL->getId() . " | G_GL - " . $value['GL_ID'] . ", G_GL_GROUP - " . $value['G_GL_GROUP_ID']);
if($categoryID_EI){
$objCategory = $this->_categoryFactory->create();
$collectionCategory = $objCategory->getCollection();
$collectionCategory->addAttributeToSelect('*')
->addAttributeToFilter('mers_stock_source_type', 'G_GL_GROUP')
->addAttributeToFilter('mers_stock_source_id', $value['G_GL_GROUP_ID'])
->addAttributeToFilter('mers_stock_source_code', $categoryID_EI);
$categoryTextbookListPath = $categoryTextbookList->getPath().'/'.$categoryID_EI;
if ($collectionCategory->count()){
$objCategory = $collectionCategory->getFirstItem();
$categoryTextbookListPath .= "/".$objCategory->getId();
}
$objCategory->setStoreId(0);
$objCategory->setPath($categoryTextbookListPath);
$objCategory->setUrlKey($identifierTL);
$objCategory->setIncludeInMenu(false);
$objCategory->setParentId($categoryID_EI);
$objCategory->setIsActive(true);
$objCategory->setName($value['CLASSNAME'] . ' - '. $value['GROUPNAME']);
$objCategory->setMersStockSourceType('G_GL_GROUP');
$objCategory->setMersStockSourceId($value['G_GL_GROUP_ID']);
$objCategory->setMersStockSourceCode($categoryID_EI);
$objCategory->save();
$this->_logger->info("Sync Data: Category ( Textbook List ) - " . $objCategory->getId());
}
}
}
//Sync book data
$tbEntityID = $entity_id;
$GL_ID = $objTL->getData('mers_stock_source_g_gl_id');
$GL_GROUP_ID = $objTL->getData('mers_stock_source_g_gl_group_id');
$eiEntityID = $objTL->getData('education_institution_id');
$categoryID_EI = $this->getCategoryID_EI($eiEntityID);
$categoryID_TB = $this->getCategoryID_TB($GL_GROUP_ID, $categoryID_EI);
$this->_logger->info("Sync Data: Textbook ID - " . $tbEntityID . " | " . $GL_ID."-".$GL_GROUP_ID);
// Inactive existing book data
$this->setTextbookListBookStatus($tbEntityID);
foreach ([
'G_GL_GROUP_BOOKLIST',
'G_GL_GROUP_MISC',
'G_GL_GROUP_OPTION',
] as $_table) {
$arrSQLFields = [
$_table.'.ID as G_GL_GROUP_BOOKLIST_ID',
$_table.'.PRINT_SECTION as G_GL_GROUP_BOOKLIST_PRINT_SECTION',
$_table.'.PRINT_SEQ as G_GL_GROUP_BOOKLIST_PRINT_SEQ',
$_table.'.CODE as G_GL_GROUP_BOOKLIST_BOOK_CODE',
$_table.'.BOOK as G_GL_GROUP_BOOKLIST_BOOK',
$_table.'.BOOKLIST_PUBLISHER as G_GL_GROUP_BOOKLIST_BOOKLIST_PUBLISHER',
$_table.'.PRICE_ORIGINAL as G_GL_GROUP_BOOKLIST_PRICE_ORIGINAL',
$_table.'.PRICE_SELLING as G_GL_GROUP_BOOKLIST_PRICE_SELLING',
$_table.'.PRICE_NOT_BUY_ALL as G_GL_GROUP_BOOKLIST_PRICE_NOT_BUY_ALL',
$_table.'.MUST_BUY as G_GL_GROUP_BOOKLIST_MUST_BUY',
$_table.'.MAGENTO_HIDDEN as G_GL_GROUP_BOOKLIST_MAGENTO_HIDDEN',
$_table.'.MAGENTO_BUY_DEFAULT as G_GL_GROUP_BOOKLIST_MAGENTO_BUY_DEFAULT',
$_table.'.MUST_BUY_TOGETHER_1 as G_GL_GROUP_BOOKLIST_MUST_BUY_TOGETHER_1',
$_table.'.MUST_BUY_TOGETHER_2 as G_GL_GROUP_BOOKLIST_MUST_BUY_TOGETHER_2',
$_table.'.MUST_BUY_TOGETHER_3 as G_GL_GROUP_BOOKLIST_MUST_BUY_TOGETHER_3',
$_table.'.MUST_BUY_TOGETHER_4 as G_GL_GROUP_BOOKLIST_MUST_BUY_TOGETHER_4',
$_table.'.MUST_BUY_TOGETHER_5 as G_GL_GROUP_BOOKLIST_MUST_BUY_TOGETHER_5',
$_table.'.MUST_BUY_TOGETHER_6 as G_GL_GROUP_BOOKLIST_MUST_BUY_TOGETHER_6',
$_table.'.MUST_BUY_TOGETHER_7 as G_GL_GROUP_BOOKLIST_MUST_BUY_TOGETHER_7',
$_table.'.MUST_BUY_TOGETHER_8 as G_GL_GROUP_BOOKLIST_MUST_BUY_TOGETHER_8',
$_table.'.MUST_BUY_TOGETHER_9 as G_GL_GROUP_BOOKLIST_MUST_BUY_TOGETHER_9',
$_table.'.CANNOT_BUY_TOGETHER_1 as G_GL_GROUP_BOOKLIST_CANNOT_BUY_TOGETHER_1',
$_table.'.CANNOT_BUY_TOGETHER_2 as G_GL_GROUP_BOOKLIST_CANNOT_BUY_TOGETHER_2',
$_table.'.CANNOT_BUY_TOGETHER_3 as G_GL_GROUP_BOOKLIST_CANNOT_BUY_TOGETHER_3',
$_table.'.CANNOT_BUY_TOGETHER_4 as G_GL_GROUP_BOOKLIST_CANNOT_BUY_TOGETHER_4',
$_table.'.CANNOT_BUY_TOGETHER_5 as G_GL_GROUP_BOOKLIST_CANNOT_BUY_TOGETHER_5',
$_table.'.CANNOT_BUY_TOGETHER_6 as G_GL_GROUP_BOOKLIST_CANNOT_BUY_TOGETHER_6',
$_table.'.CANNOT_BUY_TOGETHER_7 as G_GL_GROUP_BOOKLIST_CANNOT_BUY_TOGETHER_7',
$_table.'.CANNOT_BUY_TOGETHER_8 as G_GL_GROUP_BOOKLIST_CANNOT_BUY_TOGETHER_8',
$_table.'.CANNOT_BUY_TOGETHER_9 as G_GL_GROUP_BOOKLIST_CANNOT_BUY_TOGETHER_9',
$_table.'.BUY_AT_LEAST_ONE_1 as G_GL_GROUP_BOOKLIST_BUY_AT_LEAST_ONE_1',
$_table.'.BUY_AT_LEAST_ONE_2 as G_GL_GROUP_BOOKLIST_BUY_AT_LEAST_ONE_2',
$_table.'.BUY_AT_LEAST_ONE_3 as G_GL_GROUP_BOOKLIST_BUY_AT_LEAST_ONE_3',
$_table.'.BUY_AT_LEAST_ONE_4 as G_GL_GROUP_BOOKLIST_BUY_AT_LEAST_ONE_4',
$_table.'.BUY_AT_LEAST_ONE_5 as G_GL_GROUP_BOOKLIST_BUY_AT_LEAST_ONE_5',
$_table.'.BUY_AT_LEAST_ONE_6 as G_GL_GROUP_BOOKLIST_BUY_AT_LEAST_ONE_6',
$_table.'.BUY_AT_LEAST_ONE_7 as G_GL_GROUP_BOOKLIST_BUY_AT_LEAST_ONE_7',
$_table.'.BUY_AT_LEAST_ONE_8 as G_GL_GROUP_BOOKLIST_BUY_AT_LEAST_ONE_8',
$_table.'.BUY_AT_LEAST_ONE_9 as G_GL_GROUP_BOOKLIST_BUY_AT_LEAST_ONE_9',
$_table.'.GroupItemDisplayName as G_GL_GROUP_BOOKLIST_GroupItemDisplayName',
$_table.'.GroupItemDisplayPublisher as G_GL_GROUP_BOOKLIST_GroupItemDisplayPublisher',
$_table.'.GroupNameEng as G_GL_GROUP_BOOKLIST_GroupNameEng',
$_table.'.GroupNameChi as G_GL_GROUP_BOOKLIST_GroupNameChi',
// 'S_PRODUCT.ID as S_PRODUCT_ID',
// 'S_PRODUCT.CODE as S_PRODUCT_CODE',
// 'S_PRODUCT.BDESC as S_PRODUCT_BDESC',
// 'S_PRODUCT.CBDESC as S_PRODUCT_CBDESC',
// 'S_PRODUCT.UNIT_PRICE_DATE as S_PRODUCT_UNIT_PRICE_DATE',
];
$query = "SELECT ".implode(", ", $arrSQLFields)." FROM ".$_table."
WHERE ".$_table.".GL_ID = '".$GL_ID."' AND ".$_table.".GL_GROUP_ID = '".$GL_GROUP_ID."'";
$arrRawData = $this->_executeFetchArray($query);
if(count($arrRawData)){
foreach ($arrRawData as $key => $value) {
$identifierTLBP = $value['G_GL_GROUP_BOOKLIST_BOOK_CODE'].'-'.$value['G_GL_GROUP_BOOKLIST_ID'];
$productSku = $identifierTLBP;
$objTLBP = $this->_objectManager->create(Product::class);
$objProduct = $objTLBP->loadByAttribute('sku', $productSku);
if ($objProduct == NULL){
$objProduct = $objTLBP;
}
$objProduct->setTypeId(ProductType::TYPE_SIMPLE);
$objProduct->setSku($productSku);
$objProduct->setUrlKey($productSku);
$objProduct->setAttributeSetId(4);
$objProduct->setName($value['G_GL_GROUP_BOOKLIST_BOOK']);
$objProduct->setPrice($value['G_GL_GROUP_BOOKLIST_PRICE_ORIGINAL']);
$objProduct->setSpecialPrice($value['G_GL_GROUP_BOOKLIST_PRICE_SELLING']);
$objProduct->setStatus(1);
$objProduct->setVisibility(4);
$objProduct->setTaxClassId(0);
$objProduct->setProductHasWeight(0);
$objProduct->setStoreId(0);
$objProduct->setWebsiteIds(array(1));
$objProduct->save();
$this->_categoryLinkManagement->assignProductToCategories(
$objProduct->getSku(),
[
$categoryID_TB
]
);
$this->_logger->info("Sync Data: Product ( Textbook List Book ) - " . $objProduct->getId() . " | S_PRODUCT - " . $value['G_GL_GROUP_BOOKLIST_ID']);
$identifierTLB = $GL_ID.'-'.$GL_GROUP_ID.'-'.$value['G_GL_GROUP_BOOKLIST_ID'];
$objTLB = $this->_tlbFactory->create();
$collectionTLB = $objTLB->getCollection();
$collectionTLB->addFieldToFilter('identifier', $identifierTLB);
$arrData = [];
if ($collectionTLB->count()){
$objTLB = $collectionTLB->getFirstItem();
$arrData = $objTLB->getData();
}
$mustBuy = [];
$cannotBuy = [];
$buyAtLeastOne = [];
for($i=1; $i<=9; $i++){
if($value['G_GL_GROUP_BOOKLIST_MUST_BUY_TOGETHER_'.$i]){
$mustBuy[] = 'MUST_BUY_TOGETHER_'.$i;
}
if($value['G_GL_GROUP_BOOKLIST_CANNOT_BUY_TOGETHER_'.$i]){
$cannotBuy[] = 'CANNOT_BUY_TOGETHER_'.$i;
}
if($value['G_GL_GROUP_BOOKLIST_BUY_AT_LEAST_ONE_'.$i]){
$buyAtLeastOne[] = 'BUY_AT_LEAST_ONE_'.$i;
}
}
$arrData['identifier'] = $identifierTLB;
$arrData['mers_stock_source_table'] = $_table;
$arrData['mers_stock_source_g_gl_group_booklist_id'] = $value['G_GL_GROUP_BOOKLIST_ID'];
$arrData['mers_stock_source_g_gl_id'] = $GL_ID;
$arrData['mers_stock_source_g_gl_group_id'] = $GL_GROUP_ID;
$arrData['booklist_id'] = $tbEntityID;
$arrData['mers_stock_source_s_product_code'] = $value['G_GL_GROUP_BOOKLIST_BOOK_CODE'];
$arrData['product_id'] = $objProduct->getId();
$arrData['name'] = $value['G_GL_GROUP_BOOKLIST_BOOK'];
$arrData['publisher'] = $value['G_GL_GROUP_BOOKLIST_BOOKLIST_PUBLISHER'];
$arrData['print_section'] = trim($value['G_GL_GROUP_BOOKLIST_PRINT_SECTION']);
$arrData['print_seq'] = trim($value['G_GL_GROUP_BOOKLIST_PRINT_SEQ']);
$arrData['price_original'] = $value['G_GL_GROUP_BOOKLIST_PRICE_ORIGINAL'];
$arrData['price_selling'] = $value['G_GL_GROUP_BOOKLIST_PRICE_SELLING'];
$arrData['price_not_buy_all'] = $value['G_GL_GROUP_BOOKLIST_PRICE_NOT_BUY_ALL'];
$arrData['must_buy'] = $value['G_GL_GROUP_BOOKLIST_MUST_BUY'];
$arrData['magento_hidden'] = $value['G_GL_GROUP_BOOKLIST_MAGENTO_HIDDEN'];
$arrData['buy_default'] = $value['G_GL_GROUP_BOOKLIST_MAGENTO_BUY_DEFAULT'];
$arrData['must_buy_tgt'] = json_encode($mustBuy);
$arrData['cannot_buy_tgt'] = json_encode($cannotBuy);
$arrData['buy_at_least_one'] = json_encode($buyAtLeastOne);
$arrData['GroupItemDisplayName'] = $value['G_GL_GROUP_BOOKLIST_GroupItemDisplayName'];
$arrData['GroupItemDisplayPublisher'] = $value['G_GL_GROUP_BOOKLIST_GroupItemDisplayPublisher'];
$arrData['GroupNameEng'] = $value['G_GL_GROUP_BOOKLIST_GroupNameEng'];
$arrData['GroupNameChi'] = $value['G_GL_GROUP_BOOKLIST_GroupNameChi'];
$arrData['status'] = 1;
$objTLB->setData($arrData);
$objTLB->save();
$this->_logger->info("Sync Data: Textbook List Book - " . $objTLB->getId() . " | G_GL_GROUP_BOOKLIST - " . $value['G_GL_GROUP_BOOKLIST_ID']);
}
}
}
// Sync textbook and books data end
$objTL->setData('sync_data_end_date', $this->_timezone->date()->format('Y-m-d H:i:s'));
$objTL->setData('need_to_sync', 0);
$objTL->save();
$this->_logger->info("END (".$this->_timezone->date()->format('Y-m-d H:i:s')."): " . __METHOD__ );
$this->messageManager->addSuccessMessage(__('Textbook - '.$entity_id.' synchronization success.'));
return $resultRedirect->setPath('flipsdigital_textbooklist/textbooklist/index');
}
}