403Webshell
Server IP : 54.94.228.101  /  Your IP : 172.28.1.13
Web Server : Apache
System : Linux ip-172-28-29-189 6.5.0-1014-aws #14~22.04.1-Ubuntu SMP Thu Feb 15 15:27:06 UTC 2024 x86_64
User : www-data ( 33)
PHP Version : 7.2.34-43+ubuntu22.04.1+deb.sury.org+1
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/html/vinumday2_0/app/Modules/Produto/Models/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/vinumday2_0/app/Modules/Produto/Models/Produto.php
<?php

namespace App\Modules\Produto\Models;

use DB;
use App\MyModel;
use Spatie\Activitylog\Traits\LogsActivity;
use Spatie\Sluggable\HasSlug;
use Spatie\Sluggable\SlugOptions;
use App\CampoModulo;

use App\Services\ErpService;

class Produto extends MyModel
{
	use LogsActivity;
	use HasSlug;

	protected $table = 'produto';
	protected $guarded = [];
	//protected $fillable = ['nome', 'preco'];
	private $rules = array();
	private $messages = array();

	public function __construct(){
		parent::__construct();
		$this->setMessages($this->messages);
		$this->setRules($this->rules);
	}

	public function getLogNameToUse(string $eventName = ''): string
	{
		return 'log_produto';
	}

	/**
	* Get the options for generating the slug.
	*/
	public function getSlugOptions() : SlugOptions
	{
		return SlugOptions::create()
		->generateSlugsFrom(['nome', 'titulo'])
		->saveSlugsTo('slug');
	}

	public function getBySlug($slug){
		return DB::table($this->table)->where('slug',$slug)->firstOrFail();
	}

	public function criar($fields, $input){
		$insert = [];
		foreach ($fields as $field) {
			if (isset($input[$field])) {
				$insert[$field] = $input[$field];
			}
		}

		$produto = new Produto();
		$produto->fill($insert);
		$produto->save();

		return $produto->id;
	}

	public function editar($fields, $input, $id){

		$produto = Produto::find($id);
		$slug_antiga = $produto->slug;

		$insert = [];
		foreach ($fields as $field) {
			if (isset($input[$field])) {
				$insert[$field] = $input[$field];
			}
		}

		$produto = Produto::find($id);
		$produto->fill($insert);
		$produto->save();

		if($produto->slug != $slug_antiga){
			$produto->slug_antiga = $slug_antiga;
			$produto->save();
		}

		return $id;
	}

	public function deletar($id){

		try {

			DB::beginTransaction();

			$produto    = Produto::find($id);
			$produto->situacao = 'I';
			$produto->save();
			$produto->estoque()->delete();
			$produto->estoquelocal()->delete();
			$produto->produtoserp()->delete();
			$produto->delete();

			DB::commit();

		} catch (Exception $e) {
			DB::rollBack();
			return false;
		}

		return true;
	}


	public function getImagem($id){
		return DB::table($this->table.'_imagens')->find($id);
	}

	public function getImagens($id){
		return DB::table($this->table.'_imagens')->where('id_produto', $id)->get();
	}
	public function criar_imagem($input){
		return DB::table($this->table.'_imagens')->insert([
			[
				'id_produto'          => $input['id_produto'],
				'thumbnail_principal' => $input['thumbnail_principal'],
				'miniatura'           => (isset($input['miniatura']) ? $input['miniatura'] : ''),
			]
		]);
	}
	public function deletar_imagem($id){
		return DB::table($this->table.'_imagens')
		->where('id', $id)
		->delete();
	}

	public function getNextAutoIncrement(){
		$lastId = DB::select("SELECT AUTO_INCREMENT FROM information_schema.tables WHERE TABLE_NAME = '$this->table' ORDER BY table_name;")[0]->AUTO_INCREMENT;
		return $lastId;
	}

	public function caracteristicas(){
		return $this->hasOne('App\Modules\ProdutoCaracteristica\Models\ProdutoCaracteristica', 'id_produto');
	}

	public function unidadeNegocio(){
		return $this->belongsTo('App\Modules\UnidadeNegocio\Models\UnidadeNegocio', 'unidade_negocio_id');
	}

	public function tipoDeProduto(){
		return $this->belongsTo('App\Modules\TipoDeProduto\Models\TipoDeProduto', 'id_tipo_produto');
	}
	public function paisDeOrigem(){
		return $this->belongsTo('App\Modules\Pais\Models\Pais', 'id_pais_origem');
	}

	public function tipo(){
		return $this->belongsTo('App\Modules\TipoDeProduto\Models\TipoDeProduto', 'id_tipo_produto');
	}

	public function paisOrigem(){
		return $this->belongsTo('App\Modules\Pais\Models\Pais', 'id_pais_origem');
	}

	public function getListaImagens(){
		$listaImagens = DB::table('produto_imagens')->where('id_produto', $this->id)->get();
		return ($listaImagens ? $listaImagens : []);
	}

	public function fornecedor(){
		return $this->belongsTo('App\Modules\Fornecedor\Models\Fornecedor', 'id_fornecedor');
	}

	public function ofertas(){
		return $this->hasMany('App\Modules\OfertaHasProduto\Models\OfertaHasProduto', 'id_produto')->with('oferta.canalHasOferta');
	}

	public function compras(){
		return $this->hasMany('App\Modules\OrdemCompraItem\Models\OrdemCompraItem', 'produto_id');
	}

	public function precos(){
		return $this->hasMany('App\Modules\ProdutoListaPreco\Models\ProdutoListaPreco', 'produto_id');
	}

	public function estoque(){
		return $this->hasMany('App\Modules\Estoque\Models\Estoque', 'produto_id');
	}

	public function atributosVariacao(){
		return $this->hasMany('App\Modules\ProdutoHasVariacaoAtributo\Models\ProdutoHasVariacaoAtributo', 'produto_id');
	}

	public function estoquelocal(){
		return $this->hasMany('App\Modules\EstoqueLocal\Models\EstoqueLocal', 'produto_id')->orderBy('data_movimentacao', 'desc');
	}

	public function estoquelog(){
		return $this->hasMany('App\Modules\EstoqueLog\Models\EstoqueLog', 'produto_id')->orderBy('data_ultima_atualizacao', 'desc');
	}

	public function produtoserp(){
		return $this->hasMany('App\Modules\ProdutoErp\Models\ProdutoErp', 'produto_id');
	}

	
}

Youez - 2016 - github.com/yon3zu
LinuXploit