/** * @param AggWarehouse $data * @return null|AggWarehouse */ public function create($data) { $result = null; $def = $this->_manTrans->begin(); try { $tbl = Cfg::ENTITY_MAGE_CATALOGINVENTORY_STOCK; $stockId = $data->getId(); if ($stockId) { /* lookup for catalog inventory stock by ID */ $stockData = $this->_repoGeneric->getEntityByPk($tbl, [Cfg::E_CATINV_STOCK_A_STOCK_ID => $stockId]); if (!$stockData) { /* create top level object (catalog inventory stock) */ $bind = [Cfg::E_CATINV_STOCK_A_WEBSITE_ID => $data->getWebsiteId(), Cfg::E_CATINV_STOCK_A_STOCK_NAME => $data->getCode()]; $stockId = $this->_repoGeneric->addEntity($tbl, $bind); } } else { /* create top level object (catalog inventory stock) */ $bind = [Cfg::E_CATINV_STOCK_A_WEBSITE_ID => $data->getWebsiteId(), Cfg::E_CATINV_STOCK_A_STOCK_NAME => $data->getCode()]; $stockId = $this->_repoGeneric->addEntity($tbl, $bind); } /* then create next level object (warehouse) */ $tbl = EntityWarehouse::ENTITY_NAME; $bind = [EntityWarehouse::ATTR_STOCK_REF => $stockId, EntityWarehouse::ATTR_CODE => $data->getCode(), EntityWarehouse::ATTR_CURRENCY => $data->getCurrency(), EntityWarehouse::ATTR_COUNTRY_CODE => $data->getCountryCode(), EntityWarehouse::ATTR_NOTE => $data->getNote()]; $this->_repoGeneric->addEntity($tbl, $bind); /* commit changes and compose result data object */ $this->_manTrans->commit($def); $result = $data; $result->setId($stockId); } finally { $this->_manTrans->end($def); } return $result; }
private function _setRanks() { $this->_repoCore->addEntity(Rank::ENTITY_NAME, [Rank::ATTR_CODE => self::RANK_BY_PV, Rank::ATTR_NOTE => 'Customer is qualified by PV only.']); $this->_repoCore->addEntity(Rank::ENTITY_NAME, [Rank::ATTR_CODE => self::RANK_BY_GV, Rank::ATTR_NOTE => 'Customer is qualified by PV and GV.']); $this->_repoCore->addEntity(Rank::ENTITY_NAME, [Rank::ATTR_CODE => self::RANK_BY_PSAA, Rank::ATTR_NOTE => 'Customer is qualified by PV, GV and PSAA.']); $this->_logger->debug("Ranks for Loyalty bonus are set."); }
private function _setRanks() { $this->repoBasic->addEntity(Rank::ENTITY_NAME, [Rank::ATTR_CODE => self::RANK_MAX, Rank::ATTR_NOTE => 'Maximal rank.']); $this->repoBasic->addEntity(Rank::ENTITY_NAME, [Rank::ATTR_CODE => self::RANK_EQUAL, Rank::ATTR_NOTE => 'This rank has equal sharing of the bonus.']); $this->repoBasic->addEntity(Rank::ENTITY_NAME, [Rank::ATTR_CODE => self::RANK_PRORATED, Rank::ATTR_NOTE => 'This rank has prorated sharing of the bonus.']); $this->_logger->debug("Ranks for Global Sales bonus are set."); }
private function _createTypeOperation() { $bind = [TypeOperation::ATTR_CODE => self::DATA_TYPE_OPER_CODE, TypeOperation::ATTR_NOTE => 'Operation for integration tests.']; $id = $this->_repoGeneric->addEntity(TypeOperation::ENTITY_NAME, $bind); $this->assertTrue($id > 0); $this->typeOperId = $id; $this->_logger->debug("Operation type is created (#{$id})."); }
private function _setBonusLevelsTeam() { $calTypeId = $this->_repoTypeCalc->getIdByCode(Cfg::CODE_TYPE_CALC_BONUS_TEAM_DEF); $data = [[Level::ATTR_CALC_TYPE_ID => $calTypeId, Level::ATTR_LEVEL => 0, Level::ATTR_PERCENT => 0], [Level::ATTR_CALC_TYPE_ID => $calTypeId, Level::ATTR_LEVEL => 500, Level::ATTR_PERCENT => 0.1], [Level::ATTR_CALC_TYPE_ID => $calTypeId, Level::ATTR_LEVEL => 1000, Level::ATTR_PERCENT => 0.15]]; foreach ($data as $item) { $this->_repoBasic->addEntity(Level::ENTITY_NAME, $item); } $this->_logger->debug("Team Bonus levels are set."); }
private function _setRanks() { $data = [[Rank::ATTR_CODE => 'MANAGER', Rank::ATTR_NOTE => 'Manager'], [Rank::ATTR_CODE => 'SENIOR MANAGER', Rank::ATTR_NOTE => 'Senior Manager'], [Rank::ATTR_CODE => 'SUPERVISOR', Rank::ATTR_NOTE => 'Supervisor'], [Rank::ATTR_CODE => 'DIRECTOR', Rank::ATTR_NOTE => 'Director'], [Rank::ATTR_CODE => 'SENIOR DIRECTOR', Rank::ATTR_NOTE => 'Senior Director']]; foreach ($data as $item) { $id = $this->_repoBasic->addEntity(Rank::ENTITY_NAME, $item); $this->_logger->debug("Rank '" . $item[Rank::ATTR_CODE] . "' is added with ID=" . $id . "."); } $this->_logger->debug("Ranks are set."); }
/** * Create new period record and related calculation record. * * @param $calcTypeId * @param $dsBegin * @param $dsEnd * * @return DataObject */ public function addNewPeriodAndCalc($calcTypeId, $dsBegin, $dsEnd) { $result = new DataObject(); /* add new period */ $periodData = [Period::ATTR_CALC_TYPE_ID => $calcTypeId, Period::ATTR_DSTAMP_BEGIN => $dsBegin, Period::ATTR_DSTAMP_END => $dsEnd]; $periodId = $this->_repoBasic->addEntity(Period::ENTITY_NAME, $periodData); $this->_logger->info("New period #{$periodId} for calculation type #{$calcTypeId} is registered ({$dsBegin}-{$dsEnd})."); $periodData[Period::ATTR_ID] = $periodId; $result->setData(self::DATA_PERIOD, $periodData); /* add related calculation */ $dateStarted = $this->_toolDate->getUtcNowForDb(); $calcData = [Calculation::ATTR_PERIOD_ID => $periodId, Calculation::ATTR_DATE_STARTED => $dateStarted, Calculation::ATTR_DATE_ENDED => null, Calculation::ATTR_STATE => Cfg::CALC_STATE_STARTED]; $calcId = $this->_repoBasic->addEntity(Calculation::ENTITY_NAME, $calcData); $this->_logger->info("New calculation #{$calcId} for period #{$periodId} is registered."); $calcData[Calculation::ATTR_ID] = $calcId; $result->setData(self::DATA_CALC, $calcData); return $result; }
private function saveTaxRule($code) { $result = $this->getTaxRuleByCode($code); if (!$result) { $entity = Cfg::ENTITY_MAGE_TAX_CALC_RULE; $bind = [EntityTaxRate::KEY_CODE => $code]; $result = $this->repoGeneric->addEntity($entity, $bind); } return $result; }
/** * @param null $code * @param null $note * * @return int ID of the new entity */ private function _createWarehouse($code, $note) { /* create stock */ $stock = $this->_createMageStock($code); $result = $stock->getStockId(); /* ... then create warehouse itself */ $tbl = Warehouse::ENTITY_NAME; $bind = [Warehouse::ATTR_STOCK_REF => $result, Warehouse::ATTR_CODE => $code, Warehouse::ATTR_NOTE => $note]; $this->_repoGeneric->addEntity($tbl, $bind); return $result; }
public function saveQualificationParams($updates) { $def = $this->_manTrans->begin(); try { foreach ($updates as $item) { $this->_repoBasic->addEntity(Qualification::ENTITY_NAME, $item); } $this->_manTrans->commit($def); } finally { $this->_manTrans->end($def); } }
public function saveLogSaleOrders($updates, $transIds) { if (count($updates) != count($transIds)) { throw new \Exception("Cannot log transactions for the sale orders, sizes of the arrays are not equal."); } foreach ($updates as $i => $item) { $transId = $transIds[$i]; $saleId = $item[Calc::A_ORDR_ID]; $bind = [LogSales::ATTR_TRANS_ID => $transId, LogSales::ATTR_SALE_ORDER_ID => $saleId]; $this->_repoBasic->addEntity(LogSales::ENTITY_NAME, $bind); } }
public function getRepresentativeCustomerId() { if (is_null($this->_cachedRepresCustId)) { $conn = $this->_conn; /* there is no cached value for the customer ID, select data from DB */ $where = Cfg::E_CUSTOMER_A_EMAIL . '=' . $conn->quote(self::CUSTOMER_REPRESENTATIVE_EMAIL); $data = $this->_repoGeneric->getEntities(Cfg::ENTITY_MAGE_CUSTOMER, Cfg::E_CUSTOMER_A_ENTITY_ID, $where); if (count($data) == 0) { $bind = [Cfg::E_CUSTOMER_A_WEBSITE_ID => self::ADMIN_WEBSITE_ID, Cfg::E_CUSTOMER_A_EMAIL => self::CUSTOMER_REPRESENTATIVE_EMAIL]; $id = $this->_repoGeneric->addEntity(Cfg::ENTITY_MAGE_CUSTOMER, $bind); if ($id > 0) { $this->_cachedRepresCustId = $id; } } else { $first = reset($data); $this->_cachedRepresCustId = $first[Cfg::E_CUSTOMER_A_ENTITY_ID]; } } return $this->_cachedRepresCustId; }
/** * Registry new relation between instances in Odoo & Magento. * @param string $entityName * @param int $mageId * @param int $odooId */ protected function _registerMageIdForOdooId($entityName, $mageId, $odooId) { $bind = [IOdooEntity::ATTR_MAGE_REF => (int) $mageId, IOdooEntity::ATTR_ODOO_REF => (int) $odooId]; $this->_repoBasic->addEntity($entityName, $bind); }
/** @inheritdoc */ public function create($data) { $result = $this->_repoGeneric->addEntity($this->_entityName, $data); return $result; }
private function _setRanks() { $data = [[Rank::ATTR_CODE => Def::RANK_MANAGER, Rank::ATTR_NOTE => 'Manager (#01, lowest).'], [Rank::ATTR_CODE => Def::RANK_SEN_MANAGER, Rank::ATTR_NOTE => 'Senior Manager (#02).'], [Rank::ATTR_CODE => Def::RANK_SUPERVISOR, Rank::ATTR_NOTE => 'Supervisor (#3).'], [Rank::ATTR_CODE => Def::RANK_DIRECTOR, Rank::ATTR_NOTE => 'Director (#4).'], [Rank::ATTR_CODE => Def::RANK_SEN_DIRECTOR, Rank::ATTR_NOTE => 'Senior Director (#5).'], [Rank::ATTR_CODE => Def::RANK_EXEC_DIRECTOR, Rank::ATTR_NOTE => 'Executive Director (#6).'], [Rank::ATTR_CODE => Def::RANK_SEN_VICE, Rank::ATTR_NOTE => 'Senior Vice President (#7).'], [Rank::ATTR_CODE => Def::RANK_EXEC_VICE, Rank::ATTR_NOTE => 'Executive Vice President (#8).'], [Rank::ATTR_CODE => Def::RANK_PRESIDENT, Rank::ATTR_NOTE => 'President Director (#9, highest).']]; foreach ($data as $item) { $this->_repoBasic->addEntity(Rank::ENTITY_NAME, $item); } $this->_logger->debug("Ranks are set."); }