antrean tes
This commit is contained in:
@@ -0,0 +1,134 @@
|
||||
package satu_data
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"log"
|
||||
"template_blueprint/pkg/models/antrean"
|
||||
)
|
||||
|
||||
func (s *DatabaseService) GetKios(ID int) ([]*antrean.Antrean, error) {
|
||||
var result []*antrean.Antrean
|
||||
query := `SELECT k."id", k."name" ,k.active ,k.icon , k.url , k.fk_ref_healthcare_type_id , r."name" as refnamehealth, k.fk_ref_service_type_id ,
|
||||
rpt."name" as refnamepayment , k.fk_sd_location_id ,k.ds_sd_location
|
||||
FROM master.ms_kiosk k
|
||||
JOIN master.ms_kiosk_healthcare_service h ON k.fk_ref_healthcare_type_id = h.id
|
||||
JOIN reference.ref_healthcare_type r ON h.fk_ms_healthcare_service_id = r.id
|
||||
left join master.ms_kiosk_payment_type p on k.fk_ref_service_type_id = p.id
|
||||
left join reference.ref_payment_type rpt on p.fk_ref_payment_type_id = rpt.id
|
||||
where k.id = ?`
|
||||
errQuery := s.DB.Debug().Raw(query, ID).Scan(&result).Error
|
||||
if errQuery != nil {
|
||||
log.Println("errQuery:", errQuery)
|
||||
return nil, errQuery
|
||||
}
|
||||
return result, nil
|
||||
}
|
||||
|
||||
func (s *DatabaseService) InsertKiosk(data *antrean.KioskData) error {
|
||||
log.Println("InsertKiosk data:", data)
|
||||
|
||||
queryKiosk := `INSERT INTO master.ms_kiosk ("name", active, icon, url, fk_ref_healthcare_type_id,
|
||||
fk_ref_service_type_id, fk_sd_location_id, ds_sd_location)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
||||
RETURNING id`
|
||||
|
||||
var newKioskID int64
|
||||
err := s.DB.Raw(queryKiosk, data.Name, data.Active, data.Icon, data.URL,
|
||||
data.FKRefHealthcareTypeID, data.FKRefServiceTypeID,
|
||||
data.FKSDLocationID, data.DSSDLocation).
|
||||
Scan(&newKioskID).Error
|
||||
|
||||
if err != nil {
|
||||
log.Println("Error insert ms_kiosk:", err)
|
||||
return errors.New("Gagal menyimpan data kiosk")
|
||||
}
|
||||
|
||||
log.Println("New kiosk ID:", newKioskID)
|
||||
|
||||
if data.HealthcareServiceData != nil {
|
||||
queryHealthcare := `INSERT INTO master.ms_kiosk_healthcare_service
|
||||
(fk_ms_kiosk_id, fk_ms_healthcare_service_id)
|
||||
VALUES (?, ?)`
|
||||
|
||||
errHC := s.DB.Exec(queryHealthcare, newKioskID, data.HealthcareServiceData.FKMSHealthcareServiceID).Error
|
||||
if errHC != nil {
|
||||
log.Println("Error insert healthcare service:", errHC)
|
||||
return errors.New("Gagal menyimpan data healthcare service")
|
||||
}
|
||||
}
|
||||
|
||||
if data.PaymentTypeData != nil {
|
||||
queryPayment := `INSERT INTO master.ms_kiosk_payment_type
|
||||
(fk_ms_kiosk_id, fk_ref_payment_type_id)
|
||||
VALUES (?, ?)`
|
||||
|
||||
errPT := s.DB.Exec(queryPayment, newKioskID, data.PaymentTypeData.FKRefPaymentTypeID).Error
|
||||
if errPT != nil {
|
||||
log.Println("Error insert payment type:", errPT)
|
||||
return errors.New("Gagal menyimpan data payment type")
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *DatabaseService) UpdateKiosk(id string, data *antrean.KioskData) error {
|
||||
log.Println("UpdateKiosk ID:", id, "data:", data)
|
||||
|
||||
queryKiosk := `UPDATE master.ms_kiosk
|
||||
SET name = ?, active = ?, icon = ?, url = ?,
|
||||
fk_ref_healthcare_type_id = ?, fk_ref_service_type_id = ?,
|
||||
fk_sd_location_id = ?, ds_sd_location = ?
|
||||
WHERE id = ?`
|
||||
|
||||
err := s.DB.Exec(queryKiosk, data.Name, data.Active, data.Icon, data.URL,
|
||||
data.FKRefHealthcareTypeID, data.FKRefServiceTypeID,
|
||||
data.FKSDLocationID, data.DSSDLocation, id).Error
|
||||
if err != nil {
|
||||
log.Println("Error update ms_kiosk:", err)
|
||||
return errors.New("Gagal update data kiosk")
|
||||
}
|
||||
|
||||
if data.HealthcareServiceData != nil {
|
||||
queryHealthcare := `UPDATE master.ms_kiosk_healthcare_service
|
||||
SET fk_ms_healthcare_service_id = ?
|
||||
WHERE fk_ms_kiosk_id = ?`
|
||||
errHC := s.DB.Exec(queryHealthcare, data.HealthcareServiceData.FKMSHealthcareServiceID, id).Error
|
||||
if errHC != nil {
|
||||
log.Println("Error update healthcare service:", errHC)
|
||||
return errors.New("Gagal update data healthcare service")
|
||||
}
|
||||
}
|
||||
|
||||
if data.PaymentTypeData != nil {
|
||||
queryPayment := `UPDATE master.ms_kiosk_payment_type
|
||||
SET fk_ref_payment_type_id = ?
|
||||
WHERE fk_ms_kiosk_id = ?`
|
||||
errPT := s.DB.Exec(queryPayment, data.PaymentTypeData.FKRefPaymentTypeID, id).Error
|
||||
if errPT != nil {
|
||||
log.Println("Error update payment type:", errPT)
|
||||
return errors.New("Gagal update data payment type")
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *DatabaseService) DeleteKiosk(id int64) error {
|
||||
err := s.DB.Exec(`DELETE FROM master.ms_kiosk_healthcare_service WHERE fk_ms_kiosk_id = ?`, id).Error
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = s.DB.Exec(`DELETE FROM master.ms_kiosk_payment_type WHERE fk_ms_kiosk_id = ?`, id).Error
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = s.DB.Exec(`DELETE FROM master.ms_kiosk WHERE id = ?`, id).Error
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user