SHARE
TWEET

Untitled

a guest Dec 9th, 2019 75 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import React, { FC } from 'react';
  2. import { Col, Form, Row } from 'react-bootstrap';
  3. import useForm from 'react-hook-form';
  4. import { RouteComponentProps } from 'react-router';
  5. import {
  6.   ACTION_EVENTS,
  7.   alertManager,
  8.   AlertProps,
  9.   AlertType,
  10.   EditForm,
  11.   EditViewProps,
  12.   ERROR,
  13.   getSelectedItem,
  14.   InputGroupInline,
  15.   InputType,
  16.   isEmpty,
  17.   showToast,
  18.   WindowComponent,
  19. } from 'summer';
  20. import { CLASS_NAME, Especie } from '../../../../models/dtos/ger/especie';
  21. import { MODELODOCUMENTOENUM_VALUES } from '../../../../models/enumerated/ger/modeloDocumentoEnum';
  22. import { findEspecieByModelo } from '../../../../services/mlf.service';
  23.  
  24. interface EspecieEditViewProps extends EditViewProps<Especie> {}
  25.  
  26. const EspecieEditView: FC<EspecieEditViewProps & RouteComponentProps> = props => {
  27.   const selectedItem = getSelectedItem(props);
  28.  
  29.   const { reset, ...formProps } = useForm<Especie>({ defaultValues: selectedItem, mode: 'onBlur' });
  30.  
  31.   function verificarEspecie(formData: Especie): void {
  32.     findEspecieByModelo(formData.modelo, false, {
  33.       errorFunction: mensagem => {
  34.         console.log(mensagem);
  35.         showToast(mensagem, ERROR);
  36.       },
  37.       thenFunction: result => {
  38.         showEspecieExistente(result);
  39.         reset(result);
  40.       },
  41.     });
  42.   }
  43.  
  44.   function showEspecieExistente(especieResult: Especie): void {
  45.     if (especieResult) {
  46.       const params: AlertProps = {
  47.         message: 'Modelo do Documento já está cadastrado em outra Espécie. Confirma a gravação?',
  48.         type: AlertType.WARNING_YES_NO,
  49.       };
  50.       alertManager.emit(ACTION_EVENTS.SHOW, params);
  51.     }
  52.   }
  53.  
  54.   const beforePersist = (formData: Especie, done) => {
  55.     const params: AlertProps = {
  56.       message: 'Modelo do Documento NÃO foi preenchido. Confirma a gravação',
  57.       type: AlertType.WARNING_YES_NO,
  58.     };
  59.  
  60.     if (formData.modelo === null || isEmpty(formData.modelo)) {
  61.       alertManager.emit(ACTION_EVENTS.SHOW, params);
  62.     } else if (formData.modelo) {
  63.       verificarEspecie(formData);
  64.     }
  65.     setTimeout(() => {
  66.       return done(formData);
  67.     }, 2000);
  68.     return { async: true };
  69.   };
  70.  
  71.   return (
  72.     <WindowComponent title="Manutenção de Espécie" showHeader={props.showHeader}>
  73.       <EditForm formProps={formProps} editViewProps={props} dtoClassName={CLASS_NAME} beforePersist={beforePersist}>
  74.         <Row>
  75.           <Col>
  76.             <InputGroupInline
  77.               formProps={{ ...formProps, validation: { required: true, maxLength: 8 } }}
  78.               id="abreviacao"
  79.               isPrependLabel={true}
  80.               label="Abreviação"
  81.               placeholder="Informe a Abreviação da espécie."
  82.             />
  83.             <InputGroupInline
  84.               formProps={{ ...formProps, validation: { required: true, maxLength: 120 } }}
  85.               id="descricao"
  86.               isPrependLabel={true}
  87.               label="Descrição"
  88.               placeholder="Informe a descrição"
  89.             />
  90.             <InputGroupInline
  91.               formProps={{ ...formProps }}
  92.               id="modelo"
  93.               inputDropDownProps={{ optionsProvider: MODELODOCUMENTOENUM_VALUES }}
  94.               isPrependLabel={true}
  95.               label="Modelo do Documento"
  96.               placeholder="Informe o Modelo do Documento"
  97.               type={InputType.DROP_DOWN}
  98.             />
  99.           </Col>
  100.         </Row>
  101.         <Row>
  102.           <Col>
  103.             <Form.Check
  104.               type="checkbox"
  105.               label="Espécie para Cupom Fiscal ou Máquina Registradora (ECF, CF, CMR)"
  106.               name="cupomFiscalMaqReg"
  107.               ref={formProps.register}
  108.             />
  109.             <Form.Check type="checkbox" label="Habilitar intervalo de Notas Fiscais" name="sequenciarNotas" ref={formProps.register} />
  110.             <Form.Check
  111.               type="checkbox"
  112.               label="Não exigir o preenchimento do Participante nos lançamentos de entrada/saída"
  113.               name="naoValidarParticipante"
  114.               ref={formProps.register}
  115.             />
  116.             <Form.Check type="checkbox" label="Habilitar aba do EFD-Reinf" name="habilitarReinf" ref={formProps.register} />
  117.           </Col>
  118.         </Row>
  119.       </EditForm>
  120.     </WindowComponent>
  121.   );
  122. };
  123.  
  124. export default EspecieEditView;
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top