MineModels.js 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695
  1. import { createAction, NavigationActions } from '../../utils'
  2. import * as authService from '../../services/auth'
  3. import Theme from '../../containers/common/theme/config'
  4. import deviceStorage from '../../utils/storage'
  5. import utils from '../../utils/utils'
  6. export default {
  7. namespace: 'mine',
  8. state: {
  9. // 地址
  10. addressData: [],
  11. addressDefault: {},
  12. // 供应商
  13. // supplierData: [],
  14. // supplierDefault: {},
  15. // 运输方式
  16. transportData: [],
  17. transportDefault: {},
  18. // 结算方式
  19. billwayData: [],
  20. billwayDefault: {},
  21. // 收款业务类型
  22. payTypesData: [],
  23. payTypesDefault: {},
  24. // 选择发票
  25. invoiceData: [],
  26. invoiceDefault: {},
  27. // 要货单支付方式
  28. orderPayStatus: [],
  29. // 财务组织参照
  30. FinancialOrg: [],
  31. SaleOrg: [],
  32. // 产品线参照
  33. productRefs: [],
  34. // 兑付方式
  35. OffsetMod: [],
  36. // 状态
  37. StateMod: [],
  38. // 基础信息
  39. BasicInfo: {},
  40. // 银行账户
  41. BankInfo: [],
  42. // 联系人
  43. ContactInfo: [],
  44. // 客户收货地址
  45. AddressInfo: [],
  46. // 客户供应商列表
  47. SupplierInfo: [],
  48. financeBankAcc: [],
  49. },
  50. reducers: {
  51. adressReducer(state, { payload }) {
  52. return { ...state, ...payload }
  53. },
  54. supplierReducer(state, { payload }) {
  55. return { ...state, ...payload }
  56. },
  57. transportReducer(state, { payload }) {
  58. return { ...state, ...payload }
  59. },
  60. billwayReducer(state, { payload }) {
  61. return { ...state, ...payload }
  62. },
  63. invoiceReducer(state, { payload }) {
  64. return { ...state, ...payload }
  65. },
  66. organReducer(state, { payload }) {
  67. return { ...state, ...payload }
  68. },
  69. DocReducer(state, { payload }) {
  70. return { ...state, ...payload }
  71. },
  72. BasicReducer(state, { payload }) {
  73. return { ...state, ...payload }
  74. },
  75. FinanceReducer(state, { payload }) {
  76. return { ...state, ...payload }
  77. },
  78. SaleOrgReducer(state, { payload }) {
  79. return { ...state, ...payload }
  80. },
  81. productRefsReducer(state, { payload }) {
  82. return { ...state, ...payload }
  83. },
  84. payTyepsReducer(state, { payload }) {
  85. return { ...state, ...payload }
  86. },
  87. BankAccountByFinanceReducer(state, { payload }) {
  88. return { ...state, ...payload }
  89. },
  90. PaymentModeReducer(state, { payload }) {
  91. return { ...state, ...payload }
  92. },
  93. },
  94. effects: {
  95. //收货地址参照
  96. *getAdress(action, { call, put }) {
  97. try {
  98. const hotdata = yield call(() =>
  99. authService.getadress({ customer: action.payload.customer })
  100. )
  101. let addressDefault = {}
  102. if (
  103. action.payload.comefrom &&
  104. action.payload.comefrom.comefrom &&
  105. action.payload.comefrom.comefrom == 'temporarily'
  106. ) {
  107. addressDefault = action.payload.comefrom.reqOrderReceiveAddress
  108. } else {
  109. for (let i = 0; i < hotdata.data.length; i++) {
  110. if (hotdata && hotdata.data && hotdata.data[i].isDefault == 1) {
  111. addressDefault = hotdata.data[i]
  112. }
  113. if (
  114. hotdata &&
  115. hotdata.data &&
  116. Object.keys(addressDefault).length == 0
  117. ) {
  118. addressDefault = hotdata.data[0]
  119. }
  120. }
  121. }
  122. if (hotdata.data) {
  123. yield put(
  124. createAction('adressReducer')({
  125. addressData: hotdata.data,
  126. addressDefault: addressDefault,
  127. })
  128. )
  129. }
  130. } catch (error) {
  131. console.log(
  132. error,
  133. '-----error的完整信息' + '\n' + error.response.data.message,
  134. '-----相关错误信息'
  135. )
  136. }
  137. if (action.payload && action.payload.transform) {
  138. yield put(createAction('getTransport')(action.payload))
  139. }
  140. if (action.payload && action.payload.billway) {
  141. yield put(createAction('getBillWay')(action.payload))
  142. }
  143. if (action.payload && action.payload.invoice) {
  144. yield put(createAction('getInvoice')(action.payload))
  145. }
  146. },
  147. // 更新选中地址
  148. *AdressSetstate(action, { call, put }) {
  149. if (action && action.payload) {
  150. yield put(
  151. createAction('adressReducer')({
  152. addressDefault: action.payload,
  153. })
  154. )
  155. }
  156. },
  157. //运输方式参照
  158. *getTransport(action, { call, put }) {
  159. try {
  160. const transportdata = yield call(authService.gettransport)
  161. if (transportdata.data) {
  162. yield put(
  163. createAction('transportReducer')({
  164. transportData: transportdata.data,
  165. transportDefault:
  166. action.payload.comefrom.comefrom == 'temporarily'
  167. ? action.payload.comefrom.transportDefault
  168. : transportdata.data[0],
  169. })
  170. )
  171. }
  172. } catch (error) {
  173. console.log(
  174. error,
  175. '-----error的完整信息' + '\n' + error.response.data.message,
  176. '-----相关错误信息'
  177. )
  178. }
  179. },
  180. // 选中运输参照
  181. *TransportSetstate(action, { call, put }) {
  182. if (action && action.payload) {
  183. yield put(
  184. createAction('transportReducer')({
  185. transportDefault: action.payload,
  186. })
  187. )
  188. }
  189. },
  190. //结算方式
  191. *getBillWay(action, { call, put }) {
  192. try {
  193. const billwaydata = yield call(authService.getbillway)
  194. if (billwaydata.data) {
  195. yield put(
  196. createAction('billwayReducer')({
  197. billwayData: billwaydata.data,
  198. billwayDefault:
  199. action.payload &&
  200. action.payload.comefrom.comefrom == 'temporarily'
  201. ? action.payload.comefrom.billwayDefault
  202. : billwaydata.data[0],
  203. })
  204. )
  205. }
  206. } catch (error) {
  207. console.log(
  208. error,
  209. '-----error的完整信息' + '\n' + error.response.data.message,
  210. '-----相关错误信息'
  211. )
  212. }
  213. },
  214. // 选中运输参照
  215. *BillwaySetstate(action, { call, put }) {
  216. if (action && action.payload) {
  217. yield put(
  218. createAction('billwayReducer')({
  219. billwayDefault: action.payload,
  220. })
  221. )
  222. }
  223. },
  224. //收款业务类型参照getPayTypes
  225. *getPayTypes(action, { call, put }) {
  226. try {
  227. const getValue = yield call(() =>
  228. authService.getPayTypes({ search_EQ_isEnable: 1, page: 0, size: 100 })
  229. )
  230. if (getValue.data && getValue.data.content) {
  231. yield put(
  232. createAction('payTyepsReducer')({
  233. payTypesData: getValue.data.content,
  234. payTypesDefault:
  235. action.payload &&
  236. action.payload.comefrom.comefrom == 'temporarily'
  237. ? action.payload.comefrom.payTypesDefault
  238. : getValue.data.content[0],
  239. })
  240. )
  241. }
  242. } catch (error) {
  243. console.log(
  244. error,
  245. '-----error的完整信息' + '\n' + error.response.data.message,
  246. '-----相关错误信息'
  247. )
  248. }
  249. },
  250. // 选中收款业务类型参照
  251. *payTypeSetstate(action, { call, put }) {
  252. if (action && action.payload) {
  253. yield put(
  254. createAction('payTyepsReducer')({
  255. payTypesDefault: action.payload,
  256. })
  257. )
  258. }
  259. },
  260. //发票
  261. *getInvoice(action, { call, put }) {
  262. try {
  263. const invoicedata = yield call(() =>
  264. authService.getinvoice({ customer: action.payload.customer })
  265. )
  266. let invoDef = {},
  267. invoDefFlag = true
  268. if (invoicedata.data && invoicedata.data.length > 0) {
  269. if (
  270. action.payload.comefrom &&
  271. action.payload.comefrom.comefrom &&
  272. action.payload.comefrom.comefrom == 'temporarily'
  273. ) {
  274. invoDef = action.payload.comefrom.reqOrderInvoice
  275. } else {
  276. for (let val of invoicedata.data) {
  277. if (val.isDefault == 1) {
  278. invoDef = val
  279. invoDefFlag = false
  280. }
  281. }
  282. if (invoDefFlag) {
  283. invoDef = invoicedata.data[0]
  284. }
  285. }
  286. yield put(
  287. createAction('invoiceReducer')({
  288. invoiceData: invoicedata.data,
  289. invoiceDefault: invoDef,
  290. })
  291. )
  292. }
  293. } catch (error) {
  294. console.log(
  295. error,
  296. '-----error的完整信息' + '\n' + error.response.data.message,
  297. '-----相关错误信息'
  298. )
  299. }
  300. },
  301. // 选中运输参照
  302. *InvoiceSetstate(action, { call, put }) {
  303. if (action && action.payload) {
  304. yield put(
  305. createAction('invoiceReducer')({
  306. invoiceDefault: action.payload,
  307. })
  308. )
  309. }
  310. },
  311. //组织参照
  312. *getOrgans(action, { call, put }) {
  313. try {
  314. if (!action.payload.searchMore) {
  315. // 兑付方式
  316. yield put(
  317. createAction('getCastDoc')({
  318. inFo: {
  319. 'search_EQ_custDoc.id': '7ddbcd90-8080-4be9-a6f2-df143e62b083',
  320. size: 100,
  321. page: 0,
  322. },
  323. useFor: 'duifu',
  324. })
  325. )
  326. // 单据状态
  327. yield put(
  328. createAction('getCastDoc')({
  329. inFo: {
  330. 'search_EQ_custDoc.id': '63cabe5c-1184-4e42-b506-a8c8806bccbd',
  331. size: 100,
  332. page: 0,
  333. },
  334. useFor: 'state',
  335. })
  336. )
  337. }
  338. if (action.payload.forUse == 'tiaozhuan') {
  339. yield put(NavigationActions.navigate({ routeName: 'Cost' }))
  340. }
  341. } catch (error) {
  342. console.log(
  343. error,
  344. '-----error的完整信息' + '\n' + error.response.data.message,
  345. '-----相关错误信息'
  346. )
  347. }
  348. },
  349. //兑付方式/单据状态参照
  350. *getCastDoc(action, { call, put }) {
  351. try {
  352. CastDocData = []
  353. const docData = yield call(() =>
  354. authService.getCastDoc(action.payload.inFo)
  355. )
  356. if (
  357. docData &&
  358. docData.data &&
  359. docData.data.content &&
  360. docData.data.content.length > 0
  361. ) {
  362. CastDocData = docData.data.content.filter(item => item.isEnable == 1)
  363. CastDocData.unshift({
  364. name: '全部',
  365. id: '',
  366. })
  367. if (action.payload.useFor == 'duifu') {
  368. yield put(
  369. createAction('DocReducer')({
  370. OffsetMod: CastDocData,
  371. })
  372. )
  373. } else {
  374. yield put(
  375. createAction('DocReducer')({
  376. StateMod: CastDocData,
  377. })
  378. )
  379. }
  380. }
  381. } catch (error) {
  382. console.log(
  383. error,
  384. '-----error的完整信息' + '\n' + error.response.data.message,
  385. '-----相关错误信息'
  386. )
  387. }
  388. },
  389. //基础信息
  390. *getBasic(action, { call, put }) {
  391. try {
  392. const basicData = yield call(() =>
  393. authService.getBasicInfo(action.payload.customerId)
  394. )
  395. const bankCountData = yield call(() =>
  396. authService.getBasicBankInfo(action.payload.customerId)
  397. )
  398. if (basicData.data) {
  399. yield put(
  400. createAction('BasicReducer')({
  401. BasicInfo: basicData.data,
  402. BankInfo: bankCountData.data.content,
  403. })
  404. )
  405. yield put(NavigationActions.navigate({ routeName: 'BasicInfo' }))
  406. }
  407. } catch (error) {
  408. console.log(
  409. error,
  410. '-----error的完整信息' + '\n' + error.response.data.message,
  411. '-----相关错误信息'
  412. )
  413. }
  414. },
  415. //联系人
  416. *getContacts(action, { call, put }) {
  417. try {
  418. const contactData = yield call(() =>
  419. authService.getContacts(action.payload)
  420. )
  421. if (contactData.data) {
  422. yield put(
  423. createAction('BasicReducer')({
  424. ContactInfo: contactData.data,
  425. })
  426. )
  427. yield put(
  428. NavigationActions.navigate({ routeName: 'CustomerContact' })
  429. )
  430. }
  431. } catch (error) {
  432. console.log(
  433. error,
  434. '-----error的完整信息' + '\n' + error.response.data.message,
  435. '-----相关错误信息'
  436. )
  437. }
  438. },
  439. //收货地址
  440. *getCusAdd(action, { call, put }) {
  441. try {
  442. const addressData = yield call(() =>
  443. authService.getCusAdd(action.payload)
  444. )
  445. if (addressData.data) {
  446. yield put(
  447. createAction('BasicReducer')({
  448. AddressInfo: addressData.data,
  449. })
  450. )
  451. yield put(
  452. NavigationActions.navigate({ routeName: 'CustomerAddress' })
  453. )
  454. }
  455. } catch (error) {
  456. console.log(
  457. error,
  458. '-----error的完整信息' + '\n' + error.response.data.message,
  459. '-----相关错误信息'
  460. )
  461. }
  462. },
  463. //通过财务组织 找所有下属销售组织
  464. *findSaleOrgByFinance(action, { call, put }) {
  465. try {
  466. const saleorg = yield call(() =>
  467. authService.findSaleOrgByFinance(action.payload)
  468. )
  469. if (saleorg.data && saleorg.data.content) {
  470. yield put(
  471. createAction('SaleOrgReducer')({
  472. SaleOrg: saleorg.data.content,
  473. })
  474. )
  475. }
  476. } catch (error) {
  477. console.log(
  478. error,
  479. '-----error的完整信息' + '\n' + error.response.data.message,
  480. '-----相关错误信息'
  481. )
  482. }
  483. },
  484. //销售组织找财务组织
  485. *findFinanceBySaleOrg(action, { call, put }) {
  486. try {
  487. const FinanData = yield call(() =>
  488. authService.getFinanceRef(action.payload.saleOrgIds)
  489. )
  490. if (FinanData && FinanData.status == 200) {
  491. yield put(
  492. createAction('FinanceReducer')({
  493. FinancialOrg: FinanData.data ? FinanData.data : [],
  494. financeBankAcc: [],
  495. })
  496. )
  497. if (action.payload.forUse == 'CostReconciliation') {
  498. yield put(
  499. NavigationActions.navigate({
  500. routeName: 'CostReconciliation',
  501. })
  502. )
  503. }
  504. }
  505. } catch (error) {
  506. yield put(
  507. createAction('FinanceReducer')({
  508. FinancialOrg: [],
  509. financeBankAcc: [],
  510. })
  511. )
  512. console.log(
  513. error,
  514. '-----error的完整信息' + '\n' + error.response.data.message,
  515. '-----相关错误信息'
  516. )
  517. }
  518. },
  519. //通过销售组织找收款信息
  520. *findAccountByFinanceSaga(action, { call, put }) {
  521. try {
  522. const accountSarch = {
  523. 'search_EQ_financeOrganization.id': action.payload.finanOrgId,
  524. search_EQ_isEnable: 1,
  525. size: 100,
  526. page: 0,
  527. }
  528. const accountByFinace = yield call(() =>
  529. authService.getAccountByFinance(accountSarch)
  530. )
  531. if (accountByFinace && accountByFinace.data) {
  532. yield put(
  533. createAction('BankAccountByFinanceReducer')({
  534. financeBankAcc: accountByFinace.data.content,
  535. })
  536. )
  537. }
  538. } catch (error) {
  539. yield put(
  540. createAction('BankAccountByFinanceReducer')({
  541. financeBankAcc: [],
  542. })
  543. )
  544. console.log(
  545. error,
  546. '-----error的完整信息' + '\n' + error.response.data.message,
  547. '-----相关错误信息'
  548. )
  549. }
  550. },
  551. //客户供应商
  552. *getCusSup(action, { call, put }) {
  553. try {
  554. let Brand = {},
  555. saleOrgIds = [],
  556. productRefs = []
  557. if (action.payload.customerRankCode == 1) {
  558. Brand = yield call(() =>
  559. authService.getBarndOne({ customerIds: action.payload.customerId })
  560. )
  561. } else {
  562. Brand = yield call(() =>
  563. authService.getBarndSec({
  564. purchaseCustomerId: action.payload.customerId,
  565. })
  566. )
  567. }
  568. if (Brand && Brand.data && Brand.data.length > 0) {
  569. if (
  570. !(action.payload.comeFrom && action.payload.comeFrom == 'supplier')
  571. ) {
  572. Brand.data.map(item => {
  573. if (item.saleOrganizationId) {
  574. saleOrgIds.push(item.saleOrganizationId)
  575. }
  576. })
  577. yield put(
  578. createAction('findFinanceBySaleOrg')({
  579. saleOrgIds: saleOrgIds,
  580. ...action.payload,
  581. })
  582. )
  583. // const FinanData = yield call(() =>
  584. // authService.getFinanceRef(saleOrgIds)
  585. // );
  586. // if (FinanData && FinanData.data) {
  587. // yield put(
  588. // createAction("FinanceReducer")({
  589. // FinancialOrg: FinanData.data
  590. // })
  591. // );
  592. // if (action.payload.forUse == "CostReconciliation") {
  593. // yield put(
  594. // NavigationActions.navigate({
  595. // routeName: "CostReconciliation"
  596. // })
  597. // );
  598. // }
  599. // }
  600. }
  601. if (
  602. action.payload.addDefaultData &&
  603. action.payload.addDefaultData == 'productLine'
  604. ) {
  605. Brand.data.map(item => {
  606. if (item.productLineName && item.productLineId) {
  607. productRefs.push(item)
  608. }
  609. })
  610. productRefs.unshift({
  611. productLineName: '全部产品线',
  612. productLineId: '',
  613. })
  614. yield put(
  615. createAction('productRefsReducer')({
  616. productRefs: productRefs,
  617. })
  618. )
  619. Brand.data.unshift({
  620. saleOrganizationName: '全部供应商',
  621. saleOrganizationId: '',
  622. })
  623. }
  624. // 费用余额用
  625. if (action.payload.comeFrom == 'castBalance') {
  626. Brand.data.unshift({
  627. saleOrganizationName: '全部供应商',
  628. saleOrganizationId: '',
  629. })
  630. }
  631. yield put(
  632. createAction('BasicReducer')({
  633. SupplierInfo: Brand.data,
  634. })
  635. )
  636. if (
  637. action.payload.comeFrom &&
  638. action.payload.comeFrom == 'supplier' &&
  639. action.payload.toOthers
  640. ) {
  641. yield put(NavigationActions.navigate({ routeName: 'Supplier' }))
  642. }
  643. }
  644. } catch (error) {
  645. console.log(
  646. error,
  647. '-----error的完整信息' + '\n' + error.response.data.message,
  648. '-----相关错误信息'
  649. )
  650. }
  651. },
  652. //要货单支付方式
  653. *payMentMode(action, { call, put }) {
  654. try {
  655. const data = yield call(() => authService.getPayStatus())
  656. if (data && data.data) {
  657. yield put(
  658. createAction('PaymentModeReducer')({
  659. orderPayStatus: data.data,
  660. })
  661. )
  662. }
  663. } catch (error) {
  664. console.log(
  665. error,
  666. '-----error的完整信息' + '\n' + error.response.data.message,
  667. '-----相关错误信息'
  668. )
  669. }
  670. },
  671. },
  672. }