| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620 |
- <?php
- /*
- Desarrollador: Ing. Jean Jairo Benitez Meza
- Ultima Modificación: 11/04/2023
- Módulo: Gestión de Adquisiciones
- */
- namespace App\Http\Controllers;
- use App\Http\Controllers\Controller;
- use App\Http\Controllers\ResponseController;
- use App\Http\Controllers\EncryptionController;
- use App\Http\Controllers\ResourcesController;
- use App\Http\Controllers\FunctionsController;
- use App\Http\Controllers\DocumentManagementController;
- use Illuminate\Http\Request;
- use Illuminate\Support\Carbon;
- use Illuminate\Support\Facades\DB;
- use Illuminate\Support\Facades\Validator;
- use Illuminate\Database\Query\JoinClause;
- use Illuminate\Support\Facades\Storage;
- use \Mpdf\Mpdf as PDF;
- class OrderController extends Controller {
- private $responseController;
- private $encController;
- private $resourcesController;
- private $functionsController;
- private $documentManagementController;
- public function __construct(){
- $this->responseController = new ResponseController();
- $this->encController = new EncryptionController();
- $this->resourcesController = new ResourcesController();
- $this->functionsController = new FunctionsController();
- $this->arrUrlImage = new FunctionsController();
- $this->documentManagementController = new DocumentManagementController();
- }
- public function getOrders($user, $line) {
- try {
- $arrOrders = DB::table('S002V01TORCO')
- ->where('ORCO_NULI', '=', $line)
- ->where('DESP_NULI', '=', $line)
- ->where('PROV_NULI', '=', $line)
- ->where('LINE_NULI', '=', $line)
- ->join('S002V01TLINE', 'LINE_IDLI', '=', 'ORCO_IDLI')
- ->join('S002V01TPROV', 'PROV_NUPR', '=', 'LINE_NUPR')
- ->join('S002V01TDESP', 'DESP_IDDE', '=', 'ORCO_IDDE')
- ->get([
- 'ORCO_NUOR', // Número de Orden
- 'LINE_IDLI', // Identificador de línea de solicitud de compra
- 'PROV_NUPR', // Número de Proveedor
- 'PROV_NOCO', // Nombre Comercial del Proveedor
- 'DESP_IDDE', // Número de Despacho
- 'DESP_NODE', // Nombre del Despacho
- 'DESP_NOMB', // Nombre del Despacho
- 'ORCO_ESTA', // Estado
- 'ORCO_USRE', // Usuario Registra
- 'ORCO_FERE', // Fecha Registra
- 'ORCO_USMO', // Usuario Modifica
- 'ORCO_FEMO', // Fecha Modifica
- ]);
- } catch ( \Throwable $th ) {
- return $this->responseController->makeResponse(true, "ERR_ORDER_GET000: Ocurrió un error al momento de obtener las órdenes de compra.", $th->getMessage(), 500);
- }
- return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrOrders);
- }
- public function createOrder(Request $request){
- $validator = Validator::make($request->all(), [
- 'NUMERO_LINEA' => 'required|string',
- 'NUMERO_SOLICITUD' => 'required|string',
- 'DESPACHO' => 'required|integer',
- 'USUARIO' => 'required|string',
- ]);
- if ($validator->fails()) {
- return $this->responseController->makeResponse(
- true,
- "ERR_ORDER_REG000: Se encontraron uno o más errores.",
- $this->responseController->makeErrors($validator->errors()->messages()),
- 401
- );
- }
- DB::beginTransaction();
- $requestData = $request->all();
- try {
- $user = $this->encController->decrypt($requestData['USUARIO']);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "ERR_ORDER_REG001: Ocurrió un error al obtener el usuario.", [], 500);
- }
- $now = $this->functionsController->now();
- $currentDate = $now->toDateTimeString();
- try {
- $idOrder = DB::table('S002V01TORCO')->insertGetId([
- 'ORCO_NULI' => $requestData['NUMERO_LINEA'],
- 'ORCO_IDLI' => $requestData['NUMERO_SOLICITUD'],
- 'ORCO_IDDE' => $requestData['DESPACHO'],
- 'ORCO_USRE' => $user,
- 'ORCO_FERE' => $currentDate,
- 'ORCO_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "ERR_ORDER_REG002: Ocurrió un error al registrar la orden de compra.", $th->getMessage(), 500);
- }
- if (!$idOrder) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "ERR_ORDER_REG003: No se pudo registrar la orden de compra.", [], 401);
- }
-
- try {
- $validateUpdate = DB::table('S002V01TLINE')
- ->where('LINE_IDLI', '=', $requestData['NUMERO_SOLICITUD'])
- ->where('LINE_NULI', '=', $requestData['NUMERO_LINEA'])
- ->update([
- 'LINE_ESTA' => 'En OC',
- 'LINE_USMO' => $user,
- 'LINE_FEMO' => $currentDate,
- 'LINE_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "ERR_ORDER_REG004: Ocurrió un error al modificar la línea de solitud de compra.", $th->getMessage(), 500);
- }
- if (!$validateUpdate) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "ERR_ORDER_REG005: No se pudo modificar la línea de solicitud de compra.", [], 401);
- }
- try {
- $valdiateInsert = DB::table('S002V01THIOR')
- ->insert([
- 'HIOR_NULI' => $requestData['NUMERO_LINEA'],
- 'HIOR_NUOR' => $idOrder,
- 'HIOR_POEN' => 10,
- 'HIOR_USRE' => $user,
- 'HIOR_FERE' => $currentDate,
- 'HIOR_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "ERR_ORDER_REG006: Ocurrió un error al insertar el registro en el historial.", $th->getMessage(), 500);
- }
- if (!$valdiateInsert) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "ERR_ORDER_REG007: No se pudo insertar el registro en el HISTORIAL.", [], 401);
- }
- DB::commit();
- return $this->responseController->makeResponse(false, "ÉXITO: Generación de Órdenes Exitosas");
- }
- public function getOrderByNumber($order, $provider, $user, $line){
- try {
- $order = $this->encController->decrypt($order);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "ERR_ORDER_GET000: Ocurrió un error al obtener el usuario.", [], 500);
- }
- try {
- $provider = $this->encController->decrypt($provider);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "ERR_ORDER_GET001: Ocurrió un error al obtener el usuario.", [], 500);
- }
- try {
- $getOrders = (array) DB::table('S002V01TORCO')
- ->where('ORCO_NUOR', '=', $order)
- ->where('ORCO_NULI', '=', $line)
- ->where('DESP_NULI', '=', $line)
- ->where('LINE_NULI', '=', $line)
- ->where('PROV_NULI', '=', $line)
- ->where('LINE_ESTA', '!=', 'Cancelado')
- ->where('DESP_ESTA', '=', 'Activo')
- ->where('PROV_ESTA', '=', 'Activo')
- ->join('S002V01TLINE', 'ORCO_IDLI', '=', 'LINE_IDLI')
- ->join('S002V01TDESP', 'ORCO_IDDE', '=', 'DESP_IDDE')
- ->join('S002V01TPROV', 'LINE_NUPR', '=', 'PROV_NUPR')
- ->first([
- 'ORCO_NUOR',
- 'ORCO_ESTA',
- 'ORCO_USRE',
- 'ORCO_FERE',
- 'ORCO_USMO',
- 'ORCO_FEMO',
- 'ORCO_FEAR',
- 'LINE_IDLI',
- // 'LINE_NUPR',
- 'LINE_OTPR',
- 'LINE_OTCO',
- 'DESP_IDDE',
- 'DESP_NODE',
- 'DESP_NOMB',
- 'DESP_APPA',
- 'DESP_APMA',
- 'DESP_LADA',
- 'DESP_TELE',
- 'DESP_CORR',
- 'DESP_CALL',
- 'DESP_NUEX',
- 'DESP_NUIN',
- 'DESP_COPO',
- 'DESP_LOCA',
- 'DESP_COLO',
- 'DESP_MUNI',
- 'DESP_ENTI',
- 'DESP_PAIS',
- 'DESP_COME',
- 'PROV_NUPR',
- 'PROV_NOCO',
- 'PROV_NOMB',
- 'PROV_APPA',
- 'PROV_APMA',
- 'PROV_CORR',
- 'PROV_LAD1',
- 'PROV_TEL1',
- 'PROV_LAD2',
- 'PROV_TEL2',
- 'PROV_XRFC',
- 'PROV_XTAX',
- 'PROV_CRFI',
- 'PROV_TIPO',
- 'PROV_TICO',
- 'PROV_SIWE',
- 'PROV_MEPA',
- 'PROV_CALL',
- 'PROV_NUEX',
- 'PROV_NUIN',
- 'PROV_COPO',
- 'PROV_COLO',
- 'PROV_MUNI',
- 'PROV_LOCA',
- 'PROV_ENTI',
- 'PROV_PAIS',
- ]);
- } catch ( \Throwable $th ) {
- return $this->responseController->makeResponse( true, "ERR_ORDER_GET002: Ocurrió un error al momento de obtener las órdenes de compra.", $th->getMessage(), 500);
- }
- if ( empty($getOrders) || is_null($getOrders) ) {
- return $this->responseController->makeResponse( true, "ERR_ORDER_GET003: No se pudo obtener los datos de las órdenes de compra", [], 500);
- }
- try {
- $getArtitles = DB::table('S002V01TARSE')
- ->where('ARSE_IDLI', '=', $getOrders['LINE_IDLI'])
- ->where('ARSE_ESTA', '=', 'Activo')
- ->where('ARSE_NULI', '=', $line)
- ->where('ARTI_ESTA', '=', 'Activo')
- ->where('ARTI_NULI', '=', $line)
- ->where('FAMI_ESTA', '=', 'Activo')
- ->where('FAMI_NULI', '=', $line)
- ->where('SUBF_ESTA', '=', 'Activo')
- ->where('SUBF_NULI', '=', $line)
- ->where('DEAR_ESTA', '=', 'Activo')
- ->where('DEAR_NULI', '=', $line)
- ->where('INAR_ESTA', '=', 'Activo')
- ->where('INAR_NULI', '=', $line)
- ->where('UNID_ESTA', '=', 'Activo')
- ->where('UNID_NULI', '=', $line)
- ->join('S002V01TARTI', 'ARSE_IDAR', '=', 'ARTI_IDAR')
- ->join('S002V01TINAR', 'ARSE_IDIN', '=', 'INAR_IDIN')
- ->join('S002V01TDEAR', 'DEAR_IDDE', '=', 'INAR_IDDE')
- ->join('S002V01TFAMI', 'ARTI_IDFA', '=', 'FAMI_IDFA')
- ->join('S002V01TSUBF', 'ARTI_IDSU', '=', 'SUBF_IDSU')
- ->join('S002V01TUNID', 'DEAR_IDUN', '=', 'UNID_IDUN')
- ->get([
- 'ARSE_IDAS',
- 'ARSE_CANT',
- 'ARSE_PRTO',
- 'FAMI_IDFA',
- 'FAMI_NOMB',
- 'SUBF_IDSU',
- 'SUBF_NOMB',
- 'ARTI_IDAR',
- 'ARTI_CODI',
- 'ARTI_NOMB',
- 'DEAR_IDDE',
- 'DEAR_IMAG',
- 'DEAR_DESC',
- 'DEAR_CARA',
- 'DEAR_COWE',
- 'INAR_IDIN',
- 'INAR_CODI',
- 'INAR_MODE',
- 'INAR_COMO',
- 'INAR_PREC',
- 'INAR_MOMI',
- 'INAR_CARA',
- 'UNID_IDUN',
- 'UNID_NOMB',
- 'UNID_ACRO',
- ]);
- $arrArtitles = json_decode(json_encode($getArtitles), true);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse( true, "ERR_ORDER_GET004: Ocurrió un error al momento de obtener los artículos de las órdenes de compra.", $th->getMessage(), 500);
- }
- if (empty($arrArtitles) || is_null($arrArtitles)) {
- return $this->responseController->makeResponse( true, "ERR_ORDER_GET005: No se pudo obtener los artículos de las órdenes de compra.", [], 500);
- }
- foreach ($arrArtitles as $keyArtitles => $artitles) {
- $arrImageArtitle = json_decode($artitles['DEAR_IMAG']);
- $arrUrlImage = array();
- foreach ($arrImageArtitle as $key => $imagen) {
- $responseDocument = $this->documentManagementController->getPublicDocumentURL($imagen, $user, $line);
- $arrResponseDocument = json_decode($responseDocument->original, true);
- if ($arrResponseDocument['error']) {
- return $this->responseController->makeResponse(true, "ERR_ARTITLE_GET003: Ocurrió un error al obtener la URL de la imágen.", [], 500);
- }
- $arrUrlImage[] = $arrResponseDocument['response']['public_uri'];
- }
- $arrArtitles[$keyArtitles]['DEAR_IMAG'] = $arrUrlImage;
- }
- try {
- $getHistoryOrder = DB::table('S002V01THIOR')
- ->where('HIOR_NUOR', '=', $order)
- ->where('HIOR_NULI', '=', $line)
- ->get([
- 'HIOR_IDHO',
- 'HIOR_ESOR',
- 'HIOR_DESC',
- 'HIOR_EVID',
- 'HIOR_POEN',
- 'HIOR_USRE',
- 'HIOR_FERE',
- 'HIOR_USMO',
- 'HIOR_FEMO',
- ]);
- $arrHistoryOrder = json_decode(json_encode($getHistoryOrder), true);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse( true, "ERR_ORDER_GET006: Ocurrió un error al momento de obtener el historial de la orden de compra.", $th->getMessage(), 500);
- }
- if (empty($arrHistoryOrder) || is_null($arrHistoryOrder)) {
- return $this->responseController->makeResponse( true, "ERR_ORDER_GET007: No se pudo obtener el historial de la orden de compra.", [], 500);
- }
- foreach ($arrHistoryOrder as $keyHistoryOrder => $historyOrder) {
- if ( !is_null($historyOrder['HIOR_EVID']) ) {
- $arrEvidence = json_decode($historyOrder['HIOR_EVID']);
- $arrUrlImage = array();
- foreach ($arrEvidence as $key => $imagen) {
- $responseDocument = $this->documentManagementController->getPublicDocumentURL($imagen, $user, $line);
- $arrResponseDocument = json_decode($responseDocument->original, true);
- if ($arrResponseDocument['error']) {
- return $this->responseController->makeResponse(true, "ERR_ARTITLE_GET003: Ocurrió un error al obtener la URL de la imágen.", [], 500);
- }
- $arrUrlImage[] = $arrResponseDocument['response']['public_uri'];
- }
- $historyOrder['HIOR_EVID'] = $arrUrlImage;
- }
- $arrHistoryOrder[$keyHistoryOrder] = $historyOrder;
- }
- $getOrders['ARTI'] = $arrArtitles;
- $getOrders['HIST'] = $arrHistoryOrder;
- return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $getOrders);
- }
- public function getLastSateOrder($order, $user, $line) {
- try {
- $arrOrderState = (array) DB::table('S002V01THIOR')
- ->where('HIOR_NUOR', '=', $order)
- ->where('HIOR_NULI', '=', $line)
- ->where('HIOR_ESTA', '=', 'Activo')
- ->orderBy('HIOR_FEAR', 'DESC')
- ->first([
- 'HIOR_IDHO',
- 'HIOR_NULI',
- 'HIOR_NUOR',
- 'HIOR_ESOR',
- 'HIOR_DESC',
- 'HIOR_EVID',
- 'HIOR_POEN',
- 'HIOR_ESTA',
- 'HIOR_USRE',
- 'HIOR_FERE',
- 'HIOR_USMO',
- 'HIOR_FEMO',
- 'HIOR_FEAR',
- ]);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, "ERR_ORDER_GETHISTORY000: Ocurrió un error al obtener el historial de las órdenes de compra", [], 500);
- }
- return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrOrderState);
- }
- public function updateStateHistory(Request $request) {
- $validator = Validator::make($request->all(), [
- 'ESTADO' => 'required|string',
- 'DESCRIPCION' => 'required|string',
- 'EVIDENCIA' => 'required|array',
- 'PORCENTAJE' => 'required|string',
- 'NUMERO_ORDEN' => 'required|string',
- 'USUARIO' => 'required|string',
- 'NUMERO_LINEA' => 'required|string',
- ]);
- if ($validator->fails()) {
- return $this->responseController->makeResponse(
- true,
- "ERR_ORDERSTATE_REG000: Se encontraron uno o más errores.",
- $this->responseController->makeErrors($validator->errors()->messages()),
- 401
- );
- }
- DB::beginTransaction();
- $requestData = $request->all();
- try {
- $user = $this->encController->decrypt($requestData['USUARIO']);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "ERR_ORDERSTATE_REG001: Ocurrió un error al obtener el usuario.", [], 500);
- }
- $arrCodeEvidence = array();
- foreach ($requestData['EVIDENCIA'] as $keyEvidence => $evidence) {
- $idFile = $this->encController->decrypt($evidence);
- $tempFile = DB::table('S002V01TARTE')->where([
- ['ARTE_NULI', '=', $requestData['NUMERO_LINEA']],
- ['ARTE_IDAR', '=', $idFile],
- ])->first();
- if(is_null($tempFile)){
- return $this->responseController->makeResponse(true, 'ERR_ORDERSTATE_REG002: El archivo consultado no está registrado', [], 404);
- }else if($tempFile->ARTE_ESTA == 'Eliminado'){
- return $this->responseController->makeResponse(true, 'ERR_ORDERSTATE_REG003: El archivo consultado está eliminado', [], 404);
- }
- $fileResponse = $this->documentManagementController->moveFinalFile(
- intval($requestData['NUMERO_LINEA']),
- 'GEAD',
- 'FO',
- $tempFile,
- $user,
- );
- if(!$fileResponse[0]){
- return $this->responseController->makeResponse(true, 'ERR_ORDERSTATE_REG004: '.$fileResponse[1], [], 400);
- }
- $arrCodeEvidence[] = $this->encController->encrypt($fileResponse[1]);
- }
- $jsonEvidence = json_encode($arrCodeEvidence);
- $now = $this->functionsController->now();
- $currentDate = $now->toDateTimeString();
- $arrInsert = [
- 'HIOR_NUOR' => $requestData['NUMERO_ORDEN'],
- 'HIOR_ESOR' => $requestData['ESTADO'],
- 'HIOR_DESC' => $requestData['DESCRIPCION'],
- 'HIOR_EVID' => $jsonEvidence,
- 'HIOR_POEN' => $requestData['PORCENTAJE'],
- 'HIOR_NULI' => $requestData['NUMERO_LINEA'],
- 'HIOR_USRE' => $user,
- 'HIOR_FERE' => $currentDate,
- 'HIOR_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
- ];
- try {
- $validateInsert = DB::table('S002V01THIOR')->insert($arrInsert);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "ERR_ORDERSTATE_REG005: Ocurrió un error al momento de insertar los datos.", [], 500);
- }
- if ( !$validateInsert ) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "ERR_ORDERSTATE_REG006: No se pudo insertar los datos a la tabla.", [], 500);
- }
- try {
- $validateUpdate = DB::table('S002V01TORCO')
- ->where('ORCO_NUOR', '=', $requestData['NUMERO_ORDEN'])
- ->where('ORCO_NULI', '=', $requestData['NUMERO_LINEA'])
- ->update([
- 'ORCO_ESTA' => $requestData['ESTADO'],
- 'ORCO_USMO' => $user,
- 'ORCO_FEMO' => $currentDate,
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "ERR_ORDERSTATE_REG007: Ocurrió un error al momento de modificar los datos.", [], 500);
- }
- if ( !$validateUpdate ) {
- DB::rollBack();
- return $this->responseController->makeRespÑonse(true, "ERR_ORDERSTATE_REG008: No se pudo modificar los datos a la tabla.", [], 500);
- }
- DB::commit();
- return $this->responseController->makeResponse(false, "ÉXITO: Modificación de Estado Exitoso");
- }
- public function reorderArtitles(Request $request) {
- $validator = Validator::make($request->all(), [
- 'ORDEN' => 'required|string',
- 'DESCRIPCION' => 'required|string',
- 'USUARIO' => 'required|string',
- 'NUMERO_LINEA' => 'required|string',
- ]);
- if ($validator->fails()) {
- return $this->responseController->makeResponse(
- true,
- "ERR_REORDER_REG000: Se encontraron uno o más errores.",
- $this->responseController->makeErrors($validator->errors()->messages()),
- 401
- );
- }
- DB::beginTransaction();
- $requestData = $request->all();
- try {
- $user = $this->encController->decrypt($requestData['USUARIO']);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "ERR_REORDER_REG001: Ocurrió un error al obtener el usuario.", [], 500);
- }
- try {
- $order = $this->encController->decrypt($requestData['ORDEN']);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "ERR_REORDER_REG002: Ocurrió un error al obtener el número de orden.", [], 500);
- }
- $now = $this->functionsController->now();
- $currentDate = $now->toDateTimeString();
- try {
- $idRegisterLine = DB::table('S002V01TLINE')->insertGetId([
- // 'LINE_DESC' => $request['DESCRIPCION'],
- 'LINE_NULI' => $request['NUMERO_LINEA'],
- 'LINE_USRE' => $user,
- 'LINE_FERE' => $currentDate,
- 'LINE_FEAR' => DB::raw('CURRENT_TIMESTAMP')
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "ERR_REORDER_REG003: Ocurrió un error al hacer la inserción en la base.", $th->getMessage(), 500);
- }
- if ( !$idRegisterLine ) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "ERR_REORDER_REG004: Ocurrió un error al hacer la inserción en la base.", [], 500);
- }
- try {
- $arrArtitles = DB::table('S002V01TORCO')
- ->where('ORCO_NUOR', '=', $order)
- ->join('S002V01TARSE', function (JoinClause $join) {
- $join->on('ARSE_IDLI', '=', 'ORCO_IDLI')
- ->on('ARSE_NUPR', '=', 'ORCO_NUPR');
- })
- ->get([
- 'ARSE_IDAR', // Identificador del artículo
- 'ARSE_NUPR', // Número del proveedor
- 'ARSE_IDIN', // Identificador de la información del artículo
- 'ARSE_CANT', // Cantidad
- 'ARSE_PRTO', // Precio total
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "ERR_REORDER_REG005: No se pudo obtener la información de la orden.", $th->getMessage(), 500);
- }
- if ( $arrArtitles->isEmpty() ) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "ERR_REORDER_REG006: La orden no tiene artículos.", [], 500);
- }
- foreach ($arrArtitles as $keyArtitle => $artitle) {
- try {
- $validateInsert = DB::table('S002V01TARSE')->insert([
- 'ARSE_IDAS' => $keyArtitle + 1,
- 'ARSE_IDLI' => $idRegisterLine,
- 'ARSE_IDAR' => $artitle->ARSE_IDAR,
- 'ARSE_NUPR' => $artitle->ARSE_NUPR,
- 'ARSE_IDIN' => $artitle->ARSE_IDIN,
- 'ARSE_CANT' => $artitle->ARSE_CANT,
- 'ARSE_PRTO' => $artitle->ARSE_PRTO,
- 'ARSE_NULI' => $request['NUMERO_LINEA'],
- 'ARSE_USRE' => $user,
- 'ARSE_FERE' => $currentDate,
- 'ARSE_FEAR' => DB::raw('CURRENT_TIMESTAMP')
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "ERR_REORDER_REG007: Ocurrió un error al hacer la inserción en la base.", $th->getMessage(), 500);
- }
- if ( !$validateInsert ) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "ERR_REORDER_REG008: Ocurrió un error al hacer la inserción en la base.", [], 500);
- }
- }
- DB::commit();
- return $this->responseController->makeResponse(false, "ÉXITO: Artículos Reordenados Exitosamente");
- }
- public function generateSheetAcquisition($encOrderNumber, $user, $line) {
-
- }
- }
|