HistoryProduct.vue 1.8KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <script setup>
  2. import { watchEffect, watch, computed, inject } from 'vue'
  3. import { Inertia } from '@inertiajs/inertia'
  4. import { ppn as ppnUtils } from '@/utils/helpers'
  5. import AppInputText from '@/components/AppInputText.vue'
  6. import AppInputNumber from '@/components/AppInputNumber.vue'
  7. const props = defineProps({
  8. ppn: Number,
  9. productPurchase: Object,
  10. })
  11. const form = inject('form')
  12. watchEffect(() => {
  13. if (props.productPurchase?.number) {
  14. form.price = props.productPurchase.price
  15. form.qty = props.productPurchase.qty
  16. } else {
  17. form.price = null
  18. }
  19. })
  20. watch(
  21. () => form.product,
  22. () => {
  23. if (form.product?.number) {
  24. Inertia.reload({
  25. data: {
  26. productNumber: form.product.number,
  27. supplierId: form.supplier.id,
  28. },
  29. only: ['productPurchase'],
  30. })
  31. }
  32. }
  33. )
  34. const productPurchasePrice = computed(() => {
  35. if (props.productPurchase?.number) {
  36. return ppnUtils(
  37. props.productPurchase.price,
  38. props.productPurchase?.ppn ? form.ppn : 0
  39. )
  40. }
  41. })
  42. const productPurchasePpn = computed(() => props.productPurchase?.ppn)
  43. const productPurchaseQty = computed(() => props.productPurchase?.qty)
  44. </script>
  45. <template>
  46. <div class="col-12">
  47. <h3 class="text-lg">Riwayat Produk Sebelumnya</h3>
  48. </div>
  49. <div class="col-12 md:col-6">
  50. <AppInputNumber
  51. disabled
  52. class="mb-0"
  53. label="Harga "
  54. placeholder="harga"
  55. v-model="productPurchasePrice"
  56. />
  57. <span v-if="productPurchasePpn" class="text-xs">
  58. Harga sudah termasuk PPN {{ ppn }} %
  59. </span>
  60. </div>
  61. <div class="col-12 md:col-6">
  62. <AppInputText
  63. disabled
  64. label="Kuantitas"
  65. placeholder="kuantitas"
  66. type="number"
  67. v-model="productPurchaseQty"
  68. />
  69. </div>
  70. </template>