retribusi

This commit is contained in:
2025-08-04 09:37:10 +07:00
parent abaddf2589
commit 26765fcc51
10 changed files with 1779 additions and 65 deletions

View File

@@ -0,0 +1,73 @@
package satu_data
import (
"errors"
"log"
"template_blueprint/pkg/models/satu_data"
)
func (s *DatabaseService) GetRetribusi(Limit string, Offset string) ([]*satu_data.Retribusi, error) {
var result []*satu_data.Retribusi
query := `select * from data_retribusi dr limit ? offset ?`
errQuery := s.DB.Debug().Raw(query, Limit, Offset).Scan(&result).Error
if errQuery != nil {
log.Println("errQuery:", errQuery)
return nil, errQuery
}
return result, nil
}
func (s *DatabaseService) InsertRetribusi(data *satu_data.Retribusi) error {
//id := uuid.New()
log.Println("ini data:", data)
//data.ID = id.String()
//log.Println("InsertRetribusi:", data)
query := `insert into data_retribusi ("id", "status", "sort", "user_created", "date_created", "Jenis", "Pelayanan", "Dinas",
"Kelompok_obyek", "Kode_tarif", "Tarif", "Satuan", "Tarif_overtime", "Satuan_overtime",
"Rekening_pokok", "Rekening_denda","Uraian_1", "Uraian_2", "Uraian_3")
values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)`
errQuery := s.DB.Debug().Exec(query, data.ID, data.Status, data.Sort, data.UserCreated, data.DateCreated,
data.Jenis, data.Pelayanan, data.Dinas, data.KelompokObyek,
data.KodeTarif, data.Tarif, data.Satuan, data.TarifOverTime, data.SatuanOverTime, data.RekeningPokok, data.RekeningDenda,
data.Uraian1, data.Uraian2, data.Uraian3).Error
if errQuery != nil {
log.Println(errQuery)
return errors.New("Tidak dapat Simpan data retribusi")
}
return nil
}
func (s *DatabaseService) UpdateRetribusi(data *satu_data.Retribusi) error {
log.Println("update data_retribusi:", data)
query := `update data_retribusi set status=?, sort=?, user_updated=?, date_updated=?, "Jenis"=?, "Pelayanan"=?, "Dinas"=?, "Kelompok_obyek"=?, "Kode_tarif"=?, "Tarif"=?, "Satuan"=?, "Tarif_overtime"=?, "Satuan_overtime"=?, "Rekening_pokok"=?, "Rekening_denda"=?, "Uraian_1"=?, "Uraian_2"=?, "Uraian_3"=? where id=?`
errQuery := s.DB.Debug().Exec(query, data.Status, data.Sort, data.UserUpdated, data.DateUpdated, data.Jenis, data.Pelayanan, data.Dinas, data.KelompokObyek, data.KodeTarif, data.Tarif, data.Satuan, data.TarifOverTime, data.SatuanOverTime, data.RekeningPokok, data.RekeningDenda, data.Uraian1, data.Uraian2, data.Uraian3, data.ID).Error
if errQuery != nil {
log.Println(errQuery)
return errors.New("Tidak dapat ubah data retribusi")
}
return nil
}
func (s *DatabaseService) DeleteRetribusi(id string) error {
query := `delete from data_retribusi where id=?`
errQuery := s.DB.Debug().Exec(query, id).Error
if errQuery != nil {
log.Println(errQuery)
return errors.New("Tidak dapat hapus data retribusi")
}
return nil
}
func (s *DatabaseService) SearchRetribusi(kelompok_obyek string) ([]*satu_data.Retribusi, error) {
//log.Println("search retribusi by:", kelompok_obyek)
var result []*satu_data.Retribusi
query := `select * from data_retribusi where "Kelompok_obyek"=?`
errQuery := s.DB.Debug().Raw(query, kelompok_obyek).Scan(&result).Error
if errQuery != nil {
log.Println(errQuery)
return nil, errors.New("Tidak dapat data retribusi")
}
return result, nil
}

View File

