| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- <?php
- /*
- Desarrollador: Ing. Jean Jairo Benitez Meza
- Ultima Modificación: 11/04/2023
- Módulo: Gestión de Inventario y/o Stock
- */
- namespace App\Http\Controllers;
- use App\Http\Controllers\Controller;
- use App\Http\Controllers\ResourcesController;
- use App\Http\Controllers\ResponseController;
- use App\Http\Controllers\EncryptionController;
- use Illuminate\Http\Request;
- use Illuminate\Support\Carbon;
- use Illuminate\Support\Facades\DB;
- use Illuminate\Support\Facades\Validator;
- class StockController extends Controller
- {
- private $responseController;
- private $encController;
- private $resourcesController;
- public function __construct(){
- $this->responseController = new ResponseController();
- $this->encController = new EncryptionController();
- $this->resourcesController = new ResourcesController();
- }
- // Crear Artículo en Stock
- public function createArtitle(Request $request) {
- $validator = Validator::make($request->all(), [
- 'CODIGO_ARTICULO' => 'required|string',
- 'ARTICULO' => 'required|string',
- 'MODELO' => 'required|string',
- 'CODIGO_MODELO' => 'required|string',
- 'CODIGO_BARRA' => 'required|integer',
- 'CANTIDAD' => 'required|integer',
- 'STOCK_MINIMO' => 'required|integer',
- 'STOCK_MAXIMO' => 'required|integer',
- 'REPARALE' => 'required|string',
- 'CONSUMIBLE' => 'required|string',
- 'FECHA_VENCIMIENTO' => 'required|string',
- 'ID_SUBCATEGORIA' => 'required|string',
- 'ID_UNIDAD' => 'required|string',
- 'PELIGROSO' => 'required|boolean',
- 'IMAGEN' => 'required|string',
- 'TASA_ROTACION' => 'required|double',
- 'TIPO_ADQUISICION' => 'required|string',
- 'PROVEEDOR' => 'required|string',
- 'NUMERO_LINEA' => 'required|integer',
- 'USUARIO' => 'required|string',
- ]);
- if ($validator->fails()) {
- return $this->responseController->makeResponse(
- true,
- "ERR_STOCK_REG000: Se encontraron uno o más errores.",
- $this->responseController->makeErrors($validator->errors()->messages()),
- 401
- );
- }
- $request = $request->all();
- // Se consulta si el código existe en la base de datos
- try {
- $existCode = DB::table('S002V01TSTOC')
- ->where('STOC_CODI', '=', $request['CODIGO_ARTICULO'])
- ->where('STOC_NULI', '=', $request['NUMERO_LINEA'])
- ->exists();
- } catch(\Exception $ex) {
- return $this->responseController->makeResponse(
- true,
- "ERR_STOCK_REG001: Ocurrió un error al consultar el código del artículo.",
- $request['CODIGO_ARTITULO'],
- 500
- );
- }
- // Se valida la respuesta de la consulta
- if ($existCode) {
- return $this->responseController->makeResponse(true,"ERR_STOCK_REG002: El código del artículo ya se encuentra registrado.");
- }
- $numberLine = $request['NUMERO_LINEA'];
- // Se crea y guarda la imagen
- $responseImage = $this->resourcesController->makeImage( $request['IMAGEN'], $request['MODELO'], 'jpeg', 'FO', $numberLine, 'GEIN' );
- // Se verifica que todo se encuentre en orden
- if ($responseImage['error']) {
- return $this->responseController->makeResponse( true, $responseImage['msg'], [], 500);
- }
- // Se obtiene el nombre de la imagen creada
- $nameImage = $responseImage['response'];
- // Se obtiene la fecha del día de hoy
- $currentDate = Carbon::now()->timezone('America/Mazatlan')->toDateTimeString();
- // Se obtiene el número de usuario
- $numberUser = $this->encController->decrypt($request['USUARIO']);
- // Se inicializa el objecto a insertar
- $objectInsert = [
- 'STOC_CODI' => $request['CODIGO_ARTICULO'],
- 'STOC_ARTI' => $request['ARTICULO'],
- 'STOC_MODE' => $request['MODELO'],
- 'STOC_COAR' => $request['CODIGO_MODELO'],
- 'STOC_COBA' => $request['CODIGO_BARRA'],
- 'STOC_CANT' => $request['CANTIDAD'],
- 'STOC_STMI' => $request['STOCK_MINIMO'],
- 'STOC_STMA' => $request['STOCK_MAXIMO'],
- 'STOC_REPA' => $request['REPARALE'],
- 'STOC_CONS' => $request['CONSUMIBLE'],
- 'STOC_FEVE' => $request['FECHA_VENCIMIENTO'],
- 'STOC_IDSU' => $request['ID_SUBCATEGORIA'],
- 'STOC_IDUN' => $request['ID_UNIDAD'],
- 'STOC_PELI' => $request['PELIGROSO'],
- 'STOC_IMAG' => $nameImage,
- 'STOC_TARO' => $request['TASA_ROTACION'],
- 'STOC_TIAD' => $request['TIPO_ADQUISICION'],
- 'STOC_PROV' => $request['PROVEEDOR'],
- 'STOC_NULI' => $numberLine,
- 'STOC_USRE' => $numberUser,
- 'STOC_FERE' => $currentDate,
- 'STOC_FEAR' => DB::raw('CURRENT_TIMESTAMP')
- ];
- // Se realiza la inserción a la base de datos
- try {
- $responseInsert = DB::table('S002V01TSTOC')->insert($objectInsert);
- } catch (\Exception $ex){
- return $this->responseController->makeResponse(
- true,
- "ERR_STOCK_REG003: Ocurrió un error al momento de insertar los datos",
- [],
- 500
- );
- }
- // Se verifica que la inserción sea exitosa
- if ( $responseInsert ) {
- return $this->responseController->makeResponse(true,"ERR_STOCK_REG004: No se pudo insertar los datos",[],500);
- }
- return $this->responseController->makeResponse( false, 'ÉXITO: Registro Exitoso');
- }
- }
|