{"version":3,"file":"PaymentReversalForm.mjs","names":["React","useState","useEffect","useCallback","useMemo","DateTime","FluentCardText","IndicatorChip","makeStyles","Divider","FormControlLabel","Box","AmbientCard","Typography","Grid","ListElement","useTranslation","FluentCheckbox","FormControl","Field","FluentTextField","Form","apiMutate","LinearProgress","ConfigService","useStyles","theme","formControlHalf","width","formControl","formControlMargin","marginTop","formControlCheck","marginLeft","submitControl","assetTypeLabel","top","spacing","labelText","color","fontSize","main","flexGrow","padding","display","justifyContent","alignItems","appIcon","height","palette","text","primary","arrowIcon","linkTitle","marginRight","formControlGeneral","cardNumber","accordion","margin","boxShadow","backgroundColor","accordionSummary","paddingLeft","minHeight","flexDirection","expanded","content","accordionDetails","cardContent","listItem","paddingTop","paddingBottom","listItemDetail","listItemAccordion","divider","dividerBold","itemCheckbox","itemDescription","list","dropdown","locationDropDown","box","gap","breakpoints","down","flexWrap","PAYMENT_APPROVED","PAYMENT_DENIED","RESULT_SUCCESS","RESULT_FAILURE","PaymentReversalForm","id","paymentData","onSubmitCompleted","classes","t","loading","setLoading","paymentTransaction","setPaymentTransaction","undefined","getPaymentTransaction","payload","pgV1ApiUrl","method","data","reverseTransactionExecute","transactionID","handleSubmitPaymentReversal","values","transactionId","then","error","catch","fetchData","response","eagerLoad","pageNumber","pageSize","filterElements","searchField","searchValue","searchOperator","orderElements","pageList","err","console","statusText","responseCode","paymentResultID","defaultValue","statusCode","amount","marginBottom","transactionDate","fromJSDate","Date","toFormat","paymentSourceName","authorizationNumber","map","k","v","reference3","tender","cardLast4","applicationClient","name","date","handleSubmit","form","label","variant","size","disabled","fullWidth","autoComplete","inputProps","maxLength","autocomplete"],"sources":["../../../src/UI/forms/PaymentReversalForm.jsx"],"sourcesContent":["import React, { useState, useEffect, useCallback, useMemo } from 'react';\nimport { DateTime } from 'luxon';\nimport { FluentCardText } from '../surfaces/cards/fluentCards/FluentCardText';\nimport { IndicatorChip } from '../utilityDisplay/IndicatorChip';\nimport { makeStyles, Divider, FormControlLabel } from '@material-ui/core';\nimport { Box } from '../Box';\nimport { AmbientCard } from '../surfaces/cards/AmbientCard';\nimport { Typography } from '../dataDisplay/typography/Typography';\nimport { Grid } from '../Grid';\nimport { ListElement } from '../mapLayout/ui/ListCard';\nimport { useTranslation } from 'react-i18next';\nimport { FluentCheckbox } from '../inputs/checkbox/FluentCheckbox';\nimport { FormControl } from '../utilityDisplay/FormControl';\nimport { Field } from '../../utilities/form/Field';\nimport { FluentTextField } from '../inputs/textField/FluentTextField';\nimport { Form } from '../../utilities/form/Form';\nimport { apiMutate } from '../../utilities/useAxiosMutate';\nimport { LinearProgress } from '../loading/LinearProgress';\nimport { ConfigService } from '../../configService';\n\nconst useStyles = makeStyles((theme) => ({\n  formControlHalf: {\n    width: '40%'\n  },\n  formControl: {\n    width: '100%'\n  },\n  formControlMargin: {\n    width: '100%',\n    marginTop: '5px'\n  },\n  formControlCheck: {\n    width: '100%',\n    marginTop: '5px',\n    marginLeft: '3px'\n  },\n  submitControl: {\n    marginTop: '35px'\n  },\n  assetTypeLabel: {\n    top: theme.spacing(-0.7)\n  },\n  labelText: {\n    color: 'rgba(0, 0, 0)',\n    fontSize: '0.875rem'\n  },\n  main: {\n    flexGrow: 1,\n    padding: '0 24px',\n    display: 'flex',\n    justifyContent: 'space-between',\n    alignItems: 'center'\n  },\n  appIcon: {\n    width: 24,\n    height: 24,\n    color: theme.palette.text.primary\n  },\n  arrowIcon: {\n    width: 12,\n    height: 12\n  },\n  linkTitle: {\n    marginRight: theme.spacing(1)\n  },\n  formControlGeneral: {\n    width: '100%',\n    marginLeft: '5px',\n    marginTop: '5px'\n  },\n  cardNumber: {\n    width: '60%'\n  },\n  accordion: {\n    width: '100%',\n    margin: '0px',\n    padding: '0px',\n    boxShadow: 'none',\n    backgroundColor: 'inherit',\n    '&:before': {\n      display: 'none'\n    },\n    '&$expanded': {\n      margin: '0px'\n    }\n  },\n  accordionSummary: {\n    padding: '0px',\n    paddingLeft: '5px',\n    margin: '0px',\n    minHeight: '0px',\n    backgroundColor: 'inherit',\n    flexDirection: 'row-reverse',\n    '&$expanded': {\n      margin: '0px',\n      padding: '0px',\n      minHeight: '0px'\n    }\n  },\n  expanded: {\n    margin: '0px',\n    paddingLeft: '5px'\n  },\n  content: {\n    margin: 0,\n    backgroundColor: 'inherit',\n    '&$expanded': {\n      margin: 0\n    }\n  },\n  accordionDetails: {\n    padding: '0px',\n    display: 'block',\n    margin: '0px'\n  },\n  cardContent: {\n    backgroundColor: '#FAFAFA'\n  },\n  listItem: {\n    paddingTop: '3px',\n    paddingBottom: '3px',\n    fontSize: '0.875rem'\n  },\n  listItemDetail: {\n    display: 'flex',\n    justifyContent: 'flex-end'\n  },\n  listItemAccordion: {\n    paddingTop: '3px',\n    paddingBottom: '3px',\n    paddingLeft: '0px'\n  },\n  divider: {\n    margin: '0px 12px'\n  },\n  dividerBold: {\n    margin: '0px 12px',\n    backgroundColor: 'black'\n  },\n  itemCheckbox: {\n    padding: '0px'\n  },\n  itemDescription: {\n    color: 'grey'\n  },\n  list: {\n    backgroundColor: '#FFF'\n  },\n  dropdown: {\n    marginTop: theme.spacing(-1),\n    backgroundColor: '#FFF'\n  },\n  locationDropDown: {\n    margin: theme.spacing(0),\n    marginTop: theme.spacing(-0.5),\n    fontSize: '0.75rem'\n  },\n  box: {\n    display: 'flex',\n    justifyContent: 'space-around',\n    flexDirection: 'row',\n    paddingBottom: '15px',\n    gap: '10px',\n    [theme.breakpoints.down('sm')]: {\n      flexDirection: 'column',\n      flexWrap: 'wrap',\n      alignItems: 'flex-start'\n    }\n  }\n}));\n\nconst PAYMENT_APPROVED = 1;\nconst PAYMENT_DENIED = 43;\nconst RESULT_SUCCESS = 200;\nconst RESULT_FAILURE = 401;\n\nexport const PaymentReversalForm = ({ id, paymentData, onSubmitCompleted }) => {\n  const classes = useStyles();\n  const { t } = useTranslation();\n\n  const [loading, setLoading] = useState(true);\n  const [paymentTransaction, setPaymentTransaction] = useState(undefined);\n\n  /**\n   * API call to get the payment transaction details\n   */\n  const getPaymentTransaction = useCallback(\n    async (payload) => {\n      if (!payload) {\n        return null;\n      }\n\n      return apiMutate(\n        ConfigService.pgV1ApiUrl,\n        `PaymentTransaction/search`,\n        {\n          method: 'POST',\n          data: payload\n        },\n        {}\n      );\n    },\n    []\n  );\n\n  /**\n   * API call to get the account information by account number\n   */\n  const reverseTransactionExecute = useCallback(\n    async (transactionID) => {\n      if (!transactionID) {\n        return null;\n      }\n\n      return apiMutate(\n        ConfigService.pgV1ApiUrl,\n        `PaymentTransaction/${transactionID}`,\n        {\n          method: 'DELETE',\n        },\n        {}\n      );\n    },\n    []\n  );\n\n  /**\n   * submitAccountDetailsForm\n   * @param {*} formData\n   * @return {*}\n   */\n  const handleSubmitPaymentReversal = (values) => {\n      // const data = {\n      //   amountToReverse: values.amountToReverse,\n      //   isSendCustomerPaymentConfirmation:\n      //     values.isSendCustomerPaymentConfirmation\n      // };\n\n      if (!paymentData?.transactionId) {\n        return;\n      }\n\n      reverseTransactionExecute(paymentData?.transactionId)\n        .then(() => {\n          onSubmitCompleted?.({ transactionId: paymentData?.transactionId, error: false });\n        })\n        .catch((error) => {\n          onSubmitCompleted?.({ transactionId: paymentData?.transactionId, error });\n        });\n  }\n\n  useEffect(() => {\n    const fetchData = async () => {\n      try {\n        setLoading(true);\n        const response = await getPaymentTransaction({\n          eagerLoad: true,\n          pageNumber: 1,\n          pageSize: 20,\n          filterElements: [\n            {\n              searchField: 'transactionId',\n              searchValue: paymentData?.transactionId,\n              searchOperator: '=',\n            },\n          ],\n          orderElements: [],\n        });\n\n        if (response?.data) {\n          setPaymentTransaction(response?.data?.pageList?.[0]);\n        }\n\n      } catch (err) {\n        console.error(err);\n      } finally {\n        setLoading(false);\n      }\n    };\n\n    if (paymentData?.transactionId) {\n      fetchData();\n    }\n  }, [getPaymentTransaction, paymentData]);\n\n  const statusText = useMemo(() => {\n      return (paymentTransaction?.responseCode === PAYMENT_APPROVED && paymentTransaction?.paymentResultID === RESULT_SUCCESS) ? t('payments.reversal.approved', { defaultValue: 'Approved' }) :\n             (paymentTransaction?.responseCode === PAYMENT_DENIED && paymentTransaction?.paymentResultID === RESULT_FAILURE) ? t('payments.reversal.declined', { defaultValue: 'Declined' }) : t('payments.reversal.undetermined', { defaultValue: 'Undetermined' });\n  }, [paymentTransaction, t]);\n\n  const statusCode = useMemo(() => {\n    return (paymentTransaction?.responseCode === PAYMENT_APPROVED && paymentTransaction?.paymentResultID === RESULT_SUCCESS) ?  'ok':\n           (paymentTransaction?.responseCode === PAYMENT_DENIED && paymentTransaction?.paymentResultID === RESULT_FAILURE) ? 'error'  : 'warning';\n  }, [paymentTransaction]);\n\n  return (\n    <Box>\n      {loading && (\n        <Box sx={{ width: '100%' }}>\n          <LinearProgress />\n        </Box>\n      )}\n      <Box className={classes.box}>\n        <FluentCardText\n          title={t('payments.reversal.value', { defaultValue: 'Value' })}\n          description={`$${paymentData?.amount}`}\n        />\n        <FluentCardText\n          title={t('payments.reversal.status', { defaultValue: 'Status' })}\n          description={\n            <IndicatorChip\n              text={statusText}\n              status={statusCode}\n            />\n          }\n        />\n      </Box>\n      <AmbientCard fullWidth={true}>\n        <Typography\n          variant='subtitle2'\n          style={{ marginTop: '0px', marginBottom: '10px' }}\n        >\n          {t('payments.reversal.paymentDetails', { defaultValue: 'Payment Details' })}\n        </Typography>\n\n        <Box display='flex' flexDirection='column'>\n          <Grid container spacing={1}>\n            {[\n              [t('payments.reversal.transactionId', { defaultValue: 'Transaction ID' }), paymentData?.transactionId || t('common.notAvailable', { defaultValue: 'N/A' })],\n              [t('payments.reversal.dateTime', { defaultValue: 'Date/Time' }), paymentData?.transactionDate ? DateTime.fromJSDate(new Date(paymentData?.transactionDate)).toFormat('EEE, MMM d, yyyy') : t('common.notAvailable', { defaultValue: 'N/A' })],\n              [t('payments.reversal.processor', { defaultValue: 'Processor' }), paymentData?.paymentSourceName || t('payments.reversal.noInformationFound', { defaultValue: 'No Information found' })],\n              [t('payments.reversal.responseCode', { defaultValue: 'Response Code' }), paymentData?.authorizationNumber || t('common.notAvailable', { defaultValue: 'N/A' })]\n            ].map(([k, v]) => (\n              <Grid item xs={12} sm={6}>\n                {/* @ts-ignore */}\n                <ListElement subject={k} value={v} hideDivider={true} />\n              </Grid>\n            ))}\n          </Grid>\n        </Box>\n\n        <Divider style={{ marginTop: '10px', marginBottom: '10px' }} />\n\n        <Box display='flex' flexDirection='column'>\n          <Grid container spacing={1}>\n            {[\n              [t('payments.reversal.customerName', { defaultValue: 'Customer Name' }), paymentTransaction?.reference3 || t('common.notAvailable', { defaultValue: 'N/A' })],\n              [t('payments.reversal.type', { defaultValue: 'Type' }), paymentData?.tender || t('common.notAvailable', { defaultValue: 'N/A' })],\n              [t('payments.reversal.cardHolderName', { defaultValue: 'Card Holder Name' }), t('common.notAvailable', { defaultValue: 'N/A' })],\n              [t('payments.reversal.ccNumber', { defaultValue: 'CC Number' }), paymentData?.cardLast4 || t('common.notAvailable', { defaultValue: 'N/A' })],\n              [t('payments.reversal.company', { defaultValue: 'Company' }), paymentTransaction?.applicationClient?.name || t('common.notAvailable', { defaultValue: 'N/A' })],\n              [t('payments.reversal.expirationDate', { defaultValue: 'Expiration Date' }), paymentData?.date || t('common.notAvailable', { defaultValue: 'N/A' })],\n              [t('payments.reversal.avs', { defaultValue: 'AVS' }), t('common.notAvailable', { defaultValue: 'N/A' })],\n              [t('payments.reversal.status', { defaultValue: 'Status' }), paymentData?.authorizationNumber ? t('payments.reversal.approved', { defaultValue: 'Approved' }) : t('payments.reversal.declined', { defaultValue: 'Declined' })],\n              [t('payments.reversal.confirmation', { defaultValue: 'Confirmation' }), paymentData?.authorizationNumber || t('common.notAvailable', { defaultValue: 'N/A' })]\n            ].map(([k, v]) => (\n              <Grid item xs={12} sm={6}>\n                {/* @ts-ignore */}\n                <ListElement subject={k} value={v} hideDivider={true} />\n              </Grid>\n            ))}\n          </Grid>\n        </Box>\n\n        <Divider style={{ marginTop: '10px', marginBottom: '10px' }} />\n\n        <Box display='flex' flexDirection='column'>\n          <Grid container spacing={1}>\n            {[\n              [t('payments.reversal.firstAttemptDate', { defaultValue: 'First Attempt Date' }), paymentData?.date || t('common.notAvailable', { defaultValue: 'N/A' })],\n              [t('payments.reversal.initialTransaction', { defaultValue: 'Initial Transaction' }), paymentData?.date || t('common.notAvailable', { defaultValue: 'N/A' })],\n              [t('payments.reversal.nextAttemptDate', { defaultValue: 'Next Attempt Date' }), paymentData?.date || t('common.notAvailable', { defaultValue: 'N/A' })],\n              [t('payments.reversal.retryCount', { defaultValue: 'Retry Count' }), t('common.notAvailable', { defaultValue: 'N/A' })]\n            ].map(([k, v]) => (\n              <Grid item xs={12} sm={6}>\n                {/* @ts-ignore */}\n                <ListElement subject={k} value={v} hideDivider={true} />\n              </Grid>\n            ))}\n          </Grid>\n        </Box>\n\n        <Divider style={{ marginTop: '10px', marginBottom: '10px' }} />\n\n        <Form\n          id={id}\n          onSubmit={handleSubmitPaymentReversal}\n          render={({ handleSubmit, form, values }) => {\n            return (\n              <>\n                <FormControl className={classes.formControl}>\n                  <Field\n                    component={FluentTextField}\n                    ComponentProps={{\n                      label: t('payments.reversal.amountToReverse', { defaultValue: 'Amount to Reverse' }),\n                      variant: 'outlined',\n                      margin: 'normal',\n                      size: 'small',\n                      disabled: false,\n                      fullWidth: true,\n                      autoComplete: 'off',\n                      inputProps: {\n                        maxLength: 256,\n                        autocomplete: 'off'\n                      }\n                    }}\n                    name='amountToReverse'\n                    initialValue={paymentData?.amount}\n                    onChange={() => {}}\n                    required={true}\n                  />\n                </FormControl>\n\n                <FormControl className={classes.formControlGeneral}>\n                  <FormControlLabel\n                    control={\n                      <Field\n                        component={FluentCheckbox}\n                        name='isSendCustomerPaymentConfirmation'\n                        type='checkbox'\n                        defaultValue={false}\n                        required={false}\n                        onChange={() => {}}\n                        // @ts-ignore\n                        size='small'\n                      />\n                    }\n                    label={t('payments.reversal.sendConfirmation', { defaultValue: 'Send Customer Payment Confirmation' })}\n                  />\n                </FormControl>\n              </>\n            );\n          }}\n        />\n      </AmbientCard>\n    </Box>\n  );\n};\n"],"mappings":"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"}