/** * Store a newly created resource in storage. * * @param Request $request * @return Response */ public function store(Label $labelModel, Request $request, Purchase $purchaseModel, User $userModel, Product $productModel, History $historyModel) { if (isset($_POST['update_template'])) { //pr($_POST); if (isset($_POST['col']) and !empty($_POST['col'])) { $fields = serialize($_POST['col']); } else { $fields = null; } if (!empty($_POST['name_template'])) { $template_name = $_POST['name_template']; } elseif (isset($_POST['selected_name_template']) and !empty($_POST['selected_name_template'])) { $template_name = $_POST['selected_name_template']; } else { $template_name = 'По умолчанию'; } $template_id = $userModel->checkTemplates($template_name, 'products'); if ($template_id != null) { $res = array('fields' => $fields); $userModel->updateTemplate($res, $template_id, 'products'); } else { //добавляем шаблон $res = array('type' => 'products', 'user_id' => Auth::User()->id, 'template' => $template_name, 'fields' => $fields); $userModel->addTemplates($res, 'products'); } Session::flash('message', GetMessages("SUCCESS_SETTINGS_SAVE")); return redirect($_SERVER['HTTP_REFERER']); } if (isset($_POST['delete_template'])) { $userModel->deleteTemplate($_POST['selected_name_template'], 'products'); Session::flash('message', GetMessages("SUCCESS_TEMPLATE_DELETE")); return redirect($_SERVER['HTTP_REFERER']); } if (isset($_POST['select_template'])) { $userModel->updateUser(Auth::User()->id, array('template_prod_id' => $_POST['selected_name_template'])); Session::flash('message', GetMessages("SUCCESS_SETTINGS_SAVE")); return redirect($_SERVER['HTTP_REFERER']); } if (isset($_POST['search_button'])) { //pr($_POST); if (strlen($_POST['search_field']) > 0) { return redirect()->route('product.search.index', ['string' => $_POST['search_field']]); } else { return redirect($_SERVER['HTTP_REFERER']); } } if (isset($_POST['update_products'])) { if (!right('EditProduct')) { abort(404); } unset($_POST['update_products']); unset($_POST['_token']); $res = array(); $reViewAbsents = false; //pr($_POST); foreach ($_POST as $element) { if (array_key_exists('check', $element)) { unset($element['check']); $childs = false; if (isset($element['childs'])) { $childs = unserialize($productModel->where('id', $element['id'])->pluck('childs')); } //status !isset($element['status']['new']) ? $element['status']['new'] = 0 : ($element['status']['new'] = 1); if ($element['status']['new'] != $element['status']['old']) { $res[$element['id']]['products.status'] = $element['status']['new']; } //name if ($element['name']['new'] != $element['name']['old']) { $res[$element['id']]['products.name'] = trim($element['name']['new']); } //monitoring_name if ($element['monitoring_name']['new'] != $element['monitoring_name']['old']) { $res[$element['id']]['products.monitoring_name'] = trim($element['monitoring_name']['new']); } //absent if ($element['absent']['new'] != $element['absent']['old']) { if (empty($element['absent']['new'])) { $res[$element['id']]['products.absent'] = null; } else { $res[$element['id']]['products.absent'] = trim($element['absent']['new']); } $reViewAbsents = true; } //article if ($element['article']['new'] != $element['article']['old']) { $res[$element['id']]['products.article'] = trim($element['article']['new']); } //in_stock !isset($element['in_stock']['new']) ? $element['in_stock']['new'] = 0 : ($element['in_stock']['new'] = 1); if ($element['in_stock']['new'] != $element['in_stock']['old']) { $res[$element['id']]['products.in_stock'] = $element['in_stock']['new']; } //flag !isset($element['flag']['new']) ? $element['flag']['new'] = 0 : ($element['flag']['new'] = 1); if ($element['flag']['new'] != $element['flag']['old']) { $res[$element['id']]['products.flag'] = $element['flag']['new']; } //sort if ($element['sort']['new'] != $element['sort']['old']) { $res[$element['id']]['products.sort'] = $element['sort']['new']; } //mrc if ($element['mrc']['new'] != $element['mrc']['old']) { $res[$element['id']]['products.mrc'] = toFloat($element['mrc']['new']); } //mrc_currency if ($element['mrc_currency']['new'] != $element['mrc_currency']['old']) { $res[$element['id']]['products.mrc_currency'] = $element['mrc_currency']['new']; } //mrc_relation if ($element['mrc_relation']['new'] != $element['mrc_relation']['old']) { $res[$element['id']]['products.mrc_relation'] = trim($element['mrc_relation']['new']); } //mrc_raise_relation if ($element['mrc_raise_relation']['new'] != $element['mrc_raise_relation']['old']) { $res[$element['id']]['products.mrc_raise_relation'] = trim($element['mrc_raise_relation']['new']); } //price if ($element['price']['new'] != $element['price']['old']) { $res[$element['id']]['products.price'] = toFloat($element['price']['new']); } //price_currency if ($element['price_currency']['new'] != $element['price_currency']['old']) { $res[$element['id']]['products.price_currency'] = $element['price_currency']['new']; } //price_relation if ($element['price_relation']['new'] != $element['price_relation']['old']) { $res[$element['id']]['products.price_relation'] = trim($element['price_relation']['new']); } //price_raise_relation if ($element['price_raise_relation']['new'] != $element['price_raise_relation']['old']) { $res[$element['id']]['products.price_raise_relation'] = trim($element['price_raise_relation']['new']); } //target_margin isset($element['target_margin']['new']) ? $element['target_margin']['new'] = toFloat($element['target_margin']['new']) : ($element['target_margin']['new'] = 0); if ($element['target_margin']['new'] != $element['target_margin']['old']) { $res[$element['id']]['products.target_margin'] = $element['target_margin']['new']; } //common_price isset($element['common_price']['new']) ? $element['common_price']['new'] = toFloat($element['common_price']['new']) : ($element['common_price']['new'] = 0); if ($element['common_price']['new'] != $element['common_price']['old']) { $res[$element['id']]['products.common_price'] = $element['common_price']['new']; } if (isset($element['GK_enabled']['old'])) { //GK_enabled !isset($element['GK_enabled']['new']) ? $element['GK_enabled']['new'] = 0 : ($element['GK_enabled']['new'] = 1); if ($element['GK_enabled']['new'] != $element['GK_enabled']['old']) { $res[$element['id']]['GK.enabled'] = $element['GK_enabled']['new']; } //GK_yandex_enabled !isset($element['GK_yandex_enabled']['new']) ? $element['GK_yandex_enabled']['new'] = 0 : ($element['GK_yandex_enabled']['new'] = 1); if ($element['GK_yandex_enabled']['new'] != $element['GK_yandex_enabled']['old']) { $res[$element['id']]['GK.yandex_enabled'] = $element['GK_yandex_enabled']['new']; } //GK_price if ($element['GK_price']['new'] != $element['GK_price']['old']) { $res[$element['id']]['GK.price'] = toFloat($element['GK_price']['new']); if ($childs) { foreach ($childs as $child) { $res[$child['product_id']]['GK.price'] = $res[$element['id']]['GK.price'] * $child['multiplicator']; $res[$child['product_id']]['GK.to_export'] = 1; } } } //GK_price_currency if ($element['GK_price_currency']['new'] != $element['GK_price_currency']['old']) { $res[$element['id']]['GK.currency'] = $element['GK_price_currency']['new']; if ($childs) { foreach ($childs as $child) { $res[$child['product_id']]['GK.currency'] = $res[$element['id']]['GK.currency']; $res[$child['product_id']]['GK.to_export'] = 1; } } } //GK update if (isset($res[$element['id']]['products.in_stock']) or isset($res[$element['id']]['GK.enabled']) or isset($res[$element['id']]['GK.yandex_enabled']) or isset($res[$element['id']]['GK.price']) or isset($res[$element['id']]['GK.currency'])) { $res[$element['id']]['GK.to_export'] = 1; $res[$element['id']]['GK.updated_at'] = date('Y-m-d H:i:s'); $res[$element['id']]['GK.user_id'] = Auth::User()->id; $res[$element['id']]['products.updated_at'] = date('Y-m-d H:i:s'); $res[$element['id']]['products.user_id'] = Auth::User()->id; } } if (isset($element['TV_enabled']['old'])) { //TV_enabled !isset($element['TV_enabled']['new']) ? $element['TV_enabled']['new'] = 0 : ($element['TV_enabled']['new'] = 1); if ($element['TV_enabled']['new'] != $element['TV_enabled']['old']) { $res[$element['id']]['TV.enabled'] = $element['TV_enabled']['new']; } //TV_yandex_enabled !isset($element['TV_yandex_enabled']['new']) ? $element['TV_yandex_enabled']['new'] = 0 : ($element['TV_yandex_enabled']['new'] = 1); if ($element['TV_yandex_enabled']['new'] != $element['TV_yandex_enabled']['old']) { $res[$element['id']]['TV.yandex_enabled'] = $element['TV_yandex_enabled']['new']; } //TV_price if ($element['TV_price']['new'] != $element['TV_price']['old']) { $res[$element['id']]['TV.price'] = toFloat($element['TV_price']['new']); if ($childs) { foreach ($childs as $child) { $res[$child['product_id']]['TV.price'] = $res[$element['id']]['TV.price'] * $child['multiplicator']; $res[$child['product_id']]['TV.to_export'] = 1; } } } //TV_price_currency if ($element['TV_price_currency']['new'] != $element['TV_price_currency']['old']) { $res[$element['id']]['TV.currency'] = $element['TV_price_currency']['new']; if ($childs) { foreach ($childs as $child) { $res[$child['product_id']]['TV.currency'] = $res[$element['id']]['TV.currency']; $res[$child['product_id']]['TV.to_export'] = 1; } } } //TV update if (isset($res[$element['id']]['products.in_stock']) or isset($res[$element['id']]['TV.enabled']) or isset($res[$element['id']]['TV.yandex_enabled']) or isset($res[$element['id']]['TV.price']) or isset($res[$element['id']]['TV.currency'])) { $res[$element['id']]['TV.to_export'] = 1; $res[$element['id']]['TV.updated_at'] = date('Y-m-d H:i:s'); $res[$element['id']]['TV.user_id'] = Auth::User()->id; $res[$element['id']]['products.updated_at'] = date('Y-m-d H:i:s'); $res[$element['id']]['products.user_id'] = Auth::User()->id; } } if (isset($element['MK_enabled']['old'])) { //MK_enabled !isset($element['MK_enabled']['new']) ? $element['MK_enabled']['new'] = 0 : ($element['MK_enabled']['new'] = 1); if ($element['MK_enabled']['new'] != $element['MK_enabled']['old']) { $res[$element['id']]['MK.enabled'] = $element['MK_enabled']['new']; } //MK_yandex_enabled !isset($element['MK_yandex_enabled']['new']) ? $element['MK_yandex_enabled']['new'] = 0 : ($element['MK_yandex_enabled']['new'] = 1); if ($element['MK_yandex_enabled']['new'] != $element['MK_yandex_enabled']['old']) { $res[$element['id']]['MK.yandex_enabled'] = $element['MK_yandex_enabled']['new']; } //MK_price if ($element['MK_price']['new'] != $element['MK_price']['old']) { $res[$element['id']]['MK.price'] = toFloat($element['MK_price']['new']); if ($childs) { foreach ($childs as $child) { $res[$child['product_id']]['MK.price'] = $res[$element['id']]['MK.price'] * $child['multiplicator']; $res[$child['product_id']]['MK.to_export'] = 1; } } } //MK_price_currency if ($element['MK_price_currency']['new'] != $element['MK_price_currency']['old']) { $res[$element['id']]['MK.currency'] = $element['MK_price_currency']['new']; if ($childs) { foreach ($childs as $child) { $res[$child['product_id']]['MK.currency'] = $res[$element['id']]['MK.currency']; $res[$child['product_id']]['MK.to_export'] = 1; } } } //MK update if (isset($res[$element['id']]['products.in_stock']) or isset($res[$element['id']]['MK.enabled']) or isset($res[$element['id']]['MK.yandex_enabled']) or isset($res[$element['id']]['MK.price']) or isset($res[$element['id']]['MK.currency'])) { $res[$element['id']]['MK.to_export'] = 1; $res[$element['id']]['MK.updated_at'] = date('Y-m-d H:i:s'); $res[$element['id']]['MK.user_id'] = Auth::User()->id; $res[$element['id']]['products.updated_at'] = date('Y-m-d H:i:s'); $res[$element['id']]['products.user_id'] = Auth::User()->id; } } //product update if (isset($res[$element['id']]['products.status']) or isset($res[$element['id']]['products.name']) or isset($res[$element['id']]['products.article']) or isset($res[$element['id']]['products.in_stock']) or isset($res[$element['id']]['products.mrc']) or isset($res[$element['id']]['products.mrc_currency']) or isset($res[$element['id']]['products.mrc_relation']) or isset($res[$element['id']]['products.mrc_raise_relation']) or isset($res[$element['id']]['products.price']) or isset($res[$element['id']]['products.price_currency']) or isset($res[$element['id']]['products.price_relation']) or isset($res[$element['id']]['products.price_raise_relation']) or isset($res[$element['id']]['products.target_margin']) or isset($res[$element['id']]['products.common_price'])) { $res[$element['id']]['products.updated_at'] = date('Y-m-d H:i:s'); $res[$element['id']]['products.user_id'] = Auth::User()->id; } } } if (count($res) > 0) { $productModel->updatingListProducts($res); $historyModel->saveHistory('update_products', $res); if ($reViewAbsents) { $absentModel = new Absent(); $absents = $productModel->getAbsentsList(); $absentModel->addAbsentsList($absents); } Session::flash('message', GetMessages("SUCCESS_DATA_PRODUCTS_UPDATE")); return redirect($_SERVER['HTTP_REFERER']); } else { Session::flash('message', GetMessages("ERROR_NO_DATA_FOR_UPDATE")); return redirect($_SERVER['HTTP_REFERER']); } } if (isset($_POST['update_product'])) { if (!right('EditProduct')) { abort(404); } //pr($_POST); $res = array(); //status !isset($_POST['status']['new']) ? $_POST['status']['new'] = 0 : ($_POST['status']['new'] = 1); if ($_POST['status']['new'] != $_POST['status']['old']) { $res[$_POST['id']]['products.status'] = $_POST['status']['new']; } //name if ($_POST['name']['new'] != $_POST['name']['old']) { $res[$_POST['id']]['products.name'] = trim($_POST['name']['new']); } //article if ($_POST['article']['new'] != $_POST['article']['old']) { $res[$_POST['id']]['products.article'] = trim($_POST['article']['new']); } //ean if ($_POST['ean']['new'] != $_POST['ean']['old']) { $res[$_POST['id']]['products.ean'] = trim($_POST['ean']['new']); } //in_stock !isset($_POST['in_stock']['new']) ? $_POST['in_stock']['new'] = 0 : ($_POST['in_stock']['new'] = 1); if ($_POST['in_stock']['new'] != $_POST['in_stock']['old']) { $res[$_POST['id']]['products.in_stock'] = $_POST['in_stock']['new']; } //mrc isset($_POST['mrc']['new']) ? $_POST['mrc']['new'] = toFloat($_POST['mrc']['new']) : ($_POST['mrc']['new'] = 0); if ($_POST['mrc']['new'] != $_POST['mrc']['old']) { $res[$_POST['id']]['products.mrc'] = toFloat($_POST['mrc']['new']); } //price isset($_POST['price']['new']) ? $_POST['price']['new'] = toFloat($_POST['price']['new']) : ($_POST['price']['new'] = 0); if ($_POST['price']['new'] != $_POST['price']['old']) { $res[$_POST['id']]['products.price'] = toFloat($_POST['price']['new']); } //target_margin if ($_POST['target_margin']['new'] != $_POST['target_margin']['old']) { $res[$_POST['id']]['products.target_margin'] = toFloat($_POST['target_margin']['new']); } //category_id if ($_POST['category_id']['new'] != $_POST['category_id']['old']) { $res[$_POST['id']]['products.category_id'] = intval($_POST['category_id']['new']); } //brand_id if ($_POST['brand_id']['new'] != $_POST['brand_id']['old']) { $res[$_POST['id']]['products.brand_id'] = intval($_POST['brand_id']['new']); } //childs if (isset($_POST['childs']) and !empty($_POST['childs'])) { foreach ($_POST['childs'] as $key => $child) { if (empty($child['product_id']) or empty($child['multiplicator'])) { unset($_POST['childs'][$key]); } } if (!empty($_POST['childs'])) { $res[$_POST['id']]['products.childs'] = serialize($_POST['childs']); } else { $res[$_POST['id']]['products.childs'] = null; } } if (isset($_POST['GK_enabled']['old'])) { //GK_id isset($_POST['GK_id']['new']) ? $_POST['GK_id']['new'] = intval($_POST['GK_id']['new']) : ($_POST['GK_id']['new'] = 0); if ($_POST['GK_id']['new'] != $_POST['GK_id']['old']) { if ($_POST['GK_id']['new'] !== 0 and $_POST['GK_id']['new'] !== 1) { if (count($productModel->checkSiteId('GK', $_POST['GK_id']['new'])) > 0) { Session::flash('message', GetMessages("ERROR_SITE_ID_EXISTS")); return redirect($_SERVER['HTTP_REFERER']); } } $res[$_POST['id']]['GK.site_id'] = $_POST['GK_id']['new']; } //GK_enabled !isset($_POST['GK_enabled']['new']) ? $_POST['GK_enabled']['new'] = 0 : ($_POST['GK_enabled']['new'] = 1); if ($_POST['GK_enabled']['new'] != $_POST['GK_enabled']['old']) { $res[$_POST['id']]['GK.enabled'] = $_POST['GK_enabled']['new']; } //GK_yandex_enabled !isset($_POST['GK_yandex_enabled']['new']) ? $_POST['GK_yandex_enabled']['new'] = 0 : ($_POST['GK_yandex_enabled']['new'] = 1); if ($_POST['GK_yandex_enabled']['new'] != $_POST['GK_yandex_enabled']['old']) { $res[$_POST['id']]['GK.yandex_enabled'] = $_POST['GK_yandex_enabled']['new']; } //GK_price isset($_POST['GK_price']['new']) ? $_POST['GK_price']['new'] = toFloat($_POST['GK_price']['new']) : ($_POST['GK_price']['new'] = 0); if ($_POST['GK_price']['new'] != $_POST['GK_price']['old']) { $res[$_POST['id']]['GK.price'] = $_POST['GK_price']['new']; } //GK_price_currency if ($_POST['GK_price_currency']['new'] != $_POST['GK_price_currency']['old']) { $res[$_POST['id']]['GK.currency'] = $_POST['GK_price_currency']['new']; } //GK update if (isset($res[$_POST['id']]['products.in_stock']) or isset($res[$_POST['id']]['GK.enabled']) or isset($res[$_POST['id']]['GK.yandex_enabled']) or isset($res[$_POST['id']]['GK.price']) or isset($res[$_POST['id']]['GK.currency'])) { $res[$_POST['id']]['GK.to_export'] = 1; $res[$_POST['id']]['GK.updated_at'] = date('Y-m-d H:i:s'); $res[$_POST['id']]['GK.user_id'] = Auth::User()->id; } } if (isset($_POST['TV_enabled']['old'])) { //TV_id isset($_POST['TV_id']['new']) ? $_POST['TV_id']['new'] = intval($_POST['TV_id']['new']) : ($_POST['TV_id']['new'] = 0); if ($_POST['TV_id']['new'] != $_POST['TV_id']['old']) { if ($_POST['TV_id']['new'] !== 0 and $_POST['TV_id']['new'] !== 1) { if (count($productModel->checkSiteId('TV', $_POST['TV_id']['new'])) > 0) { Session::flash('message', GetMessages("ERROR_SITE_ID_EXISTS")); return redirect($_SERVER['HTTP_REFERER']); } } $res[$_POST['id']]['TV.site_id'] = $_POST['TV_id']['new']; } //TV_enabled !isset($_POST['TV_enabled']['new']) ? $_POST['TV_enabled']['new'] = 0 : ($_POST['TV_enabled']['new'] = 1); if ($_POST['TV_enabled']['new'] != $_POST['TV_enabled']['old']) { $res[$_POST['id']]['TV.enabled'] = $_POST['TV_enabled']['new']; } //TV_yandex_enabled !isset($_POST['TV_yandex_enabled']['new']) ? $_POST['TV_yandex_enabled']['new'] = 0 : ($_POST['TV_yandex_enabled']['new'] = 1); if ($_POST['TV_yandex_enabled']['new'] != $_POST['TV_yandex_enabled']['old']) { $res[$_POST['id']]['TV.yandex_enabled'] = $_POST['TV_yandex_enabled']['new']; } //TV_price isset($_POST['TV_price']['new']) ? $_POST['TV_price']['new'] = toFloat($_POST['TV_price']['new']) : ($_POST['TV_price']['new'] = 0); if ($_POST['TV_price']['new'] != $_POST['TV_price']['old']) { $res[$_POST['id']]['TV.price'] = $_POST['TV_price']['new']; } //TV_price_currency if ($_POST['TV_price_currency']['new'] != $_POST['TV_price_currency']['old']) { $res[$_POST['id']]['TV.currency'] = $_POST['TV_price_currency']['new']; } //TV update if (isset($res[$_POST['id']]['products.in_stock']) or isset($res[$_POST['id']]['TV.enabled']) or isset($res[$_POST['id']]['TV.yandex_enabled']) or isset($res[$_POST['id']]['TV.price']) or isset($res[$_POST['id']]['TV.currency'])) { $res[$_POST['id']]['TV.to_export'] = 1; $res[$_POST['id']]['TV.updated_at'] = date('Y-m-d H:i:s'); $res[$_POST['id']]['TV.user_id'] = Auth::User()->id; } } if (isset($_POST['MK_enabled']['old'])) { //MK_id isset($_POST['MK_id']['new']) ? $_POST['MK_id']['new'] = intval($_POST['MK_id']['new']) : ($_POST['MK_id']['new'] = 0); if ($_POST['MK_id']['new'] != $_POST['MK_id']['old']) { if ($_POST['MK_id']['new'] !== 0 and $_POST['MK_id']['new'] !== 1) { if (count($productModel->checkSiteId('MK', $_POST['MK_id']['new'])) > 0) { Session::flash('message', GetMessages("ERROR_SITE_ID_EXISTS")); return redirect($_SERVER['HTTP_REFERER']); } } $res[$_POST['id']]['MK.site_id'] = $_POST['MK_id']['new']; } //MK_enabled !isset($_POST['MK_enabled']['new']) ? $_POST['MK_enabled']['new'] = 0 : ($_POST['MK_enabled']['new'] = 1); if ($_POST['MK_enabled']['new'] != $_POST['MK_enabled']['old']) { $res[$_POST['id']]['MK.enabled'] = $_POST['MK_enabled']['new']; } //MK_yandex_enabled !isset($_POST['MK_yandex_enabled']['new']) ? $_POST['MK_yandex_enabled']['new'] = 0 : ($_POST['MK_yandex_enabled']['new'] = 1); if ($_POST['MK_yandex_enabled']['new'] != $_POST['MK_yandex_enabled']['old']) { $res[$_POST['id']]['MK.yandex_enabled'] = $_POST['MK_yandex_enabled']['new']; } //MK_price isset($_POST['MK_price']['new']) ? $_POST['MK_price']['new'] = toFloat($_POST['MK_price']['new']) : ($_POST['MK_price']['new'] = 0); if ($_POST['MK_price']['new'] != $_POST['MK_price']['old']) { $res[$_POST['id']]['MK.price'] = $_POST['MK_price']['new']; } //MK_price_currency if ($_POST['MK_price_currency']['new'] != $_POST['MK_price_currency']['old']) { $res[$_POST['id']]['MK.currency'] = $_POST['MK_price_currency']['new']; } //MK update if (isset($res[$_POST['id']]['products.in_stock']) or isset($res[$_POST['id']]['MK.enabled']) or isset($res[$_POST['id']]['MK.yandex_enabled']) or isset($res[$_POST['id']]['MK.price']) or isset($res[$_POST['id']]['MK.currency'])) { $res[$_POST['id']]['MK.to_export'] = 1; $res[$_POST['id']]['MK.updated_at'] = date('Y-m-d H:i:s'); $res[$_POST['id']]['MK.user_id'] = Auth::User()->id; } } //product update if (isset($res[$_POST['id']]['products.status']) or isset($res[$_POST['id']]['products.name']) or isset($res[$_POST['id']]['products.article']) or isset($res[$_POST['id']]['products.ean']) or isset($res[$_POST['id']]['products.in_stock']) or isset($res[$_POST['id']]['products.mrc']) or isset($res[$_POST['id']]['products.price']) or isset($res[$_POST['id']]['products.target_margin']) or isset($res[$_POST['id']]['products.category_id']) or isset($res[$_POST['id']]['products.brand_id'])) { $res[$_POST['id']]['products.updated_at'] = date('Y-m-d H:i:s'); $res[$_POST['id']]['products.user_id'] = Auth::User()->id; } if (count($res) > 0 or isset($arLabels)) { $productModel->updatingListProducts($res); $historyModel->saveHistory('update_products', $res); Session::flash('message', GetMessages("SUCCESS_DATA_PRODUCTS_UPDATE")); return redirect($_SERVER['HTTP_REFERER']); } else { Session::flash('message', GetMessages("ERROR_NO_DATA_FOR_UPDATE")); return redirect($_SERVER['HTTP_REFERER']); } } if (isset($_POST['update_labels'])) { $label = trim($_POST['labels']['new']); if ($label != $_POST['labels']['old']) { $labelModel->joinLabels($_POST['product_id'], explode(',', $_POST['labels']['new'])); Session::flash('message', GetMessages("SUCCESS_DATA_PRODUCTS_UPDATE")); return redirect($_SERVER['HTTP_REFERER']); } else { Session::flash('message', GetMessages("ERROR_NO_DATA_FOR_UPDATE")); return redirect($_SERVER['HTTP_REFERER']); } } if (isset($_POST['add_to_site'])) { if (!right('EditProduct')) { abort(404); } //pr($_POST); if (isset($_POST['GK'])) { if (!isset($_POST['GK']['product_id']) or strlen($_POST['GK']['product_id']) < 1) { Session::flash('message', GetMessages("ERROR")); return redirect($_SERVER['HTTP_REFERER']); } if (!empty($_POST['GK']['site_id']) and count($productModel->checkSiteId('GK', $_POST['GK']['site_id'])) > 0) { Session::flash('message', GetMessages("ERROR_SITE_ID_EXISTS")); return redirect($_SERVER['HTTP_REFERER']); } $res = array(); $res['product_id'] = $_POST['GK']['product_id']; !empty($_POST['GK']['site_id']) ? $res['site_id'] = intval($_POST['GK']['site_id']) : ($res['site_id'] = 1); isset($_POST['GK']['enabled']) ? $res['enabled'] = 1 : ($res['enabled'] = 0); isset($_POST['GK']['yandex_enabled']) ? $res['yandex_enabled'] = 1 : ($res['yandex_enabled'] = 0); !empty($_POST['GK']['currency']) ? $res['currency'] = $_POST['GK']['currency'] : ($res['currency'] = 'RUB'); !empty($_POST['GK']['price']) ? $res['price'] = toFloat($_POST['GK']['price']) : ($res['price'] = 0); $res['created_at'] = date('Y-m-d H:i:s'); $res['updated_at'] = date('Y-m-d H:i:s'); $res['user_id'] = Auth::User()->id; $productModel->addToSite($res, 'GK'); $historyModel->saveHistory('add_to_site', $res['product_id'], 'ГарантКомфорт'); Session::flash('message', GetMessages("SUCCESS_PRODUCT_ADD_TO_SITE")); return redirect($_SERVER['HTTP_REFERER']); } if (isset($_POST['TV'])) { if (!isset($_POST['TV']['product_id']) or strlen($_POST['TV']['product_id']) < 1) { Session::flash('message', GetMessages("ERROR")); return redirect($_SERVER['HTTP_REFERER']); } if (!empty($_POST['TV']['site_id']) and count($productModel->checkSiteId('TV', $_POST['TV']['site_id'])) > 0) { Session::flash('message', GetMessages("ERROR_SITE_ID_EXISTS")); return redirect($_SERVER['HTTP_REFERER']); } $res = array(); $res['product_id'] = $_POST['TV']['product_id']; !empty($_POST['TV']['site_id']) ? $res['site_id'] = intval($_POST['TV']['site_id']) : ($res['site_id'] = 1); isset($_POST['TV']['enabled']) ? $res['enabled'] = 1 : ($res['enabled'] = 0); isset($_POST['TV']['yandex_enabled']) ? $res['yandex_enabled'] = 1 : ($res['yandex_enabled'] = 0); !empty($_POST['TV']['currency']) ? $res['currency'] = $_POST['TV']['currency'] : ($res['currency'] = 'RUB'); !empty($_POST['TV']['price']) ? $res['price'] = toFloat($_POST['TV']['price']) : ($res['price'] = 0); $res['created_at'] = date('Y-m-d H:i:s'); $res['updated_at'] = date('Y-m-d H:i:s'); $res['user_id'] = Auth::User()->id; $productModel->addToSite($res, 'TV'); $historyModel->saveHistory('add_to_site', $res['product_id'], 'Таваго'); Session::flash('message', GetMessages("SUCCESS_PRODUCT_ADD_TO_SITE")); return redirect($_SERVER['HTTP_REFERER']); } if (isset($_POST['MK'])) { if (!isset($_POST['MK']['product_id']) or strlen($_POST['MK']['product_id']) < 1) { Session::flash('message', GetMessages("ERROR")); return redirect($_SERVER['HTTP_REFERER']); } if (!empty($_POST['MK']['site_id']) and count($productModel->checkSiteId('MK', $_POST['MK']['site_id'])) > 0) { Session::flash('message', GetMessages("ERROR_SITE_ID_EXISTS")); return redirect($_SERVER['HTTP_REFERER']); } $res = array(); $res['product_id'] = $_POST['MK']['product_id']; !empty($_POST['MK']['site_id']) ? $res['site_id'] = intval($_POST['MK']['site_id']) : ($res['site_id'] = 1); isset($_POST['MK']['enabled']) ? $res['enabled'] = 1 : ($res['enabled'] = 0); isset($_POST['MK']['yandex_enabled']) ? $res['yandex_enabled'] = 1 : ($res['yandex_enabled'] = 0); !empty($_POST['MK']['currency']) ? $res['currency'] = $_POST['MK']['currency'] : ($res['currency'] = 'RUB'); !empty($_POST['MK']['price']) ? $res['price'] = toFloat($_POST['MK']['price']) : ($res['price'] = 0); $res['created_at'] = date('Y-m-d H:i:s'); $res['updated_at'] = date('Y-m-d H:i:s'); $res['user_id'] = Auth::User()->id; $productModel->addToSite($res, 'MK'); $historyModel->saveHistory('add_to_site', $res['product_id'], 'МаксКлимат'); Session::flash('message', GetMessages("SUCCESS_PRODUCT_ADD_TO_SITE")); return redirect($_SERVER['HTTP_REFERER']); } } if (isset($_POST['add_purchase'])) { if (!right('EditProduct')) { abort(404); } //pr($_POST); $res = array(); $res['vendor_id'] = $_POST['provider']; $res['product_id'] = $_POST['product_id']; $res['currency'] = $_POST['currency']; !empty($_POST['base_price']) ? $res['base_price'] = toFloat($_POST['base_price']) : ($res['base_price'] = 0); !empty($_POST['discount_price']) ? $res['discount_price'] = toFloat($_POST['discount_price']) : ($res['discount_price'] = 0); !empty($_POST['raise']) ? $res['raise'] = toFloat($_POST['raise']) : ($res['raise'] = 0); !empty($_POST['discount_bulk']) ? $res['discount_bulk'] = toFloat($_POST['discount_bulk']) : ($res['discount_bulk'] = 0); $res['created_at'] = date('Y-m-d H:i:s'); $res['updated_at'] = date('Y-m-d H:i:s'); $res['user_id'] = Auth::User()->id; $purchaseModel->addPurchase($res); $historyModel->saveHistory('add_purchase', $res['product_id']); Session::flash('message', GetMessages("SUCCESS_ADD_PURCHASE")); return redirect($_SERVER['HTTP_REFERER']); } if (isset($_POST['update_purchase'])) { if (!right('EditProduct')) { abort(404); } unset($_POST['_token']); unset($_POST['update_purchase']); //pr($_POST); $res = array(); foreach ($_POST as $element) { //base_price if (isset($element['base_price'])) { if ($element['base_price']['new'] != $element['base_price']['old']) { $res[$element['purchase_id']]['base_price'] = $element['base_price']['new']; } } else { $res[$element['purchase_id']]['base_price'] = 0; } //currency if (isset($element['currency'])) { if ($element['currency']['new'] != $element['currency']['old']) { $res[$element['purchase_id']]['currency'] = $element['currency']['new']; } } else { $res[$element['purchase_id']]['currency'] = 'RUB'; } //raise if (isset($element['raise'])) { if ($element['raise']['new'] != $element['raise']['old']) { $res[$element['purchase_id']]['raise'] = $element['raise']['new']; } } else { $res[$element['purchase_id']]['raise'] = 1; } //discount_price if (isset($element['discount_price'])) { if ($element['discount_price']['new'] != $element['discount_price']['old']) { $res[$element['purchase_id']]['discount_price'] = $element['discount_price']['new']; } } else { $res[$element['purchase_id']]['discount_price'] = 0; } //discount_bulk if (isset($element['discount_bulk'])) { if ($element['discount_bulk']['new'] != $element['discount_bulk']['old']) { $res[$element['purchase_id']]['discount_bulk'] = $element['discount_bulk']['new']; } } else { $res[$element['purchase_id']]['discount_bulk'] = 0; } if (isset($res[$element['purchase_id']]['base_price']) or isset($res[$element['purchase_id']]['currency']) or isset($res[$element['purchase_id']]['raise']) or isset($res[$element['purchase_id']]['discount_price']) or isset($res[$element['purchase_id']]['discount_bulk'])) { $res[$element['purchase_id']]['product_id'] = $element['product_id']; $res[$element['purchase_id']]['purchase.updated_at'] = date('Y-m-d H:i:s'); $res[$element['purchase_id']]['purchase.user_id'] = Auth::User()->id; } } //pr($res); if (count($res) > 0) { $purchaseModel->updatePurchase($res); $historyModel->saveHistory('update_purchase', $res); Session::flash('message', GetMessages("SUCCESS_DATA_PRODUCTS_UPDATE")); return redirect($_SERVER['HTTP_REFERER']); } else { Session::flash('message', GetMessages("ERROR_NO_DATA_FOR_UPDATE")); return redirect($_SERVER['HTTP_REFERER']); } } if (isset($_POST['create_product'])) { if (!right('EditProduct')) { abort(404); } unset($_POST['_token']); unset($_POST['create_product']); //pr($_POST); if (strlen($request->input('name')) > 0) { $res = array(); $res['name'] = $request->input('name'); $res['article'] = $request->input('article'); $res['ean'] = $request->input('ean'); $res['status'] = isset($_POST['status']) ? 1 : 0; $res['category_id'] = $request->input('category_id'); $res['brand_id'] = $request->input('brand_id'); $res['mrc'] = empty($_POST['mrc']) ? 0 : $_POST['mrc']; $res['mrc_currency'] = empty($_POST['mrc_currency']) ? 'RUB' : $_POST['mrc_currency']; $res['price'] = empty($_POST['price']) ? 0 : $_POST['price']; $res['price_currency'] = empty($_POST['price_currency']) ? 'RUB' : $_POST['price_currency']; $res['target_margin'] = $request->input('target_margin'); $res['in_stock'] = isset($_POST['in_stock']) ? 1 : 0; $res['user_id'] = Auth::User()->id; $res['created_at'] = date('Y-m-d H:i:s'); $res['updated_at'] = date('Y-m-d H:i:s'); $id = $productModel->createProduct($res); $historyModel->saveHistory('create_product', $id); Session::flash('message', GetMessages("SUCCESS_CREATE_NEW_PRODUCT")); return redirect()->route('product.show', ['id' => $id]); } else { Session::flash('message', GetMessages("ERROR_EMPTY_NAME_PRODUCT")); return redirect($_SERVER['HTTP_REFERER']); } } if (isset($_POST['ajax'])) { if (!right('EditProduct')) { abort(404); } return $productModel->checkSiteId($_POST['site'], $_POST['id']); } if (isset($_POST['cp_page_sbmt'])) { $userModel->where('id', Auth::User()->id)->update(array('count_products' => $_POST['cp_page_val'])); Session::flash('message', GetMessages("SUCCESS_UPDATE")); return redirect($_SERVER['HTTP_REFERER']); } }
/** * Store a newly created resource in storage. * * @param Request $request * @return Response */ public function store(Request $request, History $historyModel, Cloud $cloudModel, Product $productModel, Purchase $purchaseModel) { if (isset($_POST['delete_all_flags'])) { if (!right('Import')) { abort(404); } $productModel->deleteAllFlags(); Session::flash('message', GetMessages("SUCCESS_DELETE_FLAGS")); return redirect()->route('cloud.index'); } if (isset($_POST['delete_all_export_list'])) { if (!right('Import')) { abort(404); } $productModel->deleteAllExport(); Session::flash('message', GetMessages("SUCCESS_DELETE_FLAGS")); return redirect()->route('cloud.index'); } if (isset($_POST['ajax'])) { if (!right('Import')) { abort(404); } Session::forget('idsNewProducts'); } if (isset($_POST['export_site'])) { if (!right('Import')) { abort(404); } //pr($_POST); if (isset($_POST['field'])) { $products = $productModel->getProductFromExportToSite(); if (count($products) > 0) { $res = array(); $res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'ВП ID'); $res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'Производитель'); $res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'Наменование'); if (isset($_POST['field']['GK'])) { $res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'ID ГК'); $res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'Цена ГК'); $res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'Валюта ГК'); $res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'Активность ГК'); $res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'Яндекс ГК'); } if (isset($_POST['field']['TV'])) { $res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'ID ТВ'); $res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'Цена ТВ'); $res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'Валюта ТВ'); $res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'Активность ТВ'); $res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'Яндекс ТВ'); } if (isset($_POST['field']['MK'])) { $res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'ID МК'); $res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'Цена МК'); $res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'Валюта МК'); $res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'Активность МК'); $res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'Яндекс МК'); } $res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'Наличие'); $i = 1; foreach ($products as $product) { $res[$i][] = $product->id; $res[$i][] = iconv('UTF-8', 'cp1251//TRANSLIT', $product->brand); $res[$i][] = iconv('UTF-8', 'cp1251//TRANSLIT', $product->name); if (isset($_POST['field']['GK'])) { if (strpos($product->GK_price, '.')) { $product->GK_price = str_replace('.', ',', $product->GK_price); //заменяем точку на запятую, ибо эксель ебанутый(( } if ($product->GK_currency == 'RUB') { $product->GK_price = intval($product->GK_price); //округляем, если валюта RUB } $res[$i][] = $product->GK_id; $res[$i][] = $product->GK_price; $res[$i][] = $product->GK_currency; $res[$i][] = $product->GK_enabled; $res[$i][] = $product->GK_yandex_enabled; } if (isset($_POST['field']['TV'])) { if (strpos($product->TV_price, '.')) { $product->TV_price = str_replace('.', ',', $product->TV_price); //заменяем точку на запятую, ибо эксель ебанутый(( } if ($product->TV_currency == 'RUB') { $product->TV_price = intval($product->TV_price); //округляем, если валюта RUB } $res[$i][] = $product->TV_id; $res[$i][] = $product->TV_price; $res[$i][] = $product->TV_currency; $res[$i][] = $product->TV_enabled; $res[$i][] = $product->TV_yandex_enabled; } if (isset($_POST['field']['MK'])) { if (strpos($product->MK_price, '.')) { $product->MK_price = str_replace('.', ',', $product->MK_price); //заменяем точку на запятую, ибо эксель ебанутый(( } if ($product->MK_currency == 'RUB') { $product->MK_price = intval($product->MK_price); //округляем, если валюта RUB } $res[$i][] = $product->MK_id; $res[$i][] = $product->MK_price; $res[$i][] = $product->MK_currency; $res[$i][] = $product->MK_enabled; $res[$i][] = $product->MK_yandex_enabled; } $res[$i][] = $product->in_stock; $i++; } $this->saveToCSV($res); Session::flash('message', GetMessages("SUCCESS_EXPORT")); return redirect()->route('cloud.index'); } else { return redirect()->route('cloud.index'); } } else { return redirect()->route('cloud.index'); } } if (isset($_POST['export_prod'])) { if (!right('Import')) { abort(404); } //pr($_POST); $fields = array(); $fields[] = 'products.id'; !isset($_POST['field']['prod']['status']) ?: ($fields[] = 'products.status'); !isset($_POST['field']['prod']['name']) ?: ($fields[] = 'products.name'); !isset($_POST['field']['prod']['category']) ?: ($fields[] = 'products.category_id'); !isset($_POST['field']['prod']['category']) ?: ($fields[] = 'PC.name as category_name'); !isset($_POST['field']['prod']['brand']) ?: ($fields[] = 'products.brand_id'); !isset($_POST['field']['prod']['brand']) ?: ($fields[] = 'PB.name as brand_name'); !isset($_POST['field']['prod']['article']) ?: ($fields[] = 'products.article'); !isset($_POST['field']['prod']['ean']) ?: ($fields[] = 'products.ean'); !isset($_POST['field']['prod']['mrc']) ?: ($fields[] = 'products.mrc'); !isset($_POST['field']['prod']['mrc']) ?: ($fields[] = 'products.mrc_currency'); !isset($_POST['field']['prod']['price']) ?: ($fields[] = 'products.price'); !isset($_POST['field']['prod']['price']) ?: ($fields[] = 'products.price_currency'); !isset($_POST['field']['prod']['target_margin']) ?: ($fields[] = 'products.target_margin'); !isset($_POST['field']['prod']['in_stock']) ?: ($fields[] = 'products.in_stock'); !isset($_POST['field']['site']['id']) ?: ($fields[] = 'GK.site_id as GK_id'); !isset($_POST['field']['site']['enabled']) ?: ($fields[] = 'GK.enabled as GK_enabled'); !isset($_POST['field']['site']['yandex_enabled']) ?: ($fields[] = 'GK.yandex_enabled as GK_yandex_enabled'); !isset($_POST['field']['site']['currency']) ?: ($fields[] = 'GK.currency as GK_currency'); !isset($_POST['field']['site']['price']) ?: ($fields[] = 'GK.price as GK_price'); !isset($_POST['field']['site']['id']) ?: ($fields[] = 'TV.site_id as TV_id'); !isset($_POST['field']['site']['enabled']) ?: ($fields[] = 'TV.enabled as TV_enabled'); !isset($_POST['field']['site']['yandex_enabled']) ?: ($fields[] = 'TV.yandex_enabled as TV_yandex_enabled'); !isset($_POST['field']['site']['currency']) ?: ($fields[] = 'TV.currency as TV_currency'); !isset($_POST['field']['site']['price']) ?: ($fields[] = 'TV.price as TV_price'); !isset($_POST['field']['site']['id']) ?: ($fields[] = 'MK.site_id as MK_id'); !isset($_POST['field']['site']['enabled']) ?: ($fields[] = 'MK.enabled as MK_enabled'); !isset($_POST['field']['site']['yandex_enabled']) ?: ($fields[] = 'MK.yandex_enabled as MK_yandex_enabled'); !isset($_POST['field']['site']['currency']) ?: ($fields[] = 'MK.currency as MK_currency'); !isset($_POST['field']['site']['price']) ?: ($fields[] = 'MK.price as MK_price'); $products = $productModel->getProductFromExport($fields); if (count($products) > 0) { $res = array(); $res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'VP01 Id товара'); !isset($_POST['field']['prod']['status']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'VP02 Статус')); !isset($_POST['field']['prod']['name']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'VP03 Наименование')); !isset($_POST['field']['prod']['category']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'Категория')); !isset($_POST['field']['prod']['category']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'VP04 ID категории')); !isset($_POST['field']['prod']['brand']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'Производитель')); !isset($_POST['field']['prod']['brand']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'VP05 ID производителя')); !isset($_POST['field']['prod']['article']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'VP06 Артикул')); !isset($_POST['field']['prod']['ean']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'VP07 Штрих-код')); !isset($_POST['field']['prod']['mrc']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'VP08 МРЦ')); !isset($_POST['field']['prod']['mrc']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'VP09 МРЦ валюта')); !isset($_POST['field']['prod']['price']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'VP10 Прайс')); !isset($_POST['field']['prod']['price']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'VP11 Прайс валюта')); !isset($_POST['field']['prod']['target_margin']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'VP12 Маржинальность')); !isset($_POST['field']['prod']['in_stock']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'VP13 Наличие')); !isset($_POST['field']['site']['id']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'GK01 ID на ГК')); !isset($_POST['field']['site']['enabled']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'GK02 Статус ГК')); !isset($_POST['field']['site']['yandex_enabled']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'GK03 Маркет ГК')); !isset($_POST['field']['site']['currency']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'GK04 Валюта ГК')); !isset($_POST['field']['site']['price']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'GK05 Цена ГК')); !isset($_POST['field']['site']['id']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'TV01 ID на ТВ')); !isset($_POST['field']['site']['enabled']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'TV02 Статус ТВ')); !isset($_POST['field']['site']['yandex_enabled']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'TV03 Маркет ТВ')); !isset($_POST['field']['site']['currency']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'TV04 Валюта ТВ')); !isset($_POST['field']['site']['price']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'TV05 Цена ТВ')); !isset($_POST['field']['site']['id']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'MK01 ID на МК')); !isset($_POST['field']['site']['enabled']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'MK02 Статус МК')); !isset($_POST['field']['site']['yandex_enabled']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'MK03 Маркет МК')); !isset($_POST['field']['site']['currency']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'MK04 Валюта МК')); !isset($_POST['field']['site']['price']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'MK05 Цена МК')); $i = 1; foreach ($products as $product) { $res[$i][] = $product->id; !isset($_POST['field']['prod']['status']) ?: ($res[$i][] = $product->status); !isset($_POST['field']['prod']['name']) ?: ($res[$i][] = iconv('UTF-8', 'cp1251//TRANSLIT', $product->name)); !isset($_POST['field']['prod']['category']) ?: ($res[$i][] = iconv('UTF-8', 'cp1251//TRANSLIT', $product->category_name)); !isset($_POST['field']['prod']['category']) ?: ($res[$i][] = $product->category_id); !isset($_POST['field']['prod']['brand']) ?: ($res[$i][] = iconv('UTF-8', 'cp1251//TRANSLIT', $product->brand_name)); !isset($_POST['field']['prod']['brand']) ?: ($res[$i][] = $product->brand_id); !isset($_POST['field']['prod']['article']) ?: ($res[$i][] = iconv('UTF-8', 'cp1251//TRANSLIT', $product->article)); !isset($_POST['field']['prod']['ean']) ?: ($res[$i][] = $product->ean); if (isset($_POST['field']['prod']['mrc'])) { if (strpos($product->mrc, '.')) { $product->mrc = str_replace('.', ',', $product->mrc); //заменяем точку на запятую, ибо эксель ебанутый(( } $res[$i][] = $product->mrc; } !isset($_POST['field']['prod']['mrc']) ?: ($res[$i][] = $product->mrc_currency); if (isset($_POST['field']['prod']['price'])) { if (strpos($product->price, '.')) { $product->price = str_replace('.', ',', $product->price); //заменяем точку на запятую, ибо эксель ебанутый(( } $res[$i][] = $product->price; } !isset($_POST['field']['prod']['price']) ?: ($res[$i][] = $product->price_currency); !isset($_POST['field']['prod']['target_margin']) ?: ($res[$i][] = $product->target_margin); !isset($_POST['field']['prod']['in_stock']) ?: ($res[$i][] = $product->in_stock); !isset($_POST['field']['site']['id']) ?: ($res[$i][] = $product->GK_id); !isset($_POST['field']['site']['enabled']) ?: ($res[$i][] = $product->GK_enabled); !isset($_POST['field']['site']['yandex_enabled']) ?: ($res[$i][] = $product->GK_yandex_enabled); !isset($_POST['field']['site']['currency']) ?: ($res[$i][] = $product->GK_currency); if (isset($_POST['field']['site']['price'])) { if (strpos($product->GK_price, '.')) { $product->GK_price = str_replace('.', ',', $product->GK_price); //заменяем точку на запятую, ибо эксель ебанутый(( } $res[$i][] = $product->GK_price; } !isset($_POST['field']['site']['id']) ?: ($res[$i][] = $product->TV_id); !isset($_POST['field']['site']['enabled']) ?: ($res[$i][] = $product->TV_enabled); !isset($_POST['field']['site']['yandex_enabled']) ?: ($res[$i][] = $product->TV_yandex_enabled); !isset($_POST['field']['site']['currency']) ?: ($res[$i][] = $product->TV_currency); if (isset($_POST['field']['site']['price'])) { if (strpos($product->TV_price, '.')) { $product->TV_price = str_replace('.', ',', $product->TV_price); //заменяем точку на запятую, ибо эксель ебанутый(( } $res[$i][] = $product->TV_price; } !isset($_POST['field']['site']['id']) ?: ($res[$i][] = $product->MK_id); !isset($_POST['field']['site']['enabled']) ?: ($res[$i][] = $product->MK_enabled); !isset($_POST['field']['site']['yandex_enabled']) ?: ($res[$i][] = $product->MK_yandex_enabled); !isset($_POST['field']['site']['currency']) ?: ($res[$i][] = $product->MK_currency); if (isset($_POST['field']['site']['price'])) { if (strpos($product->MK_price, '.')) { $product->MK_price = str_replace('.', ',', $product->MK_price); //заменяем точку на запятую, ибо эксель ебанутый(( } $res[$i][] = $product->MK_price; } $i++; } $this->saveToCSV($res); Session::flash('message', GetMessages("SUCCESS_EXPORT")); return redirect()->route('cloud.index'); } else { return redirect()->route('cloud.index'); } } if (isset($_POST['export_purch'])) { if (!right('Import')) { abort(404); } $fields = array(); $fields[] = 'purchase.id as purchase_id'; $fields[] = 'P.id as product_id'; !isset($_POST['field']['purch']['name']) ?: ($fields[] = 'P.name as product_name'); !isset($_POST['field']['purch']['article']) ?: ($fields[] = 'P.article as article'); !isset($_POST['field']['purch']['price']) ?: ($fields[] = 'P.price as price'); !isset($_POST['field']['purch']['price']) ?: ($fields[] = 'P.price_currency as price_currency'); !isset($_POST['field']['purch']['ean']) ?: ($fields[] = 'P.ean as ean'); !isset($_POST['field']['purch']['category']) ?: ($fields[] = 'PC.name as category'); !isset($_POST['field']['purch']['brand']) ?: ($fields[] = 'PB.name as brand'); !isset($_POST['field']['purch']['provider']) ?: ($fields[] = 'PROV.name as provider'); !isset($_POST['field']['purch']['provider']) ?: ($fields[] = 'PROV.id as provider_id'); !isset($_POST['field']['purch']['base_price']) ?: ($fields[] = 'purchase.base_price'); !isset($_POST['field']['purch']['currency']) ?: ($fields[] = 'purchase.currency'); !isset($_POST['field']['purch']['raise']) ?: ($fields[] = 'purchase.raise'); !isset($_POST['field']['purch']['discount_price']) ?: ($fields[] = 'purchase.discount_price'); !isset($_POST['field']['purch']['discount_bulk']) ?: ($fields[] = 'purchase.discount_bulk'); $purchases = $purchaseModel->getPurchaseFromExport($fields); if (count($purchases) > 0) { $res = array(); $res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'PU01 Id закупки'); $res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'PU02 Id товара'); !isset($_POST['field']['purch']['name']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'Наименование')); !isset($_POST['field']['purch']['article']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'Артикул')); !isset($_POST['field']['purch']['price']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'Прайс')); !isset($_POST['field']['purch']['price']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'Валюта прайса')); !isset($_POST['field']['purch']['ean']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'Штрих-код')); !isset($_POST['field']['purch']['category']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'Категория')); !isset($_POST['field']['purch']['brand']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'Производитель')); !isset($_POST['field']['purch']['provider']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'Поставщик')); !isset($_POST['field']['purch']['provider']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'PU03 ID поставщика')); !isset($_POST['field']['purch']['base_price']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'PU04 Базовая цена')); !isset($_POST['field']['purch']['currency']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'PU05 Валюта')); !isset($_POST['field']['purch']['raise']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'PU06 Поправка к ЦБ')); !isset($_POST['field']['purch']['discount_price']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'PU07 Скидка')); !isset($_POST['field']['purch']['discount_bulk']) ?: ($res[0][] = iconv('UTF-8', 'cp1251//TRANSLIT', 'PU08 Доп.скидка')); $i = 1; foreach ($purchases as $purchase) { $res[$i][] = $purchase->purchase_id; $res[$i][] = $purchase->product_id; !isset($_POST['field']['purch']['name']) ?: ($res[$i][] = iconv('UTF-8', 'cp1251//TRANSLIT', $purchase->product_name)); !isset($_POST['field']['purch']['article']) ?: ($res[$i][] = iconv('UTF-8', 'cp1251//TRANSLIT', $purchase->article)); !isset($_POST['field']['purch']['price']) ?: ($res[$i][] = iconv('UTF-8', 'cp1251//TRANSLIT', str_replace('.', ',', $purchase->price))); !isset($_POST['field']['purch']['price']) ?: ($res[$i][] = iconv('UTF-8', 'cp1251//TRANSLIT', $purchase->price_currency)); !isset($_POST['field']['purch']['ean']) ?: ($res[$i][] = iconv('UTF-8', 'cp1251//TRANSLIT', $purchase->ean)); !isset($_POST['field']['purch']['category']) ?: ($res[$i][] = iconv('UTF-8', 'cp1251//TRANSLIT', $purchase->category)); !isset($_POST['field']['purch']['brand']) ?: ($res[$i][] = iconv('UTF-8', 'cp1251//TRANSLIT', $purchase->brand)); !isset($_POST['field']['purch']['provider']) ?: ($res[$i][] = iconv('UTF-8', 'cp1251//TRANSLIT', $purchase->provider)); !isset($_POST['field']['purch']['provider']) ?: ($res[$i][] = $purchase->provider_id); if (isset($_POST['field']['purch']['base_price'])) { if (strpos($purchase->base_price, '.')) { $purchase->base_price = str_replace('.', ',', $purchase->base_price); //заменяем точку на запятую, ибо эксель ебанутый(( } $res[$i][] = $purchase->base_price; } !isset($_POST['field']['purch']['currency']) ?: ($res[$i][] = $purchase->currency); !isset($_POST['field']['purch']['raise']) ?: ($res[$i][] = $purchase->raise); if (isset($_POST['field']['purch']['discount_price'])) { if (strpos($purchase->discount_price, '.')) { $purchase->discount_price = str_replace('.', ',', $purchase->discount_price); //заменяем точку на запятую, ибо эксель ебанутый(( } $res[$i][] = $purchase->discount_price; } if (isset($_POST['field']['purch']['discount_bulk'])) { if (strpos($purchase->discount_bulk, '.')) { $purchase->discount_bulk = str_replace('.', ',', $purchase->discount_bulk); //заменяем точку на запятую, ибо эксель ебанутый(( } $res[$i][] = $purchase->discount_bulk; } $i++; } $this->saveToCSV($res); Session::flash('message', GetMessages("SUCCESS_EXPORT")); return redirect()->route('cloud.index'); } else { return redirect()->route('cloud.index'); } } if (isset($_POST['import_csv'])) { if (!right('Import')) { abort(404); } if (isset($request['file_csv'])) { $file = Input::file('file_csv'); $extension = $file->getClientOriginalExtension(); //получаем расширение if ($extension == 'csv') { $filename = $file->getClientOriginalName(); //оригинальное название файла $real_filename = date("Y_m_d_H_i_s") . '_' . RuslugFacade::make(mb_strtolower($file->getClientOriginalName())); //преобразованное название файла $file->move(base_path() . '/public/storage/import/', $real_filename); //перемещаем файл $header = NULL; $data = array(); if (($handle = fopen(base_path() . cloud_path() . '/import/' . $real_filename, "r")) !== FALSE) { while (($row = fgetcsv($handle, 1000, ';')) !== FALSE) { if (!$header) { $header = $row; } else { $data[] = array_combine($header, $row); } } fclose($handle); $res = []; //pr($data); $i = 0; foreach ($data as $row) { if (array_key_exists(to1251('VP01 Id товара'), $row)) { //это товар if (!empty($row[to1251('VP01 Id товара')])) { //товар уже существует, будем обновлять !array_key_exists(to1251('VP02 Статус'), $row) ?: ($res['update_prod'][$row[to1251('VP01 Id товара')]]['products.status'] = import_field($row[to1251('VP02 Статус')], 'bool', 1)); !array_key_exists(to1251('VP03 Наименование'), $row) ?: ($res['update_prod'][$row[to1251('VP01 Id товара')]]['products.name'] = import_field(toUTF($row[to1251('VP03 Наименование')]), 'string', '')); !array_key_exists(to1251('VP04 ID категории'), $row) ?: ($res['update_prod'][$row[to1251('VP01 Id товара')]]['products.category_id'] = import_field($row[to1251('VP04 ID категории')], 'int', 0)); !array_key_exists(to1251('VP05 ID производителя'), $row) ?: ($res['update_prod'][$row[to1251('VP01 Id товара')]]['products.brand_id'] = import_field($row[to1251('VP05 ID производителя')], 'int', 0)); !array_key_exists(to1251('VP06 Артикул'), $row) ?: ($res['update_prod'][$row[to1251('VP01 Id товара')]]['products.article'] = import_field(toUTF($row[to1251('VP06 Артикул')]), 'string', '')); !array_key_exists(to1251('VP07 Штрих-код'), $row) ?: ($res['update_prod'][$row[to1251('VP01 Id товара')]]['products.ean'] = import_field($row[to1251('VP07 Штрих-код')], 'string', '')); !array_key_exists(to1251('VP08 МРЦ'), $row) ?: ($res['update_prod'][$row[to1251('VP01 Id товара')]]['products.mrc'] = import_field($row[to1251('VP08 МРЦ')], 'float', 0)); !array_key_exists(to1251('VP09 МРЦ валюта'), $row) ?: ($res['update_prod'][$row[to1251('VP01 Id товара')]]['products.mrc_currency'] = import_field($row[to1251('VP09 МРЦ валюта')], 'string', 'RUB')); !array_key_exists(to1251('VP10 Прайс'), $row) ?: ($res['update_prod'][$row[to1251('VP01 Id товара')]]['products.price'] = import_field($row[to1251('VP10 Прайс')], 'float', 0)); !array_key_exists(to1251('VP11 Прайс валюта'), $row) ?: ($res['update_prod'][$row[to1251('VP01 Id товара')]]['products.price_currency'] = import_field($row[to1251('VP11 Прайс валюта')], 'string', 'RUB')); !array_key_exists(to1251('VP12 Маржинальность'), $row) ?: ($res['update_prod'][$row[to1251('VP01 Id товара')]]['products.target_margin'] = import_field($row[to1251('VP12 Маржинальность')], 'float', 0)); !array_key_exists(to1251('VP13 Наличие'), $row) ?: ($res['update_prod'][$row[to1251('VP01 Id товара')]]['products.in_stock'] = import_field($row[to1251('VP13 Наличие')], 'bool', 0)); if (isset($res['update_prod'][$row[to1251('VP01 Id товара')]]['products.status']) or isset($res['update_prod'][$row[to1251('VP01 Id товара')]]['products.name']) or isset($res['update_prod'][$row[to1251('VP01 Id товара')]]['products.category_id']) or isset($res['update_prod'][$row[to1251('VP01 Id товара')]]['products.brand_id']) or isset($res['update_prod'][$row[to1251('VP01 Id товара')]]['products.article']) or isset($res['update_prod'][$row[to1251('VP01 Id товара')]]['products.ean']) or isset($res['update_prod'][$row[to1251('VP01 Id товара')]]['products.min_retail_price']) or isset($res['update_prod'][$row[to1251('VP01 Id товара')]]['products.rec_retail_price']) or isset($res['update_prod'][$row[to1251('VP01 Id товара')]]['products.target_margin']) or isset($res['update_prod'][$row[to1251('VP01 Id товара')]]['products.in_stock'])) { $res['update_prod'][$row[to1251('VP01 Id товара')]]['products.id'] = $row[to1251('VP01 Id товара')]; $res['update_prod'][$row[to1251('VP01 Id товара')]]['products.updated_at'] = date('Y-m-d H:i:s'); $res['update_prod'][$row[to1251('VP01 Id товара')]]['products.user_id'] = Auth::User()->id; } if (array_key_exists(to1251('GK01 ID на ГК'), $row)) { //есть поле Гаранта if (stristr($row[to1251('GK01 ID на ГК')], 'add')) { $row[to1251('GK01 ID на ГК')] = str_replace('add', '', $row[to1251('GK01 ID на ГК')]); //добавляем новый $productModel->deleteWithSite('GK', $row[to1251('VP01 Id товара')]); //сперва удаяем все, что связано с этим товаром (если есть) $res['add_to_GK'][$i]['product_id'] = $row[to1251('VP01 Id товара')]; !array_key_exists(to1251('GK01 ID на ГК'), $row) ? $res['add_to_GK'][$i]['site_id'] = 1 : ($res['add_to_GK'][$i]['site_id'] = import_field($row[to1251('GK01 ID на ГК')], 'int', 1)); !array_key_exists(to1251('GK02 Статус ГК'), $row) ? $res['add_to_GK'][$i]['enabled'] = 1 : ($res['add_to_GK'][$i]['enabled'] = import_field($row[to1251('GK02 Статус ГК')], 'bool', 1)); !array_key_exists(to1251('GK03 Маркет ГК'), $row) ? $res['add_to_GK'][$i]['yandex_enabled'] = 0 : ($res['add_to_GK'][$i]['yandex_enabled'] = import_field($row[to1251('GK03 Маркет ГК')], 'bool', 0)); !array_key_exists(to1251('GK04 Валюта ГК'), $row) ? $res['add_to_GK'][$i]['currency'] = 'RUB' : ($res['add_to_GK'][$i]['currency'] = import_field($row[to1251('GK04 Валюта ГК')], 'string', 'RUB')); !array_key_exists(to1251('GK05 Цена ГК'), $row) ? $res['add_to_GK'][$i]['price'] = 0 : ($res['add_to_GK'][$i]['price'] = import_field($row[to1251('GK05 Цена ГК')], 'float', 0)); $res['add_to_GK'][$i]['created_at'] = date('Y-m-d H:i:s'); $res['add_to_GK'][$i]['updated_at'] = date('Y-m-d H:i:s'); $res['add_to_GK'][$i]['user_id'] = Auth::User()->id; } else { if (count($productModel->checkProductOnSiteId('GK', $row[to1251('VP01 Id товара')])) > 0) { //убеждаемся, что на этот товар уже привязан //если товар есть на сайте, будем обновлять !array_key_exists(to1251('GK01 ID на ГК'), $row) ?: ($res['update_prod'][$row[to1251('VP01 Id товара')]]['GK.site_id'] = import_field($row[to1251('GK01 ID на ГК')], 'int', 0)); !array_key_exists(to1251('GK02 Статус ГК'), $row) ?: ($res['update_prod'][$row[to1251('VP01 Id товара')]]['GK.enabled'] = import_field($row[to1251('GK02 Статус ГК')], 'bool', 1)); !array_key_exists(to1251('GK03 Маркет ГК'), $row) ?: ($res['update_prod'][$row[to1251('VP01 Id товара')]]['GK.yandex_enabled'] = import_field($row[to1251('GK03 Маркет ГК')], 'bool', 0)); !array_key_exists(to1251('GK04 Валюта ГК'), $row) ?: ($res['update_prod'][$row[to1251('VP01 Id товара')]]['GK.currency'] = import_field($row[to1251('GK04 Валюта ГК')], 'string', 'RUB')); !array_key_exists(to1251('GK05 Цена ГК'), $row) ?: ($res['update_prod'][$row[to1251('VP01 Id товара')]]['GK.price'] = import_field($row[to1251('GK05 Цена ГК')], 'float', 0)); $res['update_prod'][$row[to1251('VP01 Id товара')]]['GK.updated_at'] = date('Y-m-d H:i:s'); $res['update_prod'][$row[to1251('VP01 Id товара')]]['GK.user_id'] = Auth::User()->id; } } } if (array_key_exists(to1251('TV01 ID на ТВ'), $row)) { //есть поле Таваго if (stristr($row[to1251('TV01 ID на ТВ')], 'add')) { $row[to1251('TV01 ID на ТВ')] = str_replace('add', '', $row[to1251('TV01 ID на ТВ')]); //добавляем новый $productModel->deleteWithSite('TV', $row[to1251('VP01 Id товара')]); //сперва удаяем все, что связано с этим товаром (если есть) $res['add_to_TV'][$i]['product_id'] = $row[to1251('VP01 Id товара')]; !array_key_exists(to1251('TV01 ID на ТВ'), $row) ? $res['add_to_TV'][$i]['site_id'] = 1 : ($res['add_to_TV'][$i]['site_id'] = import_field($row[to1251('TV01 ID на ТВ')], 'int', 1)); !array_key_exists(to1251('TV02 Статус ТВ'), $row) ? $res['add_to_TV'][$i]['enabled'] = 1 : ($res['add_to_TV'][$i]['enabled'] = import_field($row[to1251('TV02 Статус ТВ')], 'bool', 1)); !array_key_exists(to1251('TV03 Маркет ТВ'), $row) ? $res['add_to_TV'][$i]['yandex_enabled'] = 0 : ($res['add_to_TV'][$i]['yandex_enabled'] = import_field($row[to1251('TV03 Маркет ТВ')], 'bool', 0)); !array_key_exists(to1251('TV04 Валюта ТВ'), $row) ? $res['add_to_TV'][$i]['currency'] = 'RUB' : ($res['add_to_TV'][$i]['currency'] = import_field($row[to1251('TV04 Валюта ТВ')], 'string', 'RUB')); !array_key_exists(to1251('TV05 Цена ТВ'), $row) ? $res['add_to_TV'][$i]['price'] = 0 : ($res['add_to_TV'][$i]['price'] = import_field($row[to1251('TV05 Цена ТВ')], 'float', 0)); $res['add_to_TV'][$i]['created_at'] = date('Y-m-d H:i:s'); $res['add_to_TV'][$i]['updated_at'] = date('Y-m-d H:i:s'); $res['add_to_TV'][$i]['user_id'] = Auth::User()->id; } else { if (count($productModel->checkProductOnSiteId('TV', $row[to1251('VP01 Id товара')])) > 0) { //убеждаемся, что на этот товар уже привязан //если товар есть на сайте, будем обновлять !array_key_exists(to1251('TV01 ID на ТВ'), $row) ?: ($res['update_prod'][$row[to1251('VP01 Id товара')]]['TV.site_id'] = import_field($row[to1251('TV01 ID на ТВ')], 'int', 0)); !array_key_exists(to1251('TV02 Статус ТВ'), $row) ?: ($res['update_prod'][$row[to1251('VP01 Id товара')]]['TV.enabled'] = import_field($row[to1251('TV02 Статус ТВ')], 'bool', 1)); !array_key_exists(to1251('TV03 Маркет ТВ'), $row) ?: ($res['update_prod'][$row[to1251('VP01 Id товара')]]['TV.yandex_enabled'] = import_field($row[to1251('TV03 Маркет ТВ')], 'bool', 0)); !array_key_exists(to1251('TV04 Валюта ТВ'), $row) ?: ($res['update_prod'][$row[to1251('VP01 Id товара')]]['TV.currency'] = import_field($row[to1251('TV04 Валюта ТВ')], 'string', 'RUB')); !array_key_exists(to1251('TV05 Цена ТВ'), $row) ?: ($res['update_prod'][$row[to1251('VP01 Id товара')]]['TV.price'] = import_field($row[to1251('TV05 Цена ТВ')], 'float', 0)); $res['update_prod'][$row[to1251('VP01 Id товара')]]['TV.updated_at'] = date('Y-m-d H:i:s'); $res['update_prod'][$row[to1251('VP01 Id товара')]]['TV.user_id'] = Auth::User()->id; } } } if (array_key_exists(to1251('MK01 ID на МК'), $row)) { //есть поле МаксКлимат if (stristr($row[to1251('MK01 ID на МК')], 'add')) { $row[to1251('MK01 ID на МК')] = str_replace('add', '', $row[to1251('MK01 ID на МК')]); //добавляем новый $productModel->deleteWithSite('MK', $row[to1251('VP01 Id товара')]); //сперва удаяем все, что связано с этим товаром (если есть) $res['add_to_MK'][$i]['product_id'] = $row[to1251('VP01 Id товара')]; !array_key_exists(to1251('MK01 ID на МК'), $row) ? $res['add_to_MK'][$i]['site_id'] = 1 : ($res['add_to_MK'][$i]['site_id'] = import_field($row[to1251('MK01 ID на МК')], 'int', 1)); !array_key_exists(to1251('MK02 Статус МК'), $row) ? $res['add_to_MK'][$i]['enabled'] = 1 : ($res['add_to_MK'][$i]['enabled'] = import_field($row[to1251('MK02 Статус МК')], 'bool', 1)); !array_key_exists(to1251('MK03 Маркет МК'), $row) ? $res['add_to_MK'][$i]['yandex_enabled'] = 0 : ($res['add_to_MK'][$i]['yandex_enabled'] = import_field($row[to1251('MK03 Маркет МК')], 'bool', 0)); !array_key_exists(to1251('MK04 Валюта МК'), $row) ? $res['add_to_MK'][$i]['currency'] = 'RUB' : ($res['add_to_MK'][$i]['currency'] = import_field($row[to1251('MK04 Валюта МК')], 'string', 'RUB')); !array_key_exists(to1251('MK05 Цена МК'), $row) ? $res['add_to_MK'][$i]['price'] = 0 : ($res['add_to_MK'][$i]['price'] = import_field($row[to1251('MK05 Цена МК')], 'float', 0)); $res['add_to_MK'][$i]['created_at'] = date('Y-m-d H:i:s'); $res['add_to_MK'][$i]['updated_at'] = date('Y-m-d H:i:s'); $res['add_to_MK'][$i]['user_id'] = Auth::User()->id; } else { if (count($productModel->checkProductOnSiteId('MK', $row[to1251('VP01 Id товара')])) > 0) { //убеждаемся, что на этот товар уже привязан //если товар есть на сайте, будем обновлять !array_key_exists(to1251('MK01 ID на МК'), $row) ?: ($res['update_prod'][$row[to1251('VP01 Id товара')]]['MK.site_id'] = import_field($row[to1251('MK01 ID на МК')], 'int', 0)); !array_key_exists(to1251('MK02 Статус МК'), $row) ?: ($res['update_prod'][$row[to1251('VP01 Id товара')]]['MK.enabled'] = import_field($row[to1251('MK02 Статус МК')], 'bool', 1)); !array_key_exists(to1251('MK03 Маркет МК'), $row) ?: ($res['update_prod'][$row[to1251('VP01 Id товара')]]['MK.yandex_enabled'] = import_field($row[to1251('MK03 Маркет МК')], 'bool', 0)); !array_key_exists(to1251('MK04 Валюта МК'), $row) ?: ($res['update_prod'][$row[to1251('VP01 Id товара')]]['MK.currency'] = import_field($row[to1251('MK04 Валюта МК')], 'string', 'RUB')); !array_key_exists(to1251('MK05 Цена МК'), $row) ?: ($res['update_prod'][$row[to1251('VP01 Id товара')]]['MK.price'] = import_field($row[to1251('MK05 Цена МК')], 'float', 0)); $res['update_prod'][$row[to1251('VP01 Id товара')]]['MK.updated_at'] = date('Y-m-d H:i:s'); $res['update_prod'][$row[to1251('VP01 Id товара')]]['MK.user_id'] = Auth::User()->id; } } } } else { //такого товара нет, будем добавлять !array_key_exists(to1251('VP02 Статус'), $row) ? $res['add_prod'][$i]['products.status'] = 1 : ($res['add_prod'][$i]['products.status'] = import_field($row[to1251('VP02 Статус')], 'bool', 1)); !array_key_exists(to1251('VP03 Наименование'), $row) ? $res['add_prod'][$i]['products.name'] = '' : ($res['add_prod'][$i]['products.name'] = import_field(toUTF($row[to1251('VP03 Наименование')]), 'string', '')); !array_key_exists(to1251('VP04 ID категории'), $row) ? $res['add_prod'][$i]['products.category_id'] = 1 : ($res['add_prod'][$i]['products.category_id'] = import_field($row[to1251('VP04 ID категории')], 'int', 1)); !array_key_exists(to1251('VP05 ID производителя'), $row) ? $res['add_prod'][$i]['products.brand_id'] = 1 : ($res['add_prod'][$i]['products.brand_id'] = import_field($row[to1251('VP05 ID производителя')], 'int', 1)); !array_key_exists(to1251('VP06 Артикул'), $row) ? $res['add_prod'][$i]['products.article'] = '' : ($res['add_prod'][$i]['products.article'] = import_field(toUTF($row[to1251('VP06 Артикул')]), 'string', '')); !array_key_exists(to1251('VP07 Штрих-код'), $row) ? $res['add_prod'][$i]['products.ean'] = '' : ($res['add_prod'][$i]['products.ean'] = import_field($row[to1251('VP07 Штрих-код')], 'string', '')); !array_key_exists(to1251('VP08 МРЦ'), $row) ? $res['add_prod'][$i]['products.mrc'] = 0 : ($res['add_prod'][$i]['products.mrc'] = import_field($row[to1251('VP08 МРЦ')], 'float', 0)); !array_key_exists(to1251('VP09 МРЦ валюта'), $row) ? $res['add_prod'][$i]['products.mrc_currency'] = 'RUB' : ($res['add_prod'][$i]['products.mrc_currency'] = import_field($row[to1251('VP09 МРЦ валюта')], 'string', 'RUB')); !array_key_exists(to1251('VP10 Прайс'), $row) ? $res['add_prod'][$i]['products.price'] = 0 : ($res['add_prod'][$i]['products.price'] = import_field($row[to1251('VP10 Прайс')], 'float', 0)); !array_key_exists(to1251('VP11 Прайс валюта'), $row) ? $res['add_prod'][$i]['products.price_currency'] = 'RUB' : ($res['add_prod'][$i]['products.price_currency'] = import_field($row[to1251('VP11 Прайс валюта')], 'string', 'RUB')); !array_key_exists(to1251('VP12 Маржинальность'), $row) ? $res['add_prod'][$i]['products.target_margin'] = 0 : ($res['add_prod'][$i]['products.target_margin'] = import_field($row[to1251('VP12 Маржинальность')], 'float', 0)); !array_key_exists(to1251('VP13 Наличие'), $row) ? $res['add_prod'][$i]['products.in_stock'] = 0 : ($res['add_prod'][$i]['products.in_stock'] = import_field($row[to1251('VP13 Наличие')], 'bool', 0)); $res['add_prod'][$i]['products.created_at'] = date('Y-m-d H:i:s'); $res['add_prod'][$i]['products.updated_at'] = date('Y-m-d H:i:s'); $res['add_prod'][$i]['products.user_id'] = Auth::User()->id; } } elseif (array_key_exists(to1251('PU01 Id закупки'), $row)) { //это условия if (!array_key_exists(to1251('PU02 Id товара'), $row) or empty($row[to1251('PU02 Id товара')])) { //нет обязательного поля с ID товара Session::flash('message', GetMessages("ERROR_NO_REQUIRED_FIELD")); return redirect()->route('cloud.index'); } if (!empty($row[to1251('PU01 Id закупки')])) { //такое уcловие существует - будем обновлять !array_key_exists(to1251('PU03 ID поставщика'), $row) ?: ($res['update_purch'][$row[to1251('PU01 Id закупки')]]['purchase.vendor_id'] = import_field($row[to1251('PU03 ID поставщика')], 'int', 1)); !array_key_exists(to1251('PU04 Базовая цена'), $row) ?: ($res['update_purch'][$row[to1251('PU01 Id закупки')]]['purchase.base_price'] = import_field($row[to1251('PU04 Базовая цена')], 'float', 0)); !array_key_exists(to1251('PU05 Валюта'), $row) ?: ($res['update_purch'][$row[to1251('PU01 Id закупки')]]['purchase.currency'] = import_field($row[to1251('PU05 Валюта')], 'string', 'RUB')); !array_key_exists(to1251('PU06 Поправка к ЦБ'), $row) ?: ($res['update_purch'][$row[to1251('PU01 Id закупки')]]['purchase.raise'] = import_field($row[to1251('PU06 Поправка к ЦБ')], 'float', 0)); !array_key_exists(to1251('PU07 Скидка'), $row) ?: ($res['update_purch'][$row[to1251('PU01 Id закупки')]]['purchase.discount_price'] = import_field($row[to1251('PU07 Скидка')], 'float', 0)); !array_key_exists(to1251('PU08 Доп.скидка'), $row) ?: ($res['update_purch'][$row[to1251('PU01 Id закупки')]]['purchase.discount_bulk'] = import_field($row[to1251('PU08 Доп.скидка')], 'float', 0)); if (isset($res['update_purch'][$row[to1251('PU01 Id закупки')]]['purchase.vendor_id']) or isset($res['update_purch'][$row[to1251('PU01 Id закупки')]]['purchase.base_price']) or isset($res['update_purch'][$row[to1251('PU01 Id закупки')]]['purchase.currency_id']) or isset($res['update_purch'][$row[to1251('PU01 Id закупки')]]['purchase.raise']) or isset($res['update_purch'][$row[to1251('PU01 Id закупки')]]['purchase.discount_price']) or isset($res['update_purch'][$row[to1251('PU01 Id закупки')]]['purchase.discount_bulk'])) { $res['update_purch'][$row[to1251('PU01 Id закупки')]]['purchase.id'] = $row[to1251('PU01 Id закупки')]; $res['update_purch'][$row[to1251('PU01 Id закупки')]]['purchase.product_id'] = $row[to1251('PU02 Id товара')]; $res['update_purch'][$row[to1251('PU01 Id закупки')]]['purchase.updated_at'] = date('Y-m-d H:i:s'); $res['update_purch'][$row[to1251('PU01 Id закупки')]]['purchase.user_id'] = Auth::User()->id; } } else { //такого условия нет - будем добавлять !array_key_exists(to1251('PU03 ID поставщика'), $row) ? $res['add_purch'][$i]['purchase.vendor_id'] = 1 : ($res['add_purch'][$i]['purchase.vendor_id'] = import_field($row[to1251('PU03 ID поставщика')], 'int', 1)); !array_key_exists(to1251('PU04 Базовая цена'), $row) ? $res['add_purch'][$i]['purchase.base_price'] = 0 : ($res['add_purch'][$i]['purchase.base_price'] = import_field($row[to1251('PU04 Базовая цена')], 'float', 0)); !array_key_exists(to1251('PU05 Валюта'), $row) ? $res['add_purch'][$i]['purchase.currency'] = 'RUB' : ($res['add_purch'][$i]['purchase.currency'] = import_field($row[to1251('PU05 Валюта')], 'string', 'RUB')); !array_key_exists(to1251('PU06 Поправка к ЦБ'), $row) ? $res['add_purch'][$i]['purchase.raise'] = 0 : ($res['add_purch'][$i]['purchase.raise'] = import_field($row[to1251('PU06 Поправка к ЦБ')], 'float', 0)); !array_key_exists(to1251('PU07 Скидка'), $row) ? $res['add_purch'][$i]['purchase.discount_price'] = 0 : ($res['add_purch'][$i]['purchase.discount_price'] = import_field($row[to1251('PU07 Скидка')], 'float', 0)); !array_key_exists(to1251('PU08 Доп.скидка'), $row) ? $res['add_purch'][$i]['purchase.discount_bulk'] = 0 : ($res['add_purch'][$i]['purchase.discount_bulk'] = import_field($row[to1251('PU08 Доп.скидка')], 'float', 0)); $res['add_purch'][$i]['purchase.product_id'] = $row[to1251('PU02 Id товара')]; $res['add_purch'][$i]['purchase.created_at'] = date('Y-m-d H:i:s'); $res['add_purch'][$i]['purchase.updated_at'] = date('Y-m-d H:i:s'); $res['add_purch'][$i]['purchase.user_id'] = Auth::User()->id; } } else { Session::flash('message', GetMessages("ERROR_NO_REQUIRED_FIELD")); return redirect()->route('cloud.index'); } //pr($res); $i++; } //pr($res); $count = []; if (isset($res['update_prod'])) { $count['update_prod'] = count($res['update_prod']); } if (isset($res['add_prod'])) { $count['add_prod'] = count($res['add_prod']); } if (isset($res['add_to_GK'])) { $count['add_to_GK'] = count($res['add_to_GK']); } if (isset($res['add_to_TV'])) { $count['add_to_TV'] = count($res['add_to_TV']); } if (isset($res['add_to_MK'])) { $count['add_to_MK'] = count($res['add_to_MK']); } if (isset($res['update_purch'])) { $count['update_purch'] = count($res['update_purch']); } if (isset($res['add_purch'])) { $count['add_purch'] = count($res['add_purch']); } Session::put('count', $count); Session::put('res', $res); //pr($res); $cloudModel->addFile('import', $filename, $real_filename); return redirect()->route('cloud.index'); } } else { Session::flash('message', GetMessages("ERROR_NO_CSV_FILE")); return redirect()->route('cloud.index'); } } else { Session::flash('message', GetMessages("ERROR_NO_CSV_FILE")); return redirect()->route('cloud.index'); } } if (isset($_POST['end_import'])) { if (!right('Import')) { abort(404); } $count = Session::pull('count', null); $res = Session::pull('res', null); //pr($res); //pr($count); if (isset($res['update_prod']) and count($res['update_prod']) > 0) { $productModel->updatingListProducts($res['update_prod']); } if (isset($res['add_prod']) and count($res['add_prod']) > 0) { $idsNewProducts = $productModel->createProducts($res['add_prod']); Session::put('idsNewProducts', $idsNewProducts); } if (isset($res['add_to_GK']) and count($res['add_to_GK']) > 0) { $productModel->addsToSite($res['add_to_GK'], 'GK'); } if (isset($res['add_to_TV']) and count($res['add_to_TV']) > 0) { $productModel->addsToSite($res['add_to_TV'], 'TV'); } if (isset($res['add_to_MK']) and count($res['add_to_MK']) > 0) { $productModel->addsToSite($res['add_to_MK'], 'MK'); } if (isset($res['update_purch']) and count($res['update_purch']) > 0) { $purchaseModel->updatePurchase($res['update_purch']); } if (isset($res['add_purch']) and count($res['add_purch']) > 0) { $purchaseModel->addPurchases($res['add_purch']); } $historyModel->saveHistory('import', $count); Session::flash('message', GetMessages("SUCCESS_IMPORT_COMPLETED")); return redirect()->route('cloud.index'); } if (isset($_POST['send_to_site'])) { if (!right('Import')) { abort(404); } //pr($_POST); if (isset($_POST['sent_to_'])) { $externalModel = new External(); if (isset($_POST['sent_to_']['GK'])) { $externalModel->send('GK'); } if (isset($_POST['sent_to_']['TV'])) { $externalModel->send('TV'); } if (isset($_POST['sent_to_']['GK'])) { $externalModel->send('MK'); } } if (isset($_POST['clear_list'])) { $productModel->deleteAllExport(); } Session::flash('message', GetMessages("SUCCESS_EXTERNAL_EXPORT")); return redirect()->route('cloud.index'); } }