コード例 #1
0
 /**
  * @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;
 }
コード例 #2
0
 public function setOdooId($data)
 {
     parent::setData(self::AS_ODOO_ID, $data);
 }