|
|
|
@ -12,11 +12,13 @@ import RequireAuth from '@/components/RequireAuth';
|
|
|
|
|
import { PERM_PRODUCTS_OFFER_AUDIT, PERM_PRODUCTS_OFFER_PUT } from '@/config';
|
|
|
|
|
import dayjs from 'dayjs';
|
|
|
|
|
import VendorSelector from '@/components/VendorSelector';
|
|
|
|
|
import AuditStateSelector from '@/components/AuditStateSelector';
|
|
|
|
|
const Header = ({ refresh, ...props }) => {
|
|
|
|
|
const { travel_agency_id, use_year, audit_state } = useParams();
|
|
|
|
|
const { t } = useTranslation();
|
|
|
|
|
const isPermitted = useAuthStore(state => state.isPermitted);
|
|
|
|
|
const [activeAgency, setActiveAgency] = useProductsStore((state) => [state.activeAgency, state.setActiveAgency]);
|
|
|
|
|
const stateMapVal = useProductsAuditStatesMapVal();
|
|
|
|
|
const { message, notification } = App.useApp();
|
|
|
|
|
const navigate = useNavigate();
|
|
|
|
|
|
|
|
|
@ -29,6 +31,8 @@ const Header = ({ refresh, ...props }) => {
|
|
|
|
|
|
|
|
|
|
const [param, setParam] = useState({ pick_year: baseYear, pick_agency: travel_agency_id, });
|
|
|
|
|
const [pickYear, setPickYear] = useState(baseYear);
|
|
|
|
|
const [pickAgency, setPickAgency] = useState({value: activeAgency.travel_agency_id, label: activeAgency.travel_agency_name });
|
|
|
|
|
const [pickAuditState, setPickAuditState] = useState();
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
refresh(param);
|
|
|
|
|
navigate(`/products/${activeAgency.travel_agency_id}/${pickYear}/${audit_state}/audit`);
|
|
|
|
@ -36,12 +40,28 @@ const Header = ({ refresh, ...props }) => {
|
|
|
|
|
return () => {};
|
|
|
|
|
}, [param]);
|
|
|
|
|
|
|
|
|
|
const emptyPickState = { value: '', label: t('products:State') };
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
const baseState = audit_state === 'all' ? emptyPickState : stateMapVal[`${audit_state}`];
|
|
|
|
|
if (isEmpty(pickAuditState)) {
|
|
|
|
|
setPickAuditState(baseState);
|
|
|
|
|
}
|
|
|
|
|
return () => {};
|
|
|
|
|
}, [audit_state, stateMapVal])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const handleYearChange = (value) => {
|
|
|
|
|
setPickYear(value);
|
|
|
|
|
setParam((pre) => ({ ...pre, ...{ pick_year: value } }));
|
|
|
|
|
};
|
|
|
|
|
const handleAuditStateChange = (labelValue) => {
|
|
|
|
|
const { value } = labelValue || emptyPickState;
|
|
|
|
|
setPickAuditState(labelValue || emptyPickState);
|
|
|
|
|
setParam((pre) => ({ ...pre, ...{ pick_state: value } }));
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const handleAgencyChange = ({ label, value }) => {
|
|
|
|
|
setPickAgency({ label, value });
|
|
|
|
|
setActiveAgency({ travel_agency_id: value, travel_agency_name: label });
|
|
|
|
|
setParam((pre) => ({ ...pre, ...{ pick_agency: value } }));
|
|
|
|
|
};
|
|
|
|
@ -71,8 +91,9 @@ const Header = ({ refresh, ...props }) => {
|
|
|
|
|
<h2 className='m-0 leading-tight'>
|
|
|
|
|
{isPermitted(PERM_PRODUCTS_OFFER_AUDIT) ? (
|
|
|
|
|
<VendorSelector
|
|
|
|
|
value={{ label: activeAgency.travel_agency_name, value: activeAgency.travel_agency_id }}
|
|
|
|
|
value={pickAgency}
|
|
|
|
|
onChange={handleAgencyChange}
|
|
|
|
|
allowClear={false}
|
|
|
|
|
mode={null}
|
|
|
|
|
className='w-72'
|
|
|
|
|
size='large'
|
|
|
|
@ -83,6 +104,8 @@ const Header = ({ refresh, ...props }) => {
|
|
|
|
|
)}
|
|
|
|
|
<Divider type={'vertical'} />
|
|
|
|
|
<Select options={yearOptions} variant={'borderless'} className='w-24' size='large' value={pickYear} onChange={handleYearChange} />
|
|
|
|
|
<Divider type={'vertical'} />
|
|
|
|
|
<AuditStateSelector variant={'borderless'} className='w-32' size='large' value={pickAuditState} onChange={handleAuditStateChange} />
|
|
|
|
|
{/* <Divider type={'vertical'} />
|
|
|
|
|
{(use_year || '').replace('all', '')} */}
|
|
|
|
|
</h2>
|
|
|
|
@ -266,15 +289,16 @@ const Audit = ({ ...props }) => {
|
|
|
|
|
const { travel_agency_id, use_year, audit_state } = useParams();
|
|
|
|
|
const [loading, activeAgency, getAgencyProducts] = useProductsStore((state) => [state.loading, state.activeAgency, state.getAgencyProducts]);
|
|
|
|
|
|
|
|
|
|
const handleGetAgencyProducts = ({pick_year, pick_agency}={}) => {
|
|
|
|
|
const handleGetAgencyProducts = ({pick_year, pick_agency, pick_state}={}) => {
|
|
|
|
|
const year = pick_year || use_year;
|
|
|
|
|
const agency = pick_agency || travel_agency_id;
|
|
|
|
|
getAgencyProducts({ travel_agency_id: agency, use_year: year, audit_state });
|
|
|
|
|
const state = pick_state ?? audit_state;
|
|
|
|
|
getAgencyProducts({ travel_agency_id: agency, use_year: year, audit_state: state });
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
<>
|
|
|
|
|
<SecondHeaderWrapper header={<Header title={activeAgency.travel_agency_name} refresh={handleGetAgencyProducts} />} loading={loading} backTo={`/products`}>
|
|
|
|
|
<SecondHeaderWrapper loading={loading} backTo={`/products`} header={<Header title={activeAgency.travel_agency_name} refresh={handleGetAgencyProducts} />}>
|
|
|
|
|
{/* <PrintContractPDF /> */}
|
|
|
|
|
|
|
|
|
|
<TypesPanels refresh={handleGetAgencyProducts} />
|
|
|
|
|