From 2e3fecf80b337add42eae2420ed7b8838ceff73b4c51b83521c44e6a6040027c Mon Sep 17 00:00:00 2001 From: mirza Date: Fri, 20 Dec 2024 07:08:26 +0700 Subject: [PATCH] add condition hari libur: --- database/satu_data/jadwal/jadwal_libur.go | 21 +++++++++++ handlers/bpjs/surat_kontrol/surat_kontrol.go | 39 ++++++++++++++++++++ models/jadwal/jadwal_libur.go | 7 ++++ 3 files changed, 67 insertions(+) create mode 100644 database/satu_data/jadwal/jadwal_libur.go create mode 100644 models/jadwal/jadwal_libur.go diff --git a/database/satu_data/jadwal/jadwal_libur.go b/database/satu_data/jadwal/jadwal_libur.go new file mode 100644 index 0000000..6fc9329 --- /dev/null +++ b/database/satu_data/jadwal/jadwal_libur.go @@ -0,0 +1,21 @@ +package jadwal + +import ( + "bridging-rssa/config" + "bridging-rssa/models/jadwal" + "log" +) + +func GetJadwalLibur(date string) (*jadwal.DaftarJadwalLiburPelayanan, bool, error) { + var jadwalLibur *jadwal.DaftarJadwalLiburPelayanan + query := `select * from daftar_jadwal_libur_pelayanan where "Tanggal_libur_pelayanan" = ?` + q := config.SatuDataDB.Debug().Raw(query, date).Scan(&jadwalLibur) + if q.Error != nil { + log.Println(q.Error) + return nil, false, q.Error + } else if q.RowsAffected == 0 { + log.Println("Tidak pada hari libur") + return jadwalLibur, false, nil + } + return jadwalLibur, true, nil +} diff --git a/handlers/bpjs/surat_kontrol/surat_kontrol.go b/handlers/bpjs/surat_kontrol/surat_kontrol.go index 8a05aa5..72f5793 100644 --- a/handlers/bpjs/surat_kontrol/surat_kontrol.go +++ b/handlers/bpjs/surat_kontrol/surat_kontrol.go @@ -2,6 +2,7 @@ package suratkontrol import ( cfg "bridging-rssa/config" + "bridging-rssa/database/satu_data/jadwal" log_api "bridging-rssa/database/satu_data/log_api" lokasiruang "bridging-rssa/database/satu_data/lokasi_ruang" suratkontrol "bridging-rssa/database/satu_data/surat_kontrol" @@ -43,6 +44,27 @@ func InsertSuratKontrol(c *gin.Context) { return } + jadwalLibur, isLibur, errLibur := jadwal.GetJadwalLibur(req.TglRencanaKontrol) + if errLibur != nil { + log.Println(errLibur) + c.JSON(http.StatusPreconditionFailed, &sk.ResponseInsertSuratKontrol{ + MetaData: sk.MetadataString{ + Code: "203", + Message: errLibur.Error(), + }, + }) + return + } else if isLibur { + log.Println(jadwalLibur.KeteranganLiburPelayanan) + c.JSON(http.StatusPreconditionFailed, &sk.ResponseInsertSuratKontrol{ + MetaData: sk.MetadataString{ + Code: "203", + Message: jadwalLibur.NamaLiburPelayanan, + }, + }) + return + } + reqJson, err := json.Marshal(req) if err != nil { log.Println(err) @@ -361,6 +383,23 @@ func UpdateSuratKontrol(c *gin.Context) { return } + jadwalLibur, isLibur, errLibur := jadwal.GetJadwalLibur(req.TglRencanaKontrol) + if errLibur != nil { + log.Println(errLibur) + c.JSON(http.StatusInternalServerError, &sk.MetadataString{ + Code: "", + Message: err.Error(), + }) + return + } else if isLibur { + log.Println(jadwalLibur.KeteranganLiburPelayanan) + c.JSON(http.StatusInternalServerError, &sk.MetadataString{ + Code: "", + Message: jadwalLibur.NamaLiburPelayanan, + }) + return + } + reqJson, err := json.Marshal(req) if err != nil { log.Println(err) diff --git a/models/jadwal/jadwal_libur.go b/models/jadwal/jadwal_libur.go new file mode 100644 index 0000000..cdce49b --- /dev/null +++ b/models/jadwal/jadwal_libur.go @@ -0,0 +1,7 @@ +package jadwal + +type DaftarJadwalLiburPelayanan struct { + NamaLiburPelayanan string `gorm:"column:Nama_libur_pelayanan" json:"Nama_libur_pelayanan"` + KeteranganLiburPelayanan string `gorm:"column:Keterangan_libur_pelayanan" json:"Keterangan_libur_pelayanan"` + TanggalLiburPelayanan string `gorm:"column:Tanggal_libur_pelayanan" json:"Tanggal_libur_pelayanan"` +}