TransactionModel.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. namespace App\Models;
  3. use CodeIgniter\Model;
  4. // Modelo que representa la tabla de movimientos de los productos.
  5. class TransactionModel extends Model
  6. {
  7. protected $table = 'movimientos';
  8. // protected $primaryKey = 'id';
  9. protected $primaryKey = 'idMovimiento';
  10. protected $useAutoIncrement = true;
  11. protected $returnType = 'array';
  12. protected $useSoftDeletes = false;
  13. protected $protectFields = true;
  14. protected $allowedFields = ['idProducto', 'idTipoMovimiento', 'idUsuario', 'cantidad'];
  15. protected bool $allowEmptyInserts = false;
  16. protected bool $updateOnlyChanged = true;
  17. protected array $casts = [];
  18. protected array $castHandlers = [];
  19. // Dates
  20. // protected $useTimestamps = false;
  21. protected $useTimestamps = true;
  22. protected $dateFormat = 'datetime';
  23. // protected $createdField = 'created_at';
  24. protected $createdField = 'fecha_registro';
  25. // protected $updatedField = 'updated_at';
  26. protected $updatedField = 'fecha_modificacion';
  27. protected $deletedField = 'deleted_at';
  28. // Validation
  29. protected $validationRules = [];
  30. protected $validationMessages = [];
  31. protected $skipValidation = false;
  32. protected $cleanValidationRules = true;
  33. // Callbacks
  34. protected $allowCallbacks = true;
  35. protected $beforeInsert = [];
  36. protected $afterInsert = [];
  37. protected $beforeUpdate = [];
  38. protected $afterUpdate = [];
  39. protected $beforeFind = [];
  40. protected $afterFind = [];
  41. protected $beforeDelete = [];
  42. protected $afterDelete = [];
  43. // Relaciona la tabla de productos.
  44. public function product()
  45. {
  46. return $this->join('productos', 'movimientos.idProducto = productos.idProducto', 'inner');
  47. }
  48. // Relaciona la tabla de tipos de movimientos de los productos.
  49. public function type()
  50. {
  51. return $this->join('tipos_movimientos', 'movimientos.idTipoMovimiento = tipos_movimientos.idTipoMovimiento', 'inner');
  52. }
  53. // Relaciona la tabla de usuarios.
  54. public function user()
  55. {
  56. return $this->join('usuarios', 'movimientos.idUsuario = usuarios.idUsuario', 'inner');
  57. }
  58. }