Files
api-retribusi/pkg/database/simrs/data_retribusi.go
2025-06-19 12:53:42 +07:00

147 lines
4.3 KiB
Go

package databaserepo
import (
"api-lis/pkg/models/satudata"
satudata_models "api-lis/pkg/models/satudata"
"errors"
"gorm.io/gorm"
"log"
)
func (s *DatabaseService) Insertdataretribusi(req *satudata_models.DataRetribusiInsert) error {
query := `insert into data_retribusi ("id", "status", "Jenis" ,"Pelayanan", "Dinas" , "Kelompok_obyek", "Kode_tarif", "Uraian_1", "Uraian_2", "Uraian_3", "Tarif", "Satuan" ,"Tarif_overtime" , "Satuan_overtime", "Rekening_pokok","Rekening_denda")values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)`
errQuery := s.DB.Debug().Exec(query,
req.ID,
req.Status,
req.Jenisretribusi,
req.Pelayananretribusi,
req.Dinas,
req.Kelompokobyek,
req.Kodetarif,
req.Uraian1,
req.Uraian2,
req.Uraian3,
req.Tarif,
req.Satuan,
req.Tarifovertime,
req.Satuanovertime,
req.Rekeningpokok,
req.Rekeningdenda,
).Error
if errQuery != nil {
log.Println(errQuery)
return errQuery
}
return nil
}
func (s *DatabaseService) GetAlldataretribusi(Limit, Offset string) ([]*satudata_models.DataRetribusiGetAll, error) {
var dataallretribusi []*satudata.DataRetribusiGetAll
query := `select * from data_retribusi LIMIT ? Offset ? `
errQuery := s.DB.Debug().Raw(query, Limit, Offset).Scan(&dataallretribusi).Error
if errQuery != nil {
if errors.Is(errQuery, gorm.ErrRecordNotFound) {
errMsg := errors.New("Data Tidak Ditemukan")
log.Println(errMsg)
return nil, errMsg
}
log.Println(errQuery)
return nil, errQuery
}
return dataallretribusi, nil
}
/* *todo get data by kode tarif*/
func (s *DatabaseService) Getdataretribusi(Kodetarif string) ([]*satudata_models.DataRetribusiGet, error) {
var dataretribusi []*satudata.DataRetribusiGet
query := `select * from data_retribusi where "Kode_tarif" = ? `
errQuery := s.DB.Debug().Raw(query, Kodetarif).Scan(&dataretribusi).Error
if errQuery != nil {
if errors.Is(errQuery, gorm.ErrRecordNotFound) {
errMsg := errors.New("Data Tidak Ditemukan")
log.Println(errMsg)
return nil, errMsg
}
log.Println(errQuery)
return nil, errQuery
}
return dataretribusi, nil
}
/* *todo get data by kelompok obyek*/
func (s *DatabaseService) GetdataretribusibyKelompok(kel string) ([]*satudata_models.DataRetribusiGet, error) {
var dataretribusi []*satudata.DataRetribusiGet
query := `select * from data_retribusi where "Kelompok_obyek" = ? `
errQuery := s.DB.Debug().Raw(query, kel).Scan(&dataretribusi).Error
if errQuery != nil {
if errors.Is(errQuery, gorm.ErrRecordNotFound) {
errMsg := errors.New("Data Tidak Ditemukan")
log.Println(errMsg)
return nil, errMsg
}
log.Println(errQuery)
return nil, errQuery
}
return dataretribusi, nil
}
/* *todo get data kelompok obyek*/
func (s *DatabaseService) Validasikelompok(kel string) (bool, error) {
var count int
query := `SELECT COUNT(DISTINCT "Kelompok_obyek") FROM data_retribusi WHERE "Kelompok_obyek" = ?`
errQuery := s.DB.Debug().Raw(query, kel).Scan(&count).Error
if errQuery != nil {
log.Println(errQuery)
return false, errQuery
}
return count > 0, nil
}
func (s *DatabaseService) Validasikode(kodetarif string) (bool, error) {
var count int
query := `SELECT COUNT(DISTINCT "Kode_tarif") FROM data_retribusi WHERE "Kode_tarif" = ?`
errQuery := s.DB.Debug().Raw(query, kodetarif).Scan(&count).Error
if errQuery != nil {
log.Println(errQuery)
return false, errQuery
}
return count > 0, nil
}
func (s *DatabaseService) Putdataretribusi(req *satudata_models.DataRetribusiPut) error {
query := ` update data_retribusi set "status" = ?,"Jenis"=?,"Pelayanan" = ?,"Dinas"=?,"Kelompok_obyek"=? ,"Kode_tarif"=? ,"Uraian_1"=? ,"Uraian_2"=? ,"Uraian_3"=? ,"Tarif"=? ,"Satuan"=?,"Tarif_overtime"=?,"Satuan_overtime"=? ,"Rekening_pokok"=? ,"Rekening_denda"=? where "id" = ? `
errUpdate := s.DB.Debug().Exec(query,
req.Status,
req.Jenisretribusi,
req.Pelayananretribusi,
req.Dinas,
req.Kelompokobyek,
req.Kodetarif,
req.Uraian1,
req.Uraian2,
req.Uraian3,
req.Tarif,
req.Satuan,
req.Tarifovertime,
req.Satuanovertime,
req.Rekeningpokok,
req.Rekeningdenda,
req.ID,
).Error
if errUpdate != nil {
log.Println(errUpdate)
return errUpdate
}
return nil
}
func (s *DatabaseService) Deletedataretribusi(ID string) error {
query := `delete from data_retribusi where "id" = ? `
errDelete := s.DB.Debug().Exec(query, ID).Error
if errDelete != nil {
log.Println(errDelete)
return errDelete
}
return nil
}