Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import {
- MatDialog,
- MatDialogConfig,
- MatDialogRef,
- MAT_DIALOG_DATA,
- } from '@angular/material/dialog';
- import { Component, OnInit, Inject } from '@angular/core';
- import icClose from '@iconify/icons-ic/twotone-close';
- import { FormBuilder, FormGroup, Validators } from '@angular/forms';
- import { MatSnackBar } from '@angular/material/snack-bar';
- import { Validator } from 'src/@vex/utils/validator';
- import { DialogComponent } from 'src/app/shared/components/dialog/dialog.component';
- import { DocumentFormModel } from 'src/app/model/module/uji-tuntas/uji-tuntas.model';
- import { PerencanaanService } from 'src/app/services/module/uji-tuntas/perencanaan.service';
- import { FileService } from 'src/app/services/module/uji-tuntas/file.service';
- import { UjiTuntasService } from 'src/app/services/module/uji-tuntas/uji-tuntas.service';
- import { Utils } from 'src/app/utils/utils';
- import { formatDate } from '@angular/common';
- import { DialogInfoComponent } from 'src/app/shared/components/dialog-info/dialog-info.component';
- import { GenerateFileService } from 'src/app/services/module/uji-tuntas/state/generateFolder.service';
- import moment from 'moment';
- import { T } from '@angular/cdk/keycodes';
- @Component({
- selector: 'vex-add-edit-detail-uji-tuntas',
- templateUrl: './add-edit-detail-uji-tuntas.component.html',
- styleUrls: ['./add-edit-detail-uji-tuntas.component.scss'],
- })
- export class AddEditDetailUjiTuntasComponent implements OnInit {
- isConfirmation = false;
- icClose = icClose;
- formModel: DocumentFormModel = {} as DocumentFormModel;
- fileNames: string;
- extensions: string;
- titleDialog: string;
- functionDialog: string;
- isLoading = true;
- submitted = false;
- errMsgFileNull: boolean;
- status: any[] = [];
- listJenisPemeriksaan: any;
- bankStatus: any;
- detailUjiTuntasComponent: FormGroup;
- currentData: any;
- filteredKetuaTim: string[] = [];
- listKetuaTim: any;
- selectedBank: any;
- fileDocument: any;
- listBank: any;
- listRegisteredBank: any;
- listStatus: any;
- tempOjk: any = null;
- tempPosisiPemeriksaaan: any = null;
- tempSuratTugas: any = null;
- tempStart: any = null;
- tempEnd: any = null;
- tempTds: any = null;
- loginInfo: any;
- disabledField = true;
- listOjk: any;
- tglOjk: any;
- datepickerBoolean = false;
- bankId: any;
- isRemarkIndikasiFraud = false;
- constructor(
- @Inject(MAT_DIALOG_DATA) private data: any,
- private perencanaanService: PerencanaanService,
- private ujituntasService: UjiTuntasService,
- private fileService: FileService,
- private generateFile: GenerateFileService,
- private dialogRef: MatDialogRef<AddEditDetailUjiTuntasComponent>,
- private snackbar: MatSnackBar,
- private formBuilder: FormBuilder,
- private utils: Utils,
- public dialog: MatDialog
- ) {
- this.titleDialog = data.title;
- this.currentData = data.modelData;
- this.listKetuaTim = data.listKetuaTim;
- this.functionDialog = data.function;
- this.listJenisPemeriksaan = data.jenis;
- this.selectedBank = data.selectedBank;
- this.listBank = data.bank;
- this.listRegisteredBank = data.registeredBank;
- this.listStatus = data.status;
- }
- get f() {
- return this.detailUjiTuntasComponent.controls;
- }
- ngOnInit(): void {
- this.loginInfo = JSON.parse(this.utils.getUserInfo());
- this.bankStatus = [{ value: true }, { value: false }];
- this.initForm();
- this.getListOjk();
- }
- public dateFilter = (tglAkhir: Date): boolean => {
- const value = this.detailUjiTuntasComponent.value;
- return tglAkhir >= value.tglAwalUjiTuntas;
- };
- getListOjk() {
- this.ujituntasService.getExtGssk().subscribe((res: any) => {
- // console.log('kategori aguanan:', res);
- this.listOjk = res.data;
- })
- }
- getDataBankTDS() {
- this.ujituntasService.getGamrDataBankTds(this.bankId, new Date(this.f.tglAwalUjiTuntas.value).getFullYear()).subscribe((res: any) => {
- if (res?.data && res?.data[0]) {
- let dataBank = res.data[0];
- this.f.tglTds.setValue(
- dataBank.tglmasuk
- ? new Date(dataBank.tglmasuk)
- : dataBank.tglmasuk
- );
- // this.f.tglTds.disable();
- }
- }, (error) => {
- const dialogConfigError = new MatDialogConfig();
- dialogConfigError.disableClose = true;
- dialogConfigError.data = {
- dialogTitle: 'Gagal Mendapatkan Data Dockumen Bank TDS',
- dialogText: error?.error?.detail,
- isLoading: false
- };
- const dialogErr = this.dialog.open(DialogInfoComponent, dialogConfigError);
- })
- }
- changeBank(bank: any) {
- const indexNamaBank = this.listRegisteredBank.findIndex(item => item['bankId'] === bank.bankId);
- const dataNamaBank = this.listRegisteredBank[indexNamaBank];
- if (indexNamaBank >= 0){
- this.bankId = this.listRegisteredBank[indexNamaBank].bankId;
- if (this.functionDialog != 'Add'){
- this.getDataBankTDS();
- }
- }
- // console.log(bank);
- // console.log(dataNamaBank);
- const indexOjk = this.listOjk.findIndex(item => item['bankId'] === dataNamaBank.bankId);
- const dataOjk = this.listOjk[indexOjk];
- // console.log('dataOjk.noSurat : ', dataOjk.noSurat);
- // console.log('dataOjk.tanggalSurat : ', dataOjk.tanggalSurat);
- if (dataOjk.noSurat) {
- this.f.noSuratPendapatanOjk.setValue(dataOjk.noSurat);
- this.f.noSuratPendapatanOjk.disable();
- } else {
- this.f.noSuratPendapatanOjk.setValue(dataOjk.noSurat);
- this.f.noSuratPendapatanOjk.enable();
- }
- if (dataOjk.tanggalSurat) {
- this.tglOjk = new Date(dataOjk.tanggalSurat).toISOString();
- this.f.tglSuratMasukOjk.setValue(this.tglOjk);
- this.f.tglSuratMasukOjk.disable();
- this.datepickerBoolean = true;
- // console.log(this.tglOjk);
- } else {
- this.f.tglSuratMasukOjk.setValue(dataOjk.tanggalSurat);
- this.f.tglSuratMasukOjk.enable();
- this.tglOjk = null;
- this.datepickerBoolean = false;
- }
- }
- changeTanggalAwalUT() {
- if (this.functionDialog != 'Add'){
- if (this.f.tglAwalUjiTuntas.value && this.f.tglAwalUjiTuntas.value != null && this.f.tglAwalUjiTuntas.value != '') {
- this.getDataBankTDS();
- }
- }
- }
- initForm() {
- this.formModel = {
- folderPath: 'ICS/Try',
- filename: null,
- fileContent: null,
- fiturId: '157',
- };
- this.detailUjiTuntasComponent = this.formBuilder.group({
- noSuratTugas: [''],
- tglSuratMasukOjk: [''],
- noSuratPendapatanOjk: [''],
- tglPosisiPemeriksaan: ['', Validators.required],
- tglSuratTugas: [''],
- tglAwalUjiTuntas: ['', Validators.required],
- tglAkhirUjiTuntas: ['', Validators.required],
- tglTds: [''],
- bankStatus: [''],
- lokasi: [''],
- ketuaTim: ['', Validators.required],
- remarksPotensi: [''],
- remarksTds: [''],
- remarkIndikasiFraud: [''],
- bank: ['', Validators.required],
- jenisPemeriksaanId: ['', Validators.required],
- file: [],
- });
- if (this.currentData) {
- this.formModel.filename = this.currentData.fileName;
- const indexBank = this.listBank?.findIndex(
- (item) => item['bankId'] === this.currentData.bankId
- );
- const bank = this.listBank[indexBank];
- this.bankId = this.currentData.bankId
- const index = this.listKetuaTim?.findIndex(
- (item) => item['userId'] === this.currentData.ketuaTimIdString
- );
- const ketuaTim = index ? this.listKetuaTim[index] : '';
- this.f.noSuratTugas.setValue(this.currentData.nomorSuratTugas);
- this.f.noSuratPendapatanOjk.setValue(this.currentData.nomorSuratOjk);
- this.f.tglSuratMasukOjk.setValue(
- this.currentData.tanggalSuratOjk
- ? new Date(this.currentData.tanggalSuratOjk)
- : this.currentData.tanggalSuratOjk
- );
- this.f.tglPosisiPemeriksaan.setValue(
- this.currentData.tanggalPosisiPemeriksaan
- ? new Date(this.currentData.tanggalPosisiPemeriksaan)
- : this.currentData.tanggalPosisiPemeriksaan
- );
- this.f.tglSuratTugas.setValue(
- this.currentData.tanggalSuratTugas
- ? new Date(this.currentData.tanggalSuratTugas)
- : this.currentData.tanggalSuratTugas
- );
- this.f.tglAwalUjiTuntas.setValue(
- this.currentData.tanggalAwalPelaksanaan
- ? new Date(this.currentData.tanggalAwalPelaksanaan)
- : this.currentData.tanggalAwalPelaksanaan
- );
- this.f.tglAkhirUjiTuntas.setValue(
- this.currentData.tanggalAkhirPelaksanaan
- ? new Date(this.currentData.tanggalAkhirPelaksanaan)
- : this.currentData.tanggalAkhirPelaksanaan
- );
- if (this.functionDialog === 'Add'){
- this.f.tglTds.setValue(
- this.currentData.tanggalTds
- ? new Date(this.currentData.tanggalTds)
- : this.currentData.tanggalTds
- );
- } else {
- this.f.tglTds.setValue(
- this.currentData.tanggalTds
- ? new Date(this.currentData.tanggalTds)
- : this.getDataBankTDS()
- );
- }
- this.f.lokasi.setValue(this.currentData.lokasi);
- this.f.ketuaTim.setValue(ketuaTim ? ketuaTim : '');
- this.f.bankStatus.setValue(this.currentData.isPotensiBankGagal);
- this.f.remarksPotensi.setValue(this.currentData.remarkPotensiBankGagal);
- this.f.remarksTds.setValue(this.currentData.remarkTanggalTds);
- this.f.remarkIndikasiFraud.setValue(this.currentData.remarkIndikasiFraud);
- this.f.jenisPemeriksaanId.setValue(
- this.currentData.masterJenisPemeriksaanId
- );
- this.f.bank.setValue(bank ? bank : '');
- this.getDetailDocument(this.currentData.repositoryId);
- this.tempOjk = new Date(this.currentData.tanggalSuratOjk);
- this.tempPosisiPemeriksaaan = new Date(
- this.currentData.tanggalPosisiPemeriksaan
- );
- this.tempSuratTugas = new Date(this.currentData.tanggalSuratTugas);
- this.tempStart = new Date(this.currentData.tanggalAwalPelaksanaan);
- this.tempEnd = new Date(this.currentData.tanggalAkhirPelaksanaan);
- this.tempTds = new Date(this.currentData.tanggalTds);
- }
- }
- onSubmit() {
- // console.log(
- // 'check',
- // this.detailUjiTuntasComponent,
- // this.detailUjiTuntasComponent.valid,
- // this.formModel
- // );
- this.submitted = true;
- // if (
- // this.detailUjiTuntasComponent.invalid &&
- // (!this.f.file.value || this.f.file.value.length === 0)
- // ) {
- // this.errMsgFileNull = true;
- // return;
- // }
- // if(this.f.file.value?.length === 0){
- // this.errMsgFileNull = true;
- // return;
- // }
- if(this.functionDialog !== 'Add' ){
- if (this.f.bankStatus.value){
- if( this.f.remarkIndikasiFraud.value=="" || this.f.remarkIndikasiFraud.value==undefined){
- this.isRemarkIndikasiFraud = true
- return;
- }
- }else{
- this.isRemarkIndikasiFraud = false;
- this.f.remarkIndikasiFraud.setErrors(null)
- }
- }
- if (this.detailUjiTuntasComponent.invalid) {
- return;
- } else {
- this.isConfirmation = true;
- this.errMsgFileNull = false;
- }
- }
- updateDate(date) {
- if (date) {
- date.setDate(date.getDate() + 1);
- }
- return date;
- }
- ojkDateCheck(date) {
- if (this.tempOjk.getDate() === date.getDate()) {
- return date;
- } else {
- return this.updateDate(date);
- }
- }
- posisiDateCheck(date) {
- if (this.tempPosisiPemeriksaaan.getDate() === date.getDate()) {
- return date;
- } else {
- return this.updateDate(date);
- }
- }
- stDateCheck(date) {
- if (this.tempSuratTugas.getDate() === date.getDate()) {
- return date;
- } else {
- return this.updateDate(date);
- }
- }
- startDateCheck(date) {
- if (this.tempStart.getDate() === date.getDate()) {
- return date;
- } else {
- return this.updateDate(date);
- }
- }
- endDateCheck(date) {
- if (this.tempEnd.getDate() === date.getDate()) {
- return date;
- } else {
- return this.updateDate(date);
- }
- }
- tdsDateCheck(date) {
- if (this.tempTds.getDate() === date.getDate()) {
- return date;
- } else {
- return this.updateDate(date);
- }
- }
- monthBefore(date) {
- let newDate = new Date(date.getYear(), date.getMonth(), 1);
- return new Date (newDate.setDate(newDate.getDate() - 1));
- }
- doSubmit(id) {
- const requestBody = {
- id: this.currentData ? this.currentData.id : 0,
- isDeleted: false,
- bankId: this.f.bank.value.bankId,
- bankName: this.f.bank.value.bankName,
- bankStatus: this.f.bank.value.statusBank,
- nomorSuratOjk: this.f.noSuratPendapatanOjk.value.trim(),
- tanggalSuratOjk: this.tempOjk ? this.ojkDateCheck(new Date(this.f.tglSuratMasukOjk.value)) : this.updateDate(new Date(this.f.tglSuratMasukOjk.value)),
- tanggalPosisiPemeriksaan: this.tempPosisiPemeriksaaan ? this.posisiDateCheck(new Date(this.f.tglPosisiPemeriksaan.value)) : this.updateDate(new Date(this.f.tglPosisiPemeriksaan.value)),
- tanggalAwalPelaksanaan: this.tempStart ? this.startDateCheck(new Date(this.f.tglAwalUjiTuntas.value)) : this.updateDate(new Date(this.f.tglAwalUjiTuntas.value)),
- tanggalAkhirPelaksanaan: this.tempEnd ? this.endDateCheck(new Date(this.f.tglAkhirUjiTuntas.value)) : this.updateDate(new Date(this.f.tglAkhirUjiTuntas.value)),
- tanggalSuratTugas: this.tempSuratTugas ? this.stDateCheck(new Date(this.f.tglSuratTugas.value)) : this.updateDate(new Date(this.f.tglSuratTugas.value)),
- tanggalTds: this.functionDialog !== 'Add' ? this.tempTds ? this.tdsDateCheck(new Date(this.f.tglTds.value)) : this.updateDate(new Date(this.f.tglTds.value)) : '',
- nomorSuratTugas: this.f.noSuratTugas.value.trim(),
- lokasi: this.f.lokasi.value.trim(),
- masterBankUjiTuntasId: 7,
- ketuaTimIdString: this.f.ketuaTim.value.userId,
- ketuaTimNama: '',
- ketuaTimUnitKerja: '',
- ketuaTimEmail: '',
- isPotensiBankGagal: this.f.bankStatus.value,
- remarkPotensiBankGagal: this.f.remarksPotensi.value,
- remarkTanggalTds: this.f.remarksTds.value,
- masterJenisPemeriksaanId: this.f.jenisPemeriksaanId.value,
- repositoryId: id ? id : '',
- fileName: this.formModel ? this.formModel?.filename : '',
- tanggalMasukStatusBDP: formatDate(this.f.bank.value.tanggalMasukStatusBDP, 'yyyy-MM-dd', 'id-ID'),
- batasTanggalPenetapanBdp: formatDate(this.f.bank.value.batasTanggalPenetapanBdp, 'yyyy-MM-dd', 'id-ID'),
- bankStatusName: this.f.bank.value.keterangan,
- remarkIndikasiFraud : this.f.remarkIndikasiFraud.value
- };
- if (this.functionDialog === 'Add') {
- this.perencanaanService.postPenugasanUt(requestBody).subscribe(
- (res: any) => {
- this.snackbar.open(res.detail, res.message, {
- duration: 10000,
- });
- if (res.status === 200) {
- this.dialogRef.close('Add OK');
- }
- },
- (err: any) => {
- console.log('error', err);
- this.snackbar.open('Opsss.. ' + err.name, 'Error', {
- duration: 10000,
- });
- }
- );
- } else {
- const id = this.currentData.id;
- this.perencanaanService.patchPenugasanUt(id, requestBody).subscribe(
- (res: any) => {
- this.snackbar.open(res.detail, res.message, {
- duration: 10000,
- });
- if (res.status === 200) {
- this.dialogRef.close('Edit OK');
- }
- },
- (err: any) => {
- console.log('error', err);
- this.snackbar.open('Opsss.. ' + err.name, 'Error', {
- duration: 10000,
- });
- }
- );
- }
- }
- displayKetuaTim(ketuaTim) {
- return ketuaTim ? ketuaTim.name : undefined;
- }
- getDetailDocument(id) {
- if(id != null){
- const dialogConfig = new MatDialogConfig();
- dialogConfig.disableClose = true;
- dialogConfig.data = {
- dialogTitle: 'Converting file',
- dialogText: 'Silahkan menunggu...',
- isLoading: true,
- };
- const dialogRef = this.dialog.open(DialogComponent, dialogConfig);
- this.fileService
- .downloadDocumentWithoutDownload(id)
- .subscribe((res: any) => {
- if (res) {
- const file = new File([res.fileBlob], res.fileName, {
- type: res.fileType,
- });
- if (file) {
- this.f.file.setValue([file]);
- dialogRef.close();
- }
- }
- });
- }
- }
- public createSave() {
- this.isLoading = true;
- if (this.formModel.fileContent) {
- this.convertFiles()
- } else {
- this.doSubmit(this.currentData?.repositoryId);
- }
- }
- convertFile() {
- this.fileService.convertFileBase64Try(this.f.file.value , '' ).subscribe((res) => {
- if (res) {
- this.formModel = {
- fileContent: res.formModel.fileContent,
- filename: res.formModel.filename,
- fiturId: res.formModel.fiturId,
- folderPath: res.formModel.folderPath,
- fileSize: res.formModel.fileSize
- }
- }
- }, (error) => {
- const dialogConfigError = new MatDialogConfig();
- dialogConfigError.disableClose = true;
- dialogConfigError.data = {
- dialogTitle: 'Gagal Convert File',
- dialogText: error.error.detail,
- isLoading: false
- };
- const dialogErr = this.dialog.open(DialogInfoComponent, dialogConfigError);
- });
- }
- async convertFiles() {
- const file = this.f.file.value[0];
- const folderBank = this.f.bank.value.bankName.replaceAll(' ' , '-') + '-' + moment( this.f.tglAwalUjiTuntas.value).format('MM') + '-' + moment(this.f.tglAwalUjiTuntas.value).format('yy')
- let pathArray = []
- let fullPath : any = '';
- pathArray.push(folderBank);
- pathArray.push("Penugasan-uji-tuntas");
- pathArray.push("Upload-Files");
- let tempFile = [];
- tempFile.push(file);
- let resp = await this.fileService.generateFolder(pathArray,0,pathArray.length)
- resp.subscribe(
- async (res : any) => {
- await this.generateFile.state.subscribe(
- (fileRes : any) => {
- fullPath = fileRes
- if(fileRes.index == pathArray.length){
- this.fileService.convertFileBase64Try(tempFile , fullPath?.pathTo ).subscribe((res) => {
- if (res) {
- this.formModel = {
- fileContent: res.formModel.fileContent,
- filename: res.formModel.filename,
- fiturId: res.formModel.fiturId,
- folderPath: res.formModel.folderPath,
- fileSize: res.formModel.fileSize
- }
- this.fileService.uploadFile(this.formModel).subscribe((res: any) => {
- if (res) {
- console.log(res.repoId)
- this.doSubmit(res?.repoId);
- tempFile = []
- }
- });
- // dialogRef.close();
- }
- }, (error) => {
- // dialogRef.close();
- const dialogConfigError = new MatDialogConfig();
- dialogConfigError.disableClose = true;
- dialogConfigError.data = {
- dialogTitle: 'Gagal Convert File',
- dialogText: error.error.detail,
- isLoading: false
- };
- const dialogErr = this.dialog.open(DialogInfoComponent, dialogConfigError);
- });
- }
- }
- )
- }
- )
- }
- }
Add Comment
Please, Sign In to add comment