<template>
    <v-layout class="mb-2" column>
        <v-dialog v-model="dialogconfirmationdelete" persistent max-width="290">
            <v-card>
                <v-card-title dark class="headline error pt-2 pb-2" primary-title style="color:white">
                    <h4 dark>Konfirmasi</h4>
                </v-card-title>
                <v-card-text>
                    {{msgconfirmationdelete}}
                </v-card-text>
                <v-card-actions>
                    <v-spacer></v-spacer>
                    <v-btn small color="error darken-1 text-sm-left" flat @click="doDeleteTrx()">Hapus</v-btn>
                    <v-btn small color="primary darken-1 text-sm-right" flat @click="dialogconfirmationdelete = false">Batal</v-btn>
                </v-card-actions>
            </v-card>
        </v-dialog>
        <v-dialog v-model="xdialogaction" persistent max-width="350">
            <v-card>
                <v-card-title color="warning" class="headline">Konfirmasi</v-card-title>
                <v-card-text v-html="xmsgaction">

                </v-card-text>
                <v-card-actions>
                    <v-spacer></v-spacer>
                    <v-btn color="primary darken-1" flat @click="closeDialogAction()">Ya</v-btn>
                    <v-btn color="error darken-1" flat @click="xdialogaction = false">Tutup</v-btn>
                </v-card-actions>
            </v-card>
        </v-dialog>
        <v-dialog v-model="dialogformdp" persistent max-width="650">
            <v-card>
                <v-card-title>
                    <span class="headline">Form Uang Muka</span>
                </v-card-title>
                <v-card-text class="pt-0 pb-0">
                    <v-layout wrap>
                        <v-flex xs12>
                            <v-autocomplete label="Nomor Order" v-model="xnoorder" :items="xnoorders" :search-input.sync="search_noorder" auto-select-first
                                no-filter item-text="T_ReceiveReferenceHeaderNumber" return-object :loading="isLoading" no-data-text="Pilih No Order">
                                <template slot="item" slot-scope="{ item }">
                                    <v-list-tile-content>
                                        <v-list-tile-title v-text="item.T_ReceiveReferenceHeaderNumber"></v-list-tile-title>
                                    </v-list-tile-content>
                                </template>
                            </v-autocomplete>
                        </v-flex>
                        <v-flex xs12>
                            <v-text-field v-model="xdp" label="Jumlah Uang Muka"></v-text-field>
                        </v-flex>
                    </v-layout>
                </v-card-text>
                <v-card-actions>
                    <v-spacer></v-spacer>
                    <v-btn color="blue darken-1" flat @click="dialogformdp = false">Tutup</v-btn>
                    <v-btn v-if="xactdp === 'new'" color="blue darken-1" flat @click="saveFormDP()">Simpan</v-btn>
                    <v-btn v-if="xactdp === 'edit'" color="blue darken-1" flat @click="updateFormDP()">Simpan Perubahan</v-btn>
                </v-card-actions>
            </v-card>
        </v-dialog>
        <v-layout row>

            <v-flex xs12>
                <v-card>
                    <v-subheader red--text text--lighten-1> FORM PENERIMAAN DARI KURIR
                        <span v-if="xact !== 'new'"> &nbsp;[ <span style="color:#2196F3;font-weight: 900;">{{xnumbering}}</span>                        ]</span>
                        <span v-if="xact !== 'new' && currStatus === 'CREATED'">
                     <v-btn small @click="receiveFromCourier()" color="primary">TERIMA DARI KURIR</v-btn>
                    </span>
                        <!--
                        <span v-if="xact !== 'new' && currStatus === 'RELEASEC'">
                        <v-btn small @click="receiveCompany()" color="info">DITERIMA LAB PERUJUK</v-btn>
                    </span>
                        <span v-if="xact !== 'new' && currStatus === 'RCVDOC'">
                        <v-btn small @click="receiveFromCourier()" color="primary">TERIMA DARI KURIR</v-btn>
                    </span>
                        <span v-if="xact !== 'new' && currStatus === 'PARTDONE'">
                        <v-btn small @click="forceClose()" color="success">TUTUP TRANSAKSI MANUAL</v-btn>
                    </span>
                    -->
                        <v-flex text-md-right>
                            <v-btn v-if="xact !== 'new' && currStatus === 'CREATED'" @click="deleteTrx()" small color="error">Hapus</v-btn>
                            <v-btn v-if="( xact !== 'new' && currStatus === 'CREATED') || xact === 'new'" @click="saveTrx()" small color="primary">Simpan</v-btn>
                        </v-flex>
                    </v-subheader>
                    <v-divider></v-divider>
                    <v-layout class="pb-2" row wrap>
                        <v-flex xs12 pa-2>
                            <v-layout row>
                                <v-flex xs6 pa-1>
                                    <v-text-field label="Tanggal Transaksi*" placeholder="dd-mm-yyyy" mask="##-##-####" v-model="xtrxdate" :disabled="xact === 'edit' && currStatus !== 'CREATED'"></v-text-field>
                                                    
                                </v-flex>
                                <v-flex pa-1 xs6>
                                    <v-select :search-input.sync="searchCourier" item-text="name" return-object :disabled="xact === 'edit'" :items="xcouriers" v-model="xselectedcourier" label="Kurir" autocomplete></v-select>
                                    <p v-if="checkError('requirecourier')" class="error pl-2 pr-2" style="color:#fff">Yang ngirim siapa dong ?</p>
                                </v-flex>
                            </v-layout>
                            <v-layout row>
                                <v-flex xs12 pa-1>
                                    <v-textarea filled outline label="Catatan" v-model="xnote" rows="3"></v-textarea>
                                </v-flex>
                            </v-layout>
                        </v-flex>
                    </v-layout>
                </v-card>

            <!--
                <v-layout class="pt-2 mb-2" column>
                    <v-card>
                        <v-layout row>
                            <v-flex xs12>
                                <v-subheader red--text text--lighten-1> DETAIL UANG MUKA
                                    <v-flex text-md-right>
                                        <v-btn v-if="( xact == 'new' && currStatus === 'CREATED') || xact === 'new'" @click="createNewDP()" small color="info">Baru</v-btn>
                                    </v-flex>
                                </v-subheader>
                                <v-divider></v-divider>
                                <v-layout row wrap>
                                    <v-flex xs12 pa-2>
                                        <v-layout v-if="xact === 'new'" row>
                                            <v-flex xs12 pa-1>
                                                <v-data-table :headers="headerdp" :items="detaildps" :loading="isLoading" hide-actions class="elevation-1">
                                                    <template slot="items" slot-scope="props">
                                                        <td class="text-xs-left pa-2">{{ props.item.companyname }}</td>
                                                        <td class="text-xs-left pa-2">{{ props.item.ordernumber }}</td>
                                                        <td class="text-xs-center pa-2">{{ props.item.amount }}</td>
                                                        <td class="text-xs-center pa-2">
                                                            <div>
                                                                <v-btn @click="changeActiveDP(props.item)" v-if="props.item.active === 'N'" small color="error">
                                                                    <v-icon left>close</v-icon>
                                                                </v-btn>
                                                                <v-btn @click="changeActiveDP(props.item)" v-if="props.item.active === 'Y'" flat small color="success">
                                                                    <v-icon left>check</v-icon>
                                                                </v-btn>
                                                            </div>
                                                    </template>
                                                </v-data-table>
                                            </v-flex>
                                        </v-layout>
                                        <v-layout v-if="xact !== 'new'" row>
                                            <v-flex xs12 pa-1>
                                                <v-data-table :headers="headerdps" :items="detaildps" :loading="isLoading" hide-actions class="elevation-1">
                                                    <template slot="items" slot-scope="props">
                                                        <td class="text-xs-left pa-2">{{ props.item.companyname }}</td>
                                                        <td class="text-xs-left pa-2">{{ props.item.ordernumber }}</td>
                                                        <td class="text-xs-center pa-2">{{ props.item.amount }}</td>
                                                        <td class="text-xs-center pa-2">
                                                            <div>
                                                                <v-btn @click="changeFlagResultReceiveDP(props.item)" v-if="props.item.active === 'N'" small color="error">
                                                                    <v-icon left>close</v-icon>
                                                                </v-btn>
                                                                <v-btn @click="changeFlagResultReceiveDP(props.item)" v-if="props.item.active === 'Y'" flat small color="success">
                                                                    <v-icon left>check</v-icon>
                                                                </v-btn>
                                                            </div>
                                                    </template>
                                                </v-data-table>
                                            </v-flex>
                                        </v-layout>
                                    </v-flex>
                                </v-layout>
                            </v-flex>
            </v-flex>
            </v-card>

            </v-layout>
            -->

            <v-layout class="pt-2 mb-2" column>
                <v-card>
                    <v-layout row>
                        <v-flex xs12>
                            <v-subheader red--text text--lighten-1> DETAIL TRANSAKSI</v-subheader>
                            <v-divider></v-divider>
                            <v-layout row wrap>
                                <v-flex xs12 pa-2>
                                    <v-layout v-if="xact === 'new'" row>
                                        <v-flex xs12 pa-1>
                                            <v-data-table :headers="headers" :items="details" :loading="isLoading" hide-actions class="elevation-1">
                                                <template slot="items" slot-scope="props">
                                                    <td class="text-xs-left pa-2">{{ props.item.namaperusahaan }}</td>
                                                    <td class="text-xs-center pa-2">{{ props.item.pasien }}</td>
                                                    <td class="text-xs-center pa-2">{{ props.item.sampel }}</td>
                                                    <td class="text-xs-center pa-2">
                                                        <div>
                                                            <v-btn @click="changeSample(props.item)" v-if="props.item.sampleisok === 'N'" small color="error">
                                                                DITOLAK
                                                            </v-btn>
                                                            <v-btn @click="changeSample(props.item)" v-if="props.item.sampleisok === 'Y'" small color="success">
                                                                DITERIMA
                                                            </v-btn>
                                                        </div>
                                                        </td>
                                                        <td class="text-xs-center pa-2"><v-text-field  v-model="props.item.note"></v-text-field></td>
                                                    <td class="text-xs-center pa-2">{{ props.item.dp }}</td>
                                                </template>
                                            </v-data-table>
                                        </v-flex>
                                    </v-layout>
                                    <v-layout v-if="xact !== 'new'" row>
                                        <v-flex xs12 pa-1>
                                            <v-data-table :headers="headerreceive" :items="details" :loading="isLoading" hide-actions class="elevation-1">
                                                <template slot="items" slot-scope="props">
                                                    <td class="text-xs-left pa-2">{{ props.item.namaperusahaan }}</td>
                                                    <td class="text-xs-center pa-2">{{ props.item.pasien }}</td>
                                                    <td class="text-xs-center pa-2">{{ props.item.sampel }}</td>
                                                    <td class="text-xs-center pa-2">
                                                        <div>
                                                            <v-btn @click="changeFlagResultReceive(props.item)" v-if="props.item.sampleisok === 'N'" small color="error">
                                                                DITOLAK
                                                            </v-btn>
                                                            <v-btn @click="changeFlagResultReceive(props.item)" v-if="props.item.sampleisok === 'Y'" small color="success">
                                                                DITERIMA
                                                            </v-btn>
                                                        </div>
                                                        </td>
                                                        <td class="text-xs-center pa-2"><v-text-field  v-model="props.item.note"></v-text-field></td>
                                                    <td class="text-xs-center pa-2">{{ props.item.dp }}</td>
                                                </template>
                                            </v-data-table>
                                        </v-flex>
                                    </v-layout>
                                </v-flex>
                            </v-layout>
                        </v-flex>
                        </v-flex>
                </v-card>

                </v-layout>

                </v-flex>
                </v-flex>
            </v-layout>