@@ -0,0 +1,205 @@
package retribusi
import (
"github.com/gin-gonic/gin"
"github.com/google/uuid"
"log"
"net/http"
"template_blueprint/internal/database"
//_ "template_blueprint/cmd/api/docs"
//_ "template_blueprint/docs"
_ "template_blueprint/docs"
//_ "template_blueprint/internal/docs"
connDatabase "template_blueprint/pkg/database/satu_data"
"template_blueprint/pkg/models/satu_data"
"time"
)
// GetDataRetribusi return list of all retribution from the database
// @Summary all retribution
// @Description return list of all retribution from the database
// @Param limit path string true "limit"
// @Param offset path string true "offset"
// @Tags Retribusi
// @Success 200 {object} satu_data.Retribusi
// @Router /retribusi/getData/Limit/{limit}/Offset/{offset} [get]
func GetDataRetribusi(c *gin.Context) {
db := database.New().GetDB("satudata")
satudata := connDatabase.NewDatabaseService(db)
limit := c.Param("limit")
offset := c.Param("offset")
log.Println("limit:", limit, ",offset:", offset)
dataRetribusi, err := satudata.GetRetribusi(limit, offset)
if err != nil {
c.JSON(http.StatusBadRequest, gin.H{"message": err.Error()})
return
}
if len(dataRetribusi) == 0 {
//log.Println("data retribusi tidak ditemukan")
c.JSON(http.StatusNotFound, gin.H{"message": "data retribusi tidak ditemukan"})
return
}
c.JSON(http.StatusOK, dataRetribusi)
}
// InsertRetribution godoc
// @Summary Create retribution
// @Description Save retribution data in DB
// @Param data body satu_data.Retribusi true "data Retribusi"
// @Produce application/json
// @Tags Retribusi
// @Success 200 {object} map[string]string "Data Berhasil disimpan"
// @Router /retribusi/insertretribusi [post]
func InsertRetribution(c *gin.Context) {
db := database.New().GetDB("satudata")
satudata := connDatabase.NewDatabaseService(db)
var request *satu_data.Retribusi
err := c.Bind(&request)
if err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
ID := uuid.New().String()
timeNow := time.Now().Format("2006-01-02 15:04:05")
reqInsert := &satu_data.Retribusi{
ID: ID,
Status: request.Status,
Sort: request.Sort,
UserCreated: request.UserCreated,
DateCreated: timeNow,
Jenis: request.Jenis,
Pelayanan: request.Pelayanan,
Dinas: request.Dinas,
KelompokObyek: request.KelompokObyek,
KodeTarif: request.KodeTarif,
Tarif: request.Tarif,
Satuan: request.Satuan,
TarifOverTime: request.TarifOverTime,
SatuanOverTime: request.SatuanOverTime,
RekeningPokok: request.RekeningPokok,
RekeningDenda: request.RekeningDenda,
Uraian1: request.Uraian1,
Uraian2: request.Uraian2,
Uraian3: request.Uraian3,
}
//log.Println("request:", request)
//fmt.Println(reflect.TypeOf(reqInsert))
errInsertData := satudata.InsertRetribusi(reqInsert)
if errInsertData != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": errInsertData.Error()})
return
}
c.JSON(http.StatusCreated, gin.H{"message": "Data Berhasil disimpan"})
}
// UpdateRetribution godoc
// @Summary Update retribution
// @Description Change retribution data in DB
// @Param data body satu_data.Retribusi true "data Retribusi"
// @Produce application/json
// @Tags Retribusi
// @Success 200 {object} map[string]string "Data Berhasil Diubah"
// @Router /retribusi/updateretribusi [put]
func UpdateRetribution(c *gin.Context) {
db := database.New().GetDB("satudata")
satudata := connDatabase.NewDatabaseService(db)
var request *satu_data.Retribusi
err := c.Bind(&request)
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return
}
timeNow := time.Now().Format("2006-01-02 15:04:05")
reqUpdate := &satu_data.Retribusi{
ID: request.ID,
Status: request.Status,
Sort: request.Sort,
UserUpdated: request.UserUpdated,
DateUpdated: timeNow,
Jenis: request.Jenis,
Pelayanan: request.Pelayanan,
Dinas: request.Dinas,
KelompokObyek: request.KelompokObyek,
KodeTarif: request.KodeTarif,
Tarif: request.Tarif,
Satuan: request.Satuan,
TarifOverTime: request.TarifOverTime,
SatuanOverTime: request.SatuanOverTime,
RekeningPokok: request.RekeningPokok,
RekeningDenda: request.RekeningDenda,
Uraian1: request.Uraian1,
Uraian2: request.Uraian2,
Uraian3: request.Uraian3,
}
errUpdateData := satudata.UpdateRetribusi(reqUpdate)
if errUpdateData != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": errUpdateData.Error()})
return
}
c.JSON(http.StatusOK, gin.H{"message": "Data Berhasil Diubah", "data": reqUpdate})
}
// DeleteDataRetribusi godoc
// @Summary Delete retribution
// @Description Remove retribution data by id
// @Param ID path string true "ID"
// @Produce application/json
// @Tags Retribusi
// @Success 200 {object} map[string]string "Data Berhasil dihapus"
// @Router /retribusi/deleteretribusi/{ID} [delete]
func DeleteDataRetribusi(c *gin.Context) {
db := database.New().GetDB("satudata")
satudata := connDatabase.NewDatabaseService(db)
//var request *satu_data.Retribusi
ID := c.Param("id")
//err := c.Bind(&request)
//if err != nil {
// c.JSON(http.StatusInternalServerError, gin.H{"message": err.Error})
// return
//}
errDelete := satudata.DeleteRetribusi(ID)
if errDelete != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": error.Error})
return
}
c.JSON(http.StatusOK, gin.H{"message": "Data Berhasil dihapus"})
}
// SearchDataRetribusi godoc
// @Summary Search retribution
// @Description search retribution data by id
// @Param Kelompok_obyek path string true "Kelompok_obyek"
// @Produce application/json
// @Tags Retribusi
// @Success 200 {object} satu_data.Retribusi
// @Router /retribusi/searchData/{kelompok_obyek} [get]
func SearchDataRetribusi(c *gin.Context) {
db := database.New().GetDB("satudata")
satudata := connDatabase.NewDatabaseService(db)
Kelompok_obyek := c.Param("kelompok_obyek")
//log.Println("Kelompok_obyek :", Kelompok_obyek)
dataRetribusi, err := satudata.SearchRetribusi(Kelompok_obyek)
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return
}
if len(dataRetribusi) == 0 {
//log.Println("data retribusi tidak ditemukan")
c.JSON(http.StatusNotFound, gin.H{"message": "data retribusi tidak ditemukan"})
return
}
c.JSON(http.StatusOK, dataRetribusi)
}

