update status -> updating nomor antrian
This commit is contained in:
@@ -403,22 +403,25 @@ func (r antrianOperasiRepo) SearchableListAntrianOperasi(c context.Context, q An
|
||||
},
|
||||
}
|
||||
|
||||
var resultDiagnosa []DiagnosaOperasiModel
|
||||
err = r.queryBuilder.ExecuteQuery(c, dbconn, queryDiagnosa, &resultDiagnosa)
|
||||
if err != nil {
|
||||
log.Printf("Unable to execute query diagnosa : %s", err)
|
||||
return result, err
|
||||
}
|
||||
// if query id specified, no need to attach support data
|
||||
if q.Id == "" {
|
||||
var resultDiagnosa []DiagnosaOperasiModel
|
||||
err = r.queryBuilder.ExecuteQuery(c, dbconn, queryDiagnosa, &resultDiagnosa)
|
||||
if err != nil {
|
||||
log.Printf("Unable to execute query diagnosa : %s", err)
|
||||
return result, err
|
||||
}
|
||||
|
||||
// attach support data to parent
|
||||
shared.MapChildToParent(
|
||||
result.Data, resultDiagnosa,
|
||||
func(o *PasienOperasi) string { return o.ID },
|
||||
func(d DiagnosaOperasiModel) string { return d.AntrianId },
|
||||
func(o *PasienOperasi, d DiagnosaOperasiModel) {
|
||||
o.Diagnosa = append(o.Diagnosa, d.Diagnosa.String)
|
||||
},
|
||||
)
|
||||
// attach support data to parent
|
||||
shared.MapChildToParent(
|
||||
result.Data, resultDiagnosa,
|
||||
func(o *PasienOperasi) string { return o.ID },
|
||||
func(d DiagnosaOperasiModel) string { return d.AntrianId },
|
||||
func(o *PasienOperasi, d DiagnosaOperasiModel) {
|
||||
o.Diagnosa = append(o.Diagnosa, d.Diagnosa.String)
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
return result, nil
|
||||
}
|
||||
@@ -723,6 +726,14 @@ func (r antrianOperasiRepo) UpdateAntrianOperasi(c context.Context, id string, r
|
||||
}
|
||||
|
||||
func (r antrianOperasiRepo) UpdateStatusAntrianOperasi(c context.Context, id string, req StatusPasienRequest) (StatusPasienRequest, error) {
|
||||
// get nomor antrian by antrian id
|
||||
q := AntrianQuery{Id: id}
|
||||
resultAntrian, err := r.SearchableListAntrianOperasi(c, q)
|
||||
if err != nil {
|
||||
return req, err
|
||||
}
|
||||
selectedAntrian := resultAntrian.Data[0]
|
||||
|
||||
// Update main table
|
||||
updateMainQuery := queryUtils.UpdateData{
|
||||
Columns: []string{
|
||||
@@ -734,8 +745,11 @@ func (r antrianOperasiRepo) UpdateStatusAntrianOperasi(c context.Context, id str
|
||||
}
|
||||
|
||||
if req.StatusOperasi == "2" {
|
||||
updateMainQuery.Columns = append(updateMainQuery.Columns, "\"Tanggal_selesai_operasi\"")
|
||||
updateMainQuery.Values = append(updateMainQuery.Values, req.TglSelesai)
|
||||
addedColumns := []string{"\"Tanggal_selesai_operasi\"", "\"Nomor\"", "\"Nomor_spesialis\"", "\"Nomor_sub_spesialis\""}
|
||||
addedValues := []interface{}{req.TglSelesai, selectedAntrian.NoUrutKategori, selectedAntrian.NoUrutSpesialis, selectedAntrian.NoUrutSubSpesialis}
|
||||
|
||||
updateMainQuery.Columns = append(updateMainQuery.Columns, addedColumns...)
|
||||
updateMainQuery.Values = append(updateMainQuery.Values, addedValues...)
|
||||
}
|
||||
|
||||
filters := []queryUtils.FilterGroup{
|
||||
@@ -1153,25 +1167,36 @@ func (r antrianOperasiRepo) fixingListAntrian(c context.Context, dbconn *sqlx.DB
|
||||
selectFilterCount = append(selectFilterCount, queryUtils.DynamicFilter{Column: "dpo.Status_operasi", Operator: queryUtils.OpEqual, Value: q.Status})
|
||||
}
|
||||
|
||||
// search by id antrian. removing all filters
|
||||
if q.Id != "" {
|
||||
selectFilter = []queryUtils.DynamicFilter{} // reset select filter
|
||||
selectFilterCount = []queryUtils.DynamicFilter{} // reset select filter count
|
||||
|
||||
selectFilter = append(selectFilter, queryUtils.DynamicFilter{Column: "id", Operator: queryUtils.OpEqual, Value: q.Id})
|
||||
}
|
||||
|
||||
// wiring all select filter
|
||||
query.Filters = append(query.Filters, queryUtils.FilterGroup{Filters: selectFilter, LogicOp: "AND"})
|
||||
queryCount.Filters = append(queryCount.Filters, queryUtils.FilterGroup{Filters: selectFilterCount, LogicOp: "AND"})
|
||||
|
||||
countData, err := r.queryBuilder.ExecuteCount(c, dbconn, queryCount)
|
||||
if err != nil {
|
||||
log.Printf("Unable to execute query count : %s ", err)
|
||||
return result, err
|
||||
// skipping count data if query id specified
|
||||
if q.Id == "" {
|
||||
countData, err := r.queryBuilder.ExecuteCount(c, dbconn, queryCount)
|
||||
if err != nil {
|
||||
log.Printf("Unable to execute query count : %s ", err)
|
||||
return result, err
|
||||
}
|
||||
result.Paging.Limit = q.Limit
|
||||
result.Paging.Offset = q.Offset
|
||||
result.Paging.Total = int(countData)
|
||||
result.Paging.CalculatePagingInfo()
|
||||
}
|
||||
result.Paging.Limit = q.Limit
|
||||
result.Paging.Offset = q.Offset
|
||||
result.Paging.Total = int(countData)
|
||||
result.Paging.CalculatePagingInfo()
|
||||
|
||||
// query data
|
||||
queryData := query
|
||||
queryData.Limit = q.Limit
|
||||
queryData.Offset = q.Offset
|
||||
err = r.queryBuilder.ExecuteQuery(
|
||||
err := r.queryBuilder.ExecuteQuery(
|
||||
c, dbconn, queryData, &result.Data)
|
||||
if err != nil {
|
||||
log.Printf("Unable to execute query data : %s", err)
|
||||
|
||||
@@ -62,6 +62,7 @@ type CreatePasienOperasiRequest struct {
|
||||
}
|
||||
|
||||
type AntrianQuery struct {
|
||||
Id string `form:"id"`
|
||||
Search string `form:"search"`
|
||||
Type string `form:"type,default=all" binding:"omitempty,oneof=all kategori spesialis sub-spesialis"`
|
||||
TypeID int `form:"type_id,default=0"`
|
||||
|
||||
Reference in New Issue
Block a user