123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. <script setup>
  2. import { useForm } from '@/composables/useForm'
  3. import { IDRCurrencyFormat } from '@/utils/helpers'
  4. import { cartTable } from './config'
  5. import Cart from '@/pages/Components/Cart.vue'
  6. import { useCart } from '@/pages/Composables/useCart'
  7. import AppButtonLink from '@/components/AppButtonLink.vue'
  8. import DashboardLayout from '@/layouts/Dashboard/DashboardLayout.vue'
  9. const props = defineProps({
  10. id: Number,
  11. number: String,
  12. ppn: Number,
  13. status: String,
  14. ppnChecked: Boolean,
  15. supplier: Object,
  16. purchaseDetail: Array,
  17. })
  18. const form = useForm({
  19. status: props.status,
  20. supplier: props.supplier,
  21. ppn: props.ppn,
  22. checkedPpn: props.ppnChecked,
  23. })
  24. const { cart, totalCartPrice } = useCart(form, props.purchaseDetail)
  25. </script>
  26. <template>
  27. <DashboardLayout title="Lihat Pembelian">
  28. <DynamicDialog />
  29. <div class="grid">
  30. <div class="col-12">
  31. <div class="grid">
  32. <div class="col-12">
  33. <Card>
  34. <template #title>
  35. <h2 class="text-2xl font-bold">Detail Pembelian</h2>
  36. </template>
  37. <template #content>
  38. <div class="grid">
  39. <div class="col-12">
  40. <div class="grid">
  41. <div class="col">
  42. <h3 class="text-base">Nama</h3>
  43. <span>{{ supplier.name }}</span>
  44. </div>
  45. <div class="col">
  46. <h3 class="text-base">Alamat</h3>
  47. <span>{{ supplier.address }}</span>
  48. </div>
  49. <div class="col">
  50. <h3 class="text-base">No HP</h3>
  51. <span>{{ supplier.phone }}</span>
  52. </div>
  53. <div class="col">
  54. <h3 class="text-base">NPWP</h3>
  55. <span>{{ supplier.npwp }}</span>
  56. </div>
  57. </div>
  58. </div>
  59. <div class="col-12">
  60. <div class="grid">
  61. <div class="col">
  62. <h3 class="text-base">Nomor Pembelian</h3>
  63. <span>{{ number }}</span>
  64. </div>
  65. <div class="col">
  66. <h3 class="text-base">Status Pembelian</h3>
  67. <span>{{ status }}</span>
  68. </div>
  69. <div class="col">
  70. <h3 class="text-base">Total Harga</h3>
  71. <span>{{ IDRCurrencyFormat(totalCartPrice()) }}</span>
  72. </div>
  73. <div class="col"></div>
  74. </div>
  75. </div>
  76. </div>
  77. </template>
  78. </Card>
  79. </div>
  80. <div class="col-12">
  81. <Cart
  82. title="Keranjang Produk"
  83. :cart="cart"
  84. :header-table="cartTable"
  85. :btn-ppn-disabled="true"
  86. :btn-delete-show="false"
  87. :btn-edit-show="false"
  88. v-model:checked-ppn="form.checkedPpn"
  89. />
  90. </div>
  91. </div>
  92. </div>
  93. <div class="col-12 flex flex-column sm:flex-row justify-content-end">
  94. <AppButtonLink
  95. label="Cetak Invoice"
  96. icon="pi pi-print"
  97. target="_blank"
  98. :inertia-link="false"
  99. :href="route('purchases.pdf.invoice', id)"
  100. />
  101. </div>
  102. <div class="col-12 flex flex-column sm:flex-row justify-content-end">
  103. <AppButtonLink
  104. label="Cetak Delivery Order"
  105. icon="pi pi-print"
  106. target="_blank"
  107. :inertia-link="false"
  108. :href="route('purchases.pdf.do', id)"
  109. />
  110. </div>
  111. </div>
  112. </DashboardLayout>
  113. </template>