View File

@@ -0,0 +1,25 @@
package satu_data
type Retribusi struct {
ID string `gorm:"column:id" json:"id"`
Status string `gorm:"column:status" json:"status"`
Sort int `gorm:"column:sort" json:"sort"`
UserCreated string `gorm:"column:user_created" json:"user_created"`
DateCreated string `gorm:"column:date_created" json:"date_created"`
UserUpdated string `gorm:"column:user_updated" json:"user_updated"`
DateUpdated string `gorm:"column:date_updated" json:"date_updated"`
Jenis string `gorm:"column:Jenis" json:"Jenis"`
Pelayanan string `gorm:"column:Pelayanan" json:"Pelayanan"`
Dinas string `gorm:"column:Dinas" json:"Dinas"`
KelompokObyek string `gorm:"column:Kelompok_obyek" json:"Kelompok_obyek"`
KodeTarif string `gorm:"column:Kode_tarif" json:"Kode_tarif"`
Tarif string `gorm:"column:Tarif" json:"Tarif"`
Satuan string `gorm:"column:Satuan" json:"Satuan"`
TarifOverTime string `gorm:"column:Tarif_overtime" json:"Tarif_overtime"`
SatuanOverTime string `gorm:"column:Satuan_overtime" json:"Satuan_overtime"`
RekeningPokok string `gorm:"column:Rekening_pokok" json:"Rekening_pokok"`
RekeningDenda string `gorm:"column:Rekening_denda" json:"Rekening_denda"`
Uraian1 string `gorm:"column:Uraian_1" json:"Uraian_1"`
Uraian2 string `gorm:"column:Uraian_2" json:"Uraian_2"`
Uraian3 string `gorm:"column:Uraian_3" json:"Uraian_3"`
}