Files
FE_CPONE/test/vuex/one-fo-registration-walk-in/components/oneFoRegistrationDetailOrder.vue
2026-04-27 10:13:31 +07:00

342 lines
11 KiB
Vue

<template>
<v-layout column pb-2>
<!--<one-fo-registration-patient-order></one-fo-registration-patient-order>-->
<v-flex xs12>
<v-card>
<v-layout row>
<v-flex md6>
<v-layout row pl-2>
<v-flex md5>
<div class="font-weight-bold text-fajrihm">No Reg</div>
</v-flex>
<v-flex md7>
<div class="font-weight-regular text-fajrihm text-md-right">{{ selected_order.order_no }}</div>
</v-flex>
</v-layout>
<v-layout row pl-2>
<v-flex md5>
<div class="font-weight-bold text-fajrihm">Tangal Periksa</div>
</v-flex>
<v-flex md7>
<div class="font-weight-regular text-fajrihm text-md-right">{{ selected_order.order_date }}</div>
</v-flex>
</v-layout>
</v-flex>
<v-flex md6>
<v-layout row pl-2>
<v-flex md5>
<div class="font-weight-bold text-fajrihm">PID</div>
</v-flex>
<v-flex md7>
<div class="font-weight-regular text-fajrihm text-md-right">{{ selected_order.patient_mr }}</div>
</v-flex>
</v-layout>
<v-layout row pl-2>
<v-flex md5>
<div class="font-weight-bold text-fajrihm">Nama Pasien</div>
</v-flex>
<v-flex md7>
<div class="font-weight-regular text-fajrihm text-md-right">{{ selected_order.patient_name }}</div>
</v-flex>
</v-layout>
</v-flex>
</v-layout>
<v-layout row>
<v-flex md6>
<v-layout row pl-2>
<v-flex md5>
<div class="font-weight-bold text-fajrihm">Kel. Pelanggan</div>
</v-flex>
<v-flex md7>
<div class="font-weight-regular text-fajrihm text-md-right">{{ selected_order.order_company }}</div>
</v-flex>
</v-layout>
</v-flex>
<v-flex md6>
<v-layout row pl-2>
<v-flex md5>
<div class="font-weight-bold text-fajrihm">Agreement</div>
</v-flex>
<v-flex md7>
<div class="font-weight-regular text-fajrihm text-md-right">{{ selected_order.order_mou }}</div>
</v-flex>
</v-layout>
</v-flex>
</v-layout>
<v-layout row mb-2>
<v-flex md6>
<v-layout row pl-2>
<v-flex md5>
<div class="font-weight-bold text-fajrihm">Pengirim</div>
</v-flex>
<v-flex md7>
<div class="font-weight-regular text-fajrihm text-md-right">{{ selected_order.doctor_sender }}</div>
</v-flex>
</v-layout>
</v-flex>
<v-flex md6>
<v-layout row pl-2>
<v-flex md5>
<div class="font-weight-bold text-fajrihm">Alamat Pengirim</div>
</v-flex>
<v-flex md7>
<div class="font-weight-regular text-fajrihm text-md-right">{{ selected_order.doctor_sender_address }}</div>
</v-flex>
</v-layout>
</v-flex>
</v-layout>
<v-layout style="border-top:1px dashed rgb(221,221,221)" row mt-1 mb-1></v-layout>
<v-layout row mb-2 wrap>
<v-flex v-for="(dlv, n) in order_delivery" xs6 v-bind:key="n">
<v-layout row wrap pl-2>
<v-flex xs12 class="text-delivery text-xs-right">
<p class="mb-1">{{ dlv.label }} : {{ dlv.description }}</p>
<p class="mb-1 mono red--text caption">catatan : <span v-if="dlv.note === ''">-</span> <span v-if="dlv.note !== ''">{{ dlv.note }}</span></p>
</v-flex>
</v-layout>
</v-flex>
</v-layout>
<v-layout row mb-2 wrap>
<v-flex xs12>
<v-layout row wrap pl-2>
<v-flex xs12>
<div class="font-weight-bold text-fajrihm">Janji Hasil</div>
</v-flex>
</v-layout>
<v-layout row wrap pl-2>
<v-flex xs12 v-for="p in promises" >
<div class="font-weight-bold text-fajrihm">{{ p.T_OrderPromiseDateTime_ina }}</div>
</v-flex>
</v-layout>
</v-flex>
</v-layout>
<v-layout style="border-top:1px dashed rgb(221,221,221)" row mt-1 mb-1></v-layout>
<v-layout row pa-2>
<v-flex xs12>
<table>
<tr style="background:#ffeaa5">
<th style="width:42%;font-weight:bold;font-size:12px;" class="text-md-center pt-2 pb-2">PEMERIKSAAN</th>
<th style="width:12%;font-weight:bold;font-size:12px;" class="text-md-center pt-2 pb-2">BRUTO</th>
<th style="width:12%;font-weight:bold;font-size:12px;" class="text-md-center pt-2 pb-2">DISKON</th>
<th style="width:12%;font-weight:bold;font-size:12px;" class="text-md-center pt-2 pb-2">TOTAL</th>
</tr>
<tr style="font-size:12px" v-for="t in selected_test" v-bind:key="t.T_OrderDetailID">
<td class="text-md-left pl-3">
<p class="mb-1">{{ t.T_OrderDetailT_TestName}}</p>
<!----<p class="mb-0 caption" v-show="child_test_show(t)">{{child_test(t.child_test)}}</p>-->
</td>
<td class="text-md-right mono pr-2">{{ one_money(t.T_OrderDetailPrice) }}</td>
<td class="text-md-right mono pr-2">{{ one_money(t.T_OrderDetailDiscTotal) }}</td>
<td class="text-md-right mono font-weight-black pr-2">{{ one_money(t.T_OrderDetailTotal) }}</td>
</tr>
<!--/ TEST PANEL -->
<tfoot>
<tr>
<th style="background:#e16262;color:#fff" class="text-md-left pl-3 pt-2 pb-2">TOTAL</th>
<th style="background:#e16262;color:#fff" class="text-md-right pr-2 pt-2 pb-2">{{ one_money(bruto_total) }}</th>
<th style="background:#e16262;color:#fff" class="text-md-right pr-2 pt-2 pb-2">{{ one_money(diskon_total) }}</th>
<th style="background:#e16262;color:#fff" class="text-md-right pr-2 pt-2 pb-2" >{{ one_money(sub_total) }}</th>
</tr>
</tfoot>
</table>
</v-flex>
</v-layout>
<v-layout style="border-top:1px dashed rgb(221,221,221)" row mt-2 mb-2></v-layout>
</v-card>
</v-flex>
</v-layout>
</template>
<style scoped>
.v-input--selection-controls {
margin-top: 0px;
padding-top: 0px;
}
.text-fajrihm{
padding: 3px 20px 3px 0;
text-align:left;
font-size: 13px;
font-family: open sans, tahoma, sans-serif;
}
.label-delivery{
font-size: 11px;
padding: 3px 20px 3px 0;
font-family: open sans, tahoma, sans-serif;
}
.text-delivery{
font-size: 12px;
padding: 3px 20px 3px 0;
font-family: open sans, tahoma, sans-serif;
}
.nota {
font-size: 2em;
font-weight: bold;
text-align: left;
}
.total {
min-height:76px;
}
table {
font-family: arial, sans-serif;
border-collapse: collapse;
width: 100%;
background:white;
border: 0px;
}
th, td {
border: 1px solid black;
border-collapse: collapse;
padding-top: 2px;
padding-bottom: 2px;
}
table>tr>td {
padding: 8px;
}
table>tr>td:first {
padding-left:15px!important;
}
.nota {
font-size: 2em;
font-weight: bold;
text-align: left;
}
.total {
min-height:76px;
}
table {
font-family: arial, sans-serif;
border-collapse: collapse;
width: 100%;
background:white;
border: 0px;
}
th, td {
border: 1px solid black;
border-collapse: collapse;
padding-top: 2px;
padding-bottom: 2px;
}
table>tr>td {
padding: 8px;
}
table>tr>td:first {
padding-left:15px!important;
}
.vintage-text{
text-shadow: 0px -2px 0px #fff, 0px 2px 3px #fff;
}
</style>
<script>
module.exports = {
computed: {
promises() {
return this.$store.state.payment.promises
},
selected_order() {
return this.$store.state.patient.selected_patient
},
order_delivery() {
var dlvr = this.$store.state.payment.order_delivery
return dlvr
},
selected_test() {
return this.$store.state.payment.order_detail
},
selected_panel() {
return this.$store.state.px.selected_panel
},
discount_pembulatan() {
//sipe : set to 0
return 0
},
grand_total() {
return this.sub_total
},
sub_total() {
let tests = this.selected_test
sub_total = 0
tests.forEach(function(t,idx) {
let price = parseInt(t.T_OrderDetailTotal)
sub_total += price
})
return sub_total
},
bruto_total() {
let tests = this.selected_test
bruto_total = 0
tests.forEach(function(t,idx) {
//console.log(t.T_PriceAmount)
bruto_total += parseInt(t.T_OrderDetailPrice)
//console.log(bruto_total)
})
return bruto_total
},
diskon_total() {
let tests = this.selected_test
diskon_total = 0
tests.forEach(function(t,idx) {
let price = parseInt(t.T_OrderDetailDiscTotal)
diskon_total += price
})
return diskon_total
},
},
methods : {
one_money(p) {
return window.one_money(p)
},
child_test(x) {
let y = []
for (let i in x)
y.push(x[i].T_TestName)
return y.join(', ')
},
child_test_show(t) {
if (!t.child_test)
return false
if (t.child_test.length < 1)
return false
if (t.px_type != 'PN')
return false
return true
},
calc_netto(t) {
return one_float(t.T_PriceAmount) - one_float(t.T_PriceDisc) / 100 * one_float(t.T_PriceAmount)
- one_float(t.T_PriceDiscRp)
},
calc_discount(t) {
return ( one_float(t.T_PriceDisc) / 100 * one_float(t.T_PriceAmount) )
+ one_float(t.T_PriceDiscRp)
},
}
}
</script>