</template>

<style scoped>
    table,
    td,
    th {
        border: 1px solid #ddd;
        text-align: left;
    }

    table {
        border-collapse: collapse;
        width: 100%;
    }

    th,
    td {
        padding-top: 5px;
        padding-bottom: 5px;
        padding-left: 8px;
        padding-right: 5px;
    }

    .mini-input .v-input {
        margin-top: 0px;
    }

    .mini-input .v-input,
    .mini-input .v-input--selection-controls,
    .mini-input .v-input__slot {
        margin-top: 0px;
        margin-bottom: 0px;
        margin-left: 3px;
    }

    .mini-input .v-messages {
        min-height: 0px;
    }

    input.fhm-input {
        border: 1px solid black;
        border-radius: 2px;
        -webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.1),
        0 0 4px rgba(0, 0, 0, 0.1);
        -moz-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.1),
        0 0 4px rgba(0, 0, 0, 0.1);
        box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.1),
        0 0 4px rgba(0, 0, 0, 0.1);
        padding: 2px 4px;
        background: rgba(255, 255, 255, 0.5);
        margin: 0 0 1px 0;
        width: 30px;
        text-align: center;
    }
</style>

<script>
    module.exports = {
        data: () => ({
            menutrxdate: false,
            date: new Date().toISOString().substr(0, 10),
            isLoading: false,
            search_noorder: '',
            searchCourier: '',
            headers: [{
                    text: "PERUSAHAAN",
                    align: "center",
                    sortable: false,
                    width: "10%",
                    class: "pa-2 blue lighten-3 white--text"
                },
                {
                    text: "PASIEN",
                    align: "center",
                    sortable: false,
                    width: "20%",
                    class: "pa-2 blue lighten-3 white--text"
                },
                {
                    text: "SAMPEL",
                    align: "center",
                    sortable: false,
                    width: "10%",
                    class: "pa-2 blue lighten-3 white--text"
                },
                {
                    text: "SAMPEL DITERIMA",
                    align: "center",
                    sortable: false,
                    width: "10%",
                    class: "pa-2 blue lighten-3 white--text"
                },  
                {
                    text: "CATATAN",
                    align: "center",
                    sortable: false,
                    width: "20%",
                    class: "pa-2 blue lighten-3 white--text"
                },            
                {
                    text: "UANG MUKA",
                    align: "center",
                    sortable: false,
                    width: "10%",
                    class: "pa-2 blue lighten-3 white--text"
                }
            ],
            headerreceive: [{
                    text: "PERUSAHAAN",
                    align: "left",
                    sortable: false,
                    width: "10%",
                    class: "pa-2 blue lighten-3 white--text"
                },
                {
                    text: "PASIEN",
                    align: "left",
                    sortable: false,
                    width: "20%",
                    class: "pa-2 blue lighten-3 white--text"
                },
                {
                    text: "SAMPEL",
                    align: "left",
                    sortable: false,
                    width: "10%",
                    class: "pa-2 blue lighten-3 white--text"
                },
                {
                    text: "SAMPEL DITERIMA",
                    align: "center",
                    sortable: false,
                    width: "10%",
                    class: "pa-2 blue lighten-3 white--text"
                },  
                {
                    text: "CATATAN",
                    align: "center",
                    sortable: false,
                    width: "20%",
                    class: "pa-2 blue lighten-3 white--text"
                },            
                {
                    text: "UANG MUKA",
                    align: "center",
                    sortable: false,
                    width: "10%",
                    class: "pa-2 blue lighten-3 white--text"
                }
            ],
            headerdp: [{
                    text: "PERUSAHAAN",
                    align: "left",
                    sortable: false,
                    width: "10%",
                    class: "pa-2 blue lighten-3 white--text"
                },
                {
                    text: "NO ORDER",
                    align: "left",
                    sortable: false,
                    width: "10%",
                    class: "pa-2 blue lighten-3 white--text"
                },
                {
                    text: "UANG MUKA",
                    align: "left",
                    sortable: false,
                    width: "20%",
                    class: "pa-2 blue lighten-3 white--text"
                },
                {
                    text: "AKSI",
                    align: "left",
                    sortable: false,
                    width: "10%",
                    class: "pa-2 blue lighten-3 white--text"
                }
            ],
            headerdps: [{
                    text: "PERUSAHAAN",
                    align: "left",
                    sortable: false,
                    width: "10%",
                    class: "pa-2 blue lighten-3 white--text"
                },
                {
                    text: "NO ORDER",
                    align: "left",
                    sortable: false,
                    width: "10%",
                    class: "pa-2 blue lighten-3 white--text"
                },
                {
                    text: "UANG MUKA",
                    align: "left",
                    sortable: false,
                    width: "20%",
                    class: "pa-2 blue lighten-3 white--text"
                },
                {
                    text: "AKSI",
                    align: "left",
                    sortable: false,
                    width: "10%",
                    class: "pa-2 blue lighten-3 white--text"
                }
            ],
        }),
        computed: {
            xact: {
                get() {
                    return this.$store.state.receivereferenceacceptcourier.act
                },
                set(val) {
                    this.$store.commit("receivereferenceacceptcourier/update_act", val)
                }
            },
            xactdp: {
                get() {
                    return this.$store.state.receivereferenceacceptcourier.act_dp
                },
                set(val) {
                    this.$store.commit("receivereferenceacceptcourier/update_act_dp", val)
                }
            },
            xnumbering() {
                if (this.$store.state.receivereferenceacceptcourier.selected_transaction)
                    return this.$store.state.receivereferenceacceptcourier.selected_transaction.trx_numbering
                else
                    return '-'
            },
            currStatus() {
                if (this.$store.state.receivereferenceacceptcourier.selected_transaction)
                    return this.$store.state.receivereferenceacceptcourier.selected_transaction.status
                else
                    return 'NONE'
            },
            xselectedtransaction() {
                return this.$store.state.receivereferenceacceptcourier.selected_transaction
            },
            xtrxdate: {
                get() {
                    return this.$store.state.receivereferenceacceptcourier.trx_date
                },
                set(val) {
                    this.$store.commit("receivereferenceacceptcourier/update_trx_date", val)
                }
            },
            dialogconfirmationdelete: {
                get() {
                    return this.$store.state.receivereferenceacceptcourier.dialog_confirmation_delete
                },
                set(val) {
                    this.$store.commit("receivereferenceacceptcourier/update_dialog_confirmation_delete",
                        val)
                }
            },
            msgconfirmationdelete() {
                return this.$store.state.receivereferenceacceptcourier.msg_confirmation_delete
            },
            filterComputedDateFormattedTrx() {
                return this.formatDate(this.xtrxdate)
            },
            xselectedcompany: {
                get() {
                    return this.$store.state.receivereferenceacceptcourier.selected_company
                },
                set(val) {
                    this.$store.commit("receivereferenceacceptcourier/update_selected_company", val)

                }
            },
            xcompanys() {
                return this.$store.state.receivereferenceacceptcourier.companys
            },
            xselectedcourier: {
                get() {
                    return this.$store.state.receivereferenceacceptcourier.selected_courier
                },
                set(val) {
                    this.$store.commit("receivereferenceacceptcourier/update_selected_courier", val)
                    this.$store.dispatch("receivereferenceacceptcourier/getordersamples", {
                        courierid: val.id
                    })

                }
            },
            xcouriers() {
                return this.$store.state.receivereferenceacceptcourier.couriers
            },
            xnote: {
                get() {
                    return this.$store.state.receivereferenceacceptcourier.trx_note
                },
                set(val) {
                    this.$store.commit("receivereferenceacceptcourier/update_trx_note", val)
                }
            },
            details() {
                return this.$store.state.receivereferenceacceptcourier.details
            },
            detaildps() {
                return this.$store.state.receivereferenceacceptcourier.detaildps
            },
            xdialogaction: {
                get() {
                    return this.$store.state.receivereferenceacceptcourier.dialog_action
                },
                set(val) {
                    this.$store.commit("receivereferenceacceptcourier/update_dialog_action", val)
                }
            },
            xmsgaction: {
                get() {
                    return this.$store.state.receivereferenceacceptcourier.msg_action
                },
                set(val) {
                    this.$store.commit("receivereferenceacceptcourier/update_msg_action", val)
                }
            },
            dialogformdp: {
                get() {
                    return this.$store.state.receivereferenceacceptcourier.dialog_form_dp
                },
                set(val) {
                    this.$store.commit("receivereferenceacceptcourier/update_dialog_form_dp", val)
                }
            },
            xordertests() {
                return this.$store.state.receivereferenceacceptcourier.ordertests
            },
            xdp: {
                get() {
                    return this.$store.state.receivereferenceacceptcourier.dp
                },
                set(val) {
                    this.$store.commit("receivereferenceacceptcourier/update_dp", val)
                }
            },
            xnoorders() {
                return this.$store.state.receivereferenceacceptcourier.noorders
            },
            xnoorder: {
                get() {
                    return this.$store.state.receivereferenceacceptcourier.noorder
                },
                set(val) {
                    this.$store.commit("receivereferenceacceptcourier/update_noorder", val)
                }
            }
        },
        methods: {
            checkError(value) {
                var errors = this.$store.state.receivereferenceacceptcourier.errors
                if (errors.includes(value)) {
                    return true
                } else {
                    return false
                }
            },
            formatDate(date) {
                if (!date) return null

                const [year, month, day] = date.split('-')
                return `${day}-${month}-${year}`
            },
            deFormatedDate(date) {
                if (!date) return null

                const [day, month, year] = date.split('-')
                return `${year}-${month.padStart(2, '0')}-${day.padStart(2, '0')}`
            },
            createNewDP() {
                this.$store.commit("receivereferenceacceptcourier/update_act_dp", 'new')
                this.xdp = ''
                this.$store.commit("receivereferenceacceptcourier/update_dialog_form_dp", true)
                this.search_noorder = ''
            },
            saveFormDP() {
                arr = this.$store.state.receivereferenceacceptcourier.detaildps
                var detail = {
                    idx: 0,
                    companyid: this.xnoorder.T_ReceiveReferenceHeaderM_CompanyID,
                    companyname: this.xnoorder.M_CompanyName,
                    orderid: this.xnoorder.T_ReceiveReferenceHeaderID,
                    ordernumber: this.xnoorder.T_ReceiveReferenceHeaderNumber,
                    amount: this.xdp,
                    active: 'Y'
                }
                arr.push(detail)
                this.$store.commit("receivereferenceacceptcourier/update_dialog_form_dp", false)
            },
            thr_search_noorder: _.debounce(function () {
                this.$store.dispatch("receivereferenceacceptcourier/searchnoorder", this.search_noorder)
            }, 2000),
            saveTrx() {
                this.$store.commit("receivereferenceacceptcourier/update_errors", [])
                var errors = this.$store.state.receivereferenceacceptcourier.errors
                if (_.isEmpty(this.xselectedcourier)) {
                    errors.push("requirecourier")
                }
                if (errors.length === 0) {
                    if (this.$store.state.receivereferenceacceptcourier.details.length > 0) {
                        var details = this.$store.state.receivereferenceacceptcourier.details
                        var detaildps = this.$store.state.receivereferenceacceptcourier.detaildps
                        var prm = {}
                        console.log(this.xact)
                        if (this.xact === 'new')
                            prm.trx_id = 0
                        else
                            prm.trx_id = this.$store.state.receivereferenceacceptcourier.selected_transaction
                            .trx_id

                        console.log(prm.trx_id)
                        prm.details = details
                        prm.detaildps = detaildps
                        prm.trx_date = moment(this.xtrxdate, 'DDMMYYYY', true)
                        prm.trx_note = this.xnote
                        prm.courier = this.xselectedcourier
                        prm.startdate = this.$store.state.receivereferenceacceptcourier.start_date
                        prm.enddate = this.$store.state.receivereferenceacceptcourier.end_date
                        prm.search = this.$store.state.receivereferenceacceptcourier.name_lab
                        prm.lastid = -1
                        this.$store.dispatch("receivereferenceacceptcourier/save", prm)
                    } else {
                        var msg = "Belum ada sample yang dipilih dong "
                        this.$store.commit("receivereferenceacceptcourier/update_msg_info", msg)
                        this.$store.commit("receivereferenceacceptcourier/update_open_dialog_info", true)
                    }
                }
            },
            changeFlagImage(value) {
                console.log('changeFlagImage')
                if (this.xact === 'new' || (this.xact !== 'new' && this.currStatus === 'CREATED')) {
                    let arr = this.$store.state.receivereferenceacceptcourier.details
                    var idx = _.findIndex(arr, item => item.orderid === value.orderid && item.sampleid === value.sampleid)
                    arr[idx].flag_image = value.flag_image === 'N' ? 'Y' : 'N'
                    this.$store.commit("receivereferenceacceptcourier/update_details", arr)
                }
            },
            changeActive(value) {
                console.log('changeActive')
                if (this.xact === 'new' || (this.xact !== 'new' && this.currStatus === 'CREATED')) {
                    let arr = this.$store.state.receivereferenceacceptcourier.details
                    var idx = _.findIndex(arr, item => item.sjdetailid === value.sjdetailid)
                    arr[idx].active = value.active === 'N' ? 'Y' : 'N'
                    this.$store.commit("receivereferenceacceptcourier/update_details", arr)
                }
            },
            changeSample(value) {
                console.log('changeSample')
                if (this.xact === 'new' || (this.xact !== 'new' && this.currStatus === 'CREATED')) {
                    let arr = this.$store.state.receivereferenceacceptcourier.details
                    var idx = _.findIndex(arr, item => item.sjdetailid === value.sjdetailid)
                    arr[idx].sampleisok = value.sampleisok === 'N' ? 'Y' : 'N'
                    this.$store.commit("receivereferenceacceptcourier/update_details", arr)
                }
            },
            changeFlagImageReceive(value) {
                console.log('changeFlagImageReceive')
                if (this.xact !== 'new' && this.currStatus !== 'DONE') {
                    let arr = this.$store.state.receivereferenceacceptcourier.details
                    var idx = _.findIndex(arr, item => item.orderid === value.orderid && item.sampleid === value.sampleid)
                    arr[idx].flag_image_receive = value.flag_image_receive === 'N' ? 'Y' : 'N'
                    this.$store.commit("receivereferenceacceptcourier/update_details", arr)
                }
            },
            changeFlagResultReceive(value) {
                console.log('changeFlagResultReceive')
                if (this.xact !== 'new' && this.currStatus !== 'DONE') {
                    let arr = this.$store.state.receivereferenceacceptcourier.details
                    var idx = _.findIndex(arr, item => item.T_ReceiverefAcceptCourierDetailT_ReceiveReferenceDeliveryDetID ===
                        value.T_ReceiverefAcceptCourierDetailT_ReceiveReferenceDeliveryDetID)
                    arr[idx].active = value.active === 'N' ? 'Y' : 'N'
                    this.$store.commit("receivereferenceacceptcourier/update_details", arr)
                }
            },
            deleteTrx() {
                var trx = this.$store.state.receivereferenceacceptcourier.selected_transaction
                console.log(trx)
                let msg = "Yakin, akan menghapus data transaksi " + trx.trx_numbering + " ?"
                this.$store.commit("receivereferenceacceptcourier/update_msg_confirmation_delete", msg)
                this.$store.commit("receivereferenceacceptcourier/update_dialog_confirmation_delete", true)
            },
            doDeleteTrx() {
                var trx = this.$store.state.receivereferenceacceptcourier.selected_transaction
                this.$store.dispatch("receivereferenceacceptcourier/deletetrx", trx)
            },
            releaseToCourier() {
                var trx = this.$store.state.receivereferenceacceptcourier.selected_transaction
                var msg = "Anda yakin akan menyerahkan dokumen transaksi " + trx.trx_numbering + " ke kurir ? "
                this.$store.commit("receivereferenceacceptcourier/update_msg_action", msg)
                this.$store.commit("receivereferenceacceptcourier/update_act", 'RELEASEC')
                this.$store.commit("receivereferenceacceptcourier/update_dialog_action", true)
            },
            receiveCompany() {
                var trx = this.$store.state.receivereferenceacceptcourier.selected_transaction
                var msg = "Dokumen transaksi " + trx.trx_numbering + " telah diterima lab perujuk ? "
                this.$store.commit("receivereferenceacceptcourier/update_msg_action", msg)
                this.$store.commit("receivereferenceacceptcourier/update_act", 'RCVLAB')
                this.$store.commit("receivereferenceacceptcourier/update_dialog_action", true)
            },
            receiveFromCourier() {
                var trx = this.$store.state.receivereferenceacceptcourier.selected_transaction
                var msg = "Dokumen transaksi " + trx.trx_numbering + " diterima dari kurir ? "
                this.$store.commit("receivereferenceacceptcourier/update_msg_action", msg)
                this.$store.commit("receivereferenceacceptcourier/update_act", 'DONE')
                this.$store.commit("receivereferenceacceptcourier/update_dialog_action", true)
            },
            forceClose() {
                var trx = this.$store.state.receivereferenceacceptcourier.selected_transaction
                var msg = "Dokumen transaksi " + trx.trx_numbering + " ditutup ? "
                this.$store.commit("receivereferenceacceptcourier/update_msg_action", msg)
                this.$store.commit("receivereferenceacceptcourier/update_act", 'FORCEDONE')
                this.$store.commit("receivereferenceacceptcourier/update_dialog_action", true)
            },

            closeDialogAction() {
                var act = this.$store.state.receivereferenceacceptcourier.act
                var trx = this.$store.state.receivereferenceacceptcourier.selected_transaction
                let arrtrx = this.$store.state.receivereferenceacceptcourier.transactions
                var idx = _.findIndex(arrtrx, item => item.trx_id === trx.trx_id)
                var details = this.$store.state.receivereferenceacceptcourier.details
                for (var i = 0; i < details.length; i++) {
                    details[i]['patient_age'] = this.getAge(details[i]['trx_date'], details[i]['patient_dob'])
                }
                var prm = {}
                prm.act = act
                prm.trx = trx
                prm.startdate = this.$store.state.receivereferenceacceptcourier.start_date
                prm.enddate = this.$store.state.receivereferenceacceptcourier.end_date
                prm.search = this.$store.state.receivereferenceacceptcourier.name_lab
                prm.stationid = this.$store.state.receivereferenceacceptcourier.selected_station.id
                prm.lastid = idx
                prm.details = details
                prm.detaildps = this.$store.state.receivereferenceacceptcourier.detaildps
                prm.trx_note = this.xnote
                this.$store.dispatch("receivereferenceacceptcourier/doaction", prm)
            },
            getAge(trx_date, dob) {
                var patientdob = dob
                var patientage = ''
                var now = moment(new Date(trx_date))
                var dob = moment(new Date(patientdob))
                var year = now.diff(dob, 'years')
                dob.add(year, 'years')
                var month = now.diff(dob, 'months')
                dob.add(month, 'months')
                var day = now.diff(dob, 'days')
                if (isNaN(year)) patientage = ''
                else patientage = `${year} tahun ${month} bulan ${day} hari`

                return patientage
            },
            editPatient(value) {
                this.$store.commit("receivereferenceacceptcourier/update_ordertests", value.labs)
                this.$store.commit("receivereferenceacceptcourier/update_dialog_form_patient", true)
            }
        },
        watch: {
            search_noorder(val, old) {
                if (val == old) return
                if (!val) return
                if (val.length < 1) return
                if (this.$store.state.receivereferenceacceptcourier.update_autocomplete_status == 1) return
                this.thr_search_noorder()
            }
        }
    }
</script>