public static function removeStock($item, $location, $quantity, $date) { $stock = new Stock(); $stock->date = $date; $stock->item()->associate($item); $stock->location()->associate($location); $stock->quantity_out = $quantity; $stock->save(); }
/** * Creates a new Stock model. * If creation is successful, the browser will be redirected to the 'view' page. * @return mixed */ public function actionCreate() { $model = new Stock(); if ($model->load(Yii::$app->request->post()) && $model->save()) { return $this->redirect(['view', 'id' => $model->id]); } else { return $this->render('create', ['model' => $model]); } }
/** * Creates a new model. * If creation is successful, the browser will be redirected to the 'view' page. */ public function actionCreate() { $model = new Stock(); // Uncomment the following line if AJAX validation is needed // $this->performAjaxValidation($model); if (isset($_POST['Stock'])) { $model->attributes = $_POST['Stock']; if ($model->save()) { $this->redirect(array('view', 'id' => $model->id)); } } $this->render('create', array('model' => $model)); }
public static function fetch($warehouse_id, $product_id) { $stock = Doctrine_Query::create()->from('Stock s')->where('s.warehouse_id =' . $warehouse_id)->andWhere('s.product_id =' . $product_id)->fetchOne(); if (!$stock) { $stock = new Stock(); $stock->setWarehouseId($warehouse_id); $stock->setProductId($product_id); $stock->setCurrentqty(0); $stock->setDate("2011-01-01"); $stock->save(); } return $stock; }
private function saveInStockTable($idBranch, $idArticle, $amount) { try { $articleStock = Stock::where('article_id', $idArticle)->where('branch_id', $idBranch)->first(); if (!empty($articleStock)) { $articleStock->stock += $amount; $articleStock->save(); } else { $stockTable = new Stock(); $stockTable->branch_id = $idBranch; $stockTable->article_id = $idArticle; $stockTable->stock = $amount; $stockTable->minstock = 0; $stockTable->save(); } #if !empty($ArticleStock) } catch (Exception $e) { die('No se pudo modificar el stock del artículo' . $idArticle . ' en la sucursal ' . $idBranch); } }
public function post_nuevo() { $inputs = Input::all(); $reglas = array('nombre' => 'required|max:50', 'descripcion' => 'required|max:50', 'alto' => 'required', 'largo' => 'required', 'ancho_prof' => 'required', 'rubro' => 'required|integer', 'sucursal' => 'required', 'stock' => 'required|integer', 'prec_compra' => 'required', 'proveedor' => 'required'); $mensajes = array('required' => 'Campo Obligatorio'); $validar = Validator::make($inputs, $reglas); if ($validar->fails()) { Input::flash(); return Redirect::back()->withInput()->withErrors($validar); } else { try { DB::beginTransaction(); $articulo = new Articulo(); $articulo->nombre = Input::get('nombre'); $articulo->descripcion = Input::get('descripcion'); $articulo->alto = Input::get('alto'); $articulo->largo = Input::get('largo'); $articulo->ancho_prof = Input::get('ancho_prof'); $articulo->id_rubro = Input::get('rubro'); $articulo->precio_compra = Input::get('prec_compra'); $articulo->id_proveedor = Input::get('proveedor'); $articulo->save(); $insertedId = $articulo->id_articulo; $stock = new Stock(); $stock->id_articulo = $insertedId; $stock->id_sucursal = Input::get('sucursal'); $stock->cantidad = Input::get('stock'); $stock->save(); DB::commit(); $articulos = DB::table('articulos')->join('rubros', 'articulos.id_rubro', '=', 'rubros.id_rubro')->join('proveedores', 'articulos.id_proveedor', '=', 'proveedores.id_proveedor')->join('stock', 'articulos.id_articulo', '=', 'stock.id_articulo')->join('sucursales', 'stock.id_sucursal', '=', 'sucursales.id_sucursal')->select('articulos.id_articulo', 'rubros.rubro', 'articulos.nombre', 'articulos.descripcion', 'articulos.alto', 'articulos.largo', 'articulos.ancho_prof', 'articulos.precio_compra', 'rubros.id_rubro', 'proveedores.nom_raz', 'stock.cantidad', 'sucursales.nombre as sucursal')->orderby('articulos.nombre', 'asc')->paginate(100); return View::make('lista_articulos')->with('articulos', $articulos)->with('error', 'El Artículo ha sido cargado con Éxito'); } catch (Exception $ex) { DB::rollBack(); echo $ex->getMessage(); } } }
public static function index() { return function ($request, $response) { if ($request->session('admin')) { switch ($request->method()) { case 'GET': # code... $stocks = Stock::all(); $response->json($stocks->as_array()); break; case 'POST': # code... $data = $request->data(); $stock = new Stock(); $stock->product = $data->product->id; $stock->quantity = $data->quantity; $stock->save(); $response->json($stock->as_array()); break; case 'DELETE': # code... echo "DELETE"; break; case 'PUT': # code... echo "PUT"; break; default: # code... break; } } else { $response->code(403); } }; }
public function emprunter($form) { $materiel_id = $form->getValue('materiel_id'); $nombre = $form->getValue('nombre'); $dispo = StockTable::getInstance()->findOneByMaterielIdAndEtatId($materiel_id, 1); if ($dispo && $dispo->getNombre() >= $nombre) { $form->save(); $dispo->addNombre(-$nombre); $dispo->save(); $emprunte = StockTable::getInstance()->findOneByMaterielIdAndEtatId($materiel_id, 2); if (!$emprunte) { $emprunte = new Stock(); $emprunte->setNombre($nombre); $emprunte->setMaterielId($materiel_id); $emprunte->setEtatId(2); } else { $emprunte->addNombre($nombre); } $emprunte->save(); return true; } else { return false; } }
private function upsert($line) { $product = DB::getInstance()->getValue("SELECT `id_product` FROM `" . _DB_PREFIX_ . "product` WHERE `reference` LIKE '{$line['reference']}'"); $product = new Product($product); $product->reference = $line['reference']; $product->name = array( '1' => $line['name'], '2' => $line['name'], '3' => $line['name'] ); $product->description = array( '1' => $line['description'], '2' => $line['description'], '3' => $line['description'] ); $product->description_short = array( '1' => $line['description_short'], '2' => $line['description_short'], '3' => $line['description_short'] ); $product->link_rewrite = array( '1' => Tools::link_rewrite($line['name']), '2' => Tools::link_rewrite($line['name']), '3' => Tools::link_rewrite($line['name']) ); $product->available_now = array( '1' => "Есть в наличии", '2' => "Есть в наличии", '3' => "Есть в наличии" ); $product->id_category_default = $line['category']; $product->quantity = (int)$line['count']; $product->advanced_stock_management = 1; //использовать Advanced Stock management $product->depends_on_stock = 1; //1 - доступное количество на основе ASM. 0 - указывается вручную $product->out_of_stock = 1; //2 - как в Preferences product. 1 - allow (Как в Preferences - не дает заказать товар на сайте) $product->price = $line['price']; $product->weight = $line['weight'] / 1000; $product->id_tax_rules_group = $line['id_tax']; $product->save(); $product->updateCategories(array($line['category'])); $product->deleteFeatures(); if ($line['author']) { $id_feature_value = FeatureValue::addFeatureValueImport(9, $line['author'], null, Configuration::get('PS_LANG_DEFAULT')); Product::addFeatureProductImport($product->id, 9, $id_feature_value); } if ($line['year']) { $id_feature_value = FeatureValue::addFeatureValueImport(10, $line['year'], null, Configuration::get('PS_LANG_DEFAULT')); Product::addFeatureProductImport($product->id, 10, $id_feature_value); } if ($line['paperback']) { Product::addFeatureProductImport($product->id, 11, 1); //1 - id значения "переплёт" у харакатеристики "Переплёт" } if ($line['pages']) { $id_feature_value = FeatureValue::addFeatureValueImport(12, $line['pages'], null, Configuration::get('PS_LANG_DEFAULT'), true); Product::addFeatureProductImport($product->id, 12, $id_feature_value); } /* if ($line['weight']) { $id_feature_value = FeatureValue::addFeatureValueImport(4, $line['weight'], null, Configuration::get('PS_LANG_DEFAULT'), true); Product::addFeatureProductImport($product->id, 4, $id_feature_value); } */ if ($line['isbn']) { $id_feature_value = FeatureValue::addFeatureValueImport(13, $line['isbn'], null, Configuration::get('PS_LANG_DEFAULT'), true); Product::addFeatureProductImport($product->id, 13, $id_feature_value); } if ($line['publishing']) { $id_feature_value = FeatureValue::addFeatureValueImport(14, $line['publishing'], null, Configuration::get('PS_LANG_DEFAULT'), true); Product::addFeatureProductImport($product->id, 14, $id_feature_value); } $location = WarehouseProductLocation::getIdByProductAndWarehouse($product->id, 0, $line['warehouse']); $location = new WarehouseProductLocation($location); $location->id_product = $product->id; $location->id_product_attribute = 0; $location->id_warehouse = $line['warehouse']; $location->save(); $stock = DB::getInstance()->getValue("SELECT `id_stock` FROM `" . _DB_PREFIX_ . "stock` WHERE `id_product` = {$product->id} AND `id_warehouse` = {$line['warehouse']}"); $stock = new Stock($stock); $stock->id_product = $product->id; $stock->id_product_attribute = 0; $stock->id_warehouse = $line['warehouse']; $stock->physical_quantity = $line['count']; $stock->usable_quantity = $line['count']; $stock->price_te = 0; $stock->save(); $available = DB::getInstance()->getValue("SELECT `id_stock_available` FROM `". _DB_PREFIX_ . "stock_available` WHERE `id_product` = {$product->id} AND `id_shop` = " . Context::getContext()->shop->id); $available = new StockAvailable($available); $available->id_product = $product->id; $available->id_product_attribute = 0; //$available->id_shop = Context::getContext()->shop->id; $available->quantity = StockManagerFactory::getManager()->getProductPhysicalQuantities($product->id, 0); $available->save(); StockAvailable::setProductDependsOnStock($product->id, true, null); StockAvailable::setProductOutOfStock($product->id, 1, null); //allow while(strlen($line['reference']) < 9) { $line['reference'] = '0' . $line['reference']; } if (file_exists(_PS_ROOT_DIR_ . '/upload/import/' . $line['reference'] . '.jpg')) { $product->deleteImages(); $image = new Image(); $image->id_product = $product->id; $image->cover = 1; $image->position = 0; $image->save(); $name = $image->getPathForCreation(); copy(_PS_ROOT_DIR_ . '/upload/import/' . $line['reference'] . '.jpg', $name.'.'.$image->image_format); $types = ImageType::getImagesTypes('products'); foreach ($types as $type) { ImageManager::resize(_PS_ROOT_DIR_ . '/upload/import/' . $line['reference'] . '.jpg', $name . '-' . $type['name'] . '.' . $image->image_format, $type['width'], $type['height'], $image->image_format); } } /* Db::getInstance()->update('stock_available', array( 'depends_on_stock' => (int)1, //1 - доступное количество на основе ASM. 0 - указывается вручную 'out_of_stock' => (int)1, //1-allow ), 'id_product='.$product->id.''); $affrows = Db::getInstance()->Affected_Rows(); var_dump($affrows); */ //var_dump($product->reference); //echo "<br/><br/><br/><br/>"; }
public function postBaja() { //valida el tipo de corte, si es pieza entera o corte especial switch (Input::get('tipo_corte')) { case '1': //pieza entera //checa si el tipo de corte es con medida estandar o medida especial switch (Input::get('proporcion_corte')) { //corte estandar case '1': //verifica si los input traen valores si no, se brinca a las validaciones segun el tipo de baja if (Input::get('pieza_marmoleria_id') and Input::get('material_disponible')) { //saca el area de venta con la pieza añadida al folio $area_venta_r = PiezaMarmoleria::find(Input::get('pieza_marmoleria_id')); $area_venta = $area_venta_r->area_requerida; //costo del material usado $inventario = VistaInventarioRecubrimiento::find(Input::get('material_disponible')); $costo_material = $inventario->precio_inicial * $area_venta / $inventario->area_total; $pieza_marmoleria_id = Input::get('pieza_marmoleria_id'); $medida_estandar = 1; } break; case '2': //verifica si los input traen valores si no, se brinca a las validaciones segun el tipo de baja if (Input::get('pieza_marmoleria_id_p') and Input::get('material_disponible')) { //saca el area de venta con la pieza añadida al folio $area_venta_r = PiezaMarmoleria::find(Input::get('pieza_marmoleria_id_p')); $area_venta = Input::get('area_uso_p'); //costo del material usado $inventario = VistaInventarioRecubrimiento::find(Input::get('material_disponible')); $costo_material = $inventario->precio_inicial * $area_venta / $inventario->area_total; $pieza_marmoleria_id = Input::get('pieza_marmoleria_id_p'); $medida_estandar = 0; } break; default: # code... break; } break; case '2': //corte especial //verifica si los imput traen valores si no, se brinca a las validaciones segun el tipo de baja if (Input::get('material_disponible')) { //obtiene el id del corte especial $pieza_marmoleria = PiezaMarmoleria::where('nombre', '=', 'Corte especial')->firstorfail(); //saca el area de venta con la pieza añadida al folio $area_venta = number_format(Input::get('largo') * Input::get('alto'), 2, '.', ''); //costo del material usado $inventario = VistaInventarioRecubrimiento::find(Input::get('material_disponible')); $costo_material = $inventario->precio_inicial * $area_venta / $inventario->area_total; $pieza_marmoleria_id = $pieza_marmoleria->id; $medida_estandar = 0; # code... //validar formulario para corte especial $rules = array('largo' => 'required|numeric|digits_between:.06,10', 'alto' => 'required|numeric|digits_between:.06,10', 'justificacion_de_corte' => 'required'); $messages = array('required' => 'Capture :attribute', 'numeric' => 'solo números', 'integer' => 'solo se aceptan valores enteros'); $validator = Validator::make(Input::all(), $rules, $messages); if ($validator->fails()) { return Redirect::back()->withInput()->withErrors($validator); } //fin validar formulario } break; default: # code... break; } //checa si hay material suficiente if ($area_venta > $inventario->area_stock) { return Redirect::back()->with('material_error', 'error'); } //determina el tipo de baja switch (Input::get('tipo_baja')) { case '1': //valida que no se quiera añadir a una factura capturada ayer o el folio sea igual al de una venta de stock $folio_venta = Input::get('folio_venta'); $venta_r = VentaMaterial::where('folio', '=', $folio_venta)->first(); if ($venta_r) { if (date_format($venta_r->created_at, 'Y-m-d') < date('Y-m-d') or substr($folio_venta, 0, 2) == "S-") { $factura_error = Session::pull('venta_error', 'error'); return Redirect::back()->with('venta_error', 'error'); } /*return $factura_r->factura_abierta;*/ } //validar formulario //validar formulario $rules = array('folio_venta' => 'required', 'fecha' => 'required', 'precio_venta' => 'required|numeric', 'material_disponible' => 'required'); $messages = array('required' => 'Capture :attribute', 'numeric' => 'solo números', 'integer' => 'solo se aceptan valores enteros'); $validator = Validator::make(Input::all(), $rules, $messages); if ($validator->fails()) { return Redirect::back()->withInput()->withErrors($validator)->with('radio_selected', '1')->with('add', 'true'); } //fin validar formulario //genera baja $lamina_baja = new MaterialBaja(); $lamina_baja->fecha = Input::get('fecha'); $lamina_baja->pieza_marmoleria_id = $pieza_marmoleria_id; $lamina_baja->area_venta = $area_venta; $lamina_baja->inventario_recubrimientos_id = Input::get('material_disponible'); $lamina_baja->costo_material_usado = $costo_material; if (Input::get('tipo_corte') == 2) { $lamina_baja->observaciones = Input::get('largo') . ' de largo por ' . Input::get('alto') . ' m. de alto'; $lamina_baja->pieza_completa = 0; $medida_estandar = 0; } $lamina_baja->medida_estandar = $medida_estandar; $lamina_baja->save(); //determina si la venta existe, $count_venta_material = VentaMaterial::where('folio', '=', Input::get('folio_venta'))->count(); // si existe la venta actualiza el total sumando el precio de la nueva lamina_baja if ($count_venta_material > 0) { $venta_material = VentaMaterial::where('folio', '=', Input::get('folio_venta'))->firstorfail(); $venta_material->total_venta = $venta_material->total_venta + Input::get('precio_venta'); $venta_material->save(); } else { $venta_material = new VentaMaterial(); $venta_material->folio = Input::get('folio_venta'); $venta_material->total_venta = Input::get('precio_venta'); $venta_material->save(); } //crea el registro del detalle de la baja $venta_material_baja = new VentaMaterialBaja(); $venta_material_baja->venta_material_id = $venta_material->id; $venta_material_baja->material_baja_id = $lamina_baja->id; $venta_material_baja->precio_pieza = Input::get('precio_venta'); $venta_material_baja->save(); //actualiza inventario en la linea #84 ya lo tengo $inventario->area_stock = $inventario->area_stock - $area_venta; $inventario->updated_at = Input::get('hoy'); $inventario->precio_stock = $inventario->precio_stock - $costo_material; $inventario->area_usada = $inventario->area_usada + $area_venta; //desactiva el inventario de la lamina al llegar al menos de .06, no es suficiente material para crear un liston if ($inventario->area_stock < 0.06) { $inventario->activo = 0; # code... } $inventario->save(); break; case '2': # Reposicion //validar formulario //validar formulario $rules = array('fecha' => 'required', 'motivo_de_reposicion' => 'required', 'material_disponible' => 'required'); $messages = array('required' => 'Capture :attribute', 'numeric' => 'solo números', 'integer' => 'solo se aceptan valores enteros'); $validator = Validator::make(Input::all(), $rules, $messages); if ($validator->fails()) { return Redirect::back()->withInput()->withErrors($validator); } //fin validar formulario //genera baja $lamina_baja = new MaterialBaja(); $lamina_baja->fecha = Input::get('fecha'); $lamina_baja->pieza_marmoleria_id = $pieza_marmoleria_id; $lamina_baja->area_venta = $area_venta; $lamina_baja->inventario_recubrimientos_id = Input::get('material_disponible'); $lamina_baja->costo_material_usado = $costo_material; if (Input::get('tipo_corte') == 2) { $lamina_baja->observaciones = Input::get('largo') . ' de largo por ' . Input::get('alto') . ' m. de alto'; $lamina_baja->pieza_completa = 0; $medida_estandar = 0; } $lamina_baja->medida_estandar = $medida_estandar; $lamina_baja->save(); //Genera detalles de reposicion $reposicion = new Reposicion(); $reposicion->motivos = Input::get('motivo_de_reposicion'); $reposicion->captura_usuario_id = Auth::user()->id; $reposicion->material_baja_id = $lamina_baja->id; $reposicion->precio_reposicion = Input::get('precio_venta'); $reposicion->save(); $lamina_baja_update = MaterialBaja::find($lamina_baja->id); $lamina_baja_update->venta = 0; $lamina_baja_update->reposicion = 1; $lamina_baja_update->save(); //actualiza inventario en la linea #84 ya lo tengo $inventario->area_stock = $inventario->area_stock - $area_venta; $inventario->precio_stock = $inventario->precio_stock - $costo_material; $inventario->area_usada = $inventario->area_usada + $area_venta; $inventario->updated_at = Input::get('hoy'); //desactiva el inventario de la lamina al llegar al menos de .06, no es suficiente material para crear un liston if ($inventario->area_stock < 0.06) { $inventario->activo = 0; # code... } $inventario->save(); break; case '3': # stock //validar formulario $rules = array('fecha' => 'required', 'material_disponible' => 'required'); $messages = array('required' => 'Capture :attribute'); $validator = Validator::make(Input::all(), $rules, $messages); if ($validator->fails()) { return Redirect::back()->withInput()->withErrors($validator); } //fin validar formulario ///////////////// for ($i = 0; $i < Input::get('cantidad'); $i++) { //genera baja $lamina_baja = new MaterialBaja(); $lamina_baja->fecha = Input::get('fecha'); $lamina_baja->pieza_marmoleria_id = $pieza_marmoleria_id; $lamina_baja->area_venta = $area_venta; $lamina_baja->inventario_recubrimientos_id = Input::get('material_disponible'); $lamina_baja->costo_material_usado = $costo_material; if (Input::get('tipo_corte') == 2) { $lamina_baja->observaciones = Input::get('largo') . 'm. de largo por ' . Input::get('alto') . ' m. de alto ' . Input::get('justificacion_de_corte'); $lamina_baja->pieza_completa = 0; $lamina_baja->medida_estandar = 0; } $lamina_baja->medida_estandar = $medida_estandar; $lamina_baja->save(); $lamina_baja_update = MaterialBaja::find($lamina_baja->id); $lamina_baja_update->venta = 0; $lamina_baja_update->stock = 1; $lamina_baja_update->save(); //Crea nuevo registro de stock $stock = new Stock(); $stock->precio_venta = Input::get('precio_venta'); $stock->material_baja_id = $lamina_baja->id; $stock->save(); //actualiza inventario en la linea #84 ya lo tengo $inventario->area_stock = $inventario->area_stock - $area_venta; $inventario->precio_stock = $inventario->precio_stock - $costo_material; $inventario->area_usada = $inventario->area_usada + $area_venta; $inventario->updated_at = Input::get('hoy'); $medida_estandar = 0; //desactiva el inventario de la lamina al llegar al menos de .06, no es suficiente material para crear un liston if ($inventario->area_stock < 0.06) { $inventario->activo = 0; # code... } $inventario->save(); } break; default: # code...r; break; } // fin switch return Redirect::back(); }
public function buy() { $this->load->model(array('portfolio', 'stock')); $stock_symbol = $this->input->post('stock_symbol'); $stock_info = $this->stock->single_quote($stock_symbol); $shares = $this->input->post('shares'); $stock = new Stock(); $stock->portfolio_id = $this->input->post('portfolio_id'); $stock->user_id = Portfolio::find_by_id($this->input->post('portfolio_id'))->user_id; $stock->symbol = $this->input->post('stock_symbol'); //need to add market open date verification $stock->purchase_time = date("Y-m-d H:i:s"); $stock->purchase_price = $stock_info['price']; $stock->shares = $this->input->post('shares'); $stock->save(); $portfolio = Portfolio::find_by_id($this->input->post('portfolio_id')); //$portfolio->current_cap = $portfolio->current_cap - ($stock->purchase_price * $stock->shares); if ($portfolio->commision_bool == 1) { $portfolio->current_cap = $portfolio->current_cap - $stock->purchase_price * $stock->shares; $portfolio->current_cap = $portfolio->current_cap - $portfolio->commision; } else { $portfolio->current_cap = $portfolio->current_cap - $stock->purchase_price * $stock->shares; } $portfolio->last_trade = $stock->id; $portfolio->save(); redirect('portfolios/view/' . $stock->portfolio_id); }
public function post_stocksave() { $sparepart = Sparepart::where('part_number', '=', Input::get('part_number'))->first(); $msg = 'Part Number tidak ada di database pusat'; if ($sparepart) { if (Input::get('id') == '') { $stock = new Stock(); $stock->pool_id = Auth::user()->pool_id; $stock->sparepart_id = $sparepart->id; $stock->min_qty = Input::get('min_qty'); $stock->sale_price = Input::get('sale_price'); $stock->discount = 0; $stock->sale_on = 0; $stock->qty = Input::get('qty'); $stock->user_id = Auth::user()->id; $stock->note = Input::get('note'); $stock->save(); $msg = 'Stock berhasil di tambahkan di gudang pool'; } else { $stock = Stock::find(Input::get('id')); $stock->pool_id = Auth::user()->pool_id; $stock->sparepart_id = $sparepart->id; $stock->min_qty = Input::get('min_qty'); $stock->sale_price = Input::get('sale_price'); $stock->discount = 0; $stock->sale_on = 0; //$stock->qty = $stock->qty + Input::get('new_qty'); $stock->user_id = Auth::user()->id; $stock->note = Input::get('note'); $stock->save(); $msg = 'Stock berhasil di update'; Trackinginventory::create(array('pool_id' => Auth::user()->pool_id, 'sparepart_id' => $sparepart->id, 'qty' => Input::get('new_qty'), 'user_id' => Auth::user()->id, 'note' => 'Part Ajustment oleh ' . Auth::user()->fullname)); } } return Redirect::to('warehouses/stock')->with('status', $msg); }
header('Content-Type:application/json'); function error($msg) { http_response_code(500); die(json_encode(['error' => $msg])); } try { switch ($request) { case 'stock': $stock = new Stock(); $stock->company = Request::any('company'); $stock->price = Request::any('price'); if (!$stock->company || !$stock->price) { error('Invalid Input'); } $stock->save(); $subscribers = Subscription::subscribers($stock); foreach ($subscribers as $sub) { $msg = "Stock Update\n{$stock->company}: {$stock->price}"; $sub->send($msg); } echo json_encode($stock); break; case 'stocks': $stocks = Stock::findAll(); echo json_encode($stocks); break; case 'delete': $company = Request::any('company'); $stock = Stock::find($company); $stock->delete();
function index_put() { $models = json_decode($this->put('models')); $data["results"] = array(); $data["count"] = 0; foreach ($models as $value) { $obj = new Stock(null, $this->entity); $obj->get_by_id($value->id); $obj->currency_id = $value->currency_id; $obj->bill_id = $value->bill_id; $obj->contact_id = $value->contact_id; $obj->product_id = $value->product_id; $obj->unit_id = $value->unit_id; $obj->quantity = $value->quantity; $obj->price = $value->price; $obj->issued_date = $value->issued_date; $obj->deleted = $value->deleted; if ($obj->save()) { //Results $data["results"][] = array("id" => $obj->id, "currency_id" => $obj->currency_id, "bill_id" => $obj->bill_id, "contact_id" => $obj->contact_id, "product_id" => $obj->product_id, "unit_id" => $obj->unit_id, "quantity" => $obj->quantity, "price" => $obj->price, "issued_date" => $obj->issued_date, "deleted" => $obj->deleted, "currency" => $obj->currency->get_raw()->result(), "contact" => $obj->contact->get_raw()->result(), "product" => $obj->product->get_raw()->result(), "unit" => $obj->unit->get()->name); } } $data["count"] = count($data["results"]); $this->response($data, 200); }
private function upsert($line) { $product = DB::getInstance()->getValue("SELECT `id_product` FROM `" . _DB_PREFIX_ . "product` WHERE `reference` LIKE '{$line['reference']}'"); $product = new Product($product); $product->reference = $line['reference']; $product->name = array( '1' => $line['name'], '2' => $line['name'], '3' => $line['name'] ); $product->description = array( '1' => $line['description'], '2' => $line['description'], '3' => $line['description'] ); $product->description_short = array( '1' => $line['description_short'], '2' => $line['description_short'], '3' => $line['description_short'] ); $product->link_rewrite = array( '1' => Tools::link_rewrite($line['name']), '2' => Tools::link_rewrite($line['name']), '3' => Tools::link_rewrite($line['name']) ); $product->available_now = array( '1' => "Есть в наличии", '2' => "Есть в наличии", '3' => "Есть в наличии" ); $product->id_category_default = $line['category']; $product->quantity = $line['count']; $product->price = $line['price']; $product->weight = $line['weight'] / 1000; $product->id_tax_rules_group = $line['id_tax']; $product->save(); $product->updateCategories(array($line['category'])); $product->deleteFeatures(); if ($line['author']) { $id_feature_value = FeatureValue::addFeatureValueImport(9, $line['author'], null, Configuration::get('PS_LANG_DEFAULT')); Product::addFeatureProductImport($product->id, 9, $id_feature_value); } if ($line['year']) { $id_feature_value = FeatureValue::addFeatureValueImport(10, $line['year'], null, Configuration::get('PS_LANG_DEFAULT')); Product::addFeatureProductImport($product->id, 10, $id_feature_value); } if ($line['paperback']) { Product::addFeatureProductImport($product->id, 11, 70); } if ($line['pages']) { $id_feature_value = FeatureValue::addFeatureValueImport(12, $line['pages'], null, Configuration::get('PS_LANG_DEFAULT'), true); Product::addFeatureProductImport($product->id, 12, $id_feature_value); } /* if ($line['weight']) { $id_feature_value = FeatureValue::addFeatureValueImport(4, $line['weight'], null, Configuration::get('PS_LANG_DEFAULT'), true); Product::addFeatureProductImport($product->id, 4, $id_feature_value); } */ if ($line['isbn']) { $id_feature_value = FeatureValue::addFeatureValueImport(13, $line['isbn'], null, Configuration::get('PS_LANG_DEFAULT'), true); Product::addFeatureProductImport($product->id, 13, $id_feature_value); } if ($line['publishing']) { $id_feature_value = FeatureValue::addFeatureValueImport(14, $line['publishing'], null, Configuration::get('PS_LANG_DEFAULT'), true); Product::addFeatureProductImport($product->id, 14, $id_feature_value); } $stock = DB::getInstance()->getValue("SELECT `id_stock` FROM `" . _DB_PREFIX_ . "stock` WHERE `id_product` = {$product->id} AND `id_warehouse` = {$line['warehouse']}"); $stock = new Stock($stock); $stock->id_product = $product->id; $stock->id_product_attribute = 0; $stock->id_warehouse = $line['warehouse']; $stock->physical_quantity = $line['count']; $stock->usable_quantity = $line['count']; $stock->price_te = 0; $stock->save(); $available = DB::getInstance()->getValue("SELECT `id_stock_available` FROM `". _DB_PREFIX_ . "stock_available` WHERE `id_product` = {$product->id} AND `id_shop` = " . Context::getContext()->shop->id); $available = new StockAvailable($available); $available->id_product = $product->id; $available->id_product_attribute = 0; $available->id_shop = Context::getContext()->shop->id; $available->quantity = $line['count']; $available->save(); $location = WarehouseProductLocation::getIdByProductAndWarehouse($product->id, 0, $line['warehouse']); $location = new WarehouseProductLocation($location); $location->id_product = $product->id; $location->id_product_attribute = 0; $location->id_warehouse = $line['warehouse']; $location->save(); while(strlen($line['reference']) < 9) { $line['reference'] = '0' . $line['reference']; } if (file_exists(_PS_ROOT_DIR_ . '/upload/import/' . $line['reference'] . '.jpg')) { $product->deleteImages(); $image = new Image(); $image->id_product = $product->id; $image->cover = 1; $image->position = 0; $image->save(); $name = $image->getPathForCreation(); copy(_PS_ROOT_DIR_ . '/upload/import/' . $line['reference'] . '.jpg', $name.'.'.$image->image_format); $types = ImageType::getImagesTypes('products'); foreach ($types as $type) { ImageManager::resize(_PS_ROOT_DIR_ . '/upload/import/' . $line['reference'] . '.jpg', $name . '-' . $type['name'] . '.' . $image->image_format, $type['width'], $type['height'], $image->image_format); } } }