diff --git a/src/mssql/manage-fee/manage-fee.controller.ts b/src/mssql/manage-fee/manage-fee.controller.ts index eec7c94..ed6175d 100644 --- a/src/mssql/manage-fee/manage-fee.controller.ts +++ b/src/mssql/manage-fee/manage-fee.controller.ts @@ -1,6 +1,6 @@ import { Body, Controller, Get, Patch, Post, Query } from '@nestjs/common'; import { ManageFeeService } from './manage-fee.service'; -import { CreateBasicFeeDTO, CreateBondRateDTO, CreateCargoRateDTO, CreateCfFeeDTO, CreateCsFeeDTO, GetFeeGeneralDTO, UpdateBasicFeeDTO, UpdateBondRateDTO, UpdateCargoRateDTO, UpdateCfFeeDTO, UpdateCsFeeDTO } from 'src/oracle/manage-fee/manage-fee.dto'; +import { CreateBasicFeeDTO, CreateBondRateDTO, CreateCargoRateDTO, CreateCfFeeDTO, CreateCsFeeDTO, CreateEfFeeDTO, CreateFeeCommDTO, GetFeeGeneralDTO, UpdateBasicFeeDTO, UpdateBondRateDTO, UpdateCargoRateDTO, UpdateCfFeeDTO, UpdateCsFeeDTO, UpdateEfFeeDTO, UpdateFeeCommDTO } from 'src/oracle/manage-fee/manage-fee.dto'; import { ApiTags } from '@nestjs/swagger'; @Controller('mssql') @@ -106,41 +106,41 @@ export class ManageFeeController { // Expedited Fee - // @ApiTags('Manage Fee - Oracle') + // @ApiTags('Manage Fee - Mssql') // @Get('/GetEfFeeRates') - // GetEfFeeRates(@Query() body: GetFeeGeneralDTO) { - // return this.manageFeeService.GETEFFEERATES(body); - // } + GetEfFeeRates(@Query() body: GetFeeGeneralDTO) { + return this.manageFeeService.GETEFFEERATES(body); + } - // @ApiTags('Manage Fee - Oracle') + // @ApiTags('Manage Fee - Mssql') // @Post('/CreateEfFee') - // CreateEeFee(@Body() body: CreateEfFeeDTO) { - // return this.manageFeeService.CREATEEFFEE(body); - // } + CreateEeFee(@Body() body: CreateEfFeeDTO) { + return this.manageFeeService.CREATEEFFEE(body); + } - // @ApiTags('Manage Fee - Oracle') + // @ApiTags('Manage Fee - Mssql') // @Patch('/UpdateEfFee') - // UpdateEfFee(@Body() body: UpdateEfFeeDTO) { - // return this.manageFeeService.UPDATEEFFEE(body); - // } + UpdateEfFee(@Body() body: UpdateEfFeeDTO) { + return this.manageFeeService.UPDATEEFFEE(body); + } // Fee Comm - // @ApiTags('Manage Fee - Oracle') + // @ApiTags('Manage Fee - Mssql') // @Get('/GetFeeComm') - // GetFeeComm(@Query() body: GetFeeGeneralDTO) { - // return this.manageFeeService.GETFEECOMM(body); - // } + GetFeeComm(@Query() body: GetFeeGeneralDTO) { + return this.manageFeeService.GETFEECOMM(body); + } - // @ApiTags('Manage Fee - Oracle') + // @ApiTags('Manage Fee - Mssql') // @Post('/CreateFeeComm') - // CreateFeeComm(@Body() body: CreateFeeCommDTO) { - // return this.manageFeeService.CREATEFEECOMM(body); - // } + CreateFeeComm(@Body() body: CreateFeeCommDTO) { + return this.manageFeeService.CREATEFEECOMM(body); + } - // @ApiTags('Manage Fee - Oracle') + // @ApiTags('Manage Fee - Mssql') // @Patch('/UpdateFeeComm') - // UpdateFeeComm(@Body() body: UpdateFeeCommDTO) { - // return this.manageFeeService.UPDATEFEECOMM(body); - // } + UpdateFeeComm(@Body() body: UpdateFeeCommDTO) { + return this.manageFeeService.UPDATEFEECOMM(body); + } } diff --git a/src/mssql/manage-fee/manage-fee.service.ts b/src/mssql/manage-fee/manage-fee.service.ts index 37003cb..2a0f507 100644 --- a/src/mssql/manage-fee/manage-fee.service.ts +++ b/src/mssql/manage-fee/manage-fee.service.ts @@ -1,7 +1,7 @@ import { Injectable, Logger } from '@nestjs/common'; import { MssqlDBService, OracleDBService } from 'src/db/db.service'; import { InternalServerException } from 'src/exceptions/internalServerError.exception'; -import { CreateBasicFeeDTO, CreateBondRateDTO, CreateCargoRateDTO, CreateCfFeeDTO, CreateCsFeeDTO, GetFeeGeneralDTO, UpdateBasicFeeDTO, UpdateBondRateDTO, UpdateCargoRateDTO, UpdateCfFeeDTO, UpdateCsFeeDTO } from 'src/oracle/manage-fee/manage-fee.dto'; +import { CreateBasicFeeDTO, CreateBondRateDTO, CreateCargoRateDTO, CreateCfFeeDTO, CreateCsFeeDTO, CreateEfFeeDTO, CreateFeeCommDTO, GetFeeGeneralDTO, UpdateBasicFeeDTO, UpdateBondRateDTO, UpdateCargoRateDTO, UpdateCfFeeDTO, UpdateCsFeeDTO, UpdateEfFeeDTO, UpdateFeeCommDTO } from 'src/oracle/manage-fee/manage-fee.dto'; import * as oracledb from 'oracledb'; import { BadRequestException } from 'src/exceptions/badRequest.exception'; import { Connection, Request } from 'mssql'; @@ -308,4 +308,128 @@ export class ManageFeeService { throw new InternalServerException(); } } + + // Expedited fee + + async GETEFFEERATES(body: GetFeeGeneralDTO): Promise { + + let connection: Connection; + try { + connection = await this.mssqlDBService.getConnection(); + const request = new Request(connection); + request.input('p_spid', mssql.Int, body.P_SPID); + request.input('p_active_inactive', mssql.VarChar(8), body.P_ACTIVE_INACTIVE); + const result = await request.execute('carnetsys.GetEFFeeRates'); + if (result.recordset) { + return result.recordset; + } + throw new BadRequestException(); + } catch (error) { + if (error instanceof BadRequestException) { + throw error + } + throw new InternalServerException(); + } + } + + async CREATEEFFEE(body: CreateEfFeeDTO) { + let connection: Connection; + try { + connection = await this.mssqlDBService.getConnection(); + const request = new Request(connection); + request.input('P_SPID', mssql.Int, body.P_SPID); + request.input('P_CUSTOMERTYPE', mssql.VarChar(20), body.P_CUSTOMERTYPE); + request.input('P_DELIVERYTYPE', mssql.VarChar(20), body.P_DELIVERYTYPE); + request.input('P_STARTTIME', mssql.Int, body.P_STARTTIME); + request.input('P_ENDTIME', mssql.Int, body.P_ENDTIME); + request.input('P_TIMEZONE', mssql.VarChar(3), body.P_TIMEZONE); + request.input('P_EFFDATE', mssql.VarChar(100), body.P_EFFDATE); + request.input('P_FEES', mssql.Float, body.P_FEES); + request.input('P_USERID', mssql.VarChar(100), body.P_USERID); + const result = await request.execute('carnetsys.CreateEFFee'); + return result.recordset; + } catch (error) { + console.log(error); + throw new InternalServerException(); + } + } + + async UPDATEEFFEE(body: UpdateEfFeeDTO) { + + let connection: Connection; + try { + connection = await this.mssqlDBService.getConnection(); + const request = new Request(connection); + request.input('P_EFFEESETUPID', mssql.Int, body.P_EFFEESETUPID); + request.input('P_FEES', mssql.Float, body.P_FEES); + request.input('P_EFFDATE', mssql.VarChar(100), body.P_EFFDATE); + request.input('P_USERID', mssql.VarChar(100), body.P_USERID); + const result = await request.execute('carnetsys.UpdateEFFee'); + return result.recordset; + } catch (error) { + console.log(error); + throw new InternalServerException(); + } + } + + // fee comm + + async GETFEECOMM(body: GetFeeGeneralDTO): Promise { + + let connection: Connection; + try { + connection = await this.mssqlDBService.getConnection(); + const request = new Request(connection); + request.input('p_spid', mssql.Int, body.P_SPID); + request.input('p_active_inactive', mssql.VarChar(8), body.P_ACTIVE_INACTIVE); + const result = await request.execute('carnetsys.GetFeecomm'); + if (result.recordset) { + return result.recordset; + } + throw new BadRequestException(); + } catch (error) { + console.log(error); + + if (error instanceof BadRequestException) { + throw error + } + throw new InternalServerException(); + } + } + + async CREATEFEECOMM(body: CreateFeeCommDTO) { + + let connection: Connection; + try { + connection = await this.mssqlDBService.getConnection(); + const request = new Request(connection); + request.input('P_SPID', mssql.Int, body.P_SPID); + request.input('P_PARAMID', mssql.Int, body.P_PARAMID); + request.input('P_COMMRATE', mssql.Float, body.P_COMMRATE); + request.input('P_EFFDATE', mssql.VarChar(100), body.P_EFFDATE); + request.input('P_USERID', mssql.VarChar(100), body.P_USERID); + const result = await request.execute('carnetsys.CreateFeeComm'); + return result.recordset; + } catch (error) { + console.log(error); + throw new InternalServerException(); + } + } + + async UPDATEFEECOMM(body: UpdateFeeCommDTO) { + let connection: Connection; + try { + connection = await this.mssqlDBService.getConnection(); + const request = new Request(connection); + request.input('P_FEECOMMID', mssql.Int, body.P_FEECOMMID); + request.input('P_RATE', mssql.Float, body.P_RATE); + request.input('P_EFFDATE', mssql.VarChar(100), body.P_EFFDATE); + request.input('P_USERID', mssql.VarChar(100), body.P_USERID); + const result = await request.execute('carnetsys.UpdateFeeComm'); + return result.recordset; + } catch (error) { + console.log(error); + throw new InternalServerException(); + } + } } diff --git a/src/oracle/manage-fee/manage-fee.dto.ts b/src/oracle/manage-fee/manage-fee.dto.ts index 3851d8e..9c2a037 100644 --- a/src/oracle/manage-fee/manage-fee.dto.ts +++ b/src/oracle/manage-fee/manage-fee.dto.ts @@ -13,7 +13,7 @@ export class GetFeeGeneralDTO { @ApiProperty({ required: true }) @Matches(/^.{6}$|^.{8}$/, { - message: 'Property P_ACTIVE_INACTIVE must be either too long or short', + message: 'Property P_ACTIVE_INACTIVE is invalid', }) @IsString({ message: 'Property P_ACTIVE_INACTIVE must be a string' }) @IsDefined({ message: 'Property P_ACTIVE_INACTIVE is required' })