function.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. import { REFER } from "@/components/popover-select/api";
  2. import { EXIST } from "@/api/business/purchase/catalogue";
  3. import { ITEM } from "@/api/business/purchase/apply";
  4. const fetchTax = async (prop) => {
  5. try {
  6. // try
  7. const { code, rows } = await REFER({
  8. search: prop,
  9. type: "TAX_RATE_PARAM",
  10. });
  11. if (code === 200) {
  12. return rows[0] || {};
  13. }
  14. } catch (err) {
  15. // catch
  16. console.error(err);
  17. } finally {
  18. // finally
  19. }
  20. };
  21. const fetchUnit = async (prop) => {
  22. try {
  23. // try
  24. const { code, rows } = await REFER({
  25. search: prop,
  26. type: "UNIT_PARAM",
  27. });
  28. if (code === 200) {
  29. return rows[0] || {};
  30. }
  31. } catch (err) {
  32. // catch
  33. console.error(err);
  34. } finally {
  35. // finally
  36. }
  37. };
  38. const fetchExist = async (prop) => {
  39. try {
  40. // try
  41. const { code, data } = await EXIST(prop);
  42. if (code === 200) return data;
  43. } catch (err) {
  44. // catch
  45. console.error(err);
  46. } finally {
  47. // finally
  48. }
  49. };
  50. export default function useMethods() {
  51. const fetchItem = async ({ _this, prop }) => {
  52. try {
  53. // try
  54. _this.loading = true;
  55. const { code, data } = await ITEM(prop);
  56. if (code === 200) {
  57. return data;
  58. }
  59. } catch (err) {
  60. // catch
  61. console.error(err);
  62. } finally {
  63. // finally
  64. _this.loading = false;
  65. }
  66. };
  67. const fetchRefer = async ({ _this, prop, type, source }) => {
  68. if (type === "MATERIAL_PARAM") {
  69. const { puOrg, customer, supplier } = _this.params;
  70. const { rateCode, unitIdName, code: materialCode } = prop;
  71. // task 1
  72. fetchTax(rateCode).then(({ ntaxrate }) => {
  73. source.tax = ntaxrate === "0E-8" ? "0.00000000" : ntaxrate;
  74. });
  75. // task 2
  76. fetchUnit(unitIdName).then(({ id, code, name }) => {
  77. source.unit = id;
  78. source.unitCode = code;
  79. source.unitName = name;
  80. source.puUnit = id;
  81. source.puUnitCode = code;
  82. source.puUnitName = name;
  83. });
  84. // task 3
  85. fetchExist({ puOrg, customer, supplier, materialCode }).then(
  86. ({ recentlyPrice, isApprovalFirst, isPriceAdjustment }) => {
  87. source.recentlyPrice = recentlyPrice;
  88. source.isApprovalFirst = isApprovalFirst;
  89. source.isPriceAdjustment = isPriceAdjustment;
  90. }
  91. );
  92. }
  93. };
  94. return {
  95. fetchItem,
  96. fetchRefer,
  97. };
  98. }