function SaveFormData($upc) { $upc = BarcodeLib::padUPC($upc); $brand = FormLib::get('lf_brand'); $desc = FormLib::get('lf_desc'); $origin = FormLib::get('origin', 0); $floorID = FormLib::get('floor-id', 0); $text = FormLib::get('lf_text'); $text = str_replace("\r", '', $text); $text = str_replace("\n", '<br />', $text); // strip non-ASCII (word copy/paste artifacts) $text = preg_replace("/[^-]/", "", $text); $signs = FormLib::get('sign-count', 1); if ($signs < 1) { $signs = 1; } $dbc = $this->db(); $loc = new ProdPhysicalLocationModel($dbc); $loc->upc($upc); $loc->floorSectionID($floorID); $loc->save(); $model = new ProductUserModel($dbc); $model->upc($upc); $model->brand($brand); $model->description($desc); $model->long_text($text); $model->signCount($signs); $multiOrigin = FormLib::get('otherOrigin', array()); $originMap = array(); if ($origin != 0) { $originMap[] = $origin; } foreach ($multiOrigin as $originID) { if ($originID != 0) { $originMap[] = $originID; } } $mapP = $dbc->prepare('DELETE FROM ProductOriginsMap WHERE upc=?'); $addP = $dbc->prepare('INSERT INTO ProductOriginsMap (originID, upc, active) VALUES (?, ?, 1)'); $lcP = $dbc->prepare('SELECT u.upc FROM upcLike AS u ' . DTrans::joinProducts('u', 'p', 'INNER') . ' WHERE u.likeCode IN ( SELECT l.likeCode FROM upcLike AS l WHERE l.upc = ? )'); $lcR = $dbc->execute($lcP, array($upc)); $items = array($upc); while ($w = $dbc->fetch_row($lcR)) { if ($w['upc'] == $upc) { continue; } $items[] = $w['upc']; } $prod = new ProductsModel($dbc); $stores = new StoresModel($dbc); foreach ($items as $item) { $prod->upc($item); $prod->store_id(1); $prod->current_origin_id($origin); $prod->save(); $dbc->execute($mapP, array($item)); foreach ($originMap as $originID) { $dbc->execute($addP, array($originID, $item)); } } return $model->save(); }