first commit
This commit is contained in:
40
Models/Currency.php
Normal file
40
Models/Currency.php
Normal file
@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace Koneko\VuexyStoreManager\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Currency extends Model
|
||||
{
|
||||
const STATUS_ENABLED = 10;
|
||||
const STATUS_DISABLED = 1;
|
||||
const STATUS_REMOVED = 0;
|
||||
|
||||
protected $fillable = [
|
||||
'c_currency',
|
||||
'symbol',
|
||||
'used_in_purchases',
|
||||
'used_in_sales',
|
||||
'used_in_ecommerce',
|
||||
'main_currency',
|
||||
'auto_update_exchange_rates',
|
||||
'update_interval',
|
||||
'status'
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'used_in_purchases' => 'boolean',
|
||||
'used_in_sales' => 'boolean',
|
||||
'used_in_ecommerce' => 'boolean',
|
||||
'main_currency' => 'boolean',
|
||||
'auto_update_exchange_rates' => 'boolean',
|
||||
'update_interval' => 'integer',
|
||||
'status' => 'integer',
|
||||
];
|
||||
|
||||
// Relación con el historial de tipos de cambio
|
||||
public function exchangeRates()
|
||||
{
|
||||
return $this->hasMany(CurrencyExchangeRate::class, 'c_currency', 'c_currency');
|
||||
}
|
||||
}
|
39
Models/CurrencyExchangeRate.php
Normal file
39
Models/CurrencyExchangeRate.php
Normal file
@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
namespace Koneko\VuexyStoreManager\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Koneko\VuexyAdmin\Models\User;
|
||||
|
||||
class CurrencyExchangeRate extends Model
|
||||
{
|
||||
protected $table = 'currency_exchange_rates';
|
||||
|
||||
protected $fillable = [
|
||||
'c_currency',
|
||||
'exchange_rate',
|
||||
'exchange_date',
|
||||
'source',
|
||||
'updated_by',
|
||||
'comments',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'exchange_rate' => 'decimal:6',
|
||||
'exchange_date' => 'date',
|
||||
'source' => 'string',
|
||||
'updated_by' => 'integer',
|
||||
];
|
||||
|
||||
// Relación con la moneda
|
||||
public function currency()
|
||||
{
|
||||
return $this->belongsTo(Currency::class, 'c_currency', 'c_currency');
|
||||
}
|
||||
|
||||
// Relación con el usuario que actualizó el tipo de cambio
|
||||
public function updatedByUser()
|
||||
{
|
||||
return $this->belongsTo(User::class, 'updated_by');
|
||||
}
|
||||
}
|
61
Models/EmailTransaction.php
Normal file
61
Models/EmailTransaction.php
Normal file
@ -0,0 +1,61 @@
|
||||
<?php
|
||||
|
||||
namespace Koneko\VuexyStoreManager\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\MorphTo;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
use Koneko\VuexyAdmin\Models\User;
|
||||
|
||||
class EmailTransaction extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
|
||||
protected $table = 'email_transactions';
|
||||
protected $primaryKey = 'id';
|
||||
public $incrementing = false;
|
||||
protected $keyType = 'mediumint';
|
||||
|
||||
protected $fillable = [
|
||||
'emailable_id',
|
||||
'emailable_type',
|
||||
'email_provider',
|
||||
'smtp_server',
|
||||
'smtp_port',
|
||||
'smtp_username',
|
||||
'subject',
|
||||
'body',
|
||||
'recipient',
|
||||
'cc',
|
||||
'bcc',
|
||||
'reply_to',
|
||||
'sender_name',
|
||||
'sender_email',
|
||||
'status',
|
||||
'error_message',
|
||||
'created_by',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'cc' => 'array',
|
||||
'bcc' => 'array',
|
||||
'status' => 'integer',
|
||||
];
|
||||
|
||||
/**
|
||||
* Relación polimórfica con modelos como pedidos, facturas, etc.
|
||||
*/
|
||||
public function emailable(): MorphTo
|
||||
{
|
||||
return $this->morphTo();
|
||||
}
|
||||
|
||||
/**
|
||||
* Relación con el usuario que creó el registro.
|
||||
*/
|
||||
public function createdBy(): BelongsTo
|
||||
{
|
||||
return $this->belongsTo(User::class, 'created_by');
|
||||
}
|
||||
}
|
160
Models/Store.php
Normal file
160
Models/Store.php
Normal file
@ -0,0 +1,160 @@
|
||||
<?php
|
||||
|
||||
namespace Koneko\VuexyStoreManager\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
use Koneko\VuexyAdmin\Models\User;
|
||||
use Koneko\SatCatalogs\Models\CodigoPostal;
|
||||
use Koneko\SatCatalogs\Models\Colonia;
|
||||
use Koneko\SatCatalogs\Models\Estado;
|
||||
use Koneko\SatCatalogs\Models\Municipio;
|
||||
use Koneko\SatCatalogs\Models\RegimenFiscal;
|
||||
|
||||
class Store extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
|
||||
// Valores GPS por defecto
|
||||
const LATITUDE_DEFAULT = 19.0436;
|
||||
const LONGITUDE_DEFAULT = -98.1980;
|
||||
|
||||
protected $fillable = [
|
||||
'code',
|
||||
'name',
|
||||
'description',
|
||||
'manager_id',
|
||||
'c_pais',
|
||||
'c_codigo_postal',
|
||||
'c_estado',
|
||||
'c_municipio',
|
||||
'c_localidad',
|
||||
'c_colonia',
|
||||
'direccion',
|
||||
'num_ext',
|
||||
'num_int',
|
||||
'lat',
|
||||
'lng',
|
||||
'email',
|
||||
'tel',
|
||||
'tel2',
|
||||
'rfc',
|
||||
'nombre_fiscal',
|
||||
'c_regimen_fiscal',
|
||||
'domicilio_fiscal',
|
||||
'show_on_website',
|
||||
'enable_ecommerce',
|
||||
'status',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'show_on_website' => 'boolean',
|
||||
'enable_ecommerce' => 'boolean',
|
||||
'status' => 'boolean',
|
||||
];
|
||||
|
||||
/**
|
||||
* Nombre de la etiqueta para generar Componentes
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $tagName = 'Store';
|
||||
|
||||
/**
|
||||
* Nombre de la columna que contiee el nombre del registro
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $columnNameLabel = 'name';
|
||||
|
||||
/**
|
||||
* Nombre singular del registro.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $singularName = 'sucursal';
|
||||
|
||||
/**
|
||||
* Nombre plural del registro.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $pluralName = 'sucursales';
|
||||
|
||||
/**
|
||||
* Relación con el catálogo de códigos postales SAT.
|
||||
*/
|
||||
public function codigoPostal(): BelongsTo
|
||||
{
|
||||
return $this->belongsTo(CodigoPostal::class, 'c_codigo_postal', 'c_codigo_postal');
|
||||
}
|
||||
|
||||
/**
|
||||
* Relación con el catálogo de estados SAT.
|
||||
*/
|
||||
public function estado(): BelongsTo
|
||||
{
|
||||
return $this->belongsTo(Estado::class, 'c_estado', 'c_estado');
|
||||
}
|
||||
|
||||
/**
|
||||
* Relación con el catálogo de municipios SAT.
|
||||
*/
|
||||
public function municipio(): BelongsTo
|
||||
{
|
||||
return $this->belongsTo(Municipio::class, 'c_municipio', 'c_municipio');
|
||||
}
|
||||
|
||||
/**
|
||||
* Relación con el catálogo de colonias SAT.
|
||||
*/
|
||||
public function colonia(): BelongsTo
|
||||
{
|
||||
return $this->belongsTo(Colonia::class, 'c_colonia', 'c_colonia');
|
||||
}
|
||||
|
||||
/**
|
||||
* Relación con el régimen fiscal SAT.
|
||||
*/
|
||||
public function regimenFiscal(): BelongsTo
|
||||
{
|
||||
return $this->belongsTo(RegimenFiscal::class, 'c_regimen_fiscal', 'c_regimen_fiscal');
|
||||
}
|
||||
|
||||
/**
|
||||
* Relación con el domicilio fiscal (Código Postal SAT).
|
||||
*/
|
||||
public function domicilioFiscal(): BelongsTo
|
||||
{
|
||||
return $this->belongsTo(CodigoPostal::class, 'domicilio_fiscal', 'c_codigo_postal');
|
||||
}
|
||||
|
||||
public function workCenters(): HasMany
|
||||
{
|
||||
return $this->hasMany(StoreWorkCenter::class);
|
||||
}
|
||||
|
||||
public function warehouses(): HasMany
|
||||
{
|
||||
return $this->hasMany(Warehouses::class);
|
||||
}
|
||||
|
||||
public function manager(): BelongsTo
|
||||
{
|
||||
return $this->belongsTo(User::class, 'manager_id');
|
||||
}
|
||||
|
||||
public function scopeActive($query)
|
||||
{
|
||||
return $query->where('status', true);
|
||||
}
|
||||
|
||||
public function getFullAddressAttribute()
|
||||
{
|
||||
return "{$this->direccion}, {$this->num_ext}, {$this->num_int}, {$this->c_colonia}, {$this->c_municipio}, {$this->c_estado}, {$this->c_pais}";
|
||||
}
|
||||
|
||||
|
||||
}
|
16
Models/StoreUser.php
Normal file
16
Models/StoreUser.php
Normal file
@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
namespace Koneko\VuexyStoreManager\Models;
|
||||
|
||||
use Koneko\VuexyAdmin\Models\User;
|
||||
use Koneko\VuexyStoreManager\Traits\HasUsersRelations;
|
||||
|
||||
class StoreUser extends User
|
||||
{
|
||||
use HasUsersRelations;
|
||||
|
||||
protected $fillable = [
|
||||
...parent::FILLABLE,
|
||||
'store_id',
|
||||
];
|
||||
}
|
73
Models/StoreWorkCenter.php
Normal file
73
Models/StoreWorkCenter.php
Normal file
@ -0,0 +1,73 @@
|
||||
<?php
|
||||
|
||||
namespace Koneko\VuexyStoreManager\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
use Koneko\VuexyAdmin\Models\User;
|
||||
|
||||
class StoreWorkCenter extends Model
|
||||
{
|
||||
protected $fillable = [
|
||||
'store_id',
|
||||
'code',
|
||||
'name',
|
||||
'description',
|
||||
'manager_id',
|
||||
'tel',
|
||||
'tel2',
|
||||
'lat',
|
||||
'lng',
|
||||
'status',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'lat' => 'decimal:6',
|
||||
'lng' => 'decimal:6',
|
||||
'status' => 'integer',
|
||||
];
|
||||
|
||||
/**
|
||||
* Nombre de la etiqueta para generar Componentes
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $tagName = 'WorkCenter';
|
||||
|
||||
/**
|
||||
* Nombre de la columna que contiee el nombre del registro
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $columnNameLabel = 'name';
|
||||
|
||||
/**
|
||||
* Nombre singular del registro.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $singularName = 'centro de trabajo';
|
||||
|
||||
/**
|
||||
* Nombre plural del registro.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $pluralName = 'centros de trabajo';
|
||||
|
||||
/**
|
||||
* Relación con la sucursal a la que pertenece el centro de trabajo.
|
||||
*/
|
||||
public function store(): BelongsTo
|
||||
{
|
||||
return $this->belongsTo(Store::class, 'store_id');
|
||||
}
|
||||
|
||||
/**
|
||||
* Relación con el usuario que gestiona el centro de trabajo.
|
||||
*/
|
||||
public function manager(): BelongsTo
|
||||
{
|
||||
return $this->belongsTo(User::class, 'manager_id');
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user