{"version":3,"sources":["./$_lazy_route_resource lazy namespace object","./node_modules/moment/locale sync ^\\.\\/.*$","./src/app/_utils/dialog-limpar-fazenda/dialog-limpar-fazenda.component.html","./src/app/_utils/dialogo-alerta/dialogo-alerta.component.html","./src/app/_utils/dialogo-confirmacao/dialogo-confirmacao.component.html","./src/app/_utils/loader/loader.component.html","./src/app/_utils/popup-alteracao-fazenda/popup-alteracao-fazenda.component.html","./src/app/alta-cria/colostragem-cadastro/colostragem-cadastro.component.html","./src/app/alta-cria/eventos-cadastro/eventos-cadastro.component.html","./src/app/alta-cria/pesagem-cadastro/pesagem-cadastro.component.html","./src/app/app.component.html","./src/app/configurations/composicao-racial-cadastro/composicao-racial-cadastro.component.html","./src/app/configurations/inseminador-cadastro/inseminador-cadastro.component.html","./src/app/configurations/lote-cadastro/lote-cadastro.component.html","./src/app/configurations/protocolo-cadastro/protocolo-cadastro.component.html","./src/app/configurations/protocolo-detelhe-cadastro/protocolo-detelhe-cadastro.component.html","./src/app/configurations/reprodutor-cadastro/reprodutor-cadastro.component.html","./src/app/home/home.component.html","./src/app/login/login.component.html","./src/app/matrix/matriz-cadastro/matriz-cadastro.component.html","./src/app/matrix/matriz-historico-cadastro/matriz-historico-cadastro.component.html","./src/app/matrix/matriz-mae-cadastro/matriz-mae-cadastro.component.html","./src/app/production/controle-leiteiro-cadastro/controle-leiteiro-cadastro.component.html","./src/app/production/secagem-cadastro/secagem-cadastro.component.html","./src/app/reproduction/consulta-cadastro/consulta-cadastro.component.html","./src/app/reproduction/historico-reproducao-cadastro/historico-reproducao-cadastro.component.html","./src/app/reproduction/ia-cob-te-cadastro/ia-cob-te-cadastro.component.html","./src/app/reproduction/ia-cob-te-detalhe/ia-cob-te-detalhe.component.html","./src/app/reproduction/iatf-cadastro/iatf-cadastro.component.html","./src/app/reproduction/ocorrencia-reproducao-cadastro/ocorrencia-reproducao-cadastro.component.html","./src/app/reproduction/ocorrencia-reproducao-detalhe/ocorrencia-reproducao-detalhe.component.html","./src/app/reproduction/parto-cadastro/parto-cadastro.component.html","./src/app/reproduction/parto-detalhe/parto-detalhe.component.html","./src/app/reproduction/toque-detalhe/toque-detalhe.component.html","./node_modules/tslib/tslib.es6.js","./src/app/_authorization/auth.config.ts","./src/app/_enums/resultado-diagnostico.enum.ts","./src/app/_enums/tipo-parto.enum.ts","./src/app/_enums/tipo-tentativa.enum.ts","./src/app/_services/alta-cria.service.ts","./src/app/_services/alta-gestao.service.ts","./src/app/_services/auth-guard.service.ts","./src/app/_services/cadastro.service.ts","./src/app/_services/configuracoes.service.ts","./src/app/_services/email.service.ts","./src/app/_services/fazenda.service.ts","./src/app/_services/log-acesso.service.ts","./src/app/_services/matriz.service.ts","./src/app/_services/parametros-editaveis.service.ts","./src/app/_services/producao.service.ts","./src/app/_services/reproducao.service.ts","./src/app/_services/usuario.service.ts","./src/app/_services/validacao-diagnostico-reproducao.service.ts","./src/app/_services/validacao-ia-cob-te-reproducao.service.ts","./src/app/_services/validacao-parto-reproducao.service.ts","./src/app/_services/validacao-reproducao.service.ts","./src/app/_services/validacao-secagem-reproducao.service.ts","./src/app/_utils/CustomPaginatorConfiguration.ts","./src/app/_utils/calendar-date-format.utils.ts","./src/app/_utils/dialog-limpar-fazenda/dialog-limpar-fazenda.component.scss","./src/app/_utils/dialog-limpar-fazenda/dialog-limpar-fazenda.component.ts","./src/app/_utils/dialogo-alerta/dialogo-alerta.component.ts","./src/app/_utils/dialogo-confirmacao/dialogo-confirmacao.component.scss","./src/app/_utils/dialogo-confirmacao/dialogo-confirmacao.component.ts","./src/app/_utils/loader/loader.component.scss","./src/app/_utils/loader/loader.component.ts","./src/app/_utils/popup-alteracao-fazenda/popup-alteracao-fazenda.component.scss","./src/app/_utils/popup-alteracao-fazenda/popup-alteracao-fazendacomponent.ts","./src/app/alta-cria/colostragem-cadastro/colostragem-cadastro.component.scss","./src/app/alta-cria/colostragem-cadastro/colostragem-cadastro.component.ts","./src/app/alta-cria/eventos-cadastro/eventos-cadastro.component.scss","./src/app/alta-cria/eventos-cadastro/eventos-cadastro.component.ts","./src/app/alta-cria/pesagem-cadastro/pesagem-cadastro.component.scss","./src/app/alta-cria/pesagem-cadastro/pesagem-cadastro.component.ts","./src/app/app-routing.module.ts","./src/app/app.component.scss","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/configurations/composicao-racial-cadastro/composicao-racial-cadastro.component.scss","./src/app/configurations/composicao-racial-cadastro/composicao-racial-cadastro.component.ts","./src/app/configurations/inseminador-cadastro/inseminador-cadastro.component.scss","./src/app/configurations/inseminador-cadastro/inseminador-cadastro.component.ts","./src/app/configurations/lote-cadastro/lote-cadastro.component.scss","./src/app/configurations/lote-cadastro/lote-cadastro.component.ts","./src/app/configurations/protocolo-cadastro/protocolo-cadastro.component.scss","./src/app/configurations/protocolo-cadastro/protocolo-cadastro.component.ts","./src/app/configurations/protocolo-detelhe-cadastro/protocolo-detelhe-cadastro.component.scss","./src/app/configurations/protocolo-detelhe-cadastro/protocolo-detelhe-cadastro.component.ts","./src/app/configurations/reprodutor-cadastro/reprodutor-cadastro.component.scss","./src/app/configurations/reprodutor-cadastro/reprodutor-cadastro.component.ts","./src/app/home/home.component.scss","./src/app/home/home.component.ts","./src/app/login/login.component.scss","./src/app/login/login.component.ts","./src/app/matrix/matriz-cadastro/matriz-cadastro.component.scss","./src/app/matrix/matriz-cadastro/matriz-cadastro.component.ts","./src/app/matrix/matriz-historico-cadastro/matriz-historico-cadastro.component.scss","./src/app/matrix/matriz-historico-cadastro/matriz-historico-cadastro.component.ts","./src/app/matrix/matriz-mae-cadastro/matriz-mae-cadastro.component.scss","./src/app/matrix/matriz-mae-cadastro/matriz-mae-cadastro.component.ts","./src/app/production/controle-leiteiro-cadastro/controle-leiteiro-cadastro.component.scss","./src/app/production/controle-leiteiro-cadastro/controle-leiteiro-cadastro.component.ts","./src/app/production/secagem-cadastro/secagem-cadastro.component.scss","./src/app/production/secagem-cadastro/secagem-cadastro.component.ts","./src/app/reproduction/consulta-cadastro/consulta-cadastro.component.scss","./src/app/reproduction/consulta-cadastro/consulta-cadastro.component.ts","./src/app/reproduction/historico-reproducao-cadastro/historico-reproducao-cadastro.component.scss","./src/app/reproduction/historico-reproducao-cadastro/historico-reproducao-cadastro.component.ts","./src/app/reproduction/ia-cob-te-cadastro/ia-cob-te-cadastro.component.scss","./src/app/reproduction/ia-cob-te-cadastro/ia-cob-te-cadastro.component.ts","./src/app/reproduction/ia-cob-te-detalhe/ia-cob-te-detalhe.component.scss","./src/app/reproduction/ia-cob-te-detalhe/ia-cob-te-detalhe.component.ts","./src/app/reproduction/iatf-cadastro/iatf-cadastro.component.scss","./src/app/reproduction/iatf-cadastro/iatf-cadastro.component.ts","./src/app/reproduction/ocorrencia-reproducao-cadastro/ocorrencia-reproducao-cadastro.component.scss","./src/app/reproduction/ocorrencia-reproducao-cadastro/ocorrencia-reproducao-cadastro.component.ts","./src/app/reproduction/ocorrencia-reproducao-detalhe/ocorrencia-reproducao-detalhe.component.scss","./src/app/reproduction/ocorrencia-reproducao-detalhe/ocorrencia-reproducao-detalhe.component.ts","./src/app/reproduction/parto-cadastro/parto-cadastro.component.scss","./src/app/reproduction/parto-cadastro/parto-cadastro.component.ts","./src/app/reproduction/parto-detalhe/parto-detalhe.component.scss","./src/app/reproduction/parto-detalhe/parto-detalhe.component.ts","./src/app/reproduction/toque-detalhe/toque-detalhe.component.scss","./src/app/reproduction/toque-detalhe/toque-detalhe.component.ts","./src/environments/environment.ts","./src/main.ts","./src/models/alta-cria/colostragem-filtro.model.ts","./src/models/alta-cria/colostragem.model.ts","./src/models/alta-cria/evento-filtro.model.ts","./src/models/alta-cria/evento.model.ts","./src/models/alta-cria/pesagem-filtro.model.ts","./src/models/alta-cria/pesagem.model.ts","./src/models/configuracoes/base-touros-filtro.model.ts","./src/models/configuracoes/inseminador.model.ts","./src/models/configuracoes/protocolo-detalhes.model.ts","./src/models/configuracoes/semen-touro.model.ts","./src/models/email.model.ts","./src/models/fazenda.model.ts","./src/models/logacesso.model.ts","./src/models/matriz/composicao-racial.model.ts","./src/models/matriz/historico-matriz.model.ts","./src/models/matriz/lote.model.ts","./src/models/matriz/matriz.model.ts","./src/models/parametro-filtro.model.ts","./src/models/pessoa.model.ts","./src/models/producao/controle-leiteiro.model.ts","./src/models/producao/secagem.model.ts","./src/models/reproducao/historico-reproducao-filtro.model.ts","./src/models/reproducao/historico-reproducao.model.ts","./src/models/reproducao/ocorrencia-de-reproducao.model.ts","./src/models/usuario-fazenda.model.ts","./src/models/usuario.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,qC;;;;;;;;;;;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6E;;;;;;;;;;;;ACnSA;AAAe,w5D;;;;;;;;;;;;ACAf;AAAe,8FAA+B,WAAW,gKAAgK,oBAAoB,mC;;;;;;;;;;;;ACA7O;AAAe,uGAAwC,WAAW,mLAAmL,qBAAqB,4EAA4E,oBAAoB,mC;;;;;;;;;;;;ACA1W;AAAe,+R;;;;;;;;;;;;ACAf;AAAe,y5CAA01C,gBAAgB,IAAI,wBAAwB,u0D;;;;;;;;;;;;ACAr5C;AAAe,o2BAAqyB,uHAAuH,yKAAyK,uGAAuG,2HAA2H,8nFAA8nF,uHAAuH,srBAAsrB,YAAY,2lBAA2lB,gBAAgB,iiBAAiiB,KAAK,mlCAAmlC,yBAAyB,6qBAA6qB,YA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","file":"main-es2015.js","sourcesContent":["var map = {\n\t\"./alta-cria/_alta-cria-module/alta-cria.module\": [\n\t\t\"./src/app/alta-cria/_alta-cria-module/alta-cria.module.ts\",\n\t\t\"default~alta-cria-_alta-cria-module-alta-cria-module~analises-_analises-module-analises-module~bench~3ac2174d\",\n\t\t\"common\",\n\t\t\"alta-cria-_alta-cria-module-alta-cria-module\"\n\t],\n\t\"./analises/_analises-module/analises.module\": [\n\t\t\"./src/app/analises/_analises-module/analises.module.ts\",\n\t\t\"default~alta-cria-_alta-cria-module-alta-cria-module~analises-_analises-module-analises-module~bench~3ac2174d\",\n\t\t\"common\",\n\t\t\"analises-_analises-module-analises-module\"\n\t],\n\t\"./benchmarking/_benchmarking-module/benchmarking.module\": [\n\t\t\"./src/app/benchmarking/_benchmarking-module/benchmarking.module.ts\",\n\t\t\"default~alta-cria-_alta-cria-module-alta-cria-module~analises-_analises-module-analises-module~bench~3ac2174d\",\n\t\t\"benchmarking-_benchmarking-module-benchmarking-module\"\n\t],\n\t\"./cadastro/_cadastro-module/cadastro.module\": [\n\t\t\"./src/app/cadastro/_cadastro-module/cadastro.module.ts\",\n\t\t\"default~alta-cria-_alta-cria-module-alta-cria-module~analises-_analises-module-analises-module~bench~3ac2174d\",\n\t\t\"cadastro-_cadastro-module-cadastro-module\"\n\t],\n\t\"./configurations/_configuracoes-module/configuracoes.module\": [\n\t\t\"./src/app/configurations/_configuracoes-module/configuracoes.module.ts\",\n\t\t\"default~alta-cria-_alta-cria-module-alta-cria-module~analises-_analises-module-analises-module~bench~3ac2174d\",\n\t\t\"configurations-_configuracoes-module-configuracoes-module\"\n\t],\n\t\"./dashboard/_dashboard-module/dashboard.module\": [\n\t\t\"./src/app/dashboard/_dashboard-module/dashboard.module.ts\",\n\t\t\"default~alta-cria-_alta-cria-module-alta-cria-module~analises-_analises-module-analises-module~bench~3ac2174d\",\n\t\t\"common\",\n\t\t\"dashboard-_dashboard-module-dashboard-module\"\n\t],\n\t\"./ficha-individual/_ficha-individual-module/ficha-individual.module\": [\n\t\t\"./src/app/ficha-individual/_ficha-individual-module/ficha-individual.module.ts\",\n\t\t\"default~alta-cria-_alta-cria-module-alta-cria-module~analises-_analises-module-analises-module~bench~3ac2174d\",\n\t\t\"common\",\n\t\t\"ficha-individual-_ficha-individual-module-ficha-individual-module\"\n\t],\n\t\"./importacoes/_importacoes-module/importacoes.module\": [\n\t\t\"./src/app/importacoes/_importacoes-module/importacoes.module.ts\",\n\t\t\"default~alta-cria-_alta-cria-module-alta-cria-module~analises-_analises-module-analises-module~bench~3ac2174d\",\n\t\t\"importacoes-_importacoes-module-importacoes-module\"\n\t],\n\t\"./listing/_listagem-module/listagem.module\": [\n\t\t\"./src/app/listing/_listagem-module/listagem.module.ts\",\n\t\t\"default~alta-cria-_alta-cria-module-alta-cria-module~analises-_analises-module-analises-module~bench~3ac2174d\",\n\t\t\"common\",\n\t\t\"listing-_listagem-module-listagem-module\"\n\t],\n\t\"./matrix/_matriz-module/matriz.module\": [\n\t\t\"./src/app/matrix/_matriz-module/matriz.module.ts\",\n\t\t\"default~alta-cria-_alta-cria-module-alta-cria-module~analises-_analises-module-analises-module~bench~3ac2174d\",\n\t\t\"matrix-_matriz-module-matriz-module\"\n\t],\n\t\"./production/_producao-module/producao.module\": [\n\t\t\"./src/app/production/_producao-module/producao.module.ts\",\n\t\t\"default~alta-cria-_alta-cria-module-alta-cria-module~analises-_analises-module-analises-module~bench~3ac2174d\",\n\t\t\"common\",\n\t\t\"production-_producao-module-producao-module\"\n\t],\n\t\"./relatorios/_relatorios-module/relatorios.module\": [\n\t\t\"./src/app/relatorios/_relatorios-module/relatorios.module.ts\",\n\t\t\"default~alta-cria-_alta-cria-module-alta-cria-module~analises-_analises-module-analises-module~bench~3ac2174d\",\n\t\t\"relatorios-_relatorios-module-relatorios-module\"\n\t],\n\t\"./reproduction/_reproducao-module/reproducao.module\": [\n\t\t\"./src/app/reproduction/_reproducao-module/reproducao.module.ts\",\n\t\t\"default~alta-cria-_alta-cria-module-alta-cria-module~analises-_analises-module-analises-module~bench~3ac2174d\",\n\t\t\"common\",\n\t\t\"reproduction-_reproducao-module-reproducao-module\"\n\t],\n\t\"./schedule/_agenda-module/agenda.module\": [\n\t\t\"./src/app/schedule/_agenda-module/agenda.module.ts\",\n\t\t\"default~alta-cria-_alta-cria-module-alta-cria-module~analises-_analises-module-analises-module~bench~3ac2174d\",\n\t\t\"common\",\n\t\t\"schedule-_agenda-module-agenda-module\"\n\t],\n\t\"./simulador-reproducao/_simulador-reproducao-module/simulador-reproducao.module\": [\n\t\t\"./src/app/simulador-reproducao/_simulador-reproducao-module/simulador-reproducao.module.ts\",\n\t\t\"default~alta-cria-_alta-cria-module-alta-cria-module~analises-_analises-module-analises-module~bench~3ac2174d\",\n\t\t\"simulador-reproducao-_simulador-reproducao-module-simulador-reproducao-module\"\n\t],\n\t\"./taxa-concepcao/_taxa-concepcao-module/taxa-concepcao.module\": [\n\t\t\"./src/app/taxa-concepcao/_taxa-concepcao-module/taxa-concepcao.module.ts\",\n\t\t\"default~alta-cria-_alta-cria-module-alta-cria-module~analises-_analises-module-analises-module~bench~3ac2174d\",\n\t\t\"common\",\n\t\t\"taxa-concepcao-_taxa-concepcao-module-taxa-concepcao-module\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn-bd\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn-bd.js\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-in\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-in.js\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-sg\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./en-sg.js\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-mx\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-mx.js\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-us\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fil\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fil.js\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./ga\": \"./node_modules/moment/locale/ga.js\",\n\t\"./ga.js\": \"./node_modules/moment/locale/ga.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-deva\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-deva.js\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it-ch\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it-ch.js\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ku\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ku.js\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./oc-lnc\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./oc-lnc.js\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tk\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tk.js\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-mo\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-mo.js\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";","export default \"
\\r\\n
\\r\\n
\\r\\n

Você realmente deseja limpar a fazenda selecionada?

\\r\\n

Dados que serão removidos:

\\r\\n
    \\r\\n
  • Matrizes
  • \\r\\n
  • Produção
  • \\r\\n
  • Reprodução
  • \\r\\n
  • Relatórios
  • \\r\\n
\\r\\n

Caso queira prosseguir com a limpeza da fazenda, clique em ENVIAR CÓDIGO para receber o código de confirmação por e-mail.

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Código\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\"","export default \"\\r\\n {{ message }}\\r\\n\\r\\n\\r\\n \\r\\n\"","export default \"\\r\\n\\t

\\r\\n\\t\\t{{ message }}\\r\\n\\t

\\r\\n
\\r\\n\\r\\n\\t\\r\\n\\t\\r\\n\"","export default \"
\\r\\n \\r\\n \\r\\n
\"","export default \"
\\r\\n

\\r\\n Selecione uma fazenda\\r\\n

\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n Selecione a fazenda\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{ fazenda.nome }} ({{ fazenda.proprietario }})\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n done_outline\\r\\n Selecionar\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n done_outline\\r\\n Nenhuma\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n close\\r\\n Fechar\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\"","export default \"\\r\\n\\r\\n \\r\\n

Cadastro de Colostragem AltaCria

\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n Dados do animal\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Número\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Nome\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Registro\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Nascimento\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n Colostragem\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n Tipo Colostro\\r\\n \\r\\n {{ colostro }} \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Tipo Fornecimento\\r\\n \\r\\n {{ fornecimento }} \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Qualidade\\r\\n \\r\\n {{ q }} \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Valor cor\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Quant. (Litros)\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Avaliação da proteína\\r\\n \\r\\n {{ proteina }} \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Proteína Sérica\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Funcionario\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\"","export default \"
\\r\\n

Cadastro Eventos AltaCria

\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
Dt. Evento
\\r\\n
{{ dataItem.dataEvento | date:'dd/MM/yyyy' }}
\\r\\n\\r\\n
Evento
\\r\\n
{{ dataItem.evento }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n Total: {{ itemsSource ? itemsSource.length : 0 }}\\r\\n\\r\\n \\r\\n
{{ dataItem.dataEvento | date:'dd/MM/yyyy' }}
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Nenhum evento encontrado. Clique em adicionar para incluir um novo evento.\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Carregando registros...\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\"","export default \"
\\r\\n

Cadastro Pesagem AltaCria

\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
Dt. Pesagem
\\r\\n
{{ dataItem.dataPesagem | date:'dd/MM/yy' }}
\\r\\n\\r\\n
Peso
\\r\\n
{{ dataItem.peso }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n Total: {{ itemsSource ? itemsSource.length : 0 }}\\r\\n\\r\\n \\r\\n
{{ dataItem.dataPesagem | date:'dd/MM/yyyy' }}
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
{{ dataItem.peso }}
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Nenhuma pesagem encontrada. Clique em adicionar para incluir uma nova pesagem.\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Carregando registros...\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\"","export default \"\"","export default \"\\r\\n This content is never showing\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n

\\r\\n Alterar Composição Racial\\r\\n

\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n

\\r\\n Cadastrar Composição Racial\\r\\n

\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n Descrição\\r\\n \\r\\n \\r\\n\\r\\n
0\\\">\\r\\n\\r\\n
\\r\\n
Tipo
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n 0\\\">Mestiça  \\r\\n 0\\\">Pura\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n 0\\\">Mestiça  \\r\\n 0\\\">Pura\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Mestiça  \\r\\n Pura\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
0\\\">\\r\\n\\r\\n
\\r\\n
Ativa
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n 0\\\">Sim  \\r\\n 0\\\">Não\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n 0\\\">Sim  \\r\\n 0\\\">Não\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Sim  \\r\\n Não\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Raça 1\\r\\n 0\\\">\\r\\n {{ rac.descricao }} \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Raça 2\\r\\n 0 || desabilita\\\">\\r\\n {{ rac.descricao }} \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Raça 3\\r\\n 0 || desabilita\\\">\\r\\n {{ rac.descricao }} \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Raça 4\\r\\n 0 || desabilita\\\">\\r\\n {{ rac.descricao }} \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Raça 5\\r\\n 0 || desabilita\\\">\\r\\n {{ rac.descricao }} \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n Percentual 1\\r\\n 0\\\" \\r\\n (change)=\\\"hasValue('percentual1');validTotalPerc();\\\" [class.hasError]=\\\"hasError\\\">\\r\\n \\r\\n\\r\\n \\r\\n Percentual 2\\r\\n 0 || desabilita\\\" \\r\\n (change)=\\\"hasValue('percentual2');validTotalPerc();\\\" [class.hasError]=\\\"hasError\\\">\\r\\n \\r\\n\\r\\n \\r\\n Percentual 3\\r\\n 0 || desabilita\\\" \\r\\n (change)=\\\"hasValue('percentual3');validTotalPerc();\\\" [class.hasError]=\\\"hasError\\\">\\r\\n \\r\\n\\r\\n \\r\\n Percentual 4\\r\\n 0 || desabilita\\\" \\r\\n (change)=\\\"hasValue('percentual4');validTotalPerc();\\\" [class.hasError]=\\\"hasError\\\">\\r\\n \\r\\n\\r\\n \\r\\n Percentual 5\\r\\n 0 || desabilita\\\" \\r\\n (change)=\\\"hasValue('percentual5');validTotalPerc();\\\" [class.hasError]=\\\"hasError\\\">\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n {{ msgPercentual }} \\r\\n
\\r\\n\\r\\n
\\r\\n {{ msgPreenchimento }}\\r\\n
\\r\\n\\r\\n
\\r\\n {{ msgTotal }}\\r\\n
\\r\\n\\r\\n
\\r\\n {{ msg }}\\r\\n
\\r\\n\\r\\n
\\r\\n {{ msgRaca }} \\r\\n
\\r\\n \\r\\n
0\\\">\\r\\n \\r\\n help\\r\\n Não pode ser alterado porque é um registro padrão do sistema.\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\"","export default \"\\r\\n This content is never showing\\r\\n\\r\\n\\r\\n\\r\\n

Alterar Inseminador

\\r\\n
\\r\\n\\r\\n\\r\\n

Cadastrar Inseminador

\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n Nome\\r\\n *\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\"","export default \"\\r\\n This content is never showing\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n

\\r\\n Alterar Lote\\r\\n

\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n

\\r\\n Cadastrar Lote\\r\\n

\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n Descricao\\r\\n *\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\"","export default \"\\r\\n This content is never showing\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n

\\r\\n Alterar Protocolo\\r\\n

\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n

\\r\\n Cadastrar Protocolo\\r\\n

\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n Descrição\\r\\n 0\\\"> \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Implante\\r\\n 0 || data.protocolId.cdprotocolo > 0\\\"\\r\\n title=\\\"Inserção do implante\\\">\\r\\n \\r\\n\\r\\n \\r\\n Luteolise 1\\r\\n 0 || data.protocolId.cdprotocolo > 0\\\">\\r\\n \\r\\n\\r\\n \\r\\n Luteolise 2\\r\\n 0 || data.protocolId.cdprotocolo > 0\\\">\\r\\n \\r\\n\\r\\n \\r\\n EDF\\r\\n 0 || data.protocolId.cdprotocolo > 0\\\"\\r\\n title=\\\"Estímulo de desenvolvimento folicular final\\\">\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n Estimulo\\r\\n 0 || data.protocolId.cdprotocolo > 0\\\"\\r\\n title=\\\"Estímulo ovulatório\\\">\\r\\n \\r\\n\\r\\n \\r\\n Retirada\\r\\n 0 || data.protocolId.cdprotocolo > 0\\\"\\r\\n title=\\\"Retirada do implante\\\">\\r\\n \\r\\n\\r\\n \\r\\n Iatf\\r\\n 0 || data.protocolId.cdprotocolo > 0\\\">\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
0\\\">\\r\\n \\r\\n help\\r\\n Não pode ser alterado porque é um registro padrão do sistema.\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n {{ message && message.length > 0 ? message : '' }}\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\"","export default \"
\\r\\n

\\r\\n Detalhes de protocolo\\r\\n

\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n Protocolo\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n Fase\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Dias\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Produto\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Dose (ML)\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Produto\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Dose (ML)\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Produto\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Dose (ML)\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n Carregando registros...\\r\\n
\"","export default \"\\r\\n This content is never showing\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n

\\r\\n Alterar Semen/Touro\\r\\n

\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n

\\r\\n Cadastrar Semen/Touro\\r\\n

\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
Tipo
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n Sêmen  \\r\\n Touro \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n Sêmen  \\r\\n Touro \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n Sêmen  \\r\\n Touro \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n Número\\r\\n *\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n Nome\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Registro\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Código da Base Unif.\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Reg. Internacional\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Código Internacional\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
Base de Touros
\\r\\n\\r\\n
0\\\" class=\\\"col-12 col-sm-7 p-0 mx-1\\\">\\r\\n {{ message }}\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n Cód. Base Unif\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Reg. Internacional\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Código Internacional\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Nome Completo\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Nome Resumido\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Raça\\r\\n \\r\\n \\r\\n \\r\\n {{ rac.descricao }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n Filtrar\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n 0 && !loadingBaseTouros\\\" [ngIfElse]=\\\"listEmpty\\\">\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
Código Base Unif
\\r\\n
{{ dataItem.bullId }}
\\r\\n\\r\\n
Reg. Internacional
\\r\\n
{{ dataItem.interregnum }}
\\r\\n\\r\\n
Código Internacional
\\r\\n
{{ dataItem.semencode }}
\\r\\n\\r\\n
Nome Completo
\\r\\n
{{ dataItem.name }}
\\r\\n\\r\\n
Nome Resumido
\\r\\n
{{ dataItem.shortname }}
\\r\\n\\r\\n
Raça
\\r\\n
{{ dataItem.raca }}
\\r\\n\\r\\n
Milk
\\r\\n
{{ dataItem.milk }}
\\r\\n\\r\\n
Dpr
\\r\\n
{{ dataItem.dpr }}
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Total: {{ baseTourosList.length }}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n

Nenhum registro da base de touros selecionado.

\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n Carregando a base touros...aguarde por favor...\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n

Nenhum registro encontrado

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n Aguarde o carregamento da Base de Touros.\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n\"","export default \"\\r\\n 0\\\"\\r\\n [hasBackdrop]=\\\"true\\\"\\r\\n class=\\\"sidenav-container h-100\\\">\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\\"Alta\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n {{ nomeFazenda }}\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n {{ nomeUsuario }}\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
0\\\" class=\\\"footer d-flex align-items-center\\\">\\r\\n © {{ anoAtual }} Alta Genetics do Brasil\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n O usuário {{ emailUsuario }} está bloqueado ou pendente de liberação.\\r\\n
Por favor entre em contato com o administrador do sistema no email\\r\\n altagestao@altagenetics.com.br ou no telefone (34) 3318-3327.\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n Voltar\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Ocorreu um erro no seu cadastro.\\r\\n
Por favor entre em contato com o administrador do sistema no email\\r\\n altagestao@altagenetics.com.br ou no telefone (34) 3318-3327.\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n Voltar\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
0\\\" class=\\\"h-100 row justify-content-center align-items-center\\\">\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{ erro }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Voltar\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\"","export default \"
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Iniciando o Alta Gestão...por favor aguarde...\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\"","export default \"\\r\\n \\r\\n \\r\\n This content is never showing\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n Cadastro de matriz\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Matriz\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n Número\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n Nome\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Registro\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n Data nasc.\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Partos não lançados\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Partos totais\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Data baixa\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Motivo de baixa\\r\\n \\r\\n \\r\\n {{ mot.descricao }} \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Composição racial\\r\\n \\r\\n \\r\\n {{ comp.descricao }} \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Doadora\\r\\n
\\r\\n
\\r\\n Descarte\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n Data descarte\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Lote\\r\\n \\r\\n \\r\\n {{ lot.descricao }} \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Nº Pai\\r\\n \\r\\n \\r\\n {{ father.numero }} \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Nome Pai\\r\\n \\r\\n \\r\\n {{ father.nome }} \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Cód. Internacional\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Nº Mãe\\r\\n \\r\\n \\r\\n {{ mother.numero }} \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Nome Mãe\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n [ {{ mother.numero }} ] - Nome Não Informado\\r\\n
\\r\\n
\\r\\n [ {{ mother.numero }} ] - {{ mother.nome }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n This content is never showing\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n Avô Materno\\r\\n \\r\\n \\r\\n \\r\\n {{ gen.numeroPai }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Nome Avô Materno\\r\\n \\r\\n \\r\\n \\r\\n {{ gen.nomePai }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Cod. Internacional\\r\\n \\r\\n \\r\\n {{ gen.semenCodePai }} \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n Avô Materno\\r\\n \\r\\n \\r\\n \\r\\n {{ gen.numeroPai }} \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Nome Avô Materno\\r\\n \\r\\n \\r\\n \\r\\n {{ gen.nomePai }} \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Cod. Internacional\\r\\n \\r\\n \\r\\n {{ gen.semenCodePai }} \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Comentários\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n AltaCria\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n Peso ao nascer\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Peso ao Nascer\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n Real\\r\\n Estimado\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Real\\r\\n Estimado\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n Desaleitamento\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Data\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n Peso\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n Real\\r\\n Estimado\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Real\\r\\n Estimado\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n Outros dados\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Histórico de animal\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
Data
\\r\\n
{{ dataItem.data | date: 'dd/MM/yyyy' }}
\\r\\n\\r\\n
Histórico
\\r\\n
{{ dataItem.historico }}
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
{{ dataItem.data | date:'dd/MM/yyyy' }}
\\r\\n
\\r\\n\\r\\n \\r\\n This content is never showing\\r\\n \\r\\n \\r\\n \\r\\n Total: {{ historicoMatriz ? historicoMatriz.length : 0 }}\\r\\n \\r\\n\\r\\n \\r\\n Total: 0\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n

Nenhum histórico cadastrado.

\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n Clique 2 vezes no grid para editar o item selecionado. \\r\\n [F4] - Abrir detalhamento do item.\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Carregando históricos da matriz...\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
Cadastrar/Alterar Composição Racial
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n Descrição\\r\\n \\r\\n \\r\\n\\r\\n
0\\\"> \\r\\n
\\r\\n
Tipo
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n 0\\\">Mestiça  \\r\\n 0\\\">Pura\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n 0\\\">Mestiça  \\r\\n 0\\\">Pura\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n Mestiça  \\r\\n Pura\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
0\\\">\\r\\n\\r\\n
\\r\\n
Ativa
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n 0\\\">Sim  \\r\\n 0\\\">Não\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n 0\\\">Sim  \\r\\n 0\\\">Não\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n Sim  \\r\\n Não\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n Raça 1\\r\\n\\r\\n 0\\\">\\r\\n {{ rac.descricao }} \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Raça 2\\r\\n 0 || desabilita\\\">\\r\\n {{ rac.descricao }} \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Raça 3\\r\\n\\r\\n 0 || desabilita\\\">\\r\\n {{ rac.descricao }} \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Raça 4\\r\\n\\r\\n 0 || desabilita\\\">\\r\\n {{ rac.descricao }} \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Raça 5\\r\\n\\r\\n 0 || desabilita\\\">\\r\\n {{ rac.descricao }} \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n Percentual 1\\r\\n 0\\\" (change)=\\\"hasValueComp('percentual1');validTotalPerc();\\\" [class.hasError]=\\\"hasError\\\">\\r\\n \\r\\n\\r\\n \\r\\n Percentual 2\\r\\n 0 || desabilita\\\" (change)=\\\"hasValueComp('percentual2');validTotalPerc();\\\" [class.hasError]=\\\"hasError\\\">\\r\\n \\r\\n\\r\\n \\r\\n Percentual 3\\r\\n 0 || desabilita\\\" (change)=\\\"hasValueComp('percentual3');validTotalPerc();\\\" [class.hasError]=\\\"hasError\\\">\\r\\n \\r\\n\\r\\n \\r\\n Percentual 4\\r\\n 0 || desabilita\\\" (change)=\\\"hasValueComp('percentual4');validTotalPerc();\\\" [class.hasError]=\\\"hasError\\\">\\r\\n \\r\\n\\r\\n \\r\\n Percentual 5\\r\\n 0 || desabilita\\\" (change)=\\\"hasValueComp('percentual5');validTotalPerc();\\\" [class.hasError]=\\\"hasError\\\">\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
{{ msgPercentual }}
\\r\\n
{{ msgPreenchimento }}
\\r\\n
{{ msgTotal }}
\\r\\n
{{ msg }}
\\r\\n
{{ msgRaca }}
\\r\\n \\r\\n
0\\\">helpNão pode ser alterado porque é um registro padrão do sistema.
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
Cadastrar/Alterar Lote
\\r\\n \\r\\n
\\r\\n \\r\\n Descricao\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
Cadastrar/Alterar Pai
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
Tipo
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n Sêmen  \\r\\n Touro \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n Sêmen  \\r\\n Touro \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Sêmen  \\r\\n Touro \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n Número\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Nome\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n Registro\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Código da Base Unif.\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n Reg. Internacional\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Código Internacional\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n

Base de Touros

\\r\\n\\r\\n
0\\\" class=\\\"col-12 col-sm-12 p-2 text-right\\\">\\r\\n {{ message }}\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n 0\\\" [ngIfElse]=\\\"listEmpty\\\">\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
Código Base Unif
\\r\\n
{{ dataItem.bullId }}
\\r\\n\\r\\n
Reg. Internacional
\\r\\n
{{ dataItem.interregnum }}
\\r\\n \\r\\n
Código Internacional
\\r\\n
{{ dataItem.semencode }}
\\r\\n\\r\\n
Nome Completo
\\r\\n
{{ dataItem.name }}
\\r\\n\\r\\n
Nome Resumido
\\r\\n
{{ dataItem.shortname }}
\\r\\n\\r\\n
Raça
\\r\\n
{{ dataItem.raca }}
\\r\\n\\r\\n
Milk
\\r\\n
{{ dataItem.milk }}
\\r\\n\\r\\n
Dpr
\\r\\n
{{ dataItem.dpr }}
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Total: {{ baseTourosList.length }}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n

Nenhum registro da base de touros selecionado.

\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n

Nenhum registro encontrado.

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n Carregando dados da matriz {{ data.matrixId.numero }}...\\r\\n Carregando dados da matriz...\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\"","export default \"
\\r\\n

\\r\\n Histórico da matriz\\r\\n

\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
Data
\\r\\n
{{ dataItem.data | date:'dd/MM/yyyy' }}
\\r\\n\\r\\n
Histórico
\\r\\n
{{ dataItem.historico }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
{{ dataItem.data | date:'dd/MM/yyyy' }}
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Nenhum histórico para a matriz. Clique em adicionar para incluir um novo histórico.\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\"","export default \"
\\r\\n\\r\\n
Cadastrar/Alterar Mãe
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n Número\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n Nome\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Registro\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Data Nasc.\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n Parto anterior\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Secagem anterior\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Nº lactações anterior\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Doadora\\r\\n
\\r\\n
\\r\\n Descarte\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Composição racial\\r\\n \\r\\n {{ comp.descricao }} \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Lote\\r\\n \\r\\n {{ lot.descricao }} \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n Pai\\r\\n \\r\\n {{ father.numero }} \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Mãe\\r\\n \\r\\n {{ mother.numero }} \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n This content is never showing\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n Avô Materno\\r\\n \\r\\n {{ gen.numeroAvo }} \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Bisavô Materno\\r\\n \\r\\n {{ gen.numeroAvo }} \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n Avô Materno\\r\\n \\r\\n {{ gen.numeroPai }} \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Bisavô Materno\\r\\n \\r\\n {{ gen.numeroPai }} \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Comentários\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n Carregando dados da matriz {{ matrixId.numero }}...\\r\\n Carregando dados da matriz...\\r\\n
\\r\\n\\r\\n
Cadastrar/Alterar Composição Racial
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n Descrição\\r\\n \\r\\n \\r\\n\\r\\n
0\\\"> \\r\\n\\r\\n
\\r\\n
Tipo
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n 0\\\">\\r\\n Mestiça  \\r\\n \\r\\n 0\\\">\\r\\n Pura\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n 0\\\">\\r\\n Mestiça  \\r\\n \\r\\n 0\\\">\\r\\n Pura\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n Mestiça  \\r\\n Pura\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
0\\\">\\r\\n\\r\\n
\\r\\n
Ativa
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n 0\\\">Sim  \\r\\n 0\\\">Não\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n 0\\\">Sim  \\r\\n 0\\\">Não\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n Sim  \\r\\n Não\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Raça 1\\r\\n 0\\\">\\r\\n {{ rac.descricao }} \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Raça 2\\r\\n 0 || desabilita\\\">\\r\\n {{ rac.descricao }} \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Raça 3\\r\\n\\r\\n 0 || desabilita\\\">\\r\\n {{ rac.descricao }} \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Raça 4\\r\\n\\r\\n 0 || desabilita\\\">\\r\\n {{ rac.descricao }} \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Raça 5\\r\\n\\r\\n 0 || desabilita\\\">\\r\\n {{ rac.descricao }} \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Percentual 1\\r\\n 0\\\" \\r\\n (change)=\\\"hasValueComp('percentual1');validTotalPerc();\\\" [class.hasError]=\\\"hasError\\\">\\r\\n \\r\\n\\r\\n \\r\\n Percentual 2\\r\\n 0 || desabilita\\\" \\r\\n (change)=\\\"hasValueComp('percentual2');validTotalPerc();\\\" [class.hasError]=\\\"hasError\\\">\\r\\n \\r\\n\\r\\n \\r\\n Percentual 3\\r\\n 0 || desabilita\\\" \\r\\n (change)=\\\"hasValueComp('percentual3');validTotalPerc();\\\" [class.hasError]=\\\"hasError\\\">\\r\\n \\r\\n\\r\\n \\r\\n Percentual 4\\r\\n 0 || desabilita\\\" \\r\\n (change)=\\\"hasValueComp('percentual4');validTotalPerc();\\\" [class.hasError]=\\\"hasError\\\">\\r\\n \\r\\n\\r\\n \\r\\n Percentual 5\\r\\n 0 || desabilita\\\" \\r\\n (change)=\\\"hasValueComp('percentual5');validTotalPerc();\\\" [class.hasError]=\\\"hasError\\\">\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n {{ msgPercentual }} \\r\\n
\\r\\n\\r\\n
\\r\\n {{ msgPreenchimento }} \\r\\n
\\r\\n\\r\\n
\\r\\n {{ msgTotal }}\\r\\n
\\r\\n\\r\\n
\\r\\n {{ msg }} \\r\\n
\\r\\n\\r\\n
\\r\\n {{ msgRaca }} \\r\\n
\\r\\n \\r\\n
0\\\">\\r\\n \\r\\n help\\r\\n Não pode ser alterado porque é um registro padrão do sistema.\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
Cadastrar/Alterar Lote
\\r\\n\\r\\n
\\r\\n \\r\\n Descricao\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\"","export default \"\\r\\n\\r\\n \\r\\n

Cadastro de controle leiteiro

\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n Número da matriz\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n Nome da matriz\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n Data\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n CCS (cels * 1000/mL)\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n Ordenha 1\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n Ordenha 2\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n Ordenha 3\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n Peso Total\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n
0\\\" class=\\\"col-12 col-sm-7 p-0 mx-1\\\">\\r\\n {{ error }}\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\"","export default \"\\r\\n\\r\\n \\r\\n

Cadastro Secagem

\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n Número da matriz\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n Nome da matriz\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n Data Parto\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n Data Secagem\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\"","export default \"\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n

Cadastro de diagnóstico

\\r\\n

Cadastro de nova tentativa

\\r\\n

Consulta de reprodução

\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n Matriz\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Número\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Nome\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Tentativa\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n IA/Cob/TE\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n Toque\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n Ocorrências\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n Parto\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n Carregando dados da matriz {{ item.numeroMatriz }}...\\r\\n Carregando dados da matriz...\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\"","export default \"
\\r\\n

Histórico de reprodução

\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
Data
\\r\\n
{{ dataItem.date | date:'dd/MM/yy' }}
\\r\\n\\r\\n
Histórico
\\r\\n
{{ dataItem.descricao }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n Total: {{ itemsSource ? itemsSource.length : 0 }}\\r\\n \\r\\n
{{ dataItem.data | date:'dd/MM/yy' }}
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
{{ dataItem.descricao }}
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Nenhum histórico de reprodução. Clique em adicionar para incluir um novo histórico.\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Carregando registros...\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\"","export default \"\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n

Cadastro IA/Cob/TE e Diagnóstico

\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n Matriz\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Número\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Nome\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Tentativa\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n IA/Cob/TE\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n Toque\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n Ocorrências\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\"","export default \"
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n Data IA/Cob/TE\\r\\n *\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n Tipo\\r\\n *\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{ tryType.sigla }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n Complemento\\r\\n\\r\\n \\r\\n \\r\\n Cio Natural\\r\\n Prostaglandina\\r\\n IATF / TETF\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n Uso descongelador\\r\\n\\r\\n \\r\\n Não\\r\\n Sim\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n Score\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n Temperatura retal\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n Inseminador\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ inseminator.nome }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n Protocolo\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ protocol.descricao }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n Nº reprodutor\\r\\n *\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{ breeder.numero }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n Nome reprodutor\\r\\n *\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{ breeder.nome ? breeder.nome : 'Não Informado'}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n Cód. Internacional\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n Nº doadora\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ m.numero }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n Nome doadora\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n [ {{ m.numero }} ] - {{ m.nome ? m.nome : 'Não Informado'}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n CIO\\r\\n\\r\\n \\r\\n Não\\r\\n Sim\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n Data CIO\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n Observação CIO\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\"","export default \"
\\r\\n

\\r\\n Detalhe de IATF\\r\\n

\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Número da matriz\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Nome da matriz\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Tipo\\r\\n \\r\\n \\r\\n {{ protocol.descricao }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Data Implante\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n IATF\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Luteólise 1\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Luteólise 2\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Edf\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Estímulo\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Retirada\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Iatf\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n Carregando dados da matriz {{ data.iatf.numeroMatriz }}...\\r\\n Carregando dados da matriz...\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n 0\\\" class=\\\"justify-content-end alert alert-danger alert-dismissible fade show\\\">{{ applyErrorValidation }}\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\"","export default \"
\\r\\n

Ocorrências da reprodução

\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
Data
\\r\\n
{{ dataItem.dataOcorrencia | date:'dd/MM/yyyy' }}
\\r\\n\\r\\n
Histórico
\\r\\n
{{ dataItem.descricao }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
{{ dataItem.dataOcorrencia | date:'dd/MM/yyyy' }}
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
{{ dataItem.descricaoCompl }}
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Nenhuma ocorrência para a reprodução. Clique em adicionar para incluir uma nova ocorrência.\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n Carregando dados da matriz {{ data.numeroDaMatriz }}...\\r\\n Carregando dados da matriz...\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\"","export default \"
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
Data
\\r\\n
{{ dataItem.dataOcorrencia | date:'dd/MM/yy' }}
\\r\\n\\r\\n
Histórico
\\r\\n
{{ dataItem.descricao }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n {{ dataItem.dataOcorrencia | date:'dd/MM/yy' }}
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Nenhuma ocorrência para a reprodução. Pressione F4 ou clique 2x para incluir uma nova\\r\\n ocorrência.\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n Clique 2 vezes no grid ou aperte [F4] para editar.\\r\\n
\\r\\n\\r\\n
\"","export default \"\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n Cadastro de parto\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n Matriz\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n Número\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n Nome\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n Tentativa\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n Ocorrências\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n Parto\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n Carregando dados da matriz {{ item.numeroMatriz }}...\\r\\n Carregando dados da matriz...\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\"","export default \"
\\r\\n\\r\\n \\r\\n\\r\\n Data parto\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n Score\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n Tipo parto\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ type.descricao }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n Grau auxílio\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ type.descricao }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Retenção de placenta\\r\\n \\r\\n\\r\\n \\r\\n Doenças metabólicas\\r\\n \\r\\n\\r\\n \\r\\n Deslocamento de abomaso\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n Cria(s)\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n Única\\r\\n \\r\\n\\r\\n \\r\\n Gemelar\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n Cria 1\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n Fêmea\\r\\n \\r\\n\\r\\n \\r\\n Macho\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n Número\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n Natimorto\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Cria 2\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n Fêmea\\r\\n \\r\\n\\r\\n \\r\\n Macho\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n Número\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n Natimorto\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\"","export default \"
\\r\\n\\r\\n \\r\\n Data 1º Toque\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Resultado 1º Toque\\r\\n \\r\\n \\r\\n Negativo\\r\\n Positivo\\r\\n Reconfirmar\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Data 2º Toque\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Resultado 2º Toque\\r\\n \\r\\n \\r\\n Negativo\\r\\n Positivo\\r\\n Reconfirmar\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Data 3º Toque\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Resultado 3º Toque\\r\\n \\r\\n \\r\\n Negativo\\r\\n Positivo\\r\\n Reconfirmar\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Data 4º Toque\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Resultado 4º Toque\\r\\n \\r\\n \\r\\n Negativo\\r\\n Positivo\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Sexo Feto\\r\\n \\r\\n \\r\\n Fêmea\\r\\n Macho\\r\\n \\r\\n \\r\\n\\r\\n
\"","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { Configuration } from 'msal';\r\nimport { MsalAngularConfiguration } from '@azure/msal-angular';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n// this checks if the app is running on IE\r\nexport const isIE = window.navigator.userAgent.indexOf('MSIE ') > -1 || window.navigator.userAgent.indexOf('Trident/') > -1;\r\n\r\n/** =================== REGIONS ====================\r\n * 1) B2C policies and user flows\r\n * 2) Web API configuration parameters\r\n * 3) Authentication configuration parameters\r\n * 4) MSAL-Angular specific configuration parameters\r\n * =================================================\r\n*/\r\n\r\n// #region 1) B2C policies and user flows\r\n/**\r\n * Enter here the user flows and custom policies for your B2C application,\r\n * To learn more about user flows, visit https://docs.microsoft.com/en-us/azure/active-directory-b2c/user-flow-overview\r\n * To learn more about custom policies, visit https://docs.microsoft.com/en-us/azure/active-directory-b2c/custom-policy-overview\r\n */\r\nexport const b2cPolicies = {\r\n names: {\r\n signUpSignIn: environment.b2cSignUpSignIn,\r\n resetPassword: environment.b2cResetPassword\r\n },\r\n authorities: {\r\n signUpSignIn: {\r\n authority: `https://${environment.b2cLogin}/${environment.b2cDomain}/${environment.b2cSignUpSignIn}`\r\n },\r\n resetPassword: {\r\n authority: `https://${environment.b2cLogin}/${environment.b2cDomain}/${environment.b2cResetPassword}`\r\n }\r\n }\r\n}\r\n// #endregion\r\n\r\n\r\n// #region 2) Web API Configuration\r\n/** \r\n * Enter here the coordinates of your Web API and scopes for access token request\r\n * The current application coordinates were pre-registered in a B2C tenant.\r\n */\r\nexport const apiConfig: {b2cScopes: string[], webApi: string} = {\r\n b2cScopes: [`https://${environment.b2cDomain}/${environment.b2cApiClientId}/api.consume`],\r\n webApi: '/api'\r\n};\r\n// #endregion\r\n\r\n// #region 3) Authentication Configuration\r\n/** \r\n * Config object to be passed to Msal on creation. For a full list of msal.js configuration parameters,\r\n * visit https://azuread.github.io/microsoft-authentication-library-for-js/docs/msal/modules/_configuration_.html\r\n */\r\nexport const msalConfig: Configuration = {\r\n auth: {\r\n clientId: environment.b2cClientId,\r\n authority: b2cPolicies.authorities.signUpSignIn.authority,\r\n redirectUri: environment.b2cRedirectUri,\r\n postLogoutRedirectUri: environment.b2cPostLogoutRedirectUri,\r\n navigateToLoginRequestUrl: true,\r\n validateAuthority: false,\r\n },\r\n cache: {\r\n cacheLocation: 'localStorage',\r\n storeAuthStateInCookie: isIE, // Set this to 'true' to save cache in cookies to address trusted zones limitations in IE\r\n },\r\n}\r\n\r\n/** \r\n * Scopes you enter here will be consented once you authenticate. For a full list of available authentication parameters, \r\n * visit https://azuread.github.io/microsoft-authentication-library-for-js/docs/msal/modules/_authenticationparameters_.html\r\n */\r\nexport const loginRequest: {scopes: string[]} = {\r\n scopes: ['openid', 'profile'],\r\n};\r\n\r\n// Scopes you enter will be used for the access token request for your web API\r\nexport const tokenRequest: {scopes: string[]} = {\r\n scopes: apiConfig.b2cScopes // i.e. [https://fabrikamb2c.onmicrosoft.com/helloapi/demo.read]\r\n};\r\n// #endregion\r\n\r\n\r\n\r\n// #region 4) MSAL-Angular Configuration\r\n// here you can define the coordinates and required permissions for your protected resources\r\nexport const protectedResourceMap: [string, string[]][] = [\r\n [apiConfig.webApi, apiConfig.b2cScopes]\r\n // i.e. [https://fabrikamb2chello.azurewebsites.net/hello, ['https://fabrikamb2c.onmicrosoft.com/helloapi/demo.read']]\r\n];\r\n\r\n/**\r\n * MSAL-Angular specific authentication parameters. For a full list of available options,\r\n * visit https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/lib/msal-angular#config-options-for-msal-initialization\r\n*/\r\nexport const msalAngularConfig: MsalAngularConfiguration = {\r\n popUp: !isIE,\r\n consentScopes: [\r\n ...loginRequest.scopes,\r\n ...tokenRequest.scopes,\r\n ],\r\n unprotectedResources: [], // API calls to these coordinates will NOT activate MSALGuard\r\n protectedResourceMap, // API calls to these coordinates will activate MSALGuard\r\n extraQueryParameters: {}\r\n}\r\n// #endregion\r\n","export enum ResultadoDiagnosticoEnum {\r\n N = 0, // Negative\r\n P = 1, // Positive\r\n R = 2, // Reconfirm\r\n A = 3, // Anestro\r\n C = 4, // Cycling\r\n S = 5 // Synchronizing\r\n}\r\n","export enum TipoPartoEnum {\r\n NORMAL = 1,\r\n AUXILIADO = 2,\r\n ABORTO_COM_LACTACAO = 3,\r\n PREMATURO = 4\r\n}\r\n","export enum TipoTentativaEnum {\r\n IA = 0,\r\n COB = 1,\r\n TE = 2\r\n}\r\n","import { TipoEvento } from '../../models/alta-cria/tipo-evento.model';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError, retry } from 'rxjs/operators';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ColostragemMortalidadeFiltro } from 'src/models/alta-cria/colostragem-mortalidade-filtro.model';\r\nimport { ColostragemMortalidade } from 'src/models/alta-cria/colostragem-mortalidade.model';\r\nimport { GpdQuantidadeDoencasFiltro } from 'src/models/alta-cria/gpd-quantidade-doencas-filtro.model';\r\nimport { GpdQuantidadeDoencas } from 'src/models/alta-cria/gpd-quantidade-doencas.model';\r\nimport { IdadeMediaDoencasFiltro } from 'src/models/alta-cria/idade-doencas-filtro.model';\r\nimport { IdadeMediaDoencas } from 'src/models/alta-cria/idade-doencas.model';\r\nimport { NumeroDoencasMesesFiltro } from 'src/models/alta-cria/numero-doencas-meses-filtro.model';\r\nimport { NumeroDoencasMeses } from 'src/models/alta-cria/numero-doencas-meses.model';\r\nimport { Detalhe } from 'src/models/detalhe.model';\r\nimport { AltaGestaoService } from './alta-gestao.service';\r\nimport { GanhoPesoMeta } from 'src/models/alta-cria/ganho-peso-meta.model';\r\nimport { GanhoPesoMetaFiltro } from 'src/models/alta-cria/ganho-peso-meta-filtro.model';\r\nimport { Colostragem } from 'src/models/alta-cria/colostragem.model';\r\nimport { Pesagem } from 'src/models/alta-cria/pesagem.model';\r\nimport { PesagemFiltro } from 'src/models/alta-cria/pesagem-filtro.model';\r\nimport { ColostragemFiltro } from 'src/models/alta-cria/colostragem-filtro.model';\r\nimport { Evento } from 'src/models/alta-cria/evento.model';\r\nimport { EventoFiltro } from 'src/models/alta-cria/evento-filtro.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AltaCriaService {\r\n\r\n private apiUrl = `${environment.apiBaseUrl}/alta-cria`;\r\n private NUMERO_TENTATIVAS_REQUEST = 0;\r\n\r\n colostragemMortalidadeUrl = `colostragem-mortalidade`;\r\n gpdQuantidadeDoencasUrl = `gpd-quantidade-doencas`;\r\n idadeDoencasUrl = `idade-doencas`;\r\n numeroDoencasMesesUrl = `numero-doencas-meses`;\r\n ganhoPesoMetaUrl = `ganho-peso-meta`;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private altaGestaoService: AltaGestaoService) {\r\n }\r\n\r\n getColostragemMortalidade(filtro: ColostragemMortalidadeFiltro): Observable {\r\n filtro.cdFazenda = this.altaGestaoService.getCdFazendaSelecionada();\r\n return this.http\r\n .post(`${this.apiUrl}/${this.colostragemMortalidadeUrl}`, filtro)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getGpdQuantidadeDoencas(filtro: GpdQuantidadeDoencasFiltro): Observable {\r\n filtro.cdFazenda = this.altaGestaoService.getCdFazendaSelecionada();\r\n return this.http\r\n .post(`${this.apiUrl}/${this.gpdQuantidadeDoencasUrl}`, filtro)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getIdadeDoencas(filtro: IdadeMediaDoencasFiltro): Observable {\r\n filtro.cdFazenda = this.altaGestaoService.getCdFazendaSelecionada();\r\n return this.http\r\n .post(`${this.apiUrl}/${this.idadeDoencasUrl}`, filtro)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getNumeroDoencasMeses(filtro: NumeroDoencasMesesFiltro): Observable {\r\n filtro.cdFazenda = this.altaGestaoService.getCdFazendaSelecionada();\r\n return this.http\r\n .post(`${this.apiUrl}/${this.numeroDoencasMesesUrl}`, filtro)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getAltaCriaGanhoPesoMeta(filtro: GanhoPesoMetaFiltro): Observable {\r\n filtro.cdFazenda = this.altaGestaoService.getCdFazendaSelecionada();\r\n return this.http\r\n .post(`${this.apiUrl}/${this.ganhoPesoMetaUrl}`, filtro)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getDatalhes(chave: string): Observable {\r\n return this.http\r\n .get(`${this.apiUrl}/${chave}`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getColostragem(filter: ColostragemFiltro): Observable {\r\n filter.cdFazenda = this.altaGestaoService.getCdFazendaSelecionada();\r\n return this.http\r\n .post(`${this.apiUrl}/colostragem`, filter)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n insereColostragem(colostragens: Colostragem[]): Observable {\r\n return this.http\r\n .post(`${this.apiUrl}/colostragem/insere`, colostragens)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n atualizaColostragem(colostragens: Colostragem[]): Observable {\r\n return this.http\r\n .put(`${this.apiUrl}/colostragem/atualiza`, colostragens)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n removeColostragem(ids: number[]): Observable {\r\n return this.http\r\n .put(`${this.apiUrl}/colostragem/remove`, ids)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getPesagem(filtro: PesagemFiltro): Observable {\r\n filtro.cdFazenda = this.altaGestaoService.getCdFazendaSelecionada();\r\n return this.http\r\n .post(`${this.apiUrl}/pesagem`, filtro)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n inserePesagem(pesagens: Pesagem[]): Observable {\r\n return this.http\r\n .post(`${this.apiUrl}/pesagem/insere`, pesagens)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n atualizaPesagem(pesagens: Pesagem[]): Observable {\r\n return this.http\r\n .put(`${this.apiUrl}/pesagem/atualiza`, pesagens)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n removePesagem(ids: number[]): Observable {\r\n return this.http\r\n .put(`${this.apiUrl}/pesagem/remove`, ids)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getEventos(filtro: EventoFiltro): Observable {\r\n filtro.cdFazenda = this.altaGestaoService.getCdFazendaSelecionada();\r\n return this.http\r\n .post(`${this.apiUrl}/eventos`, filtro)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n insereEvento(eventos: Evento[]): Observable {\r\n return this.http\r\n .post(`${this.apiUrl}/eventos/insere`, eventos)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n atualizaEvento(eventos: Evento[]): Observable {\r\n return this.http\r\n .put(`${this.apiUrl}/eventos/atualiza`, eventos)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n removeEvento(ids: number[]): Observable {\r\n return this.http\r\n .put(`${this.apiUrl}/eventos/remove`, ids)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getTiposEvento(): Observable {\r\n return this.http\r\n .get(`${this.apiUrl}/eventos/tipoevento`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n handleError = (error: HttpErrorResponse) => {\r\n if (error.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('An error occurred:', error.error.message);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n console.error(\r\n `Backend returned code ${error.status}, ` +\r\n `body was: ${error.error}`);\r\n // if (error.status === 404) {\r\n // this.router.navigateByUrl('/404', { skipLocationChange: true });\r\n // }\r\n console.log(error);\r\n }\r\n // return an observable with a user-facing error message\r\n return throwError('Erro ao executar operação');\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { Fazenda } from 'src/models/fazenda.model';\r\nimport { Pessoa } from 'src/models/pessoa.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AltaGestaoService {\r\n\r\n private numeroMatriz = new BehaviorSubject('');\r\n numeroMatrizSelecionado = this.numeroMatriz.asObservable();\r\n\r\n constructor() { }\r\n\r\n alteraNumeroMatriz(numeroMatriz: string) {\r\n this.numeroMatriz.next(numeroMatriz);\r\n }\r\n\r\n getCdFazendaSelecionada(): number {\r\n const fazendaSelecionada = JSON.parse(sessionStorage.getItem(`currentFarm`));\r\n const existeFazenda = fazendaSelecionada !== undefined && fazendaSelecionada !== null && fazendaSelecionada.cdfazenda > 0;\r\n if (existeFazenda) {\r\n const cdFazendaSelecionada = Number.parseInt(fazendaSelecionada.cdfazenda);\r\n if (cdFazendaSelecionada > 0) {\r\n return cdFazendaSelecionada;\r\n }\r\n return 0;\r\n }\r\n return 0;\r\n }\r\n\r\n getFazendaSelecionada(): Fazenda {\r\n const fazendaSelecionada = JSON.parse(sessionStorage.getItem(`currentFarm`));\r\n return fazendaSelecionada;\r\n }\r\n\r\n getUsuarioLogado(): Pessoa {\r\n const usuarioLogado = JSON.parse(sessionStorage.getItem(`currentUser`));\r\n return usuarioLogado;\r\n }\r\n\r\n ehUsuarioAdministrador(): boolean {\r\n let ehAdministrador = false;\r\n const usuarioLogado = JSON.parse(sessionStorage.getItem(`currentUser`));\r\n const existeUsuario =\r\n usuarioLogado !== undefined\r\n && usuarioLogado !== null\r\n && usuarioLogado.usuario !== undefined\r\n && usuarioLogado.usuario !== null;\r\n if (existeUsuario) {\r\n ehAdministrador = usuarioLogado.usuario.isAdmin;\r\n return ehAdministrador;\r\n }\r\n return ehAdministrador;\r\n }\r\n\r\n ehUsuarioAdministradorTecnico(): boolean {\r\n let ehAdministradorTecnico = false;\r\n const usuarioLogado = JSON.parse(sessionStorage.getItem(`currentUser`));\r\n const existeUsuario =\r\n usuarioLogado !== undefined\r\n && usuarioLogado !== null\r\n && usuarioLogado.usuario !== undefined\r\n && usuarioLogado.usuario !== null;\r\n if (existeUsuario) {\r\n ehAdministradorTecnico = usuarioLogado.usuario.isAdminTecnico;\r\n return ehAdministradorTecnico;\r\n }\r\n return ehAdministradorTecnico;\r\n }\r\n\r\n calculaDiferencaEntreDatas(dataInicial: Date, dataFinal: Date): number {\r\n return Math.floor\r\n (\r\n (\r\n Date.UTC\r\n (\r\n dataFinal.getFullYear(),\r\n dataFinal.getMonth(),\r\n dataFinal.getDate()\r\n )\r\n -\r\n Date.UTC\r\n (\r\n dataInicial.getFullYear(),\r\n dataInicial.getMonth(),\r\n dataInicial.getDate()\r\n )\r\n ) / (1000 * 60 * 60 * 24)\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router';\r\nimport { MsalService } from '@azure/msal-angular';\r\nimport { Observable } from 'rxjs';\r\nimport { apiConfig } from '../_authorization/auth.config';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthGuardService implements CanActivate {\r\n\r\n constructor(private authService: MsalService, private router: Router) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | Observable | Promise {\r\n return new Promise((resolve) => {\r\n this.authService.acquireTokenSilent({ scopes: apiConfig.b2cScopes })\r\n .then((tokenResponse) => {\r\n // console.log(tokenResponse.accessToken);\r\n resolve(true);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.router.navigate(['/login']);\r\n resolve(false);\r\n });\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError, retry } from 'rxjs/operators';\r\nimport { environment } from 'src/environments/environment';\r\nimport { AltaGestaoService } from './alta-gestao.service';\r\nimport { Pessoa } from 'src/models/pessoa.model';\r\nimport { Papel } from 'src/models/papel.model';\r\nimport { Usuario} from 'src/models/usuario.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CadastroService {\r\n\r\n private apiUrl = `${environment.apiBaseUrl}/cadastro`;\r\n private NUMERO_TENTATIVAS_REQUEST = 0;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private altaGestaoService: AltaGestaoService) {\r\n }\r\n\r\n getUsuarioPorFazenda(): Observable {\r\n return this.http\r\n .get(`${this.apiUrl}/fazenda-usuario/${this.altaGestaoService.getCdFazendaSelecionada()}`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n GetUsuarioPorCdPessoa(cdPessoa: number): Observable {\r\n return this.http\r\n .get(`${this.apiUrl}/usuario/${cdPessoa}`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getUsuarios(): Observable {\r\n return this.http\r\n .get(`${this.apiUrl}/usuario`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getUsuariosPorGrupoFazenda(cdgrupo: number): Observable {\r\n return this.http\r\n .get(`${this.apiUrl}/usuario-por-grupo-fazenda/${cdgrupo}`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getPapeis(): Observable {\r\n return this.http\r\n .get(`${this.apiUrl}/perfil`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n insereUsuarioCadastradoNaAzure(usuario: Usuario): Observable {\r\n return this.http\r\n .post(`${this.apiUrl}/usuario/insere/azure`, usuario)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n insereUsuario(usuario: Usuario) {\r\n return this.http\r\n .post(`${this.apiUrl}/usuario/insere`, usuario)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n atualizaUsuario(usuario: Usuario) {\r\n return this.http\r\n .put(`${this.apiUrl}/usuario/atualiza`, usuario)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n removeUsuario(usuarios: Pessoa[]): Observable {\r\n return this.http\r\n .put(`${this.apiUrl}/usuario/remove`, usuarios)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n handleError = (error: HttpErrorResponse) => {\r\n if (error.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('An error occurred:', error.error.message);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n console.error(\r\n `Backend returned code ${error.status}, ` +\r\n `body was: ${error.error}`);\r\n // if (error.status === 404) {\r\n // this.router.navigateByUrl('/404', { skipLocationChange: true });\r\n // }\r\n console.log(error);\r\n }\r\n // return an observable with a user-facing error message\r\n return throwError('Erro ao executar operação');\r\n }\r\n\r\n}\r\n","import { BaseTouroFiltro } from '../../models/configuracoes/base-touros-filtro.model';\r\nimport { Injectable } from '@angular/core';\r\nimport { Lote } from 'src/models/configuracoes/lote.model';\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { retry, catchError } from 'rxjs/operators';\r\nimport { Inseminador } from 'src/models/configuracoes/inseminador.model';\r\nimport { Protocolo } from 'src/models/configuracoes/protocolo.model';\r\nimport { ComposicaoRacial } from 'src/models/configuracoes/composicao-racial.model';\r\nimport { Raca } from 'src/models/configuracoes/raca.model';\r\nimport { Reprodutor } from 'src/models/configuracoes/reprodutor.model';\r\nimport { BaseTouro } from 'src/models/configuracoes/base-touros.model';\r\nimport { SemenTouro } from 'src/models/configuracoes/semen-touro.model';\r\nimport { AltaGestaoService } from './alta-gestao.service';\r\nimport { ProtocoloDetalhe } from 'src/models/configuracoes/protocolo-detalhes.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class ConfiguracoesService {\r\n\r\n private apiUrl = `${environment.apiBaseUrl}/configuracoes`;\r\n private NUMERO_TENTATIVAS_REQUEST = 0;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private altaGestaoService: AltaGestaoService) {\r\n }\r\n\r\n getCdFazenda() {\r\n return this.altaGestaoService.getCdFazendaSelecionada();\r\n }\r\n\r\n getLotes(): Observable {\r\n return this.http\r\n .get(`${this.apiUrl}/lote/${this.altaGestaoService.getCdFazendaSelecionada()}`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n atualizaLote(value: any): Observable {\r\n return this.http\r\n .put(`${this.apiUrl}/lote/atualiza`, value)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n removeLote(value: any): Observable {\r\n return this.http\r\n .put(`${this.apiUrl}/lote/remove`, value)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n insereLote(lote: Lote) {\r\n return this.http\r\n .post(`${this.apiUrl}`, lote)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getInseminadores(): Observable {\r\n return this.http\r\n .get(`${this.apiUrl}/inseminador/${this.altaGestaoService.getCdFazendaSelecionada()}`)\r\n .pipe(retry(3), catchError(this.handleError));\r\n }\r\n\r\n atualizaInseminador(value: any): Observable {\r\n return this.http\r\n .put(`${this.apiUrl}/inseminador/atualiza`, value)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n removeInseminador(value: any): Observable {\r\n return this.http\r\n .put(`${this.apiUrl}/inseminador/remove`, value)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n insereInseminador(inseminador: Inseminador) {\r\n return this.http\r\n .post(`${this.apiUrl}/inseminador/insere`, inseminador)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getProtocolos(): Observable {\r\n return this.http\r\n .get(`${this.apiUrl}/protocolo/${this.altaGestaoService.getCdFazendaSelecionada()}`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n atualizaProtocolo(value: any): Observable {\r\n return this.http\r\n .put(`${this.apiUrl}/protocolo/atualiza`, value)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n removeProtocolo(value: any): Observable {\r\n return this.http\r\n .put(`${this.apiUrl}/protocolo/remove`, value)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n insereProtocolo(protocolo: Protocolo) {\r\n return this.http\r\n .post(`${this.apiUrl}/protocolo/insere`, protocolo)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getProtocoloDetalhes(cdProtocolo: number): Observable {\r\n return this.http\r\n .get(`${this.apiUrl}/detalhes-protocolo/${this.altaGestaoService.getCdFazendaSelecionada()}/${cdProtocolo}`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n atualizaProtocoloDetalhes(protocoloDetalhes: ProtocoloDetalhe[]): Observable {\r\n return this.http\r\n .put(`${this.apiUrl}/detalhes-protocolo/atualiza`, protocoloDetalhes)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n insereProtocoloDetalhes(protocoloDetalhes: ProtocoloDetalhe[]): Observable {\r\n return this.http\r\n .post(`${this.apiUrl}/detalhes-protocolo/insere`, protocoloDetalhes)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getComposicoesRaciais(): Observable {\r\n return this.http\r\n .get(`${this.apiUrl}/composicao-racial/${this.altaGestaoService.getCdFazendaSelecionada()}`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n atualizaComposicaoRacial(composicaoRacial: any): Observable {\r\n return this.http\r\n .put(`${this.apiUrl}/composicao-racial/atualiza`, composicaoRacial)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n removeComposicaoRacial(composicaoRacial: any): Observable {\r\n return this.http\r\n .put(`${this.apiUrl}/composicao-racial/remove`, composicaoRacial)\r\n .pipe(retry(3), catchError(this.handleError));\r\n }\r\n\r\n insereComposicaoRacial(composicaoRacial: ComposicaoRacial) {\r\n return this.http\r\n .post(`${this.apiUrl}/composicao-racial/insere`, composicaoRacial)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getRacas(): Observable {\r\n return this.http\r\n .get(`${this.apiUrl}/raca`)\r\n .pipe(retry(3), catchError(this.handleError));\r\n }\r\n\r\n getReprodutores(): Observable {\r\n return this.http\r\n .get(`${this.apiUrl}/reprodutor/${this.altaGestaoService.getCdFazendaSelecionada()}`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n atualizaReprodutor(reprodutor: any): Observable {\r\n return this.http\r\n .put(`${this.apiUrl}/reprodutor/atualiza`, reprodutor)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n removeReprodutor(valor: any): Observable {\r\n return this.http\r\n .put(`${this.apiUrl}/reprodutor/remove`, valor)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n insereReprodutor(reprodutor: Reprodutor) {\r\n return this.http\r\n .post(`${this.apiUrl}/reprodutor/insere`, reprodutor)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getBaseTouros(): Observable {\r\n return this.http\r\n .get(`${this.apiUrl}/base-touros`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getBaseTourosPorFiltro(filtro: BaseTouroFiltro): Observable {\r\n return this.http\r\n .post(`${this.apiUrl}/base-touros`, filtro)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getSemenTouros(): Observable {\r\n return this.http\r\n .get(`${this.apiUrl}/semen-touros/${this.altaGestaoService.getCdFazendaSelecionada()}`)\r\n .pipe(retry(3), catchError(this.handleError));\r\n }\r\n\r\n handleError = (error: HttpErrorResponse) => {\r\n if (error.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('An error occurred:', error.error.message);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n console.error(\r\n `Backend returned code ${error.status}, ` +\r\n `body was: ${error.error}`);\r\n // if (error.status === 404) {\r\n // this.router.navigateByUrl('/404', { skipLocationChange: true });\r\n // }\r\n console.log(error);\r\n }\r\n // return an observable with a user-facing error message\r\n return throwError('Erro ao executar operação');\r\n }\r\n}\r\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError, retry } from 'rxjs/operators';\r\nimport { environment } from 'src/environments/environment';\r\nimport { Email } from 'src/models/email.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EmailService {\r\n\r\n private apiUrl = `${environment.apiBaseUrl}/email`;\r\n private NUMERO_TENTATIVAS_REQUEST = 0;\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n enviaEmailNovoCadastro(email: Email) {\r\n return this.http\r\n .post(`${this.apiUrl}`, email)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n enviaEmailConfirmacaoLimpezaFazenda(email: Email): Observable {\r\n return this.http\r\n .post(`${this.apiUrl}/confirmacaoLimpezaFazenda`, email)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n enviaEmailErroCadastro(email: Email) {\r\n return this.http\r\n .post(`${this.apiUrl}/erroCadastro`, email)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n handleError = (error: HttpErrorResponse) => {\r\n if (error.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('An error occurred:', error.error.message);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n console.error(\r\n `Backend returned code ${error.status}, ` +\r\n `body was: ${error.error}`);\r\n // if (error.status === 404) {\r\n // this.router.navigateByUrl('/404', { skipLocationChange: true });\r\n // }\r\n console.log(error);\r\n }\r\n // return an observable with a user-facing error message\r\n return throwError('Erro ao executar operação');\r\n }\r\n\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError, retry } from 'rxjs/operators';\r\nimport { UF } from 'src/models/cadastro/uf.model';\r\nimport { PerfilRacialRebanho } from 'src/models/cadastro/perfil-racial-rebanho.model';\r\nimport { SistemaProducao } from 'src/models/cadastro/sistema-producao.model';\r\nimport { Grupo } from 'src/models/cadastro/grupo.model';\r\nimport { Municipio } from 'src/models/cadastro/municipio.model';\r\nimport { Fazenda } from 'src/models/fazenda.model';\r\nimport { GrupoFazenda } from 'src/models/cadastro/grupo-fazenda.model';\r\nimport { Pais } from 'src/models/cadastro/pais.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FazendaService {\r\n\r\n private apiUrl = `${environment.apiBaseUrl}/fazenda`;\r\n private NUMERO_TENTATIVAS_REQUEST = 0;\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n getFazendas(): Observable {\r\n return this.http\r\n .get(`${this.apiUrl}`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getFazendasPorGrupo(cdgrupo: number): Observable {\r\n return this.http\r\n .get(`${this.apiUrl}/fazendas-por-grupo/${cdgrupo}`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n atualizaFazenda(fazenda: any): Observable {\r\n return this.http\r\n .put(`${this.apiUrl}/atualiza`, fazenda)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n removeFazenda(fazenda: any[]): Observable {\r\n return this.http\r\n .put(`${this.apiUrl}/remove`, fazenda)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n limpaFazenda(fazenda: any): Observable {\r\n return this.http\r\n .put(`${this.apiUrl}/clear`, fazenda)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n insereFazenda(fazenda: Fazenda) {\r\n return this.http\r\n .post(`${this.apiUrl}`, fazenda)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n insereGrupoFazenda(fazenda: Fazenda) {\r\n return this.http\r\n .post(`${this.apiUrl}/insere/grupo-fazenda`, fazenda)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getPais(): Observable {\r\n return this.http\r\n .get(`${this.apiUrl}/paises`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getUf(): Observable {\r\n return this.http\r\n .get(`${this.apiUrl}/ufs`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getPerfilRacialRebanho(): Observable {\r\n return this.http\r\n .get(`${this.apiUrl}/perfis-raciais-rebanho`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getSistemaProducao(): Observable {\r\n return this.http\r\n .get(`${this.apiUrl}/sistemas-producao`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getGrupo(): Observable {\r\n return this.http\r\n .get(`${this.apiUrl}/grupos`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getGrupoFazenda(): Observable {\r\n return this.http\r\n .get(`${this.apiUrl}/grupos-fazenda`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getMunicipoPorCdUf(cdUf: number): Observable {\r\n return this.http\r\n .get(`${this.apiUrl}/municipios/${cdUf}`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getMunicipios(): Observable {\r\n return this.http.get(`${this.apiUrl}/municipios`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getFazendasPlanilha(): Observable {\r\n return this.http.get(`${this.apiUrl}/fazendas-planilha`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getFazendasPlanilhaGrupo(cdgrupo: number): Observable {\r\n return this.http.get(`${this.apiUrl}/fazendas-planilha-grupo/${cdgrupo}`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n handleError = (error: HttpErrorResponse) => {\r\n if (error.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('An error occurred:', error.error.message);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n console.error(\r\n `Backend returned code ${error.status}, ` +\r\n `body was: ${error.error}`);\r\n // if (error.status === 404) {\r\n // this.router.navigateByUrl('/404', { skipLocationChange: true });\r\n // }\r\n console.log(error);\r\n }\r\n // return an observable with a user-facing error message\r\n return throwError('Erro ao executar operação');\r\n }\r\n}\r\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { throwError } from 'rxjs';\r\nimport { retry, catchError } from 'rxjs/operators';\r\nimport { environment } from 'src/environments/environment';\r\nimport { LogAcesso } from 'src/models/logacesso.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LogAcessoService {\r\n \r\n private apiUrl = `${environment.apiBaseUrl}/logacesso`;\r\n private NUMERO_TENTATIVAS_REQUEST = 0;\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n insere(logAcesso: LogAcesso) {\r\n return this.http\r\n .post(`${this.apiUrl}`, logAcesso)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n handleError = (error: HttpErrorResponse) => {\r\n if (error.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('An error occurred:', error.error.message);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n console.error(\r\n `Backend returned code ${error.status}, ` +\r\n `body was: ${error.error}`);\r\n // if (error.status === 404) {\r\n // this.router.navigateByUrl('/404', { skipLocationChange: true });\r\n // }\r\n console.log(error);\r\n }\r\n // return an observable with a user-facing error message\r\n return throwError('Erro ao executar operação');\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Matriz } from 'src/models/matriz/matriz.model';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { retry, catchError } from 'rxjs/operators';\r\nimport { ComposicaoRacial } from 'src/models/matriz/composicao-racial.model';\r\nimport { Reprodutor } from 'src/models/matriz/reprodutor.model';\r\nimport { MotivoBaixa } from 'src/models/matriz/motivo-baixa.model';\r\nimport { Lote } from 'src/models/matriz/lote.model';\r\nimport { Genealogia } from 'src/models/matriz/genealogia.model';\r\nimport { Reproducao } from 'src/models/matriz/reproducao.models';\r\nimport { HistoricoDeMatriz } from 'src/models/matriz/historico-matriz.model';\r\nimport { Raca } from 'src/models/configuracoes/raca.model';\r\nimport { AltaGestaoService } from './alta-gestao.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MatrizService {\r\n\r\n private apiUrlMatriz = `${environment.apiBaseUrl}/matriz`;\r\n private apiUrlConfiguracoes = `${environment.apiBaseUrl}/configuracoes`;\r\n private NUMERO_TENTATIVAS_REQUEST = 0;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private altaGestaoService: AltaGestaoService) {\r\n }\r\n\r\n getMatrizes(): Observable {\r\n return this.http\r\n .get(`${this.apiUrlMatriz}/${this.altaGestaoService.getCdFazendaSelecionada()}`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n atualizaMatriz(matriz: any): Observable {\r\n return this.http\r\n .put(`${this.apiUrlMatriz}/atualiza`, matriz)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n removeMatriz(matriz: any): Observable {\r\n return this.http\r\n .put(`${this.apiUrlMatriz}/remove`, matriz)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getComposicaoRacial(): Observable {\r\n return this.http\r\n .get(`${this.apiUrlMatriz}/composicao-racial/${this.altaGestaoService.getCdFazendaSelecionada()}`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getReprodutor(): Observable {\r\n return this.http\r\n .get(`${this.apiUrlMatriz}/reprodutor/${this.altaGestaoService.getCdFazendaSelecionada()}`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getMotivoBaixa(): Observable {\r\n return this.http.get(`${this.apiUrlMatriz}/motivo-baixa`).pipe(retry(3), catchError(this.handleError));\r\n }\r\n\r\n getLote(): Observable {\r\n return this.http\r\n .get(`${this.apiUrlMatriz}/lote/${this.altaGestaoService.getCdFazendaSelecionada()}`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getGenealogia(): Observable {\r\n return this.http\r\n .get(`${this.apiUrlMatriz}/genealogia/${this.altaGestaoService.getCdFazendaSelecionada()}`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getReproducao(): Observable {\r\n return this.http\r\n .get(`${this.apiUrlMatriz}/reproducao/${this.altaGestaoService.getCdFazendaSelecionada()}`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getHistoricoDeMatrizPorFazenda(): Observable {\r\n return this.http\r\n .get(`${this.apiUrlMatriz}/historico-matriz/${this.altaGestaoService.getCdFazendaSelecionada()}`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getRaca(): Observable {\r\n return this.http\r\n .get(`${this.apiUrlConfiguracoes}/raca`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getConfiguracoesComposicaoRacial(): Observable {\r\n return this.http\r\n .get(`${this.apiUrlConfiguracoes}/composicao-racial/${this.altaGestaoService.getCdFazendaSelecionada()}`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n updateComposition(value: any): Observable {\r\n return this.http\r\n .put(`${this.apiUrlConfiguracoes}/composicao-racial/atualiza`, value)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n insertComposition(racialComposition: ComposicaoRacial) {\r\n return this.http\r\n .post(`${this.apiUrlConfiguracoes}/composicao-racial`, racialComposition)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getLot(): Observable {\r\n return this.http\r\n .get(`${this.apiUrlConfiguracoes}/lote/${this.altaGestaoService.getCdFazendaSelecionada()}`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n updateLot(value: any): Observable {\r\n return this.http\r\n .put(`${this.apiUrlConfiguracoes}/lote/atualiza`, value)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n insertLot(lote: Lote) {\r\n return this.http\r\n .post(`${this.apiUrlConfiguracoes}`, lote)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n insereMatriz(matriz: Matriz) {\r\n matriz.cdfazenda = this.altaGestaoService.getCdFazendaSelecionada();\r\n return this.http\r\n .post(`${this.apiUrlMatriz}`, matriz)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getCdFazenda() {\r\n return this.altaGestaoService.getCdFazendaSelecionada();\r\n }\r\n\r\n removeHistoricoDeMatriz(historicoMatriz: Array): Observable {\r\n return this.http\r\n .put(`${this.apiUrlMatriz}/historico-matriz/remove`, historicoMatriz)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n atualizaHistoricoDeMatriz(historicoMatriz: HistoricoDeMatriz[]): Observable {\r\n return this.http\r\n .post(`${this.apiUrlMatriz}/historico-matriz/atualiza`, historicoMatriz)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n handleError = (error: HttpErrorResponse) => {\r\n if (error.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('An error occurred:', error.error.message);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n console.error(\r\n `Backend returned code ${error.status}, ` +\r\n `body was: ${error.error}`);\r\n // if (error.status === 404) {\r\n // this.router.navigateByUrl('/404', { skipLocationChange: true });\r\n // }\r\n console.log(error);\r\n }\r\n // return an observable with a user-facing error message\r\n return throwError('Erro ao executar operação');\r\n }\r\n}\r\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable, throwError, zip } from 'rxjs';\r\nimport { retry, catchError } from 'rxjs/operators';\r\nimport { environment } from 'src/environments/environment';\r\nimport { FazendaParametro } from 'src/models/fazenda-parametro.model';\r\nimport { ParametroFiltro } from 'src/models/parametro-filtro.model';\r\nimport { AltaGestaoService } from './alta-gestao.service';\r\n\r\nconst itemIndex = (item: any, data: any[]): number => {\r\n for (let idx = 0; idx < data.length; idx++) {\r\n if (data[idx].cdFazendaParametro === item.cdFazendaParametro) {\r\n return idx;\r\n }\r\n }\r\n return -1;\r\n};\r\n\r\nconst cloneData = (data: any[]) => data.map(item => Object.assign({}, item));\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ParametrosEditaveisService extends BehaviorSubject {\r\n\r\n private apiUrlCadastro = `${environment.apiBaseUrl}/cadastro`;\r\n private NUMERO_TENTATIVAS_REQUEST = 0;\r\n\r\n private data: FazendaParametro[] = [];\r\n private originalData: FazendaParametro[] = [];\r\n private updatedItems: FazendaParametro[] = [];\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private altaGestaoService: AltaGestaoService) {\r\n super([]);\r\n }\r\n\r\n atualizaFazendaParametros(parameters: FazendaParametro[]): Observable {\r\n return this.http\r\n .put(`${this.apiUrlCadastro}/fazenda-parametro/atualiza`, parameters)\r\n .pipe(retry(3), catchError(this.handleError));\r\n }\r\n\r\n public read(parameterFilter: ParametroFiltro) {\r\n if (this.data.length) {\r\n return super.next(this.data);\r\n }\r\n\r\n this.fetch(parameterFilter)\r\n .subscribe(data => {\r\n this.convertValuesToNumber(data);\r\n this.data = data;\r\n this.originalData = cloneData(data);\r\n super.next(data);\r\n });\r\n }\r\n\r\n public update(item: any): void {\r\n if (!this.isNew(item)) {\r\n const index = itemIndex(item, this.updatedItems);\r\n if (index !== -1) {\r\n this.updatedItems.splice(index, 1, item);\r\n } else {\r\n this.updatedItems.push(item);\r\n }\r\n // } else {\r\n // const index = this.createdItems.indexOf(item);\r\n // this.createdItems.splice(index, 1, item);\r\n }\r\n }\r\n\r\n // public create(item: any): void {\r\n // this.createdItems.push(item);\r\n // this.data.unshift(item);\r\n // super.next(this.data);\r\n // }\r\n\r\n public isNew(item: any): boolean {\r\n return !item.cdFazendaParametro;\r\n }\r\n\r\n public hasChanges(): boolean {\r\n return Boolean(this.updatedItems.length);\r\n }\r\n\r\n public saveChanges(parameterFilter: ParametroFiltro): void {\r\n if (!this.hasChanges()) {\r\n return;\r\n }\r\n\r\n const completed = [];\r\n if (this.updatedItems.length) {\r\n // completed.push(this.fetch(UPDATE_ACTION, this.updatedItems));\r\n this.convertValuesToString();\r\n completed.push(this.atualizaFazendaParametros(this.updatedItems));\r\n }\r\n\r\n this.reset();\r\n\r\n zip(...completed).subscribe(() => this.read(parameterFilter));\r\n }\r\n\r\n public cancelChanges(): void {\r\n this.reset();\r\n this.data = this.originalData;\r\n this.originalData = cloneData(this.originalData);\r\n super.next(this.data);\r\n }\r\n\r\n public assignValues(target: any, source: any): void {\r\n Object.assign(target, source);\r\n }\r\n\r\n private reset() {\r\n this.data = [];\r\n this.updatedItems = [];\r\n }\r\n\r\n fetch(parameterFilter: ParametroFiltro): Observable {\r\n parameterFilter.cdFazenda = this.altaGestaoService.getCdFazendaSelecionada();\r\n return this.http\r\n .post(`${this.apiUrlCadastro}/fazenda-parametro`, parameterFilter)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n convertValuesToString() {\r\n this.updatedItems.forEach((parameter) => {\r\n parameter.valor = parameter.valor.toString();\r\n });\r\n }\r\n\r\n convertValuesToNumber(data: FazendaParametro[]) {\r\n data.forEach((parameter) => {\r\n parameter.valorNumerico = Number(parameter.valor);\r\n });\r\n }\r\n\r\n handleError = (error: HttpErrorResponse) => {\r\n if (error.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('An error occurred:', error.error.message);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n console.error(\r\n `Backend returned code ${error.status}, ` +\r\n `body was: ${error.error}`);\r\n // if (error.status === 404) {\r\n // this.router.navigateByUrl('/404', { skipLocationChange: true });\r\n // }\r\n console.log(error);\r\n }\r\n // return an observable with a user-facing error message\r\n return throwError('Erro ao executar operação');\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { retry, catchError } from 'rxjs/operators';\r\nimport { ControleLeiteiro } from 'src/models/producao/controle-leiteiro.model';\r\nimport { AltaGestaoService } from './alta-gestao.service';\r\nimport { Secagem } from 'src/models/producao/secagem.model';\r\nimport { ListagemProducaoFiltro } from 'src/models/listagem/listagem-producao-filtro.model';\r\nimport { ListagemProducao } from 'src/models/listagem/listagem-producao.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProducaoService {\r\n\r\n private apiUrlProducao = `${environment.apiBaseUrl}/producao`;\r\n private apiUrlListagem = `${environment.apiBaseUrl}/listagem`;\r\n private NUMERO_TENTATIVAS = 0;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private altaGestaoService: AltaGestaoService) {\r\n }\r\n\r\n getControlesLeiteirosLancados(): Observable {\r\n return this.http\r\n .get(`${this.apiUrlProducao}/controle-leiteiro/lancados/${this.altaGestaoService.getCdFazendaSelecionada()}`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS), catchError(this.handleError));\r\n }\r\n\r\n getControlesLeiteirosParaLancamento(): Observable {\r\n return this.http\r\n .get(`${this.apiUrlProducao}/controle-leiteiro/lancamento/${this.altaGestaoService.getCdFazendaSelecionada()}`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS), catchError(this.handleError));\r\n }\r\n\r\n getControlesLeiteirosParaExportacao(filtro: ListagemProducaoFiltro): Observable {\r\n filtro.cdFazenda = this.altaGestaoService.getCdFazendaSelecionada();\r\n return this.http\r\n .post(`${this.apiUrlListagem}/listagem-producao`, filtro)\r\n .pipe(retry(this.NUMERO_TENTATIVAS), catchError(this.handleError));\r\n }\r\n\r\n insereControleLeiteiro(controlesLeiteiro: ControleLeiteiro): Observable {\r\n return this.http\r\n .post(`${this.apiUrlProducao}/controle-leiteiro/novo`, controlesLeiteiro)\r\n .pipe(retry(this.NUMERO_TENTATIVAS), catchError(this.handleError));\r\n }\r\n\r\n insereControlesLeiteiros(controlesLeiteiros: Array): Observable> {\r\n return this.http\r\n .post>(`${this.apiUrlProducao}/controle-leiteiro/novos`, controlesLeiteiros)\r\n .pipe(retry(this.NUMERO_TENTATIVAS), catchError(this.handleError));\r\n }\r\n\r\n atualizaControlesLeiteiros(controlesLeiteiros: Array): Observable> {\r\n return this.http\r\n .put>(`${this.apiUrlProducao}/controle-leiteiro/atualiza`, controlesLeiteiros)\r\n .pipe(retry(this.NUMERO_TENTATIVAS), catchError(this.handleError));\r\n }\r\n\r\n removeControleLeiteiro(cdLeite: number): Observable {\r\n return this.http\r\n .put(`${this.apiUrlProducao}/controle-leiteiro/remove`, cdLeite)\r\n .pipe(retry(this.NUMERO_TENTATIVAS), catchError(this.handleError));\r\n }\r\n\r\n getSecagensLancadas(): Observable {\r\n return this.http.get(`${this.apiUrlProducao}/secagem/lancadas/${this.altaGestaoService.getCdFazendaSelecionada()}`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS), catchError(this.handleError));\r\n }\r\n\r\n getSecagensParaLancamento(): Observable {\r\n return this.http\r\n .get(`${this.apiUrlProducao}/secagem/lancamento/${this.altaGestaoService.getCdFazendaSelecionada()}`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS), catchError(this.handleError));\r\n }\r\n\r\n insereSecagem(secagens: Secagem): Observable {\r\n return this.http\r\n .post(`${this.apiUrlProducao}/secagem/nova`, secagens)\r\n .pipe(retry(this.NUMERO_TENTATIVAS), catchError(this.handleError));\r\n }\r\n\r\n getUltimoControleLeiteiro(Secagem: Secagem): Observable {\r\n return this.http\r\n .post(`${this.apiUrlProducao}/controle-leiteiro/ultimo`, Secagem)\r\n .pipe(retry(this.NUMERO_TENTATIVAS), catchError(this.handleError));\r\n }\r\n\r\n insereSecagens(secagens: Array): Observable> {\r\n return this.http\r\n .post>(`${this.apiUrlProducao}/secagem/novas`, secagens)\r\n .pipe(retry(this.NUMERO_TENTATIVAS), catchError(this.handleError));\r\n }\r\n\r\n atualizaSecagens(secagens: Array): Observable> {\r\n return this.http\r\n .put>(`${this.apiUrlProducao}/secagem/atualiza`, secagens)\r\n .pipe(retry(this.NUMERO_TENTATIVAS), catchError(this.handleError));\r\n }\r\n\r\n removeSecagem(secagem: Secagem): Observable {\r\n return this.http\r\n .put(`${this.apiUrlProducao}/secagem/remove`, secagem)\r\n .pipe(retry(this.NUMERO_TENTATIVAS), catchError(this.handleError));\r\n }\r\n\r\n handleError = (error: HttpErrorResponse) => {\r\n if (error.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('An error occurred:', error.error.message);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n console.error(\r\n `Backend returned code ${error.status}, ` +\r\n `body was: ${error.error}`);\r\n // if (error.status === 404) {\r\n // this.router.navigateByUrl('/404', { skipLocationChange: true });\r\n // }\r\n console.log(error);\r\n }\r\n // return an observable with a user-facing error message\r\n return throwError('Erro ao executar operação');\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Iatf } from 'src/models/reproducao/iatf.model';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { retry, catchError } from 'rxjs/operators';\r\nimport { ReprodcutionIatfFilter } from 'src/models/reproducao/iatf-filter.model';\r\nimport { Protocolo } from 'src/models/protocolo.model';\r\nimport { OcorrenciaDeReproducao } from 'src/models/reproducao/ocorrencia-de-reproducao.model';\r\nimport { AltaGestaoService } from './alta-gestao.service';\r\nimport { TentativaDeParto } from 'src/models/reproducao/tentativa-de-parto.model';\r\nimport { TipoDeParto } from 'src/models/reproducao/tipo-de-parto.model';\r\nimport { DificuldadeDeParto } from 'src/models/reproducao/dificuldade-de-parto.model';\r\nimport { Reprodutor } from 'src/models/matriz/reprodutor.model';\r\nimport { ResultadoDiagnostico } from 'src/models/resultado-diagnostico.model';\r\nimport { TipoTentativa } from 'src/models/tipo-tentativa.model';\r\nimport { Reproducao } from 'src/models/matriz/reproducao.models';\r\nimport { IaCobTeFilter } from 'src/models/reproducao/ia-cob-te-filter.model';\r\nimport { HistoricoReproducao } from 'src/models/reproducao/historico-reproducao.model';\r\nimport { HistoricoReproducaoFiltro } from 'src/models/reproducao/historico-reproducao-filtro.model';\r\nimport { Leite } from 'src/models/leite.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ReproducaoService {\r\n\r\n private apiUrlReproducao = `${environment.apiBaseUrl}/reproducao`;\r\n private NUMERO_TENTATIVAS_REQUEST = 0;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private altaGestaoService: AltaGestaoService) {\r\n }\r\n\r\n getDificuldadesDeParto(): Observable {\r\n return this.http\r\n .get(`${this.apiUrlReproducao}/parto/dificuldades-parto`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getTiposDeParto(): Observable {\r\n return this.http\r\n .get(`${this.apiUrlReproducao}/parto/tipos-parto`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getTentativasAtuaisDeReproducao(): Observable {\r\n return this.http\r\n .get(`${this.apiUrlReproducao}/parto/tentativa-reproducao/${this.altaGestaoService.getCdFazendaSelecionada()}`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n atualizaTentativasAtuaisDeReproducao(tentativasReproducao: Array): Observable {\r\n return this.http\r\n .post(`${this.apiUrlReproducao}/parto/tentativa-reproducao/atualiza`, tentativasReproducao)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getOcorrenciasDeReproducao(): Observable {\r\n return this.http\r\n .get(`${this.apiUrlReproducao}/ocorrencia-reproducao/${this.altaGestaoService.getCdFazendaSelecionada()}`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getOcorrenciasDeReproducaoPorMatriz(cdMatriz: number): Observable {\r\n return this.http\r\n .get(`${this.apiUrlReproducao}/ocorrencia-reproducao/matriz/${cdMatriz}`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getTiposOcorrencia(): Observable {\r\n return this.http\r\n .get(`${this.apiUrlReproducao}/ocorrencia-reproducao/tipos-ocorrencia`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n removeOcorrenciasDeReproducao(ids: number[]): Observable {\r\n return this.http\r\n .put(`${this.apiUrlReproducao}/ocorrencia-reproducao/remove`, ids)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n atualizaOcorrenciasDeReproducao(ocorrenciasReproducao: Array): Observable {\r\n return this.http\r\n .post(`${this.apiUrlReproducao}/ocorrencia-reproducao/atualiza`, ocorrenciasReproducao)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getLancamentosProtocolosIatf(filtro: ReprodcutionIatfFilter): Observable {\r\n filtro.cdFarm = this.altaGestaoService.getCdFazendaSelecionada();\r\n return this.http\r\n .post(`${this.apiUrlReproducao}/iatfs/protocolos/lancamentos`, filtro)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getLancamentosProtocolosIatfMatrizNoPev(filtro: ReprodcutionIatfFilter): Observable {\r\n filtro.cdFarm = this.altaGestaoService.getCdFazendaSelecionada();\r\n return this.http\r\n .post(`${this.apiUrlReproducao}/iatfs/protocolos/lancamentos/matriz-pev`, filtro)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getLancamentosProtocolosIatfMatrizPrenha(filtro: ReprodcutionIatfFilter): Observable {\r\n filtro.cdFarm = this.altaGestaoService.getCdFazendaSelecionada();\r\n return this.http\r\n .post(`${this.apiUrlReproducao}/iatfs/protocolos/lancamentos/matriz-prenha`, filtro)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getLancamentosProtocolosIatfMatrizNoPevEPrenha(filtro: ReprodcutionIatfFilter): Observable {\r\n filtro.cdFarm = this.altaGestaoService.getCdFazendaSelecionada();\r\n return this.http\r\n .post(`${this.apiUrlReproducao}/iatfs/protocols/lancamentos/matriz-prenha-pev`, filtro)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getProtocolosIatfLancados(filtro: ReprodcutionIatfFilter): Observable {\r\n filtro.cdFarm = this.altaGestaoService.getCdFazendaSelecionada();\r\n return this.http\r\n .post(`${this.apiUrlReproducao}/iatfs/protocolos/lancados`, filtro)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getProtocolosIatf(): Observable {\r\n return this.http\r\n .get(`${this.apiUrlReproducao}/iatfs/protocolos/${this.altaGestaoService.getCdFazendaSelecionada()}`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n insereIatfs(iatfs: Iatf[]) {\r\n return this.http\r\n .post(`${this.apiUrlReproducao}`, iatfs)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n atualizaIatfs(iatfs: Iatf[]) {\r\n return this.http\r\n .put(`${this.apiUrlReproducao}`, iatfs)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n removeIatfs(iatfs: Iatf[]) {\r\n return this.http\r\n .put(`${this.apiUrlReproducao}/iatf/remove`, iatfs)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getTiposTentativa(): Observable {\r\n return this.http\r\n .get(`${this.apiUrlReproducao}/consulta/tipos-tentativa`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getReprodutores(): Observable {\r\n return this.http\r\n .get(`${this.apiUrlReproducao}/consulta/reprodutor/${this.altaGestaoService.getCdFazendaSelecionada()}`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getResultadosDiagnostico(): Observable {\r\n return this.http\r\n .get(`${this.apiUrlReproducao}/consulta/resultado-diagnostico`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getReproducoes(): Observable {\r\n return this.http\r\n .get(`${this.apiUrlReproducao}/${this.altaGestaoService.getCdFazendaSelecionada()}`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n atualizaReproducoes(reproducoes: Array): Observable {\r\n return this.http\r\n .put(`${this.apiUrlReproducao}/consulta/atualiza`, reproducoes)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n removeReproducoes(cdsReproducao: number[]): Observable {\r\n return this.http\r\n .put(`${this.apiUrlReproducao}/consulta/remove`, cdsReproducao)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getIaCobTes(filtro: IaCobTeFilter): Observable {\r\n filtro.cdFazenda = this.altaGestaoService.getCdFazendaSelecionada();\r\n return this.http\r\n .post(`${this.apiUrlReproducao}/ia-cob-te`, filtro)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n insereIaCobTes(iacobtes: Reproducao[]) {\r\n iacobtes.forEach((ia) => ia.cdfazenda = this.altaGestaoService.getCdFazendaSelecionada());\r\n return this.http\r\n .post(`${this.apiUrlReproducao}/ia-cob-te/insere`, iacobtes)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getHistoricosDeReproducao(filtro: HistoricoReproducaoFiltro): Observable {\r\n filtro.cdFazenda = this.altaGestaoService.getCdFazendaSelecionada();\r\n return this.http\r\n .post(`${this.apiUrlReproducao}/historico-reproducao`, filtro)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n insereHistoricosDeReproducao(historicosReproducao: HistoricoReproducao[]): Observable {\r\n return this.http\r\n .post(`${this.apiUrlReproducao}/historico-reproducao/insere`, historicosReproducao)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n atualizaHistoricosDeReproducao(historicosReproducao: HistoricoReproducao[]): Observable {\r\n return this.http\r\n .put(`${this.apiUrlReproducao}/historico-reproducao/atualiza`, historicosReproducao)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n removeHistoricosDeReproducao(cdsHistoricoReproducao: number[]): Observable {\r\n return this.http\r\n .put(`${this.apiUrlReproducao}/historico-reproducao/remove`, cdsHistoricoReproducao)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getLeites(): Observable {\r\n return this.http\r\n .get(`${this.apiUrlReproducao}/leite/${this.altaGestaoService.getCdFazendaSelecionada()}`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n handleError = (error: HttpErrorResponse) => {\r\n if (error.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('An error occurred:', error.error.message);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n console.error(\r\n `Backend returned code ${error.status}, ` +\r\n `body was: ${error.error}`);\r\n // if (error.status === 404) {\r\n // this.router.navigateByUrl('/404', { skipLocationChange: true });\r\n // }\r\n console.log(error);\r\n }\r\n // return an observable with a user-facing error message\r\n return throwError('Erro ao executar operação');\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Pessoa } from 'src/models/pessoa.model';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError, retry } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UsuarioService {\r\n\r\n private apiUrl = `${environment.apiBaseUrl}/usuario`;\r\n private NUMERO_TENTATIVAS_REQUEST = 0;\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n getUsuariLogadoPorEmail(email: string): Observable {\r\n return this.http\r\n .get(`${this.apiUrl}/email/${email}`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n getUsuariLogadoPorLogin(login: string): Observable {\r\n return this.http\r\n .get(`${this.apiUrl}/login/${login}`)\r\n .pipe(retry(this.NUMERO_TENTATIVAS_REQUEST), catchError(this.handleError));\r\n }\r\n\r\n handleError = (error: HttpErrorResponse) => {\r\n if (error.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('An error occurred:', error.error.message);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n console.error(\r\n `Backend returned code ${error.status}, ` +\r\n `body was: ${error.error}`);\r\n // if (error.status === 404) {\r\n // this.router.navigateByUrl('/404', { skipLocationChange: true });\r\n // }\r\n console.log(error);\r\n }\r\n // return an observable with a user-facing error message\r\n return throwError('Erro ao executar operação');\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Matriz } from 'src/models/matriz/matriz.model';\r\nimport { ResultadoDiagnosticoEnum } from '../_enums/resultado-diagnostico.enum';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ValidacaoDiagnosticoReproducaoService {\r\n\r\n private reproducao: any;\r\n private matriz: Matriz;\r\n private erro: string;\r\n\r\n constructor() { }\r\n\r\n validaLancamentoDiagnostico(reproducao: any, matriz: Matriz): boolean {\r\n this.reproducao = reproducao;\r\n this.matriz = matriz;\r\n this.erro = ``;\r\n\r\n if (!this.existeDataDiagnosticos()) { return false; }\r\n if (!this.existeResultadoDiagnosticos()) { return false; }\r\n if (!this.validaLancamentoResultadoDiagnostico2()) { return false; }\r\n if (!this.validaLancamentoResultadoDiagnostico3()) { return false; }\r\n if (!this.validaLancamentoResultadoDiagnostico4()) { return false; }\r\n if (!this.validaDataDiagnostico1()) { return false; }\r\n if (!this.validaDataDiagnostico3()) { return false; }\r\n if (!this.validaDataDiagnostico4()) { return false; }\r\n if (!this.ehResultadoDiagnostico2Valido()) { return false; }\r\n if (!this.ehResultadoDiagnostico3Valido()) { return false; }\r\n if (!this.ehResultadoDiagnostico4Valido()) { return false; }\r\n if (!this.ehDataDiagnostico1Valida()) { return false; }\r\n if (!this.ehDataDiagnostico2Valida()) { return false; }\r\n if (!this.ehDataDiagnostico3Valida()) { return false; }\r\n if (!this.ehDataDiagnostico4Valida()) { return false; }\r\n\r\n return true;\r\n }\r\n\r\n private existeDataDiagnosticos(): boolean {\r\n if ((this.existeResultadoDiagnostico1() && !this.existaDataDiagnostico1())\r\n || (this.existeResultadoDiagnostico2() && !this.existaDataDiagnostico2())\r\n || (this.existeResultadoDiagnostico3() && !this.existaDataDiagnostico3())\r\n || (this.existeResultadoDiagnostico4() && !this.existaDataDiagnostico4())) {\r\n this.erro = `\r\n Não é permitido informar o resultado de algum toque\r\n sem informar sua data. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n private existeResultadoDiagnosticos(): boolean {\r\n if ((!this.existeResultadoDiagnostico1() && this.existaDataDiagnostico1())\r\n || (!this.existeResultadoDiagnostico2() && this.existaDataDiagnostico2())\r\n || (!this.existeResultadoDiagnostico3() && this.existaDataDiagnostico3())\r\n || (!this.existeResultadoDiagnostico4() && this.existaDataDiagnostico4())) {\r\n this.erro = `\r\n Não é permitido informar a data de algum toque sem informar\r\n o seu resultado. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n private validaLancamentoResultadoDiagnostico2(): boolean {\r\n if (this.existeResultadoDiagnostico2() && !this.existeResultadoDiagnostico1()) {\r\n this.erro = `\r\n Não é permitido informar o segundo toque sem informar\r\n o primeiro toque. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n private validaLancamentoResultadoDiagnostico3(): boolean {\r\n if (this.existeResultadoDiagnostico3() && !this.existeResultadoDiagnostico2()) {\r\n this.erro = `\r\n Não é permitido informar o terceiro toque sem informar\r\n os toques anteriores. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n private validaLancamentoResultadoDiagnostico4(): boolean {\r\n if (this.existeResultadoDiagnostico4() && !this.existeResultadoDiagnostico3()) {\r\n this.erro = `\r\n Não é permitido informar o quarto toque sem informar\r\n os toques anteriores. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n private validaDataDiagnostico1(): boolean {\r\n if (this.existaDataDiagnostico2() && !this.existaDataDiagnostico1()) {\r\n this.erro = `\r\n Não é permitido informar a data do segundo toque sem informar\r\n a data do primeiro toque. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n private validaDataDiagnostico3(): boolean {\r\n if (this.existaDataDiagnostico3() && !this.existaDataDiagnostico2()) {\r\n this.erro = `\r\n Não é permitido informar a data do terceiro toque sem informar\r\n a data do segundo toque. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n private validaDataDiagnostico4(): boolean {\r\n if (this.existaDataDiagnostico4() && !this.existaDataDiagnostico3()) {\r\n this.erro = `\r\n Não é permitido informar a data do quarto toque sem informar\r\n a data do terceiro toque. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n private ehResultadoDiagnostico2Valido(): boolean {\r\n let ehResultadoDiagnostico2Valido = true;\r\n\r\n if (this.existeResultadoDiagnostico1() && this.existeResultadoDiagnostico2()) {\r\n const ehResultadoDiagnostico1Positivo = this.reproducao.cdresultadodiagnostico1 !== ResultadoDiagnosticoEnum.N;\r\n const ehResultadoDiagnostico2Positivo = this.reproducao.cdresultadodiagnostico2 === ResultadoDiagnosticoEnum.P;\r\n\r\n if (!ehResultadoDiagnostico1Positivo && ehResultadoDiagnostico2Positivo) {\r\n this.erro = `\r\n Não é permitido informar o segundo toque como positivo com\r\n o primeiro toque negativo. Matriz: ${ this.matriz.numero }.`;\r\n ehResultadoDiagnostico2Valido = false;\r\n return ehResultadoDiagnostico2Valido;\r\n }\r\n }\r\n return ehResultadoDiagnostico2Valido;\r\n }\r\n\r\n private ehResultadoDiagnostico3Valido(): boolean {\r\n if (this.existeResultadoDiagnostico2() && this.existeResultadoDiagnostico3()) {\r\n const ehResultadoDiagnostico2Positivo = this.reproducao.cdresultadodiagnostico2 !== ResultadoDiagnosticoEnum.N;\r\n const ehResultadoDiagnostico3Positivo = this.reproducao.cdresultadodiagnostico3 === ResultadoDiagnosticoEnum.P;\r\n\r\n if (!ehResultadoDiagnostico2Positivo && ehResultadoDiagnostico3Positivo) {\r\n this.erro = `\r\n Não é permitido informar o terceiro toque como positivo com\r\n o segundo toque negativo. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n private ehResultadoDiagnostico4Valido(): boolean {\r\n if (this.existeResultadoDiagnostico4() && this.existeResultadoDiagnostico4()) {\r\n const ehResultadoDiagnostico3Positivo = this.reproducao.cdresultadodiagnostico3 !== ResultadoDiagnosticoEnum.N;\r\n const ehResultadoDiagnostico4Positivo = this.reproducao.cdresultadodiagnostico4 === ResultadoDiagnosticoEnum.P;\r\n\r\n if (!ehResultadoDiagnostico3Positivo && ehResultadoDiagnostico4Positivo) {\r\n this.erro = `\r\n Não é permitido informar o quarto toque como positivo com\r\n o terceiro toque negativo. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n private ehDataDiagnostico1Valida(): boolean {\r\n let ehDataDiagnostico1Valida = true;\r\n\r\n if (this.existaDataDiagnostico1()) {\r\n const dataAtual = new Date();\r\n const dataIaCobTe = new Date(this.reproducao.data);\r\n const dataDiagnostico1 = new Date(this.reproducao.dtdiagnostico1);\r\n\r\n ehDataDiagnostico1Valida = dataDiagnostico1 > dataIaCobTe && dataDiagnostico1 <= dataAtual;\r\n\r\n if (!ehDataDiagnostico1Valida) {\r\n this.erro = `\r\n A data do primeiro toque tem que ser superior à data da inseminação\r\n e inferior a data atual. Matriz: ${ this.matriz.numero }.`;\r\n return ehDataDiagnostico1Valida;\r\n }\r\n }\r\n return ehDataDiagnostico1Valida;\r\n }\r\n\r\n private ehDataDiagnostico2Valida(): boolean {\r\n let ehDataDiagnostico2Valida = true;\r\n\r\n if (this.existaDataDiagnostico2()) {\r\n const dataAtual = new Date();\r\n const dataIaCobTe = new Date(this.reproducao.data);\r\n const dataDiagnostico1 = new Date(this.reproducao.dtdiagnostico1);\r\n const dataDiagnostico2 = new Date(this.reproducao.dtdiagnostico2);\r\n\r\n ehDataDiagnostico2Valida =\r\n dataDiagnostico2 > dataIaCobTe\r\n && dataDiagnostico2 > dataDiagnostico1\r\n && dataDiagnostico2 <= dataAtual;\r\n\r\n if (!ehDataDiagnostico2Valida) {\r\n this.erro = `\r\n A data do segundo toque tem que ser superior à data da inseminação,\r\n a data do primeiro toque e inferior a data atual. Matriz: ${ this.matriz.numero }.`;\r\n return ehDataDiagnostico2Valida;\r\n }\r\n }\r\n return ehDataDiagnostico2Valida;\r\n }\r\n\r\n private ehDataDiagnostico3Valida(): boolean {\r\n let ehDataDiagnostico3Valida = true;\r\n\r\n if (this.existaDataDiagnostico3()) {\r\n const dataAtual = new Date();\r\n const dataIaCobTe = new Date(this.reproducao.data);\r\n const dataDiagnostico2 = new Date(this.reproducao.dtdiagnostico2);\r\n const dataDiagnostico3 = new Date(this.reproducao.dtdiagnostico3);\r\n\r\n ehDataDiagnostico3Valida =\r\n dataDiagnostico3 > dataIaCobTe\r\n && dataDiagnostico3 > dataDiagnostico2\r\n && dataDiagnostico3 <= dataAtual;\r\n\r\n if (!ehDataDiagnostico3Valida) {\r\n this.erro = `\r\n A data do terceiro toque tem que ser superior à data da inseminação,\r\n a data do segundo toque e inferior a data atual. Matriz: ${ this.matriz.numero }.`;\r\n return ehDataDiagnostico3Valida;\r\n }\r\n }\r\n return ehDataDiagnostico3Valida;\r\n }\r\n\r\n private ehDataDiagnostico4Valida(): boolean {\r\n let ehDataDiagnostico4Valida = true;\r\n\r\n if (this.existaDataDiagnostico4()) {\r\n const dataAtual = new Date();\r\n const dataIaCobTe = new Date(this.reproducao.data);\r\n const dataDiagnostico3 = new Date(this.reproducao.dtdiagnostico3);\r\n const dataDiagnostico4 = new Date(this.reproducao.dtdiagnostico4);\r\n\r\n ehDataDiagnostico4Valida =\r\n dataDiagnostico4 > dataIaCobTe\r\n && dataDiagnostico4 > dataDiagnostico3\r\n && dataDiagnostico4 <= dataAtual;\r\n\r\n if (!ehDataDiagnostico4Valida) {\r\n this.erro = `\r\n A data do quarto toque tem que ser superior à data da inseminação,\r\n a data do terceiro toque e inferior a data atual. Matriz: ${ this.matriz.numero }.`;\r\n return ehDataDiagnostico4Valida;\r\n }\r\n }\r\n return ehDataDiagnostico4Valida;\r\n }\r\n\r\n private existaDataDiagnostico1(): boolean {\r\n const existaDataDiagnostico1 =\r\n this.reproducao.dtdiagnostico1 !== undefined\r\n && this.reproducao.dtdiagnostico1 !== null;\r\n return existaDataDiagnostico1;\r\n }\r\n\r\n private existaDataDiagnostico2(): boolean {\r\n const existaDataDiagnostico2 =\r\n this.reproducao.dtdiagnostico2 !== undefined\r\n && this.reproducao.dtdiagnostico2 !== null;\r\n return existaDataDiagnostico2;\r\n }\r\n\r\n private existaDataDiagnostico3(): boolean {\r\n const existaDataDiagnostico3 =\r\n this.reproducao.dtdiagnostico3 !== undefined\r\n && this.reproducao.dtdiagnostico3 !== null;\r\n return existaDataDiagnostico3;\r\n }\r\n\r\n private existaDataDiagnostico4(): boolean {\r\n const existaDataDiagnostico4 =\r\n this.reproducao.dtdiagnostico4 !== undefined\r\n && this.reproducao.dtdiagnostico4 !== null;\r\n return existaDataDiagnostico4;\r\n }\r\n\r\n private existeResultadoDiagnostico1(): boolean {\r\n const hasDiagnosticResult1 =\r\n this.reproducao.cdresultadodiagnostico1 !== null\r\n && this.reproducao.cdresultadodiagnostico1 !== undefined;\r\n return hasDiagnosticResult1;\r\n }\r\n\r\n private existeResultadoDiagnostico2(): boolean {\r\n const existeResultadoDiagnostico2 =\r\n this.reproducao.cdresultadodiagnostico2 !== null\r\n && this.reproducao.cdresultadodiagnostico2 !== undefined;\r\n return existeResultadoDiagnostico2;\r\n }\r\n\r\n private existeResultadoDiagnostico3(): boolean {\r\n const hasDiagnosticResult3 =\r\n this.reproducao.cdresultadodiagnostico3 !== null\r\n && this.reproducao.cdresultadodiagnostico3 !== undefined;\r\n return hasDiagnosticResult3;\r\n }\r\n\r\n private existeResultadoDiagnostico4(): boolean {\r\n const hasDiagnosticResult4 =\r\n this.reproducao.cdresultadodiagnostico4 !== null\r\n && this.reproducao.cdresultadodiagnostico4 !== undefined;\r\n return hasDiagnosticResult4;\r\n }\r\n\r\n getErro(): string {\r\n return this.erro;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { Reprodutor } from 'src/models/configuracoes/reprodutor.model';\r\nimport { FazendaParametro } from 'src/models/fazenda-parametro.model';\r\nimport { Matriz } from 'src/models/matriz/matriz.model';\r\nimport { Reproducao } from 'src/models/matriz/reproducao.models';\r\nimport { TipoTentativaEnum } from '../_enums/tipo-tentativa.enum';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ValidacaoIaCobTeReproducaoService {\r\n\r\n private reproducao: any;\r\n private matriz: Matriz;\r\n private erro: string;\r\n private reproducoes: Reproducao[];\r\n private reprodutores: Reprodutor[];\r\n private parametros: FazendaParametro[];\r\n\r\n constructor() { }\r\n\r\n validaLancamentoIaCobTe(\r\n reproducoes: Reproducao[],\r\n reprodutores: Reprodutor[],\r\n reproducao: any,\r\n matriz: Matriz,\r\n parametros: FazendaParametro[]): boolean {\r\n this.reproducao = reproducao;\r\n this.matriz = matriz;\r\n this.erro = ``;\r\n this.reproducoes = reproducoes;\r\n this.reprodutores = reprodutores;\r\n this.parametros = parametros;\r\n\r\n if (!this.existeDataIaCobTe()) { return false; }\r\n if (!this.ehDataIaCobTeValida()) { return false; }\r\n if (!this.validaDataAptidao()) { return false; }\r\n if (!this.existeTipoTentativa()) { return false; }\r\n if (!this.existeUsoDescongelador()) { return false; }\r\n if (!this.existeReprodutor()) { return false; }\r\n if (!this.validaDoadora()) { return false; }\r\n if (this.existeReproducaoLancadaNaMesmaData()) { return false; }\r\n if (!this.validaLancamentoIaUsandoTouroComoReprodutor()) { return false; }\r\n if (!this.validaLancamentoCobUsandoSemenComoReprodutor()) { return false; }\r\n\r\n return true;\r\n }\r\n\r\n private validaDataAptidao(): boolean {\r\n const idadeAptidao = this.parametros.find(fazendaparametro => fazendaparametro.parametro.chave === `IdadeParaAptidao`);\r\n const existeIdadeAptidao = idadeAptidao !== undefined && idadeAptidao !== null;\r\n const existeDataNascimento = this.matriz.dtnascimento !== undefined && this.matriz.dtnascimento !== null;\r\n\r\n if (existeIdadeAptidao && existeDataNascimento) {\r\n const dataNascimento = new Date(this.matriz.dtnascimento).getTime();\r\n const dataServico = new Date(this.reproducao.data).getTime();\r\n const diasAptidao = Math.abs(dataNascimento - dataServico);\r\n const diasAptidaoConvertido = Math.ceil(diasAptidao / (1000 * 3600 * 24));\r\n\r\n if (diasAptidaoConvertido < Number(idadeAptidao.valor)) {\r\n this.erro = `\r\n A data de inseminação, cobertura ou transferência não pode ser anterior à\r\n data de nascimento somado aos dias para aptidão. Matriz ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private validaDoadora(): boolean {\r\n if (this.isTE()) {\r\n if (!this.existeDoadora()) {\r\n this.erro = `\r\n É obrigatório informar a doadora quando o tipo\r\n escolhido for transferência de embrião. Matriz ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n }\r\n if (!this.isTE()) {\r\n if (this.existeDoadora()) {\r\n this.erro = `\r\n Não é permitido informar a doadora para uma inseminação ou cobertura. Matriz ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n private existeDoadora(): boolean {\r\n const existeDoadora =\r\n this.reproducao.cddoadora !== undefined\r\n && this.reproducao.cddoadora !== null\r\n && this.reproducao.cddoadora > 0;\r\n return existeDoadora;\r\n }\r\n\r\n private existeUsoDescongelador(): boolean {\r\n const existeUsoDescongelador =\r\n this.reproducao.usodescongelador !== undefined\r\n && this.reproducao.usodescongelador !== null;\r\n if (!existeUsoDescongelador) {\r\n this.erro = `\r\n O uso de descongelador é de preenchimento obrigatório. Matriz ${ this.matriz.numero }.`;\r\n }\r\n return existeUsoDescongelador;\r\n }\r\n\r\n private existeTipoTentativa(): boolean {\r\n const existeTipoTentativa =\r\n this.reproducao.cdtipotentativa !== undefined\r\n && this.reproducao.cdtipotentativa !== null;\r\n\r\n if (!existeTipoTentativa) {\r\n this.erro = `É necessário informar o tipo de tentativa. Matriz ${ this.matriz.numero }.`;\r\n }\r\n return existeTipoTentativa;\r\n }\r\n\r\n private existeReprodutor(): boolean {\r\n const existeReprodutor =\r\n this.reproducao.cdreprodutor !== undefined\r\n && this.reproducao.cdreprodutor !== null\r\n && this.reproducao.cdreprodutor > 0;\r\n\r\n if (!existeReprodutor) {\r\n this.erro = `É necessário informar o reprodutor. Matriz ${ this.matriz.numero }.`;\r\n }\r\n return existeReprodutor;\r\n }\r\n\r\n private existeDataIaCobTe(): boolean {\r\n const existeDataIaCobTe = this.reproducao.data !== undefined && this.reproducao.data !== null;\r\n if (!existeDataIaCobTe) {\r\n this.erro = `É necessário informar a data de ia/cob/te. Matriz ${ this.matriz.numero }.`;\r\n }\r\n return existeDataIaCobTe;\r\n }\r\n\r\n private ehDataIaCobTeValida(): boolean {\r\n let ehDataIaCobTeValida = true;\r\n if (this.existeDataIaCobTe()) {\r\n const dataAtual = new Date();\r\n const dataNascimento = new Date(this.matriz.dtnascimento);\r\n const dataIaCobTe = new Date(this.reproducao.data);\r\n\r\n ehDataIaCobTeValida = dataIaCobTe > dataNascimento && dataIaCobTe <= dataAtual;\r\n\r\n if (!ehDataIaCobTeValida) {\r\n this.erro = `A data não pode ser anterior à data de nascimento\r\n e nem superior à data atual. Matriz ${ this.matriz.numero }.`;\r\n }\r\n }\r\n return ehDataIaCobTeValida;\r\n }\r\n\r\n private existeReproducaoLancadaNaMesmaData(): boolean {\r\n const reproducoes =\r\n this.reproducoes\r\n .filter(reproducao => reproducao.cdmatriz === this.reproducao.cdmatriz\r\n && new Date(reproducao.data).getTime() === moment(this.reproducao.data).toDate().getTime()\r\n && reproducao.cdreproducao !== this.reproducao.cdreproducao);\r\n\r\n const existeReproducaoLancadaNaMesmaData =\r\n reproducoes !== undefined\r\n && reproducoes !== null\r\n && reproducoes.length > 0;\r\n\r\n if (existeReproducaoLancadaNaMesmaData) {\r\n this.erro = `\r\n Não é permitido o cadastramento de uma tentativa na mesma\r\n data de outra tentativa. Matriz ${ this.matriz.numero }.`;\r\n }\r\n return existeReproducaoLancadaNaMesmaData;\r\n }\r\n\r\n private validaLancamentoIaUsandoTouroComoReprodutor(): boolean {\r\n const reprodutores =\r\n this.reprodutores.filter(\r\n reprodutor => reprodutor.cdreprodutor === this.reproducao.cdreprodutor\r\n && reprodutor.cdtiporeprodutor === 1);\r\n\r\n const existeReprodutor = reprodutores !== undefined && reprodutores.length > 0;\r\n\r\n if (this.isIA() && existeReprodutor) {\r\n this.erro = `Não pode informar inseminação utilizando touro como reprodutor. Matriz ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n private validaLancamentoCobUsandoSemenComoReprodutor(): boolean {\r\n const reprodutores =\r\n this.reprodutores.filter(\r\n reprodutor => reprodutor.cdreprodutor === this.reproducao.cdreprodutor\r\n && reprodutor.cdtiporeprodutor === 0);\r\n\r\n const existeReprodutor = reprodutores !== undefined && reprodutores.length > 0;\r\n\r\n if (this.isCob() && existeReprodutor) {\r\n this.erro = `Não pode informar cobertura utilizando sêmen como reprodutor. Matriz ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n private isTE(): boolean {\r\n const isTE = this.reproducao.cdtipotentativa === TipoTentativaEnum.TE;\r\n return isTE;\r\n }\r\n\r\n private isIA(): boolean {\r\n const isIA = this.reproducao.cdtipotentativa === TipoTentativaEnum.IA;\r\n return isIA;\r\n }\r\n\r\n private isCob(): boolean {\r\n const isCob = this.reproducao.cdtipotentativa === TipoTentativaEnum.COB;\r\n return isCob;\r\n }\r\n\r\n getErro(): string {\r\n return this.erro;\r\n }\r\n}\r\n","import { TipoPartoEnum } from './../_enums/tipo-parto.enum';\r\nimport { Injectable } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { FazendaParametro } from 'src/models/fazenda-parametro.model';\r\nimport { Matriz } from 'src/models/matriz/matriz.model';\r\nimport { Reproducao } from 'src/models/matriz/reproducao.models';\r\nimport { ResultadoDiagnosticoEnum as ResultadoDiagnosticoEnum } from '../_enums/resultado-diagnostico.enum';\r\nimport { TipoTentativaEnum } from '../_enums/tipo-tentativa.enum';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ValidaCaoPartoReproducaoService {\r\n\r\n reproducao: any;\r\n matriz: Matriz;\r\n erro: string;\r\n reproducoes: Reproducao[];\r\n matrizes: Matriz[];\r\n parametros: FazendaParametro[];\r\n\r\n constructor() { }\r\n\r\n validaLancamentoParto(\r\n reproducao: any,\r\n matriz: Matriz,\r\n matrizes: Matriz[],\r\n parametros: FazendaParametro[]): boolean {\r\n this.reproducao = reproducao;\r\n this.matrizes = matrizes;\r\n this.parametros = parametros;\r\n this.matriz = matriz;\r\n this.erro = ``;\r\n\r\n if (!this.validaDataParto()) { return false; }\r\n if (!this.validaParto()) { return false; }\r\n if (!this.validaDetalhesParto()) { return false; }\r\n if (!this.validaTipoParto()) { return false; }\r\n if (!this.validaGrauAuxilio()) { return false; }\r\n if (!this.existeCrias()) { return false; }\r\n if (this.criaPossuiNatimorto()) { return false; }\r\n if (!this.validaNumeroCria1()) { return false; }\r\n if (!this.validaNumeroCria2()) { return false; }\r\n if (!this.validaDiasGestacao()) { return false; }\r\n\r\n return true;\r\n }\r\n\r\n private validaDataParto(): boolean {\r\n let ehDataPartoValida = true;\r\n\r\n if (this.existeDataParto()) {\r\n const dataAtual = new Date();\r\n const dataIaCobTe = new Date(this.reproducao.data);\r\n const dataDiagnostico1 = new Date(this.reproducao.dtdiagnostico1);\r\n const dataDiagnostico2 = new Date(this.reproducao.dtdiagnostico2);\r\n const dataParto = new Date(this.reproducao.dtparto);\r\n const existeDataDiagnostico3 = this.reproducao.dtdiagnostico3 !== null && this.reproducao.dtdiagnostico3 !== undefined;\r\n const existeDataDiagnostico4 = this.reproducao.dtdiagnostico4 !== null && this.reproducao.dtdiagnostico4 !== undefined;\r\n\r\n ehDataPartoValida =\r\n dataParto > dataIaCobTe\r\n && dataParto > dataDiagnostico1\r\n && dataParto > dataDiagnostico2\r\n && dataParto <= dataAtual;\r\n\r\n if (existeDataDiagnostico3) {\r\n const dataDiagnostico3 = new Date(this.reproducao.dtdiagnostico3);\r\n ehDataPartoValida =\r\n dataParto > dataIaCobTe\r\n && dataParto > dataDiagnostico1\r\n && dataParto > dataDiagnostico2\r\n && dataParto > dataDiagnostico3\r\n && dataParto <= dataAtual;\r\n }\r\n\r\n if (existeDataDiagnostico4) {\r\n const dataDiagnostico3 = new Date(this.reproducao.dtdiagnostico3);\r\n const dataDiagnoscito4 = new Date(this.reproducao.dtdiagnostico4);\r\n ehDataPartoValida =\r\n dataParto > dataIaCobTe\r\n && dataParto > dataDiagnostico1\r\n && dataParto > dataDiagnostico2\r\n && dataParto > dataDiagnostico3\r\n && dataParto > dataDiagnoscito4\r\n && dataParto <= dataAtual;\r\n }\r\n\r\n if (!ehDataPartoValida) {\r\n this.erro = `\r\n A data do parto deve ser superior à data da inseminação, a data do diagnóstico 1,\r\n a data do diagnóstico 2, diagnóstico 3 e diagnóstico 4 e inferior a data atual. Matriz: ${ this.matriz.numero }.`;\r\n return ehDataPartoValida;\r\n }\r\n }\r\n return ehDataPartoValida;\r\n }\r\n\r\n private validaParto(): boolean {\r\n if (this.existeDataParto()) {\r\n if (!this.validaMatrizEstaPrenha()) { return false; }\r\n if (!this.validaLancamentoDiagnosticos()) { return false; }\r\n if (!this.validaLancamentoRetoques()) { return false; }\r\n }\r\n return true;\r\n }\r\n\r\n private validaMatrizEstaPrenha(): boolean {\r\n const estaPrenha =\r\n this.reproducao.cdresultadodiagnostico1 !== ResultadoDiagnosticoEnum.N\r\n && this.reproducao.cdresultadodiagnostico2 !== ResultadoDiagnosticoEnum.N\r\n && this.reproducao.cdresultadodiagnostico3 !== ResultadoDiagnosticoEnum.N\r\n && this.reproducao.cdresultadodiagnostico4 !== ResultadoDiagnosticoEnum.N;\r\n if (!estaPrenha) {\r\n this.erro = `\r\n Somente deve ser permitido informar um parto caso a matriz tenha ficado prenha. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n private validaLancamentoDiagnosticos(): boolean {\r\n if (!this.existeResultadoDiagnostico1()\r\n && !this.existeResultadoDiagnostico2()\r\n && !this.existeResultadoDiagnostico3()\r\n && !this.existeResultadoDiagnostico4()) {\r\n this.erro = `\r\n Não pode ser informado um parto sem ser informado ao menos um diagnóstico. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n private validaLancamentoRetoques(): boolean {\r\n const existeRetoque1 =\r\n this.reproducao.cdresultadodiagnostico1 === ResultadoDiagnosticoEnum.R\r\n && (this.reproducao.cdresultadodiagnostico2 !== undefined\r\n && this.reproducao.cdresultadodiagnostico2 !== null);\r\n\r\n const existeRetoque2 =\r\n this.reproducao.cdresultadodiagnostico2 === ResultadoDiagnosticoEnum.R\r\n && (this.reproducao.cdresultadodiagnostico3 !== undefined\r\n && this.reproducao.cdresultadodiagnostico3 !== null);\r\n\r\n const existeRetoque3 =\r\n this.reproducao.cdresultadodiagnostico3 === ResultadoDiagnosticoEnum.R\r\n && (this.reproducao.cdresultadodiagnostico4 !== undefined\r\n && this.reproducao.cdresultadodiagnostico4 !== null);\r\n\r\n if (existeRetoque1) {\r\n const dataParto = this.reproducao.dtparto;\r\n const ehDataPartoValida = moment(dataParto).toDate() > moment(this.reproducao.dtdiagnostico2).toDate();\r\n if (!ehDataPartoValida) {\r\n this.erro = `Se o animal foi marcado para retoque,\r\n a reconfirmação deve ser informada antes do lançamento do parto. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n }\r\n\r\n if (existeRetoque2) {\r\n const dataParto = this.reproducao.dtparto;\r\n const ehDataPartoValida = moment(dataParto).toDate() > moment(this.reproducao.dtdiagnostico3).toDate();\r\n if (!ehDataPartoValida) {\r\n this.erro = `Se o animal foi marcado para retoque,\r\n a reconfirmação deve ser informada antes do lançamento do parto. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n }\r\n\r\n if (existeRetoque3) {\r\n const dataParto = this.reproducao.dtparto;\r\n const ehDataPartoValida = moment(dataParto).toDate() > moment(this.reproducao.dtdiagnostico4).toDate();\r\n if (!ehDataPartoValida) {\r\n this.erro = `Se o animal foi marcado para retoque,\r\n a reconfirmação deve ser informada antes do lançamento do parto. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private existeCrias(): boolean {\r\n if (this.existeDataParto() && !this.ehTipoDePartoAbortoComLactacao()) {\r\n const ehGemelar = this.reproducao.gemelar === 1;\r\n const naoTemCria1Femea = this.reproducao.sexocria1 === null || this.reproducao.sexocria1 === undefined;\r\n const naoTemCria2Femea = this.reproducao.sexocria2 === null || this.reproducao.sexocria2 === undefined;\r\n\r\n if (ehGemelar) {\r\n if (naoTemCria1Femea || naoTemCria2Femea) {\r\n this.erro = `Informe o sexo das crias. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n }\r\n\r\n if (naoTemCria1Femea) {\r\n this.erro = `Informe o sexo das crias. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n\r\n if ((this.existeNumeroCria1() && !this.existeSexoCria1())\r\n || (this.existeNumeroCria2() && !this.existeSexoCria2())) {\r\n this.erro = `Não é permitido informar uma cria sem sexo. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n private validaDetalhesParto(): boolean {\r\n const existeEccParto =\r\n this.reproducao.eccParto !== undefined\r\n && this.reproducao.eccParto !== null\r\n && this.reproducao.eccParto > 0;\r\n\r\n const existeRetencaoPlacenta = this.reproducao.retencaoplacenta === 1 ? true : false;\r\n const existeDoencasMetabolicas = this.reproducao.doencasmetabolicas === 1 ? true : false;\r\n const existeDeslocamentoAbomaso = this.reproducao.deslocamentoabomaso === 1 ? true : false;\r\n const existeNatimortocria1 = this.reproducao.natimortocria1 === 1 ? true : false;\r\n const existeNatimortocria2 = this.reproducao.natimortocria2 === 1 ? true : false;\r\n const ehGemelar = this.reproducao.gemelar === 1 ? true : false;\r\n\r\n const existeAlgumDetalheDeLancamentoDeParto =\r\n (\r\n this.existeSexoCria1()\r\n || this.existeSexoCria2()\r\n || existeEccParto\r\n || existeRetencaoPlacenta\r\n || existeDoencasMetabolicas\r\n || existeDeslocamentoAbomaso\r\n || existeNatimortocria1\r\n || existeNatimortocria2\r\n || this.existeCdCria1()\r\n || this.existeCdCria2()\r\n || ehGemelar\r\n );\r\n\r\n if (this.existeResultadoDiagnostico2()\r\n && this.getResultadoDiagnostico2() === 1\r\n && existeAlgumDetalheDeLancamentoDeParto\r\n && !this.existeDataParto()) {\r\n this.erro = `É necessário informar a data do parto. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n\r\n if (existeAlgumDetalheDeLancamentoDeParto\r\n && !this.existeDataParto()) {\r\n this.erro = `É necessário informar a data do parto. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private validaNumeroCria1(): boolean {\r\n if (this.existeNumeroCria1()) {\r\n const matrizes =\r\n this.matrizes.filter(\r\n matriz => matriz.numero.toUpperCase() === this.reproducao.numeroCria1.toUpperCase());\r\n const existeMatriz = matrizes !== undefined && matrizes.length > 0;\r\n\r\n if (!this.existeCdCria1() && existeMatriz) {\r\n this.erro =\r\n `A cria 1 informada não pode ter um número já existente no cadastro de matrizes. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n private validaNumeroCria2() {\r\n if (this.existeNumeroCria2()) {\r\n const matrixList =\r\n this.matrizes.filter(\r\n matriz => matriz.numero.toUpperCase() === this.reproducao.numeroCria2.toUpperCase());\r\n const existeMatriz = matrixList !== undefined && matrixList.length > 0;\r\n\r\n if (!this.existeCdCria2() && existeMatriz) {\r\n this.erro =\r\n `A cria 2 informada não pode ter um número já existente no cadastro de matrizes. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n private validaDiasGestacao(): boolean {\r\n if (this.existeDataParto()) {\r\n let dtAuxMin: Date;\r\n const parametroGestacaoMinima = this.parametros.find(p => p.parametro.chave === `MinimoGestacao`);\r\n const parametroGestacaoMaxima = this.parametros.find(p => p.parametro.chave === `MaximoGestacao`);\r\n const valorGestacaoMinima = Number(parametroGestacaoMinima.valor);\r\n const valorGestacaoMaxima = Number(parametroGestacaoMaxima.valor);\r\n const dataReproducao = new Date(this.reproducao.data);\r\n const dataParto = new Date(this.reproducao.dtparto);\r\n\r\n if (this.isTE()) {\r\n dtAuxMin = dataReproducao;\r\n dtAuxMin.setDate(dtAuxMin.getDate() - 7);\r\n } else {\r\n dtAuxMin = dataReproducao;\r\n }\r\n\r\n const diferenca = Math.abs(dataParto.getTime() - dtAuxMin.getTime());\r\n const diferencaDias = Math.ceil(diferenca / (1000 * 3600 * 24));\r\n\r\n if (diferencaDias < valorGestacaoMinima) {\r\n this.erro =\r\n `A quantidade de dias de gestação não pode ser inferior à quantidade mínima (${ valorGestacaoMinima }) informada nos parâmetros do sistema.\r\n Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n\r\n if (diferencaDias > valorGestacaoMaxima) {\r\n this.erro =\r\n `A quantidade de dias de gestação não pode ser superior à quantidade máxima (${ valorGestacaoMaxima }) informada nos parâmetros do sistema.\r\n Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n private validaTipoParto(): boolean {\r\n if (!this.existeTipoParto() && this.existeDataParto()) {\r\n this.erro = `É necessário informar o tipo do parto. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n private validaGrauAuxilio(): boolean {\r\n if (!this.existeGrauAuxilio()) {\r\n this.erro = `É necessário informar o grau de auxílio do parto. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n private criaPossuiNatimorto(): boolean {\r\n const cria1PossuiNatimorto = this.existeNumeroCria1() && this.reproducao.natimortocria1 === 1;\r\n const cria2PossuiNatimorto = this.existeNumeroCria2() && this.reproducao.natimortocria2 === 1;\r\n if (cria1PossuiNatimorto || cria2PossuiNatimorto) {\r\n this.erro = `Não é permitido informar cria com natimorto. Matriz: ${ this.matriz.numero }.`;\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n private existeDataParto(): boolean {\r\n const existeDataParto =\r\n this.reproducao.dtparto !== undefined\r\n && this.reproducao.dtparto !== null;\r\n return existeDataParto;\r\n }\r\n\r\n private existeTipoParto(): boolean {\r\n const existeTipoParto =\r\n this.reproducao.cdtipoparto !== null\r\n && this.reproducao.cdtipoparto !== undefined\r\n && this.reproducao.cdtipoparto > 0;\r\n return existeTipoParto;\r\n }\r\n\r\n private existeNumeroCria1(): boolean {\r\n const existeNumeroCria1 = this.reproducao.numeroCria1 !== undefined\r\n && this.reproducao.numeroCria1 !== null\r\n && this.reproducao.numeroCria1 !== ``;\r\n return existeNumeroCria1;\r\n }\r\n\r\n private existeNumeroCria2(): boolean {\r\n const existeNumeroCria2 = this.reproducao.numeroCria2 !== undefined\r\n && this.reproducao.numeroCria2 !== null\r\n && this.reproducao.numeroCria2 !== ``;\r\n return existeNumeroCria2;\r\n }\r\n\r\n private existeSexoCria1(): boolean {\r\n const hasCria1 = this.reproducao.sexocria1 !== undefined\r\n && this.reproducao.sexocria1 !== null\r\n && this.reproducao.sexocria1 !== ``;\r\n return hasCria1;\r\n }\r\n\r\n private existeSexoCria2(): boolean {\r\n const hasCria2 = this.reproducao.sexocria2 !== undefined\r\n && this.reproducao.sexocria2 !== null\r\n && this.reproducao.sexocria2 !== ``;\r\n return hasCria2;\r\n }\r\n\r\n private existeCdCria1(): boolean {\r\n const existeCdCria1 = this.reproducao.cdcria1 !== undefined\r\n && this.reproducao.cdcria1 !== null\r\n && this.reproducao.cdcria1 > 0;\r\n return existeCdCria1;\r\n }\r\n\r\n private existeCdCria2(): boolean {\r\n const existeCdCria2 = this.reproducao.cdcria2 !== undefined\r\n && this.reproducao.cdcria2 !== null\r\n && this.reproducao.cdcria2 > 0;\r\n return existeCdCria2;\r\n }\r\n\r\n private existeGrauAuxilio(): boolean {\r\n const existeGrauAuxilio =\r\n this.reproducao.cddificuldadeparto !== null\r\n && this.reproducao.cddificuldadeparto !== undefined\r\n && this.reproducao.cddificuldadeparto > 0;\r\n return existeGrauAuxilio;\r\n }\r\n\r\n private existeResultadoDiagnostico1(): boolean {\r\n const existeResultadoDiagnostico1 =\r\n this.reproducao.cdresultadodiagnostico1 !== null\r\n && this.reproducao.cdresultadodiagnostico1 !== undefined;\r\n return existeResultadoDiagnostico1;\r\n }\r\n\r\n private existeResultadoDiagnostico2(): boolean {\r\n const existeResultadoDiagnostico2 =\r\n this.reproducao.cdresultadodiagnostico2 !== null\r\n && this.reproducao.cdresultadodiagnostico2 !== undefined;\r\n return existeResultadoDiagnostico2;\r\n }\r\n\r\n private existeResultadoDiagnostico3(): boolean {\r\n const existeResultadoDiagnostico3 =\r\n this.reproducao.cdresultadodiagnostico3 !== null\r\n && this.reproducao.cdresultadodiagnostico3 !== undefined;\r\n return existeResultadoDiagnostico3;\r\n }\r\n\r\n private existeResultadoDiagnostico4(): boolean {\r\n const existeResultadoDiagnostico4 =\r\n this.reproducao.cdresultadodiagnostico4 !== null\r\n && this.reproducao.cdresultadodiagnostico4 !== undefined;\r\n return existeResultadoDiagnostico4;\r\n }\r\n\r\n private getResultadoDiagnostico2(): any {\r\n return this.reproducao.cdresultadodiagnostico2;\r\n }\r\n\r\n private isTE(): boolean {\r\n const isTE = this.reproducao.cdtipotentativa === TipoTentativaEnum.TE;\r\n return isTE;\r\n }\r\n\r\n private ehTipoDePartoAbortoComLactacao() {\r\n return this.reproducao.cdtipoparto === TipoPartoEnum.ABORTO_COM_LACTACAO;\r\n }\r\n\r\n getErro(): string {\r\n return this.erro;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Matriz } from 'src/models/matriz/matriz.model';\r\nimport { Reproducao } from 'src/models/matriz/reproducao.models';\r\nimport { Reprodutor } from 'src/models/configuracoes/reprodutor.model';\r\nimport { FazendaParametro } from 'src/models/fazenda-parametro.model';\r\nimport { Leite } from 'src/models/leite.model';\r\nimport { ValidacaoIaCobTeReproducaoService } from './validacao-ia-cob-te-reproducao.service';\r\nimport { ValidacaoDiagnosticoReproducaoService } from './validacao-diagnostico-reproducao.service';\r\nimport { ValidaCaoPartoReproducaoService } from './validacao-parto-reproducao.service';\r\nimport { ValidacaoSecagemReproducaoService } from './validacao-secagem-reproducao.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ValidacaoReproducaoService {\r\n\r\n private reproducao: any;\r\n private reproducaoAnterior: any;\r\n private matriz: Matriz;\r\n private erro: string;\r\n private reproducoes: Reproducao[];\r\n\r\n constructor(\r\n private reproductionIaCobTeValidationService: ValidacaoIaCobTeReproducaoService,\r\n private reproductionDiagnosticValidationService: ValidacaoDiagnosticoReproducaoService,\r\n private reproductionParturitionValidationService: ValidaCaoPartoReproducaoService,\r\n private reproductionDryingValidationService: ValidacaoSecagemReproducaoService) {}\r\n\r\n validaLancamentoIaCobTe(\r\n reproducoes: Reproducao[],\r\n reprodutores: Reprodutor[],\r\n reproducao: any,\r\n matriz: Matriz,\r\n parametros: FazendaParametro[]): boolean {\r\n\r\n const ehLancamentoIaCobTeValido = this.reproductionIaCobTeValidationService.validaLancamentoIaCobTe(\r\n reproducoes,\r\n reprodutores,\r\n reproducao,\r\n matriz,\r\n parametros\r\n );\r\n\r\n if (!ehLancamentoIaCobTeValido) { this.erro = this.reproductionIaCobTeValidationService.getErro(); return false; }\r\n\r\n return true;\r\n }\r\n\r\n validaLancamentoDiagnostico(reproducao: any, matriz: Matriz): boolean {\r\n this.reproducao = reproducao;\r\n this.matriz = matriz;\r\n this.erro = ``;\r\n\r\n const ehLancamentoDiagnosticoValido = this.reproductionDiagnosticValidationService.validaLancamentoDiagnostico(\r\n reproducao,\r\n matriz\r\n );\r\n\r\n if (!ehLancamentoDiagnosticoValido) { this.erro = this.reproductionDiagnosticValidationService.getErro(); return false; }\r\n\r\n return true;\r\n }\r\n\r\n validaLancamentoParto(\r\n reproducao: any,\r\n matriz: Matriz,\r\n matrizes: Matriz[],\r\n parametros: FazendaParametro[]): boolean {\r\n\r\n const ehLancamentoPartoValido = this.reproductionParturitionValidationService.validaLancamentoParto(\r\n reproducao,\r\n matriz,\r\n matrizes,\r\n parametros\r\n );\r\n\r\n if (!ehLancamentoPartoValido) { this.erro = this.reproductionParturitionValidationService.getErro(); return false; }\r\n\r\n return true;\r\n }\r\n\r\n validaLancamentoSecagem(\r\n reproducoes: Reproducao[],\r\n reproducao: any,\r\n matriz: Matriz,\r\n controlesLeiteiros: Leite[]): boolean {\r\n\r\n const ehLancamentoSecagemValido = this.reproductionDryingValidationService.validaLancamentoSecagem(\r\n reproducoes,\r\n reproducao,\r\n matriz,\r\n controlesLeiteiros\r\n );\r\n\r\n if (!ehLancamentoSecagemValido) { this.erro = this.reproductionDryingValidationService.getErro(); return false; }\r\n\r\n return true;\r\n }\r\n\r\n validaLancamentoDatas(\r\n reproducoes: Reproducao[],\r\n reproducao: any,\r\n reproducaoAnterior: any,\r\n matriz: Matriz): boolean {\r\n this.reproducao = reproducao;\r\n this.reproducaoAnterior = reproducaoAnterior;\r\n this.matriz = matriz;\r\n this.erro = ``;\r\n this.reproducoes = reproducoes;\r\n\r\n const ehInsercao =\r\n this.reproducao.cdreproducao === 0\r\n || this.reproducao.cdreproducao === undefined\r\n || this.reproducao.cdreproducao === null;\r\n\r\n const ehAtualizacao = this.reproducao.cdreproducao > 0;\r\n\r\n if (ehInsercao) {\r\n if (!this.validaInsercaoDatas()) { return false; }\r\n } else if (ehAtualizacao) {\r\n if (!this.validaAtualizacaoDatas()) { return false; }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n validaInsercaoDatas() {\r\n let dtAux: Date;\r\n\r\n let reproducoes =\r\n this.reproducoes.filter(\r\n reproducao => reproducao.cdmatriz === this.reproducao.cdmatriz\r\n && reproducao.cdreproducao !== this.reproducao.cdreproducao);\r\n\r\n const existemReproducao = reproducoes !== undefined && reproducoes.length > 0;\r\n\r\n if (existemReproducao) {\r\n reproducoes = reproducoes.sort((a, b) => (new Date(b.data).getTime() - new Date(a.data).getTime()));\r\n\r\n const dataParto = reproducoes[0].dtparto;\r\n // reproductions.sort((a, b) => (new Date(b.dtparto).getTime() - new Date(a.dtparto).getTime()))[0].dtparto;\r\n\r\n const dataDiagnostico4 = reproducoes[0].dtdiagnostico4;\r\n // reproductions.sort((a, b) => (new Date(b.dtdiagnostico4).getTime() - new Date(a.dtdiagnostico4).getTime()))[0].dtdiagnostico4;\r\n\r\n const dataDiagnostico3 = reproducoes[0].dtdiagnostico3;\r\n // reproductions.sort((a, b) => (new Date(b.dtdiagnostico3).getTime() - new Date(a.dtdiagnostico3).getTime()))[0].dtdiagnostico3;\r\n\r\n const dataDiagnostico2 = reproducoes[0].dtdiagnostico2;\r\n // reproductions.sort((a, b) => (new Date(b.dtdiagnostico2).getTime() - new Date(a.dtdiagnostico2).getTime()))[0].dtdiagnostico2;\r\n\r\n const dataDiagnostico1 = reproducoes[0].dtdiagnostico1;\r\n // reproductions.sort((a, b) => (new Date(b.dtdiagnostico1).getTime() - new Date(a.dtdiagnostico1).getTime()))[0].dtdiagnostico1;\r\n\r\n const dataServico = reproducoes[0].data;\r\n // reproductions.sort((a, b) => (new Date(b.data).getTime() - new Date(a.data).getTime()))[0].data;\r\n\r\n const existeDataParto = dataParto !== null && dataParto !== undefined;\r\n const existeDataDiagnostico4 = dataDiagnostico4 !== null && dataDiagnostico4 !== undefined;\r\n const existeDataDiagnostico3 = dataDiagnostico3 !== null && dataDiagnostico3 !== undefined;\r\n const existeDataDiagnostico2 = dataDiagnostico2 !== null && dataDiagnostico2 !== undefined;\r\n const existeDataDiagnostico1 = dataDiagnostico1 !== null && dataDiagnostico1 !== undefined;\r\n\r\n if (existeDataParto) {\r\n dtAux = new Date(dataParto);\r\n } else if (existeDataDiagnostico4) {\r\n dtAux = new Date(dataDiagnostico4);\r\n } else if (existeDataDiagnostico3) {\r\n dtAux = new Date(dataDiagnostico3);\r\n } else if (existeDataDiagnostico2) {\r\n dtAux = new Date(dataDiagnostico2);\r\n } else if (existeDataDiagnostico1) {\r\n dtAux = new Date(dataDiagnostico1);\r\n } else {\r\n dtAux = new Date(dataServico);\r\n }\r\n } else {\r\n dtAux = new Date(`01/01/1900`);\r\n }\r\n\r\n if (this.reproducao.data < dtAux) {\r\n this.erro =\r\n `A inclusão de novos registros não pode ser em datas inferiores à outros registros reprodutivos. Matriz: ${ this.matriz.numero }`;\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n validaAtualizacaoDatas(): boolean {\r\n const dtAuxMin = this.getDtAuxMin();\r\n const dtAux = this.getDtAux();\r\n\r\n if (!this.ehDataTentativaPosteriorReproducaoAnterior(dtAuxMin)) { return false; }\r\n if (!this.ehDataDiagnostico1PosteriorReproducaoAnterior(dtAuxMin)) { return false; }\r\n if (!this.ehDataDiagnostico2PosteriorReproducaoAnterior(dtAuxMin)) { return false; }\r\n if (!this.ehDataDiagnostico3PosteriorReproducaoAnterior(dtAuxMin)) { return false; }\r\n if (!this.ehDataDiagnostico4PosteriorReproducaoAnterior(dtAuxMin)) { return false; }\r\n if (!this.ehDataPartoPosteriorReproducaoAnterior(dtAuxMin)) { return false; }\r\n if (!this.ehDataTentativaMenorQueReproducaoPosterior(dtAux)) { return false; }\r\n if (!this.ehDataDiagnostico1MenorQueReproducaoPosterior(dtAux)) { return false; }\r\n if (!this.ehDataDiagnostico2MenorQueReproducaoPosterior(dtAux)) { return false; }\r\n if (!this.ehDataDiagnostico3MenorQueReproducaoPosterior(dtAux)) { return false; }\r\n if (!this.ehDataDiagnostico4MenorQueReproducaoPosterior(dtAux)) { return false; }\r\n if (!this.ehDataPartoMenorQueReproducaoPosterior(dtAux)) { return false; }\r\n\r\n return true;\r\n }\r\n\r\n getDtAux(): Date {\r\n let dtAux: Date;\r\n\r\n const reproducoes =\r\n this.reproducoes.filter(\r\n reproducao => reproducao.cdmatriz === this.reproducao.cdmatriz\r\n && reproducao.data >= this.reproducao.data\r\n && reproducao.cdreproducao !== this.reproducao.cdreproducao);\r\n\r\n const existemReproducoes = reproducoes !== undefined && reproducoes.length > 0;\r\n\r\n if (existemReproducoes) {\r\n const dataServico =\r\n reproducoes.sort((a, b) => (new Date(a.data).getTime() - new Date(b.data).getTime()))[reproducoes.length - 1].data;\r\n dtAux = new Date(dataServico);\r\n } else {\r\n dtAux = new Date(`01/01/2999`);\r\n }\r\n return dtAux;\r\n }\r\n\r\n getDtAuxMin(): Date {\r\n let dtAuxMin: Date;\r\n\r\n const reproducoes =\r\n this.reproducoes.filter(\r\n reproducao => reproducao.cdmatriz === this.reproducao.cdmatriz\r\n && reproducao.data < this.reproducao.data\r\n && reproducao.cdreproducao !== this.reproducao.cdreproducao);\r\n\r\n const existemReproducoes = reproducoes !== undefined && reproducoes.length > 0;\r\n\r\n if (existemReproducoes) {\r\n const dataParto =\r\n reproducoes.sort((a, b) => (new Date(b.dtparto).getTime() - new Date(a.dtparto).getTime()))[0].dtparto;\r\n\r\n const dtDiagnostico1 =\r\n reproducoes.sort((a, b) => (new Date(b.dtdiagnostico1).getTime() - new Date(a.dtdiagnostico1).getTime()))[0].dtdiagnostico1;\r\n\r\n const dtDiagnostico2 =\r\n reproducoes.sort((a, b) => (new Date(b.dtdiagnostico2).getTime() - new Date(a.dtdiagnostico2).getTime()))[0].dtdiagnostico2;\r\n\r\n const dtDiagnostico3 =\r\n reproducoes.sort((a, b) => (new Date(b.dtdiagnostico3).getTime() - new Date(a.dtdiagnostico3).getTime()))[0].dtdiagnostico3;\r\n\r\n const dtDiagnostico4 =\r\n reproducoes.sort((a, b) => (new Date(b.dtdiagnostico4).getTime() - new Date(a.dtdiagnostico4).getTime()))[0].dtdiagnostico4;\r\n\r\n const date =\r\n reproducoes.sort((a, b) => (new Date(b.data).getTime() - new Date(a.data).getTime()))[0].data;\r\n\r\n const existeDataParto = dataParto !== null && dataParto !== undefined;\r\n const existeDtDiagnostico1 = dtDiagnostico1 !== null && dtDiagnostico1 !== undefined;\r\n const existeDtDiagnostico2 = dtDiagnostico2 !== null && dtDiagnostico2 !== undefined;\r\n const existeDtDiagnostico3 = dtDiagnostico3 !== null && dtDiagnostico3 !== undefined;\r\n const existeDtDiagnostico4 = dtDiagnostico4 !== null && dtDiagnostico4 !== undefined;\r\n\r\n if (existeDataParto) {\r\n dtAuxMin = new Date(dataParto);\r\n } else if (existeDtDiagnostico4) {\r\n dtAuxMin = new Date(dtDiagnostico4);\r\n } else if (existeDtDiagnostico3) {\r\n dtAuxMin = new Date(dtDiagnostico3);\r\n } else if (existeDtDiagnostico2) {\r\n dtAuxMin = new Date(dtDiagnostico2);\r\n } else if (existeDtDiagnostico1) {\r\n dtAuxMin = new Date(dtDiagnostico1);\r\n } else {\r\n dtAuxMin = new Date(date);\r\n }\r\n } else {\r\n dtAuxMin = new Date(`01/01/1900`);\r\n }\r\n return dtAuxMin;\r\n }\r\n\r\n ehDataTentativaPosteriorReproducaoAnterior(dtAuxMin: Date): boolean {\r\n const existeDataServico =\r\n this.reproducao.data !== null && this.reproducao.data !== undefined;\r\n\r\n if (existeDataServico) {\r\n const dataServico = new Date(this.reproducao.data);\r\n const isDiferentReproductionDate = dataServico.getTime() !== new Date(this.reproducaoAnterior.data).getTime();\r\n if (isDiferentReproductionDate && dataServico < dtAuxMin) {\r\n this.erro =\r\n `A data da tentativa não pode ser anterior à data do registro reprodutivo anterior. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n ehDataDiagnostico1PosteriorReproducaoAnterior(dtAuxMin: Date): boolean {\r\n if (this.existeDataDiagnostico1()) {\r\n const dataDiagnostico1 = new Date(this.reproducao.dtdiagnostico1);\r\n const isDiferentDiagnostic1Date = dataDiagnostico1.getTime() !== new Date(this.reproducaoAnterior.dtdiagnostico1).getTime();\r\n if (isDiferentDiagnostic1Date && dataDiagnostico1 < dtAuxMin) {\r\n this.erro =\r\n `A data do diagnóstico1 não pode ser anterior à data do registro reprodutivo anterior. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n ehDataDiagnostico2PosteriorReproducaoAnterior(dtAuxMin: Date): boolean {\r\n if (this.existeDataDiagnostico2()) {\r\n const dataDiagnostico2 = new Date(this.reproducao.dtdiagnostico2);\r\n const isDiferentDiagnostic2Date = dataDiagnostico2.getTime() !== new Date(this.reproducaoAnterior.dtdiagnostico2).getTime();\r\n if (isDiferentDiagnostic2Date && dataDiagnostico2 < dtAuxMin) {\r\n this.erro =\r\n `A data do diagnóstico2 não pode ser anterior à data do registro reprodutivo anterior. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n ehDataDiagnostico3PosteriorReproducaoAnterior(dtAuxMin: Date): boolean {\r\n if (this.existeDataDiagnostico3()) {\r\n const dataDiagnostico3 = new Date(this.reproducao.dtdiagnostico3);\r\n const isDiferentDiagnostic3Date = dataDiagnostico3.getTime() !== new Date(this.reproducaoAnterior.dtdiagnostico3).getTime();\r\n if (isDiferentDiagnostic3Date && dataDiagnostico3 < dtAuxMin) {\r\n this.erro =\r\n `A data do diagnóstico3 não pode ser anterior à data do registro reprodutivo anterior. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n ehDataDiagnostico4PosteriorReproducaoAnterior(dtAuxMin: Date): boolean {\r\n if (this.existeDataDiagnostico4()) {\r\n const dataDiagnostico4 = new Date(this.reproducao.dtdiagnostico4);\r\n const isDiferentDiagnostic4Date = dataDiagnostico4.getTime() !== new Date(this.reproducaoAnterior.dtdiagnostico4).getTime();\r\n if (isDiferentDiagnostic4Date && dataDiagnostico4 < dtAuxMin) {\r\n this.erro =\r\n `A data do diagnóstico4 não pode ser anterior à data do registro reprodutivo anterior. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n ehDataPartoPosteriorReproducaoAnterior(dtAuxMin: Date): boolean {\r\n if (this.existeDataParto()) {\r\n const dataParto = new Date(this.reproducao.dtparto);\r\n const isDiferentParturitionDate = dataParto.getTime() !== new Date(this.reproducaoAnterior.dtparto).getTime();\r\n if (isDiferentParturitionDate && dataParto < dtAuxMin) {\r\n this.erro =\r\n `A data do parto não pode ser anterior à data do registro reprodutivo anterior. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n ehDataTentativaMenorQueReproducaoPosterior(dtAux: Date): boolean {\r\n const existeDataServico =\r\n this.reproducao.data !== null && this.reproducao.data !== undefined;\r\n\r\n if (existeDataServico) {\r\n const dataServico = new Date(this.reproducao.data);\r\n const isDiferentIaCobTeDate = dataServico.getTime() !== new Date(this.reproducaoAnterior.data).getTime();\r\n if (isDiferentIaCobTeDate && dataServico > dtAux) {\r\n this.erro =\r\n `A data da tentativa não pode ser superior à data do registro reprodutivo posterior. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n ehDataDiagnostico1MenorQueReproducaoPosterior(dtAux: Date): boolean {\r\n if (this.existeDataDiagnostico1()) {\r\n const dataDiagnostico1 = new Date(this.reproducao.dtdiagnostico1);\r\n const isDiferentDiagnostic1Date = dataDiagnostico1.getTime() !== new Date(this.reproducaoAnterior.dtdiagnostico1).getTime();\r\n if (isDiferentDiagnostic1Date && dataDiagnostico1 > dtAux) {\r\n this.erro =\r\n `A data do diagnóstico1 não pode ser superior à data do registro reprodutivo posterior. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n ehDataDiagnostico2MenorQueReproducaoPosterior(dtAux: Date): boolean {\r\n if (this.existeDataDiagnostico2()) {\r\n const dataDiagnostico2 = new Date(this.reproducao.dtdiagnostico2);\r\n const isDiferentDiagnostic2Date = dataDiagnostico2.getTime() !== new Date(this.reproducaoAnterior.dtdiagnostico2).getTime();\r\n if (isDiferentDiagnostic2Date && dataDiagnostico2 > dtAux) {\r\n this.erro =\r\n `A data do diagnóstico2 não pode ser superior à data do registro reprodutivo posterior. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n ehDataDiagnostico3MenorQueReproducaoPosterior(dtAux: Date): boolean {\r\n if (this.existeDataDiagnostico3()) {\r\n const dataDiagnostico3 = new Date(this.reproducao.dtdiagnostico3);\r\n const isDiferentDiagnostic3Date = dataDiagnostico3.getTime() !== new Date(this.reproducaoAnterior.dtdiagnostico3).getTime();\r\n if (isDiferentDiagnostic3Date && dataDiagnostico3 > dtAux) {\r\n this.erro =\r\n `A data do diagnóstico3 não pode ser superior à data do registro reprodutivo posterior. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n ehDataDiagnostico4MenorQueReproducaoPosterior(dtAux: Date): boolean {\r\n if (this.existeDataDiagnostico4()) {\r\n const dataDiagnostico4 = new Date(this.reproducao.dtdiagnostico4);\r\n const isDiferentDiagnostic4Date = dataDiagnostico4.getTime() !== new Date(this.reproducaoAnterior.dtdiagnostico4).getTime();\r\n if (isDiferentDiagnostic4Date && dataDiagnostico4 > dtAux) {\r\n this.erro =\r\n `A data do diagnóstico4 não pode ser superior à data do registro reprodutivo posterior. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n ehDataPartoMenorQueReproducaoPosterior(dtAux: Date): boolean {\r\n if (this.existeDataParto()) {\r\n const dataParto = new Date(this.reproducao.dtparto);\r\n const ehDataPartoDiferente = dataParto.getTime() !== new Date(this.reproducaoAnterior.dtparto).getTime();\r\n if (ehDataPartoDiferente && dataParto > dtAux) {\r\n this.erro =\r\n `A data do parto não pode ser superior à data do registro reprodutivo posterior. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n existeDataParto(): boolean {\r\n const existeDataParto =\r\n this.reproducao.dtparto !== undefined\r\n && this.reproducao.dtparto !== null;\r\n return existeDataParto;\r\n }\r\n\r\n existeDataDiagnostico1(): boolean {\r\n const existeDataDiagnostico1 =\r\n this.reproducao.dtdiagnostico1 !== undefined\r\n && this.reproducao.dtdiagnostico1 !== null;\r\n return existeDataDiagnostico1;\r\n }\r\n\r\n existeDataDiagnostico2(): boolean {\r\n const existeDataDiagnostico2 =\r\n this.reproducao.dtdiagnostico2 !== undefined\r\n && this.reproducao.dtdiagnostico2 !== null;\r\n return existeDataDiagnostico2;\r\n }\r\n\r\n existeDataDiagnostico3(): boolean {\r\n const existeDataDiagnostico3 =\r\n this.reproducao.dtdiagnostico3 !== undefined\r\n && this.reproducao.dtdiagnostico3 !== null;\r\n return existeDataDiagnostico3;\r\n }\r\n\r\n existeDataDiagnostico4(): boolean {\r\n const existeDataDiagnostico4 =\r\n this.reproducao.dtdiagnostico4 !== undefined\r\n && this.reproducao.dtdiagnostico4 !== null;\r\n return existeDataDiagnostico4;\r\n }\r\n\r\n getErro(): string {\r\n return this.erro;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Leite } from 'src/models/leite.model';\r\nimport { Matriz } from 'src/models/matriz/matriz.model';\r\nimport { Reproducao } from 'src/models/matriz/reproducao.models';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ValidacaoSecagemReproducaoService {\r\n\r\n reproducao: any;\r\n matriz: Matriz;\r\n erro: string;\r\n reproducoes: Reproducao[];\r\n matrizes: Matriz[];\r\n controlesLeiteiros: Leite[];\r\n\r\n constructor() { }\r\n\r\n validaLancamentoSecagem(\r\n reproducoes: Reproducao[],\r\n reproducao: any,\r\n matriz: Matriz,\r\n controlesLeiteiros: Leite[]): boolean {\r\n this.reproducao = reproducao;\r\n this.matriz = matriz;\r\n this.erro = ``;\r\n this.reproducoes = reproducoes;\r\n this.controlesLeiteiros = controlesLeiteiros;\r\n\r\n if (!this.ehDataSecagemValida()) { return false; }\r\n\r\n return true;\r\n }\r\n\r\n private ehDataSecagemValida(): boolean {\r\n if (!this.ehDataSecagemMenorQueDataAtual()) { return false; }\r\n if (!this.ehDataSecagemAnteriorParto()) { return false; }\r\n if (!this.existeDataPartoLancada()) { return false; }\r\n if (!this.ehDataSecagemAnteriorProximoParto()) { return false; }\r\n if (!this.existemControlesLeiteirosDentroDoIntervaloDaLactacao()) { return false; }\r\n return true;\r\n }\r\n\r\n private ehDataSecagemMenorQueDataAtual(): boolean {\r\n if (this.existeDataSecagem()) {\r\n let ehDataSecagemValida = true;\r\n const dataAtual = new Date();\r\n const dataSecagem = new Date(this.reproducao.dtsecagem);\r\n ehDataSecagemValida = dataSecagem <= dataAtual;\r\n if (!ehDataSecagemValida) {\r\n this.erro = `A data de secagem não pode ser superior a data atual. Matriz: ${ this.matriz.numero }.`;\r\n return ehDataSecagemValida;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n private ehDataSecagemAnteriorParto(): boolean {\r\n if (this.existeDataSecagem() && this.existeDataParto()) {\r\n let ehDataSecagemValida = true;\r\n const dataParto = new Date(this.reproducao.dtparto);\r\n const dataSecagem = new Date(this.reproducao.dtsecagem);\r\n ehDataSecagemValida = dataSecagem > dataParto;\r\n if (!ehDataSecagemValida) {\r\n this.erro = `A data de secagem não pode ser anterior ao parto. Matriz: ${ this.matriz.numero }.`;\r\n return ehDataSecagemValida;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n private existeDataPartoLancada(): boolean {\r\n if (this.existeDataSecagem() && !this.existeDataParto()) {\r\n this.erro =\r\n `Não pode ser informada data de secagem para registros que não tenham data de parto informada. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n private ehDataSecagemAnteriorProximoParto(): boolean {\r\n const reproducoes =\r\n this.reproducoes.filter(\r\n reproducao => reproducao.cdmatriz === this.reproducao.cdmatriz\r\n && reproducao.dtparto > this.reproducao.data\r\n && reproducao.cdreproducao !== this.reproducao.cdreproducao);\r\n const existemReproducoes = reproducoes !== undefined && reproducoes.length > 0;\r\n\r\n if (this.existeDataSecagem() && existemReproducoes) {\r\n const dtAux =\r\n reproducoes.sort((a, b) => (new Date(a.data).getTime() - new Date(b.data).getTime()))[reproducoes.length - 1].dtparto;\r\n if (this.reproducao.dtsecagem >= dtAux) {\r\n this.erro =\r\n `A data da secagem tem que ser anterior ao próximo parto caso exista. Matriz: ${ this.matriz.numero }.`;\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n private existemControlesLeiteirosDentroDoIntervaloDaLactacao(): boolean {\r\n const controlesLeiteiros = this.controlesLeiteiros.filter(\r\n controleLeiteiro => controleLeiteiro.cdMatriz === this.reproducao.cdmatriz\r\n && controleLeiteiro.data > this.reproducao.dtsecagem\r\n && controleLeiteiro.cdReproducao === this.reproducao.cdreproducao);\r\n const existeControleLeiteiro = controlesLeiteiros !== undefined && controlesLeiteiros.length > 0;\r\n\r\n if (existeControleLeiteiro) {\r\n this.erro =\r\n `A data de secagem não pode ser gravada caso existam controles leiteiros fora do intervalo da lactação.\r\n Matriz: ${ this.matriz.numero }`;\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n private existeDataSecagem() {\r\n const existeDataSecagem =\r\n this.reproducao.dtsecagem !== null\r\n && this.reproducao.dtsecagem !== undefined;\r\n return existeDataSecagem;\r\n }\r\n\r\n private existeDataParto(): boolean {\r\n const existeDataParto =\r\n this.reproducao.dtparto !== undefined\r\n && this.reproducao.dtparto !== null;\r\n return existeDataParto;\r\n }\r\n\r\n getErro(): string {\r\n return this.erro;\r\n }\r\n}\r\n","import { MatPaginatorIntl } from '@angular/material';\r\n\r\nexport function CustomPaginator() {\r\n const customPaginatorIntl = new MatPaginatorIntl();\r\n\r\n customPaginatorIntl.itemsPerPageLabel = 'Itens por página:';\r\n\r\n return customPaginatorIntl;\r\n}","export const MY_DATE_FORMATS = {\r\n parse: {\r\n dateInput: 'DD/MM/YYYY',\r\n },\r\n display: {\r\n dateInput: 'DD/MM/YYYY',\r\n monthYearLabel: 'MMMM YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM YYYY'\r\n },\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL191dGlscy9kaWFsb2ctbGltcGFyLWZhemVuZGEvZGlhbG9nLWxpbXBhci1mYXplbmRhLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialog, MatSnackBar, MatDialogRef } from '@angular/material';\r\nimport { AltaGestaoService } from 'src/app/_services/alta-gestao.service';\r\nimport { EmailService } from 'src/app/_services/email.service';\r\nimport { FazendaService } from 'src/app/_services/fazenda.service';\r\nimport { Email } from 'src/models/email.model';\r\nimport { Fazenda } from 'src/models/fazenda.model';\r\n\r\n@Component({\r\n selector: 'app-dialog-limpar-fazenda',\r\n templateUrl: './dialog-limpar-fazenda.component.html',\r\n styleUrls: ['./dialog-limpar-fazenda.component.scss']\r\n})\r\nexport class DialogLimparFazendaComponent implements OnInit {\r\n\r\n public itemsSource: Fazenda;\r\n public email: Email = new Email;\r\n codigo: string;\r\n codigoEmail: string;\r\n btnClearDisabled: boolean = false;\r\n btnSendDisabled: boolean = false;\r\n private usuarioLogado: any;\r\n isCurrentAdminUser = false;\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: any,\r\n public dialog: MatDialog,\r\n public snackBar: MatSnackBar,\r\n public fazendaService: FazendaService,\r\n public emailService: EmailService,\r\n public dialogRef: MatDialogRef,\r\n private altaGestaService: AltaGestaoService\r\n ) {\r\n\r\n this.itemsSource = data.farm;\r\n this.isCurrentAdminUser = this.altaGestaService.ehUsuarioAdministrador();\r\n this.usuarioLogado = JSON.parse(sessionStorage.getItem(`currentUser`));\r\n if (this.usuarioLogado && this.usuarioLogado.cdpessoa) {\r\n this.itemsSource.cdpessoa = this.usuarioLogado.cdpessoa;\r\n }\r\n\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n closeClick() {\r\n this.dialogRef.close();\r\n }\r\n\r\n clearClick() {\r\n if (this.codigo != undefined && this.codigo.trim().length > 0) {\r\n if (this.codigo.trim() == this.codigoEmail) {\r\n this.btnClearDisabled = true;\r\n this.fazendaService.limpaFazenda(this.itemsSource).subscribe(response => {\r\n this.closeClick();\r\n this.snackBar.open('Limpeza da fazenda foi realizado com sucesso!', 'Fechar', {\r\n duration: 2000,\r\n });\r\n }, error => {\r\n this.snackBar.open('Erro inesperado.', 'Fechar', {\r\n duration: 2000,\r\n });\r\n })\r\n } else {\r\n this.snackBar.open('Código inválido!', 'Fechar', {\r\n duration: 2000,\r\n });\r\n }\r\n } else {\r\n this.snackBar.open('Insira o código de confirmação!', 'Fechar', {\r\n duration: 2000,\r\n });\r\n }\r\n }\r\n\r\n enviarCodigoConfirmacaoEmail() {\r\n this.btnSendDisabled = true;\r\n this.email.email = this.usuarioLogado.email;\r\n this.email.codigo = this.codigoEmail = this.generateRandomNumber();\r\n this.email.cdfazenda = this.itemsSource.cdfazenda;\r\n this.email.fazenda = this.itemsSource.nome;\r\n this.email.usuario = this.usuarioLogado.usuario.apelido;\r\n this.email.admin = this.isCurrentAdminUser;\r\n this.emailService.enviaEmailConfirmacaoLimpezaFazenda(this.email).subscribe(response => {\r\n this.snackBar.open('Código enviado para o e-mail.', 'Fechar', {\r\n duration: 4000,\r\n });\r\n })\r\n }\r\n\r\n generateRandomNumber(): string {\r\n const min = 1000;\r\n const max = 9999;\r\n\r\n const randomNumber = Math.floor(Math.random() * (max - min + 1)) + min;\r\n\r\n return randomNumber.toString();\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { VERSION, MatDialogRef, MatDialog, MatSnackBar, MAT_DIALOG_DATA } from '@angular/material';\r\n\r\n@Component({\r\n selector: 'app-dialogo-alerta',\r\n templateUrl: './dialogo-alerta.component.html'\r\n})\r\nexport class DialogoAlertaComponent {\r\n message = '';\r\n cancelButtonText = 'Cancel';\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) private data: any,\r\n private dialogRef: MatDialogRef) {\r\n\r\n if (data) {\r\n this.message = data.message || this.message;\r\n if (data.buttonText) {\r\n this.cancelButtonText = data.buttonText.cancel || this.cancelButtonText;\r\n }\r\n }\r\n\r\n this.dialogRef.updateSize('300vw', '300vw');\r\n }\r\n\r\n onConfirmClick(): void {\r\n this.dialogRef.close(true);\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL191dGlscy9kaWFsb2dvLWNvbmZpcm1hY2FvL2RpYWxvZ28tY29uZmlybWFjYW8uY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, Inject } from '@angular/core';\r\nimport { VERSION, MatDialogRef, MatDialog, MatSnackBar, MAT_DIALOG_DATA } from '@angular/material';\r\n\r\n@Component({\r\n selector: 'app-dialogo-confirmacao',\r\n templateUrl: './dialogo-confirmacao.component.html',\r\n styleUrls: ['./dialogo-confirmacao.component.scss']\r\n})\r\nexport class DialogoConfirmacao {\r\n\r\n message = 'Are you sure?';\r\n confirmButtonText = 'Yes';\r\n cancelButtonText = 'Cancel';\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) private data: any,\r\n private dialogRef: MatDialogRef) {\r\n\r\n if (data) {\r\n this.message = data.message || this.message;\r\n if (data.buttonText) {\r\n this.confirmButtonText = data.buttonText.ok || this.confirmButtonText;\r\n this.cancelButtonText = data.buttonText.cancel || this.cancelButtonText;\r\n }\r\n }\r\n }\r\n\r\n onConfirmClick(): void {\r\n this.dialogRef.close(true);\r\n }\r\n}\r\n","export default \".color {\\n color: #00578B;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvX3V0aWxzL2xvYWRlci9EOlxcUHJvamVjdHNcXGFsdGEtZ2VzdGFvLTA0XFxNYWluXFxWMlxcQWx0YUdlc3Rhby5XZWJcXGFsdGEtZ2VzdGFvL3NyY1xcYXBwXFxfdXRpbHNcXGxvYWRlclxcbG9hZGVyLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9fdXRpbHMvbG9hZGVyL2xvYWRlci5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGNBQUE7QUNDSiIsImZpbGUiOiJzcmMvYXBwL191dGlscy9sb2FkZXIvbG9hZGVyLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmNvbG9yIHtcclxuICAgIGNvbG9yOiAjMDA1NzhCO1xyXG59IiwiLmNvbG9yIHtcbiAgY29sb3I6ICMwMDU3OEI7XG59Il19 */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-loader',\r\n templateUrl: './loader.component.html',\r\n styleUrls: ['./loader.component.scss']\r\n})\r\nexport class LoaderComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","export default \".form {\\n min-width: 150px;\\n max-width: 500px;\\n width: 100%;\\n}\\n\\n.full-width {\\n width: 100%;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvX3V0aWxzL3BvcHVwLWFsdGVyYWNhby1mYXplbmRhL0Q6XFxQcm9qZWN0c1xcYWx0YS1nZXN0YW8tMDRcXE1haW5cXFYyXFxBbHRhR2VzdGFvLldlYlxcYWx0YS1nZXN0YW8vc3JjXFxhcHBcXF91dGlsc1xccG9wdXAtYWx0ZXJhY2FvLWZhemVuZGFcXHBvcHVwLWFsdGVyYWNhby1mYXplbmRhLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9fdXRpbHMvcG9wdXAtYWx0ZXJhY2FvLWZhemVuZGEvcG9wdXAtYWx0ZXJhY2FvLWZhemVuZGEuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxnQkFBQTtFQUNBLGdCQUFBO0VBQ0EsV0FBQTtBQ0NKOztBREVBO0VBQ0ksV0FBQTtBQ0NKIiwiZmlsZSI6InNyYy9hcHAvX3V0aWxzL3BvcHVwLWFsdGVyYWNhby1mYXplbmRhL3BvcHVwLWFsdGVyYWNhby1mYXplbmRhLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmZvcm0ge1xyXG4gICAgbWluLXdpZHRoOiAxNTBweDtcclxuICAgIG1heC13aWR0aDogNTAwcHg7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbiAgXHJcbi5mdWxsLXdpZHRoIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG59XHJcbiAgIiwiLmZvcm0ge1xuICBtaW4td2lkdGg6IDE1MHB4O1xuICBtYXgtd2lkdGg6IDUwMHB4O1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmZ1bGwtd2lkdGgge1xuICB3aWR0aDogMTAwJTtcbn0iXX0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDialogRef } from '@angular/material';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { LogAcessoService } from 'src/app/_services/log-acesso.service';\r\nimport { Fazenda } from 'src/models/fazenda.model';\r\nimport { LogAcesso } from 'src/models/logacesso.model';\r\nimport { Pessoa } from 'src/models/pessoa.model';\r\nimport { UsuarioFazenda } from 'src/models/usuario-fazenda.model';\r\nimport { AltaGestaoService } from '../../_services/alta-gestao.service';\r\nimport { UsuarioService } from '../../_services/usuario.service';\r\n\r\n@Component({\r\n selector: 'app-popup-alteracao-fazenda',\r\n templateUrl: './popup-alteracao-fazenda.component.html',\r\n styleUrls: ['./popup-alteracao-fazenda.component.scss']\r\n})\r\nexport class PopUpAlteracaoFazendaComponent implements OnInit {\r\n\r\n myControl = new FormControl();\r\n listaFazendasFiltrada: Observable;\r\n listaFazendas: Fazenda[];\r\n listaUsuariosFazenda: UsuarioFazenda[];\r\n fazendaSelecionada: Fazenda;\r\n isAdmin = false;\r\n isAdminTecnico = false;\r\n closed = `closed`;\r\n nenhumaFazendaSelecionada = `nenhumaFazendaSelecionada`;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n private usuarioService: UsuarioService,\r\n private altaGestaoService: AltaGestaoService,\r\n private logAcessoService: LogAcessoService) { }\r\n\r\n ngOnInit() {\r\n this.listaFazendas = [];\r\n this.isAdmin = this.altaGestaoService.ehUsuarioAdministrador();\r\n this.isAdminTecnico = this.altaGestaoService.ehUsuarioAdministradorTecnico();\r\n this.setFazendasUsuarioSessao();\r\n }\r\n\r\n displayFn(farm: Fazenda): string {\r\n return farm && farm.nome ? farm.nome + ' (' + farm.proprietario + ')' : '';\r\n }\r\n\r\n private _filter(nome: string): Fazenda[] {\r\n const filterValue = nome.toLowerCase();\r\n return this.listaFazendas.filter(farm => farm.nome.toLowerCase().includes(filterValue));\r\n }\r\n\r\n setFazendasFiltradas() {\r\n this.listaFazendasFiltrada = this.myControl.valueChanges\r\n .pipe(\r\n startWith(''),\r\n map(value => typeof value === 'string' ? value : value.nome),\r\n map(nome => nome ? this._filter(nome) : this.listaFazendas.slice())\r\n );\r\n }\r\n\r\n getUsuarioSessao(): Pessoa {\r\n const usuarioSessao = JSON.parse(sessionStorage.getItem('currentUser'));\r\n return usuarioSessao;\r\n }\r\n\r\n setFazendasUsuarioSessao() {\r\n const usuarioSessao = this.getUsuarioSessao();\r\n const existeUsuarioFazenda = usuarioSessao.usuario.usuariofazenda !== undefined;\r\n if (existeUsuarioFazenda) {\r\n this.listaUsuariosFazenda = usuarioSessao.usuario.usuariofazenda;\r\n this.setFazendas();\r\n this.setFazendasFiltradas();\r\n } else {\r\n this.usuarioService.getUsuariLogadoPorEmail(usuarioSessao.email).subscribe((response) => {\r\n this.listaUsuariosFazenda = response.usuario.usuariofazenda;\r\n this.setFazendas();\r\n this.setFazendasFiltradas();\r\n }, (error) => console.error(error));\r\n }\r\n }\r\n\r\n getUsuariosFazendas() {\r\n const person = JSON.parse(sessionStorage.getItem('currentUser'));\r\n this.listaUsuariosFazenda = person.usuario.usuariofazenda;\r\n }\r\n\r\n setFazendas() {\r\n this.listaUsuariosFazenda.forEach((userFarm) => {\r\n this.listaFazendas.push(userFarm.fazenda);\r\n });\r\n }\r\n\r\n onSelectFarmChange(farm: Fazenda) {\r\n this.fazendaSelecionada = farm;\r\n }\r\n\r\n onSelectFarm() {\r\n sessionStorage.removeItem(`currentFarm`);\r\n sessionStorage.setItem(`currentFarm`, JSON.stringify(this.fazendaSelecionada));\r\n this.insereLogAcesso();\r\n }\r\n\r\n onSelectNoFarm() {\r\n sessionStorage.removeItem(`currentFarm`);\r\n }\r\n\r\n insereLogAcesso() {\r\n const logAcesso = new LogAcesso();\r\n logAcesso.cdFazenda = this.fazendaSelecionada.cdfazenda;\r\n logAcesso.cdPessoa = this.getUsuarioSessao().cdpessoa;\r\n this.logAcessoService.insere(logAcesso).subscribe(response => {}, (error) => console.error(error));\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FsdGEtY3JpYS9jb2xvc3RyYWdlbS1jYWRhc3Ryby9jb2xvc3RyYWdlbS1jYWRhc3Ryby5jb21wb25lbnQuc2NzcyJ9 */\"","import { ColostragemFiltro } from '../../../models/alta-cria/colostragem-filtro.model';\r\nimport { Component, ElementRef, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MatSnackBar, MAT_DATE_FORMATS, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { AltaCriaService } from 'src/app/_services/alta-cria.service';\r\nimport { Colostragem } from 'src/models/alta-cria/colostragem.model';\r\nimport { Matriz } from 'src/models/matriz/matriz.model';\r\nimport { DialogoConfirmacao } from 'src/app/_utils/dialogo-confirmacao/dialogo-confirmacao.component';\r\nimport { MY_DATE_FORMATS } from 'src/app/_utils/calendar-date-format.utils';\r\n\r\n@Component({\r\n selector: 'app-colostragem-cadastro',\r\n templateUrl: './colostragem-cadastro.component.html',\r\n styleUrls: ['./colostragem-cadastro.component.scss'],\r\n providers: [\r\n { provide: MAT_DATE_FORMATS, useValue: MY_DATE_FORMATS }\r\n ]\r\n})\r\nexport class ColostragemCadastroComponent implements OnInit {\r\n\r\n @ViewChild('errorAlert', { static: false })\r\n errorAlert: ElementRef;\r\n\r\n matrixPanelOpenState = true;\r\n colostragemPanelOpenState = true;\r\n hasChanges = false;\r\n loading = false;\r\n\r\n matrix: Matriz;\r\n colostragem: Colostragem;\r\n tipoFornecimento: string[];\r\n tipoColostro: string[];\r\n qualidade: string[];\r\n avaliacaoProteina: string[];\r\n\r\n error = ``;\r\n\r\n gridSelection: any[] = [];\r\n selectedCallback = (args: { dataItem: any; }) => args.dataItem;\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: any,\r\n public dialog: MatDialog,\r\n private snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private altaCriaService: AltaCriaService) {\r\n this.setItems(data);\r\n }\r\n\r\n ngOnInit() {\r\n this.colostragem = new Colostragem();\r\n this.colostragem.cdMatriz = this.matrix.cdmatriz;\r\n this.colostragem.cdFazenda = this.matrix.cdfazenda;\r\n\r\n this.tipoColostro = [];\r\n this.tipoFornecimento = [];\r\n this.qualidade = [];\r\n this.avaliacaoProteina = [];\r\n\r\n this.tipoColostro.push(`FRESCO`, `DESCONGELADO`, `FRESCO + DESCONGELADO`, `EM PO`, `EM PO + FRESCO`, `EM PO + DESCONGELADO` );\r\n this.tipoFornecimento.push(`MAE`, `BALDE`, `BALDE COM BICO`, `MAMADEIRA`, `SONDA`);\r\n this.qualidade.push(`COLOSTROMETRO`, `REFRATOMETRO`, `NENHUMA`);\r\n this.avaliacaoProteina.push(`BRIX (%)`, `G/DL`);\r\n\r\n this.getColostragem();\r\n }\r\n\r\n getColostragem() {\r\n this.loading = true;\r\n const filter = this.getFilter();\r\n this.altaCriaService.getColostragem(filter).subscribe(response => {\r\n const hasResponse = response !== undefined && response.length > 0;\r\n if (hasResponse) {\r\n this.colostragem = response[0];\r\n }\r\n this.loading = false;\r\n });\r\n }\r\n\r\n getFilter(): ColostragemFiltro {\r\n const filter = new ColostragemFiltro();\r\n filter.cdMatriz = this.matrix.cdmatriz;\r\n filter.cdFazenda = this.matrix.cdfazenda;\r\n return filter;\r\n }\r\n\r\n setItems(data: any) {\r\n this.matrix = data.matrix;\r\n const hasBirthDate =\r\n this.matrix.dtnascimento !== undefined && this.matrix.dtnascimento !== null;\r\n if (hasBirthDate) {\r\n this.matrix.dtnascimento = new Date(this.matrix.dtnascimento);\r\n } else {\r\n this.matrix.dtnascimento = undefined;\r\n }\r\n }\r\n\r\n onCloseClick() {\r\n if (this.hasChanges) {\r\n this.saveHandler(true);\r\n } else {\r\n this.closeHandler();\r\n }\r\n }\r\n\r\n closeHandler() {\r\n this.dialogRef.close();\r\n }\r\n\r\n showSnackBar(message: string) {\r\n this.snackBar.open(message, 'X', {duration: 2500});\r\n }\r\n\r\n itemChanged() {\r\n this.hasChanges = true;\r\n }\r\n\r\n onSaveClick() {\r\n this.saveHandler(false);\r\n }\r\n\r\n saveHandler(closeDialog: boolean) {\r\n const dialogRef = this.dialog.open(DialogoConfirmacao, {\r\n data: {\r\n message: 'Deseja salvar as alterações?',\r\n buttonText: {\r\n ok: 'Sim',\r\n cancel: 'Não'\r\n }\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((confirmed: boolean) => {\r\n if (confirmed) {\r\n this.saveChanges(closeDialog);\r\n } else if (closeDialog) {\r\n this.closeHandler();\r\n }\r\n });\r\n }\r\n\r\n saveChanges(closeDialog: boolean) {\r\n const isNewColostragem =\r\n this.colostragem.cdColostragem === undefined || this.colostragem.cdColostragem === 0;\r\n\r\n if (isNewColostragem) {\r\n this.insert(closeDialog);\r\n } else {\r\n this.update(closeDialog);\r\n }\r\n }\r\n\r\n insert(closeDialog: boolean) {\r\n this.altaCriaService.insereColostragem([this.colostragem]).subscribe((response: Colostragem[]) => {\r\n if (response != null) {\r\n this.snackBar.open('Alterações salvas com sucesso.', 'X', {\r\n duration: 2500,\r\n });\r\n this.hasChanges = false;\r\n if (closeDialog) {\r\n this.closeHandler();\r\n }\r\n }\r\n }, (error) => console.error(error));\r\n }\r\n\r\n update(closeDialog: boolean) {\r\n this.altaCriaService.atualizaColostragem([this.colostragem]).subscribe((response: Colostragem[]) => {\r\n if (response != null) {\r\n this.snackBar.open('Alterações salvas com sucesso.', 'X', {\r\n duration: 2500,\r\n });\r\n this.hasChanges = false;\r\n if (closeDialog) {\r\n this.closeHandler();\r\n }\r\n }\r\n }, (error) => console.error(error));\r\n }\r\n\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FsdGEtY3JpYS9ldmVudG9zLWNhZGFzdHJvL2V2ZW50b3MtY2FkYXN0cm8uY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatSnackBar, MatDialog, MatDialogRef } from '@angular/material';\r\nimport { faPlus, faEdit } from '@fortawesome/free-solid-svg-icons';\r\nimport { GridComponent, GridDataResult, RowClassArgs } from '@progress/kendo-angular-grid';\r\nimport { SortDescriptor } from '@progress/kendo-data-query';\r\nimport { DialogoAlertaComponent } from 'src/app/_utils/dialogo-alerta/dialogo-alerta.component';\r\nimport { DialogoConfirmacao } from 'src/app/_utils/dialogo-confirmacao/dialogo-confirmacao.component';\r\nimport { OcorrenciaReproducaoCadastroComponent } from 'src/app/reproduction/ocorrencia-reproducao-cadastro/ocorrencia-reproducao-cadastro.component';\r\nimport { AltaCriaService } from 'src/app/_services/alta-cria.service';\r\nimport { AltaGestaoService } from 'src/app/_services/alta-gestao.service';\r\nimport { EventoFiltro } from 'src/models/alta-cria/evento-filtro.model';\r\nimport { Evento } from 'src/models/alta-cria/evento.model';\r\nimport { Matriz } from 'src/models/matriz/matriz.model';\r\n\r\n@Component({\r\n selector: 'app-eventos-cadastro',\r\n templateUrl: './eventos-cadastro.component.html',\r\n styleUrls: ['./eventos-cadastro.component.scss']\r\n})\r\nexport class EventosCadastroComponent implements OnInit {\r\n\r\n @ViewChild('eventsGrid', { static: false }) grid: GridComponent;\r\n\r\n hasChanges = false;\r\n loading = false;\r\n isValid = true;\r\n\r\n itemsToUpdate: Evento[] = [];\r\n itemsToInsert: Evento[] = [];\r\n removedItems: Evento[] = [];\r\n itemsSource: Evento[] = [];\r\n invalidItems: Evento[] = [];\r\n eventTypes: string[] = [];\r\n\r\n formGroup: FormGroup;\r\n previousEdit: any;\r\n editedRowIndex: number;\r\n itemToRemove: Evento;\r\n matrix: Matriz;\r\n\r\n gridView: GridDataResult;\r\n itemsSort: SortDescriptor[] = [{ field: 'data', dir: 'asc' }];\r\n gridSelection: any[] = [];\r\n addIcon = faPlus;\r\n editIcon = faEdit;\r\n rowIndex: number;\r\n\r\n selectedCallback = (args: { dataItem: any; }) => args.dataItem;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private snackBar: MatSnackBar,\r\n private dialog: MatDialog,\r\n private altaCriaService: AltaCriaService,\r\n private dialogRef: MatDialogRef,\r\n private altaGestaoService: AltaGestaoService) {\r\n this.matrix = data.matrix;\r\n }\r\n\r\n ngOnInit() {\r\n this.invalidItems = new Array();\r\n this.getEvents();\r\n this.getEventTypes();\r\n }\r\n\r\n onCellClick({ sender, rowIndex, columnIndex, dataItem, isEdited }) {\r\n this.editHandler({ sender, rowIndex, columnIndex, dataItem, isEdited });\r\n }\r\n\r\n validateItem(context: RowClassArgs) {\r\n let dataEvento = new Date(context.dataItem.dataEvento);\r\n let ano = dataEvento.getFullYear().toString();\r\n if (ano.length === 2) {\r\n ano = '20' + ano;\r\n dataEvento.setFullYear(Number(ano));\r\n }\r\n\r\n const currentDate = new Date();\r\n const birthDate = new Date(context.dataItem.dtNascimento);\r\n const event = context.dataItem.evento;\r\n\r\n const hasDateAndDescription =\r\n dataEvento !== undefined\r\n && event !== undefined\r\n && event !== '';\r\n\r\n const hasValidDate = dataEvento > birthDate && dataEvento <= currentDate;\r\n\r\n context.dataItem.isValid = true;\r\n\r\n if (!hasDateAndDescription || !hasValidDate) {\r\n context.dataItem.isValid = false;\r\n }\r\n return {\r\n invalid: !context.dataItem.isValid\r\n };\r\n }\r\n\r\n createFormGroup(dataItem: Evento) {\r\n this.formGroup = new FormGroup({\r\n dataEvento: new FormControl(new Date(dataItem.dataEvento), Validators.required),\r\n evento: new FormControl(dataItem.evento, Validators.required)\r\n },\r\n {\r\n updateOn: 'blur',\r\n });\r\n\r\n this.formGroup.valueChanges.subscribe(value => this.updateObjectHandler(dataItem));\r\n }\r\n\r\n updateObjectHandler(dataItem: Evento) {\r\n let dataEvento = new Date(this.formGroup.controls[`dataEvento`].value);\r\n let ano = dataEvento.getFullYear().toString();\r\n if (ano.length === 2) {\r\n ano = '20' + ano;\r\n dataEvento.setFullYear(Number(ano));\r\n }\r\n\r\n dataItem.evento = this.formGroup.controls[`evento`].value;\r\n dataItem.dataEvento = dataEvento;\r\n\r\n const itemsToUpdate = this.itemsToUpdate.filter(cond => cond === dataItem);\r\n if (itemsToUpdate.length === 0) {\r\n this.itemsToUpdate.push(dataItem);\r\n }\r\n\r\n this.hasChanges = true;\r\n }\r\n\r\n closeRow({ sender, rowIndex }) {\r\n sender.closeRow(rowIndex);\r\n }\r\n\r\n onRemoveClick({ dataItem }) {\r\n this.itemToRemove = dataItem;\r\n this.itemToRemove.isRemoved = true;\r\n this.removeHandler();\r\n }\r\n\r\n removeHandler() {\r\n const dialogRef = this.dialog.open(DialogoConfirmacao, {\r\n data: {\r\n message: `Deseja realmente remover o registro ${ new Date(this.itemToRemove.dataEvento).toLocaleDateString() }\r\n - ${ this.itemToRemove.evento ? this.itemToRemove.evento : `Não informado`} ?`,\r\n buttonText: {\r\n ok: 'Sim',\r\n cancel: 'Não'\r\n }\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((confirmed: boolean) => {\r\n if (confirmed) {\r\n this.removeItem(dialogRef);\r\n } else {\r\n this.itemToRemove.isRemoved = false;\r\n }\r\n });\r\n }\r\n\r\n removeItem(dialogRef) {\r\n const hasCdEventos =\r\n this.itemToRemove.cdEventos !== undefined && this.itemToRemove.cdEventos > 0;\r\n\r\n if (hasCdEventos) {\r\n this.itemsSource = this.itemsSource.filter(hm => hm.cdEventos !== this.itemToRemove.cdEventos);\r\n this.itemsToUpdate = this.itemsToUpdate.filter(hm => hm.cdEventos !== this.itemToRemove.cdEventos);\r\n\r\n this.altaCriaService.removeEvento([this.itemToRemove.cdEventos]).subscribe((response: Array) => {\r\n this.snackBar.open('Registro removido com sucesso.', 'X', {\r\n duration: 2500,\r\n });\r\n });\r\n } else {\r\n this.itemsSource = this.itemsSource.filter(hm => hm.isRemoved === false || hm.isRemoved === undefined);\r\n this.itemsToUpdate = this.itemsToUpdate.filter(hm => hm.isRemoved === false || hm.isRemoved === undefined);\r\n\r\n if (this.itemsToUpdate.length === 0) {\r\n this.hasChanges = false;\r\n }\r\n }\r\n\r\n dialogRef.close();\r\n }\r\n\r\n saveClick() {\r\n this.saveHandler(false);\r\n }\r\n\r\n getEvents() {\r\n this.loading = true;\r\n const filter = this.getFilter();\r\n this.altaCriaService.getEventos(filter).subscribe((response: Evento[]) => {\r\n this.itemsSource = response;\r\n this.setBirthDate();\r\n this.loading = false;\r\n });\r\n }\r\n\r\n getEventTypes() {\r\n this.eventTypes.push(\r\n `BEBE RUMINAL`,\r\n `CARRAPATICIDA`,\r\n `DIARREIA`,\r\n `MOCHACAO`,\r\n `PNEUMONIA`,\r\n `PREVENTIVO TRISTEZA`,\r\n `TRISTEZA PARASITARIA`,\r\n `ULCERA DE ABOMASO`,\r\n `UMBIGO INFLAMADO`,\r\n `VACINACAO`,\r\n `VERMIFUGACAO`);\r\n }\r\n\r\n getFilter(): EventoFiltro {\r\n const filter = new EventoFiltro();\r\n filter.cdMatriz = this.matrix.cdmatriz;\r\n filter.cdFazenda = this.matrix.cdfazenda;\r\n return filter;\r\n }\r\n\r\n saveHandler(closeDialog: boolean) {\r\n const dialogRef = this.dialog.open(DialogoConfirmacao, {\r\n data: {\r\n message: 'Deseja salvar as alterações?',\r\n buttonText: {\r\n ok: 'Sim',\r\n cancel: 'Não'\r\n }\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((confirmed: boolean) => {\r\n if (confirmed) {\r\n const item = this.itemsToUpdate.find(cond => cond.isValid === false);\r\n const hasInvalidItem = item !== null && item !== undefined;\r\n\r\n if (hasInvalidItem) {\r\n this.showErrorAlert(`Não foi possível salvar. Existem registros inválidos`);\r\n } else if (!this.isValidSameEventTypeOnSameDate()) {\r\n this.showErrorAlert(`Não é permitido lançar o mesmo evento na mesma data`);\r\n } else {\r\n this.saveChanges(dialogRef, closeDialog);\r\n }\r\n } else if (closeDialog) {\r\n this.closeHandler();\r\n }\r\n });\r\n }\r\n\r\n saveChanges(dialogRef, closeDialog: boolean) {\r\n this.itemsToInsert = this.itemsToUpdate.filter(item => item.cdEventos === 0 || item.cdEventos === undefined);\r\n this.itemsToUpdate = this.itemsToUpdate.filter(item => item.cdEventos > 0);\r\n\r\n if (this.itemsToInsert.length > 0) {\r\n this.insert(closeDialog);\r\n }\r\n if (this.itemsToUpdate.length > 0) {\r\n this.update(closeDialog);\r\n }\r\n\r\n this.hasChanges = false;\r\n\r\n dialogRef.close();\r\n }\r\n\r\n insert(closeDialog: boolean) {\r\n this.altaCriaService.insereEvento(this.itemsToInsert).subscribe((response: Evento[]) => {\r\n if (response != null) {\r\n this.snackBar.open('Alterações salvas com sucesso.', 'X', {\r\n duration: 2500,\r\n });\r\n this.itemsToInsert = [];\r\n this.getEvents();\r\n this.setBirthDate();\r\n if (closeDialog) {\r\n this.closeHandler();\r\n }\r\n }\r\n });\r\n }\r\n\r\n update(closeDialog: boolean) {\r\n this.altaCriaService.atualizaEvento(this.itemsToUpdate).subscribe((response: Evento[]) => {\r\n if (response != null) {\r\n this.snackBar.open('Alterações salvas com sucesso.', 'X', {\r\n duration: 2500,\r\n });\r\n this.itemsToUpdate = [];\r\n this.getEvents();\r\n this.setBirthDate();\r\n if (closeDialog) {\r\n this.closeHandler();\r\n }\r\n }\r\n });\r\n }\r\n\r\n closeClick() {\r\n if (this.hasChanges === true) {\r\n this.saveHandler(true);\r\n } else {\r\n this.closeHandler();\r\n }\r\n }\r\n\r\n closeHandler() {\r\n this.dialogRef.close();\r\n }\r\n\r\n addClick() {\r\n this.addHandler();\r\n }\r\n\r\n addHandler() {\r\n const newItem: Evento = new Evento();\r\n newItem.cdMatriz = this.matrix.cdmatriz;\r\n newItem.dataEvento = new Date();\r\n newItem.cdFazenda = this.altaGestaoService.getCdFazendaSelecionada();\r\n newItem.dtNascimento = this.matrix.dtnascimento;\r\n\r\n this.itemsSource.push(newItem);\r\n this.itemsToUpdate.push(newItem);\r\n\r\n this.editHandler({ sender: this.grid, rowIndex: this.itemsSource.length - 1, columnIndex: 0, dataItem: newItem, isEdited: false });\r\n\r\n this.hasChanges = true;\r\n }\r\n\r\n editHandler({ sender, rowIndex, columnIndex, dataItem, isEdited }) {\r\n if (this.previousEdit != null) {\r\n this.closeRow(this.previousEdit);\r\n }\r\n\r\n this.createFormGroup(dataItem);\r\n sender.editCell(rowIndex, columnIndex, this.formGroup);\r\n this.previousEdit = { dataItem, sender, rowIndex };\r\n }\r\n\r\n onDropDownChange(eventType: string, event: Evento) {\r\n const hasEventType = eventType !== undefined && eventType !== null;\r\n const hasEvent = event !== undefined && event !== null;\r\n\r\n if (hasEventType && hasEvent) {\r\n event.evento = eventType;\r\n\r\n if (this.itemsToUpdate.filter(cond => cond === event).length === 0) {\r\n this.itemsToUpdate.push(event);\r\n }\r\n\r\n this.hasChanges = true;\r\n }\r\n }\r\n\r\n setBirthDate() {\r\n this.itemsSource.forEach((event) => { event.dtNascimento = this.matrix.dtnascimento; });\r\n }\r\n\r\n isValidSameEventTypeOnSameDate(): boolean {\r\n const itemsToUpdateAux = this.itemsToUpdate;\r\n let count = 0;\r\n\r\n itemsToUpdateAux.forEach((itemToUpdateAux) => {\r\n this.itemsToUpdate.forEach((itemToUpdate) => {\r\n const isSameEvent = itemToUpdateAux.evento === itemToUpdate.evento;\r\n const isSameDate = new Date(itemToUpdateAux.dataEvento).getDate() === new Date(itemToUpdate.dataEvento).getDate();\r\n if (isSameEvent && isSameDate) {\r\n count++;\r\n }\r\n });\r\n if (count > 1) {\r\n return;\r\n }\r\n count = 0;\r\n });\r\n\r\n if (count > 1) {\r\n return false;\r\n }\r\n\r\n count = 0;\r\n\r\n this.itemsToUpdate.forEach((itemToUpdate) => {\r\n this.itemsSource.forEach((itemSource) => {\r\n const isSameEvent = itemToUpdate.evento === itemSource.evento;\r\n const isSameDate = new Date(itemToUpdate.dataEvento).getDate() === new Date(itemSource.dataEvento).getDate();\r\n if (isSameEvent && isSameDate) {\r\n count++;\r\n }\r\n });\r\n if (count > 1) {\r\n return;\r\n }\r\n count = 0;\r\n });\r\n\r\n if (count > 1) {\r\n return false;\r\n }\r\n\r\n return true;\r\n\r\n }\r\n\r\n showErrorAlert(msg: string) {\r\n this.dialog.open(DialogoAlertaComponent, {\r\n data: {\r\n message: msg,\r\n buttonText: {\r\n cancel: 'OK'\r\n }\r\n }\r\n });\r\n }\r\n\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FsdGEtY3JpYS9wZXNhZ2VtLWNhZGFzdHJvL3Blc2FnZW0tY2FkYXN0cm8uY29tcG9uZW50LnNjc3MifQ== */\"","import { AltaCriaService } from 'src/app/_services/alta-cria.service';\r\nimport { Component, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatSnackBar, MatDialog, MatDialogRef } from '@angular/material';\r\nimport { faPlus, faEdit } from '@fortawesome/free-solid-svg-icons';\r\nimport { GridComponent, GridDataResult, RowClassArgs } from '@progress/kendo-angular-grid';\r\nimport { SortDescriptor } from '@progress/kendo-data-query';\r\nimport { DialogoAlertaComponent } from 'src/app/_utils/dialogo-alerta/dialogo-alerta.component';\r\nimport { DialogoConfirmacao } from 'src/app/_utils/dialogo-confirmacao/dialogo-confirmacao.component';\r\nimport { OcorrenciaReproducaoCadastroComponent } from 'src/app/reproduction/ocorrencia-reproducao-cadastro/ocorrencia-reproducao-cadastro.component';\r\nimport { AltaGestaoService } from 'src/app/_services/alta-gestao.service';\r\nimport { Pesagem } from 'src/models/alta-cria/pesagem.model';\r\nimport { Matriz } from 'src/models/matriz/matriz.model';\r\nimport { PesagemFiltro } from 'src/models/alta-cria/pesagem-filtro.model';\r\n\r\n@Component({\r\n selector: 'app-pesagem-cadastro',\r\n templateUrl: './pesagem-cadastro.component.html',\r\n styleUrls: ['./pesagem-cadastro.component.scss']\r\n})\r\nexport class PesagemCadastroComponent implements OnInit {\r\n\r\n @ViewChild('eventsGrid', { static: false }) grid: GridComponent;\r\n\r\n hasChanges = false;\r\n loading = false;\r\n isValid = true;\r\n\r\n itemsToUpdate: Pesagem[] = [];\r\n itemsToInsert: Pesagem[] = [];\r\n removedItems: Pesagem[] = [];\r\n itemsSource: Pesagem[] = [];\r\n invalidItems: Pesagem[] = [];\r\n\r\n formGroup: FormGroup;\r\n previousEdit: any;\r\n editedRowIndex: number;\r\n itemToRemove: Pesagem;\r\n matrix: Matriz;\r\n\r\n gridView: GridDataResult;\r\n itemsSort: SortDescriptor[] = [{ field: 'data', dir: 'asc' }];\r\n gridSelection: any[] = [];\r\n addIcon = faPlus;\r\n editIcon = faEdit;\r\n rowIndex: number;\r\n\r\n selectedCallback = (args: { dataItem: any; }) => args.dataItem;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private snackBar: MatSnackBar,\r\n private dialog: MatDialog,\r\n private altaCriaService: AltaCriaService,\r\n private dialogRef: MatDialogRef,\r\n private altaGestaoService: AltaGestaoService) {\r\n this.matrix = data.matrix;\r\n }\r\n\r\n ngOnInit() {\r\n this.invalidItems = new Array();\r\n this.matrix = this.data.matrix;\r\n this.getPesagens();\r\n }\r\n\r\n onCellClick({ sender, rowIndex, columnIndex, dataItem, isEdited }) {\r\n this.editHandler({ sender, rowIndex, columnIndex, dataItem, isEdited });\r\n }\r\n\r\n validateItem(context: RowClassArgs) {\r\n let dataPesagem = new Date(context.dataItem.dataPesagem);\r\n let ano = dataPesagem.getFullYear().toString();\r\n if (ano.length === 2) {\r\n ano = '20' + ano;\r\n dataPesagem.setFullYear(Number(ano));\r\n }\r\n // const dataPesagem = this.formataDataPesagem(context.dataItem.dataPesagem);\r\n const currentDate = new Date();\r\n const birthDate = new Date(context.dataItem.dtNascimento);\r\n\r\n const hasDateAndDescription =\r\n dataPesagem !== undefined\r\n && context.dataItem.peso !== undefined\r\n && context.dataItem.peso !== ''\r\n && context.dataItem.peso > 0;\r\n\r\n const hasValidDate = dataPesagem > birthDate && dataPesagem <= currentDate;\r\n\r\n context.dataItem.isValid = true;\r\n\r\n if (!hasDateAndDescription || !hasValidDate) {\r\n context.dataItem.isValid = false;\r\n }\r\n return {\r\n invalid: !context.dataItem.isValid\r\n };\r\n }\r\n\r\n createFormGroup(dataItem: Pesagem) {\r\n this.formGroup = new FormGroup({\r\n dataPesagem: new FormControl(new Date(dataItem.dataPesagem), Validators.required),\r\n peso: new FormControl(dataItem.peso, Validators.required)\r\n },\r\n {\r\n updateOn: 'blur',\r\n });\r\n\r\n this.formGroup.valueChanges.subscribe(value => this.updateObjectHandler(dataItem));\r\n }\r\n\r\n updateObjectHandler(dataItem: Pesagem) {\r\n let dataPesagem = new Date(this.formGroup.controls[`dataPesagem`].value);\r\n let ano = dataPesagem.getFullYear().toString();\r\n if (ano.length === 2) {\r\n ano = '20' + ano;\r\n dataPesagem.setFullYear(Number(ano));\r\n }\r\n\r\n dataItem.peso = this.formGroup.controls[`peso`].value;\r\n dataItem.dataPesagem = dataPesagem;\r\n\r\n const itemsToUpdate = this.itemsToUpdate.filter(cond => cond === dataItem);\r\n if (itemsToUpdate.length === 0) {\r\n this.itemsToUpdate.push(dataItem);\r\n }\r\n\r\n this.hasChanges = true;\r\n }\r\n\r\n closeRow({ sender, rowIndex }) {\r\n sender.closeRow(rowIndex);\r\n }\r\n\r\n onRemoveClick({ dataItem }) {\r\n this.itemToRemove = dataItem;\r\n this.itemToRemove.isRemoved = true;\r\n this.removeHandler();\r\n }\r\n\r\n removeHandler() {\r\n const dialogRef = this.dialog.open(DialogoConfirmacao, {\r\n data: {\r\n message: `Deseja realmente remover o registro do dia ${ new Date(this.itemToRemove.dataPesagem).toLocaleDateString() }\r\n - ${ this.itemToRemove.peso ? this.itemToRemove.peso : `Não informado`} ?`,\r\n buttonText: {\r\n ok: 'Sim',\r\n cancel: 'Não'\r\n }\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((confirmed: boolean) => {\r\n if (confirmed) {\r\n this.removeItem(dialogRef);\r\n } else {\r\n this.itemToRemove.isRemoved = false;\r\n }\r\n });\r\n }\r\n\r\n removeItem(dialogRef) {\r\n const hasCdEventos =\r\n this.itemToRemove.cdPesagem !== undefined && this.itemToRemove.cdPesagem > 0;\r\n\r\n if (hasCdEventos) {\r\n this.itemsSource = this.itemsSource.filter(hm => hm.cdPesagem !== this.itemToRemove.cdPesagem);\r\n this.itemsToUpdate = this.itemsToUpdate.filter(hm => hm.cdPesagem !== this.itemToRemove.cdPesagem);\r\n\r\n this.altaCriaService.removePesagem([this.itemToRemove.cdPesagem]).subscribe((response: Array) => {\r\n this.snackBar.open('Registro removido com sucesso.', 'X', {\r\n duration: 2500,\r\n });\r\n });\r\n } else {\r\n this.itemsSource = this.itemsSource.filter(hm => hm.isRemoved === false || hm.isRemoved === undefined);\r\n this.itemsToUpdate = this.itemsToUpdate.filter(hm => hm.isRemoved === false || hm.isRemoved === undefined);\r\n\r\n if (this.itemsToUpdate.length === 0) {\r\n this.hasChanges = false;\r\n }\r\n }\r\n\r\n dialogRef.close();\r\n }\r\n\r\n saveClick() {\r\n this.saveHandler(false);\r\n }\r\n\r\n getPesagens() {\r\n this.loading = true;\r\n const filter = this.getFilter();\r\n this.altaCriaService.getPesagem(filter).subscribe(response => {\r\n this.itemsSource = response;\r\n this.setBirthDate()\r\n this.loading = false;\r\n });\r\n }\r\n\r\n getFilter(): PesagemFiltro {\r\n const filter = new PesagemFiltro();\r\n filter.cdMatriz = this.matrix.cdmatriz;\r\n filter.cdFazenda = this.matrix.cdfazenda;\r\n return filter;\r\n }\r\n\r\n saveHandler(closeDialog: boolean) {\r\n const dialogRef = this.dialog.open(DialogoConfirmacao, {\r\n data: {\r\n message: 'Deseja salvar as alterações?',\r\n buttonText: {\r\n ok: 'Sim',\r\n cancel: 'Não'\r\n }\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((confirmed: boolean) => {\r\n if (confirmed) {\r\n const item = this.itemsToUpdate.find(cond => cond.isValid === false);\r\n const hasInvalidItem = item !== null && item !== undefined;\r\n if (hasInvalidItem) {\r\n this.dialog.open(DialogoAlertaComponent, {\r\n data: {\r\n message: `Não foi possível salvar. Existem registros inválidos`,\r\n buttonText: {\r\n cancel: 'OK'\r\n }\r\n }\r\n });\r\n } else {\r\n this.saveChanges(dialogRef, closeDialog);\r\n }\r\n } else if (closeDialog) {\r\n this.closeHandler();\r\n }\r\n });\r\n }\r\n\r\n saveChanges(dialogRef, closeDialog: boolean) {\r\n this.itemsToInsert = this.itemsToUpdate.filter(item => item.cdPesagem === 0 || item.cdPesagem === undefined);\r\n this.itemsToUpdate = this.itemsToUpdate.filter(item => item.cdPesagem > 0);\r\n\r\n if (this.itemsToInsert.length > 0) {\r\n this.insert(closeDialog);\r\n }\r\n if (this.itemsToUpdate.length > 0) {\r\n this.update(closeDialog);\r\n }\r\n\r\n this.hasChanges = false;\r\n\r\n dialogRef.close();\r\n }\r\n\r\n insert(closeDialog: boolean) {\r\n this.altaCriaService.inserePesagem(this.itemsToInsert).subscribe((response: Array) => {\r\n if (response != null) {\r\n this.snackBar.open('Alterações salvas com sucesso.', 'X', {\r\n duration: 2500,\r\n });\r\n this.itemsToInsert = [];\r\n this.getPesagens();\r\n this.setBirthDate();\r\n if (closeDialog) {\r\n this.closeHandler();\r\n }\r\n }\r\n });\r\n }\r\n\r\n update(closeDialog: boolean) {\r\n this.altaCriaService.atualizaPesagem(this.itemsToUpdate).subscribe((response: Array) => {\r\n if (response != null) {\r\n this.snackBar.open('Alterações salvas com sucesso.', 'X', {\r\n duration: 2500,\r\n });\r\n this.itemsToUpdate = [];\r\n this.getPesagens();\r\n this.setBirthDate();\r\n if (closeDialog) {\r\n this.closeHandler();\r\n }\r\n }\r\n });\r\n }\r\n\r\n closeClick() {\r\n if (this.hasChanges === true) {\r\n this.saveHandler(true);\r\n } else {\r\n this.closeHandler();\r\n }\r\n }\r\n\r\n closeHandler() {\r\n this.dialogRef.close();\r\n }\r\n\r\n addClick() {\r\n this.addHandler();\r\n }\r\n\r\n addHandler() {\r\n const newItem: Pesagem = new Pesagem();\r\n newItem.cdMatriz = this.matrix.cdmatriz;\r\n newItem.dataPesagem = new Date();\r\n newItem.cdFazenda = this.altaGestaoService.getCdFazendaSelecionada();\r\n newItem.dtNascimento = this.matrix.dtnascimento;\r\n\r\n this.itemsSource.push(newItem);\r\n this.itemsToUpdate.push(newItem);\r\n\r\n this.editHandler({ sender: this.grid, rowIndex: this.itemsSource.length - 1, columnIndex: 0, dataItem: newItem, isEdited: false });\r\n\r\n this.hasChanges = true;\r\n }\r\n\r\n editHandler({ sender, rowIndex, columnIndex, dataItem, isEdited }) {\r\n if (this.previousEdit != null) {\r\n this.closeRow(this.previousEdit);\r\n }\r\n\r\n this.createFormGroup(dataItem);\r\n sender.editCell(rowIndex, columnIndex, this.formGroup);\r\n this.previousEdit = { dataItem, sender, rowIndex };\r\n }\r\n\r\n setBirthDate() {\r\n this.itemsSource.forEach((pesagem) => { pesagem.dtNascimento = this.matrix.dtnascimento; });\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { HomeComponent } from './home/home.component';\r\nimport { AuthGuardService } from './_services/auth-guard.service';\r\nimport { LoginComponent } from './login/login.component';\r\n\r\nconst routes: Routes = [\r\n { path: 'login', component: LoginComponent },\r\n { path: '', canActivate: [AuthGuardService], runGuardsAndResolvers: 'always',\r\n children: [\r\n { path: '', redirectTo: 'inicio', pathMatch: 'full' },\r\n { path: 'inicio', component: HomeComponent,\r\n children: [\r\n { path: '', pathMatch: 'full', redirectTo: 'agenda' },\r\n { path: 'agenda', loadChildren: './schedule/_agenda-module/agenda.module#AgendaModule' },\r\n { path: 'matriz', loadChildren: './matrix/_matriz-module/matriz.module#MatrizModule' },\r\n { path: 'reproducao', loadChildren: './reproduction/_reproducao-module/reproducao.module#ReproducaoModule' },\r\n { path: 'dashboard', loadChildren: './dashboard/_dashboard-module/dashboard.module#DashboardModule' },\r\n { path: 'analises', loadChildren: './analises/_analises-module/analises.module#AnalisesModule' },\r\n { path: 'taxa-concepcao', loadChildren: './taxa-concepcao/_taxa-concepcao-module/taxa-concepcao.module#TaxaConcepcaoModule' },\r\n { path: 'configuracao', loadChildren: './configurations/_configuracoes-module/configuracoes.module#ConfiguracoesModule' },\r\n { path: 'listagem', loadChildren: './listing/_listagem-module/listagem.module#ListagemModule' },\r\n { path: 'alta-cria', loadChildren: './alta-cria/_alta-cria-module/alta-cria.module#AltaCriaModule' },\r\n { path: 'producao', loadChildren: './production/_producao-module/producao.module#ProducaoModule' },\r\n { path: 'ficha-individual', loadChildren: './ficha-individual/_ficha-individual-module/ficha-individual.module#FichaIndividualModule' },\r\n { path: 'simulador-reproducao', loadChildren: './simulador-reproducao/_simulador-reproducao-module/simulador-reproducao.module#SimuladorReproducaoModule' },\r\n { path: 'benchmarking', loadChildren: './benchmarking/_benchmarking-module/benchmarking.module#BenchmarkingModule' },\r\n { path: 'cadastro', loadChildren: './cadastro/_cadastro-module/cadastro.module#CadastroModule' },\r\n { path: 'relatorio', loadChildren: './relatorios/_relatorios-module/relatorios.module#RelatoriosModule' },\r\n { path: 'importacao', loadChildren: './importacoes/_importacoes-module/importacoes.module#ImportacoesModule' }\r\n ]\r\n }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n RouterModule.forRoot(\r\n routes,\r\n { enableTracing: false }\r\n )\r\n ],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, Injectable, ViewEncapsulation } from '@angular/core';\r\nimport { BroadcastService, MsalService } from '@azure/msal-angular';\r\nimport { b2cPolicies, isIE } from './_authorization/auth.config';\r\nimport { Logger, CryptoUtils } from 'msal';\r\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AppComponent {\r\n\r\n title = 'alta-gestao';\r\n\r\n constructor(private broadcastService: BroadcastService, private authService: MsalService) {\r\n\r\n this.broadcastService.subscribe('msal:loginSuccess', (success) => {\r\n\r\n console.log(success.idToken.claims);\r\n\r\n // We need to reject id tokens that were not issued with the default sign-in policy.\r\n // \"acr\" claim in the token tells us what policy is used (NOTE: for new policies (v2.0), use \"tfp\" instead of \"acr\")\r\n // To learn more about b2c tokens, visit https://docs.microsoft.com/en-us/azure/active-directory-b2c/tokens-overview\r\n // if (success.idToken.claims['acr'] !== b2cPolicies.names.signUpSignIn) {\r\n // window.alert(\"Password has been reset successfully. \\nPlease sign-in with your new password\");\r\n // return this.authService.logout()\r\n // }\r\n\r\n // console.log('login succeeded. id token acquired at: ' + new Date().toString());\r\n // console.log(success);\r\n });\r\n\r\n this.broadcastService.subscribe('msal:loginFailure', (error) => {\r\n console.log('login failed');\r\n console.log(error);\r\n\r\n // Check for forgot password error\r\n // Learn more about AAD error codes at https://docs.microsoft.com/en-us/azure/active-directory/develop/reference-aadsts-error-codes\r\n if (error.errorMessage.indexOf('AADB2C90118') > -1) {\r\n if (isIE) {\r\n this.authService.loginRedirect(b2cPolicies.authorities.resetPassword);\r\n } else {\r\n this.authService.loginPopup(b2cPolicies.authorities.resetPassword);\r\n }\r\n }\r\n });\r\n\r\n // redirect callback for redirect flow (IE)\r\n this.authService.handleRedirectCallback((authError, response) => {\r\n if (authError) {\r\n console.error('Redirect Error: ', authError.errorMessage);\r\n return;\r\n }\r\n\r\n console.log('Redirect Success: ', response);\r\n });\r\n\r\n this.authService.setLogger(new Logger((logLevel, message, piiEnabled) => {\r\n console.log('MSAL Logging: ', message);\r\n }, {\r\n correlationId: CryptoUtils.createNewGuid(),\r\n piiLoggingEnabled: false\r\n }));\r\n }\r\n}\r\n\r\n@Injectable()\r\nexport class UploadInterceptor implements HttpInterceptor {\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n\r\n if (req.url === 'removeUrl') {\r\n return of(new HttpResponse({ status: 200 }));\r\n }\r\n\r\n return next.handle(req);\r\n }\r\n}\r\n\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { LOCALE_ID, NgModule } from '@angular/core';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent, UploadInterceptor } from './app.component';\r\nimport { HomeComponent } from './home/home.component';\r\nimport { LoginComponent } from './login/login.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { InputsModule } from '@progress/kendo-angular-inputs';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { GridModule } from '@progress/kendo-angular-grid';\r\nimport { DropDownsModule } from '@progress/kendo-angular-dropdowns';\r\nimport { LayoutModule } from '@progress/kendo-angular-layout';\r\nimport '@progress/kendo-angular-intl/locales/pt/all';\r\nimport { DatePipe, registerLocaleData } from '@angular/common';\r\nimport pt from '@angular/common/locales/pt';\r\nimport { Configuration } from 'msal';\r\nimport { msalConfig, msalAngularConfig } from './_authorization/auth.config';\r\nimport { LoaderComponent } from './_utils/loader/loader.component';\r\nimport { MsalModule, MsalInterceptor, MSAL_CONFIG, MSAL_CONFIG_ANGULAR, MsalService, MsalAngularConfiguration } from '@azure/msal-angular';\r\nimport { MatPaginatorIntl } from '@angular/material';\r\nimport { CustomPaginator } from './_utils/CustomPaginatorConfiguration';\r\n\r\nimport { MatAutocompleteModule, MAT_AUTOCOMPLETE_DEFAULT_OPTIONS } from '@angular/material/autocomplete';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatNativeDateModule, MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatSidenavModule, MatIconModule, MatButtonModule } from '@angular/material';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { DialogoAlertaComponent } from './_utils/dialogo-alerta/dialogo-alerta.component';\r\nimport { DialogoConfirmacao } from './_utils/dialogo-confirmacao/dialogo-confirmacao.component';\r\nimport { MatrizHistoricoCadastroComponent } from './matrix/matriz-historico-cadastro/matriz-historico-cadastro.component';\r\nimport { OverlayContainer } from '@angular/cdk/overlay';\r\nimport { IatfCadastroComponent } from './reproduction/iatf-cadastro/iatf-cadastro.component';\r\nimport { IaCobTeCadastroComponent } from './reproduction/ia-cob-te-cadastro/ia-cob-te-cadastro.component';\r\nimport { PartoCadastroComponent } from './reproduction/parto-cadastro/parto-cadastro.component';\r\nimport { ConsultaCadastroComponent } from './reproduction/consulta-cadastro/consulta-cadastro.component';\r\nimport { OcorrenciaReproducaoCadastroComponent } from './reproduction/ocorrencia-reproducao-cadastro/ocorrencia-reproducao-cadastro.component';\r\nimport { LoteCadastroComponent } from './configurations/lote-cadastro/lote-cadastro.component';\r\nimport { InseminadorCadastroComponent } from './configurations/inseminador-cadastro/inseminador-cadastro.component';\r\nimport { ProtocoloCadastroComponent } from './configurations/protocolo-cadastro/protocolo-cadastro.component';\r\nimport { ComposicaoRacialCadastroComponent } from './configurations/composicao-racial-cadastro/composicao-racial-cadastro.component';\r\nimport { ReprodutorCadastroComponent } from './configurations/reprodutor-cadastro/reprodutor-cadastro.component';\r\n\r\nimport 'hammerjs';\r\nimport { ControleLeiteiroCadastroComponent } from './production/controle-leiteiro-cadastro/controle-leiteiro-cadastro.component';\r\nimport { IaCobTeDetalheComponent } from './reproduction/ia-cob-te-detalhe/ia-cob-te-detalhe.component';\r\nimport { ToqueDetalheComponent } from './reproduction/toque-detalhe/toque-detalhe.component';\r\nimport { OcorrenciaReproducaoDetalheComponent } from './reproduction/ocorrencia-reproducao-detalhe/ocorrencia-reproducao-detalhe.component';\r\nimport { PartoDetalheComponent } from './reproduction/parto-detalhe/parto-detalhe.component';\r\nimport { HistoricoReproducaoCadastroComponent } from './reproduction/historico-reproducao-cadastro/historico-reproducao-cadastro.component';\r\nimport { ColostragemCadastroComponent } from './alta-cria/colostragem-cadastro/colostragem-cadastro.component';\r\nimport { PesagemCadastroComponent } from './alta-cria/pesagem-cadastro/pesagem-cadastro.component';\r\nimport { EventosCadastroComponent } from './alta-cria/eventos-cadastro/eventos-cadastro.component';\r\nimport { SecagemCadastroComponent } from './production/secagem-cadastro/secagem-cadastro.component';\r\nimport { MatrizMaeCadastroComponent } from './matrix/matriz-mae-cadastro/matriz-mae-cadastro.component';\r\nimport { ProtocoloDetalheCadastroComponent } from './configurations/protocolo-detelhe-cadastro/protocolo-detelhe-cadastro.component';\r\nimport { MomentDateModule } from '@angular/material-moment-adapter';\r\nimport { PopUpAlteracaoFazendaComponent } from './_utils/popup-alteracao-fazenda/popup-alteracao-fazendacomponent';\r\nimport { MatrizCadastroComponent } from './matrix/matriz-cadastro/matriz-cadastro.component';\r\nimport { NgxScrollTopModule } from 'ngx-scrolltop';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { DialogLimparFazendaComponent } from './_utils/dialog-limpar-fazenda/dialog-limpar-fazenda.component';\r\n\r\nregisterLocaleData(pt, 'pt');\r\n\r\nconst isIE = window.navigator.userAgent.indexOf('MSIE ') > -1 || window.navigator.userAgent.indexOf('Trident/') > -1;\r\n\r\nexport const protectedResourceMap: [string, string[]][] = [];\r\n\r\nexport function MSALConfigFactory(): Configuration {\r\n return msalConfig;\r\n}\r\n\r\nexport function MSALAngularConfigFactory(): MsalAngularConfiguration {\r\n return msalAngularConfig;\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n HomeComponent,\r\n LoginComponent,\r\n MatrizCadastroComponent,\r\n LoaderComponent,\r\n DialogoAlertaComponent,\r\n DialogoConfirmacao,\r\n MatrizHistoricoCadastroComponent,\r\n IatfCadastroComponent,\r\n IaCobTeCadastroComponent,\r\n PartoCadastroComponent,\r\n ConsultaCadastroComponent,\r\n LoteCadastroComponent,\r\n InseminadorCadastroComponent,\r\n ProtocoloCadastroComponent,\r\n ComposicaoRacialCadastroComponent,\r\n OcorrenciaReproducaoCadastroComponent,\r\n PopUpAlteracaoFazendaComponent,\r\n ControleLeiteiroCadastroComponent,\r\n ReprodutorCadastroComponent,\r\n IaCobTeDetalheComponent,\r\n ToqueDetalheComponent,\r\n OcorrenciaReproducaoDetalheComponent,\r\n PartoDetalheComponent,\r\n HistoricoReproducaoCadastroComponent,\r\n ColostragemCadastroComponent,\r\n PesagemCadastroComponent,\r\n EventosCadastroComponent,\r\n SecagemCadastroComponent,\r\n MatrizMaeCadastroComponent,\r\n ProtocoloDetalheCadastroComponent,\r\n DialogLimparFazendaComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n HttpClientModule,\r\n AppRoutingModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n InputsModule,\r\n BrowserAnimationsModule,\r\n FontAwesomeModule,\r\n GridModule,\r\n DropDownsModule,\r\n LayoutModule,\r\n MatToolbarModule,\r\n MatSidenavModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MsalModule,\r\n MatMenuModule,\r\n MatDialogModule,\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n MatTooltipModule,\r\n MatInputModule,\r\n MatCheckboxModule,\r\n MatRadioModule,\r\n MatCardModule,\r\n MatSelectModule,\r\n MatSnackBarModule,\r\n MatListModule,\r\n MatAutocompleteModule,\r\n MatExpansionModule,\r\n MatFormFieldModule,\r\n MomentDateModule,\r\n DragDropModule,\r\n // NgxScrollTopModule,\r\n ],\r\n providers: [\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: MsalInterceptor,\r\n multi: true\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: UploadInterceptor,\r\n multi: true\r\n },\r\n {\r\n provide: MSAL_CONFIG,\r\n useFactory: MSALConfigFactory\r\n },\r\n {\r\n provide: MSAL_CONFIG_ANGULAR,\r\n useFactory: MSALAngularConfigFactory\r\n },\r\n MsalService,\r\n {\r\n provide: LOCALE_ID,\r\n useValue: 'pt'\r\n },\r\n DatePipe,\r\n {\r\n provide: MatPaginatorIntl,\r\n useValue: CustomPaginator()\r\n },\r\n {\r\n provide: MAT_DATE_LOCALE, useValue: 'pt-BR'\r\n }\r\n ],\r\n entryComponents: [\r\n DialogoConfirmacao,\r\n DialogoAlertaComponent,\r\n MatrizCadastroComponent,\r\n MatrizHistoricoCadastroComponent,\r\n IatfCadastroComponent,\r\n OcorrenciaReproducaoCadastroComponent,\r\n LoteCadastroComponent,\r\n InseminadorCadastroComponent,\r\n ProtocoloCadastroComponent,\r\n ProtocoloDetalheCadastroComponent,\r\n ComposicaoRacialCadastroComponent,\r\n ControleLeiteiroCadastroComponent,\r\n PopUpAlteracaoFazendaComponent,\r\n PartoCadastroComponent,\r\n ReprodutorCadastroComponent,\r\n ConsultaCadastroComponent,\r\n IaCobTeCadastroComponent,\r\n HistoricoReproducaoCadastroComponent,\r\n ColostragemCadastroComponent,\r\n PesagemCadastroComponent,\r\n EventosCadastroComponent,\r\n SecagemCadastroComponent,\r\n MatrizMaeCadastroComponent,\r\n DialogLimparFazendaComponent\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule {\r\n constructor(overlayContainer: OverlayContainer) {\r\n overlayContainer.getContainerElement().classList.add('angular-material-router-app-theme');\r\n }\r\n}\r\n","export default \".custom-date-class {\\n background: #ECF0F5;\\n border-radius: 100%;\\n}\\n\\n.checkbox-section {\\n display: block;\\n align-content: center;\\n align-items: center;\\n height: 60px;\\n}\\n\\n.parent {\\n display: flex;\\n overflow: hidden;\\n border: 1px solid #cccccc;\\n border-radius: 4px;\\n padding-top: 20px !important;\\n padding-bottom: 1px !important;\\n margin-top: -22px !important;\\n margin-left: 15px;\\n margin-right: 15px;\\n}\\n\\n.column {\\n display: flex;\\n flex-direction: column;\\n float: left;\\n position: absolute;\\n}\\n\\n.left {\\n width: 128px;\\n margin-left: 4px;\\n}\\n\\n.right {\\n padding-top: 10px !important;\\n}\\n\\n.center {\\n width: 175px;\\n}\\n\\n.midlle {\\n width: 120px;\\n}\\n\\n.header {\\n font-size: 12px;\\n margin-left: 10px;\\n margin-top: -28px !important;\\n background-color: white;\\n width: 30px;\\n padding-left: 5px;\\n}\\n\\n.sub-header {\\n font-size: 14px;\\n margin-top: -16px;\\n background-color: white;\\n}\\n\\n.borda {\\n border: 1px solid #cccccc;\\n border-radius: 4px;\\n padding: 5px;\\n margin: 15px 5px 5px 5px;\\n width: 400px;\\n}\\n\\n.example-radio-group {\\n display: flex !important;\\n flex-direction: column !important;\\n font-size: 14px;\\n margin-left: 10px !important;\\n}\\n\\n.isDisabled {\\n color: #cecece !important;\\n border: 1px solid #ececec !important;\\n}\\n\\n.hasError {\\n color: red !important;\\n border-bottom: 1px solid red !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29uZmlndXJhdGlvbnMvY29tcG9zaWNhby1yYWNpYWwtY2FkYXN0cm8vRDpcXFByb2plY3RzXFxhbHRhLWdlc3Rhby0wNFxcTWFpblxcVjJcXEFsdGFHZXN0YW8uV2ViXFxhbHRhLWdlc3Rhby9zcmNcXGFwcFxcY29uZmlndXJhdGlvbnNcXGNvbXBvc2ljYW8tcmFjaWFsLWNhZGFzdHJvXFxjb21wb3NpY2FvLXJhY2lhbC1jYWRhc3Ryby5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29uZmlndXJhdGlvbnMvY29tcG9zaWNhby1yYWNpYWwtY2FkYXN0cm8vY29tcG9zaWNhby1yYWNpYWwtY2FkYXN0cm8uY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxtQkFBQTtFQUNBLG1CQUFBO0FDQ0o7O0FERUE7RUFDSSxjQUFBO0VBQ0EscUJBQUE7RUFDQSxtQkFBQTtFQUNBLFlBQUE7QUNDSjs7QURJRTtFQUNFLGFBQUE7RUFDQSxnQkFBQTtFQUlBLHlCQUFBO0VBQ0Esa0JBQUE7RUFDQSw0QkFBQTtFQUNBLDhCQUFBO0VBQ0EsNEJBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0FDSko7O0FET0U7RUFDRSxhQUFBO0VBQ0Esc0JBQUE7RUFDQSxXQUFBO0VBQ0Esa0JBQUE7QUNKSjs7QURPQTtFQUNJLFlBQUE7RUFDQSxnQkFBQTtBQ0pKOztBRE9FO0VBQ0UsNEJBQUE7QUNKSjs7QURPQTtFQUNJLFlBQUE7QUNKSjs7QURPRTtFQUNJLFlBQUE7QUNKTjs7QURPRTtFQUNFLGVBQUE7RUFDQSxpQkFBQTtFQUVBLDRCQUFBO0VBQ0EsdUJBQUE7RUFDQSxXQUFBO0VBQ0EsaUJBQUE7QUNMSjs7QURRRTtFQUNFLGVBQUE7RUFDQSxpQkFBQTtFQUVBLHVCQUFBO0FDTko7O0FEU0U7RUFFRSx5QkFBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLHdCQUFBO0VBQ0EsWUFBQTtBQ1BKOztBRFdFO0VBQ0Usd0JBQUE7RUFDQSxpQ0FBQTtFQUtBLGVBQUE7RUFDQSw0QkFBQTtBQ1pKOztBRGVFO0VBQ0UseUJBQUE7RUFDQSxvQ0FBQTtBQ1pKOztBRGVFO0VBQ0UscUJBQUE7RUFDQSx1Q0FBQTtBQ1pKIiwiZmlsZSI6InNyYy9hcHAvY29uZmlndXJhdGlvbnMvY29tcG9zaWNhby1yYWNpYWwtY2FkYXN0cm8vY29tcG9zaWNhby1yYWNpYWwtY2FkYXN0cm8uY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuY3VzdG9tLWRhdGUtY2xhc3Mge1xyXG4gICAgYmFja2dyb3VuZDogI0VDRjBGNTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XHJcbiAgfVxyXG5cclxuLmNoZWNrYm94LXNlY3Rpb24ge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgaGVpZ2h0OiA2MHB4O1xyXG4gIH1cclxuXHJcbiAgXHJcblxyXG4gIC5wYXJlbnQge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAvLyBtYXJnaW4tdG9wOiAtMjA1cHg7XHJcbiAgICAvLyBtYXJnaW4tbGVmdDogLThweDtcclxuICAgIC8vIG1hcmdpbi1yaWdodDogLThweDtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XHJcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICBwYWRkaW5nLXRvcDogMjBweCAhSW1wb3J0YW50O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDFweCAhSW1wb3J0YW50O1xyXG4gICAgbWFyZ2luLXRvcDogLTIycHggIUltcG9ydGFudDtcclxuICAgIG1hcmdpbi1sZWZ0OiAxNXB4O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xyXG4gIH1cclxuXHJcbiAgLmNvbHVtbntcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgfVxyXG5cclxuLmxlZnQge1xyXG4gICAgd2lkdGg6IDEyOHB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IDRweDtcclxuICB9XHJcblxyXG4gIC5yaWdodCB7XHJcbiAgICBwYWRkaW5nLXRvcDogMTBweCAhSW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbi5jZW50ZXJ7XHJcbiAgICB3aWR0aDogMTc1cHg7XHJcbiAgfVxyXG5cclxuICAubWlkbGxle1xyXG4gICAgICB3aWR0aDogMTIwcHg7XHJcbiAgfVxyXG5cclxuICAuaGVhZGVye1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XHJcbiAgICAvLyBtYXJnaW4tYm90dG9tOiAtMTJweDtcclxuICAgIG1hcmdpbi10b3A6IC0yOHB4ICFJbXBvcnRhbnQ7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICAgIHdpZHRoOiAzMHB4O1xyXG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbiAgfVxyXG5cclxuICAuc3ViLWhlYWRlcntcclxuICAgIGZvbnQtc2l6ZTogMTRweDsgXHJcbiAgICBtYXJnaW4tdG9wOiAtMTZweDtcclxuICAgIFxyXG4gICAgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtcclxuICB9XHJcblxyXG4gIC5ib3JkYXtcclxuICAgIFxyXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjY2NjYztcclxuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICAgIHBhZGRpbmc6IDVweDtcclxuICAgIG1hcmdpbjogMTVweCA1cHggNXB4IDVweDtcclxuICAgIHdpZHRoOiA0MDBweDtcclxuICAgIFxyXG4gIH1cclxuXHJcbiAgLmV4YW1wbGUtcmFkaW8tZ3JvdXAge1xyXG4gICAgZGlzcGxheTogZmxleCAhSW1wb3J0YW50O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhSW1wb3J0YW50O1xyXG4gICAgLy8gbWFyZ2luOiAwO1xyXG4gICAgLy8gbWFyZ2luLXRvcDogNXB4O1xyXG4gICAgLy8gcGFkZGluZzogMDtcclxuICAgIC8vIHBhZGRpbmc6IDExcHg7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICBtYXJnaW4tbGVmdDogMTBweCAhSW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmlzRGlzYWJsZWQge1xyXG4gICAgY29sb3I6ICNjZWNlY2UgIUltcG9ydGFudDtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlY2VjZWMgIUltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5oYXNFcnJvcntcclxuICAgIGNvbG9yOiByZWQgIUltcG9ydGFudDtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZWQgIUltcG9ydGFudDtcclxuICB9IiwiLmN1c3RvbS1kYXRlLWNsYXNzIHtcbiAgYmFja2dyb3VuZDogI0VDRjBGNTtcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbn1cblxuLmNoZWNrYm94LXNlY3Rpb24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBoZWlnaHQ6IDYwcHg7XG59XG5cbi5wYXJlbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjY2NjO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHBhZGRpbmctdG9wOiAyMHB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctYm90dG9tOiAxcHggIWltcG9ydGFudDtcbiAgbWFyZ2luLXRvcDogLTIycHggIWltcG9ydGFudDtcbiAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gIG1hcmdpbi1yaWdodDogMTVweDtcbn1cblxuLmNvbHVtbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsb2F0OiBsZWZ0O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbi5sZWZ0IHtcbiAgd2lkdGg6IDEyOHB4O1xuICBtYXJnaW4tbGVmdDogNHB4O1xufVxuXG4ucmlnaHQge1xuICBwYWRkaW5nLXRvcDogMTBweCAhaW1wb3J0YW50O1xufVxuXG4uY2VudGVyIHtcbiAgd2lkdGg6IDE3NXB4O1xufVxuXG4ubWlkbGxlIHtcbiAgd2lkdGg6IDEyMHB4O1xufVxuXG4uaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgbWFyZ2luLXRvcDogLTI4cHggIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHdpZHRoOiAzMHB4O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbn1cblxuLnN1Yi1oZWFkZXIge1xuICBmb250LXNpemU6IDE0cHg7XG4gIG1hcmdpbi10b3A6IC0xNnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cblxuLmJvcmRhIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjY2NjYztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBwYWRkaW5nOiA1cHg7XG4gIG1hcmdpbjogMTVweCA1cHggNXB4IDVweDtcbiAgd2lkdGg6IDQwMHB4O1xufVxuXG4uZXhhbXBsZS1yYWRpby1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDE0cHg7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5pc0Rpc2FibGVkIHtcbiAgY29sb3I6ICNjZWNlY2UgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2VjZWNlYyAhaW1wb3J0YW50O1xufVxuXG4uaGFzRXJyb3Ige1xuICBjb2xvcjogcmVkICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZWQgIWltcG9ydGFudDtcbn0iXX0= */\"","import { Component, OnInit, Inject, ViewChild } from '@angular/core';\r\nimport { MatDialog, MatInput, MatRadioButton, MatSelect } from '@angular/material';\r\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\r\nimport { DialogoConfirmacao } from 'src/app/_utils/dialogo-confirmacao/dialogo-confirmacao.component';\r\n\r\n@Component({\r\n selector: 'app-composicao-racial-cadastro',\r\n templateUrl: './composicao-racial-cadastro.component.html',\r\n styleUrls: ['./composicao-racial-cadastro.component.scss'],\r\n})\r\nexport class ComposicaoRacialCadastroComponent implements OnInit {\r\n\r\n @ViewChild('tipo0', { static: false }) tipo0: MatRadioButton;\r\n @ViewChild('tipo1', { static: false }) tipo1: MatRadioButton;\r\n @ViewChild('ativo0', { static: false }) ativo0: MatRadioButton;\r\n @ViewChild('ativo1', { static: false }) ativo1: MatRadioButton;\r\n\r\n @ViewChild('percentual1', { static: false }) percentual1: MatInput;\r\n @ViewChild('percentual2', { static: false }) percentual2: MatInput;\r\n @ViewChild('percentual3', { static: false }) percentual3: MatInput;\r\n @ViewChild('percentual4', { static: false }) percentual4: MatInput;\r\n @ViewChild('percentual5', { static: false }) percentual5: MatInput;\r\n\r\n @ViewChild('raca1', { static: false }) private raca1: MatSelect;\r\n @ViewChild('raca2', { static: false }) private raca2: MatSelect;\r\n @ViewChild('raca3', { static: false }) private raca3: MatSelect;\r\n @ViewChild('raca4', { static: false }) private raca4: MatSelect;\r\n @ViewChild('raca5', { static: false }) private raca5: MatSelect;\r\n\r\n @ViewChild('desc', { static: false }) private desc: MatInput;\r\n\r\n hasChanges = false;\r\n desabilita = false;\r\n hasError = false;\r\n opcaoTipoPura = false;\r\n desc1: string;\r\n perc1: string;\r\n perc2: string;\r\n perc3: string;\r\n perc4: string;\r\n perc5: string;\r\n rac1: string;\r\n rac2: string;\r\n rac3: string;\r\n rac4: string;\r\n rac5: string;\r\n\r\n percTotal = 0;\r\n msg = '';\r\n msgPercentual = '';\r\n msgTotal: string;\r\n msgPreenchimento = '';\r\n msgValidFill = '';\r\n\r\n msgRaca = '';\r\n racas = [];\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private dialogRef: MatDialogRef,\r\n public dialog: MatDialog) { }\r\n\r\n ngOnInit() { }\r\n\r\n cancel() {\r\n this.dialogRef.close({ data: 'cancelar' });\r\n }\r\n\r\n confirm() {\r\n this.msgValidFill = '';\r\n\r\n let validacao = this.validFill();\r\n\r\n if (validacao) {\r\n validacao = this.validateComposition();\r\n }\r\n\r\n if (validacao) {\r\n this.dialogRef.close({ tipo0: this.tipo0.checked\r\n , ativo0: this.ativo0.checked\r\n , racialCompositionId: this.data.racialCompositionId\r\n });\r\n } else {\r\n this.openConfirmationDialog();\r\n }\r\n }\r\n\r\n public openConfirmationDialog() {\r\n\r\n const dialogRef1 = this.dialog.open(DialogoConfirmacao, {\r\n data: {\r\n // message: 'Existem campos para serem preenchidos! ',\r\n message: this.msgValidFill !== '' ? this.msgValidFill : 'Existem campos para serem preenchidos! ',\r\n buttonText: {\r\n ok: 'Cancelar Tudo',\r\n cancel: 'Corrigir'\r\n }\r\n }\r\n });\r\n dialogRef1.afterClosed().subscribe((confirmed: boolean) => {\r\n if (confirmed) {\r\n this.dialogRef.close({ data: 'cancelar' });\r\n }\r\n });\r\n\r\n }\r\n\r\n public validFill() {\r\n if ( this.tipo1.checked === true ) {\r\n if (this.data.racialCompositionId.cdraca1 !== null\r\n && this.data.racialCompositionId.cdraca1 !== ''\r\n && this.data.racialCompositionId.cdraca1 !== undefined) {\r\n if (this.data.racialCompositionId.cdraca2 !== null\r\n && this.data.racialCompositionId.cdraca2 !== ''\r\n && this.data.racialCompositionId.cdraca2 !== undefined) {\r\n if (this.data.racialCompositionId.percentual1 !== null\r\n && this.data.racialCompositionId.percentual1 !== ''\r\n && this.data.racialCompositionId.percentual1 !== undefined) {\r\n if (this.data.racialCompositionId.percentual2 !== null\r\n && this.data.racialCompositionId.percentual2 !== ''\r\n && this.data.racialCompositionId.percentual2 !== undefined) {\r\n return this.validFillOthers();\r\n } else {\r\n this.msgValidFill = 'Preencha o campo Percentual 2.';\r\n return false;\r\n }\r\n } else {\r\n this.msgValidFill = 'Preencha o campo Percentual 1.';\r\n return false;\r\n }\r\n } else {\r\n this.msgValidFill = 'Preencha o campo Raca 2.';\r\n return false;\r\n }\r\n } else {\r\n this.msgValidFill = 'Preecha o campo Raca 1.';\r\n return false;\r\n }\r\n } else {\r\n if ( this.tipo1.checked === false ) {\r\n if (this.data.racialCompositionId.cdraca1 !== null\r\n && this.data.racialCompositionId.cdraca1 !== ''\r\n && this.data.racialCompositionId.cdraca1 !== undefined) {\r\n if (this.data.racialCompositionId.percentual1 !== null\r\n && this.data.racialCompositionId.percentual1 !== ''\r\n && this.data.racialCompositionId.percentual1 !== undefined) {\r\n if (this.data.racialCompositionId.percentual1 === 100) {\r\n return true;\r\n } else {\r\n this.msgValidFill = 'O percentual da Raça deve ser 100.';\r\n return false;\r\n }\r\n } else {\r\n this.msgValidFill = 'Preencha o campo percentual da Raça.';\r\n return false;\r\n }\r\n } else {\r\n this.msgValidFill = 'Escolha uma raça e preencha o campo Percentual 1.';\r\n return false;\r\n }\r\n } else { return false; }\r\n }\r\n }\r\n\r\n public validFillOthers() {\r\n if ( this.tipo1.checked === true ) {\r\n if (this.data.racialCompositionId.cdraca3 !== null\r\n && this.data.racialCompositionId.cdraca3 !== ''\r\n && this.data.racialCompositionId.cdraca3 !== undefined) {\r\n if (this.data.racialCompositionId.percentual3 === null\r\n || this.data.racialCompositionId.percentual3 === ''\r\n || this.data.racialCompositionId.percentual3 === undefined) {\r\n this.msgValidFill = 'O percentual da Raça 3 deve ser preenchido.';\r\n return false;\r\n }\r\n }\r\n if (this.data.racialCompositionId.cdraca4 !== null\r\n && this.data.racialCompositionId.cdraca4 !== ''\r\n && this.data.racialCompositionId.cdraca4 !== undefined) {\r\n if (this.data.racialCompositionId.percentual4 === null\r\n || this.data.racialCompositionId.percentual4 === ''\r\n || this.data.racialCompositionId.percentual4 === undefined) {\r\n this.msgValidFill = 'O percentual da Raça 4 deve ser preenchido.';\r\n return false;\r\n }\r\n }\r\n\r\n if (this.data.racialCompositionId.cdraca5 !== null\r\n && this.data.racialCompositionId.cdraca5 !== ''\r\n && this.data.racialCompositionId.cdraca5 !== undefined) {\r\n if (this.data.racialCompositionId.percentual5 === null\r\n || this.data.racialCompositionId.percentual5 === ''\r\n || this.data.racialCompositionId.percentual5 === undefined) {\r\n this.msgValidFill = 'O percentual da Raça 3 deve ser preenchido.';\r\n return false;\r\n }\r\n }\r\n\r\n if (this.data.racialCompositionId.percentual3 !== null\r\n && this.data.racialCompositionId.percentual3 !== ''\r\n && this.data.racialCompositionId.percentual3 !== undefined) {\r\n if (this.data.racialCompositionId.cdraca3 === null\r\n || this.data.racialCompositionId.cdraca3 === ''\r\n || this.data.racialCompositionId.cdraca3 === undefined) {\r\n this.msgValidFill = 'O campo Raca 3 deve ser preenchido.';\r\n return false;\r\n }\r\n }\r\n\r\n if (this.data.racialCompositionId.percentual4 !== null\r\n && this.data.racialCompositionId.percentual4 !== ''\r\n && this.data.racialCompositionId.percentual4 !== undefined) {\r\n if (this.data.racialCompositionId.cdraca4 === null\r\n || this.data.racialCompositionId.cdraca4 === ''\r\n || this.data.racialCompositionId.cdraca4 === undefined) {\r\n this.msgValidFill = 'O campo Raca 4 deve ser preenchido.';\r\n return false;\r\n }\r\n }\r\n\r\n if (this.data.racialCompositionId.percentual5 !== null\r\n && this.data.racialCompositionId.percentual5 !== ''\r\n && this.data.racialCompositionId.percentual5 !== undefined) {\r\n if (this.data.racialCompositionId.cdraca5 === null\r\n || this.data.racialCompositionId.cdraca5 === ''\r\n || this.data.racialCompositionId.cdraca5 === undefined) {\r\n this.msgValidFill = 'O campo Raca 5 deve ser preenchido.';\r\n return false;\r\n }\r\n }\r\n\r\n\r\n // verifica totais percentuais\r\n let percItem1 = 0;\r\n let percItem2 = 0;\r\n let percItem3 = 0;\r\n let percItem4 = 0;\r\n let percItem5 = 0;\r\n let percItem = 0;\r\n\r\n percItem1 = parseFloat(this.data.racialCompositionId.percentual1 !== null\r\n && this.data.racialCompositionId.percentual1 !== undefined\r\n && this.data.racialCompositionId.percentual1 !== '' ? this.data.racialCompositionId.percentual1 : 0);\r\n percItem2 = parseFloat(this.data.racialCompositionId.percentual2 !== null\r\n && this.data.racialCompositionId.percentual2 !== undefined\r\n && this.data.racialCompositionId.percentual2 !== '' ? this.data.racialCompositionId.percentual2 : 0);\r\n percItem3 = parseFloat(this.data.racialCompositionId.percentual3 !== null\r\n && this.data.racialCompositionId.percentual3 !== undefined\r\n && this.data.racialCompositionId.percentual3 !== '' ? this.data.racialCompositionId.percentual3 : 0);\r\n percItem4 = parseFloat(this.data.racialCompositionId.percentual4 !== null\r\n && this.data.racialCompositionId.percentual4 !== undefined\r\n && this.data.racialCompositionId.percentual4 !== '' ? this.data.racialCompositionId.percentual4 : 0);\r\n percItem5 = parseFloat(this.data.racialCompositionId.percentual5 !== null\r\n && this.data.racialCompositionId.percentual5 !== undefined\r\n && this.data.racialCompositionId.percentual5 !== '' ? this.data.racialCompositionId.percentual5 : 0);\r\n\r\n percItem = (percItem1 + percItem2 + percItem3 + percItem4 + percItem5);\r\n\r\n if (percItem < 100) {\r\n this.msgValidFill = 'A soma dos percentuais não Totalizam 100.';\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n validacaoTipos() {\r\n if (this.data.racialCompositionId.padrao === 0\r\n || this.data.racialCompositionId.padrao === undefined\r\n || this.data.racialCompositionId.padrao === null\r\n ) {\r\n\r\n // verifica se o tipo é PURA\r\n if ( this.tipo0 === undefined ) {\r\n this.validGeral();\r\n } else {\r\n if ( this.tipo0.checked === true ) {\r\n this.getValuesFields();\r\n this.clearFields();\r\n this.desabilita = true;\r\n this.clearMessages();\r\n } else {\r\n this.clearMessages();\r\n this.setValuesFields();\r\n this.desabilita = false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n validGeral() {\r\n // valida percentuais - se o valor lançado como percentual é válido\r\n this.perc1 = this.data.racialCompositionId.percentual1;\r\n this.perc2 = this.data.racialCompositionId.percentual2;\r\n this.perc3 = this.data.racialCompositionId.percentual3;\r\n this.perc4 = this.data.racialCompositionId.percentual4;\r\n this.perc5 = this.data.racialCompositionId.percentual5;\r\n\r\n this.validPerc(parseFloat(this.perc1), 'Percentual1');\r\n this.validPerc(parseFloat(this.perc2), 'Percentual2');\r\n this.validPerc(parseFloat(this.perc3), 'Percentual3');\r\n this.validPerc(parseFloat(this.perc4), 'Percentual4');\r\n this.validPerc(parseFloat(this.perc5), 'Percentual5');\r\n\r\n // preenche o campo descrição\r\n this.getDescription();\r\n\r\n // verifica se total percentuais não ultrapassou 100%\r\n this.validTotalPerc();\r\n }\r\n\r\n hasValue(statusValue) {\r\n if ( statusValue.trim() !== '' && statusValue !== undefined ) {\r\n this.hasChanges = true;\r\n } else {\r\n this.hasChanges = false;\r\n }\r\n }\r\n\r\n public getValuesFields() {\r\n this.desc = this.data.racialCompositionId.descricao;\r\n\r\n this.rac1 = this.data.racialCompositionId.cdraca1;\r\n this.rac2 = this.data.racialCompositionId.cdraca2;\r\n this.rac3 = this.data.racialCompositionId.cdraca3;\r\n this.rac4 = this.data.racialCompositionId.cdraca4;\r\n this.rac5 = this.data.racialCompositionId.cdraca5;\r\n\r\n this.perc1 = this.data.racialCompositionId.percentual1;\r\n this.perc2 = this.data.racialCompositionId.percentual2;\r\n this.perc3 = this.data.racialCompositionId.percentual3;\r\n this.perc4 = this.data.racialCompositionId.percentual4;\r\n this.perc5 = this.data.racialCompositionId.percentual5;\r\n }\r\n\r\n setValuesFields() {\r\n\r\n this.data.racialCompositionId.descricao = this.desc;\r\n\r\n this.data.racialCompositionId.cdraca1 = this.rac1 !== '' ? this.rac1 : '';\r\n this.data.racialCompositionId.cdraca2 = this.rac2 !== '' ? this.rac2 : '';\r\n this.data.racialCompositionId.cdraca3 = this.rac3 !== '' ? this.rac3 : '';\r\n this.data.racialCompositionId.cdraca4 = this.rac4 !== '' ? this.rac4 : '';\r\n this.data.racialCompositionId.cdraca5 = this.rac5 !== '' ? this.rac5 : '';\r\n\r\n if (this.perc1 !== '') {\r\n this.data.racialCompositionId.percentual1 = this.perc1;\r\n this.validPerc(parseFloat(this.perc1), 'Percentual1');\r\n }\r\n if (this.perc2 !== '') {\r\n this.data.racialCompositionId.percentual2 = this.perc2;\r\n this.validPerc(parseFloat(this.perc2), 'Percentual2');\r\n }\r\n if (this.perc3 !== '') {\r\n this.data.racialCompositionId.percentual3 = this.perc3;\r\n this.validPerc(parseFloat(this.perc3), 'Percentual3');\r\n }\r\n if (this.perc4 !== '') {\r\n this.data.racialCompositionId.percentual4 = this.perc4;\r\n this.validPerc(parseFloat(this.perc4), 'Percentual4');\r\n }\r\n if (this.perc5 !== '') {\r\n this.data.racialCompositionId.percentual5 = this.perc5;\r\n this.validPerc(parseFloat(this.perc5), 'Percentual5');\r\n }\r\n }\r\n\r\n public clearAllFields() {\r\n\r\n this.data.racialCompositionId.cdraca1 = null;\r\n this.data.racialCompositionId.cdraca2 = null;\r\n this.data.racialCompositionId.cdraca3 = null;\r\n this.data.racialCompositionId.cdraca4 = null;\r\n this.data.racialCompositionId.cdraca5 = null;\r\n\r\n this.data.racialCompositionId.percentual1 = null;\r\n this.data.racialCompositionId.percentual2 = null;\r\n this.data.racialCompositionId.percentual3 = null;\r\n this.data.racialCompositionId.percentual4 = null;\r\n this.data.racialCompositionId.percentual5 = null;\r\n\r\n this.data.racialCompositionId.descricao = '';\r\n\r\n this.clearMessages();\r\n }\r\n\r\n public clearFields() {\r\n\r\n this.data.racialCompositionId.cdraca2 = null;\r\n this.data.racialCompositionId.cdraca3 = null;\r\n this.data.racialCompositionId.cdraca4 = null;\r\n this.data.racialCompositionId.cdraca5 = null;\r\n\r\n this.data.racialCompositionId.percentual1 = null;\r\n this.data.racialCompositionId.percentual2 = null;\r\n this.data.racialCompositionId.percentual3 = null;\r\n this.data.racialCompositionId.percentual4 = null;\r\n this.data.racialCompositionId.percentual5 = null;\r\n\r\n this.data.racialCompositionId.descricao = '';\r\n\r\n this.getDescription();\r\n }\r\n\r\n public getDescription() {\r\n const sigla1 = this.data.raca.find(x => x.cdraca === this.data.racialCompositionId.cdraca1);\r\n const sigla2 = this.data.raca.find(x => x.cdraca === this.data.racialCompositionId.cdraca2);\r\n const sigla3 = this.data.raca.find(x => x.cdraca === this.data.racialCompositionId.cdraca3);\r\n const sigla4 = this.data.raca.find(x => x.cdraca === this.data.racialCompositionId.cdraca4);\r\n const sigla5 = this.data.raca.find(x => x.cdraca === this.data.racialCompositionId.cdraca5);\r\n\r\n\r\n let total = 0;\r\n total += parseFloat(this.data.racialCompositionId.cdraca1) > 0 ? 1 : 0;\r\n total += parseFloat(this.data.racialCompositionId.cdraca2) > 0 ? 1 : 0;\r\n total += parseFloat(this.data.racialCompositionId.cdraca3) > 0 ? 1 : 0;\r\n total += parseFloat(this.data.racialCompositionId.cdraca4) > 0 ? 1 : 0;\r\n total += parseFloat(this.data.racialCompositionId.cdraca5) > 0 ? 1 : 0;\r\n\r\n const fracao1 = this.fracaoRaca(parseFloat(this.data.racialCompositionId.percentual1));\r\n const fracao2 = this.fracaoRaca(parseFloat(this.data.racialCompositionId.percentual2));\r\n const fracao3 = this.fracaoRaca(parseFloat(this.data.racialCompositionId.percentual3));\r\n const fracao4 = this.fracaoRaca(parseFloat(this.data.racialCompositionId.percentual4));\r\n const fracao5 = this.fracaoRaca(parseFloat(this.data.racialCompositionId.percentual5));\r\n\r\n let nome = '';\r\n\r\n if ( total === 1 ) {\r\n nome = sigla1.descricao;\r\n } else {\r\n if ( total >= 2 ) {\r\n nome = fracao1 + ' ' + sigla1.sigla;\r\n nome = nome + ', ' + fracao2 + ' ' + sigla2.sigla;\r\n if ( total >= 3 ) {\r\n nome = nome + ', ' + fracao3 + ' ' + sigla3.sigla;\r\n if ( total >= 4 ) {\r\n nome = nome + ', ' + fracao4 + ' ' + sigla4.sigla;\r\n if ( total === 5 ) {\r\n nome = nome + ', ' + fracao5 + ' ' + sigla5.sigla;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n this.data.racialCompositionId.descricao = nome;\r\n }\r\n\r\n public validPerc(value: number, field: string) {\r\n const num = value / 0.390625;\r\n const setField = field;\r\n\r\n // Parte inteira:\r\n const int = Math.trunc(num);\r\n\r\n // Parte decimal ('0' por padrão).\r\n const decimal = num - int;\r\n\r\n if (decimal > 0) {\r\n this.hasError = true;\r\n const indice = this.msgPercentual.indexOf(setField);\r\n if (indice === 0 && this.msgPercentual.length > 43) { this.msgPercentual = this.msgPercentual.substring(43); }\r\n if (indice === 0 && this.msgPercentual.length === 43) { this.msgPercentual = ''; }\r\n if (indice >= 43) { this.msgPercentual = this.msgPercentual.substring(indice - 1, 0)\r\n + this.msgPercentual.substring(this.msgPercentual.length, indice + 43); }\r\n this.msgPercentual += setField + ' está com valor lançado errado! ';\r\n\r\n return false;\r\n } else {\r\n const indice = this.msgPercentual.indexOf(setField);\r\n if (indice === 0 ) { this.msgPercentual = this.msgPercentual.substring(43); }\r\n if (indice >= 43) { this.msgPercentual = this.msgPercentual.substring(indice - 1, 0)\r\n + this.msgPercentual.substring(this.msgPercentual.length, indice + 43); }\r\n if (this.msgPercentual === '') { this.hasError = false; }\r\n\r\n this.getDescription();\r\n\r\n return true;\r\n }\r\n }\r\n\r\n public validTotalPerc() {\r\n let percItem1 = 0;\r\n let percItem2 = 0;\r\n let percItem3 = 0;\r\n let percItem4 = 0;\r\n let percItem5 = 0;\r\n let percItem = 0;\r\n\r\n percItem1 = parseFloat(this.data.racialCompositionId.percentual1 !== null && this.data.racialCompositionId.percentual1 !== undefined\r\n && this.data.racialCompositionId.percentual1 !== '' ? this.data.racialCompositionId.percentual1 : 0);\r\n percItem2 = parseFloat(this.data.racialCompositionId.percentual2 !== null && this.data.racialCompositionId.percentual2 !== undefined\r\n && this.data.racialCompositionId.percentual2 !== '' ? this.data.racialCompositionId.percentual2 : 0);\r\n percItem3 = parseFloat(this.data.racialCompositionId.percentual3 !== null && this.data.racialCompositionId.percentual3 !== undefined\r\n && this.data.racialCompositionId.percentual3 !== '' ? this.data.racialCompositionId.percentual3 : 0);\r\n percItem4 = parseFloat(this.data.racialCompositionId.percentual4 !== null && this.data.racialCompositionId.percentual4 !== undefined\r\n && this.data.racialCompositionId.percentual4 !== '' ? this.data.racialCompositionId.percentual4 : 0);\r\n percItem5 = parseFloat(this.data.racialCompositionId.percentual5 !== null && this.data.racialCompositionId.percentual5 !== undefined\r\n && this.data.racialCompositionId.percentual5 !== '' ? this.data.racialCompositionId.percentual5 : 0);\r\n\r\n if (percItem1 > 0) { this.validPerc(percItem1, 'Percentual1'); }\r\n if (percItem2 > 0) { this.validPerc(percItem2, 'Percentual2'); }\r\n if (percItem3 > 0) { this.validPerc(percItem3, 'Percentual3'); }\r\n if (percItem4 > 0) { this.validPerc(percItem4, 'Percentual4'); }\r\n if (percItem5 > 0) { this.validPerc(percItem5, 'Percentual5'); }\r\n\r\n this.validBreed();\r\n\r\n percItem = (percItem1 + percItem2 + percItem3 + percItem4 + percItem5);\r\n\r\n if (percItem > 100) {\r\n this.msgTotal = 'Erro! Soma dos Percentuais acima de 100. ';\r\n if (!this.hasError) { this.hasError = true; }\r\n return false;\r\n } else {\r\n this.msgTotal = '';\r\n return true;\r\n }\r\n }\r\n\r\n public clearMessages() {\r\n this.msgTotal = '';\r\n this.msgPercentual = '';\r\n this.hasError = false;\r\n }\r\n\r\n public validBreed() {\r\n const erro = this.hasError;\r\n this.racas = [];\r\n\r\n if ( this.data.racialCompositionId.cdraca1 !== null && this.data.racialCompositionId.cdraca1 !== undefined ) {\r\n const tem = this.racas.includes(this.data.racialCompositionId.cdraca1);\r\n if (tem) {\r\n this.msgRaca = 'Erro! Existe(m) raça(s) repetida(s). ';\r\n this.hasError = true;\r\n return false;\r\n } else {\r\n this.racas.push(this.data.racialCompositionId.cdraca1);\r\n }\r\n }\r\n\r\n if ( this.data.racialCompositionId.cdraca2 !== null && this.data.racialCompositionId.cdraca2 !== undefined ) {\r\n const tem = this.racas.includes(this.data.racialCompositionId.cdraca2);\r\n if (tem) {\r\n this.msgRaca = 'Erro! Existe(m) raça(s) repetida(s). ';\r\n this.hasError = true;\r\n return false;\r\n } else {\r\n this.racas.push(this.data.racialCompositionId.cdraca2);\r\n }\r\n }\r\n\r\n if ( this.data.racialCompositionId.cdraca3 !== null && this.data.racialCompositionId.cdraca3 !== undefined ) {\r\n const tem = this.racas.includes(this.data.racialCompositionId.cdraca3);\r\n if (tem) {\r\n this.msgRaca = 'Erro! Existe(m) raça(s) repetida(s). ';\r\n this.hasError = true;\r\n return false;\r\n } else {\r\n this.racas.push(this.data.racialCompositionId.cdraca3);\r\n }\r\n }\r\n\r\n if ( this.data.racialCompositionId.cdraca4 !== null && this.data.racialCompositionId.cdraca4 !== undefined ) {\r\n const tem = this.racas.includes(this.data.racialCompositionId.cdraca4);\r\n if (tem) {\r\n this.msgRaca = 'Erro! Existe(m) raça(s) repetida(s). ';\r\n this.hasError = true;\r\n return false;\r\n } else {\r\n this.racas.push(this.data.racialCompositionId.cdraca4);\r\n }\r\n }\r\n\r\n if ( this.data.racialCompositionId.cdraca5 !== null && this.data.racialCompositionId.cdraca5 !== undefined ) {\r\n const tem = this.racas.includes(this.data.racialCompositionId.cdraca5);\r\n if (tem) {\r\n this.msgRaca = 'Erro! Existe(m) raça(s) repetida(s). ';\r\n this.hasError = true;\r\n return false;\r\n } else {\r\n this.racas.push(this.data.racialCompositionId.cdraca5);\r\n }\r\n }\r\n\r\n this.msgRaca = '';\r\n\r\n if (!erro) { this.hasError = false; }\r\n\r\n return true;\r\n }\r\n\r\n validateComposition() {\r\n if (this.data.racialCompositionId.descricao !== null && this.data.racialCompositionId.descricao !== undefined) {\r\n\r\n const description = this.data.racialCompositionId.descricao.toUpperCase();\r\n const array = new Array();\r\n const raca = description.split(', ');\r\n\r\n for (let i = 0; i < 4; i++) {\r\n if (raca[i] !== undefined) {\r\n array.push(raca[i]);\r\n }\r\n }\r\n\r\n let total = 0;\r\n let tem = false;\r\n\r\n for (const item of this.data.compositionListAll) {\r\n if ( item.cdcomposicaoracial !== this.data.racialCompositionId.cdcomposicaoracial\r\n && item.descricao.toUpperCase() === this.data.racialCompositionId.descricao.toUpperCase() ) {\r\n this.msgValidFill = 'Esta descrição já existe no cadastro.';\r\n return false;\r\n }\r\n\r\n const desc = item.descricao.toUpperCase();\r\n const racas = desc.split(', ');\r\n\r\n if (racas.length === raca.length) {\r\n for (let i = 0; i < 4; i++) {\r\n tem = item.descricao.toUpperCase().includes(array[i]) ? true : false;\r\n if (tem) {\r\n total = total + 1;\r\n }\r\n\r\n if (total === raca.length) {\r\n if ( item.cdcomposicaoracial === this.data.racialCompositionId.cdcomposicaoracial) {\r\n return true;\r\n } else {\r\n this.msgValidFill = 'A composição racial informada já existe! Escolha outra.';\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n }\r\n\r\n public validaRacas() {\r\n\r\n this.racas = [];\r\n\r\n if (this.raca1.value !== '' && this.raca1.value !== undefined) {\r\n this.racas.push(this.raca1.value);\r\n }\r\n\r\n if (this.raca2.value !== '' && this.raca2.value !== undefined) {\r\n const tem = this.racas.includes(this.raca2.value);\r\n if (tem) {\r\n this.msgRaca = 'Erro! Existe(m) raça(s) repetida(s). ';\r\n return false;\r\n } else {\r\n this.racas.push(this.raca2.value);\r\n }\r\n }\r\n if (this.raca3.value !== '' && this.raca3.value !== undefined) {\r\n const tem = this.racas.includes(this.raca3.value);\r\n if (tem) {\r\n this.msgRaca = 'Erro! Existe(m) raça(s) repetida(s). ';\r\n return false;\r\n } else {\r\n this.racas.push(this.raca3.value);\r\n }\r\n }\r\n if (this.raca4.value !== '' && this.raca4.value !== undefined) {\r\n const tem = this.racas.includes(this.raca4.value);\r\n if (tem) {\r\n this.msgRaca = 'Erro! Existe(m) raça(s) repetida(s). ';\r\n return false;\r\n } else {\r\n this.racas.push(this.raca4.value);\r\n }\r\n }\r\n if (this.raca5.value !== '' && this.raca5.value !== undefined) {\r\n const tem = this.racas.includes(this.raca5.value);\r\n if (tem) {\r\n this.msgRaca = 'Erro! Existe(m) raça(s) repetida(s). ';\r\n return false;\r\n } else {\r\n this.racas.push(this.raca5.value);\r\n }\r\n }\r\n\r\n this.msgRaca = '';\r\n\r\n return true;\r\n }\r\n\r\n // converte o valor percentual em fracao para incluir na descricao\r\n public fracaoRaca(APercentual: number) {\r\n let num: number;\r\n let den: number;\r\n\r\n den = 1;\r\n\r\n while (den <= 256) {\r\n num = (APercentual * den) / 100;\r\n if ( (num < den) && (Math.trunc(num) === num) ) {\r\n return num + '/' + den;\r\n }\r\n den = den * 2;\r\n }\r\n }\r\n}\r\n","export default \".required {\\n color: red;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29uZmlndXJhdGlvbnMvaW5zZW1pbmFkb3ItY2FkYXN0cm8vRDpcXFByb2plY3RzXFxhbHRhLWdlc3Rhby0wNFxcTWFpblxcVjJcXEFsdGFHZXN0YW8uV2ViXFxhbHRhLWdlc3Rhby9zcmNcXGFwcFxcY29uZmlndXJhdGlvbnNcXGluc2VtaW5hZG9yLWNhZGFzdHJvXFxpbnNlbWluYWRvci1jYWRhc3Ryby5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29uZmlndXJhdGlvbnMvaW5zZW1pbmFkb3ItY2FkYXN0cm8vaW5zZW1pbmFkb3ItY2FkYXN0cm8uY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxVQUFBO0FDQ0oiLCJmaWxlIjoic3JjL2FwcC9jb25maWd1cmF0aW9ucy9pbnNlbWluYWRvci1jYWRhc3Ryby9pbnNlbWluYWRvci1jYWRhc3Ryby5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yZXF1aXJlZCB7XHJcbiAgICBjb2xvcjogcmVkO1xyXG4gICB9IiwiLnJlcXVpcmVkIHtcbiAgY29sb3I6IHJlZDtcbn0iXX0= */\"","import { Component, OnInit, Inject } from '@angular/core';\r\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\r\nimport { ConfiguracoesService } from 'src/app/_services/configuracoes.service';\r\nimport { Inseminador } from 'src/models/configuracoes/inseminador.model';\r\n\r\n@Component({\r\n selector: 'app-inseminador-cadastro',\r\n templateUrl: './inseminador-cadastro.component.html',\r\n styleUrls: ['./inseminador-cadastro.component.scss'],\r\n })\r\n\r\nexport class InseminadorCadastroComponent implements OnInit {\r\n\r\n validInseminator: any;\r\n message = '';\r\n hasChanges = false;\r\n\r\n inseminatorListAll: Array;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private dialogRef: MatDialogRef,\r\n private inseminatorService: ConfiguracoesService) { }\r\n\r\n ngOnInit() {\r\n this.inseminatorListAll = [];\r\n this.getAllInseminator();\r\n }\r\n\r\n getAllInseminator() {\r\n this.inseminatorService.getInseminadores().subscribe((response) => {\r\n this.inseminatorListAll = response;\r\n });\r\n }\r\n\r\n cancel() {\r\n this.dialogRef.close({ data: 'cancelar' });\r\n }\r\n\r\n confirm() {\r\n if (this.validateInseminator()) {\r\n this.save();\r\n this.dialogRef.close({ inseminatorId: this.data.inseminatorId });\r\n }\r\n }\r\n\r\n hasValue(statusValue) {\r\n if ( statusValue.trim() !== '' && statusValue !== undefined ) {\r\n this.hasChanges = true;\r\n } else {\r\n this.hasChanges = false;\r\n }\r\n }\r\n\r\n save() {\r\n const hasCdFarm =\r\n this.data.inseminatorId.cdfazenda !== null\r\n && this.data.inseminatorId.cdfazenda !== undefined;\r\n\r\n const hasValidInseminator =\r\n this.validInseminator.cdinseminador !== null\r\n && this.validInseminator.cdinseminador !== undefined\r\n && this.validInseminator.cdinseminador !== 0;\r\n\r\n this.data.inseminatorId.cdfazenda = hasCdFarm ? this.data.inseminatorId.cdfazenda : this.inseminatorService.getCdFazenda();\r\n\r\n if (hasValidInseminator) {\r\n this.inseminatorService.atualizaInseminador(this.data.inseminatorId).subscribe((response: Array) => {\r\n if (response != null) {\r\n // this.data.inseminators = response;\r\n }\r\n });\r\n } else {\r\n if (this.message !== '') {\r\n this.message = '';\r\n } else {\r\n this.inseminatorService.insereInseminador(this.data.inseminatorId).subscribe((response) => {\r\n // this.data.inseminators = response;\r\n });\r\n }\r\n }\r\n }\r\n\r\n validateInseminator(): boolean {\r\n let isValid = true;\r\n\r\n const hasIseminatorName =\r\n this.data.inseminatorId.nome !== undefined\r\n && this.data.inseminatorId.nome !== null\r\n && this.data.inseminatorId.nome !== ``;\r\n\r\n if (hasIseminatorName) {\r\n this.validInseminator = this.data.inseminatorId;\r\n for (const item of this.inseminatorListAll) {\r\n if (item.cdinseminador !== this.data.inseminatorId.cdinseminador\r\n && item.nome.toUpperCase() === this.data.inseminatorId.nome.toUpperCase() ) {\r\n this.validInseminator = [];\r\n isValid = false;\r\n this.message = 'Nome de inseminador já cadastrado.';\r\n }\r\n }\r\n }\r\n\r\n return isValid;\r\n }\r\n}\r\n","export default \".required {\\n color: red;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29uZmlndXJhdGlvbnMvbG90ZS1jYWRhc3Ryby9EOlxcUHJvamVjdHNcXGFsdGEtZ2VzdGFvLTA0XFxNYWluXFxWMlxcQWx0YUdlc3Rhby5XZWJcXGFsdGEtZ2VzdGFvL3NyY1xcYXBwXFxjb25maWd1cmF0aW9uc1xcbG90ZS1jYWRhc3Ryb1xcbG90ZS1jYWRhc3Ryby5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29uZmlndXJhdGlvbnMvbG90ZS1jYWRhc3Ryby9sb3RlLWNhZGFzdHJvLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksVUFBQTtBQ0NKIiwiZmlsZSI6InNyYy9hcHAvY29uZmlndXJhdGlvbnMvbG90ZS1jYWRhc3Ryby9sb3RlLWNhZGFzdHJvLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnJlcXVpcmVkIHtcclxuICAgIGNvbG9yOiByZWQ7XHJcbiAgIH0iLCIucmVxdWlyZWQge1xuICBjb2xvcjogcmVkO1xufSJdfQ== */\"","import { Component, OnInit, Inject } from '@angular/core';\r\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-lote-cadastro',\r\n templateUrl: './lote-cadastro.component.html',\r\n styleUrls: ['./lote-cadastro.component.scss'],\r\n })\r\n\r\nexport class LoteCadastroComponent implements OnInit {\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private dialogRef: MatDialogRef) { }\r\n\r\n public hasChanges = false;\r\n\r\n cancel() {\r\n this.dialogRef.close({ data: 'cancelar' });\r\n }\r\n\r\n confirm() {\r\n this.dialogRef.close({ lotId: this.data.lotId });\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n hasValue(statusValue) {\r\n if (statusValue.trim() !== '' && statusValue !== undefined ) {\r\n this.hasChanges = true;\r\n } else {\r\n this.hasChanges = false;\r\n }\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbmZpZ3VyYXRpb25zL3Byb3RvY29sby1jYWRhc3Ryby9wcm90b2NvbG8tY2FkYXN0cm8uY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, Inject } from '@angular/core';\r\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\r\nimport { Protocolo } from 'src/models/configuracoes/protocolo.model';\r\n\r\n@Component({\r\n selector: 'app-protocolo-cadastro',\r\n templateUrl: './protocolo-cadastro.component.html',\r\n styleUrls: ['./protocolo-cadastro.component.scss'],\r\n })\r\n\r\nexport class ProtocoloCadastroComponent implements OnInit {\r\n\r\n validProtocol: any;\r\n protocolListAll: Array;\r\n message: string;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private dialogRef: MatDialogRef) { }\r\n\r\n public hasChanges = false;\r\n\r\n ngOnInit() { this.protocolListAll = this.data.protocolList; }\r\n\r\n cancel() {\r\n this.dialogRef.close({ data: 'cancelar' });\r\n }\r\n\r\n confirm() {\r\n if (this.isValid()) {\r\n this.dialogRef.close({ lotId: this.data.protocolId });\r\n }\r\n }\r\n\r\n hasValue(statusValue) {\r\n if ( statusValue.trim() !== '' && statusValue !== undefined ) {\r\n this.hasChanges = true;\r\n } else {\r\n this.hasChanges = false;\r\n }\r\n }\r\n\r\n isValid(): boolean {\r\n this.message = ``;\r\n this.validProtocol = this.data.protocolId;\r\n\r\n const hasDescription = this.data.protocolId.descricao !== null\r\n && this.data.protocolId.descricao !== undefined;\r\n\r\n if (!this.validateImplantDate()) { return false; }\r\n if (!this.validateIatfDate()) { return false; }\r\n\r\n if (hasDescription) {\r\n const existingProtocol =\r\n this.protocolListAll.find(protocol =>\r\n protocol.descricao.toUpperCase() === this.data.protocolId.descricao.toUpperCase());\r\n const existsProtocol =\r\n existingProtocol !== undefined && existingProtocol.cdprotocolo > 0\r\n && existingProtocol.cdprotocolo !== this.data.protocolId.cdprotocolo;\r\n if (existsProtocol) {\r\n this.validProtocol = [];\r\n this.message = 'Esta descrição de protocolo já está cadastrada.';\r\n return false;\r\n }\r\n } else {\r\n this.message = 'Informe a descrição do protocolo';\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n validateImplantDate(): boolean {\r\n const hasImplantDays =\r\n this.validProtocol.implante !== undefined && this.validProtocol.implante !== null;\r\n if (!hasImplantDays) {\r\n this.message = 'Informe a quantidade de dias do implante';\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n validateIatfDate(): boolean {\r\n const hasIatfDays =\r\n this.validProtocol.iatf !== undefined && this.validProtocol.iatf !== null;\r\n if (!hasIatfDays) {\r\n this.message = 'Informe a quantidade de dias da iatf';\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbmZpZ3VyYXRpb25zL3Byb3RvY29sby1kZXRlbGhlLWNhZGFzdHJvL3Byb3RvY29sby1kZXRlbGhlLWNhZGFzdHJvLmNvbXBvbmVudC5zY3NzIn0= */\"","import { ProtocoloDetalhe } from '../../../models/configuracoes/protocolo-detalhes.model';\r\nimport { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MatSnackBar, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { ConfiguracoesService } from 'src/app/_services/configuracoes.service';\r\nimport { Protocolo } from 'src/models/configuracoes/protocolo.model';\r\n\r\n@Component({\r\n selector: 'app-protocolo-detelhe-cadastro',\r\n templateUrl: './protocolo-detelhe-cadastro.component.html',\r\n styleUrls: ['./protocolo-detelhe-cadastro.component.scss']\r\n})\r\nexport class ProtocoloDetalheCadastroComponent implements OnInit {\r\n\r\n hasChanges = false;\r\n protocolDetail: ProtocoloDetalhe;\r\n protocol: Protocolo;\r\n protocolDetailsList: ProtocoloDetalhe[];\r\n loading = false;\r\n\r\n INSERCAO_IMPLANTE = `Inserção do implante`;\r\n LUTEOLISE1 = `Luteólise 1`;\r\n LUTEOLISE2 = `Luteólise 2`;\r\n EDF = `Estímulo Desenv. Folicular Final`;\r\n EOV = `Estímulo Ovulatório`;\r\n RETIRADA_IMPLANTE = `Retirada do implante`;\r\n IATF = `IATF`;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private dialogRef: MatDialogRef,\r\n private snackBar: MatSnackBar,\r\n private configurationsService: ConfiguracoesService) {\r\n this.protocol = this.data.protocolId;\r\n }\r\n\r\n ngOnInit() {\r\n this.protocolDetailsList = [];\r\n this.getProtocolDetails();\r\n }\r\n\r\n getProtocolDetails() {\r\n this.loading = true;\r\n this.configurationsService.getProtocoloDetalhes(this.protocol.cdprotocolo).subscribe((response) => {\r\n this.protocolDetailsList =\r\n response.filter(protocolDetail => protocolDetail.cdprotocolo === this.protocol.cdprotocolo);\r\n\r\n const hasProtocolDetails =\r\n this.protocolDetailsList !== undefined && this.protocolDetailsList.length > 0;\r\n\r\n if (!hasProtocolDetails) {\r\n this.createProtocolDetails();\r\n }\r\n\r\n this.setFasesDays();\r\n\r\n this.loading = false;\r\n });\r\n }\r\n\r\n createProtocolDetails() {\r\n let protocolDetail: ProtocoloDetalhe;\r\n\r\n protocolDetail = new ProtocoloDetalhe();\r\n protocolDetail.fase = this.INSERCAO_IMPLANTE;\r\n protocolDetail.dias = 0;\r\n this.protocolDetailsList.push(protocolDetail);\r\n\r\n protocolDetail = new ProtocoloDetalhe();\r\n protocolDetail.fase = this.LUTEOLISE1;\r\n protocolDetail.dias = 0;\r\n this.protocolDetailsList.push(protocolDetail);\r\n\r\n protocolDetail = new ProtocoloDetalhe();\r\n protocolDetail.fase = this.LUTEOLISE2;\r\n protocolDetail.dias = 0;\r\n this.protocolDetailsList.push(protocolDetail);\r\n\r\n protocolDetail = new ProtocoloDetalhe();\r\n protocolDetail.fase = this.EDF;\r\n protocolDetail.dias = 0;\r\n this.protocolDetailsList.push(protocolDetail);\r\n\r\n protocolDetail = new ProtocoloDetalhe();\r\n protocolDetail.fase = this.EOV;\r\n protocolDetail.dias = 0;\r\n this.protocolDetailsList.push(protocolDetail);\r\n\r\n protocolDetail = new ProtocoloDetalhe();\r\n protocolDetail.fase = this.RETIRADA_IMPLANTE;\r\n protocolDetail.dias = 0;\r\n this.protocolDetailsList.push(protocolDetail);\r\n\r\n protocolDetail = new ProtocoloDetalhe();\r\n protocolDetail.fase = this.IATF;\r\n protocolDetail.dias = 0;\r\n this.protocolDetailsList.push(protocolDetail);\r\n }\r\n\r\n setFasesDays() {\r\n this.protocolDetailsList.forEach((protocolDetail) => {\r\n const hasCdDetail = protocolDetail.cddetalhe > 0\r\n || protocolDetail.cddetalhe !== undefined;\r\n\r\n if (!hasCdDetail) {\r\n if (protocolDetail.fase === this.INSERCAO_IMPLANTE) {\r\n protocolDetail.dias = this.protocol.implante ? this.protocol.implante : 0;\r\n }\r\n if (protocolDetail.fase === this.LUTEOLISE1) {\r\n protocolDetail.dias = this.protocol.luteolise1 ? this.protocol.luteolise1 : 0;\r\n }\r\n if (protocolDetail.fase === this.LUTEOLISE2) {\r\n protocolDetail.dias = this.protocol.luteolise2 ? this.protocol.luteolise2 : 0;\r\n }\r\n if (protocolDetail.fase === this.EDF) {\r\n protocolDetail.dias = this.protocol.edf ? this.protocol.edf : 0;\r\n }\r\n if (protocolDetail.fase === this.EOV) {\r\n protocolDetail.dias = this.protocol.estimulo ? this.protocol.estimulo : 0;\r\n }\r\n if (protocolDetail.fase === this.RETIRADA_IMPLANTE) {\r\n protocolDetail.dias = this.protocol.retirada ? this.protocol.retirada : 0;\r\n }\r\n if (protocolDetail.fase === this.IATF) {\r\n protocolDetail.dias = this.protocol.iatf ? this.protocol.iatf : 0;\r\n }\r\n }\r\n });\r\n }\r\n\r\n cancel() {\r\n this.dialogRef.close({ data: 'cancelar' });\r\n }\r\n\r\n hasValue(statusValue) {\r\n if ( statusValue.trim() !== '' && statusValue !== undefined ) {\r\n this.hasChanges = true;\r\n } else {\r\n this.hasChanges = false;\r\n }\r\n }\r\n\r\n save() {\r\n const cdDetailsList =\r\n this.protocolDetailsList.filter(\r\n protocolDetail => protocolDetail.cddetalhe !== undefined || protocolDetail.cddetalhe > 0);\r\n\r\n const hasCdDetails = cdDetailsList !== undefined && cdDetailsList.length > 0;\r\n\r\n this.updateProtocolFasesDays();\r\n\r\n if (hasCdDetails) {\r\n this.update();\r\n } else {\r\n this.setProtocol();\r\n this.insert();\r\n }\r\n this.dialogRef.close({ protocol: this.protocol });\r\n }\r\n\r\n insert() {\r\n this.configurationsService.insereProtocoloDetalhes(this.protocolDetailsList).subscribe((response) => {\r\n this.showSnackBar('Registros armazenados com sucesso.');\r\n }, (error) => this.showSnackBar(error));\r\n }\r\n\r\n update() {\r\n this.configurationsService.atualizaProtocoloDetalhes(this.protocolDetailsList).subscribe((response: ProtocoloDetalhe[]) => {\r\n if (response != null) {\r\n this.showSnackBar('Alterações salvas com sucesso.');\r\n }\r\n });\r\n }\r\n\r\n setProtocol() {\r\n this.protocolDetailsList.forEach((protocolDetail) => {\r\n protocolDetail.cdprotocolo = this.protocol.cdprotocolo;\r\n });\r\n }\r\n\r\n updateProtocolFasesDays() {\r\n this.protocolDetailsList.forEach((protocolDetail) => {\r\n if (protocolDetail.fase === `Inserção do implante`) {\r\n this.protocol.implante = protocolDetail.dias;\r\n }\r\n if (protocolDetail.fase === `Luteólise 1`) {\r\n this.protocol.luteolise1 = protocolDetail.dias;\r\n }\r\n if (protocolDetail.fase === `Luteólise 2`) {\r\n this.protocol.luteolise2 = protocolDetail.dias;\r\n }\r\n if (protocolDetail.fase === `Estímulo Desenv. Folicular Final`) {\r\n this.protocol.edf = protocolDetail.dias;\r\n }\r\n if (protocolDetail.fase === `Estímulo Ovulatório`) {\r\n this.protocol.estimulo = protocolDetail.dias;\r\n }\r\n if (protocolDetail.fase === `Retirada do implante`) {\r\n this.protocol.retirada = protocolDetail.dias;\r\n }\r\n if (protocolDetail.fase === `IATF`) {\r\n this.protocol.iatf = protocolDetail.dias;\r\n }\r\n });\r\n }\r\n\r\n showSnackBar(message: string) {\r\n this.snackBar.open(message, 'X', {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n}\r\n","export default \".custom-date-class {\\n background: #ECF0F5;\\n border-radius: 100%;\\n}\\n\\n.checkbox-section {\\n display: block;\\n align-content: center;\\n align-items: center;\\n height: 60px;\\n}\\n\\n.parent {\\n display: flex;\\n overflow: hidden;\\n margin-top: -55px;\\n margin-left: -8px;\\n margin-right: -8px;\\n border: 1px solid #cccccc;\\n border-radius: 4px;\\n padding: 0;\\n}\\n\\n.column {\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.left {\\n width: 128px;\\n margin-left: 4px;\\n}\\n\\n.right {\\n padding-top: 10px !important;\\n}\\n\\n.center {\\n width: 89px;\\n}\\n\\n.midlle {\\n width: 120px;\\n}\\n\\n.header {\\n font-size: 16px;\\n margin-left: 10px;\\n margin-bottom: -12px;\\n background-color: white;\\n width: 73px;\\n padding-left: 5px;\\n}\\n\\n.sub-header {\\n font-size: 14px;\\n margin-top: -16px;\\n background-color: white;\\n}\\n\\n.borda {\\n border: 1px solid #cccccc;\\n border-radius: 4px;\\n padding: 5px;\\n margin: 15px 5px 5px 5px;\\n width: 400px;\\n}\\n\\n.example-radio-group {\\n display: flex !important;\\n flex-direction: column !important;\\n margin: 0;\\n margin-top: 5px;\\n padding: 0;\\n}\\n\\n.isDisabled {\\n color: #cecece !important;\\n border: 1px solid #ececec !important;\\n}\\n\\n.hasError {\\n color: red !important;\\n border-bottom: 1px solid red !important;\\n}\\n\\n.parent2 {\\n display: flex;\\n overflow: hidden;\\n border: 1px solid #cccccc;\\n border-radius: 4px;\\n padding-top: 20px !important;\\n padding-bottom: 1px !important;\\n margin-top: -22px !important;\\n margin-left: 15px;\\n margin-right: 15px;\\n}\\n\\n.center2 {\\n width: 175px;\\n}\\n\\n.column2 {\\n display: flex;\\n flex-direction: column;\\n float: left;\\n position: absolute;\\n}\\n\\n.header2 {\\n font-size: 12px;\\n margin-left: 10px;\\n margin-top: -28px !important;\\n background-color: white;\\n width: 30px;\\n padding-left: 5px;\\n}\\n\\n.example-radio-group2 {\\n display: flex !important;\\n flex-direction: column !important;\\n font-size: 14px;\\n margin-left: 10px !important;\\n}\\n\\n.required {\\n color: red;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29uZmlndXJhdGlvbnMvcmVwcm9kdXRvci1jYWRhc3Ryby9EOlxcUHJvamVjdHNcXGFsdGEtZ2VzdGFvLTA0XFxNYWluXFxWMlxcQWx0YUdlc3Rhby5XZWJcXGFsdGEtZ2VzdGFvL3NyY1xcYXBwXFxjb25maWd1cmF0aW9uc1xccmVwcm9kdXRvci1jYWRhc3Ryb1xccmVwcm9kdXRvci1jYWRhc3Ryby5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29uZmlndXJhdGlvbnMvcmVwcm9kdXRvci1jYWRhc3Ryby9yZXByb2R1dG9yLWNhZGFzdHJvLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksbUJBQUE7RUFDQSxtQkFBQTtBQ0NKOztBREVBO0VBQ0ksY0FBQTtFQUNBLHFCQUFBO0VBQ0EsbUJBQUE7RUFDQSxZQUFBO0FDQ0o7O0FERUU7RUFDRSxhQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7RUFDQSx5QkFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTtBQ0NKOztBREVFO0VBQ0UsYUFBQTtFQUNBLHNCQUFBO0FDQ0o7O0FERUE7RUFDSSxZQUFBO0VBQ0EsZ0JBQUE7QUNDSjs7QURFRTtFQUNFLDRCQUFBO0FDQ0o7O0FERUE7RUFDSSxXQUFBO0FDQ0o7O0FERUU7RUFDSSxZQUFBO0FDQ047O0FERUU7RUFDRSxlQUFBO0VBQ0EsaUJBQUE7RUFDQSxvQkFBQTtFQUNBLHVCQUFBO0VBQ0EsV0FBQTtFQUNBLGlCQUFBO0FDQ0o7O0FERUU7RUFDRSxlQUFBO0VBQ0EsaUJBQUE7RUFFQSx1QkFBQTtBQ0FKOztBREdFO0VBRUUseUJBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7RUFDQSx3QkFBQTtFQUNBLFlBQUE7QUNESjs7QURLRTtFQUNFLHdCQUFBO0VBQ0EsaUNBQUE7RUFDQSxTQUFBO0VBQ0EsZUFBQTtFQUNBLFVBQUE7QUNGSjs7QURRRTtFQUNFLHlCQUFBO0VBQ0Esb0NBQUE7QUNMSjs7QURRRTtFQUNFLHFCQUFBO0VBQ0EsdUNBQUE7QUNMSjs7QURRRTtFQUNFLGFBQUE7RUFDQSxnQkFBQTtFQUlBLHlCQUFBO0VBQ0Esa0JBQUE7RUFDQSw0QkFBQTtFQUNBLDhCQUFBO0VBQ0EsNEJBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0FDUko7O0FEV0U7RUFDRSxZQUFBO0FDUko7O0FEV0U7RUFDRSxhQUFBO0VBQ0Esc0JBQUE7RUFDQSxXQUFBO0VBQ0Esa0JBQUE7QUNSSjs7QURXRTtFQUNFLGVBQUE7RUFDQSxpQkFBQTtFQUVBLDRCQUFBO0VBQ0EsdUJBQUE7RUFDQSxXQUFBO0VBQ0EsaUJBQUE7QUNUSjs7QURZRTtFQUNFLHdCQUFBO0VBQ0EsaUNBQUE7RUFLQSxlQUFBO0VBQ0EsNEJBQUE7QUNiSjs7QURnQkU7RUFDRSxVQUFBO0FDYkoiLCJmaWxlIjoic3JjL2FwcC9jb25maWd1cmF0aW9ucy9yZXByb2R1dG9yLWNhZGFzdHJvL3JlcHJvZHV0b3ItY2FkYXN0cm8uY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuY3VzdG9tLWRhdGUtY2xhc3Mge1xyXG4gICAgYmFja2dyb3VuZDogI0VDRjBGNTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XHJcbiAgfVxyXG5cclxuLmNoZWNrYm94LXNlY3Rpb24ge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgaGVpZ2h0OiA2MHB4O1xyXG4gIH1cclxuXHJcbiAgLnBhcmVudCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIG1hcmdpbi10b3A6IC01NXB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IC04cHg7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IC04cHg7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjY2NjO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gICAgcGFkZGluZzogMDtcclxuICB9XHJcblxyXG4gIC5jb2x1bW57XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICB9XHJcblxyXG4ubGVmdCB7XHJcbiAgICB3aWR0aDogMTI4cHg7XHJcbiAgICBtYXJnaW4tbGVmdDogNHB4O1xyXG4gIH1cclxuXHJcbiAgLnJpZ2h0IHtcclxuICAgIHBhZGRpbmctdG9wOiAxMHB4ICFJbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuLmNlbnRlcntcclxuICAgIHdpZHRoOiA4OXB4O1xyXG4gIH1cclxuXHJcbiAgLm1pZGxsZXtcclxuICAgICAgd2lkdGg6IDEyMHB4O1xyXG4gIH1cclxuXHJcbiAgLmhlYWRlcntcclxuICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogLTEycHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICAgIHdpZHRoOiA3M3B4O1xyXG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbiAgfVxyXG5cclxuICAuc3ViLWhlYWRlcntcclxuICAgIGZvbnQtc2l6ZTogMTRweDsgXHJcbiAgICBtYXJnaW4tdG9wOiAtMTZweDtcclxuICAgIFxyXG4gICAgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtcclxuICB9XHJcblxyXG4gIC5ib3JkYXtcclxuICAgIFxyXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjY2NjYztcclxuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICAgIHBhZGRpbmc6IDVweDtcclxuICAgIG1hcmdpbjogMTVweCA1cHggNXB4IDVweDtcclxuICAgIHdpZHRoOiA0MDBweDtcclxuICAgIFxyXG4gIH1cclxuXHJcbiAgLmV4YW1wbGUtcmFkaW8tZ3JvdXAge1xyXG4gICAgZGlzcGxheTogZmxleCAhSW1wb3J0YW50O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhSW1wb3J0YW50O1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgbWFyZ2luLXRvcDogNXB4O1xyXG4gICAgcGFkZGluZzogMDtcclxuICB9XHJcblxyXG5cclxuICAvLyBhY3Jlc2NpbW9zXHJcblxyXG4gIC5pc0Rpc2FibGVkIHtcclxuICAgIGNvbG9yOiAjY2VjZWNlICFJbXBvcnRhbnQ7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWNlY2VjICFJbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuaGFzRXJyb3J7XHJcbiAgICBjb2xvcjogcmVkICFJbXBvcnRhbnQ7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmVkICFJbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAucGFyZW50MiB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIC8vIG1hcmdpbi10b3A6IC0yMDVweDtcclxuICAgIC8vIG1hcmdpbi1sZWZ0OiAtOHB4O1xyXG4gICAgLy8gbWFyZ2luLXJpZ2h0OiAtOHB4O1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjY2NjYztcclxuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICAgIHBhZGRpbmctdG9wOiAyMHB4ICFJbXBvcnRhbnQ7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMXB4ICFJbXBvcnRhbnQ7XHJcbiAgICBtYXJnaW4tdG9wOiAtMjJweCAhSW1wb3J0YW50O1xyXG4gICAgbWFyZ2luLWxlZnQ6IDE1cHg7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7XHJcbiAgfVxyXG5cclxuICAuY2VudGVyMntcclxuICAgIHdpZHRoOiAxNzVweDtcclxuICB9XHJcblxyXG4gIC5jb2x1bW4ye1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB9XHJcblxyXG4gIC5oZWFkZXIye1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XHJcbiAgICAvLyBtYXJnaW4tYm90dG9tOiAtMTJweDtcclxuICAgIG1hcmdpbi10b3A6IC0yOHB4ICFJbXBvcnRhbnQ7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICAgIHdpZHRoOiAzMHB4O1xyXG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbiAgfVxyXG5cclxuICAuZXhhbXBsZS1yYWRpby1ncm91cDIge1xyXG4gICAgZGlzcGxheTogZmxleCAhSW1wb3J0YW50O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhSW1wb3J0YW50O1xyXG4gICAgLy8gbWFyZ2luOiAwO1xyXG4gICAgLy8gbWFyZ2luLXRvcDogNXB4O1xyXG4gICAgLy8gcGFkZGluZzogMDtcclxuICAgIC8vIHBhZGRpbmc6IDExcHg7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICBtYXJnaW4tbGVmdDogMTBweCAhSW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLnJlcXVpcmVkIHtcclxuICAgIGNvbG9yOiByZWQ7XHJcbiAgIH0iLCIuY3VzdG9tLWRhdGUtY2xhc3Mge1xuICBiYWNrZ3JvdW5kOiAjRUNGMEY1O1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xufVxuXG4uY2hlY2tib3gtc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGhlaWdodDogNjBweDtcbn1cblxuLnBhcmVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1hcmdpbi10b3A6IC01NXB4O1xuICBtYXJnaW4tbGVmdDogLThweDtcbiAgbWFyZ2luLXJpZ2h0OiAtOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjY2NjO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5jb2x1bW4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4ubGVmdCB7XG4gIHdpZHRoOiAxMjhweDtcbiAgbWFyZ2luLWxlZnQ6IDRweDtcbn1cblxuLnJpZ2h0IHtcbiAgcGFkZGluZy10b3A6IDEwcHggIWltcG9ydGFudDtcbn1cblxuLmNlbnRlciB7XG4gIHdpZHRoOiA4OXB4O1xufVxuXG4ubWlkbGxlIHtcbiAgd2lkdGg6IDEyMHB4O1xufVxuXG4uaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogLTEycHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICB3aWR0aDogNzNweDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5cbi5zdWItaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBtYXJnaW4tdG9wOiAtMTZweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG5cbi5ib3JkYSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgcGFkZGluZzogNXB4O1xuICBtYXJnaW46IDE1cHggNXB4IDVweCA1cHg7XG4gIHdpZHRoOiA0MDBweDtcbn1cblxuLmV4YW1wbGUtcmFkaW8tZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwO1xuICBtYXJnaW4tdG9wOiA1cHg7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5pc0Rpc2FibGVkIHtcbiAgY29sb3I6ICNjZWNlY2UgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2VjZWNlYyAhaW1wb3J0YW50O1xufVxuXG4uaGFzRXJyb3Ige1xuICBjb2xvcjogcmVkICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZWQgIWltcG9ydGFudDtcbn1cblxuLnBhcmVudDIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjY2NjO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHBhZGRpbmctdG9wOiAyMHB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctYm90dG9tOiAxcHggIWltcG9ydGFudDtcbiAgbWFyZ2luLXRvcDogLTIycHggIWltcG9ydGFudDtcbiAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gIG1hcmdpbi1yaWdodDogMTVweDtcbn1cblxuLmNlbnRlcjIge1xuICB3aWR0aDogMTc1cHg7XG59XG5cbi5jb2x1bW4yIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLmhlYWRlcjIge1xuICBmb250LXNpemU6IDEycHg7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICBtYXJnaW4tdG9wOiAtMjhweCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgd2lkdGg6IDMwcHg7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xufVxuXG4uZXhhbXBsZS1yYWRpby1ncm91cDIge1xuICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBtYXJnaW4tbGVmdDogMTBweCAhaW1wb3J0YW50O1xufVxuXG4ucmVxdWlyZWQge1xuICBjb2xvcjogcmVkO1xufSJdfQ== */\"","import { BaseTouroFiltro } from '../../../models/configuracoes/base-touros-filtro.model';\r\nimport { Component, OnInit, Inject, ViewChild } from '@angular/core';\r\nimport { MatDialog, MatRadioButton } from '@angular/material';\r\nimport { faFilter } from '@fortawesome/free-solid-svg-icons';\r\nimport { ConfiguracoesService } from 'src/app/_services/configuracoes.service';\r\nimport { BaseTouro } from 'src/models/configuracoes/base-touros.model';\r\nimport { Raca } from 'src/models/configuracoes/raca.model';\r\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\r\nimport { DialogoAlertaComponent } from 'src/app/_utils/dialogo-alerta/dialogo-alerta.component';\r\nimport { GridDataResult } from '@progress/kendo-angular-grid';\r\nimport { Reprodutor } from 'src/models/configuracoes/reprodutor.model';\r\nimport { FormControl } from '@angular/forms';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError, debounceTime, distinctUntilChanged, map, startWith, switchMap, tap } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-reprodutor-cadastro',\r\n templateUrl: './reprodutor-cadastro.component.html',\r\n styleUrls: ['./reprodutor-cadastro.component.scss'],\r\n })\r\n\r\nexport class ReprodutorCadastroComponent implements OnInit {\r\n\r\n @ViewChild('tiporeprodutor0', { static: false }) tiporeprodutor0: MatRadioButton;\r\n @ViewChild('tiporeprodutor1', { static: false }) tiporeprodutor1: MatRadioButton;\r\n\r\n selectedValue: any;\r\n\r\n hasChanges = false;\r\n editBaseTouros = false;\r\n edited = false;\r\n loading = false;\r\n loadingBaseTouros = false;\r\n filterBaseTouros = faFilter;\r\n total = 0;\r\n codigoBaseUnif: number;\r\n regInternacional: string;\r\n codigoInternacional: string;\r\n nomeCompleto: string;\r\n nomeResumido: string;\r\n raca: any;\r\n\r\n reprodutorListAll: Array;\r\n baseTourosListAll: Array;\r\n baseTourosList: Array;\r\n resultFilter: Array;\r\n clickedRowItem: any;\r\n racaListAll: Array;\r\n validReprodutor: any;\r\n message = '';\r\n baseTourosFiltrados: BaseTouro[];\r\n\r\n gridView: GridDataResult;\r\n pageSize = 100;\r\n skip = 0;\r\n\r\n myControl = new FormControl();\r\n filteredOptions: Observable;\r\n\r\n selectedCallback = (args: { dataItem: any; }) => args.dataItem\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private dialogRef: MatDialogRef,\r\n private reprodutorService: ConfiguracoesService,\r\n private dialog: MatDialog) { }\r\n\r\n ngOnInit() {\r\n this.gridView = {\r\n data: [],\r\n total: 0\r\n };\r\n this.selectedValue = -1;\r\n this.getAllReprodutor();\r\n // this.getBaseTouro();\r\n this.getRaca();\r\n // this.verificaCargaBaseDados();\r\n }\r\n\r\n getAllReprodutor() {\r\n this.loading = true;\r\n this.reprodutorService.getReprodutores().subscribe((response) => {\r\n this.reprodutorListAll = response;\r\n });\r\n this.loading = false;\r\n }\r\n\r\n cancel() {\r\n this.dialogRef.close({ data: 'cancelar' });\r\n }\r\n\r\n confirm() {\r\n if (this.validateReprodutor()) {\r\n this.save(this.tiporeprodutor0.checked);\r\n this.dialogRef.close({\r\n tiporeprodutor0: this.tiporeprodutor0.checked\r\n , semenTouroId: this.data.semenTouroId });\r\n }\r\n }\r\n\r\n filterResults() {\r\n this.loadingBaseTouros = true;\r\n const filter = this.createBaseTouroFilter();\r\n this.reprodutorService.getBaseTourosPorFiltro(filter).subscribe((response) => {\r\n this.baseTourosList = response;\r\n this.loadingBaseTouros = false;\r\n }, error => {\r\n this.loadingBaseTouros = false;\r\n this.openMessageAviso();\r\n });\r\n }\r\n\r\n getBaseTouro() {\r\n // if (this.validateFilters()) {\r\n // this.loadingBaseTouros = true;\r\n // const filter = this.createBaseTouroFilter();\r\n // this.reprodutorService.getBaseTourosPorFiltro(filter).subscribe((response) => {\r\n // this.baseTourosListAll = response;\r\n // this.baseTourosList = response;\r\n // // this.filteringBaseTouros();\r\n // this.setPagination();\r\n // this.loadingBaseTouros = false;\r\n // });\r\n // }\r\n }\r\n\r\n createBaseTouroFilter(): BaseTouroFiltro {\r\n const filter = new BaseTouroFiltro();\r\n filter.bullId = this.codigoBaseUnif;\r\n filter.interregnum = this.regInternacional;\r\n filter.semencode = this.codigoInternacional;\r\n filter.name = this.nomeCompleto;\r\n filter.shortname = this.nomeResumido;\r\n filter.breed = this.selectedValue.sigla;\r\n\r\n return filter;\r\n }\r\n\r\n validateFilters(): boolean {\r\n this.setFilterValues();\r\n\r\n let hasAnyFilter = false;\r\n this.message = ``;\r\n\r\n const hasCodigoUnif =\r\n this.codigoBaseUnif !== null && this.codigoBaseUnif !== undefined && this.codigoBaseUnif > 0;\r\n if (hasCodigoUnif) {\r\n hasAnyFilter = true;\r\n }\r\n\r\n const hasRegInternacional =\r\n this.regInternacional !== null && this.regInternacional !== undefined && this.regInternacional !== '';\r\n if (hasRegInternacional) {\r\n hasAnyFilter = true;\r\n }\r\n\r\n const hasCodigoInternacional =\r\n this.codigoInternacional !== null && this.codigoInternacional !== undefined && this.codigoInternacional !== '';\r\n if (hasCodigoInternacional) {\r\n hasAnyFilter = true;\r\n }\r\n\r\n const hasNome = this.nomeCompleto !== null && this.nomeCompleto !== undefined && this.nomeCompleto !== '';\r\n if (hasNome) {\r\n hasAnyFilter = true;\r\n }\r\n\r\n const hasNomeResumido = this.nomeResumido !== null && this.nomeResumido !== undefined && this.nomeResumido !== '';\r\n if (hasNomeResumido) {\r\n hasAnyFilter = true;\r\n }\r\n\r\n const hasRaca = this.raca !== null && this.raca !== undefined && this.raca !== '' && this.raca !== -1;\r\n if (hasRaca) {\r\n hasAnyFilter = true;\r\n }\r\n\r\n if (!hasAnyFilter) {\r\n this.message = `É necessário informar ao menos um filtro para listar os touros`;\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n setFilterValues() {\r\n this.codigoBaseUnif = Number(((document.getElementById('codigoBaseUnif') as HTMLInputElement).value));\r\n this.regInternacional = ((document.getElementById('registroInternacional') as HTMLInputElement).value);\r\n this.codigoInternacional = ((document.getElementById('codigoInternacionalSemenCode') as HTMLInputElement).value);\r\n this.nomeCompleto = ((document.getElementById('nomeCompleto') as HTMLInputElement).value);\r\n this.nomeResumido = ((document.getElementById('nomeResumido') as HTMLInputElement).value);\r\n this.raca = this.selectedValue;\r\n }\r\n\r\n getRaca() {\r\n this.loading = true;\r\n this.reprodutorService.getRacas().subscribe((response) => {\r\n this.racaListAll = response;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n setPagination() {\r\n this.gridView = {\r\n data: this.baseTourosList.slice(this.skip, this.skip + this.pageSize),\r\n total: this.baseTourosList.length\r\n };\r\n }\r\n\r\n hasValue(statusValue) {\r\n if ( statusValue.trim() !== '' && statusValue !== undefined ) {\r\n this.hasChanges = true;\r\n } else {\r\n this.hasChanges = false;\r\n }\r\n this.setBreederType();\r\n }\r\n\r\n setBreederType() {\r\n const isBull = this.tiporeprodutor0.checked;\r\n const isSemen = this.tiporeprodutor1.checked;\r\n if (isBull) {\r\n this.data.semenTouroId.tipo = 'touro';\r\n } else if (isSemen) {\r\n this.data.semenTouroId.tipo = 'semen';\r\n }\r\n }\r\n\r\n onCellClick(e) {\r\n this.clickedRowItem = e.dataItem;\r\n }\r\n\r\n onDblClick() {\r\n if (this.clickedRowItem !== '' && this.clickedRowItem !== undefined) {\r\n this.data.semenTouroId.codigoBaseunif = this.clickedRowItem.bullId;\r\n this.data.semenTouroId.BullId1 = this.clickedRowItem.bullId;\r\n this.data.semenTouroId.regInternacional = this.clickedRowItem.interregnum;\r\n this.data.semenTouroId.codigoInternacional = this.clickedRowItem.semencode;\r\n\r\n this.editBaseTouros = false;\r\n this.edited = false;\r\n }\r\n }\r\n\r\n openBaseTouros() {\r\n this.editBaseTouros = true;\r\n this.edited = true;\r\n this.hasChanges = true;\r\n }\r\n\r\n closeBaseTouros() {\r\n this.editBaseTouros = false;\r\n this.edited = false;\r\n }\r\n\r\n saveBaseTouros() {\r\n if (this.clickedRowItem !== '' && this.clickedRowItem !== undefined) {\r\n this.hasChanges = false;\r\n this.editBaseTouros = false;\r\n this.edited = false;\r\n this.data.semenTouroId.codigoBaseunif = this.clickedRowItem.bullId;\r\n this.data.semenTouroId.BullId1 = this.clickedRowItem.bullId;\r\n this.data.semenTouroId.regInternacional = this.clickedRowItem.interregnum;\r\n this.data.semenTouroId.codigoInternacional = this.clickedRowItem.semencode;\r\n\r\n this.editBaseTouros = false;\r\n this.edited = false;\r\n }\r\n }\r\n\r\n filteringBaseTouros() {\r\n // this.getBaseTouro();\r\n // this.loadingBaseTouros = true;\r\n\r\n // this.resultFilter = [];\r\n\r\n // const codigoBaseUnif = ((document.getElementById('codigoBaseUnif') as HTMLInputElement).value);\r\n // const regInternacional = ((document.getElementById('regInternacional') as HTMLInputElement).value);\r\n // const codigoInternacional = ((document.getElementById('codigoInternacional') as HTMLInputElement).value);\r\n // const nomeCompleto = ((document.getElementById('nomeCompleto') as HTMLInputElement).value);\r\n // const nomeResumido = ((document.getElementById('nomeResumido') as HTMLInputElement).value);\r\n // const raca: any = this.selectedValue;\r\n\r\n // const hasBaseTouros = this.baseTourosListAll !== undefined;\r\n // if (!hasBaseTouros) {\r\n // if (this.data.baseTourosListAll === undefined) {\r\n // this.openMessage();\r\n // } else {\r\n // this.baseTourosList = this.data.baseTourosListAll;\r\n // }\r\n // } else {\r\n // this.baseTourosList = this.baseTourosListAll;\r\n // }\r\n\r\n // this.resultFilter = this.baseTourosList;\r\n\r\n // const hasCodigoUnif =\r\n // codigoBaseUnif !== null && codigoBaseUnif !== undefined && codigoBaseUnif !== '';\r\n // if (hasCodigoUnif) {\r\n // const baseTouro = this.baseTourosList.filter(x => (x.bullId !== null));\r\n\r\n // this.resultFilter = [];\r\n\r\n // if (baseTouro.length > 0) {\r\n // this.resultFilter = baseTouro;\r\n // }\r\n\r\n // const termo = parseFloat(codigoBaseUnif);\r\n // const reprodutor1 = this.resultFilter.filter (y => y.bullId === termo);\r\n\r\n // this.baseTourosList = [];\r\n\r\n // if (reprodutor1.length > 0) {\r\n // this.resultFilter = [];\r\n // this.resultFilter = reprodutor1;\r\n // } else {\r\n // this.resultFilter = [];\r\n // }\r\n // }\r\n\r\n // const hasRegInternacional =\r\n // regInternacional !== null && regInternacional !== undefined && regInternacional !== '';\r\n // if (hasRegInternacional) {\r\n // const baseTouro = this.resultFilter.filter (y => y.interregnum.toUpperCase().includes(regInternacional));\r\n\r\n // if (baseTouro.length > 0) {\r\n // this.resultFilter = [];\r\n // this.resultFilter = baseTouro;\r\n // } else {\r\n // this.resultFilter = [];\r\n // }\r\n // }\r\n\r\n // const hasCodigoInternacional =\r\n // codigoInternacional !== null && codigoInternacional !== undefined && codigoInternacional !== '';\r\n // if (hasCodigoInternacional) {\r\n // const baseTouro = this.resultFilter.filter (y => y.semencode.includes(codigoInternacional));\r\n\r\n // if (baseTouro.length > 0) {\r\n // this.resultFilter = [];\r\n // this.resultFilter = baseTouro;\r\n // } else {\r\n // this.resultFilter = [];\r\n // }\r\n // }\r\n\r\n // const hasNome = nomeCompleto !== null && nomeCompleto !== undefined && nomeCompleto !== '';\r\n // if (hasNome) {\r\n // const baseTouro = this.resultFilter.filter (y => y.name.toUpperCase().includes(nomeCompleto.toUpperCase()));\r\n\r\n // if (baseTouro.length > 0) {\r\n // this.resultFilter = [];\r\n // this.resultFilter = baseTouro;\r\n // } else {\r\n // this.resultFilter = [];\r\n // }\r\n // }\r\n\r\n // const hasNomeResumido = nomeResumido !== null && nomeResumido !== undefined && nomeResumido !== '';\r\n // if (hasNomeResumido) {\r\n // const baseTouro = this.resultFilter.filter (y => y.shortname.toUpperCase().includes(nomeResumido.toUpperCase()));\r\n\r\n // if (baseTouro.length > 0) {\r\n // this.resultFilter = [];\r\n // this.resultFilter = baseTouro;\r\n // } else {\r\n // this.resultFilter = [];\r\n // }\r\n // }\r\n\r\n // const hasRaca = raca !== null && raca !== undefined && raca !== '' && raca !== -1;\r\n // if (hasRaca) {\r\n // const raca1 = this.resultFilter.filter(x => x.breed === raca.sigla);\r\n // if (raca1.length > 0) {\r\n // this.resultFilter = [];\r\n // this.resultFilter = raca1;\r\n // } else {\r\n // this.resultFilter = [];\r\n // }\r\n // }\r\n\r\n // this.baseTourosList = [];\r\n // this.baseTourosList = this.resultFilter;\r\n // this.total = this.baseTourosList.length;\r\n\r\n // this.gridView = {\r\n // data: [],\r\n // total: 0\r\n // };\r\n\r\n // this.gridView = {\r\n // data: this.baseTourosList,\r\n // total: this.total\r\n // };\r\n\r\n // this.loadingBaseTouros = false;\r\n }\r\n\r\n openMessage() {\r\n const dialogRef2 = this.dialog.open(DialogoAlertaComponent, {\r\n data: {\r\n message: 'A Base de Touros ainda está sendo carregada. Aguarde!',\r\n buttonText: {\r\n cancel: 'Ok'\r\n }\r\n },\r\n });\r\n }\r\n\r\n openMessageAviso() {\r\n const dialogRef3 = this.dialog.open(DialogoAlertaComponent, {\r\n data: {\r\n message: 'A Base de Touros é muito pesada para ser carregada. Preencha um dos campos e clique novamente em filtrar!',\r\n buttonText: {\r\n cancel: 'Ok'\r\n }\r\n },\r\n });\r\n }\r\n\r\n // verificaCargaBaseDados() {\r\n // if (this.baseTourosListAll !== undefined || this.data.baseTourosListAll !== undefined) {\r\n // this.loadingBaseTouros = false;\r\n // } else {\r\n // this.loading = true;\r\n // }\r\n // }\r\n\r\n save(tiporeprodutor0: boolean) {\r\n const hasCdFarm =\r\n this.data.semenTouroId.cdFazenda !== null\r\n && this.data.semenTouroId.cdFazenda !== undefined;\r\n\r\n const hasValidBreeder =\r\n this.validReprodutor.cdreprodutor !== null\r\n && this.validReprodutor.cdreprodutor !== undefined\r\n && this.validReprodutor.cdreprodutor !== 0;\r\n\r\n this.data.semenTouroId.cdFazenda = hasCdFarm ? this.data.semenTouroId.cdFazenda : this.reprodutorService.getCdFazenda();\r\n this.data.semenTouroId.cdtiporeprodutor = tiporeprodutor0 === false ? 0 : 1;\r\n\r\n if (hasValidBreeder) {\r\n this.reprodutorService.atualizaReprodutor(this.data.semenTouroId).subscribe((response: Array) => {\r\n if (response != null) {\r\n }\r\n });\r\n } else {\r\n if (this.message !== '') {\r\n this.message = '';\r\n } else {\r\n this.reprodutorService.insereReprodutor(this.data.semenTouroId).subscribe((response) => {\r\n });\r\n }\r\n }\r\n }\r\n\r\n validateReprodutor(): boolean {\r\n let isValid = true;\r\n const hasBreeder =\r\n this.data.semenTouroId.numero !== null\r\n && this.data.semenTouroId.numero !== undefined\r\n && this.data.semenTouroId.numero !== '';\r\n\r\n if (hasBreeder) {\r\n this.validReprodutor = this.data.semenTouroId;\r\n for (const item of this.reprodutorListAll) {\r\n if (item.cdreprodutor !== this.data.semenTouroId.cdreprodutor\r\n && item.numero.toUpperCase() === this.data.semenTouroId.numero.toUpperCase() ) {\r\n this.validReprodutor = [];\r\n isValid = false;\r\n this.showAlertDialog(`Este número já existe no cadastro`);\r\n }\r\n }\r\n } else {\r\n this.showAlertDialog(`É necessário informar o número`);\r\n isValid = false;\r\n }\r\n\r\n return isValid;\r\n }\r\n\r\n showAlertDialog(msg: string) {\r\n this.dialog.open(DialogoAlertaComponent, {\r\n data: {\r\n message: msg,\r\n buttonText: {\r\n cancel: 'OK'\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","export default \".menu-button {\\n margin-right: 24px;\\n min-width: 0;\\n padding: 0;\\n line-height: normal;\\n}\\n\\n.label {\\n font-weight: normal;\\n font-size: small;\\n}\\n\\n.user-name {\\n font-style: normal;\\n text-transform: uppercase;\\n font-size: small;\\n}\\n\\n.user-email {\\n font-style: normal;\\n font-size: x-small;\\n}\\n\\n.user-farm {\\n font-style: normal;\\n font-size: small;\\n}\\n\\n.sidenav-container {\\n flex: 1;\\n height: 850px;\\n}\\n\\n.sidenav-container .sidenav {\\n min-width: 240px;\\n background-color: #ECF0F5;\\n}\\n\\n.sidenav-container .sidenav a {\\n display: block;\\n padding: 6px 24px;\\n width: 100%;\\n text-align: left;\\n}\\n\\n.sidenav-content {\\n height: 850px;\\n background-color: #fff;\\n}\\n\\n.mat-nav-list .mat-list-item:not(:hover):focus {\\n background: none;\\n background-color: transparent;\\n}\\n\\n.mat-drawer-content {\\n overflow: auto;\\n}\\n\\n.mat-drawer {\\n background-color: #00578B;\\n}\\n\\n.mat-toolbar {\\n background-color: #00578B;\\n}\\n\\n.spacer {\\n flex: 1 1 auto;\\n}\\n\\n.user-data {\\n font-size: 1rem;\\n}\\n\\n.footer {\\n left: 0px;\\n padding-left: 10px;\\n padding-bottom: 10px;\\n padding-top: 10px;\\n font-size: 11px;\\n min-width: 210px;\\n color: lightgray;\\n height: 40px;\\n}\\n\\n::ng-deep .mat-snack-bar-container {\\n color: white;\\n}\\n\\n::ng-deep .mat-simple-snackbar-action {\\n color: white;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvaG9tZS9EOlxcUHJvamVjdHNcXGFsdGEtZ2VzdGFvLTA0XFxNYWluXFxWMlxcQWx0YUdlc3Rhby5XZWJcXGFsdGEtZ2VzdGFvL3NyY1xcYXBwXFxob21lXFxob21lLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9ob21lL2hvbWUuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxrQkFBQTtFQUNBLFlBQUE7RUFDQSxVQUFBO0VBQ0EsbUJBQUE7QUNDSjs7QURFQTtFQUNJLG1CQUFBO0VBQ0EsZ0JBQUE7QUNDSjs7QURDQTtFQUNJLGtCQUFBO0VBQ0EseUJBQUE7RUFDQSxnQkFBQTtBQ0VKOztBRENBO0VBQ0ksa0JBQUE7RUFDQSxrQkFBQTtBQ0VKOztBRENBO0VBQ0ksa0JBQUE7RUFDQSxnQkFBQTtBQ0VKOztBRENBO0VBQ0ksT0FBQTtFQUNBLGFBQUE7QUNFSjs7QURBSTtFQUNJLGdCQUFBO0VBQ0EseUJBQUE7QUNFUjs7QURBUTtFQUNJLGNBQUE7RUFDQSxpQkFBQTtFQUNBLFdBQUE7RUFDQSxnQkFBQTtBQ0VaOztBREdBO0VBQ0ksYUFBQTtFQUNBLHNCQUFBO0FDQUo7O0FER0E7RUFDSSxnQkFBQTtFQUNBLDZCQUFBO0FDQUo7O0FER0E7RUFDSSxjQUFBO0FDQUo7O0FER0E7RUFDSSx5QkFBQTtBQ0FKOztBREdBO0VBQ0kseUJBQUE7QUNBSjs7QURHQTtFQUNJLGNBQUE7QUNBSjs7QURHQTtFQUNNLGVBQUE7QUNBTjs7QURHQTtFQUNJLFNBQUE7RUFDQSxrQkFBQTtFQUNBLG9CQUFBO0VBQ0EsaUJBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQkFBQTtFQUNBLFlBQUE7QUNBSjs7QURHQTtFQUNJLFlBQUE7QUNBSjs7QURHQTtFQUNFLFlBQUE7QUNBRiIsImZpbGUiOiJzcmMvYXBwL2hvbWUvaG9tZS5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5tZW51LWJ1dHRvbiB7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDI0cHg7XHJcbiAgICBtaW4td2lkdGg6IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcclxufVxyXG5cclxuLmxhYmVsIHtcclxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICBmb250LXNpemU6IHNtYWxsO1xyXG59XHJcbi51c2VyLW5hbWUge1xyXG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIGZvbnQtc2l6ZTogc21hbGw7XHJcbn1cclxuXHJcbi51c2VyLWVtYWlsIHtcclxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgIGZvbnQtc2l6ZTogeC1zbWFsbDtcclxufVxyXG5cclxuLnVzZXItZmFybSB7XHJcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICBmb250LXNpemU6IHNtYWxsO1xyXG59XHJcblxyXG4uc2lkZW5hdi1jb250YWluZXIge1xyXG4gICAgZmxleDogMTtcclxuICAgIGhlaWdodDogODUwcHg7XHJcblxyXG4gICAgLnNpZGVuYXYge1xyXG4gICAgICAgIG1pbi13aWR0aDogMjQwcHg7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0VDRjBGNTtcclxuXHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiA2cHggMjRweDtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uc2lkZW5hdi1jb250ZW50IHtcclxuICAgIGhlaWdodDogODUwcHg7IFxyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxufVxyXG5cclxuLm1hdC1uYXYtbGlzdCAubWF0LWxpc3QtaXRlbTpub3QoOmhvdmVyKTpmb2N1cyB7XHJcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbn1cclxuXHJcbi5tYXQtZHJhd2VyLWNvbnRlbnQge1xyXG4gICAgb3ZlcmZsb3c6IGF1dG87XHJcbn1cclxuICBcclxuLm1hdC1kcmF3ZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNTc4QjtcclxufVxyXG5cclxuLm1hdC10b29sYmFyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDU3OEI7XHJcbn1cclxuXHJcbi5zcGFjZXIge1xyXG4gICAgZmxleDogMSAxIGF1dG87XHJcbiAgfVxyXG4gIFxyXG4udXNlci1kYXRhIHtcclxuICAgICAgZm9udC1zaXplOiAxcmVtO1xyXG4gIH1cclxuXHJcbi5mb290ZXIgeyBcclxuICAgIGxlZnQ6IDBweDsgXHJcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcclxuICAgIHBhZGRpbmctdG9wOiAxMHB4O1xyXG4gICAgZm9udC1zaXplOiAxMXB4O1xyXG4gICAgbWluLXdpZHRoOiAyMTBweDtcclxuICAgIGNvbG9yOiBsaWdodGdyYXk7XHJcbiAgICBoZWlnaHQ6IDQwcHg7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXNuYWNrLWJhci1jb250YWluZXIge1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uIHtcclxuICBjb2xvcjogd2hpdGU7XHJcbn1cclxuIiwiLm1lbnUtYnV0dG9uIHtcbiAgbWFyZ2luLXJpZ2h0OiAyNHB4O1xuICBtaW4td2lkdGg6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi5sYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogc21hbGw7XG59XG5cbi51c2VyLW5hbWUge1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogc21hbGw7XG59XG5cbi51c2VyLWVtYWlsIHtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXNpemU6IHgtc21hbGw7XG59XG5cbi51c2VyLWZhcm0ge1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogc21hbGw7XG59XG5cbi5zaWRlbmF2LWNvbnRhaW5lciB7XG4gIGZsZXg6IDE7XG4gIGhlaWdodDogODUwcHg7XG59XG4uc2lkZW5hdi1jb250YWluZXIgLnNpZGVuYXYge1xuICBtaW4td2lkdGg6IDI0MHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUNGMEY1O1xufVxuLnNpZGVuYXYtY29udGFpbmVyIC5zaWRlbmF2IGEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogNnB4IDI0cHg7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4uc2lkZW5hdi1jb250ZW50IHtcbiAgaGVpZ2h0OiA4NTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cblxuLm1hdC1uYXYtbGlzdCAubWF0LWxpc3QtaXRlbTpub3QoOmhvdmVyKTpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4ubWF0LWRyYXdlci1jb250ZW50IHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi5tYXQtZHJhd2VyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNTc4Qjtcbn1cblxuLm1hdC10b29sYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNTc4Qjtcbn1cblxuLnNwYWNlciB7XG4gIGZsZXg6IDEgMSBhdXRvO1xufVxuXG4udXNlci1kYXRhIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuXG4uZm9vdGVyIHtcbiAgbGVmdDogMHB4O1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICBwYWRkaW5nLXRvcDogMTBweDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBtaW4td2lkdGg6IDIxMHB4O1xuICBjb2xvcjogbGlnaHRncmF5O1xuICBoZWlnaHQ6IDQwcHg7XG59XG5cbjo6bmctZGVlcCAubWF0LXNuYWNrLWJhci1jb250YWluZXIge1xuICBjb2xvcjogd2hpdGU7XG59XG5cbjo6bmctZGVlcCAubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb24ge1xuICBjb2xvcjogd2hpdGU7XG59Il19 */\"","import { CadastroService } from 'src/app/_services/cadastro.service';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { MsalService } from '@azure/msal-angular';\r\nimport { MatDialog, MatSnackBar, MatSnackBarConfig } from '@angular/material';\r\nimport { DialogoConfirmacao } from '../_utils/dialogo-confirmacao/dialogo-confirmacao.component';\r\nimport { Pessoa } from 'src/models/pessoa.model';\r\nimport { UsuarioService } from '../_services/usuario.service';\r\nimport { PopUpAlteracaoFazendaComponent } from '../_utils/popup-alteracao-fazenda/popup-alteracao-fazendacomponent';\r\nimport { Fazenda } from 'src/models/fazenda.model';\r\nimport { AltaGestaoService } from '../_services/alta-gestao.service';\r\nimport { UsuarioFazenda } from 'src/models/usuario-fazenda.model';\r\nimport { Router } from '@angular/router';\r\nimport { Usuario } from 'src/models/usuario.model';\r\nimport { faList, faTachometerAlt, faChartBar, faIndustry, faCalculator, faListOl, faRetweet,\r\n faChartArea, faCalendarAlt, faPercent, faChartLine, faCalendarPlus, faUsers, faCubes, faSortAmountDownAlt,\r\n faTimes, faEye, faHourglassEnd, faMarsDouble, faThList, faLayerGroup, faLandmark,\r\n faDotCircle, faNeuter, faCogs, faFileArchive, faDna, faSortAmountDown, faChartPie,\r\n faSearchPlus, faCloud, faHashtag, faUserPlus, faObjectGroup, faFileMedical, faStepForward,\r\n faMapMarker, faMedkit, faSearch, faCalendar, faHistory, faCalendarCheck, faPlus, faMars,\r\n faWineBottle, faCompressArrowsAlt, faEdit, faUpload, faFileUpload, faDesktop } from '@fortawesome/free-solid-svg-icons';\r\nimport { EmailService } from '../_services/email.service';\r\nimport { Email } from 'src/models/email.model';\r\n\r\n@Component({\r\n selector: 'app-home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.scss']\r\n})\r\nexport class HomeComponent implements OnInit {\r\n\r\n isMenuOpen = true;\r\n carregandoFazenda = false;\r\n anoAtual: string;\r\n pessoa: Pessoa;\r\n emailUsuario: string;\r\n nomeUsuario: string;\r\n loginUsuario: string;\r\n nomeFazenda: string;\r\n usuariosFazenda: UsuarioFazenda[];\r\n claims: any;\r\n cdFazendaSelecionada = 0;\r\n erro = ``;\r\n fazendaSelecionada: Fazenda;\r\n existeFazendaSelecionada = true;\r\n erroCadastroAzure: boolean = false;\r\n email: Email;\r\n\r\n // icons\r\n faList = faList;\r\n faCircle = faDotCircle;\r\n faSchedule = faCalendarAlt;\r\n faProduction = faIndustry;\r\n faReproduction = faDna;\r\n faConfigurations = faCogs;\r\n faDashboard = faTachometerAlt;\r\n faAnalysis = faChartBar;\r\n faPregnacyDelDistribution = faChartArea;\r\n faServicesDelDitribution = faIndustry;\r\n faPregnancyLost = faTimes;\r\n faLactationCowsExpected = faEye;\r\n faServicesInterval = faHourglassEnd;\r\n faWeeklyServices = faCalendarAlt;\r\n faPregnancyServiceRate = faPercent;\r\n faConceptionRate = faNeuter;\r\n faConceptionRateByDEl = faChartLine;\r\n faConceptionRateByBreeder = faMarsDouble;\r\n faConceptionRateByProtocol = faCalendarPlus;\r\n faConceptionRateByMonth = faCalculator;\r\n faConceptionRateByParturitionOrder = faListOl;\r\n faConceptionRateByServiceInteraval = faRetweet;\r\n faConceptionRateByInseminator = faUsers;\r\n faConceptionRateByBloodGrade = faCubes;\r\n faConceptionRateByServiceNumber = faSortAmountDownAlt;\r\n faConceptionRateByServiceType = faThList;\r\n faConceptionRateConcatenated = faLayerGroup;\r\n faRegister = faFileMedical;\r\n faAltaCria = faChartLine;\r\n faColostragemMortalidade = faChartPie;\r\n faGpdQtdDoencas = faChartBar;\r\n faAgeDeseases = faChartArea;\r\n faDeseasesNumberMonths = faChartLine;\r\n faReproductionSimulator = faCalculator;\r\n faFarm = faLandmark;\r\n faGanhoPesoMeta = faIndustry;\r\n faSearchPlus = faSearchPlus;\r\n faBenchmarking = faCloud;\r\n faBenchmarkingGlobal = faDotCircle;\r\n faBenchmarkingEstado = faDotCircle;\r\n faBenchmarkingMesorregiao = faDotCircle;\r\n faBenchmarkingPerfilRebanho = faDotCircle;\r\n faBenchmarkingSistemaProducao = faDotCircle;\r\n faRelatorios = faFileArchive;\r\n faRelatorioDown = faSortAmountDown;\r\n faFarmCrud = faHashtag;\r\n faUserCrud = faUserPlus;\r\n faGroupCrud = faObjectGroup;\r\n faParameterCrud = faCogs;\r\n faInseminators = faUsers;\r\n faDryings = faStepForward;\r\n faLots = faMapMarker;\r\n faProtocols = faMedkit;\r\n faQuery = faSearch;\r\n faReproductionOcurrence = faCalendarCheck;\r\n faIATF = faCalendar;\r\n faMatrixHistory = faHistory;\r\n faMatrixRegister = faPlus;\r\n faBreeders = faMars;\r\n faDairyControl = faWineBottle;\r\n faRacialComposition = faCompressArrowsAlt;\r\n faReleases = faEdit;\r\n faQueries = faSearch;\r\n faImports = faUpload;\r\n faImportMatrix = faFileUpload;\r\n faTouch = faDesktop;\r\n\r\n snackBarConfig: MatSnackBarConfig = {\r\n panelClass: ['mat-snack-bar-container'],\r\n duration: 2500\r\n };\r\n\r\n constructor(\r\n private authService: MsalService,\r\n public dialog: MatDialog,\r\n private emailService: EmailService,\r\n private usuarioService: UsuarioService,\r\n private cadastroService: CadastroService,\r\n public altaGestaoService: AltaGestaoService,\r\n private snackBar: MatSnackBar,\r\n private router: Router) { }\r\n\r\n ngOnInit() {\r\n this.usuariosFazenda = [];\r\n this.setAnoAtual();\r\n if (this.getClaims()) {\r\n this.setEmailUsuarioSessao();\r\n this.setLoginUsuarioSessao();\r\n this.getPessoa();\r\n this.fazendaSelecionada = this.altaGestaoService.getFazendaSelecionada();\r\n this.existeFazendaSelecionada = this.fazendaSelecionada !== undefined && this.fazendaSelecionada !== null;\r\n }\r\n }\r\n\r\n enviaEmailNovoCadastro() {\r\n this.email = new Email();\r\n this.email.usuario = this.claims.given_name + ' ' + this.claims.family_name;\r\n this.email.email = this.claims.emails[0];\r\n this.email.fazenda = this.claims.extension_Farm ? this.claims.extension_Farm : this.nomeFazenda;\r\n this.email.dataCadastro = new Date();\r\n this.emailService.enviaEmailNovoCadastro(this.email).subscribe((response) => {\r\n }, (error) => console.error(error));\r\n }\r\n\r\n enviaEmailErroCadastro() {\r\n this.email = new Email();\r\n this.email.email = this.claims.emails[0];\r\n this.email.dataCadastro = new Date();\r\n this.emailService.enviaEmailErroCadastro(this.email).subscribe((response) => {\r\n }, (error) => console.error(error));\r\n }\r\n\r\n public onSidenavClick(): void {\r\n // this.isMenuOpen = this.isMenuOpen ? false : true;\r\n }\r\n\r\n getPessoa() {\r\n const usuarioSessao = this.getUsuarioSessao();\r\n const existeUsuarioSessao = usuarioSessao !== null && usuarioSessao !== undefined && usuarioSessao.cdpessoa > 0;\r\n if (!existeUsuarioSessao) {\r\n this.usuarioService.getUsuariLogadoPorEmail(this.emailUsuario).subscribe((response) => {\r\n this.pessoa = response;\r\n const existePessoaCadastrada =\r\n this.pessoa.cdpessoa !== undefined && this.pessoa.cdpessoa > 0;\r\n if (!existePessoaCadastrada) {\r\n this.insereUsuarioCadastradoNaAzure();\r\n } else if (!this.ehUsuarioBloqueado() && !this.ehUsuarioPendente()) {\r\n this.usuariosFazenda = this.pessoa.usuario.usuariofazenda;\r\n this.setUsuarioSessao();\r\n if (this.ehUsuarioVeterinario()) {\r\n this.abrePopupAlteracaoFazenda();\r\n }\r\n this.setFazendaSessao();\r\n }\r\n this.setNomeUsuarioSessao();\r\n const isNewUser = this.claims.newUser;\r\n if (isNewUser) {\r\n this.enviaEmailNovoCadastro();\r\n }\r\n }, (error) => console.error(error));\r\n } else {\r\n if (!this.ehUsuarioBloqueado() && !this.ehUsuarioPendente()) {\r\n this.pessoa = usuarioSessao;\r\n this.usuariosFazenda = usuarioSessao.usuario.usuariofazenda;\r\n this.setNomeUsuarioSessao();\r\n this.setFazendaSessao();\r\n }\r\n }\r\n }\r\n\r\n getUsuarioInserido() {\r\n this.usuarioService.getUsuariLogadoPorEmail(this.emailUsuario).subscribe((response) => {\r\n this.pessoa = response;\r\n if (!this.ehUsuarioBloqueado() && !this.ehUsuarioPendente()) {\r\n this.usuariosFazenda = this.pessoa.usuario.usuariofazenda;\r\n this.setUsuarioSessao();\r\n if (this.ehUsuarioVeterinario()) {\r\n this.abrePopupAlteracaoFazenda();\r\n }\r\n this.setNomeUsuarioSessao();\r\n this.setFazendaSessao();\r\n }\r\n }, (error) => console.error(error));\r\n }\r\n\r\n insereUsuarioCadastradoNaAzure() {\r\n this.cadastroService.insereUsuarioCadastradoNaAzure(this.criaUsuario()).subscribe((response) => {\r\n const hasResponse = response !== undefined && response !== null;\r\n if (hasResponse) {\r\n const isError = response[`isError`] !== undefined && response[`isError`] !== null;\r\n if (isError) {\r\n const hasError = response[`isError`] === true;\r\n console.log(response[`isError`]);\r\n if (hasError) {\r\n this.erro = response[`mensagem`];\r\n console.log(response[`mensagem`]);\r\n }\r\n }\r\n } else {\r\n this.getUsuarioInserido();\r\n }\r\n }, (error) => console.error(error));\r\n }\r\n\r\n criaUsuario(): Usuario {\r\n const usuario = new Usuario();\r\n usuario.apelido = this.claims.name;\r\n usuario.bloqueado = false;\r\n usuario.pendente = true;\r\n usuario.indicacao = this.claims.extension_WhoReferredTheSystem;\r\n usuario.cdpessoa = 0;\r\n usuario.nome = this.claims.given_name + ' ' + this.claims.family_name;\r\n usuario.email = this.claims.emails[0];\r\n usuario.cnpj = this.claims.extension_Identification;\r\n // user.login = this.claims.extension_Login;\r\n usuario.login = this.claims.emails[0];\r\n usuario.perfilAcesso = 2;\r\n usuario.usuariofazenda = [];\r\n usuario.usuariofazenda.push(this.criaUsuarioFazenda());\r\n usuario.pessoa = new Pessoa();\r\n return usuario;\r\n }\r\n\r\n criaFazenda(): Fazenda {\r\n const fazenda = new Fazenda();\r\n fazenda.nome = this.claims.extension_Farm;\r\n fazenda.proprietario = this.claims.extension_FarmOwner;\r\n fazenda.cdperfilracialrebanho = this.claims.extension_HerdProfile;\r\n fazenda.cdsistemaproducao = this.claims.extension_ProductionSystem;\r\n fazenda.cdpais = this.claims.extension_FarmCountry;\r\n fazenda.cduf = this.claims.extension_FarmState;\r\n fazenda.cdmunicipio = this.claims.extension_FarmCity;\r\n // farm.cidade = this.claims.extension_FarmCity;\r\n fazenda.telefone = this.claims.extension_Phone;\r\n return fazenda;\r\n }\r\n\r\n criaUsuarioFazenda(): UsuarioFazenda {\r\n const usuarioFazenda = new UsuarioFazenda();\r\n usuarioFazenda.fazenda = this.criaFazenda();\r\n return usuarioFazenda;\r\n }\r\n\r\n ehUsuarioVeterinario(): boolean {\r\n return (this.usuariosFazenda.length > 1);\r\n }\r\n\r\n getUsuarioSessao(): Pessoa {\r\n const currentUser = JSON.parse(sessionStorage.getItem('currentUser'));\r\n return currentUser;\r\n }\r\n\r\n setUsuarioSessao() {\r\n sessionStorage.setItem('currentUser', JSON.stringify(this.pessoa));\r\n }\r\n\r\n setNomeUsuarioSessao() {\r\n // this.nomeUsuario = this.claims.given_name;\r\n this.nomeUsuario = this.pessoa.nome;\r\n }\r\n\r\n setEmailUsuarioSessao() {\r\n this.emailUsuario = this.claims.emails[0];\r\n }\r\n\r\n setLoginUsuarioSessao() {\r\n this.loginUsuario = this.claims.extension_Login;\r\n }\r\n\r\n getFazendaSessao(): Fazenda {\r\n const currentFarm = JSON.parse(sessionStorage.getItem(`currentFarm`));\r\n return currentFarm;\r\n }\r\n\r\n setFazendaSessao() {\r\n let fazendaSessao = this.getFazendaSessao();\r\n if (fazendaSessao === null || fazendaSessao === undefined || fazendaSessao.cdfazenda === 0) {\r\n const existeFazendaLogada = this.usuariosFazenda !== undefined && this.usuariosFazenda.length > 0;\r\n if (existeFazendaLogada) {\r\n fazendaSessao = this.usuariosFazenda[0].fazenda;\r\n this.nomeFazenda = fazendaSessao.nome;\r\n sessionStorage.setItem(`currentFarm`, JSON.stringify(fazendaSessao));\r\n this.cdFazendaSelecionada = fazendaSessao.cdfazenda;\r\n }\r\n } else {\r\n this.nomeFazenda = fazendaSessao.nome;\r\n this.cdFazendaSelecionada = fazendaSessao.cdfazenda;\r\n }\r\n }\r\n\r\n getClaims() {\r\n const claims = this.authService.getAccount().idTokenClaims;\r\n this.claims = claims;\r\n const isAdmin = claims['name'] === 'Admin';\r\n\r\n if (!isAdmin) {\r\n const requiredClaims = ['extension_Farm', 'extension_FarmCity', 'extension_FarmOwner', 'extension_FarmState'];\r\n const missingRequiredClaim = requiredClaims.some(claim => !claims[claim]);\r\n\r\n if (missingRequiredClaim) {\r\n this.erroCadastroAzure = true;\r\n this.enviaEmailErroCadastro();\r\n return false;\r\n }\r\n }\r\n\r\n for (const claim in this.claims) {\r\n if (claim !== 'extension_WhoReferredTheSystem' &&\r\n this.claims.hasOwnProperty(claim) && (this.claims[claim] === '' || this.claims[claim] === null || typeof this.claims[claim] === 'undefined'\r\n || (claim === 'extension_FarmCity' && this.claims[claim] === \"0\") || (claim === 'name' && this.claims[claim] === \"unknown\")\r\n || (claim === 'extension_HerdProfile' && this.claims[claim] === \"0\"))\r\n ) {\r\n this.erroCadastroAzure = true;\r\n this.enviaEmailErroCadastro();\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n abrePopupAlteracaoFazenda() {\r\n const dialogRef = this.dialog.open(PopUpAlteracaoFazendaComponent, {\r\n disableClose: true,\r\n height: '10px',\r\n width: '500px',\r\n position: { top: 100 + 'px' }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n const hasResult =\r\n result !== ''\r\n && result !== undefined\r\n && result !== null;\r\n\r\n if (hasResult) {\r\n if (result === `nenhumaFazendaSelecionada`) {\r\n this.nomeFazenda = ``;\r\n } else if (result.cdfazenda !== undefined && result.cdfazenda > 0) {\r\n this.nomeFazenda = result.nome;\r\n const message = `A fazenda ${ this.nomeFazenda } foi selecionada. Aguarde enquanto os dados são carregados.`;\r\n this.showSnackBar(message);\r\n this.recarregaTela();\r\n }\r\n } else {\r\n this.nomeFazenda = ``;\r\n }\r\n });\r\n }\r\n\r\n recarregaTela() {\r\n this.carregandoFazenda = true;\r\n const currentUrl = this.router.url;\r\n this.router.navigate([currentUrl])\r\n .then(() => {\r\n window.location.reload();\r\n this.carregandoFazenda = false;\r\n });\r\n }\r\n\r\n logout(): void {\r\n this.removeUsuarioSessao();\r\n this.removeFazendaSessao();\r\n this.authService.logout();\r\n }\r\n\r\n openLogoutDialog() {\r\n const dialogRef = this.dialog.open(DialogoConfirmacao, {\r\n data: {\r\n message: 'Deseja realmente sair do Alta Gestão ?',\r\n buttonText: {\r\n ok: 'Sim',\r\n cancel: 'Não'\r\n }\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((confirmed: boolean) => {\r\n if (confirmed) {\r\n this.logout();\r\n }\r\n });\r\n }\r\n\r\n showSnackBar(message: string) {\r\n this.snackBar.open(message, 'X', this.snackBarConfig);\r\n }\r\n\r\n removeUsuarioSessao() {\r\n sessionStorage.removeItem('currentUser');\r\n }\r\n\r\n removeFazendaSessao() {\r\n sessionStorage.removeItem('currentFarm');\r\n }\r\n\r\n setAnoAtual() {\r\n this.anoAtual = new Date().getFullYear().toString();\r\n }\r\n\r\n ehUsuarioBloqueado(): boolean {\r\n if (this.pessoa && this.pessoa.usuario) {\r\n return (this.pessoa.usuario.bloqueado);\r\n }\r\n return false;\r\n }\r\n\r\n ehUsuarioPendente(): boolean {\r\n if (this.pessoa && this.pessoa.usuario) {\r\n return (this.pessoa.usuario.pendente);\r\n }\r\n return false;\r\n }\r\n\r\n ehUsuarioAdministrador(): boolean {\r\n return this.altaGestaoService.ehUsuarioAdministrador();\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2xvZ2luL2xvZ2luLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { apiConfig } from '../_authorization/auth.config';\r\nimport { Router } from '@angular/router';\r\nimport { MsalService } from '@azure/msal-angular';\r\n\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.scss']\r\n})\r\nexport class LoginComponent implements OnInit {\r\n\r\n loading = true;\r\n\r\n constructor(\r\n private authService: MsalService,\r\n private router: Router) { }\r\n\r\n ngOnInit() {\r\n this.acquireTokenSilent();\r\n }\r\n\r\n acquireTokenSilent() {\r\n this.authService.acquireTokenSilent({ scopes: apiConfig.b2cScopes })\r\n .then((tokenResponse) => {\r\n this.router.navigate(['/inicio']);\r\n })\r\n .catch((error) => {\r\n // este método é um paleativo para o problema de login no Azure \r\n // ClientAuthError: Token renewal operation failed due to timeout.\r\n this.acquireTokenPopup();\r\n })\r\n .finally(() => {\r\n this.loading = false;\r\n });\r\n }\r\n\r\n acquireTokenPopup() {\r\n this.authService.acquireTokenPopup({ scopes: apiConfig.b2cScopes })\r\n .then((tokenResponse) => {\r\n this.router.navigate(['/inicio']);\r\n })\r\n .catch((error) => {})\r\n .finally(() => {\r\n this.loading = false;\r\n });\r\n }\r\n\r\n login() {\r\n this.authService.loginRedirect();\r\n }\r\n}\r\n","export default \".custom-date-class {\\n background: #ECF0F5;\\n border-radius: 100%;\\n}\\n\\n.checkbox-section {\\n display: block;\\n align-content: center;\\n align-items: center;\\n height: 60px;\\n}\\n\\n.parent {\\n display: flex;\\n overflow: hidden;\\n margin-top: -55px;\\n margin-left: -8px;\\n margin-right: -8px;\\n border: 1px solid #cccccc;\\n border-radius: 4px;\\n padding: 0;\\n}\\n\\n.column {\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.left {\\n width: 128px;\\n margin-left: 4px;\\n}\\n\\n.right {\\n padding-top: 10px !important;\\n}\\n\\n.center {\\n width: 89px;\\n}\\n\\n.midlle {\\n width: 120px;\\n}\\n\\n.header {\\n font-size: 16px;\\n margin-left: 10px;\\n margin-bottom: -12px;\\n background-color: white;\\n width: 73px;\\n padding-left: 5px;\\n}\\n\\n.sub-header {\\n font-size: 14px;\\n margin-top: -16px;\\n background-color: white;\\n}\\n\\n.borda {\\n border: 1px solid #cccccc;\\n border-radius: 4px;\\n padding: 5px;\\n margin: 15px 5px 5px 5px;\\n width: 400px;\\n}\\n\\n.example-radio-group {\\n display: flex !important;\\n flex-direction: column !important;\\n margin: 0;\\n margin-top: 5px;\\n padding: 0;\\n}\\n\\n.isDisabled {\\n color: #cecece !important;\\n border: 1px solid #ececec !important;\\n}\\n\\n.hasError {\\n color: red !important;\\n border-bottom: 1px solid red !important;\\n}\\n\\n.parent2 {\\n display: flex;\\n overflow: hidden;\\n border: 1px solid #cccccc;\\n border-radius: 4px;\\n padding-top: 20px !important;\\n padding-bottom: 1px !important;\\n margin-top: -22px !important;\\n margin-left: 15px;\\n margin-right: 15px;\\n}\\n\\n.center2 {\\n width: 175px;\\n}\\n\\n.column2 {\\n display: flex;\\n flex-direction: column;\\n float: left;\\n position: absolute;\\n}\\n\\n.header2 {\\n font-size: 12px;\\n margin-left: 10px;\\n margin-top: -28px !important;\\n background-color: white;\\n width: 30px;\\n padding-left: 5px;\\n}\\n\\n.example-radio-group2 {\\n display: flex !important;\\n flex-direction: column !important;\\n font-size: 14px;\\n margin-left: 10px !important;\\n}\\n\\n::ng-deep .mat-snack-bar-container {\\n color: white;\\n}\\n\\n::ng-deep .mat-simple-snackbar-action {\\n color: white;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWF0cml4L21hdHJpei1jYWRhc3Ryby9EOlxcUHJvamVjdHNcXGFsdGEtZ2VzdGFvLTA0XFxNYWluXFxWMlxcQWx0YUdlc3Rhby5XZWJcXGFsdGEtZ2VzdGFvL3NyY1xcYXBwXFxtYXRyaXhcXG1hdHJpei1jYWRhc3Ryb1xcbWF0cml6LWNhZGFzdHJvLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9tYXRyaXgvbWF0cml6LWNhZGFzdHJvL21hdHJpei1jYWRhc3Ryby5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLG1CQUFBO0VBQ0EsbUJBQUE7QUNDSjs7QURFQTtFQUNJLGNBQUE7RUFDQSxxQkFBQTtFQUNBLG1CQUFBO0VBQ0EsWUFBQTtBQ0NKOztBREVBO0VBQ0UsYUFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0VBQ0EseUJBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7QUNDRjs7QURFQTtFQUNFLGFBQUE7RUFDQSxzQkFBQTtBQ0NGOztBREVBO0VBQ0ksWUFBQTtFQUNBLGdCQUFBO0FDQ0o7O0FERUE7RUFDRSw0QkFBQTtBQ0NGOztBREVBO0VBQ0ksV0FBQTtBQ0NKOztBREVBO0VBQ0ksWUFBQTtBQ0NKOztBREVBO0VBQ0UsZUFBQTtFQUNBLGlCQUFBO0VBQ0Esb0JBQUE7RUFDQSx1QkFBQTtFQUNBLFdBQUE7RUFDQSxpQkFBQTtBQ0NGOztBREVBO0VBQ0UsZUFBQTtFQUNBLGlCQUFBO0VBRUEsdUJBQUE7QUNBRjs7QURHQTtFQUVFLHlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0VBQ0Esd0JBQUE7RUFDQSxZQUFBO0FDREY7O0FES0E7RUFDRSx3QkFBQTtFQUNBLGlDQUFBO0VBQ0EsU0FBQTtFQUNBLGVBQUE7RUFDQSxVQUFBO0FDRkY7O0FET0E7RUFDRSx5QkFBQTtFQUNBLG9DQUFBO0FDSkY7O0FET0E7RUFDRSxxQkFBQTtFQUNBLHVDQUFBO0FDSkY7O0FET0E7RUFDRSxhQUFBO0VBQ0EsZ0JBQUE7RUFJQSx5QkFBQTtFQUNBLGtCQUFBO0VBQ0EsNEJBQUE7RUFDQSw4QkFBQTtFQUNBLDRCQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtBQ1BGOztBRFVBO0VBQ0UsWUFBQTtBQ1BGOztBRFVBO0VBQ0UsYUFBQTtFQUNBLHNCQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0FDUEY7O0FEVUE7RUFDRSxlQUFBO0VBQ0EsaUJBQUE7RUFFQSw0QkFBQTtFQUNBLHVCQUFBO0VBQ0EsV0FBQTtFQUNBLGlCQUFBO0FDUkY7O0FEV0E7RUFDRSx3QkFBQTtFQUNBLGlDQUFBO0VBS0EsZUFBQTtFQUNBLDRCQUFBO0FDWkY7O0FEZUE7RUFDRSxZQUFBO0FDWkY7O0FEZUE7RUFDQSxZQUFBO0FDWkEiLCJmaWxlIjoic3JjL2FwcC9tYXRyaXgvbWF0cml6LWNhZGFzdHJvL21hdHJpei1jYWRhc3Ryby5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jdXN0b20tZGF0ZS1jbGFzcyB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjRUNGMEY1O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTtcclxuICB9XHJcblxyXG4uY2hlY2tib3gtc2VjdGlvbiB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBoZWlnaHQ6IDYwcHg7XHJcbiAgfVxyXG5cclxuLnBhcmVudCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIG1hcmdpbi10b3A6IC01NXB4O1xyXG4gIG1hcmdpbi1sZWZ0OiAtOHB4O1xyXG4gIG1hcmdpbi1yaWdodDogLThweDtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjY2NjO1xyXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG4uY29sdW1ue1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxufVxyXG5cclxuLmxlZnQge1xyXG4gICAgd2lkdGg6IDEyOHB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IDRweDtcclxuICB9XHJcblxyXG4ucmlnaHQge1xyXG4gIHBhZGRpbmctdG9wOiAxMHB4ICFJbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5jZW50ZXJ7XHJcbiAgICB3aWR0aDogODlweDtcclxuICB9XHJcblxyXG4ubWlkbGxle1xyXG4gICAgd2lkdGg6IDEyMHB4O1xyXG59XHJcblxyXG4uaGVhZGVye1xyXG4gIGZvbnQtc2l6ZTogMTZweDtcclxuICBtYXJnaW4tbGVmdDogMTBweDtcclxuICBtYXJnaW4tYm90dG9tOiAtMTJweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICB3aWR0aDogNzNweDtcclxuICBwYWRkaW5nLWxlZnQ6IDVweDtcclxufVxyXG5cclxuLnN1Yi1oZWFkZXJ7XHJcbiAgZm9udC1zaXplOiAxNHB4OyBcclxuICBtYXJnaW4tdG9wOiAtMTZweDtcclxuICBcclxuICBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO1xyXG59XHJcblxyXG4uYm9yZGF7XHJcbiAgXHJcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjY2NjYztcclxuICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgcGFkZGluZzogNXB4O1xyXG4gIG1hcmdpbjogMTVweCA1cHggNXB4IDVweDtcclxuICB3aWR0aDogNDAwcHg7XHJcbiAgXHJcbn1cclxuXHJcbi5leGFtcGxlLXJhZGlvLWdyb3VwIHtcclxuICBkaXNwbGF5OiBmbGV4ICFJbXBvcnRhbnQ7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhSW1wb3J0YW50O1xyXG4gIG1hcmdpbjogMDtcclxuICBtYXJnaW4tdG9wOiA1cHg7XHJcbiAgcGFkZGluZzogMDtcclxufVxyXG5cclxuLy8gYWNyZXNjaW1vc1xyXG5cclxuLmlzRGlzYWJsZWQge1xyXG4gIGNvbG9yOiAjY2VjZWNlICFJbXBvcnRhbnQ7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgI2VjZWNlYyAhSW1wb3J0YW50O1xyXG59XHJcblxyXG4uaGFzRXJyb3J7XHJcbiAgY29sb3I6IHJlZCAhSW1wb3J0YW50O1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZWQgIUltcG9ydGFudDtcclxufVxyXG5cclxuLnBhcmVudDIge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAvLyBtYXJnaW4tdG9wOiAtMjA1cHg7XHJcbiAgLy8gbWFyZ2luLWxlZnQ6IC04cHg7XHJcbiAgLy8gbWFyZ2luLXJpZ2h0OiAtOHB4O1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XHJcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gIHBhZGRpbmctdG9wOiAyMHB4ICFJbXBvcnRhbnQ7XHJcbiAgcGFkZGluZy1ib3R0b206IDFweCAhSW1wb3J0YW50O1xyXG4gIG1hcmdpbi10b3A6IC0yMnB4ICFJbXBvcnRhbnQ7XHJcbiAgbWFyZ2luLWxlZnQ6IDE1cHg7XHJcbiAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xyXG59XHJcblxyXG4uY2VudGVyMntcclxuICB3aWR0aDogMTc1cHg7XHJcbn1cclxuXHJcbi5jb2x1bW4ye1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBmbG9hdDogbGVmdDtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbn1cclxuXHJcbi5oZWFkZXIye1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBtYXJnaW4tbGVmdDogMTBweDtcclxuICAvLyBtYXJnaW4tYm90dG9tOiAtMTJweDtcclxuICBtYXJnaW4tdG9wOiAtMjhweCAhSW1wb3J0YW50O1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gIHdpZHRoOiAzMHB4O1xyXG4gIHBhZGRpbmctbGVmdDogNXB4O1xyXG59XHJcblxyXG4uZXhhbXBsZS1yYWRpby1ncm91cDIge1xyXG4gIGRpc3BsYXk6IGZsZXggIUltcG9ydGFudDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFJbXBvcnRhbnQ7XHJcbiAgLy8gbWFyZ2luOiAwO1xyXG4gIC8vIG1hcmdpbi10b3A6IDVweDtcclxuICAvLyBwYWRkaW5nOiAwO1xyXG4gIC8vIHBhZGRpbmc6IDExcHg7XHJcbiAgZm9udC1zaXplOiAxNHB4O1xyXG4gIG1hcmdpbi1sZWZ0OiAxMHB4ICFJbXBvcnRhbnQ7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXNuYWNrLWJhci1jb250YWluZXIge1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbiB7XHJcbmNvbG9yOiB3aGl0ZTtcclxufSIsIi5jdXN0b20tZGF0ZS1jbGFzcyB7XG4gIGJhY2tncm91bmQ6ICNFQ0YwRjU7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG59XG5cbi5jaGVja2JveC1zZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgaGVpZ2h0OiA2MHB4O1xufVxuXG4ucGFyZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luLXRvcDogLTU1cHg7XG4gIG1hcmdpbi1sZWZ0OiAtOHB4O1xuICBtYXJnaW4tcmlnaHQ6IC04cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgcGFkZGluZzogMDtcbn1cblxuLmNvbHVtbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5sZWZ0IHtcbiAgd2lkdGg6IDEyOHB4O1xuICBtYXJnaW4tbGVmdDogNHB4O1xufVxuXG4ucmlnaHQge1xuICBwYWRkaW5nLXRvcDogMTBweCAhaW1wb3J0YW50O1xufVxuXG4uY2VudGVyIHtcbiAgd2lkdGg6IDg5cHg7XG59XG5cbi5taWRsbGUge1xuICB3aWR0aDogMTIwcHg7XG59XG5cbi5oZWFkZXIge1xuICBmb250LXNpemU6IDE2cHg7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAtMTJweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHdpZHRoOiA3M3B4O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbn1cblxuLnN1Yi1oZWFkZXIge1xuICBmb250LXNpemU6IDE0cHg7XG4gIG1hcmdpbi10b3A6IC0xNnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cblxuLmJvcmRhIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjY2NjYztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBwYWRkaW5nOiA1cHg7XG4gIG1hcmdpbjogMTVweCA1cHggNXB4IDVweDtcbiAgd2lkdGg6IDQwMHB4O1xufVxuXG4uZXhhbXBsZS1yYWRpby1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xuICBtYXJnaW46IDA7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgcGFkZGluZzogMDtcbn1cblxuLmlzRGlzYWJsZWQge1xuICBjb2xvcjogI2NlY2VjZSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZWNlY2VjICFpbXBvcnRhbnQ7XG59XG5cbi5oYXNFcnJvciB7XG4gIGNvbG9yOiByZWQgIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJlZCAhaW1wb3J0YW50O1xufVxuXG4ucGFyZW50MiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgcGFkZGluZy10b3A6IDIwcHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDFweCAhaW1wb3J0YW50O1xuICBtYXJnaW4tdG9wOiAtMjJweCAhaW1wb3J0YW50O1xuICBtYXJnaW4tbGVmdDogMTVweDtcbiAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xufVxuXG4uY2VudGVyMiB7XG4gIHdpZHRoOiAxNzVweDtcbn1cblxuLmNvbHVtbjIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbG9hdDogbGVmdDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuXG4uaGVhZGVyMiB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIG1hcmdpbi10b3A6IC0yOHB4ICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICB3aWR0aDogMzBweDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5cbi5leGFtcGxlLXJhZGlvLWdyb3VwMiB7XG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDE0cHg7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4ICFpbXBvcnRhbnQ7XG59XG5cbjo6bmctZGVlcCAubWF0LXNuYWNrLWJhci1jb250YWluZXIge1xuICBjb2xvcjogd2hpdGU7XG59XG5cbjo6bmctZGVlcCAubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb24ge1xuICBjb2xvcjogd2hpdGU7XG59Il19 */\"","import { ProducaoService } from './../../_services/producao.service';\r\nimport { DatePipe } from '@angular/common';\r\nimport { MatrizMaeCadastroComponent } from '../matriz-mae-cadastro/matriz-mae-cadastro.component';\r\nimport { Component, OnInit, Inject, ViewChild } from '@angular/core';\r\nimport { MatInput, MatRadioButton, MatSnackBar, MatSnackBarConfig, MAT_DATE_FORMATS } from '@angular/material';\r\nimport {MAT_DIALOG_DATA, MatDialogRef, MatDialog} from '@angular/material/dialog';\r\nimport { GridDataResult, DataItem } from '@progress/kendo-angular-grid';\r\nimport { SortDescriptor } from '@progress/kendo-data-query';\r\nimport { DialogoConfirmacao } from 'src/app/_utils/dialogo-confirmacao/dialogo-confirmacao.component';\r\nimport { MatrizService } from 'src/app/_services/matriz.service';\r\nimport { ConfiguracoesService } from 'src/app/_services/configuracoes.service';\r\nimport { Raca } from 'src/models/configuracoes/raca.model';\r\nimport { BaseTouro } from 'src/models/configuracoes/base-touros.model';\r\nimport { ComposicaoRacial } from 'src/models/matriz/composicao-racial.model';\r\nimport { Lote } from 'src/models/matriz/lote.model';\r\nimport { DialogoAlertaComponent } from 'src/app/_utils/dialogo-alerta/dialogo-alerta.component';\r\nimport { faFilter } from '@fortawesome/free-solid-svg-icons';\r\nimport { SemenTouro } from 'src/models/configuracoes/semen-touro.model';\r\nimport { Reprodutor } from 'src/models/configuracoes/reprodutor.model';\r\nimport { Matriz } from 'src/models/matriz/matriz.model';\r\nimport { PesagemCadastroComponent } from 'src/app/alta-cria/pesagem-cadastro/pesagem-cadastro.component';\r\nimport { ColostragemCadastroComponent } from 'src/app/alta-cria/colostragem-cadastro/colostragem-cadastro.component';\r\nimport { EventosCadastroComponent } from 'src/app/alta-cria/eventos-cadastro/eventos-cadastro.component';\r\nimport { MotivoBaixa } from 'src/models/matriz/motivo-baixa.model';\r\nimport { Genealogia } from 'src/models/matriz/genealogia.model';\r\nimport { HistoricoDeMatriz } from 'src/models/matriz/historico-matriz.model';\r\nimport { Reproducao } from 'src/models/matriz/reproducao.models';\r\nimport { MatrizHistoricoCadastroComponent } from '../matriz-historico-cadastro/matriz-historico-cadastro.component';\r\nimport { MY_DATE_FORMATS } from 'src/app/_utils/calendar-date-format.utils';\r\nimport * as moment from 'moment';\r\nimport { AltaGestaoService } from 'src/app/_services/alta-gestao.service';\r\nimport { BaseTouroFiltro } from 'src/models/configuracoes/base-touros-filtro.model';\r\nimport { ReproducaoService } from 'src/app/_services/reproducao.service';\r\nimport { ControleLeiteiro } from 'src/models/producao/controle-leiteiro.model';\r\n\r\n@Component({\r\n selector: 'app-matriz-cadastro',\r\n templateUrl: './matriz-cadastro.component.html',\r\n styleUrls: ['./matriz-cadastro.component.scss'],\r\n providers: [\r\n { provide: MAT_DATE_FORMATS, useValue: MY_DATE_FORMATS }\r\n ]\r\n})\r\nexport class MatrizCadastroComponent implements OnInit {\r\n\r\n @ViewChild('infoRealNascer0', { static: false }) infoRealNascer0: MatRadioButton;\r\n @ViewChild('infoRealNascer1', { static: false }) infoRealNascer1: MatRadioButton;\r\n @ViewChild('infoRealDesaleitamento0', { static: false }) infoRealDesaleitamento0: MatRadioButton;\r\n @ViewChild('infoRealDesaleitamento1', { static: false }) infoRealDesaleitamento1: MatRadioButton;\r\n @ViewChild('tipo0', { static: false }) tipo0: MatRadioButton;\r\n @ViewChild('tipo1', { static: false }) tipo1: MatRadioButton;\r\n @ViewChild('ativo0', { static: false }) ativo0: MatRadioButton;\r\n @ViewChild('ativo1', { static: false }) ativo1: MatRadioButton;\r\n @ViewChild('desc', { static: false }) private desc: MatInput;\r\n @ViewChild('tiporeprodutor0', { static: false }) tiporeprodutor0: MatRadioButton;\r\n @ViewChild('tiporeprodutor1', { static: false }) tiporeprodutor1: MatRadioButton;\r\n\r\n matrixPanelOpenState = true;\r\n altaCriaPanelOpenState = false;\r\n historyPanelOpenState = false;\r\n hasChangesComp = false;\r\n hasChangesLot = false;\r\n hasChanges = false;\r\n hasChangesPai = false;\r\n hasChangesMother = false;\r\n hasError = false;\r\n desabilita = false;\r\n loading = false;\r\n loadingHistories = false;\r\n editComp = false;\r\n editLote = false;\r\n editPai = false;\r\n editMother = false;\r\n edited = false;\r\n editBaseTouros = false;\r\n carregado = false;\r\n\r\n raca: Array;\r\n // racaList: Array;\r\n compositionList: Array;\r\n composicoesRaciais: Array;\r\n lotes: Array;\r\n // racas = [];\r\n reprodutorListAll: Array;\r\n reprodutorList: Array;\r\n semenTourosListAll: Array;\r\n semenTourosList: Array;\r\n baseTourosListAll: Array;\r\n baseTourosList: Array;\r\n racaListAll: Array;\r\n resultFilter: Array;\r\n composicao: Array;\r\n reprodutor: Array;\r\n motivosBaixa: Array;\r\n lote: Array;\r\n genealogias: Array;\r\n historicos: Array;\r\n reproducao: Array;\r\n matrizes: Array;\r\n historicoMatriz: HistoricoDeMatriz[];\r\n controlesLeiteiros: ControleLeiteiro[];\r\n\r\n clickedRowItem: any;\r\n racialCompositionId: any;\r\n validComposition: any;\r\n lotId: any;\r\n motherId: any;\r\n grandfatherId: any;\r\n validLot: any;\r\n validReprodutor: any;\r\n semenTouroId: any;\r\n reprodutorId: any;\r\n validMatrix: any;\r\n matrixNumberTemp: any;\r\n\r\n message = '';\r\n perc1: string;\r\n perc2: string;\r\n perc3: string;\r\n perc4: string;\r\n perc5: string;\r\n rac1: string;\r\n rac2: string;\r\n rac3: string;\r\n rac4: string;\r\n rac5: string;\r\n percTotal = 0;\r\n msg = '';\r\n msgPercentual = '';\r\n msgTotal: string;\r\n msgPreenchimento = '';\r\n msgValidFill = '';\r\n msgRaca = '';\r\n\r\n gridView: GridDataResult;\r\n matrixSort: SortDescriptor[] = [{ field: 'name', dir: 'asc' }];\r\n gridSelection: any[] = [];\r\n\r\n avoSelecionado: number;\r\n paiSelecionado: number;\r\n semenCodePai: string;\r\n totalPartos = 0;\r\n numPartos = 0;\r\n total = 0;\r\n\r\n selectedValue = 0;\r\n selectedHistory: HistoricoDeMatriz;\r\n\r\n filterBaseTouros = faFilter;\r\n\r\n F4 = `F4`;\r\n\r\n snackBarConfig: MatSnackBarConfig = {\r\n panelClass: ['mat-snack-bar-container'],\r\n duration: 2500\r\n };\r\n\r\n selectedCallback = (args: { dataItem: any; }) => args.dataItem;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n public dialog: MatDialog,\r\n private snackBar: MatSnackBar,\r\n private dialogRef: MatDialogRef,\r\n private matrizService: MatrizService,\r\n private configuracoesService: ConfiguracoesService,\r\n private reproducaoService: ReproducaoService,\r\n private producaoService: ProducaoService,\r\n private altaGestaoService: AltaGestaoService,\r\n private datePipe: DatePipe) {\r\n const hasMatrixNumber = this.data.matrixId.numero !== undefined && this.data.matrixId.numero !== null;\r\n if (hasMatrixNumber) {\r\n this.matrixNumberTemp = this.data.matrixId.numero;\r\n }\r\n }\r\n\r\n cancel() {\r\n this.dialogRef.close({ data: 'cancelar' });\r\n }\r\n\r\n confirm() {\r\n if (this.validaMatriz()) {\r\n this.save();\r\n this.dialogRef.close({ infoRealNascer0: this.infoRealNascer0.checked\r\n , infoRealNascer1: this.infoRealNascer1.checked\r\n , infoRealDesaleitamento0: this.infoRealDesaleitamento0.checked\r\n , infoRealDesaleitamento1: this.infoRealDesaleitamento1.checked\r\n , matrixId: this.data.matrixId\r\n });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n // this.racaList = [];\r\n this.compositionList = [];\r\n this.totalPartos = this.data.numPartos !== undefined ? this.data.numPartos : this.totalPartos;\r\n this.numPartos = this.totalPartos;\r\n this.selectedValue = -1;\r\n this.onPartosTotais(this.data.matrixId.numpartoinicio);\r\n this.getRacas();\r\n this.getAllComposition();\r\n this.getAllLot();\r\n this.getAllReprodutor();\r\n this.getSemenTouro();\r\n this.getRaca();\r\n this.getGenealogia();\r\n this.getHistoricosDeMatriz();\r\n this.getComposicoesRaciais();\r\n this.getReprodutores();\r\n this.getLotes();\r\n this.getMotivoBaixa();\r\n this.getMatrizes();\r\n this.getReproducoes();\r\n this.getControlesLeiteiros();\r\n }\r\n\r\n getMatrizes() {\r\n this.loading = true;\r\n this.matrizService.getMatrizes().subscribe((response) => {\r\n this.matrizes = response;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n getComposicoesRaciais() {\r\n this.loading = true;\r\n this.matrizService.getComposicaoRacial().subscribe((response) => {\r\n this.composicao = response;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n getReprodutores() {\r\n this.loading = true;\r\n this.matrizService.getReprodutor().subscribe((response) => {\r\n this.reprodutor = response;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n getMotivoBaixa() {\r\n this.loading = true;\r\n this.matrizService.getMotivoBaixa().subscribe((response) => {\r\n this.motivosBaixa = response;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n getLotes() {\r\n this.loading = true;\r\n this.matrizService.getLote().subscribe((response) => {\r\n this.lote = response;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n getHistoricosDeMatriz() {\r\n this.loadingHistories = true;\r\n this.matrizService.getHistoricoDeMatrizPorFazenda().subscribe((response) => {\r\n this.historicos = response;\r\n this.historicoMatriz = [];\r\n const itemHist =\r\n this.historicos.filter(history => history.cdMatriz === this.data.matrixId.cdmatriz);\r\n this.historicoMatriz.push(...itemHist);\r\n this.loadingHistories = false;\r\n });\r\n }\r\n\r\n getGenealogia() {\r\n this.loading = true;\r\n this.matrizService.getGenealogia().subscribe((response) => {\r\n this.genealogias = response;\r\n this.onBuscaAvo(this.data.matrixId.cdmae);\r\n this.loading = false;\r\n });\r\n }\r\n\r\n // getReproducoes() {\r\n // this.loading = true;\r\n // this.matrizService.getReproducao().subscribe((response) => {\r\n // this.reproducao = response;\r\n // this.loading = false;\r\n // });\r\n // }\r\n\r\n getReproducoes() {\r\n this.loading = true;\r\n this.reproducaoService.getReproducoes().subscribe((response) => {\r\n this.reproducao = response;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n getControlesLeiteiros() {\r\n this.loading = true;\r\n this.producaoService.getControlesLeiteirosLancados().subscribe((response) => {\r\n this.controlesLeiteiros = response;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n getRacas() {\r\n this.loading = true;\r\n this.matrizService.getRaca().subscribe((response) => {\r\n this.raca = response;\r\n // this.racaList = response;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n getAllComposition() {\r\n this.loading = true;\r\n this.matrizService.getConfiguracoesComposicaoRacial().subscribe((response) => {\r\n this.composicoesRaciais = response;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n getAllLot() {\r\n this.loading = true;\r\n this.matrizService.getLot().subscribe((response) => {\r\n this.lotes = response;\r\n this.data.lote = [];\r\n this.data.lote = response;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n getAllReprodutor() {\r\n this.loading = true;\r\n this.configuracoesService.getReprodutores().subscribe((response) => {\r\n this.reprodutorListAll = response;\r\n this.data.pai = [];\r\n this.reprodutorList = [];\r\n this.reprodutorList = this.reprodutorListAll;\r\n this.data.pai = this.reprodutorListAll;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n getSemenTouro() {\r\n this.loading = true;\r\n this.configuracoesService.getSemenTouros().subscribe((response) => {\r\n this.semenTourosListAll = response;\r\n this.semenTourosList = response;\r\n const hasCdPai = this.data.matrixId !== undefined && this.data.matrixId.cdpai !== undefined;\r\n if (hasCdPai) {\r\n this.onBuscaSemenCode(this.data.matrixId.cdpai);\r\n }\r\n this.loading = false;\r\n });\r\n }\r\n\r\ngetBaseTouro() {\r\n if (this.validateFilters()) {\r\n const filter = this.createBaseTouroFilter();\r\n this.loading = true;\r\n this.configuracoesService.getBaseTourosPorFiltro(filter).subscribe((response) => {\r\n this.baseTourosListAll = response;\r\n this.baseTourosList = response;\r\n this.carregado = true;\r\n this.loading = false;\r\n });\r\n }\r\n}\r\n\r\ncreateBaseTouroFilter(): BaseTouroFiltro {\r\n const codigoBaseUnif = ((document.getElementById('codigoBaseUnif') as HTMLInputElement).value);\r\n const regInternacional = ((document.getElementById('regInternacional') as HTMLInputElement).value);\r\n const codigoInternacional = ((document.getElementById('codigoInternacional') as HTMLInputElement).value);\r\n const nomeCompleto = ((document.getElementById('nomeCompleto') as HTMLInputElement).value);\r\n const nomeResumido = ((document.getElementById('nomeResumido') as HTMLInputElement).value);\r\n const raca: any = this.selectedValue;\r\n\r\n const filter = new BaseTouroFiltro();\r\n filter.bullId = Number(codigoBaseUnif);\r\n filter.interregnum = regInternacional;\r\n filter.semencode = codigoInternacional;\r\n filter.name = nomeCompleto;\r\n filter.shortname = nomeResumido;\r\n filter.breed = raca[`sigla`];\r\n\r\n return filter;\r\n}\r\n\r\nvalidateFilters(): boolean {\r\n const codigoBaseUnif = ((document.getElementById('codigoBaseUnif') as HTMLInputElement).value);\r\n const regInternacional = ((document.getElementById('regInternacional') as HTMLInputElement).value);\r\n const codigoInternacional = ((document.getElementById('codigoInternacional') as HTMLInputElement).value);\r\n const nomeCompleto = ((document.getElementById('nomeCompleto') as HTMLInputElement).value);\r\n const nomeResumido = ((document.getElementById('nomeResumido') as HTMLInputElement).value);\r\n const raca: any = this.selectedValue;\r\n\r\n let hasAnyFilter = false;\r\n this.message = ``;\r\n\r\n const hasCodigoUnif = codigoBaseUnif !== null && codigoBaseUnif !== undefined && codigoBaseUnif !== '';\r\n if (hasCodigoUnif) {\r\n hasAnyFilter = true;\r\n }\r\n\r\n const hasRegInternacional = regInternacional !== null && regInternacional !== undefined && regInternacional !== '';\r\n if (hasRegInternacional) {\r\n hasAnyFilter = true;\r\n }\r\n\r\n const hasCodigoInternacional = codigoInternacional !== null && codigoInternacional !== undefined && codigoInternacional !== '';\r\n if (hasCodigoInternacional) {\r\n hasAnyFilter = true;\r\n }\r\n\r\n const hasNome = nomeCompleto !== null && nomeCompleto !== undefined && nomeCompleto !== '';\r\n if (hasNome) {\r\n hasAnyFilter = true;\r\n }\r\n\r\n const hasNomeResumido = nomeResumido !== null && nomeResumido !== undefined && nomeResumido !== '';\r\n if (hasNomeResumido) {\r\n hasAnyFilter = true;\r\n }\r\n\r\n const hasRaca = raca !== null && raca !== undefined && raca !== '' && raca !== -1;\r\n if (hasRaca) {\r\n hasAnyFilter = true;\r\n }\r\n\r\n if (!hasAnyFilter) {\r\n this.message = `É necessário informar ao menos um filtro para listar os touros`;\r\n return false;\r\n }\r\n\r\n return true;\r\n}\r\n\r\n getRaca() {\r\n this.loading = true;\r\n this.configuracoesService.getRacas().subscribe((response) => {\r\n this.racaListAll = response;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n onPartosTotais(obj) {\r\n const sel = obj;\r\n if (sel !== null && sel !== undefined) {\r\n this.totalPartos = parseFloat(sel) + this.numPartos;\r\n } else {\r\n this.totalPartos = this.numPartos;\r\n }\r\n }\r\n\r\n onBuscaAvo(cdmae) {\r\n const hasCdMae = cdmae !== undefined && cdmae !== null;\r\n if (hasCdMae) {\r\n const mae = this.genealogias.find(genealogia => genealogia.cdmatriz === cdmae);\r\n const hasMae = mae !== undefined && mae !== null;\r\n if (hasMae) {\r\n this.avoSelecionado = mae.codigoPai;\r\n }\r\n }\r\n }\r\n\r\n onBuscaPai(ob) {\r\n const hasOb = ob !== undefined && ob !== null;\r\n if (hasOb) {\r\n this.paiSelecionado = ob.value;\r\n }\r\n }\r\n\r\n onBuscaSemenCode(ob) {\r\n const hasOb = ob !== undefined && ob !== null;\r\n if (hasOb) {\r\n const semenCode = this.semenTourosListAll.filter(x => (x.cdreprodutor === ob.value));\r\n for (const item of semenCode) {\r\n this.semenCodePai = item.codigoInternacional;\r\n }\r\n } else {\r\n const semenCode = this.semenTourosListAll.filter(x => (x.cdreprodutor === ob));\r\n for (const item of semenCode) {\r\n this.semenCodePai = item.codigoInternacional;\r\n }\r\n }\r\n }\r\n\r\n hasValue(statusValue) {\r\n if (this.data.matrixId.numero !== null && this.data.matrixId.numero !== undefined && this.data.matrixId.numero !== '') {\r\n if (statusValue !== '' && statusValue !== undefined) {\r\n this.hasChanges = true;\r\n }\r\n } else {\r\n this.hasChanges = false;\r\n }\r\n }\r\n\r\n // cadastro/alteracao composicao racial\r\n openNewRacialComposition() {\r\n this.racialCompositionId = new ComposicaoRacial();\r\n this.editComp = true;\r\n this.edited = true;\r\n }\r\n\r\n openEditRacialComposition() {\r\n const hasRacialComposition =\r\n this.data.matrixId.cdcomposicaoracial !== undefined\r\n && this.data.matrixId.cdcomposicaoracial > 0;\r\n\r\n if (hasRacialComposition) {\r\n this.getAllComposition();\r\n const id = this.data.matrixId.cdcomposicaoracial;\r\n for (const item of this.composicoesRaciais) {\r\n if (item.cdcomposicaoracial === id) {\r\n this.racialCompositionId = item;\r\n }\r\n }\r\n this.editComp = true;\r\n this.edited = true;\r\n } else {\r\n this.showAlertDialog(`Selecione uma composição racial para editar`);\r\n }\r\n }\r\n\r\n closeRacialComposition() {\r\n this.clearAllFields();\r\n this.editComp = false;\r\n this.edited = false;\r\n }\r\n\r\n saveNewComposition() {\r\n this.msgValidFill = '';\r\n\r\n let validacao = this.validFill();\r\n\r\n if (validacao) {\r\n validacao = this.validateComposition();\r\n }\r\n\r\n if (validacao) {\r\n this.saveComp(this.tipo0.checked, this.ativo0.checked);\r\n this.hasChangesComp = false;\r\n this.editComp = false;\r\n this.edited = false;\r\n } else {\r\n this.openConfirmationDialog();\r\n }\r\n }\r\n\r\n public openConfirmationDialog() {\r\n\r\n const dialogRef1 = this.dialog.open(DialogoConfirmacao, {\r\n data: {\r\n // message: 'Existem campos para serem preenchidos! ',\r\n message: this.msgValidFill !== '' ? this.msgValidFill : 'Existem campos para serem preenchidos! ',\r\n buttonText: {\r\n ok: 'Cancelar Tudo',\r\n cancel: 'Corrigir'\r\n }\r\n }\r\n });\r\n dialogRef1.afterClosed().subscribe((confirmed: boolean) => {\r\n if (confirmed) {\r\n this.clearAllFields();\r\n this.editComp = false;\r\n this.edited = false;\r\n }\r\n });\r\n\r\n }\r\n\r\n hasValueComp(statusValueComp) {\r\n if ( statusValueComp.trim() !== '' && statusValueComp !== undefined ) {\r\n this.hasChangesComp = true;\r\n } else {\r\n this.hasChangesComp = false;\r\n }\r\n }\r\n\r\n saveComp(tipo0: boolean, ativo0: boolean) {\r\n this.racialCompositionId.tipo = tipo0 === true ? true : false;\r\n this.racialCompositionId.ativo = ativo0 === true ? true : false;\r\n\r\n this.racialCompositionId.padrao = this.racialCompositionId.PADRAO > 0 ? this.racialCompositionId.PADRAO : null;\r\n this.racialCompositionId.cdraca1 = this.racialCompositionId.cdraca1 === undefined ? null : this.racialCompositionId.cdraca1;\r\n this.racialCompositionId.percentual1 = this.racialCompositionId.percentual1 === undefined\r\n ? null : this.racialCompositionId.percentual1;\r\n this.racialCompositionId.cdraca2 = this.racialCompositionId.cdraca2 === undefined ? null : this.racialCompositionId.cdraca2;\r\n this.racialCompositionId.percentual2 = this.racialCompositionId.percentual2 === undefined\r\n ? null : this.racialCompositionId.percentual2;\r\n this.racialCompositionId.cdraca3 = this.racialCompositionId.cdraca3 === undefined ? null : this.racialCompositionId.cdraca3;\r\n this.racialCompositionId.percentual3 = this.racialCompositionId.percentual3 === undefined\r\n ? null : this.racialCompositionId.percentual3;\r\n this.racialCompositionId.cdraca4 = this.racialCompositionId.cdraca4 === undefined ? null : this.racialCompositionId.cdraca4;\r\n this.racialCompositionId.percentual4 = this.racialCompositionId.percentual4 === undefined\r\n ? null : this.racialCompositionId.percentual4;\r\n this.racialCompositionId.cdraca5 = this.racialCompositionId.cdraca5 === undefined ? null : this.racialCompositionId.cdraca5;\r\n this.racialCompositionId.percentual5 = this.racialCompositionId.percentual5 === undefined\r\n ? null : this.racialCompositionId.percentual5;\r\n this.racialCompositionId.removido = this.racialCompositionId.removido === undefined ? false : this.racialCompositionId.removido;\r\n\r\n this.validateComposition();\r\n\r\n this.racialCompositionId.cdfazenda = this.racialCompositionId.cdfazenda !== null && this.racialCompositionId.cdfazenda !== undefined\r\n ? this.racialCompositionId.cdfazenda : this.matrizService.getCdFazenda();\r\n\r\n if (this.validComposition.cdcomposicaoracial !== null && this.validComposition.cdcomposicaoracial !== undefined\r\n && this.validComposition.cdcomposicaoracial !== 0) {\r\n this.matrizService.updateComposition(this.racialCompositionId).subscribe((response: Array) => {\r\n if (response != null) {\r\n this.compositionList = [];\r\n this.atualizaListagemComp();\r\n this.showSnackBar('Alterações salvas com sucesso.');\r\n }\r\n });\r\n } else {\r\n if ( this.message !== '' ) {\r\n this.showSnackBar(this.message);\r\n this.compositionList = [];\r\n this.atualizaListagemComp();\r\n this.message = '';\r\n } else {\r\n this.matrizService.insertComposition(this.racialCompositionId).subscribe((response) => {\r\n this.compositionList = [];\r\n this.atualizaListagemComp();\r\n this.showSnackBar('Registros armazenados com sucesso.');\r\n }, (error) => this.showSnackBar(error));\r\n }\r\n }\r\n }\r\n\r\n public validTotalPerc() {\r\n let percItem1 = 0;\r\n let percItem2 = 0;\r\n let percItem3 = 0;\r\n let percItem4 = 0;\r\n let percItem5 = 0;\r\n let percItem = 0;\r\n\r\n percItem1 = parseFloat(this.racialCompositionId.percentual1 !== null && this.racialCompositionId.percentual1 !== undefined\r\n && this.racialCompositionId.percentual1 !== '' ? this.racialCompositionId.percentual1 : 0);\r\n percItem2 = parseFloat(this.racialCompositionId.percentual2 !== null && this.racialCompositionId.percentual2 !== undefined\r\n && this.racialCompositionId.percentual2 !== '' ? this.racialCompositionId.percentual2 : 0);\r\n percItem3 = parseFloat(this.racialCompositionId.percentual3 !== null && this.racialCompositionId.percentual3 !== undefined\r\n && this.racialCompositionId.percentual3 !== '' ? this.racialCompositionId.percentual3 : 0);\r\n percItem4 = parseFloat(this.racialCompositionId.percentual4 !== null && this.racialCompositionId.percentual4 !== undefined\r\n && this.racialCompositionId.percentual4 !== '' ? this.racialCompositionId.percentual4 : 0);\r\n percItem5 = parseFloat(this.racialCompositionId.percentual5 !== null && this.racialCompositionId.percentual5 !== undefined\r\n && this.racialCompositionId.percentual5 !== '' ? this.racialCompositionId.percentual5 : 0);\r\n\r\n if (percItem1 > 0) { this.validPerc(percItem1, 'Percentual1'); }\r\n if (percItem2 > 0) { this.validPerc(percItem2, 'Percentual2'); }\r\n if (percItem3 > 0) { this.validPerc(percItem3, 'Percentual3'); }\r\n if (percItem4 > 0) { this.validPerc(percItem4, 'Percentual4'); }\r\n if (percItem5 > 0) { this.validPerc(percItem5, 'Percentual5'); }\r\n\r\n this.validBreed();\r\n\r\n percItem = (percItem1 + percItem2 + percItem3 + percItem4 + percItem5);\r\n\r\n if (percItem > 100) {\r\n this.msgTotal = 'Erro! Soma dos Percentuais acima de 100. ';\r\n if (!this.hasError) { this.hasError = true; }\r\n return false;\r\n } else {\r\n this.msgTotal = '';\r\n return true;\r\n }\r\n }\r\n\r\n validateComposition() {\r\n if (this.racialCompositionId.descricao !== null && this.racialCompositionId.descricao !== undefined) {\r\n\r\n this.validComposition = this.racialCompositionId;\r\n\r\n const description = this.racialCompositionId.descricao.toUpperCase();\r\n const array = new Array();\r\n const raca = description.split(', ');\r\n\r\n for (let i = 0; i < 4; i++) {\r\n if (raca[i] !== undefined) {\r\n array.push(raca[i]);\r\n }\r\n }\r\n\r\n let total = 0;\r\n let tem = false;\r\n\r\n for (const item of this.composicoesRaciais) {\r\n const desc = item.descricao.toUpperCase();\r\n const arrayLista = new Array();\r\n const racas = desc.split(', ');\r\n\r\n if (item.cdcomposicaoracial !== this.racialCompositionId.cdcomposicaoracial\r\n && item.descricao.toUpperCase() === this.racialCompositionId.descricao.toUpperCase() ) {\r\n this.validComposition = [];\r\n this.message = 'Esta descrição já existe no cadastro.';\r\n return false;\r\n }\r\n\r\n if (racas.length === raca.length) {\r\n for (let i = 0; i < 4; i++) {\r\n tem = item.descricao.toUpperCase().includes(array[i], i) ? true : false;\r\n if (tem) {\r\n total = total + 1;\r\n }\r\n\r\n if (total === raca.length) {\r\n if ( item.cdcomposicaoracial === this.racialCompositionId.cdcomposicaoracial) {\r\n return true;\r\n } else {\r\n this.validComposition = [];\r\n this.message = 'A composição racial informada já existe! Escolha outra.';\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n }\r\n\r\n public atualizaListagemComp() {\r\n this.matrizService.getConfiguracoesComposicaoRacial().subscribe((response) => {\r\n this.composicoesRaciais = response;\r\n this.compositionList = response;\r\n this.composicao = response;\r\n });\r\n }\r\n\r\n public validPerc(value: number, field: string) {\r\n const num = value / 0.390625;\r\n const setField = field;\r\n\r\n // Parte inteira:\r\n const int = Math.trunc(num);\r\n\r\n // Parte decimal ('0' por padrão).\r\n const decimal = num - int;\r\n\r\n if (decimal > 0) {\r\n this.hasError = true;\r\n const indice = this.msgPercentual.indexOf(setField);\r\n if (indice === 0 && this.msgPercentual.length > 43) { this.msgPercentual = this.msgPercentual.substring(43); }\r\n if (indice === 0 && this.msgPercentual.length === 43) { this.msgPercentual = ''; }\r\n if (indice >= 43) { this.msgPercentual = this.msgPercentual.substring(indice - 1, 0)\r\n + this.msgPercentual.substring(this.msgPercentual.length, indice + 43); }\r\n this.msgPercentual += setField + ' está com valor lançado errado! ';\r\n\r\n return false;\r\n } else {\r\n const indice = this.msgPercentual.indexOf(setField);\r\n if (indice === 0 ) { this.msgPercentual = this.msgPercentual.substring(43); }\r\n if (indice >= 43) { this.msgPercentual = this.msgPercentual.substring(indice - 1, 0)\r\n + this.msgPercentual.substring(this.msgPercentual.length, indice + 43); }\r\n if (this.msgPercentual === '') { this.hasError = false; }\r\n\r\n this.getDescription();\r\n\r\n return true;\r\n }\r\n }\r\n\r\n public validBreed() {\r\n const erro = this.hasError;\r\n const racas = [];\r\n\r\n if (this.racialCompositionId.cdraca1 !== null && this.racialCompositionId.cdraca1 !== undefined ) {\r\n const tem = racas.includes(this.racialCompositionId.cdraca1);\r\n if (tem) {\r\n this.msgRaca = 'Erro! Existe(m) raça(s) repetida(s). ';\r\n this.hasError = true;\r\n return false;\r\n } else {\r\n racas.push(this.racialCompositionId.cdraca1);\r\n }\r\n }\r\n\r\n if (this.racialCompositionId.cdraca2 !== null && this.racialCompositionId.cdraca2 !== undefined ) {\r\n const tem = racas.includes(this.racialCompositionId.cdraca2);\r\n if (tem) {\r\n this.msgRaca = 'Erro! Existe(m) raça(s) repetida(s). ';\r\n this.hasError = true;\r\n return false;\r\n } else {\r\n racas.push(this.racialCompositionId.cdraca2);\r\n }\r\n }\r\n\r\n if (this.racialCompositionId.cdraca3 !== null && this.racialCompositionId.cdraca3 !== undefined ) {\r\n const tem = racas.includes(this.racialCompositionId.cdraca3);\r\n if (tem) {\r\n this.msgRaca = 'Erro! Existe(m) raça(s) repetida(s). ';\r\n this.hasError = true;\r\n return false;\r\n } else {\r\n racas.push(this.racialCompositionId.cdraca3);\r\n }\r\n }\r\n\r\n if (this.racialCompositionId.cdraca4 !== null && this.racialCompositionId.cdraca4 !== undefined ) {\r\n const tem = racas.includes(this.racialCompositionId.cdraca4);\r\n if (tem) {\r\n this.msgRaca = 'Erro! Existe(m) raça(s) repetida(s). ';\r\n this.hasError = true;\r\n return false;\r\n } else {\r\n racas.push(this.racialCompositionId.cdraca4);\r\n }\r\n }\r\n\r\n if (this.racialCompositionId.cdraca5 !== null && this.racialCompositionId.cdraca5 !== undefined ) {\r\n const tem = racas.includes(this.racialCompositionId.cdraca5);\r\n if (tem) {\r\n this.msgRaca = 'Erro! Existe(m) raça(s) repetida(s). ';\r\n this.hasError = true;\r\n return false;\r\n } else {\r\n racas.push(this.racialCompositionId.cdraca5);\r\n }\r\n }\r\n\r\n this.msgRaca = '';\r\n\r\n if (!erro) { this.hasError = false; }\r\n\r\n return true;\r\n }\r\n\r\n public getDescription() {\r\n const sigla1 = this.raca.find(x => x.cdraca === this.racialCompositionId.cdraca1);\r\n const sigla2 = this.raca.find(x => x.cdraca === this.racialCompositionId.cdraca2);\r\n const sigla3 = this.raca.find(x => x.cdraca === this.racialCompositionId.cdraca3);\r\n const sigla4 = this.raca.find(x => x.cdraca === this.racialCompositionId.cdraca4);\r\n const sigla5 = this.raca.find(x => x.cdraca === this.racialCompositionId.cdraca5);\r\n\r\n let total = 0;\r\n total += parseFloat(this.racialCompositionId.cdraca1) > 0 ? 1 : 0;\r\n total += parseFloat(this.racialCompositionId.cdraca2) > 0 ? 1 : 0;\r\n total += parseFloat(this.racialCompositionId.cdraca3) > 0 ? 1 : 0;\r\n total += parseFloat(this.racialCompositionId.cdraca4) > 0 ? 1 : 0;\r\n total += parseFloat(this.racialCompositionId.cdraca5) > 0 ? 1 : 0;\r\n\r\n const fracao1 = this.fracaoRaca(parseFloat(this.racialCompositionId.percentual1));\r\n const fracao2 = this.fracaoRaca(parseFloat(this.racialCompositionId.percentual2));\r\n const fracao3 = this.fracaoRaca(parseFloat(this.racialCompositionId.percentual3));\r\n const fracao4 = this.fracaoRaca(parseFloat(this.racialCompositionId.percentual4));\r\n const fracao5 = this.fracaoRaca(parseFloat(this.racialCompositionId.percentual5));\r\n\r\n let nome = '';\r\n\r\n if ( total === 1 ) {\r\n nome = sigla1.descricao;\r\n } else {\r\n if ( total >= 2 ) {\r\n nome = fracao1 + ' ' + sigla1.sigla;\r\n nome = nome + ', ' + fracao2 + ' ' + sigla2.sigla;\r\n if ( total >= 3 ) {\r\n nome = nome + ', ' + fracao3 + ' ' + sigla3.sigla;\r\n if ( total >= 4 ) {\r\n nome = nome + ', ' + fracao4 + ' ' + sigla4.sigla;\r\n if ( total === 5 ) {\r\n nome = nome + ', ' + fracao5 + ' ' + sigla5.sigla;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n this.racialCompositionId.descricao = nome;\r\n }\r\n\r\n // converte o valor percentual em fracao para incluir na descricao\r\n public fracaoRaca(APercentual: number) {\r\n let num: number;\r\n let den: number;\r\n\r\n den = 1;\r\n\r\n while (den <= 256) {\r\n num = (APercentual * den) / 100;\r\n if ( (num < den) && (Math.trunc(num) === num) ) {\r\n return num + '/' + den;\r\n }\r\n den = den * 2;\r\n }\r\n }\r\n\r\n public clearAllFields() {\r\n\r\n this.racialCompositionId.cdraca1 = null;\r\n this.racialCompositionId.cdraca2 = null;\r\n this.racialCompositionId.cdraca3 = null;\r\n this.racialCompositionId.cdraca4 = null;\r\n this.racialCompositionId.cdraca5 = null;\r\n\r\n this.racialCompositionId.percentual1 = null;\r\n this.racialCompositionId.percentual2 = null;\r\n this.racialCompositionId.percentual3 = null;\r\n this.racialCompositionId.percentual4 = null;\r\n this.racialCompositionId.percentual5 = null;\r\n\r\n this.racialCompositionId.descricao = '';\r\n\r\n this.clearMessages();\r\n\r\n this.hasChangesComp = false;\r\n }\r\n\r\n public clearMessages() {\r\n this.msgTotal = '';\r\n this.msgPercentual = '';\r\n this.hasError = false;\r\n }\r\n\r\n public validFill() {\r\n if ( this.tipo1.checked === true ) {\r\n if (this.racialCompositionId.cdraca1 !== null\r\n && this.racialCompositionId.cdraca1 !== ''\r\n && this.racialCompositionId.cdraca1 !== undefined) {\r\n if (this.racialCompositionId.cdraca2 !== null\r\n && this.racialCompositionId.cdraca2 !== ''\r\n && this.racialCompositionId.cdraca2 !== undefined) {\r\n if (this.racialCompositionId.percentual1 !== null\r\n && this.racialCompositionId.percentual1 !== ''\r\n && this.racialCompositionId.percentual1 !== undefined) {\r\n if (this.racialCompositionId.percentual2 !== null\r\n && this.racialCompositionId.percentual2 !== ''\r\n && this.racialCompositionId.percentual2 !== undefined) {\r\n return this.validFillOthers();\r\n } else {\r\n this.msgValidFill = 'Preencha o campo Percentual 2.';\r\n return false;\r\n }\r\n } else {\r\n this.msgValidFill = 'Preencha o campo Percentual 1.';\r\n return false;\r\n }\r\n } else {\r\n this.msgValidFill = 'Preencha o campo Raca 2.';\r\n return false;\r\n }\r\n } else {\r\n this.msgValidFill = 'Preecha o campo Raca 1.';\r\n return false;\r\n }\r\n } else {\r\n if ( this.tipo1.checked === false ) {\r\n if (this.racialCompositionId.cdraca1 !== null\r\n && this.racialCompositionId.cdraca1 !== ''\r\n && this.racialCompositionId.cdraca1 !== undefined) {\r\n if (this.racialCompositionId.percentual1 !== null\r\n && this.racialCompositionId.percentual1 !== ''\r\n && this.racialCompositionId.percentual1 !== undefined) {\r\n if (this.racialCompositionId.percentual1 === 100) {\r\n return true;\r\n } else {\r\n this.msgValidFill = 'O percentual da Raça deve ser 100.';\r\n return false;\r\n }\r\n } else {\r\n this.msgValidFill = 'Preencha o campo percentual da Raça.';\r\n return false;\r\n }\r\n } else {\r\n this.msgValidFill = 'Escolha uma raça e preencha o campo Percentual 1.';\r\n return false;\r\n }\r\n } else { return false; }\r\n }\r\n }\r\n\r\n public validFillOthers() {\r\n if ( this.tipo1.checked === true ) {\r\n if (this.racialCompositionId.cdraca3 !== null\r\n && this.racialCompositionId.cdraca3 !== ''\r\n && this.racialCompositionId.cdraca3 !== undefined) {\r\n if (this.racialCompositionId.percentual3 === null\r\n || this.racialCompositionId.percentual3 === ''\r\n || this.racialCompositionId.percentual3 === undefined) {\r\n this.msgValidFill = 'O percentual da Raça 3 deve ser preenchido.';\r\n return false;\r\n }\r\n }\r\n if (this.racialCompositionId.cdraca4 !== null\r\n && this.racialCompositionId.cdraca4 !== ''\r\n && this.racialCompositionId.cdraca4 !== undefined) {\r\n if (this.racialCompositionId.percentual4 === null\r\n || this.racialCompositionId.percentual4 === ''\r\n || this.racialCompositionId.percentual4 === undefined) {\r\n this.msgValidFill = 'O percentual da Raça 4 deve ser preenchido.';\r\n return false;\r\n }\r\n }\r\n\r\n if (this.racialCompositionId.cdraca5 !== null\r\n && this.racialCompositionId.cdraca5 !== ''\r\n && this.racialCompositionId.cdraca5 !== undefined) {\r\n if (this.racialCompositionId.percentual5 === null\r\n || this.racialCompositionId.percentual5 === ''\r\n || this.racialCompositionId.percentual5 === undefined) {\r\n this.msgValidFill = 'O percentual da Raça 3 deve ser preenchido.';\r\n return false;\r\n }\r\n }\r\n\r\n if (this.racialCompositionId.percentual3 !== null\r\n && this.racialCompositionId.percentual3 !== ''\r\n && this.racialCompositionId.percentual3 !== undefined) {\r\n if (this.racialCompositionId.cdraca3 === null\r\n || this.racialCompositionId.cdraca3 === ''\r\n || this.racialCompositionId.cdraca3 === undefined) {\r\n this.msgValidFill = 'O campo Raca 3 deve ser preenchido.';\r\n return false;\r\n }\r\n }\r\n\r\n if (this.racialCompositionId.percentual4 !== null\r\n && this.racialCompositionId.percentual4 !== ''\r\n && this.racialCompositionId.percentual4 !== undefined) {\r\n if (this.racialCompositionId.cdraca4 === null\r\n || this.racialCompositionId.cdraca4 === ''\r\n || this.racialCompositionId.cdraca4 === undefined) {\r\n this.msgValidFill = 'O campo Raca 4 deve ser preenchido.';\r\n return false;\r\n }\r\n }\r\n\r\n if (this.racialCompositionId.percentual5 !== null\r\n && this.racialCompositionId.percentual5 !== ''\r\n && this.racialCompositionId.percentual5 !== undefined) {\r\n if (this.racialCompositionId.cdraca5 === null\r\n || this.racialCompositionId.cdraca5 === ''\r\n || this.racialCompositionId.cdraca5 === undefined) {\r\n this.msgValidFill = 'O campo Raca 5 deve ser preenchido.';\r\n return false;\r\n }\r\n }\r\n\r\n\r\n // verifica totais percentuais\r\n let percItem1 = 0;\r\n let percItem2 = 0;\r\n let percItem3 = 0;\r\n let percItem4 = 0;\r\n let percItem5 = 0;\r\n let percItem = 0;\r\n\r\n percItem1 = parseFloat(this.racialCompositionId.percentual1 !== null\r\n && this.racialCompositionId.percentual1 !== undefined\r\n && this.racialCompositionId.percentual1 !== '' ? this.racialCompositionId.percentual1 : 0);\r\n percItem2 = parseFloat(this.racialCompositionId.percentual2 !== null\r\n && this.racialCompositionId.percentual2 !== undefined\r\n && this.racialCompositionId.percentual2 !== '' ? this.racialCompositionId.percentual2 : 0);\r\n percItem3 = parseFloat(this.racialCompositionId.percentual3 !== null\r\n && this.racialCompositionId.percentual3 !== undefined\r\n && this.racialCompositionId.percentual3 !== '' ? this.racialCompositionId.percentual3 : 0);\r\n percItem4 = parseFloat(this.racialCompositionId.percentual4 !== null\r\n && this.racialCompositionId.percentual4 !== undefined\r\n && this.racialCompositionId.percentual4 !== '' ? this.racialCompositionId.percentual4 : 0);\r\n percItem5 = parseFloat(this.racialCompositionId.percentual5 !== null\r\n && this.racialCompositionId.percentual5 !== undefined\r\n && this.racialCompositionId.percentual5 !== '' ? this.racialCompositionId.percentual5 : 0);\r\n\r\n percItem = (percItem1 + percItem2 + percItem3 + percItem4 + percItem5);\r\n\r\n if (percItem < 100) {\r\n this.msgValidFill = 'A soma dos percentuais não Totalizam 100.';\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n validacaoTipos() {\r\n if (this.racialCompositionId.padrao === 0\r\n || this.racialCompositionId.padrao === undefined\r\n || this.racialCompositionId.padrao === null\r\n ) {\r\n\r\n // verifica se o tipo é PURA\r\n if ( this.tipo0 === undefined ) {\r\n this.validGeral();\r\n } else {\r\n if ( this.tipo0.checked === true ) {\r\n this.getValuesFields();\r\n this.clearFields();\r\n this.desabilita = true;\r\n this.clearMessages();\r\n } else {\r\n this.clearMessages();\r\n this.setValuesFields();\r\n this.desabilita = false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n validGeral() {\r\n // valida percentuais - se o valor lançado como percentual é válido\r\n this.perc1 = this.racialCompositionId.percentual1;\r\n this.perc2 = this.racialCompositionId.percentual2;\r\n this.perc3 = this.racialCompositionId.percentual3;\r\n this.perc4 = this.racialCompositionId.percentual4;\r\n this.perc5 = this.racialCompositionId.percentual5;\r\n\r\n this.validPerc(parseFloat(this.perc1), 'Percentual1');\r\n this.validPerc(parseFloat(this.perc2), 'Percentual2');\r\n this.validPerc(parseFloat(this.perc3), 'Percentual3');\r\n this.validPerc(parseFloat(this.perc4), 'Percentual4');\r\n this.validPerc(parseFloat(this.perc5), 'Percentual5');\r\n\r\n // preenche o campo descrição\r\n this.getDescription();\r\n\r\n // verifica se total percentuais não ultrapassou 100%\r\n this.validTotalPerc();\r\n }\r\n\r\n public getValuesFields() {\r\n this.desc = this.racialCompositionId.descricao;\r\n\r\n this.rac1 = this.racialCompositionId.cdraca1;\r\n this.rac2 = this.racialCompositionId.cdraca2;\r\n this.rac3 = this.racialCompositionId.cdraca3;\r\n this.rac4 = this.racialCompositionId.cdraca4;\r\n this.rac5 = this.racialCompositionId.cdraca5;\r\n\r\n this.perc1 = this.racialCompositionId.percentual1;\r\n this.perc2 = this.racialCompositionId.percentual2;\r\n this.perc3 = this.racialCompositionId.percentual3;\r\n this.perc4 = this.racialCompositionId.percentual4;\r\n this.perc5 = this.racialCompositionId.percentual5;\r\n}\r\n\r\nsetValuesFields() {\r\n\r\n this.racialCompositionId.descricao = this.desc;\r\n\r\n this.racialCompositionId.cdraca1 = this.rac1 !== '' ? this.rac1 : '';\r\n this.racialCompositionId.cdraca2 = this.rac2 !== '' ? this.rac2 : '';\r\n this.racialCompositionId.cdraca3 = this.rac3 !== '' ? this.rac3 : '';\r\n this.racialCompositionId.cdraca4 = this.rac4 !== '' ? this.rac4 : '';\r\n this.racialCompositionId.cdraca5 = this.rac5 !== '' ? this.rac5 : '';\r\n\r\n if (this.perc1 !== '') {\r\n this.racialCompositionId.percentual1 = this.perc1;\r\n this.validPerc(parseFloat(this.perc1), 'Percentual1');\r\n }\r\n if (this.perc2 !== '') {\r\n this.racialCompositionId.percentual2 = this.perc2;\r\n this.validPerc(parseFloat(this.perc2), 'Percentual2');\r\n }\r\n if (this.perc3 !== '') {\r\n this.racialCompositionId.percentual3 = this.perc3;\r\n this.validPerc(parseFloat(this.perc3), 'Percentual3');\r\n }\r\n if (this.perc4 !== '') {\r\n this.racialCompositionId.percentual4 = this.perc4;\r\n this.validPerc(parseFloat(this.perc4), 'Percentual4');\r\n }\r\n if (this.perc5 !== '') {\r\n this.racialCompositionId.percentual5 = this.perc5;\r\n this.validPerc(parseFloat(this.perc5), 'Percentual5');\r\n }\r\n }\r\n\r\n public clearFields() {\r\n this.racialCompositionId.cdraca2 = null;\r\n this.racialCompositionId.cdraca3 = null;\r\n this.racialCompositionId.cdraca4 = null;\r\n this.racialCompositionId.cdraca5 = null;\r\n this.racialCompositionId.percentual1 = null;\r\n this.racialCompositionId.percentual2 = null;\r\n this.racialCompositionId.percentual3 = null;\r\n this.racialCompositionId.percentual4 = null;\r\n this.racialCompositionId.percentual5 = null;\r\n this.racialCompositionId.descricao = '';\r\n this.getDescription();\r\n }\r\n\r\n // cadastro/alteracao lote\r\n openEditLote() {\r\n const hasLot =\r\n this.data.matrixId.cdlote !== undefined\r\n && this.data.matrixId.cdlote > 0;\r\n\r\n if (hasLot) {\r\n this.getAllLot();\r\n const id = this.data.matrixId.cdlote;\r\n for (const item of this.lotes) {\r\n if (item.cdlote === id) {\r\n this.lotId = item;\r\n }\r\n }\r\n this.editLote = true;\r\n this.edited = true;\r\n } else {\r\n this.showAlertDialog(`Selecione um lote para editar`);\r\n }\r\n }\r\n\r\n openNewLote() {\r\n this.lotId = new Lote();\r\n this.editLote = true;\r\n this.edited = true;\r\n }\r\n\r\n closeLote() {\r\n this.editLote = false;\r\n this.edited = false;\r\n }\r\n\r\n saveLot() {\r\n this.hasChangesLot = false;\r\n this.editLote = false;\r\n this.edited = false;\r\n this.saveLotAll();\r\n }\r\n\r\n saveLotAll() {\r\n this.validateLot();\r\n\r\n this.lotId.cdfazenda = this.lotId.cdfazenda !== null && this.lotId.cdfazenda !== undefined\r\n ? this.lotId.cdfazenda : this.matrizService.getCdFazenda();\r\n\r\n if (this.validLot.cdlote !== null && this.validLot.cdlote !== undefined && this.validLot.cdlote !== 0) {\r\n this.matrizService.updateLot(this.lotId).subscribe((response: Array) => {\r\n if (response != null) {\r\n this.atualizaListagemLot('update');\r\n this.showSnackBar('Alterações salvas com sucesso.');\r\n }\r\n });\r\n } else {\r\n if (this.message !== '' ) {\r\n this.showSnackBar(this.message);\r\n this.atualizaListagemLot('null');\r\n this.message = '';\r\n } else {\r\n this.matrizService.insertLot(this.lotId).subscribe((response) => {\r\n this.atualizaListagemLot('insert');\r\n this.showSnackBar('Registros armazenados com sucesso.');\r\n }, (error) => this.showSnackBar(error));\r\n }\r\n }\r\n }\r\n\r\n savePai() {\r\n this.validateReprodutor();\r\n\r\n this.semenTouroId.cdtiporeprodutor = this.tiporeprodutor0.checked ? 1 : 0;\r\n this.semenTouroId.cdtiporeprodutor1 = parseFloat(this.tiporeprodutor1.value);\r\n this.semenTouroId.cdFazenda =\r\n this.semenTouroId.cdFazenda !== null && this.semenTouroId.cdFazenda !== undefined\r\n ? this.semenTouroId.cdFazenda : this.configuracoesService.getCdFazenda();\r\n this.reprodutorId = this.semenTouroId;\r\n this.reprodutorId.BullId1 = this.semenTouroId.codigoBaseunif;\r\n\r\n const hasExistBreeder = this.validReprodutor !== null\r\n && this.validReprodutor !== undefined\r\n && this.validReprodutor.cdreprodutor !== undefined\r\n && this.validReprodutor.cdreprodutor !== 0;\r\n\r\n if (hasExistBreeder) {\r\n this.configuracoesService.atualizaReprodutor(this.reprodutorId).subscribe((response: Array) => {\r\n if (response != null) {\r\n this.showSnackBar('Alterações salvas com sucesso.');\r\n this.atualizaListagemPai('update');\r\n this.closePai();\r\n this.hasChanges = true;\r\n }\r\n });\r\n } else {\r\n if (this.message !== '') {\r\n this.showSnackBar(this.message);\r\n this.message = '';\r\n } else {\r\n this.configuracoesService.insereReprodutor(this.semenTouroId).subscribe((response) => {\r\n this.showSnackBar('Registros armazenados com sucesso.');\r\n this.atualizaListagemPai('insert');\r\n this.closePai();\r\n this.hasChanges = true;\r\n }, (error) => this.showSnackBar(error));\r\n }\r\n }\r\n }\r\n\r\n validateLot() {\r\n if (this.lotId.descricao !== null && this.lotId.descricao !== undefined) {\r\n\r\n this.validLot = this.lotId;\r\n\r\n for (const item of this.lotes) {\r\n if ( item.cdlote !== this.lotId.cdlote\r\n && item.descricao.toUpperCase() === this.lotId.descricao.toUpperCase() ) {\r\n this.validLot = [];\r\n this.message = 'Esta descrição já existe no cadastro.';\r\n }\r\n }\r\n }\r\n }\r\n\r\n validateReprodutor() {\r\n const hasSemenTouroId = this.semenTouroId.numero !== null && this.semenTouroId.numero !== undefined;\r\n if (hasSemenTouroId) {\r\n this.validReprodutor = this.semenTouroId;\r\n const existsBreeder =\r\n this.reprodutorListAll.find(breeder => breeder.cdreprodutor !== this.semenTouroId.cdreprodutor\r\n && breeder.numero.toUpperCase() === this.semenTouroId.numero.toUpperCase());\r\n const hasExistsBreeder = existsBreeder !== undefined && existsBreeder !== null;\r\n if (hasExistsBreeder) {\r\n this.validReprodutor = undefined;\r\n this.message = `O número ${ this.semenTouroId.numero } já existe no cadastro.`;\r\n }\r\n }\r\n }\r\n\r\n public atualizaListagemLot(tipo: string) {\r\n this.matrizService.getLot().subscribe((response) => {\r\n this.lotes = response;\r\n if (tipo === 'update') {\r\n for (const item of this.data.lote) {\r\n if (item.cdlote === this.validLot.cdlote) {\r\n item.descricao = this.validLot.descricao;\r\n }\r\n }\r\n } else if (tipo === 'insert') {\r\n this.data.lote = [];\r\n this.data.lote = this.lotes;\r\n this.lote = this.lotes;\r\n }\r\n });\r\n }\r\n\r\n public atualizaListagemPai(tipo: string) {\r\n this.configuracoesService.getReprodutores().subscribe((response) => {\r\n this.reprodutorListAll = response;\r\n this.data.pai = [];\r\n this.data.pai = this.reprodutorListAll;\r\n this.reprodutor = this.reprodutorListAll;\r\n let father;\r\n const isUpdate = tipo === 'update';\r\n if (isUpdate) {\r\n father =\r\n this.data.pai.find((breeder: { cdreprodutor: any; }) => breeder.cdreprodutor === this.validReprodutor.cdreprodutor);\r\n } else {\r\n father =\r\n this.data.pai.find((breeder: { numero: string; }) => breeder.numero.toUpperCase() === this.semenTouroId.numero.toUpperCase());\r\n }\r\n const hasFather = father !== undefined && father !== null;\r\n if (hasFather) {\r\n this.data.matrixId.cdpai = father.cdreprodutor;\r\n }\r\n });\r\n }\r\n\r\n hasValueLot(statusValueLot) {\r\n if ( statusValueLot.trim() !== '' && statusValueLot !== undefined ) {\r\n this.hasChangesLot = true;\r\n } else {\r\n this.hasChangesLot = false;\r\n }\r\n }\r\n\r\n // cadastrar/alterar pai\r\n public openEditPai() {\r\n const hasFather =\r\n this.data.matrixId.cdpai !== undefined\r\n && this.data.matrixId.cdpai > 0;\r\n\r\n if (hasFather) {\r\n this.semenTouroId = new SemenTouro();\r\n if (this.semenTourosList === undefined) {\r\n this.semenTourosList = [];\r\n this.getSemenTouro();\r\n }\r\n const id = this.data.matrixId.cdpai;\r\n for (const item of this.semenTourosList) {\r\n if (item.cdreprodutor === id) {\r\n this.semenTouroId = item;\r\n }\r\n }\r\n this.editPai = true;\r\n this.edited = true;\r\n } else {\r\n this.showAlertDialog(`Selecione um touro para editar`);\r\n }\r\n }\r\n\r\n openNewPai() {\r\n this.semenTouroId = new SemenTouro();\r\n this.editPai = true;\r\n this.edited = true;\r\n }\r\n\r\n closePai() {\r\n this.editPai = false;\r\n this.edited = false;\r\n }\r\n\r\n // consulta base de touros\r\n onCellClick(e) {\r\n this.clickedRowItem = e.dataItem;\r\n }\r\n\r\n public onDblClick() {\r\n if (this.clickedRowItem !== '' && this.clickedRowItem !== undefined) {\r\n this.semenTouroId.codigoBaseunif = this.clickedRowItem.bullId;\r\n // this.semenTouroId.cdreprodutor = this.clickedRowItem.bullId;\r\n this.semenTouroId.regInternacional = this.clickedRowItem.interregnum;\r\n this.semenTouroId.codigoInternacional = this.clickedRowItem.semencode;\r\n\r\n this.editBaseTouros = false;\r\n this.hasChangesPai = true;\r\n this.editPai = true;\r\n // this.edited = false;\r\n }\r\n }\r\n\r\n public filteringBaseTouros() {\r\n this.getBaseTouro();\r\n // this.resultFilter = [];\r\n // const numero = ((document.getElementById('codigoBaseUnif') as HTMLInputElement).value);\r\n // const regInternacional = ((document.getElementById('regInternacional') as HTMLInputElement).value);\r\n // const codigoInternacional = ((document.getElementById('codigoInternacional') as HTMLInputElement).value);\r\n // const nomeCompleto = ((document.getElementById('nomeCompleto') as HTMLInputElement).value);\r\n // const nomeResumido = ((document.getElementById('nomeResumido') as HTMLInputElement).value);\r\n\r\n // const raca: any = this.selectedValue;\r\n\r\n // if (this.selectedValue !== -1) {\r\n // const rac = raca.descricao.toUpperCase();\r\n // }\r\n\r\n // if ((numero === null || numero === '') && (regInternacional === null || regInternacional === '') &&\r\n // (codigoInternacional === null || codigoInternacional === '') &&\r\n // (nomeCompleto === null || nomeCompleto === '') && (nomeResumido === null || nomeResumido === '') &&\r\n // (this.selectedValue === -1 || this.selectedValue === -1)) {\r\n // this.openMessageAviso();\r\n // } else {\r\n\r\n // if (this.baseTourosListAll === undefined) {\r\n // if (this.data.baseTourosListAll === undefined) {\r\n // this.openMessage();\r\n // } else {\r\n // this.baseTourosList = this.data.baseTourosListAll;\r\n // }\r\n // } else {\r\n // this.baseTourosList = this.baseTourosListAll;\r\n // }\r\n\r\n // this.resultFilter = this.baseTourosList;\r\n\r\n // if (numero !== null && numero !== '') {\r\n\r\n // const baseTouro = this.baseTourosList.filter(x => (x.bullId !== null));\r\n\r\n // this.resultFilter = [];\r\n\r\n // if (baseTouro.length > 0) {\r\n // for (const item of baseTouro) {\r\n // this.resultFilter.push(item);\r\n // }\r\n // }\r\n\r\n // const termo = parseFloat(numero);\r\n\r\n // const reprodutor1 = this.resultFilter.filter (y => y.bullId === termo);\r\n\r\n // this.baseTourosList = [];\r\n\r\n // if (reprodutor1.length > 0) {\r\n // this.resultFilter = [];\r\n // for (const item of reprodutor1) {\r\n // this.resultFilter.push(item);\r\n // }\r\n // } else {\r\n // this.resultFilter = [];\r\n // }\r\n\r\n // }\r\n\r\n // if (regInternacional !== null && regInternacional !== '') {\r\n // const baseTouro = this.resultFilter.filter (y => y.interregnum.toUpperCase().includes(regInternacional));\r\n\r\n // if (baseTouro.length > 0) {\r\n // this.resultFilter = [];\r\n // for (const item of baseTouro) {\r\n // this.resultFilter.push(item);\r\n // }\r\n // } else {\r\n // this.resultFilter = [];\r\n // }\r\n // }\r\n\r\n // if (codigoInternacional !== null && codigoInternacional !== '') {\r\n // const baseTouro1 = this.resultFilter.filter(x => (x.semencode !== null));\r\n\r\n // this.resultFilter = [];\r\n\r\n // if (baseTouro1.length > 0) {\r\n // for (const item of baseTouro1) {\r\n // this.resultFilter.push(item);\r\n // }\r\n // }\r\n\r\n // const baseTouro = this.resultFilter.filter (y => y.semencode.toUpperCase().includes(codigoInternacional.toUpperCase()));\r\n\r\n // if (baseTouro.length > 0) {\r\n // this.resultFilter = [];\r\n // for (const item of baseTouro) {\r\n // this.resultFilter.push(item);\r\n // }\r\n // } else {\r\n // this.resultFilter = [];\r\n // }\r\n // }\r\n\r\n // if (nomeCompleto !== null && nomeCompleto !== '') {\r\n // const baseTouro = this.resultFilter.filter (y => y.name.toUpperCase().includes(nomeCompleto.toUpperCase()));\r\n\r\n // if (baseTouro.length > 0) {\r\n // this.resultFilter = [];\r\n // for (const item of baseTouro) {\r\n // this.resultFilter.push(item);\r\n // }\r\n // } else {\r\n // this.resultFilter = [];\r\n // }\r\n // }\r\n\r\n // if (nomeResumido !== null && nomeResumido !== '') {\r\n // const baseTouro = this.resultFilter.filter (y => y.shortname.toUpperCase().includes(nomeResumido.toUpperCase()));\r\n\r\n // if (baseTouro.length > 0) {\r\n // this.resultFilter = [];\r\n // for (const item of baseTouro) {\r\n // this.resultFilter.push(item);\r\n // }\r\n // } else {\r\n // this.resultFilter = [];\r\n // }\r\n // }\r\n\r\n // if (raca !== null && raca !== undefined && raca !== '' && raca !== -1) {\r\n // const raca1 = this.resultFilter.filter (x => x.raca === raca.descricao.toUpperCase());\r\n\r\n // if (raca1.length > 0) {\r\n // this.resultFilter = [];\r\n // for (const item of raca1) {\r\n // this.resultFilter.push(item);\r\n // }\r\n // } else {\r\n // this.resultFilter = [];\r\n // }\r\n // }\r\n\r\n // this.baseTourosList = this.resultFilter;\r\n\r\n // this.total = this.baseTourosList.length;\r\n // }\r\n }\r\n\r\n public openBaseTouros() {\r\n this.editBaseTouros = true;\r\n this.edited = true;\r\n this.editPai = false;\r\n this.hasChanges = true;\r\n }\r\n\r\n closeBaseTouros() {\r\n this.editBaseTouros = false;\r\n this.editPai = true;\r\n this.edited = true;\r\n }\r\n\r\n saveBaseTouros() {\r\n if (this.clickedRowItem !== '' && this.clickedRowItem !== undefined) {\r\n this.hasChangesPai = true;\r\n this.editBaseTouros = false;\r\n this.editPai = true;\r\n this.semenTouroId.codigoBaseunif = this.clickedRowItem.bullId;\r\n this.semenTouroId.cdreprodutor = this.clickedRowItem.bullId;\r\n this.semenTouroId.regInternacional = this.clickedRowItem.interregnum;\r\n this.semenTouroId.codigoInternacional = this.clickedRowItem.semencode;\r\n }\r\n }\r\n\r\n public openMessage() {\r\n const dialogRef2 = this.dialog.open(DialogoAlertaComponent, {\r\n data: {\r\n message: 'A Base de Touros ainda está sendo carregada. Aguarde!',\r\n buttonText: {\r\n cancel: 'Ok'\r\n }\r\n },\r\n });\r\n }\r\n\r\n public openMessageAviso() {\r\n const dialogRef3 = this.dialog.open(DialogoAlertaComponent, {\r\n data: {\r\n message: 'A Base de Touros é muito pesada para ser carregada. Preencha um dos campos e clique novamente em filtrar!',\r\n buttonText: {\r\n cancel: 'Ok'\r\n }\r\n },\r\n });\r\n }\r\n\r\n hasValuePai(statusValuePai) {\r\n if ( statusValuePai.trim() !== '' && statusValuePai !== undefined ) {\r\n this.hasChangesPai = true;\r\n } else {\r\n this.hasChangesPai = false;\r\n }\r\n }\r\n\r\n showSnackBar(message: string) {\r\n this.snackBar.open(message, 'X', this.snackBarConfig);\r\n }\r\n\r\n save() {\r\n const hasValidMatrix =\r\n this.validMatrix.cdmatriz !== null\r\n && this.validMatrix.cdmatriz !== undefined\r\n && this.validMatrix.cdmatriz !== 0;\r\n\r\n if (hasValidMatrix) {\r\n this.matrizService.atualizaMatriz(this.data.matrixId).subscribe((response: Array) => {\r\n this.showSnackBar(`Alterações salvas com sucesso.`);\r\n }, (error) => this.showSnackBar(error));\r\n } else {\r\n this.matrizService.insereMatriz(this.data.matrixId).subscribe((response) => {\r\n this.showSnackBar(`Alterações salvas com sucesso.`);\r\n }, (error) => this.showSnackBar(error));\r\n }\r\n }\r\n\r\n validaMatriz(): boolean {\r\n if (!this.validaNumeroMatriz()) { return false; }\r\n if (!this.validaNumeroMatrizRepetido()) { return false; }\r\n if (!this.validaDataNascimento()) { return false; }\r\n if (!this.validaDataBaixa()) { return false; }\r\n if (!this.validaMotivoBaixa()) { return false; }\r\n if (!this.validaDescarte()) { return false; }\r\n if (!this.validaDataDescarte()) { return false; }\r\n if (!this.validaDesaleitamento()) { return false; }\r\n if (!this.validaDataNascimentoNumeroPartos()) { return false; }\r\n return true;\r\n }\r\n\r\n validaNumeroMatriz(): boolean {\r\n const hasMatrixNumber = this.data.matrixId.numero !== null && this.data.matrixId.numero !== undefined;\r\n if (hasMatrixNumber) {\r\n this.validMatrix = this.data.matrixId;\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n validaNumeroMatrizRepetido(): boolean {\r\n const hasExistingMatrixNumber =\r\n this.matrizes.find(matrix => matrix.numero.toUpperCase() === this.data.matrixId.numero.toUpperCase()\r\n && matrix.cdmatriz !== this.data.matrixId.cdmatriz);\r\n if (hasExistingMatrixNumber) {\r\n this.data.matrixId.numero = this.matrixNumberTemp;\r\n this.showAlertDialog(`Já existe uma matriz cadastrada no sistema com o mesmo número.`);\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n validaDataNascimento() {\r\n const hasBirthDate = this.data.matrixId.dtnascimento !== undefined\r\n && this.data.matrixId.dtnascimento !== null;\r\n if (hasBirthDate) {\r\n const birthDate = moment(this.data.matrixId.dtnascimento).toDate();\r\n const isValidBirthDate = birthDate <= new Date();\r\n if (!isValidBirthDate) {\r\n this.showAlertDialog(`A data de nascimento do animal não pode ser maior que a data atual.`);\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n validaDataBaixa() {\r\n const existeDataBaixa = this.data.matrixId.dtbaixa !== undefined\r\n && this.data.matrixId.dtbaixa !== null;\r\n const existeMotivoBaixa = this.data.matrixId.cdmotivobaixa !== undefined\r\n && this.data.matrixId.cdmotivobaixa !== null;\r\n if (existeDataBaixa) {\r\n const dataBaixa = moment(this.data.matrixId.dtbaixa).toDate();\r\n const ehDataBaixaValida = dataBaixa <= new Date();\r\n if (!ehDataBaixaValida) {\r\n this.showAlertDialog(`A data de baixa do animal não pode ser maior que a data atual.`);\r\n return false;\r\n }\r\n if (!this.validaDataBaixaAnteriorLancamentosReproducao()) {\r\n return false;\r\n }\r\n if (!this.validaDataBaixaAnteriorLancamentosProducao()) {\r\n return false;\r\n }\r\n if (!existeMotivoBaixa) {\r\n this.showAlertDialog(`É obrigatório informar o motivo baixa quando possui a data da baixa.`);\r\n return false;\r\n }\r\n const dataNascimento = this.data.matrixId.dtnascimento;\r\n const existeDataNascimento = dataNascimento !== null && dataNascimento !== undefined;\r\n if (existeDataNascimento) {\r\n const ehDataBaixaValida = dataBaixa > new Date(this.data.matrixId.dtnascimento);\r\n if (!ehDataBaixaValida) {\r\n this.showAlertDialog(`A data da baixa não pode ser menor que a data de nascimento do animal.`);\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n validaDataBaixaAnteriorLancamentosReproducao() {\r\n let dataLancamento: Date;\r\n let evento: string;\r\n let ultimLancamentoReproducao: Reproducao;\r\n\r\n let reproducoes =\r\n this.reproducao.filter(reproducao => reproducao.cdmatriz === this.validMatrix.cdmatriz);\r\n\r\n const exsitemLancamentosReproducao = reproducoes !== undefined && reproducoes.length > 0;\r\n\r\n if (exsitemLancamentosReproducao) {\r\n reproducoes = reproducoes.sort\r\n (\r\n (a, b) => (new Date(b.data).getTime() - new Date(a.data).getTime())\r\n );\r\n\r\n ultimLancamentoReproducao = reproducoes[0];\r\n\r\n const dataSecagem = ultimLancamentoReproducao.dtsecagem;\r\n const dataParto = ultimLancamentoReproducao.dtparto;\r\n const dataDiagnostico4 = ultimLancamentoReproducao.dtdiagnostico4;\r\n const dataDiagnostico3 = ultimLancamentoReproducao.dtdiagnostico3;\r\n const dataDiagnostico2 = ultimLancamentoReproducao.dtdiagnostico2;\r\n const dataDiagnostico1 = ultimLancamentoReproducao.dtdiagnostico1;\r\n const dataServico = ultimLancamentoReproducao.data;\r\n\r\n const existeDataSecagem = dataSecagem !== null && dataSecagem !== undefined;\r\n const existeDataParto = dataParto !== null && dataParto !== undefined;\r\n const existeDataDiagnostico4 = dataDiagnostico4 !== null && dataDiagnostico4 !== undefined;\r\n const existeDataDiagnostico3 = dataDiagnostico3 !== null && dataDiagnostico3 !== undefined;\r\n const existeDataDiagnostico2 = dataDiagnostico2 !== null && dataDiagnostico2 !== undefined;\r\n const existeDataDiagnostico1 = dataDiagnostico1 !== null && dataDiagnostico1 !== undefined;\r\n\r\n if (existeDataSecagem) {\r\n dataLancamento = new Date(dataSecagem);\r\n evento = `secagem`;\r\n } else if (existeDataParto) {\r\n dataLancamento = new Date(dataParto);\r\n evento = `parto`;\r\n } else if (existeDataDiagnostico4) {\r\n dataLancamento = new Date(dataDiagnostico4);\r\n evento = `4º diagnóstico`;\r\n } else if (existeDataDiagnostico3) {\r\n dataLancamento = new Date(dataDiagnostico3);\r\n evento = `3º diagnóstico`;\r\n } else if (existeDataDiagnostico2) {\r\n dataLancamento = new Date(dataDiagnostico2);\r\n evento = `2º diagnóstico`;\r\n } else if (existeDataDiagnostico1) {\r\n dataLancamento = new Date(dataDiagnostico1);\r\n evento = `1º diagnóstico`;\r\n } else {\r\n dataLancamento = new Date(dataServico);\r\n evento = `serviço`;\r\n }\r\n\r\n if (this.data.matrixId.dtbaixa <= dataLancamento) {\r\n this.showAlertDialog( `A data de baixa do animal não pode ser anterior\r\n a data do(a) ${ evento } (${ this.datePipe.transform(dataLancamento, 'dd/MM/yy') }).`);\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n validaDataBaixaAnteriorLancamentosProducao() {\r\n let ultimLancamentoControleLeiteiro: ControleLeiteiro;\r\n\r\n let controlesLeiteiros =\r\n this.controlesLeiteiros.filter(controleLeiteiro => controleLeiteiro.cdMatriz === this.validMatrix.cdmatriz);\r\n\r\n const existemControlesLeiteiros = controlesLeiteiros !== undefined && controlesLeiteiros.length > 0;\r\n\r\n if (existemControlesLeiteiros) {\r\n controlesLeiteiros = controlesLeiteiros.sort\r\n (\r\n (a, b) => (new Date(b.dataControle).getTime() - new Date(a.dataControle).getTime())\r\n );\r\n\r\n ultimLancamentoControleLeiteiro = controlesLeiteiros[0];\r\n\r\n const dataControleLeiteiro = new Date(ultimLancamentoControleLeiteiro.dataControle);\r\n\r\n const existeControleLeiteiro = dataControleLeiteiro !== null && dataControleLeiteiro !== undefined;\r\n\r\n if (existeControleLeiteiro) {\r\n if (this.data.matrixId.dtbaixa <= dataControleLeiteiro) {\r\n this.showAlertDialog( `A data de baixa do animal não pode ser anterior\r\n a data de controle leiteiro (${ this.datePipe.transform(dataControleLeiteiro, 'dd/MM/yy') }).`);\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n validaMotivoBaixa() {\r\n const hasDataBaixa = this.data.matrixId.dtbaixa !== undefined\r\n && this.data.matrixId.dtbaixa !== null;\r\n const hasMotivoBaixa = this.data.matrixId.cdmotivobaixa !== undefined\r\n && this.data.matrixId.cdmotivobaixa !== null;\r\n if (hasMotivoBaixa) {\r\n if (!hasDataBaixa) {\r\n this.showAlertDialog(`É obrigatório informar a data da baixa quando possui o motivo da baixa.`);\r\n return false;\r\n }\r\n\r\n }\r\n return true;\r\n }\r\n\r\n validaDescarte() {\r\n const hasDescarte =\r\n this.data.matrixId.descarte !== undefined\r\n && this.data.matrixId.descarte !== null\r\n && this.data.matrixId.descarte !== false;\r\n const hasDataDescarte = this.data.matrixId.dtdescarte !== undefined && this.data.matrixId.dtdescarte !== null;\r\n if (hasDescarte) {\r\n if (!hasDataDescarte) {\r\n this.showAlertDialog(`É obrigatório informar a data quando é descarte.`);\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n validaDataDescarte() {\r\n const marcadoComoDescarte =\r\n this.data.matrixId.descarte !== undefined\r\n && this.data.matrixId.descarte !== null\r\n && this.data.matrixId.descarte !== false;\r\n const existeDataDescarte =\r\n this.data.matrixId.dtdescarte !== undefined && this.data.matrixId.dtdescarte !== null;\r\n if (marcadoComoDescarte && existeDataDescarte) {\r\n const dataDescarte = new Date(this.data.matrixId.dtdescarte);\r\n const dataAtual = new Date();\r\n const ehDataDescarteValida = dataDescarte <= dataAtual;\r\n if (!ehDataDescarteValida) {\r\n this.showAlertDialog(`A data do descarte não pode ser maior que a data atual.`);\r\n return false;\r\n }\r\n const dataNascimento = this.data.matrixId.dtnascimento;\r\n const existeDataNascimento = dataNascimento !== null && dataNascimento !== undefined;\r\n if (existeDataNascimento) {\r\n const ehDataDescarteValida = dataDescarte > new Date(this.data.matrixId.dtnascimento);\r\n if (!ehDataDescarteValida) {\r\n this.showAlertDialog(`A data do descarte não pode ser menor que a data de nascimento do animal.`);\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n validaDataNascimentoNumeroPartos() {\r\n const hasNumeroPartos =\r\n this.data.matrixId.numpartoinicio !== undefined\r\n && this.data.matrixId.numpartoinicio !== null\r\n && this.data.matrixId.numpartoinicio > 0;\r\n if (hasNumeroPartos) {\r\n const dtnascimento = new Date(this.data.matrixId.dtnascimento);\r\n const dataHoje = new Date();\r\n const dias = this.altaGestaoService.calculaDiferencaEntreDatas(dtnascimento, dataHoje);\r\n if (dias < 400) {\r\n this.showAlertDialog(`Não é permitido lançar partos para o animal com menos de 400 dias.`);\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n validaDesaleitamento() {\r\n const hasPesoDesaleitamento = this.data.matrixId.pesodesaleitamento !== undefined\r\n && this.data.matrixId.pesodesaleitamento !== null;\r\n const hasDataDesaleitamento = this.data.matrixId.dtdesaleitamento !== undefined\r\n && this.data.matrixId.dtdesaleitamento !== null;\r\n if (hasPesoDesaleitamento) {\r\n if (!hasDataDesaleitamento) {\r\n this.showAlertDialog(`É obrigatório informar a data desaleitamento quando informa o peso desaleitamento. `);\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n showAlertDialog(msg: string) {\r\n this.dialog.open(DialogoAlertaComponent, {\r\n data: {\r\n message: msg,\r\n buttonText: {\r\n cancel: 'Ok'\r\n }\r\n },\r\n });\r\n }\r\n\r\n openColostragemForm() {\r\n const dialogRef = this.dialog.open(ColostragemCadastroComponent, {\r\n disableClose: true,\r\n height: '450px',\r\n width: '700px',\r\n data: {\r\n matrix: this.data.matrixId\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(res => {\r\n const a = document.createElement('a');\r\n a.click();\r\n a.remove();\r\n if (res && res.data === 'cancelar') {\r\n this.showSnackBar('Operação Cancelada.');\r\n }\r\n });\r\n }\r\n\r\n openPesagemForm() {\r\n const hasPesoAoNascer =\r\n this.data.matrixId.pesonascer !== undefined\r\n && this.data.matrixId.pesonascer !== null\r\n && this.data.matrixId.pesonascer > 0;\r\n\r\n if (hasPesoAoNascer) {\r\n const dialogRef = this.dialog.open(PesagemCadastroComponent, {\r\n disableClose: true,\r\n height: '400px',\r\n width: '600px',\r\n data: {\r\n matrix: this.data.matrixId\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(res => {\r\n const a = document.createElement('a');\r\n a.click();\r\n a.remove();\r\n if (res && res.data === 'cancelar') {\r\n this.showSnackBar('Operação Cancelada.');\r\n }\r\n });\r\n } else {\r\n this.showAlertDialog(`Informe o peso ao nascer do animal para prosseguir`);\r\n }\r\n }\r\n\r\n openEventosForm() {\r\n const dialogRef = this.dialog.open(EventosCadastroComponent, {\r\n disableClose: true,\r\n height: '400px',\r\n width: '600px',\r\n data: {\r\n matrix: this.data.matrixId\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(res => {\r\n const a = document.createElement('a');\r\n a.click();\r\n a.remove();\r\n if (res && res.data === 'cancelar') {\r\n this.showSnackBar('Operação Cancelada.');\r\n }\r\n });\r\n }\r\n\r\n onMatrixHistoryCellClick(e: any) {\r\n this.selectedHistory = e.dataItem;\r\n }\r\n\r\n onMatrixHistoryDblClick() {\r\n this.editHandler({ dataItem: this.selectedHistory });\r\n }\r\n\r\n public editHandler(e: any) {\r\n const matrixHistory: Array = this.historicoMatriz.filter(m => m.cdMatriz === e.dataItem.cdMatriz);\r\n\r\n let dialogRef: MatDialogRef;\r\n\r\n dialogRef = this.dialog.open(MatrizHistoricoCadastroComponent, {\r\n disableClose: true,\r\n height: '300px',\r\n width: '500px',\r\n data: {\r\n histories: matrixHistory,\r\n numeroDaMatriz: this.data.matrixId.numero,\r\n nomeDaMatriz: this.data.matrixId.nome,\r\n cdMatriz: this.data.matrixId.cdmatriz\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result != null) {\r\n this.getHistoricosDeMatriz();\r\n }\r\n });\r\n }\r\n\r\n onGridKeyDown(e: any) {\r\n if (e.code === this.F4) {\r\n this.onMatrixHistoryDblClick();\r\n }\r\n }\r\n\r\n openEditMother() {\r\n const hasMother =\r\n this.data.matrixId.cdmae !== undefined\r\n && this.data.matrixId.cdmae > 0;\r\n\r\n if (hasMother) {\r\n const id = this.data.matrixId.cdmae;\r\n this.motherId = this.matrizes.find(matrix => matrix.cdmatriz === id);\r\n this.hasChangesMother = true;\r\n this.editMother = true;\r\n this.edited = true;\r\n } else {\r\n this.showAlertDialog(`Selecione uma mãe para editar`);\r\n }\r\n }\r\n\r\n openNewMother() {\r\n this.motherId = new Matriz();\r\n this.hasChangesMother = true;\r\n this.editMother = true;\r\n this.edited = true;\r\n }\r\n\r\n openMotherDialog() {\r\n const dialogRef = this.dialog.open(MatrizMaeCadastroComponent, {\r\n disableClose: true,\r\n height: '400px',\r\n width: '800',\r\n data: {\r\n matrixId: this.motherId\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result !== null) {\r\n this.getMatrizes();\r\n this.getGenealogia();\r\n }\r\n });\r\n }\r\n\r\n closeMotherRegisterDialog(closed: any) {\r\n this.editMother = false;\r\n this.edited = false;\r\n this.hasChangesMother = false;\r\n }\r\n\r\n updateMotherId(cdmatriz: any) {\r\n this.data.matrixId.cdmae = cdmatriz;\r\n this.getMatrizes();\r\n this.getGenealogia();\r\n this.closeMotherRegisterDialog(true);\r\n this.hasChanges = true;\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21hdHJpeC9tYXRyaXotaGlzdG9yaWNvLWNhZGFzdHJvL21hdHJpei1oaXN0b3JpY28tY2FkYXN0cm8uY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, Inject, ViewChild } from '@angular/core';\r\nimport { GridDataResult, GridComponent, RowClassArgs } from '@progress/kendo-angular-grid';\r\nimport { SortDescriptor, orderBy } from '@progress/kendo-data-query';\r\nimport { faPlus, faEdit } from '@fortawesome/free-solid-svg-icons';\r\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { HistoricoDeMatriz } from 'src/models/matriz/historico-matriz.model';\r\nimport { FormGroup, Validators, FormControl } from '@angular/forms';\r\nimport { DialogoConfirmacao } from 'src/app/_utils/dialogo-confirmacao/dialogo-confirmacao.component';\r\nimport { MatrizService } from 'src/app/_services/matriz.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { DialogoAlertaComponent } from 'src/app/_utils/dialogo-alerta/dialogo-alerta.component';\r\n\r\n@Component({\r\n selector: 'app-matriz-historico-cadastro',\r\n templateUrl: './matriz-historico-cadastro.component.html',\r\n styleUrls: ['./matriz-historico-cadastro.component.scss']\r\n})\r\nexport class MatrizHistoricoCadastroComponent implements OnInit {\r\n\r\n @ViewChild('historyGrid', { static: false }) grid: GridComponent;\r\n\r\n public hasChanges = false;\r\n public itemsToUpdate: Array = [];\r\n public itemToRemove: HistoricoDeMatriz;\r\n\r\n public formGroup: FormGroup;\r\n public previousEdit: any;\r\n public editedRowIndex: number;\r\n\r\n public nomeDaMatriz: string;\r\n public numeroDaMatriz: string;\r\n\r\n public removedItems: Array = [];\r\n public allHistory: Array;\r\n\r\n public historyList: Array;\r\n public gridView: GridDataResult;\r\n public matrixSort: SortDescriptor[] = [{ field: 'name', dir: 'asc' }];\r\n public gridSelection: any[] = [];\r\n public loading = false;\r\n public addMatrixHistory = faPlus;\r\n public editIcon = faEdit;\r\n\r\n public selectedCallback = (args: { dataItem: any; }) => args.dataItem;\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA)\r\n public data: any,\r\n public dialog: MatDialog,\r\n private snackBar: MatSnackBar,\r\n private matrizService: MatrizService,\r\n public dialogRef: MatDialogRef) {\r\n if (data && data.histories) {\r\n this.historyList = data.histories;\r\n }\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n validateItem(context: RowClassArgs) {\r\n const data: Date = new Date(context.dataItem.data);\r\n\r\n context.dataItem.isValid = true;\r\n\r\n const hasDateAndDescription =\r\n data !== undefined\r\n && context.dataItem.historico !== undefined\r\n && context.dataItem.historico !== '';\r\n\r\n const hasValidDate = data < new Date();\r\n\r\n if (!hasDateAndDescription || !hasValidDate) {\r\n context.dataItem.isValid = false;\r\n }\r\n\r\n return {\r\n invalid: !context.dataItem.isValid\r\n };\r\n }\r\n\r\n public clickTableRow() {\r\n const matrix = this.gridSelection[0];\r\n }\r\n\r\n public onCellClick({ sender, rowIndex, columnIndex, dataItem, isEdited }) {\r\n this.editHandler({ sender, rowIndex, columnIndex, dataItem, isEdited });\r\n }\r\n\r\n private createFormGroup(dataItem: HistoricoDeMatriz) {\r\n this.formGroup = new FormGroup({\r\n data: new FormControl(new Date(dataItem.data)),\r\n historico: new FormControl(dataItem.historico, Validators.required)\r\n },\r\n {\r\n updateOn: 'blur',\r\n });\r\n\r\n this.formGroup.valueChanges.subscribe(value => this.updateObjectHandler(dataItem));\r\n }\r\n\r\n private updateObjectHandler(dataItem: HistoricoDeMatriz) {\r\n dataItem.historico = this.formGroup.controls[`historico`].value;\r\n dataItem.data = this.formGroup.controls[`data`].value;\r\n\r\n const itemsToUpdate = this.itemsToUpdate.filter(cond => cond === dataItem);\r\n if (itemsToUpdate.length === 0) {\r\n this.itemsToUpdate.push(dataItem);\r\n }\r\n\r\n this.hasChanges = true;\r\n }\r\n\r\n protected closeRow({ sender, rowIndex }) {\r\n sender.closeRow(rowIndex);\r\n }\r\n\r\n public removeClick({ dataItem }) {\r\n this.itemToRemove = this.historyList.find(hm => hm.cdHistorico === dataItem.cdHistorico);\r\n this.removeHandler();\r\n }\r\n\r\n public removeHandler() {\r\n const dialogRef = this.dialog.open(DialogoConfirmacao, {\r\n data: {\r\n message: 'Deseja realmente remover o registro selecionado?',\r\n buttonText: {\r\n ok: 'Sim',\r\n cancel: 'Não'\r\n }\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((confirmed: boolean) => {\r\n if (confirmed) {\r\n this.removeItem(dialogRef);\r\n }\r\n });\r\n }\r\n\r\n private removeItem(dialogRef) {\r\n this.historyList = this.historyList.filter(hm => hm.cdHistorico !== this.itemToRemove.cdHistorico);\r\n\r\n if (this.itemToRemove.cdHistorico !== 0) {\r\n\r\n this.matrizService.removeHistoricoDeMatriz([this.itemToRemove]).subscribe((response: Array) => {\r\n if (response != null) {\r\n this.allHistory = response;\r\n }\r\n });\r\n } else {\r\n\r\n this.itemsToUpdate = this.itemsToUpdate.filter(hm => hm !== this.itemToRemove);\r\n\r\n if (this.itemsToUpdate.length === 0) {\r\n this.hasChanges = false;\r\n }\r\n }\r\n\r\n dialogRef.close();\r\n }\r\n\r\n saveClick() {\r\n this.saveHandler(false);\r\n }\r\n\r\n private getHistoryAndClose() {\r\n this.matrizService.getHistoricoDeMatrizPorFazenda().subscribe(response => {\r\n this.allHistory = response;\r\n this.closeHandler();\r\n });\r\n }\r\n\r\n protected saveHandler(closeDialog: boolean) {\r\n const dialogRef = this.dialog.open(DialogoConfirmacao, {\r\n data: {\r\n message: 'Deseja salvar as alterações?',\r\n buttonText: {\r\n ok: 'Sim',\r\n cancel: 'Não'\r\n }\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((confirmed: boolean) => {\r\n if (confirmed) {\r\n const item = this.itemsToUpdate.find(cond => cond.isValid === false);\r\n const hasInvalidItem = item !== null && item !== undefined;\r\n if (hasInvalidItem) {\r\n this.dialog.open(DialogoAlertaComponent, {\r\n data: {\r\n message: `Não foi possível salvar. Existem registros inválidos`,\r\n buttonText: {\r\n cancel: 'OK'\r\n }\r\n }\r\n });\r\n } else {\r\n this.saveChanges(dialogRef, closeDialog);\r\n }\r\n } else if (closeDialog) {\r\n this.getHistoryAndClose();\r\n }\r\n });\r\n }\r\n\r\n private saveChanges(dialogRef, closeDialog: boolean) {\r\n console.log(this.itemsToUpdate);\r\n this.matrizService.atualizaHistoricoDeMatriz(this.itemsToUpdate).subscribe((response: Array) => {\r\n\r\n if (response != null) {\r\n this.allHistory = response;\r\n\r\n this.snackBar.open('Alterações salvas com sucesso.', 'Fechar', {\r\n duration: 2000,\r\n });\r\n\r\n if (closeDialog) {\r\n this.closeHandler();\r\n }\r\n }\r\n });\r\n\r\n this.hasChanges = false;\r\n dialogRef.close();\r\n }\r\n\r\n closeClick() {\r\n if (this.hasChanges === true) {\r\n this.saveHandler(true);\r\n } else {\r\n this.closeHandler();\r\n }\r\n }\r\n\r\n private closeHandler() {\r\n this.dialogRef.close(this.allHistory);\r\n }\r\n\r\n addClick() {\r\n this.addHandler();\r\n }\r\n\r\n addHandler() {\r\n this.createFormGroup(new HistoricoDeMatriz());\r\n\r\n const newHistory: HistoricoDeMatriz = new HistoricoDeMatriz();\r\n newHistory.cdMatriz = this.data.cdMatriz;\r\n newHistory.cdFazenda = this.matrizService.getCdFazenda();\r\n newHistory.data = new Date();\r\n newHistory.cdHistorico = 0;\r\n\r\n this.historyList.push(newHistory);\r\n\r\n this.editHandler({ sender: this.grid, rowIndex: this.historyList.length - 1, columnIndex: 0, dataItem: newHistory, isEdited: false });\r\n\r\n this.hasChanges = true;\r\n }\r\n\r\n editHandler({ sender, rowIndex, columnIndex, dataItem, isEdited }) {\r\n\r\n if (this.previousEdit != null) {\r\n\r\n this.closeRow(this.previousEdit);\r\n }\r\n\r\n this.createFormGroup(dataItem);\r\n\r\n sender.editCell(rowIndex, columnIndex, this.formGroup);\r\n this.previousEdit = { dataItem, sender, rowIndex };\r\n }\r\n}\r\n\r\n\r\n\r\n","export default \".hasError {\\n color: red !important;\\n border-bottom: 1px solid red !important;\\n}\\n\\n.isDisabled {\\n color: #cecece !important;\\n border: 1px solid #ececec !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWF0cml4L21hdHJpei1tYWUtY2FkYXN0cm8vRDpcXFByb2plY3RzXFxhbHRhLWdlc3Rhby0wNFxcTWFpblxcVjJcXEFsdGFHZXN0YW8uV2ViXFxhbHRhLWdlc3Rhby9zcmNcXGFwcFxcbWF0cml4XFxtYXRyaXotbWFlLWNhZGFzdHJvXFxtYXRyaXotbWFlLWNhZGFzdHJvLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9tYXRyaXgvbWF0cml6LW1hZS1jYWRhc3Ryby9tYXRyaXotbWFlLWNhZGFzdHJvLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0kscUJBQUE7RUFDQSx1Q0FBQTtBQ0NKOztBREVBO0VBQ0kseUJBQUE7RUFDQSxvQ0FBQTtBQ0NKIiwiZmlsZSI6InNyYy9hcHAvbWF0cml4L21hdHJpei1tYWUtY2FkYXN0cm8vbWF0cml6LW1hZS1jYWRhc3Ryby5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5oYXNFcnJvciB7XHJcbiAgICBjb2xvcjogcmVkICFJbXBvcnRhbnQ7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmVkICFJbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5pc0Rpc2FibGVkIHtcclxuICAgIGNvbG9yOiAjY2VjZWNlICFJbXBvcnRhbnQ7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWNlY2VjICFJbXBvcnRhbnQ7XHJcbn0iLCIuaGFzRXJyb3Ige1xuICBjb2xvcjogcmVkICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZWQgIWltcG9ydGFudDtcbn1cblxuLmlzRGlzYWJsZWQge1xuICBjb2xvcjogI2NlY2VjZSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZWNlY2VjICFpbXBvcnRhbnQ7XG59Il19 */\"","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MatInput, MatRadioButton, MatSnackBar, MatSnackBarConfig } from '@angular/material';\r\nimport { GridDataResult } from '@progress/kendo-angular-grid';\r\nimport { SortDescriptor } from '@progress/kendo-data-query';\r\nimport { DialogoConfirmacao } from 'src/app/_utils/dialogo-confirmacao/dialogo-confirmacao.component';\r\nimport { ConfiguracoesService } from 'src/app/_services/configuracoes.service';\r\nimport { MatrizService } from 'src/app/_services/matriz.service';\r\nimport { Raca } from 'src/models/configuracoes/raca.model';\r\nimport { Reprodutor } from 'src/models/configuracoes/reprodutor.model';\r\nimport { SemenTouro } from 'src/models/configuracoes/semen-touro.model';\r\nimport { ComposicaoRacial } from 'src/models/matriz/composicao-racial.model';\r\nimport { Genealogia } from 'src/models/matriz/genealogia.model';\r\nimport { Lote } from 'src/models/matriz/lote.model';\r\nimport { Matriz } from 'src/models/matriz/matriz.model';\r\nimport { Reproducao } from 'src/models/matriz/reproducao.models';\r\n\r\n@Component({\r\n selector: 'app-matriz-mae-cadastro',\r\n templateUrl: './matriz-mae-cadastro.component.html',\r\n styleUrls: ['./matriz-mae-cadastro.component.scss']\r\n})\r\nexport class MatrizMaeCadastroComponent implements OnInit {\r\n\r\n @Input() matrixId: any;\r\n @Output() closed = new EventEmitter();\r\n @Output() motherId = new EventEmitter();\r\n\r\n @ViewChild('tipo0', { static: false }) tipo0: MatRadioButton;\r\n @ViewChild('tipo1', { static: false }) tipo1: MatRadioButton;\r\n @ViewChild('ativo0', { static: false }) ativo0: MatRadioButton;\r\n @ViewChild('ativo1', { static: false }) ativo1: MatRadioButton;\r\n @ViewChild('desc', { static: false }) private desc: MatInput;\r\n\r\n hasChangesComp = false;\r\n hasChangesLot = false;\r\n hasChanges = false;\r\n hasChangesPai = false;\r\n hasError = false;\r\n desabilita = false;\r\n loading = false;\r\n editComp = false;\r\n editLote = false;\r\n editMother = true;\r\n edited = false;\r\n\r\n raca: Array;\r\n racaList: Array;\r\n compositionList: Array;\r\n compositionListAll: Array;\r\n lotListAll: Array;\r\n racas = [];\r\n reprodutorListAll: Array;\r\n reprodutorList: Array;\r\n semenTourosListAll: Array;\r\n semenTourosList: Array;\r\n racaListAll: Array;\r\n composicao: Array;\r\n reprodutor: Array;\r\n lote: Array;\r\n genealogia: Array;\r\n reproducao: Array;\r\n matrixListAll: Array;\r\n\r\n clickedRowItem: any;\r\n racialCompositionId: any;\r\n validComposition: any;\r\n lotId: any;\r\n validLot: any;\r\n validReprodutor: any;\r\n semenTouroId: any;\r\n reprodutorId: any;\r\n validMatrix: any;\r\n\r\n message = '';\r\n perc1: string;\r\n perc2: string;\r\n perc3: string;\r\n perc4: string;\r\n perc5: string;\r\n rac1: string;\r\n rac2: string;\r\n rac3: string;\r\n rac4: string;\r\n rac5: string;\r\n percTotal = 0;\r\n msg = '';\r\n msgPercentual = '';\r\n msgTotal: string;\r\n msgPreenchimento = '';\r\n msgValidFill = '';\r\n msgRaca = '';\r\n\r\n gridView: GridDataResult;\r\n matrixSort: SortDescriptor[] = [{ field: 'name', dir: 'asc' }];\r\n gridSelection: any[] = [];\r\n\r\n avoSelecionado: number;\r\n paiSelecionado: number;\r\n semenCodePai: string;\r\n totalPartos = 0;\r\n numPartos = 0;\r\n total = 0;\r\n\r\n F4 = `F4`;\r\n\r\n snackBarConfig: MatSnackBarConfig = {\r\n panelClass: ['mat-snack-bar-container'],\r\n duration: 2500\r\n };\r\n\r\n selectedCallback = (args: { dataItem: any; }) => args.dataItem;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private snackBar: MatSnackBar,\r\n private matrizService: MatrizService,\r\n private reprodutorService: ConfiguracoesService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.racaList = [];\r\n this.compositionList = [];\r\n this.totalPartos = this.matrixId.numPartos !== undefined ? this.matrixId.numPartos : this.totalPartos;\r\n this.numPartos = this.totalPartos;\r\n this.onPartosTotais(this.matrixId.numpartoinicio);\r\n this.getAllRaca();\r\n this.getAllComposition();\r\n this.getAllLot();\r\n this.getAllReprodutor();\r\n this.getSemenTouro();\r\n this.getRaca();\r\n this.getAllGenealogia();\r\n this.getAllComposicaoRacial();\r\n this.getReprodutor();\r\n this.getAllLote();\r\n this.getAllMatrix(false);\r\n }\r\n\r\n getAllMatrix(isInsert: boolean) {\r\n if (!isInsert) {\r\n this.loading = true;\r\n this.matrizService.getMatrizes().subscribe((response) => {\r\n this.matrixListAll = response;\r\n this.loading = false;\r\n });\r\n } else {\r\n this.loading = true;\r\n this.matrizService.getMatrizes().subscribe((response) => {\r\n this.matrixListAll = response;\r\n this.matrixId.cdmatriz = this.matrixListAll.sort((a, b) => b.cdmatriz - a.cdmatriz)[0].cdmatriz;\r\n this.motherId.emit(this.matrixId.cdmatriz);\r\n this.loading = false;\r\n });\r\n }\r\n }\r\n\r\n getAllComposicaoRacial() {\r\n this.loading = true;\r\n this.matrizService.getComposicaoRacial().subscribe((response) => {\r\n this.composicao = response;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n getReprodutor() {\r\n this.loading = true;\r\n this.matrizService.getReprodutor().subscribe((response) => {\r\n this.reprodutor = response;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n getAllLote() {\r\n this.loading = true;\r\n this.matrizService.getLote().subscribe((response) => {\r\n this.lote = response;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n getAllGenealogia() {\r\n this.loading = true;\r\n this.matrizService.getGenealogia().subscribe((response) => {\r\n this.genealogia = response;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n getAllRaca() {\r\n this.loading = true;\r\n this.matrizService.getRaca().subscribe((response) => {\r\n this.raca = response;\r\n this.racaList = response;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n getAllComposition() {\r\n this.loading = true;\r\n this.matrizService.getConfiguracoesComposicaoRacial().subscribe((response) => {\r\n this.compositionListAll = response;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n getAllLot() {\r\n this.loading = true;\r\n this.matrizService.getLot().subscribe((response) => {\r\n this.lotListAll = response;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n getAllReprodutor() {\r\n this.loading = true;\r\n this.reprodutorService.getReprodutores().subscribe((response) => {\r\n this.reprodutorListAll = response;\r\n this.reprodutorList = [];\r\n this.reprodutorList = this.reprodutorListAll;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n getSemenTouro() {\r\n this.loading = true;\r\n this.reprodutorService.getSemenTouros().subscribe((response) => {\r\n this.semenTourosListAll = response;\r\n this.semenTourosList = response;\r\n const hasCdPai = this.matrixId !== undefined && this.matrixId.cdpai !== undefined;\r\n if (hasCdPai) {\r\n this.onBuscaSemenCode(this.matrixId.cdpai);\r\n }\r\n this.loading = false;\r\n });\r\n }\r\n\r\n getRaca() {\r\n this.loading = true;\r\n this.reprodutorService.getRacas().subscribe((response) => {\r\n this.racaListAll = response;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n onPartosTotais(obj: any) {\r\n const sel = obj;\r\n if (sel !== null && sel !== undefined) {\r\n this.totalPartos = parseFloat(sel) + this.numPartos;\r\n } else {\r\n this.totalPartos = this.numPartos;\r\n }\r\n }\r\n\r\n onBuscaAvo(ob: any) {\r\n const hasOb = ob !== undefined && ob !== null;\r\n if (hasOb) {\r\n const selectedBook = ob.value;\r\n this.avoSelecionado = ob.value;\r\n }\r\n }\r\n\r\n onBuscaPai(ob: any) {\r\n const hasOb = ob !== undefined && ob !== null;\r\n if (hasOb) {\r\n const selectedBook = ob.value;\r\n this.paiSelecionado = ob.value;\r\n }\r\n }\r\n\r\n onBuscaSemenCode(ob: any) {\r\n const hasOb = ob !== undefined && ob !== null;\r\n if (hasOb) {\r\n const semenCode = this.semenTourosListAll.filter(x => (x.cdreprodutor === ob.value));\r\n for (const item of semenCode) {\r\n this.semenCodePai = item.codigoInternacional;\r\n }\r\n } else {\r\n const semenCode = this.semenTourosListAll.filter(x => (x.cdreprodutor === ob));\r\n for (const item of semenCode) {\r\n this.semenCodePai = item.codigoInternacional;\r\n }\r\n }\r\n }\r\n\r\n hasValue(statusValue: any) {\r\n const hasNumber =\r\n this.matrixId.numero !== null && this.matrixId.numero !== undefined && this.matrixId.numero !== '';\r\n\r\n if (hasNumber) {\r\n if (statusValue !== '' && statusValue !== undefined) {\r\n this.hasChanges = true;\r\n }\r\n } else {\r\n this.hasChanges = false;\r\n }\r\n }\r\n\r\n // cadastro/alteracao composicao racial\r\n openNewRacialComposition() {\r\n this.racialCompositionId = new ComposicaoRacial();\r\n this.editComp = true;\r\n this.edited = true;\r\n }\r\n\r\n closeRacialComposition() {\r\n this.clearAllFields();\r\n this.editComp = false;\r\n this.edited = false;\r\n }\r\n\r\n saveNewComposition() {\r\n this.msgValidFill = '';\r\n\r\n let validacao = this.validFill();\r\n\r\n if (validacao) {\r\n validacao = this.validateComposition();\r\n }\r\n\r\n if (validacao) {\r\n this.saveComp(this.tipo0.checked, this.ativo0.checked);\r\n this.hasChangesComp = false;\r\n this.editComp = false;\r\n this.edited = false;\r\n } else {\r\n this.openConfirmationDialog();\r\n }\r\n }\r\n\r\n openConfirmationDialog() {\r\n const dialogRef1 = this.dialog.open(DialogoConfirmacao, {\r\n data: {\r\n // message: 'Existem campos para serem preenchidos! ',\r\n message: this.msgValidFill !== '' ? this.msgValidFill : 'Existem campos para serem preenchidos! ',\r\n buttonText: {\r\n ok: 'Cancelar Tudo',\r\n cancel: 'Corrigir'\r\n }\r\n }\r\n });\r\n dialogRef1.afterClosed().subscribe((confirmed: boolean) => {\r\n if (confirmed) {\r\n this.clearAllFields();\r\n this.editComp = false;\r\n this.edited = false;\r\n }\r\n });\r\n\r\n }\r\n\r\n hasValueComp(statusValueComp) {\r\n if ( statusValueComp.trim() !== '' && statusValueComp !== undefined ) {\r\n this.hasChangesComp = true;\r\n } else {\r\n this.hasChangesComp = false;\r\n }\r\n }\r\n\r\n saveComp(tipo0: boolean, ativo0: boolean) {\r\n this.racialCompositionId.tipo = tipo0 === true ? true : false;\r\n this.racialCompositionId.ativo = ativo0 === true ? true : false;\r\n\r\n this.racialCompositionId.padrao = this.racialCompositionId.PADRAO > 0 ? this.racialCompositionId.PADRAO : null;\r\n this.racialCompositionId.cdraca1 = this.racialCompositionId.cdraca1 === undefined ? null : this.racialCompositionId.cdraca1;\r\n this.racialCompositionId.percentual1 = this.racialCompositionId.percentual1 === undefined\r\n ? null : this.racialCompositionId.percentual1;\r\n this.racialCompositionId.cdraca2 = this.racialCompositionId.cdraca2 === undefined ? null : this.racialCompositionId.cdraca2;\r\n this.racialCompositionId.percentual2 = this.racialCompositionId.percentual2 === undefined\r\n ? null : this.racialCompositionId.percentual2;\r\n this.racialCompositionId.cdraca3 = this.racialCompositionId.cdraca3 === undefined ? null : this.racialCompositionId.cdraca3;\r\n this.racialCompositionId.percentual3 = this.racialCompositionId.percentual3 === undefined\r\n ? null : this.racialCompositionId.percentual3;\r\n this.racialCompositionId.cdraca4 = this.racialCompositionId.cdraca4 === undefined ? null : this.racialCompositionId.cdraca4;\r\n this.racialCompositionId.percentual4 = this.racialCompositionId.percentual4 === undefined\r\n ? null : this.racialCompositionId.percentual4;\r\n this.racialCompositionId.cdraca5 = this.racialCompositionId.cdraca5 === undefined ? null : this.racialCompositionId.cdraca5;\r\n this.racialCompositionId.percentual5 = this.racialCompositionId.percentual5 === undefined\r\n ? null : this.racialCompositionId.percentual5;\r\n this.racialCompositionId.removido = this.racialCompositionId.removido === undefined ? false : this.racialCompositionId.removido;\r\n\r\n this.validateComposition();\r\n\r\n this.racialCompositionId.cdfazenda = this.racialCompositionId.cdfazenda !== null && this.racialCompositionId.cdfazenda !== undefined\r\n ? this.racialCompositionId.cdfazenda : this.matrizService.getCdFazenda();\r\n\r\n if ( this.message !== '' ) {\r\n this.showSnackBar(this.message);\r\n this.compositionList = [];\r\n this.atualizaListagemComp(false);\r\n this.message = '';\r\n } else {\r\n this.matrizService.insertComposition(this.racialCompositionId).subscribe((response) => {\r\n this.compositionList = [];\r\n this.atualizaListagemComp(true);\r\n this.hasChanges = true;\r\n this.showSnackBar('Registros armazenados com sucesso.');\r\n }, (error) => this.showSnackBar(error));\r\n }\r\n }\r\n\r\n validTotalPerc() {\r\n let percItem1 = 0;\r\n let percItem2 = 0;\r\n let percItem3 = 0;\r\n let percItem4 = 0;\r\n let percItem5 = 0;\r\n let percItem = 0;\r\n\r\n percItem1 = parseFloat(this.racialCompositionId.percentual1 !== null && this.racialCompositionId.percentual1 !== undefined\r\n && this.racialCompositionId.percentual1 !== '' ? this.racialCompositionId.percentual1 : 0);\r\n percItem2 = parseFloat(this.racialCompositionId.percentual2 !== null && this.racialCompositionId.percentual2 !== undefined\r\n && this.racialCompositionId.percentual2 !== '' ? this.racialCompositionId.percentual2 : 0);\r\n percItem3 = parseFloat(this.racialCompositionId.percentual3 !== null && this.racialCompositionId.percentual3 !== undefined\r\n && this.racialCompositionId.percentual3 !== '' ? this.racialCompositionId.percentual3 : 0);\r\n percItem4 = parseFloat(this.racialCompositionId.percentual4 !== null && this.racialCompositionId.percentual4 !== undefined\r\n && this.racialCompositionId.percentual4 !== '' ? this.racialCompositionId.percentual4 : 0);\r\n percItem5 = parseFloat(this.racialCompositionId.percentual5 !== null && this.racialCompositionId.percentual5 !== undefined\r\n && this.racialCompositionId.percentual5 !== '' ? this.racialCompositionId.percentual5 : 0);\r\n\r\n if (percItem1 > 0) { this.validPerc(percItem1, 'Percentual1'); }\r\n if (percItem2 > 0) { this.validPerc(percItem2, 'Percentual2'); }\r\n if (percItem3 > 0) { this.validPerc(percItem3, 'Percentual3'); }\r\n if (percItem4 > 0) { this.validPerc(percItem4, 'Percentual4'); }\r\n if (percItem5 > 0) { this.validPerc(percItem5, 'Percentual5'); }\r\n\r\n this.validBreed();\r\n\r\n percItem = (percItem1 + percItem2 + percItem3 + percItem4 + percItem5);\r\n\r\n if (percItem > 100) {\r\n this.msgTotal = 'Erro! Soma dos Percentuais acima de 100. ';\r\n if (!this.hasError) { this.hasError = true; }\r\n return false;\r\n } else {\r\n this.msgTotal = '';\r\n return true;\r\n }\r\n }\r\n\r\n validateComposition() {\r\n if (this.racialCompositionId.descricao !== null && this.racialCompositionId.descricao !== undefined) {\r\n\r\n this.validComposition = this.racialCompositionId;\r\n\r\n const description = this.racialCompositionId.descricao.toUpperCase();\r\n const array = new Array();\r\n const raca = description.split(', ');\r\n\r\n for (let i = 0; i < 4; i++) {\r\n if (raca[i] !== undefined) {\r\n array.push(raca[i]);\r\n }\r\n }\r\n\r\n let total = 0;\r\n let tem = false;\r\n\r\n for (const item of this.compositionListAll) {\r\n if ( item.cdcomposicaoracial !== this.racialCompositionId.cdcomposicaoracial\r\n && item.descricao.toUpperCase() === this.racialCompositionId.descricao.toUpperCase() ) {\r\n this.validComposition = [];\r\n this.message = 'Esta descrição já existe no cadastro.';\r\n return false;\r\n }\r\n\r\n const desc = item.descricao.toUpperCase();\r\n const arrayLista = new Array();\r\n const racas = desc.split(', ');\r\n if (racas.length === raca.length) {\r\n for (let i = 0; i < 4; i++) {\r\n tem = item.descricao.toUpperCase().includes(array[i], i) ? true : false;\r\n if (tem) {\r\n total = total + 1;\r\n }\r\n\r\n if (total === raca.length) {\r\n if ( item.cdcomposicaoracial === this.racialCompositionId.cdcomposicaoracial) {\r\n return true;\r\n } else {\r\n this.validComposition = [];\r\n this.message = 'A composição racial informada já existe! Escolha outra.';\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n }\r\n\r\n atualizaListagemComp(isInsert: boolean) {\r\n if (isInsert) {\r\n this.loading = true;\r\n this.matrizService.getConfiguracoesComposicaoRacial().subscribe((response) => {\r\n this.compositionListAll = response;\r\n this.compositionList = response;\r\n this.composicao = response;\r\n this.matrixId.cdcomposicaoracial =\r\n this.compositionListAll.sort((a, b) => b.cdcomposicaoracial - a.cdcomposicaoracial)[0].cdcomposicaoracial;\r\n this.loading = false;\r\n });\r\n } else {\r\n this.loading = true;\r\n this.matrizService.getConfiguracoesComposicaoRacial().subscribe((response) => {\r\n this.compositionListAll = response;\r\n this.compositionList = response;\r\n this.composicao = response;\r\n this.loading = false;\r\n });\r\n }\r\n }\r\n\r\n validPerc(value: number, field: string) {\r\n const num = value / 0.390625;\r\n const setField = field;\r\n\r\n // Parte inteira:\r\n const int = Math.trunc(num);\r\n\r\n // Parte decimal ('0' por padrão).\r\n const decimal = num - int;\r\n\r\n if (decimal > 0) {\r\n this.hasError = true;\r\n const indice = this.msgPercentual.indexOf(setField);\r\n if (indice === 0 && this.msgPercentual.length > 43) { this.msgPercentual = this.msgPercentual.substring(43); }\r\n if (indice === 0 && this.msgPercentual.length === 43) { this.msgPercentual = ''; }\r\n if (indice >= 43) { this.msgPercentual = this.msgPercentual.substring(indice - 1, 0)\r\n + this.msgPercentual.substring(this.msgPercentual.length, indice + 43); }\r\n this.msgPercentual += setField + ' está com valor lançado errado! ';\r\n\r\n return false;\r\n } else {\r\n const indice = this.msgPercentual.indexOf(setField);\r\n if (indice === 0 ) { this.msgPercentual = this.msgPercentual.substring(43); }\r\n if (indice >= 43) { this.msgPercentual = this.msgPercentual.substring(indice - 1, 0)\r\n + this.msgPercentual.substring(this.msgPercentual.length, indice + 43); }\r\n if (this.msgPercentual === '') { this.hasError = false; }\r\n\r\n this.getDescription();\r\n\r\n return true;\r\n }\r\n }\r\n\r\n validBreed() {\r\n const erro = this.hasError;\r\n this.racas = [];\r\n\r\n if ( this.racialCompositionId.cdraca1 !== null && this.racialCompositionId.cdraca1 !== undefined ) {\r\n const tem = this.racas.includes(this.racialCompositionId.cdraca1);\r\n if (tem) {\r\n this.msgRaca = 'Erro! Existe(m) raça(s) repetida(s). ';\r\n this.hasError = true;\r\n return false;\r\n } else {\r\n this.racas.push(this.racialCompositionId.cdraca1);\r\n }\r\n }\r\n\r\n if ( this.racialCompositionId.cdraca2 !== null && this.racialCompositionId.cdraca2 !== undefined ) {\r\n const tem = this.racas.includes(this.racialCompositionId.cdraca2);\r\n if (tem) {\r\n this.msgRaca = 'Erro! Existe(m) raça(s) repetida(s). ';\r\n this.hasError = true;\r\n return false;\r\n } else {\r\n this.racas.push(this.racialCompositionId.cdraca2);\r\n }\r\n }\r\n\r\n if ( this.racialCompositionId.cdraca3 !== null && this.racialCompositionId.cdraca3 !== undefined ) {\r\n const tem = this.racas.includes(this.racialCompositionId.cdraca3);\r\n if (tem) {\r\n this.msgRaca = 'Erro! Existe(m) raça(s) repetida(s). ';\r\n this.hasError = true;\r\n return false;\r\n } else {\r\n this.racas.push(this.racialCompositionId.cdraca3);\r\n }\r\n }\r\n\r\n if ( this.racialCompositionId.cdraca4 !== null && this.racialCompositionId.cdraca4 !== undefined ) {\r\n const tem = this.racas.includes(this.racialCompositionId.cdraca4);\r\n if (tem) {\r\n this.msgRaca = 'Erro! Existe(m) raça(s) repetida(s). ';\r\n this.hasError = true;\r\n return false;\r\n } else {\r\n this.racas.push(this.racialCompositionId.cdraca4);\r\n }\r\n }\r\n\r\n if ( this.racialCompositionId.cdraca5 !== null && this.racialCompositionId.cdraca5 !== undefined ) {\r\n const tem = this.racas.includes(this.racialCompositionId.cdraca5);\r\n if (tem) {\r\n this.msgRaca = 'Erro! Existe(m) raça(s) repetida(s). ';\r\n this.hasError = true;\r\n return false;\r\n } else {\r\n this.racas.push(this.racialCompositionId.cdraca5);\r\n }\r\n }\r\n\r\n this.msgRaca = '';\r\n if (!erro) { this.hasError = false; }\r\n return true;\r\n }\r\n\r\n public getDescription() {\r\n const sigla1 = this.raca.find(x => x.cdraca === this.racialCompositionId.cdraca1);\r\n const sigla2 = this.raca.find(x => x.cdraca === this.racialCompositionId.cdraca2);\r\n const sigla3 = this.raca.find(x => x.cdraca === this.racialCompositionId.cdraca3);\r\n const sigla4 = this.raca.find(x => x.cdraca === this.racialCompositionId.cdraca4);\r\n const sigla5 = this.raca.find(x => x.cdraca === this.racialCompositionId.cdraca5);\r\n\r\n\r\n let total = 0;\r\n total += parseFloat(this.racialCompositionId.cdraca1) > 0 ? 1 : 0;\r\n total += parseFloat(this.racialCompositionId.cdraca2) > 0 ? 1 : 0;\r\n total += parseFloat(this.racialCompositionId.cdraca3) > 0 ? 1 : 0;\r\n total += parseFloat(this.racialCompositionId.cdraca4) > 0 ? 1 : 0;\r\n total += parseFloat(this.racialCompositionId.cdraca5) > 0 ? 1 : 0;\r\n\r\n const fracao1 = this.fracaoRaca(parseFloat(this.racialCompositionId.percentual1));\r\n const fracao2 = this.fracaoRaca(parseFloat(this.racialCompositionId.percentual2));\r\n const fracao3 = this.fracaoRaca(parseFloat(this.racialCompositionId.percentual3));\r\n const fracao4 = this.fracaoRaca(parseFloat(this.racialCompositionId.percentual4));\r\n const fracao5 = this.fracaoRaca(parseFloat(this.racialCompositionId.percentual5));\r\n\r\n let nome = '';\r\n\r\n if ( total === 1 ) {\r\n nome = sigla1.descricao;\r\n } else {\r\n if ( total >= 2 ) {\r\n nome = fracao1 + ' ' + sigla1.sigla;\r\n nome = nome + ', ' + fracao2 + ' ' + sigla2.sigla;\r\n if ( total >= 3 ) {\r\n nome = nome + ', ' + fracao3 + ' ' + sigla3.sigla;\r\n if ( total >= 4 ) {\r\n nome = nome + ', ' + fracao4 + ' ' + sigla4.sigla;\r\n if ( total === 5 ) {\r\n nome = nome + ', ' + fracao5 + ' ' + sigla5.sigla;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n this.racialCompositionId.descricao = nome;\r\n }\r\n\r\n // converte o valor percentual em fracao para incluir na descricao\r\n public fracaoRaca(APercentual: number) {\r\n let num: number;\r\n let den: number;\r\n\r\n den = 1;\r\n\r\n while (den <= 256) {\r\n num = (APercentual * den) / 100;\r\n if ( (num < den) && (Math.trunc(num) === num) ) {\r\n return num + '/' + den;\r\n }\r\n den = den * 2;\r\n }\r\n }\r\n\r\n public clearAllFields() {\r\n this.racialCompositionId.cdraca1 = null;\r\n this.racialCompositionId.cdraca2 = null;\r\n this.racialCompositionId.cdraca3 = null;\r\n this.racialCompositionId.cdraca4 = null;\r\n this.racialCompositionId.cdraca5 = null;\r\n\r\n this.racialCompositionId.percentual1 = null;\r\n this.racialCompositionId.percentual2 = null;\r\n this.racialCompositionId.percentual3 = null;\r\n this.racialCompositionId.percentual4 = null;\r\n this.racialCompositionId.percentual5 = null;\r\n\r\n this.racialCompositionId.descricao = '';\r\n\r\n this.clearMessages();\r\n\r\n this.hasChangesComp = false;\r\n }\r\n\r\n clearMessages() {\r\n this.msgTotal = '';\r\n this.msgPercentual = '';\r\n this.hasError = false;\r\n }\r\n\r\n validFill() {\r\n if ( this.tipo1.checked === true ) {\r\n if (this.racialCompositionId.cdraca1 !== null\r\n && this.racialCompositionId.cdraca1 !== ''\r\n && this.racialCompositionId.cdraca1 !== undefined) {\r\n if (this.racialCompositionId.cdraca2 !== null\r\n && this.racialCompositionId.cdraca2 !== ''\r\n && this.racialCompositionId.cdraca2 !== undefined) {\r\n if (this.racialCompositionId.percentual1 !== null\r\n && this.racialCompositionId.percentual1 !== ''\r\n && this.racialCompositionId.percentual1 !== undefined) {\r\n if (this.racialCompositionId.percentual2 !== null\r\n && this.racialCompositionId.percentual2 !== ''\r\n && this.racialCompositionId.percentual2 !== undefined) {\r\n return this.validFillOthers();\r\n } else {\r\n this.msgValidFill = 'Preencha o campo Percentual 2.';\r\n return false;\r\n }\r\n } else {\r\n this.msgValidFill = 'Preencha o campo Percentual 1.';\r\n return false;\r\n }\r\n } else {\r\n this.msgValidFill = 'Preencha o campo Raca 2.';\r\n return false;\r\n }\r\n } else {\r\n this.msgValidFill = 'Preecha o campo Raca 1.';\r\n return false;\r\n }\r\n } else {\r\n if ( this.tipo1.checked === false ) {\r\n if (this.racialCompositionId.cdraca1 !== null\r\n && this.racialCompositionId.cdraca1 !== ''\r\n && this.racialCompositionId.cdraca1 !== undefined) {\r\n if (this.racialCompositionId.percentual1 !== null\r\n && this.racialCompositionId.percentual1 !== ''\r\n && this.racialCompositionId.percentual1 !== undefined) {\r\n if (this.racialCompositionId.percentual1 === 100) {\r\n return true;\r\n } else {\r\n this.msgValidFill = 'O percentual da Raça deve ser 100.';\r\n return false;\r\n }\r\n } else {\r\n this.msgValidFill = 'Preencha o campo percentual da Raça.';\r\n return false;\r\n }\r\n } else {\r\n this.msgValidFill = 'Escolha uma raça e preencha o campo Percentual 1.';\r\n return false;\r\n }\r\n } else { return false; }\r\n }\r\n }\r\n\r\n validFillOthers() {\r\n if ( this.tipo1.checked === true ) {\r\n if (this.racialCompositionId.cdraca3 !== null\r\n && this.racialCompositionId.cdraca3 !== ''\r\n && this.racialCompositionId.cdraca3 !== undefined) {\r\n if (this.racialCompositionId.percentual3 === null\r\n || this.racialCompositionId.percentual3 === ''\r\n || this.racialCompositionId.percentual3 === undefined) {\r\n this.msgValidFill = 'O percentual da Raça 3 deve ser preenchido.';\r\n return false;\r\n }\r\n }\r\n if (this.racialCompositionId.cdraca4 !== null\r\n && this.racialCompositionId.cdraca4 !== ''\r\n && this.racialCompositionId.cdraca4 !== undefined) {\r\n if (this.racialCompositionId.percentual4 === null\r\n || this.racialCompositionId.percentual4 === ''\r\n || this.racialCompositionId.percentual4 === undefined) {\r\n this.msgValidFill = 'O percentual da Raça 4 deve ser preenchido.';\r\n return false;\r\n }\r\n }\r\n\r\n if (this.racialCompositionId.cdraca5 !== null\r\n && this.racialCompositionId.cdraca5 !== ''\r\n && this.racialCompositionId.cdraca5 !== undefined) {\r\n if (this.racialCompositionId.percentual5 === null\r\n || this.racialCompositionId.percentual5 === ''\r\n || this.racialCompositionId.percentual5 === undefined) {\r\n this.msgValidFill = 'O percentual da Raça 3 deve ser preenchido.';\r\n return false;\r\n }\r\n }\r\n\r\n if (this.racialCompositionId.percentual3 !== null\r\n && this.racialCompositionId.percentual3 !== ''\r\n && this.racialCompositionId.percentual3 !== undefined) {\r\n if (this.racialCompositionId.cdraca3 === null\r\n || this.racialCompositionId.cdraca3 === ''\r\n || this.racialCompositionId.cdraca3 === undefined) {\r\n this.msgValidFill = 'O campo Raca 3 deve ser preenchido.';\r\n return false;\r\n }\r\n }\r\n\r\n if (this.racialCompositionId.percentual4 !== null\r\n && this.racialCompositionId.percentual4 !== ''\r\n && this.racialCompositionId.percentual4 !== undefined) {\r\n if (this.racialCompositionId.cdraca4 === null\r\n || this.racialCompositionId.cdraca4 === ''\r\n || this.racialCompositionId.cdraca4 === undefined) {\r\n this.msgValidFill = 'O campo Raca 4 deve ser preenchido.';\r\n return false;\r\n }\r\n }\r\n\r\n if (this.racialCompositionId.percentual5 !== null\r\n && this.racialCompositionId.percentual5 !== ''\r\n && this.racialCompositionId.percentual5 !== undefined) {\r\n if (this.racialCompositionId.cdraca5 === null\r\n || this.racialCompositionId.cdraca5 === ''\r\n || this.racialCompositionId.cdraca5 === undefined) {\r\n this.msgValidFill = 'O campo Raca 5 deve ser preenchido.';\r\n return false;\r\n }\r\n }\r\n\r\n // verifica totais percentuais\r\n let percItem1 = 0;\r\n let percItem2 = 0;\r\n let percItem3 = 0;\r\n let percItem4 = 0;\r\n let percItem5 = 0;\r\n let percItem = 0;\r\n\r\n percItem1 = parseFloat(this.racialCompositionId.percentual1 !== null\r\n && this.racialCompositionId.percentual1 !== undefined\r\n && this.racialCompositionId.percentual1 !== '' ? this.racialCompositionId.percentual1 : 0);\r\n percItem2 = parseFloat(this.racialCompositionId.percentual2 !== null\r\n && this.racialCompositionId.percentual2 !== undefined\r\n && this.racialCompositionId.percentual2 !== '' ? this.racialCompositionId.percentual2 : 0);\r\n percItem3 = parseFloat(this.racialCompositionId.percentual3 !== null\r\n && this.racialCompositionId.percentual3 !== undefined\r\n && this.racialCompositionId.percentual3 !== '' ? this.racialCompositionId.percentual3 : 0);\r\n percItem4 = parseFloat(this.racialCompositionId.percentual4 !== null\r\n && this.racialCompositionId.percentual4 !== undefined\r\n && this.racialCompositionId.percentual4 !== '' ? this.racialCompositionId.percentual4 : 0);\r\n percItem5 = parseFloat(this.racialCompositionId.percentual5 !== null\r\n && this.racialCompositionId.percentual5 !== undefined\r\n && this.racialCompositionId.percentual5 !== '' ? this.racialCompositionId.percentual5 : 0);\r\n\r\n percItem = (percItem1 + percItem2 + percItem3 + percItem4 + percItem5);\r\n\r\n if (percItem < 100) {\r\n this.msgValidFill = 'A soma dos percentuais não Totalizam 100.';\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n validacaoTipos() {\r\n if (this.racialCompositionId.padrao === 0\r\n || this.racialCompositionId.padrao === undefined\r\n || this.racialCompositionId.padrao === null\r\n ) {\r\n\r\n // verifica se o tipo é PURA\r\n if ( this.tipo0 === undefined ) {\r\n this.validGeral();\r\n } else {\r\n if ( this.tipo0.checked === true ) {\r\n this.getValuesFields();\r\n this.clearFields();\r\n this.desabilita = true;\r\n this.clearMessages();\r\n } else {\r\n this.clearMessages();\r\n this.setValuesFields();\r\n this.desabilita = false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n validGeral() {\r\n // valida percentuais - se o valor lançado como percentual é válido\r\n this.perc1 = this.racialCompositionId.percentual1;\r\n this.perc2 = this.racialCompositionId.percentual2;\r\n this.perc3 = this.racialCompositionId.percentual3;\r\n this.perc4 = this.racialCompositionId.percentual4;\r\n this.perc5 = this.racialCompositionId.percentual5;\r\n\r\n this.validPerc(parseFloat(this.perc1), 'Percentual1');\r\n this.validPerc(parseFloat(this.perc2), 'Percentual2');\r\n this.validPerc(parseFloat(this.perc3), 'Percentual3');\r\n this.validPerc(parseFloat(this.perc4), 'Percentual4');\r\n this.validPerc(parseFloat(this.perc5), 'Percentual5');\r\n\r\n // preenche o campo descrição\r\n this.getDescription();\r\n\r\n // verifica se total percentuais não ultrapassou 100%\r\n this.validTotalPerc();\r\n }\r\n\r\n getValuesFields() {\r\n this.desc = this.racialCompositionId.descricao;\r\n\r\n this.rac1 = this.racialCompositionId.cdraca1;\r\n this.rac2 = this.racialCompositionId.cdraca2;\r\n this.rac3 = this.racialCompositionId.cdraca3;\r\n this.rac4 = this.racialCompositionId.cdraca4;\r\n this.rac5 = this.racialCompositionId.cdraca5;\r\n\r\n this.perc1 = this.racialCompositionId.percentual1;\r\n this.perc2 = this.racialCompositionId.percentual2;\r\n this.perc3 = this.racialCompositionId.percentual3;\r\n this.perc4 = this.racialCompositionId.percentual4;\r\n this.perc5 = this.racialCompositionId.percentual5;\r\n }\r\n\r\n setValuesFields() {\r\n this.racialCompositionId.descricao = this.desc;\r\n this.racialCompositionId.cdraca1 = this.rac1 !== '' ? this.rac1 : '';\r\n this.racialCompositionId.cdraca2 = this.rac2 !== '' ? this.rac2 : '';\r\n this.racialCompositionId.cdraca3 = this.rac3 !== '' ? this.rac3 : '';\r\n this.racialCompositionId.cdraca4 = this.rac4 !== '' ? this.rac4 : '';\r\n this.racialCompositionId.cdraca5 = this.rac5 !== '' ? this.rac5 : '';\r\n\r\n if (this.perc1 !== '') {\r\n this.racialCompositionId.percentual1 = this.perc1;\r\n this.validPerc(parseFloat(this.perc1), 'Percentual1');\r\n }\r\n if (this.perc2 !== '') {\r\n this.racialCompositionId.percentual2 = this.perc2;\r\n this.validPerc(parseFloat(this.perc2), 'Percentual2');\r\n }\r\n if (this.perc3 !== '') {\r\n this.racialCompositionId.percentual3 = this.perc3;\r\n this.validPerc(parseFloat(this.perc3), 'Percentual3');\r\n }\r\n if (this.perc4 !== '') {\r\n this.racialCompositionId.percentual4 = this.perc4;\r\n this.validPerc(parseFloat(this.perc4), 'Percentual4');\r\n }\r\n if (this.perc5 !== '') {\r\n this.racialCompositionId.percentual5 = this.perc5;\r\n this.validPerc(parseFloat(this.perc5), 'Percentual5');\r\n }\r\n }\r\n\r\n clearFields() {\r\n this.racialCompositionId.cdraca2 = null;\r\n this.racialCompositionId.cdraca3 = null;\r\n this.racialCompositionId.cdraca4 = null;\r\n this.racialCompositionId.cdraca5 = null;\r\n this.racialCompositionId.percentual1 = null;\r\n this.racialCompositionId.percentual2 = null;\r\n this.racialCompositionId.percentual3 = null;\r\n this.racialCompositionId.percentual4 = null;\r\n this.racialCompositionId.percentual5 = null;\r\n this.racialCompositionId.descricao = '';\r\n this.getDescription();\r\n }\r\n\r\n openNewLote() {\r\n this.lotId = new Lote();\r\n this.editLote = true;\r\n this.edited = true;\r\n }\r\n\r\n closeLote() {\r\n this.editLote = false;\r\n this.edited = false;\r\n }\r\n\r\n saveLot() {\r\n this.hasChangesLot = false;\r\n this.editLote = false;\r\n this.edited = false;\r\n this.saveLotAll();\r\n }\r\n\r\n saveLotAll() {\r\n this.validateLot();\r\n\r\n this.lotId.cdfazenda = this.lotId.cdfazenda !== null && this.lotId.cdfazenda !== undefined\r\n ? this.lotId.cdfazenda : this.matrizService.getCdFazenda();\r\n\r\n if (this.message !== '' ) {\r\n this.showSnackBar(this.message);\r\n this.atualizaListagemLot(false);\r\n this.message = '';\r\n } else {\r\n this.matrizService.insertLot(this.lotId).subscribe((response) => {\r\n this.atualizaListagemLot(true);\r\n this.hasChanges = true;\r\n this.showSnackBar('Registros armazenados com sucesso.');\r\n }, (error) => this.showSnackBar(error));\r\n }\r\n }\r\n\r\n validateLot() {\r\n if (this.lotId.descricao !== null && this.lotId.descricao !== undefined) {\r\n this.validLot = this.lotId;\r\n for (const item of this.lotListAll) {\r\n if ( item.cdlote !== this.lotId.cdlote\r\n && item.descricao.toUpperCase() === this.lotId.descricao.toUpperCase() ) {\r\n this.validLot = [];\r\n this.message = 'Esta descrição já existe no cadastro.';\r\n }\r\n }\r\n }\r\n }\r\n\r\n atualizaListagemLot(isInsert: boolean) {\r\n if (isInsert) {\r\n this.loading = true;\r\n this.matrizService.getLot().subscribe((response) => {\r\n this.lotListAll = response;\r\n this.matrixId.cdlote = this.lotListAll.sort((a, b) => b.cdlote - a.cdlote)[0].cdlote;\r\n this.loading = false;\r\n });\r\n } else {\r\n this.loading = true;\r\n this.matrizService.getLot().subscribe((response) => {\r\n this.lotListAll = response;\r\n this.matrixId.cdlote = this.lotListAll.sort((a, b) => b.cdlote - a.cdlote)[0].cdlote;\r\n this.loading = false;\r\n });\r\n }\r\n }\r\n\r\n hasValueLot(statusValueLot) {\r\n if ( statusValueLot.trim() !== '' && statusValueLot !== undefined ) {\r\n this.hasChangesLot = true;\r\n } else {\r\n this.hasChangesLot = false;\r\n }\r\n }\r\n\r\n hasValuePai(statusValuePai) {\r\n if ( statusValuePai.trim() !== '' && statusValuePai !== undefined ) {\r\n this.hasChangesPai = true;\r\n } else {\r\n this.hasChangesPai = false;\r\n }\r\n }\r\n\r\n showSnackBar(message: string) {\r\n this.snackBar.open(message, 'X', this.snackBarConfig);\r\n }\r\n\r\n save() {\r\n const hasValidMatrix =\r\n this.validMatrix.cdmatriz !== null\r\n && this.validMatrix.cdmatriz !== undefined\r\n && this.validMatrix.cdmatriz !== 0;\r\n\r\n if (hasValidMatrix) {\r\n this.matrizService.atualizaMatriz(this.matrixId).subscribe((response: Array) => {\r\n this.motherId.emit(this.matrixId.cdmatriz);\r\n this.showSnackBar('Alterações salvas com sucesso.');\r\n }, (error) => this.showSnackBar(error));\r\n } else {\r\n this.matrizService.insereMatriz(this.matrixId).subscribe((response) => {\r\n this.getAllMatrix(true);\r\n this.showSnackBar('Alterações salvas com sucesso.');\r\n }, (error) => this.showSnackBar(error));\r\n }\r\n }\r\n\r\n validateMatrix(): boolean {\r\n let isValid = true;\r\n const hasMatrixNumber = this.matrixId.numero !== null && this.matrixId.numero !== undefined;\r\n if (hasMatrixNumber) {\r\n this.validMatrix = this.matrixId;\r\n } else {\r\n isValid = false;\r\n }\r\n return isValid;\r\n }\r\n\r\n close() {\r\n this.editMother = false;\r\n this.edited = false;\r\n this.hasChanges = false;\r\n this.closed.emit(true);\r\n }\r\n\r\n saveMother() {\r\n if (this.validateMatrix()) {\r\n this.save();\r\n }\r\n }\r\n\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Byb2R1Y3Rpb24vY29udHJvbGUtbGVpdGVpcm8tY2FkYXN0cm8vY29udHJvbGUtbGVpdGVpcm8tY2FkYXN0cm8uY29tcG9uZW50LnNjc3MifQ== */\"","import { Reproducao } from 'src/models/matriz/reproducao.models';\r\nimport { DatePipe } from '@angular/common';\r\nimport { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MatSnackBar, MAT_DATE_FORMATS, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { ProducaoService } from 'src/app/_services/producao.service';\r\nimport { ReproducaoService } from 'src/app/_services/reproducao.service';\r\nimport { MY_DATE_FORMATS } from 'src/app/_utils/calendar-date-format.utils';\r\nimport { ControleLeiteiro } from 'src/models/producao/controle-leiteiro.model';\r\n\r\n@Component({\r\n selector: 'app-controle-leiteiro-cadastro',\r\n templateUrl: './controle-leiteiro-cadastro.component.html',\r\n styleUrls: ['./controle-leiteiro-cadastro.component.scss'],\r\n providers: [\r\n { provide: MAT_DATE_FORMATS, useValue: MY_DATE_FORMATS }\r\n ]\r\n})\r\nexport class ControleLeiteiroCadastroComponent implements OnInit {\r\n\r\n hasChanges = false;\r\n selectedMatrix: ControleLeiteiro;\r\n itemsSource: Array;\r\n item: ControleLeiteiro;\r\n dairyControlsRegistered: ControleLeiteiro[];\r\n reproductions: Reproducao[];\r\n persistedItem: ControleLeiteiro;\r\n action = 'INSERT';\r\n error = ``;\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: any,\r\n public dialog: MatDialog,\r\n private snackBar: MatSnackBar,\r\n private producaoService: ProducaoService,\r\n private reproducaoService: ReproducaoService,\r\n private datePipe: DatePipe,\r\n public dialogRef: MatDialogRef) {\r\n\r\n this.itemsSource = data.items;\r\n this.item = data.item;\r\n }\r\n\r\n ngOnInit() {\r\n this.selectedMatrix = this.itemsSource.find(cond => cond.cdMatriz === this.item.cdMatriz);\r\n if (this.item.cdLeite != null) {\r\n this.itemsSource = [this.selectedMatrix];\r\n const newItem = new ControleLeiteiro();\r\n newItem.cdFazenda = this.item.cdFazenda;\r\n newItem.cdLeite = this.item.cdLeite;\r\n newItem.cdMatriz = this.item.cdMatriz;\r\n newItem.cdReproducao = this.item.cdReproducao;\r\n newItem.dataControle = this.item.dataControle;\r\n newItem.dataLactacao = this.item.dataLactacao;\r\n newItem.nomeMatriz = this.item.nomeMatriz;\r\n newItem.numeroMatriz = this.item.numeroMatriz;\r\n newItem.ordenha1 = this.item.ordenha1;\r\n newItem.ordenha2 = this.item.ordenha2;\r\n newItem.ordenha3 = this.item.ordenha3;\r\n newItem.pesoTotal = this.item.pesoTotal;\r\n newItem.ccs = this.item.ccs;\r\n this.persistedItem = this.item;\r\n this.item = newItem;\r\n this.action = 'UPDATE';\r\n }\r\n this.getDairyControlsRegistered();\r\n this.getReproductions();\r\n }\r\n\r\n getDairyControlsRegistered() {\r\n this.producaoService.getControlesLeiteirosLancados().subscribe((response: any) => {\r\n this.dairyControlsRegistered = response;\r\n });\r\n }\r\n\r\n getReproductions() {\r\n this.reproducaoService.getReproducoes().subscribe((response: any) => {\r\n this.reproductions = response;\r\n });\r\n }\r\n\r\n onSaveClick() {\r\n this.saveHandler(true);\r\n }\r\n\r\n protected saveHandler(closeDialog: boolean) {\r\n this.item.cdReproducao = this.selectedMatrix.cdReproducao;\r\n this.item.cdMatriz = this.selectedMatrix.cdMatriz;\r\n this.item.cdFazenda = this.selectedMatrix.cdFazenda;\r\n this.item.nomeMatriz = this.selectedMatrix.nomeMatriz;\r\n this.item.numeroMatriz = this.selectedMatrix.numeroMatriz;\r\n this.item.dataLactacao = this.selectedMatrix.dataLactacao;\r\n this.saveChanges(true);\r\n }\r\n\r\n private saveChanges(closeDialog: boolean) {\r\n this.error = ``;\r\n if (this.validateToSave()) {\r\n this.convertCcs();\r\n if (this.isInsert()) {\r\n this.insertItems(closeDialog);\r\n } else if (this.isUpdate()) {\r\n this.updateItems(closeDialog);\r\n }\r\n }\r\n }\r\n\r\n isInsert(): boolean {\r\n return (this.action === 'INSERT');\r\n }\r\n\r\n isUpdate(): boolean {\r\n return (this.action === 'UPDATE');\r\n }\r\n\r\n convertCcs() {\r\n const hasCcs = this.item.ccs !== undefined && this.item.ccs !== null;\r\n if (hasCcs) {\r\n this.item.ccs = Math.round(this.item.ccs);\r\n }\r\n }\r\n\r\n insertItems(closeDialog: boolean) {\r\n this.producaoService.insereControleLeiteiro(this.item).subscribe((response: ControleLeiteiro) => {\r\n if (response != null) {\r\n this.snackBar.open('Alterações salvas com sucesso.', 'Fechar', {\r\n duration: 2000,\r\n });\r\n if (closeDialog) {\r\n this.closeHandler(true);\r\n }\r\n }\r\n });\r\n }\r\n\r\n updateItems(closeDialog: boolean) {\r\n this.producaoService.atualizaControlesLeiteiros([this.item]).subscribe((response: Array) => {\r\n if (response !== null) {\r\n this.snackBar.open('Alterações salvas com sucesso.', 'Fechar', {\r\n duration: 2000,\r\n });\r\n if (closeDialog) {\r\n this.closeHandler(true);\r\n }\r\n }\r\n });\r\n }\r\n\r\n onCloseClick() {\r\n if (this.hasChanges === true) {\r\n this.saveHandler(true);\r\n } else {\r\n this.closeHandler(false);\r\n }\r\n }\r\n\r\n onChanged() {\r\n this.item.pesoTotal = +this.item.ordenha1 + +this.item.ordenha2 + +this.item.ordenha3;\r\n this.hasChanges = true;\r\n }\r\n\r\n private closeHandler(reload: any) {\r\n this.dialogRef.close(reload);\r\n }\r\n\r\n validateToSave(): boolean {\r\n if (!this.validateHasDairyControleDate()) { return false; }\r\n if (!this.validaLancamentoDeControleLeiteiro()) { return false; }\r\n if (!this.validaLancamentoDeOrdenhas()) { return false; }\r\n return true;\r\n }\r\n\r\n validateHasDairyControleDate() {\r\n const hasControlDate =\r\n this.item.dataControle !== undefined && this.item.dataControle !== null;\r\n if (!hasControlDate) {\r\n this.error = `É necessário informar a data do controle`;\r\n this.hasChanges = false;\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n validaLancamentoDeControleLeiteiro(): boolean {\r\n const dataControle = this.datePipe.transform(this.item.dataControle, `dd/MM/yyyy`);\r\n\r\n let controleLeiteirosLancados =\r\n this.dairyControlsRegistered.find(controleLeiteiro => controleLeiteiro.cdMatriz === this.item.cdMatriz\r\n && this.datePipe.transform(controleLeiteiro.dataControle, `dd/MM/yyyy`) === dataControle\r\n && controleLeiteiro.cdReproducao === this.item.cdReproducao);\r\n\r\n let existeControleLeiteiroLançado = controleLeiteirosLancados !== undefined && controleLeiteirosLancados.cdLeite > 0;\r\n if (existeControleLeiteiroLançado && this.isInsert()) {\r\n this.error = `Já existe um lançamento para esta matriz na mesma data`;\r\n this.hasChanges = false;\r\n return false;\r\n }\r\n\r\n controleLeiteirosLancados =\r\n this.dairyControlsRegistered.find(controleLeiteiro => controleLeiteiro.cdMatriz === this.item.cdMatriz\r\n && this.datePipe.transform(controleLeiteiro.dataControle, `dd/MM/yyyy`) === dataControle\r\n && controleLeiteiro.cdReproducao === this.item.cdReproducao\r\n && controleLeiteiro.cdLeite !== this.item.cdLeite);\r\n\r\n existeControleLeiteiroLançado = controleLeiteirosLancados !== undefined && controleLeiteirosLancados.cdLeite > 0;\r\n if (existeControleLeiteiroLançado && !this.isInsert()) {\r\n this.error = `Já existe um lançamento para esta matriz na mesma data`;\r\n this.hasChanges = false;\r\n return false;\r\n }\r\n\r\n const reproducao = this.reproductions.find(reproducao => reproducao.cdmatriz === this.item.cdMatriz\r\n && this.item.cdReproducao === reproducao.cdreproducao);\r\n\r\n const existeReproducao = reproducao !== undefined && reproducao.cdreproducao > 0;\r\n if (existeReproducao) {\r\n let ehControleLeiteiroValido = new Date(this.item.dataControle).getTime() > new Date(reproducao.dtparto).getTime();\r\n if (!ehControleLeiteiroValido) {\r\n this.error = `Não é permitido lançar um controle leiteiro com data\r\n anterior ao parto que deu início a lactação vigente`;\r\n this.hasChanges = false;\r\n return false;\r\n }\r\n\r\n ehControleLeiteiroValido = new Date(this.item.dataControle).getTime() <= new Date().getTime();\r\n if (!ehControleLeiteiroValido) {\r\n this.error = `Não é permitido lançar um controle leiteiro com data\r\n maior que a data atual`;\r\n this.hasChanges = false;\r\n return false;\r\n }\r\n\r\n }\r\n return true;\r\n }\r\n\r\n validaLancamentoDeOrdenhas() {\r\n const existeOrdenha1 =\r\n this.item.ordenha1 !== undefined && this.item.ordenha1 > 0;\r\n const existeOrdenha2 =\r\n this.item.ordenha2 !== undefined && this.item.ordenha2 > 0;\r\n const existeOrdenha3 =\r\n this.item.ordenha3 !== undefined && this.item.ordenha3 > 0;\r\n\r\n if (!existeOrdenha1 && !existeOrdenha2 && !existeOrdenha3) {\r\n this.error = `É necessário informar ao menos uma ordenha`;\r\n this.hasChanges = false;\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Byb2R1Y3Rpb24vc2VjYWdlbS1jYWRhc3Ryby9zZWNhZ2VtLWNhZGFzdHJvLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MatSnackBar, MAT_DATE_FORMATS, MAT_DIALOG_DATA } from '@angular/material';\r\nimport {MatDatepickerInputEvent} from '@angular/material/datepicker';\r\nimport { DialogoAlertaComponent } from 'src/app/_utils/dialogo-alerta/dialogo-alerta.component';\r\nimport { DialogoConfirmacao } from 'src/app/_utils/dialogo-confirmacao/dialogo-confirmacao.component';\r\nimport { ProducaoService } from 'src/app/_services/producao.service';\r\nimport { MY_DATE_FORMATS } from 'src/app/_utils/calendar-date-format.utils';\r\nimport { Secagem } from 'src/models/producao/secagem.model';\r\n\r\n@Component({\r\n selector: 'app-secagem-cadastro',\r\n templateUrl: './secagem-cadastro.component.html',\r\n styleUrls: ['./secagem-cadastro.component.scss'],\r\n providers: [\r\n { provide: MAT_DATE_FORMATS, useValue: MY_DATE_FORMATS }\r\n ]\r\n})\r\nexport class SecagemCadastroComponent implements OnInit {\r\n\r\n hasChanges = false;\r\n selectedMatrix: Secagem;\r\n itemsSource: Array;\r\n item: Secagem;\r\n persistedItem: Secagem;\r\n dtsecagem: Date;\r\n dtparto: Date;\r\n error = ``;\r\n controleLeiteiros: Array;\r\n\r\n action = 'INSERT';\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: any,\r\n public dialog: MatDialog,\r\n private snackBar: MatSnackBar,\r\n private producaoService: ProducaoService,\r\n public dialogRef: MatDialogRef) {\r\n this.itemsSource = data.items;\r\n this.item = data.item;\r\n }\r\n\r\n ngOnInit() {\r\n this.setDadosSecagem();\r\n this.getControlesLeiteiros();\r\n }\r\n\r\n getControlesLeiteiros() {\r\n this.producaoService.getControlesLeiteirosLancados().subscribe(request => {\r\n this.controleLeiteiros = request;\r\n });\r\n }\r\n\r\n setDadosSecagem() {\r\n if (this.item.cdreproducao !== undefined && this.item.cdreproducao > 0) {\r\n this.selectedMatrix = this.itemsSource.find\r\n (\r\n cond => cond.cdmatriz === this.item.cdmatriz && this.item.cdreproducao === cond.cdreproducao\r\n );\r\n } else {\r\n this.selectedMatrix = this.itemsSource.find\r\n (\r\n cond => cond.cdmatriz === this.item.cdmatriz\r\n );\r\n }\r\n this.dtparto = this.selectedMatrix.dtparto;\r\n this.dtsecagem = this.selectedMatrix.dtsecagem;\r\n\r\n if (this.item.cdreproducao !== null && this.item.cdreproducao !== undefined) {\r\n this.itemsSource = [this.selectedMatrix];\r\n\r\n const newItem = new Secagem();\r\n newItem.cdfazenda = this.item.cdfazenda;\r\n newItem.cdreproducao = this.item.cdreproducao;\r\n newItem.cdmatriz = this.item.cdmatriz;\r\n\r\n newItem.dtsecagem = this.item.dtsecagem;\r\n newItem.dtparto = this.item.dtparto;\r\n newItem.nome = this.item.nome;\r\n newItem.numero = this.item.numero;\r\n\r\n this.persistedItem = this.item;\r\n this.item = newItem;\r\n this.action = 'UPDATE';\r\n }\r\n }\r\n\r\n onSaveClick() {\r\n this.saveHandler(true, false);\r\n }\r\n\r\n protected saveHandler(closeDialog: boolean, isOnCloseClick: boolean) {\r\n this.item.cdreproducao = this.selectedMatrix.cdreproducao;\r\n this.item.cdmatriz = this.selectedMatrix.cdmatriz;\r\n this.item.cdfazenda = this.selectedMatrix.cdfazenda;\r\n this.item.nome = this.selectedMatrix.nome;\r\n this.item.numero = this.selectedMatrix.numero;\r\n this.item.dtparto = this.selectedMatrix.dtparto;\r\n this.item.dtsecagem = this.dtsecagem;\r\n\r\n if (isOnCloseClick) {\r\n this.showConfirmationDialog(closeDialog);\r\n } else {\r\n if (this.validate()) {\r\n this.saveChanges(true);\r\n }\r\n }\r\n }\r\n\r\n showConfirmationDialog(closeDialog: boolean) {\r\n const dialogRef = this.dialog.open(DialogoConfirmacao, {\r\n data: {\r\n message: 'Deseja salvar as alterações?',\r\n buttonText: {\r\n ok: 'Sim',\r\n cancel: 'Não'\r\n }\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe((confirmed: boolean) => {\r\n if (confirmed) {\r\n if (this.validaDataSecagem()) {\r\n this.saveChanges(true);\r\n }\r\n } else if (closeDialog) {\r\n this.closeHandler(null);\r\n }\r\n });\r\n }\r\n\r\n private saveChanges(closeDialog: boolean) {\r\n if (this.action === 'INSERT') {\r\n this.item.dtsecagem = this.dtsecagem;\r\n this.producaoService.insereSecagem(this.item).subscribe((response: Secagem) => {\r\n if (response != null) {\r\n this.snackBar.open('Alterações salvas com sucesso.', 'Fechar', {\r\n duration: 2000,\r\n });\r\n\r\n if (closeDialog) {\r\n this.closeHandler(response);\r\n }\r\n }\r\n });\r\n } else if (this.action === 'UPDATE') {\r\n this.item.dtsecagem = this.dtsecagem;\r\n this.producaoService.atualizaSecagens([this.item]).subscribe((response: Array) => {\r\n if (response != null) {\r\n this.snackBar.open('Alterações salvas com sucesso.', 'Fechar', {\r\n duration: 2000,\r\n });\r\n\r\n if (closeDialog) {\r\n this.closeHandler(response);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n onCloseClick() {\r\n if (this.hasChanges === true) {\r\n this.saveHandler(true, true);\r\n } else {\r\n this.closeHandler(null);\r\n }\r\n }\r\n\r\n addEvent(type: string, event: MatDatepickerInputEvent) {\r\n this.hasChanges = true;\r\n }\r\n\r\n closeHandler(result: any) {\r\n this.dialogRef.close(result);\r\n }\r\n\r\n validate(): boolean {\r\n if (!this.validaDataSecagem()) { return false; }\r\n if (!this.validaLancamentoSecagemAnteriorLancamentoUltimoControleLeiteiro()) { return false; }\r\n return true;\r\n }\r\n\r\n validaDataSecagem(): boolean {\r\n this.error = ``;\r\n const existeDataParto = this.item.dtparto !== undefined;\r\n const existeDataSecagem = this.item.dtsecagem !== undefined;\r\n\r\n if (existeDataParto && existeDataSecagem) {\r\n const dtSecagem = new Date(this.item.dtsecagem).getTime();\r\n const dtParto = new Date(this.item.dtparto).getTime();\r\n const dataAtual = new Date().getTime();\r\n const ehDataSecagemValida = dtSecagem > dtParto && dtSecagem <= dataAtual;\r\n\r\n if (!ehDataSecagemValida) {\r\n this.error = `A data da secagem não pode ser menor que a data do parto e nem maior que a data atual.`;\r\n this.showAlertDialog(this.error);\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n validaLancamentoSecagemAnteriorLancamentoUltimoControleLeiteiro(): boolean {\r\n const controlesLancados = this.controleLeiteiros.filter(controle => controle.cdMatriz === this.item.cdmatriz);\r\n const existemControlesLancados = controlesLancados !== undefined && controlesLancados.length > 0;\r\n\r\n if (existemControlesLancados)\r\n {\r\n const ultimoControleLeiteiro = controlesLancados.sort((one, two) => (one.dataControle > two.dataControle ? -1 : 1))[0];\r\n const existeUltimoControleLeiteiro = ultimoControleLeiteiro !== undefined && ultimoControleLeiteiro !== null;\r\n\r\n if (existeUltimoControleLeiteiro)\r\n {\r\n const dtSecagem = new Date(this.item.dtsecagem).getTime();\r\n const dataControle = new Date(ultimoControleLeiteiro.dataControle).getTime();\r\n \r\n if (dtSecagem < dataControle)\r\n {\r\n this.error = `A data da secagem não pode ser menor que a data do último controle leiteiro lançado.`;\r\n this.showAlertDialog(this.error);\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n showAlertDialog(msg: string) {\r\n this.dialog.open(DialogoAlertaComponent, {\r\n data: {\r\n message: msg,\r\n buttonText: {\r\n cancel: 'Ok'\r\n }\r\n },\r\n });\r\n }\r\n\r\n}\r\n","export default \".required {\\n color: red;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcmVwcm9kdWN0aW9uL2NvbnN1bHRhLWNhZGFzdHJvL0Q6XFxQcm9qZWN0c1xcYWx0YS1nZXN0YW8tMDRcXE1haW5cXFYyXFxBbHRhR2VzdGFvLldlYlxcYWx0YS1nZXN0YW8vc3JjXFxhcHBcXHJlcHJvZHVjdGlvblxcY29uc3VsdGEtY2FkYXN0cm9cXGNvbnN1bHRhLWNhZGFzdHJvLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9yZXByb2R1Y3Rpb24vY29uc3VsdGEtY2FkYXN0cm8vY29uc3VsdGEtY2FkYXN0cm8uY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxVQUFBO0FDQ0oiLCJmaWxlIjoic3JjL2FwcC9yZXByb2R1Y3Rpb24vY29uc3VsdGEtY2FkYXN0cm8vY29uc3VsdGEtY2FkYXN0cm8uY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIucmVxdWlyZWQge1xyXG4gICAgY29sb3I6IHJlZDtcclxufSIsIi5yZXF1aXJlZCB7XG4gIGNvbG9yOiByZWQ7XG59Il19 */\"","import { FazendaParametro } from 'src/models/fazenda-parametro.model';\r\nimport { Reprodutor } from 'src/models/configuracoes/reprodutor.model';\r\nimport { Reproducao } from 'src/models/matriz/reproducao.models';\r\nimport { Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialog, MatSnackBar, MatDialogRef } from '@angular/material';\r\nimport { DialogoConfirmacao } from 'src/app/_utils/dialogo-confirmacao/dialogo-confirmacao.component';\r\nimport { ReproducaoService } from 'src/app/_services/reproducao.service';\r\nimport { Matriz } from 'src/models/matriz/matriz.model';\r\nimport { ValidacaoReproducaoService } from 'src/app/_services/validacao-reproducao.service';\r\nimport { DialogoAlertaComponent } from 'src/app/_utils/dialogo-alerta/dialogo-alerta.component';\r\nimport { ConfiguracoesService } from 'src/app/_services/configuracoes.service';\r\nimport { MatrizService } from 'src/app/_services/matriz.service';\r\nimport { ParametroFiltro } from 'src/models/parametro-filtro.model';\r\nimport { ParametrosEditaveisService } from 'src/app/_services/parametros-editaveis.service';\r\n\r\n@Component({\r\n selector: 'app-consulta-cadastro',\r\n templateUrl: './consulta-cadastro.component.html',\r\n styleUrls: ['./consulta-cadastro.component.scss']\r\n})\r\nexport class ConsultaCadastroComponent implements OnInit {\r\n\r\n matrixPanelOpenState = true;\r\n iaCobTePanelOpenState = true;\r\n touchPanelOpenState = false;\r\n ocurrencesPanelOpenState = false;\r\n parturitionPanelOpenState = false;\r\n hasChanges = false;\r\n reload = false;\r\n loading = false;\r\n\r\n matrix: Matriz;\r\n reproductionsList: Reproducao[];\r\n breedersList: Reprodutor[];\r\n matrixList: Matriz[];\r\n parametersList: FazendaParametro[];\r\n numPartos: Reproducao[];\r\n item: any;\r\n oldItem: any;\r\n\r\n error = ``;\r\n\r\n gridSelection: any[] = [];\r\n\r\n selectedCallback = (args: { dataItem: any; }) => args.dataItem;\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: any,\r\n public dialog: MatDialog,\r\n private snackBar: MatSnackBar,\r\n private reproducaoService: ReproducaoService,\r\n public dialogRef: MatDialogRef,\r\n private reproducaoValidacaoService: ValidacaoReproducaoService,\r\n private configurationsService: ConfiguracoesService,\r\n private matrizService: MatrizService,\r\n private parameterService: ParametrosEditaveisService) {\r\n this.setItems(data);\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.hasReproductions()) {\r\n this.getReproductionsList();\r\n }\r\n this.getBreeders();\r\n this.getMatrix();\r\n this.getParametersByFarm();\r\n }\r\n\r\n hasReproductions(): boolean {\r\n const hasReproductions =\r\n this.data.reproductions !== undefined\r\n && this.data.reproductions !== null\r\n && this.data.reproductions.length > 0;\r\n return hasReproductions;\r\n }\r\n\r\n setItems(data: any) {\r\n this.oldItem = data.item;\r\n this.item = data.item;\r\n this.matrix = data.matrix;\r\n this.reproductionsList = data.reproductions;\r\n }\r\n\r\n setTentativasForScheduleIaCobTe() {\r\n if (this.item.tentativas === undefined) {\r\n const reproductions = this.reproductionsList.filter(rep => rep.cdmatriz === this.item.cdmatriz);\r\n const hasReproduction = reproductions !== undefined && reproductions.length > 0;\r\n if (hasReproduction) {\r\n this.item.tentativas = reproductions.sort((a, b) => (new Date(b.data).getTime() - new Date(a.data).getTime()))[0].tentativas;\r\n } else {\r\n this.item.tentativas = 0;\r\n }\r\n }\r\n }\r\n\r\n getReproductionsList() {\r\n this.loading = true;\r\n this.reproducaoService.getReproducoes().subscribe((response: Reproducao[]) => {\r\n this.reproductionsList = response;\r\n this.setTentativasForScheduleIaCobTe();\r\n this.loading = false;\r\n }, (error) => console.error(error));\r\n }\r\n\r\n getBreeders() {\r\n this.loading = true;\r\n this.configurationsService.getReprodutores().subscribe((response: Reprodutor[]) => {\r\n this.breedersList = response;\r\n this.loading = false;\r\n }, (error) => console.error(error));\r\n }\r\n\r\n getMatrix() {\r\n this.loading = true;\r\n this.matrizService.getMatrizes().subscribe((response: Matriz[]) => {\r\n this.matrixList = response;\r\n this.loading = false;\r\n }, (error) => console.error(error));\r\n }\r\n\r\n getParametersByFarm() {\r\n this.loading = true;\r\n const parameterFilter = new ParametroFiltro();\r\n parameterFilter.editavelWeb = true;\r\n this.parameterService.fetch(parameterFilter).subscribe((response: FazendaParametro[]) => {\r\n this.parametersList = response;\r\n this.loading = false;\r\n }, (error) => console.error(error));\r\n }\r\n\r\n onSaveClick() {\r\n this.saveHandler(false, false);\r\n }\r\n\r\n onCloseClick() {\r\n if (this.hasChanges) {\r\n this.saveHandler(true, true);\r\n } else {\r\n this.closeHandler(false);\r\n }\r\n }\r\n\r\n saveHandler(closeDialog: boolean, isOnCloseClick: boolean) {\r\n if (isOnCloseClick) {\r\n this.showConfirmationDialog(closeDialog);\r\n } else {\r\n if (this.validateToSave()) {\r\n this.saveChanges(closeDialog);\r\n this.closeHandler(true);\r\n }\r\n }\r\n }\r\n\r\n showConfirmationDialog(closeDialog: boolean) {\r\n const dialogRef = this.dialog.open(DialogoConfirmacao, {\r\n data: {\r\n message: 'Deseja salvar as alterações?',\r\n buttonText: {\r\n ok: 'Sim',\r\n cancel: 'Não'\r\n }\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe((confirmed: boolean) => {\r\n if (confirmed) {\r\n if (this.validateToSave()) {\r\n this.saveChanges(closeDialog);\r\n this.closeHandler(true);\r\n }\r\n } else if (closeDialog) {\r\n this.closeHandler(false);\r\n }\r\n });\r\n }\r\n\r\n saveChanges(closeDialog: boolean) {\r\n if (this.hasCdReproduction()) {\r\n this.updateIaCobTe(closeDialog);\r\n } else {\r\n this.insertIaCobTe(closeDialog);\r\n }\r\n }\r\n\r\n hasCdReproduction(): boolean {\r\n const hasCdReproduction =\r\n this.item.cdreproducao !== undefined\r\n && this.item.cdreproducao !== null\r\n && this.item.cdreproducao > 0;\r\n return hasCdReproduction;\r\n }\r\n\r\n insertIaCobTe(closeDialog: boolean) {\r\n this.reproducaoService.insereIaCobTes([this.item]).subscribe((response: Reproducao[]) => {\r\n this.showSnackBar('Alterações salvas com sucesso.');\r\n this.hasChanges = false;\r\n if (closeDialog) {\r\n this.closeHandler(true);\r\n }\r\n }, (error) => console.error(error));\r\n }\r\n\r\n updateIaCobTe(closeDialog: boolean) {\r\n this.reproducaoService.atualizaReproducoes([this.item]).subscribe((response: Reproducao[]) => {\r\n if (response != null) {\r\n this.showSnackBar('Alterações salvas com sucesso.');\r\n this.hasChanges = false;\r\n if (closeDialog) {\r\n this.closeHandler(true);\r\n }\r\n }\r\n }, (error) => console.error(error));\r\n }\r\n\r\n closeHandler(reload: boolean) {\r\n this.dialogRef.close(reload);\r\n }\r\n\r\n showSnackBar(message: string) {\r\n this.snackBar.open(message, 'X', {duration: 2500});\r\n }\r\n\r\n validateToSave(): boolean {\r\n let isValid = true;\r\n this.error = ``;\r\n const reproduction = this.item;\r\n const isScheduleScreen = this.data.isScheduleTouch || this.data.isScheduleIaCobTe;\r\n\r\n if (isScheduleScreen) {\r\n if (!this.reproducaoValidacaoService.validaLancamentoIaCobTe(this.reproductionsList, this.breedersList,\r\n reproduction, this.matrix, this.parametersList)\r\n || !this.reproducaoValidacaoService.validaLancamentoDiagnostico(reproduction, this.matrix)\r\n || !this.reproducaoValidacaoService.validaLancamentoDatas(this.reproductionsList, reproduction, this.oldItem, this.matrix)) {\r\n isValid = false;\r\n this.error = this.reproducaoValidacaoService.getErro();\r\n this.showErrorAlert();\r\n return isValid;\r\n }\r\n } else {\r\n if (!this.reproducaoValidacaoService.validaLancamentoIaCobTe(this.reproductionsList, this.breedersList,\r\n reproduction, this.matrix, this.parametersList)\r\n || !this.reproducaoValidacaoService.validaLancamentoDiagnostico(reproduction, this.matrix)\r\n || !this.reproducaoValidacaoService.validaLancamentoParto(reproduction, this.matrix, this.matrixList, this.parametersList)\r\n || !this.reproducaoValidacaoService.validaLancamentoDatas(this.reproductionsList, reproduction, this.oldItem, this.matrix)) {\r\n isValid = false;\r\n this.error = this.reproducaoValidacaoService.getErro();\r\n this.showErrorAlert();\r\n return isValid;\r\n }\r\n }\r\n\r\n return isValid;\r\n }\r\n\r\n itemHasChanged(value: string) {\r\n const hasChanges = value !== undefined && value === `true`;\r\n if (hasChanges) {\r\n this.hasChanges = true;\r\n }\r\n }\r\n\r\n showErrorAlert() {\r\n const dialogRef = this.dialog.open(DialogoAlertaComponent, {\r\n data: {\r\n message: `${this.error}`,\r\n buttonText: {\r\n cancel: 'OK'\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3JlcHJvZHVjdGlvbi9oaXN0b3JpY28tcmVwcm9kdWNhby1jYWRhc3Ryby9oaXN0b3JpY28tcmVwcm9kdWNhby1jYWRhc3Ryby5jb21wb25lbnQuc2NzcyJ9 */\"","import { Reproducao } from 'src/models/matriz/reproducao.models';\r\nimport { Matriz } from 'src/models/matriz/matriz.model';\r\nimport { Component, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialog, MatSnackBar, MatDialogRef } from '@angular/material';\r\nimport { faPlus, faEdit } from '@fortawesome/free-solid-svg-icons';\r\nimport { GridComponent, GridDataResult, RowClassArgs } from '@progress/kendo-angular-grid';\r\nimport { SortDescriptor } from '@progress/kendo-data-query';\r\nimport { DialogoConfirmacao } from 'src/app/_utils/dialogo-confirmacao/dialogo-confirmacao.component';\r\nimport { AltaGestaoService } from 'src/app/_services/alta-gestao.service';\r\nimport { ReproducaoService } from 'src/app/_services/reproducao.service';\r\nimport { HistoricoReproducaoFiltro } from 'src/models/reproducao/historico-reproducao-filtro.model';\r\nimport { HistoricoReproducao } from 'src/models/reproducao/historico-reproducao.model';\r\nimport { OcorrenciaReproducaoCadastroComponent } from '../ocorrencia-reproducao-cadastro/ocorrencia-reproducao-cadastro.component';\r\nimport { DialogoAlertaComponent } from 'src/app/_utils/dialogo-alerta/dialogo-alerta.component';\r\n\r\n@Component({\r\n selector: 'app-historico-reproducao-cadastro',\r\n templateUrl: './historico-reproducao-cadastro.component.html',\r\n styleUrls: ['./historico-reproducao-cadastro.component.scss']\r\n})\r\nexport class HistoricoReproducaoCadastroComponent implements OnInit {\r\n\r\n @ViewChild('eventsGrid', { static: false }) grid: GridComponent;\r\n\r\n hasChanges = false;\r\n loading = false;\r\n isValid = true;\r\n\r\n itemsToUpdate: HistoricoReproducao[] = [];\r\n itemsToInsert: HistoricoReproducao[] = [];\r\n removedItems: HistoricoReproducao[] = [];\r\n itemsSource: HistoricoReproducao[] = [];\r\n invalidItems: HistoricoReproducao[] = [];\r\n\r\n formGroup: FormGroup;\r\n previousEdit: any;\r\n editedRowIndex: number;\r\n itemToRemove: HistoricoReproducao;\r\n matrix: Matriz;\r\n reproduction: Reproducao;\r\n\r\n gridView: GridDataResult;\r\n itemsSort: SortDescriptor[] = [{ field: 'data', dir: 'asc' }];\r\n gridSelection: any[] = [];\r\n addIcon = faPlus;\r\n editIcon = faEdit;\r\n rowIndex: number;\r\n\r\n selectedCallback = (args: { dataItem: any; }) => args.dataItem;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private snackBar: MatSnackBar,\r\n private dialog: MatDialog,\r\n private reproducaoService: ReproducaoService,\r\n private dialogRef: MatDialogRef,\r\n private altaGestaoService: AltaGestaoService) {\r\n this.matrix = data.matrix;\r\n this.reproduction = data.reproduction;\r\n }\r\n\r\n ngOnInit() {\r\n this.invalidItems = new Array();\r\n this.getHistory();\r\n }\r\n\r\n onCellClick({ sender, rowIndex, columnIndex, dataItem, isEdited }) {\r\n this.editHandler({ sender, rowIndex, columnIndex, dataItem, isEdited });\r\n }\r\n\r\n validateItem(context: RowClassArgs) {\r\n const data: Date = new Date(context.dataItem.data);\r\n\r\n context.dataItem.isValid = true;\r\n\r\n const hasDateAndDescription =\r\n data !== undefined\r\n && context.dataItem.descricao !== undefined\r\n && context.dataItem.descricao !== '';\r\n\r\n const reproductionDate = new Date(context.dataItem.dataReproducao);\r\n const hasValidDate = data > reproductionDate && data < new Date();\r\n\r\n if (!hasDateAndDescription || !hasValidDate) {\r\n context.dataItem.isValid = false;\r\n }\r\n\r\n return {\r\n invalid: !context.dataItem.isValid\r\n };\r\n }\r\n\r\n createFormGroup(dataItem: HistoricoReproducao) {\r\n this.formGroup = new FormGroup({\r\n data: new FormControl(new Date(dataItem.data), Validators.required),\r\n descricao: new FormControl(dataItem.descricao, Validators.required)\r\n },\r\n {\r\n updateOn: 'blur',\r\n });\r\n\r\n this.formGroup.valueChanges.subscribe(value => this.updateObjectHandler(dataItem));\r\n }\r\n\r\n updateObjectHandler(dataItem: HistoricoReproducao) {\r\n dataItem.descricao = this.formGroup.controls[`descricao`].value;\r\n dataItem.data = this.formGroup.controls[`data`].value;\r\n\r\n const itemsToUpdate = this.itemsToUpdate.filter(cond => cond === dataItem);\r\n if (itemsToUpdate.length === 0) {\r\n this.itemsToUpdate.push(dataItem);\r\n }\r\n\r\n this.hasChanges = true;\r\n }\r\n\r\n closeRow({ sender, rowIndex }) {\r\n sender.closeRow(rowIndex);\r\n }\r\n\r\n onRemoveClick({ dataItem }) {\r\n this.itemToRemove = dataItem;\r\n this.itemToRemove.isRemoved = true;\r\n this.removeHandler();\r\n }\r\n\r\n removeHandler() {\r\n const dialogRef = this.dialog.open(DialogoConfirmacao, {\r\n data: {\r\n message: `Deseja realmente remover o registro\r\n ${ new Date (this.itemToRemove.data).toLocaleDateString() } \r\n - ${ this.itemToRemove.descricao ? this.itemToRemove.descricao : `Não informado`} ?`,\r\n buttonText: {\r\n ok: 'Sim',\r\n cancel: 'Não'\r\n }\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((confirmed: boolean) => {\r\n if (confirmed) {\r\n this.removeItem(dialogRef);\r\n } else {\r\n this.itemToRemove.isRemoved = false;\r\n }\r\n });\r\n }\r\n\r\n removeItem(dialogRef) {\r\n const hasCdHistoricoReproducao =\r\n this.itemToRemove.cdHistoricoReproducao !== undefined && this.itemToRemove.cdHistoricoReproducao > 0;\r\n\r\n if (hasCdHistoricoReproducao) {\r\n this.itemsSource = this.itemsSource.filter(hm => hm.cdHistoricoReproducao !== this.itemToRemove.cdHistoricoReproducao);\r\n this.itemsToUpdate = this.itemsToUpdate.filter(hm => hm.cdHistoricoReproducao !== this.itemToRemove.cdHistoricoReproducao);\r\n\r\n this.reproducaoService\r\n .removeHistoricosDeReproducao([this.itemToRemove.cdHistoricoReproducao]).subscribe((response: Array) => {\r\n this.snackBar.open('Registro removido com sucesso.', 'X', {\r\n duration: 2500,\r\n });\r\n });\r\n } else {\r\n this.itemsSource = this.itemsSource.filter(hm => hm.isRemoved === false || hm.isRemoved === undefined);\r\n this.itemsToUpdate = this.itemsToUpdate.filter(hm => hm.isRemoved === false || hm.isRemoved === undefined);\r\n\r\n if (this.itemsToUpdate.length === 0) {\r\n this.hasChanges = false;\r\n }\r\n }\r\n\r\n dialogRef.close();\r\n }\r\n\r\n saveClick() {\r\n this.saveHandler(false);\r\n }\r\n\r\n getHistory() {\r\n this.loading = true;\r\n const filter = this.getFilter();\r\n this.reproducaoService.getHistoricosDeReproducao(filter).subscribe(response => {\r\n this.itemsSource = response;\r\n this.itemsSource.forEach((item) => {\r\n item.dataReproducao = this.reproduction.data;\r\n });\r\n this.loading = false;\r\n });\r\n }\r\n\r\n getFilter(): HistoricoReproducaoFiltro {\r\n const filter = new HistoricoReproducaoFiltro();\r\n filter.cdMatriz = this.matrix.cdmatriz;\r\n filter.cdReproducao = this.reproduction.cdreproducao;\r\n return filter;\r\n }\r\n\r\n saveHandler(closeDialog: boolean) {\r\n const dialogRef = this.dialog.open(DialogoConfirmacao, {\r\n data: {\r\n message: 'Deseja salvar as alterações?',\r\n buttonText: {\r\n ok: 'Sim',\r\n cancel: 'Não'\r\n }\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((confirmed: boolean) => {\r\n if (confirmed) {\r\n const item = this.itemsToUpdate.find(cond => cond.isValid === false);\r\n const hasInvalidItem = item !== null && item !== undefined;\r\n if (hasInvalidItem) {\r\n this.dialog.open(DialogoAlertaComponent, {\r\n data: {\r\n message: `Não foi possível salvar. Existem registros inválidos`,\r\n buttonText: {\r\n cancel: 'OK'\r\n }\r\n }\r\n });\r\n } else {\r\n this.saveChanges(dialogRef, closeDialog);\r\n }\r\n } else if (closeDialog) {\r\n this.closeHandler();\r\n }\r\n });\r\n }\r\n\r\n saveChanges(dialogRef, closeDialog: boolean) {\r\n this.itemsToInsert = this.itemsToUpdate.filter(item => item.cdHistoricoReproducao === 0 || item.cdHistoricoReproducao === undefined);\r\n this.itemsToUpdate = this.itemsToUpdate.filter(item => item.cdHistoricoReproducao > 0);\r\n\r\n if (this.itemsToInsert.length > 0) {\r\n this.insert(closeDialog);\r\n }\r\n if (this.itemsToUpdate.length > 0) {\r\n this.update(closeDialog);\r\n }\r\n\r\n this.hasChanges = false;\r\n\r\n dialogRef.close();\r\n }\r\n\r\n insert(closeDialog: boolean) {\r\n this.reproducaoService.insereHistoricosDeReproducao(this.itemsToInsert).subscribe((response: Array) => {\r\n if (response != null) {\r\n this.snackBar.open('Alterações salvas com sucesso.', 'X', {\r\n duration: 2500,\r\n });\r\n this.itemsToInsert = [];\r\n this.getHistory();\r\n if (closeDialog) {\r\n this.closeHandler();\r\n }\r\n }\r\n });\r\n }\r\n\r\n update(closeDialog: boolean) {\r\n this.reproducaoService.atualizaHistoricosDeReproducao(this.itemsToUpdate).subscribe((response: Array) => {\r\n if (response != null) {\r\n this.snackBar.open('Alterações salvas com sucesso.', 'X', {\r\n duration: 2500,\r\n });\r\n this.itemsToUpdate = [];\r\n this.getHistory();\r\n if (closeDialog) {\r\n this.closeHandler();\r\n }\r\n }\r\n });\r\n }\r\n\r\n closeClick() {\r\n if (this.hasChanges === true) {\r\n this.saveHandler(true);\r\n } else {\r\n this.closeHandler();\r\n }\r\n }\r\n\r\n closeHandler() {\r\n this.dialogRef.close();\r\n }\r\n\r\n addClick() {\r\n this.addHandler();\r\n }\r\n\r\n addHandler() {\r\n const newItem: HistoricoReproducao = new HistoricoReproducao();\r\n newItem.cdMatriz = this.matrix.cdmatriz;\r\n newItem.cdReproducao = this.reproduction.cdreproducao;\r\n newItem.dataReproducao = this.reproduction.data;\r\n newItem.data = new Date();\r\n newItem.cdFazenda = this.altaGestaoService.getCdFazendaSelecionada();\r\n\r\n this.itemsSource.push(newItem);\r\n this.itemsToUpdate.push(newItem);\r\n\r\n this.editHandler({ sender: this.grid, rowIndex: this.itemsSource.length - 1, columnIndex: 0, dataItem: newItem, isEdited: false });\r\n\r\n this.hasChanges = true;\r\n }\r\n\r\n editHandler({ sender, rowIndex, columnIndex, dataItem, isEdited }) {\r\n if (this.previousEdit != null) {\r\n this.closeRow(this.previousEdit);\r\n }\r\n\r\n this.createFormGroup(dataItem);\r\n sender.editCell(rowIndex, columnIndex, this.formGroup);\r\n this.previousEdit = { dataItem, sender, rowIndex };\r\n }\r\n\r\n}\r\n","export default \".required {\\n color: red;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcmVwcm9kdWN0aW9uL2lhLWNvYi10ZS1jYWRhc3Ryby9EOlxcUHJvamVjdHNcXGFsdGEtZ2VzdGFvLTA0XFxNYWluXFxWMlxcQWx0YUdlc3Rhby5XZWJcXGFsdGEtZ2VzdGFvL3NyY1xcYXBwXFxyZXByb2R1Y3Rpb25cXGlhLWNvYi10ZS1jYWRhc3Ryb1xcaWEtY29iLXRlLWNhZGFzdHJvLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9yZXByb2R1Y3Rpb24vaWEtY29iLXRlLWNhZGFzdHJvL2lhLWNvYi10ZS1jYWRhc3Ryby5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLFVBQUE7QUNDSiIsImZpbGUiOiJzcmMvYXBwL3JlcHJvZHVjdGlvbi9pYS1jb2ItdGUtY2FkYXN0cm8vaWEtY29iLXRlLWNhZGFzdHJvLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnJlcXVpcmVkIHtcclxuICAgIGNvbG9yOiByZWQ7XHJcbn0iLCIucmVxdWlyZWQge1xuICBjb2xvcjogcmVkO1xufSJdfQ== */\"","import { Component, ElementRef, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MatSnackBar, MAT_DATE_FORMATS, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { MY_DATE_FORMATS } from 'src/app/_utils/calendar-date-format.utils';\r\n\r\n@Component({\r\n selector: 'app-ia-cob-te-cadastro',\r\n templateUrl: './ia-cob-te-cadastro.component.html',\r\n styleUrls: ['./ia-cob-te-cadastro.component.scss'],\r\n providers: [\r\n { provide: MAT_DATE_FORMATS, useValue: MY_DATE_FORMATS }\r\n ]\r\n})\r\nexport class IaCobTeCadastroComponent implements OnInit {\r\n\r\n @ViewChild('errorAlert', { static: false })\r\n errorAlert: ElementRef;\r\n\r\n matrixPanelOpenState = true;\r\n iaCobTePanelOpenState = true;\r\n touchPanelOpenState = true;\r\n ocurrencesPanelOpenState = false;\r\n hasChanges = false;\r\n reload = false;\r\n isNewIA = false;\r\n item: any;\r\n\r\n gridSelection: any[] = [];\r\n selectedCallback = (args: { dataItem: any; }) => args.dataItem;\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: any,\r\n public dialog: MatDialog,\r\n private snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef) {\r\n this.setItems(data);\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n setItems(data: any) {\r\n this.item = data.item;\r\n this.isNewIA = data.isNewIA;\r\n }\r\n\r\n onCloseClick() {\r\n this.closeHandler();\r\n }\r\n\r\n closeHandler() {\r\n this.dialogRef.close(this.reload);\r\n }\r\n\r\n showSnackBar(message: string) {\r\n this.snackBar.open(message, 'X', { duration: 2500 });\r\n }\r\n\r\n itemHasChanged(value: string) {\r\n const hasChanges = value !== undefined && value === `true`;\r\n if (hasChanges) {\r\n this.hasChanges = true;\r\n }\r\n }\r\n\r\n}\r\n","export default \".required {\\n color: red;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcmVwcm9kdWN0aW9uL2lhLWNvYi10ZS1kZXRhbGhlL0Q6XFxQcm9qZWN0c1xcYWx0YS1nZXN0YW8tMDRcXE1haW5cXFYyXFxBbHRhR2VzdGFvLldlYlxcYWx0YS1nZXN0YW8vc3JjXFxhcHBcXHJlcHJvZHVjdGlvblxcaWEtY29iLXRlLWRldGFsaGVcXGlhLWNvYi10ZS1kZXRhbGhlLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9yZXByb2R1Y3Rpb24vaWEtY29iLXRlLWRldGFsaGUvaWEtY29iLXRlLWRldGFsaGUuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxVQUFBO0FDQ0oiLCJmaWxlIjoic3JjL2FwcC9yZXByb2R1Y3Rpb24vaWEtY29iLXRlLWRldGFsaGUvaWEtY29iLXRlLWRldGFsaGUuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIucmVxdWlyZWQge1xyXG4gICAgY29sb3I6IHJlZDtcclxufSIsIi5yZXF1aXJlZCB7XG4gIGNvbG9yOiByZWQ7XG59Il19 */\"","import { TipoTentativaEnum } from 'src/app/_enums/tipo-tentativa.enum';\r\nimport { TipoTentativa } from 'src/models/tipo-tentativa.model';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { MatDialog, MatSnackBar, MAT_DATE_FORMATS } from '@angular/material';\r\nimport { Inseminador } from 'src/models/configuracoes/inseminador.model';\r\nimport { Protocolo } from 'src/models/configuracoes/protocolo.model';\r\nimport { SemenTouro } from 'src/models/configuracoes/semen-touro.model';\r\nimport { ComposicaoRacial } from 'src/models/matriz/composicao-racial.model';\r\nimport { Genealogia } from 'src/models/matriz/genealogia.model';\r\nimport { Lote } from 'src/models/matriz/lote.model';\r\nimport { Matriz } from 'src/models/matriz/matriz.model';\r\nimport { MotivoBaixa } from 'src/models/matriz/motivo-baixa.model';\r\nimport { Reprodutor } from 'src/models/matriz/reprodutor.model';\r\nimport { InseminadorCadastroComponent } from '../../configurations/inseminador-cadastro/inseminador-cadastro.component';\r\nimport { ReprodutorCadastroComponent } from '../../configurations/reprodutor-cadastro/reprodutor-cadastro.component';\r\nimport { MatrizCadastroComponent } from '../../matrix/matriz-cadastro/matriz-cadastro.component';\r\nimport { ConfiguracoesService } from '../../_services/configuracoes.service';\r\nimport { ReproducaoService } from '../../_services/reproducao.service';\r\nimport { DialogoAlertaComponent } from 'src/app/_utils/dialogo-alerta/dialogo-alerta.component';\r\nimport { MY_DATE_FORMATS } from 'src/app/_utils/calendar-date-format.utils';\r\nimport { MatrizService } from 'src/app/_services/matriz.service';\r\n\r\n@Component({\r\n selector: 'app-ia-cob-te-detalhe',\r\n templateUrl: './ia-cob-te-detalhe.component.html',\r\n styleUrls: ['./ia-cob-te-detalhe.component.scss'],\r\n providers: [\r\n { provide: MAT_DATE_FORMATS, useValue: MY_DATE_FORMATS }\r\n ]\r\n})\r\nexport class IaCobTeDetalheComponent implements OnInit {\r\n\r\n @Input() item: any;\r\n @Output() hasChanges = new EventEmitter();\r\n\r\n breeders: Reprodutor[];\r\n breedersFiltered: Reprodutor[];\r\n protocols: Protocolo[];\r\n inseminators: Inseminador[];\r\n matrix: Matriz[];\r\n semenTourosListAll: SemenTouro[];\r\n semenTourosList: SemenTouro[];\r\n lots: Lote[];\r\n motivoBaixa: MotivoBaixa[];\r\n racialCompositions: ComposicaoRacial[];\r\n genealogies: Genealogia[];\r\n tryTypes: TipoTentativa[];\r\n\r\n selectedBreeder: Reprodutor;\r\n selectedDoadora: Matriz;\r\n selectedInseminator: Inseminador;\r\n\r\n semenTouroId: any;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private reproducaoService: ReproducaoService,\r\n private matrizService: MatrizService,\r\n private configurationsService: ConfiguracoesService,\r\n private snackBar: MatSnackBar) { }\r\n\r\n ngOnInit() {\r\n this.loadItems();\r\n this.setUsoDescongelador();\r\n }\r\n\r\n loadItems() {\r\n this.getTryTypes();\r\n this.getSemenTouro();\r\n this.getBreeders();\r\n this.getProtocols();\r\n this.getInseminators();\r\n this.getLots();\r\n this.getMatrix();\r\n this.getMotivoBaixa();\r\n this.getComposicaoRacial();\r\n this.getGenealogia();\r\n\r\n console.log(this.item)\r\n }\r\n\r\n getSemenTouro() {\r\n this.configurationsService.getSemenTouros().subscribe((response) => {\r\n this.semenTourosListAll = response;\r\n this.semenTourosList = response;\r\n }, (error) => console.error(error));\r\n }\r\n\r\n getBreeders() {\r\n this.reproducaoService.getReprodutores().subscribe((response) => {\r\n this.breeders = response;\r\n this.breedersFiltered = response;\r\n this.selectedBreeder =\r\n this.breeders.find(breeder => breeder.cdreprodutor === this.item.cdreprodutor);\r\n this.onTryTypeChange(this.item.cdtipotentativa);\r\n }, (error) => console.error(error));\r\n }\r\n\r\n getProtocols() {\r\n this.configurationsService.getProtocolos().subscribe((response) => {\r\n this.protocols = response;\r\n }, (error) => console.error(error));\r\n }\r\n\r\n getInseminators() {\r\n this.configurationsService.getInseminadores().subscribe((response) => {\r\n this.inseminators = response;\r\n this.selectedInseminator =\r\n this.inseminators.find(inseminator => inseminator.cdinseminador === this.item.cdinseminador);\r\n }, (error) => console.error(error));\r\n }\r\n\r\n getMatrix() {\r\n this.matrizService.getMatrizes().subscribe((response) => {\r\n this.matrix = response.filter(m => m.doadora === true);\r\n this.selectedDoadora =\r\n this.matrix.find(matrix => matrix.cdmatriz === this.item.cddoadora);\r\n }, (error) => console.error(error));\r\n }\r\n\r\n getMotivoBaixa() {\r\n this.matrizService.getMotivoBaixa().subscribe((response) => {\r\n this.motivoBaixa = response;\r\n }, (error) => console.error(error));\r\n }\r\n\r\n getLots() {\r\n this.matrizService.getLote().subscribe((response) => {\r\n this.lots = response;\r\n }, (error) => console.error(error));\r\n }\r\n\r\n getComposicaoRacial() {\r\n this.matrizService.getComposicaoRacial().subscribe((response) => {\r\n this.racialCompositions = response;\r\n }, (error) => console.error(error));\r\n }\r\n\r\n getGenealogia() {\r\n this.matrizService.getGenealogia().subscribe((response) => {\r\n this.genealogies = response;\r\n }, (error) => console.error(error));\r\n }\r\n\r\n getTryTypes() {\r\n this.reproducaoService.getTiposTentativa().subscribe((response) => {\r\n this.tryTypes = response;\r\n this.setTryType();\r\n }, (error) => console.error(error));\r\n }\r\n\r\n setTryType() {\r\n this.item.cdtipotentativa =\r\n this.item.cdtipotentativa === undefined || this.item.cdtipotentativa === null ? 0 : this.item.cdtipotentativa;\r\n }\r\n\r\n setUsoDescongelador() {\r\n this.item.usodescongelador =\r\n this.item.usodescongelador === undefined || this.item.usodescongelador === null ? 0 : this.item.usodescongelador;\r\n }\r\n\r\n getBullTypeBreeders() {\r\n const hasBreeders = this.breeders !== undefined && this.breeders.length > 0;\r\n if (hasBreeders) {\r\n this.breedersFiltered = this.breeders.filter(breeder => breeder.cdtiporeprodutor === 1);\r\n }\r\n }\r\n\r\n getSemenTypeBreeders() {\r\n const hasBreeders = this.breeders !== undefined && this.breeders.length > 0;\r\n if (hasBreeders) {\r\n this.breedersFiltered = this.breeders.filter(breeder => breeder.cdtiporeprodutor === 0);\r\n }\r\n }\r\n\r\n itemChanged(e: any) {\r\n this.itemHasChanged();\r\n }\r\n\r\n onSelectedBreederChange() {\r\n this.item.cdreprodutor = this.selectedBreeder.cdreprodutor;\r\n }\r\n\r\n onSelectedInseminatorChange() {\r\n this.item.cdinseminador = this.selectedInseminator.cdinseminador;\r\n }\r\n\r\n onSelectedDoadoraChange() {\r\n this.item.cddoadora = this.selectedDoadora.cdmatriz;\r\n }\r\n\r\n onTryTypeChange(value: any) {\r\n if (value === TipoTentativaEnum.IA || value === TipoTentativaEnum.COB) {\r\n this.item.cddoadora = null;\r\n this.selectedDoadora = null;\r\n }\r\n if (value === TipoTentativaEnum.IA) {\r\n this.getSemenTypeBreeders();\r\n }\r\n if (value === TipoTentativaEnum.COB) {\r\n this.getBullTypeBreeders();\r\n this.selectedInseminator = null;\r\n }\r\n if (value === TipoTentativaEnum.TE) {\r\n this.breedersFiltered = this.breeders;\r\n this.selectedInseminator = null;\r\n }\r\n }\r\n\r\n ehTipoLancamentoTE() {\r\n return this.item.cdtipotentativa === TipoTentativaEnum.TE;\r\n }\r\n\r\n ehTipoLancamentoMonta() {\r\n return this.item.cdtipotentativa === TipoTentativaEnum.COB;\r\n }\r\n\r\n editInseminator() {\r\n const hasSelectedInseminator = this.selectedInseminator !== undefined && this.selectedInseminator !== null;\r\n if (hasSelectedInseminator) {\r\n this.itemHasChanged();\r\n this.openInseminatorDialog(this.selectedInseminator);\r\n } else {\r\n this.showAlertDialog(`Selecione um inseminador para editar`);\r\n }\r\n }\r\n\r\n createInseminator() {\r\n this.itemHasChanged();\r\n const inseminator = new Inseminador();\r\n this.openInseminatorDialog(inseminator);\r\n }\r\n\r\n editBreeder() {\r\n const hasSelectedBreeder = this.selectedBreeder !== undefined && this.selectedBreeder !== null;\r\n if (hasSelectedBreeder) {\r\n this.itemHasChanged();\r\n this.semenTouroId = this.semenTourosListAll.find(o => o.cdreprodutor === this.selectedBreeder.cdreprodutor);\r\n this.openBreederDialog(this.semenTouroId);\r\n } else {\r\n this.showAlertDialog(`Selecione um reprodutor para editar`);\r\n }\r\n }\r\n\r\n createBreeder() {\r\n this.itemHasChanged();\r\n const breeder = new SemenTouro();\r\n this.openBreederDialog(breeder);\r\n }\r\n\r\n editMatrix() {\r\n const hasSelectedMatrix = this.selectedDoadora !== undefined && this.selectedDoadora !== null;\r\n if (hasSelectedMatrix) {\r\n this.itemHasChanged();\r\n this.openMatrixDialog(this.selectedDoadora);\r\n } else {\r\n this.showAlertDialog(`Selecione uma doadora para editar`);\r\n }\r\n }\r\n\r\n createMatrix() {\r\n this.itemHasChanged();\r\n const matrix = new Matriz();\r\n this.openMatrixDialog(matrix);\r\n }\r\n\r\n public openBreederDialog(semenTouro: SemenTouro) {\r\n const dialogRef = this.dialog.open(ReprodutorCadastroComponent, {\r\n disableClose: true,\r\n height: '440px',\r\n width: '600px',\r\n data: {\r\n semenTouroId: semenTouro\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(res => {\r\n const a = document.createElement('a');\r\n a.click();\r\n a.remove();\r\n if (res && res.data === 'cancelar') {\r\n this.showSnackBar('Operação Cancelada.');\r\n } else {\r\n this.getBreeders();\r\n }\r\n });\r\n }\r\n\r\n public openMatrixDialog(matrix: Matriz) {\r\n const dialogRef = this.dialog.open(MatrizCadastroComponent, {\r\n disableClose: true,\r\n height: '600px',\r\n width: '800px',\r\n data: {\r\n matrixId: matrix\r\n , motivoBaixa: this.motivoBaixa\r\n , composicaoRacial: this.racialCompositions\r\n , lote: this.lots\r\n , pai: this.breeders\r\n , mae: this.matrix\r\n , genealogia: this.genealogies\r\n // , numPartos: this.numPartos.length\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(res => {\r\n const a = document.createElement('a');\r\n a.click();\r\n a.remove();\r\n if (res && res.data === 'cancelar') {\r\n this.showSnackBar('Operação Cancelada.');\r\n } else {\r\n // this.showResult(res.infoRealNascer0, res.infoRealDesaleitamento0);\r\n }\r\n });\r\n }\r\n\r\n public openInseminatorDialog(inseminator: Inseminador) {\r\n const dialogRef = this.dialog.open(InseminadorCadastroComponent, {\r\n disableClose: true,\r\n height: '300px',\r\n width: '500px',\r\n data: {\r\n inseminatorId: inseminator\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(res => {\r\n const a = document.createElement('a');\r\n a.click();\r\n a.remove();\r\n if (res && res.data === 'cancelar') {\r\n this.showSnackBar('Operação cancelada.');\r\n } else {\r\n this.getInseminators();\r\n }\r\n });\r\n }\r\n\r\n showSnackBar(message: string) {\r\n this.snackBar.open(message, 'X', {duration: 2500});\r\n }\r\n\r\n itemHasChanged() {\r\n this.hasChanges.emit(`true`);\r\n }\r\n\r\n showAlertDialog(msg: string) {\r\n this.dialog.open(DialogoAlertaComponent, {\r\n data: {\r\n message: msg,\r\n buttonText: {\r\n cancel: 'Ok'\r\n }\r\n },\r\n });\r\n }\r\n\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3JlcHJvZHVjdGlvbi9pYXRmLWNhZGFzdHJvL2lhdGYtY2FkYXN0cm8uY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDatepickerInputEvent, MAT_DATE_FORMATS } from '@angular/material';\r\nimport { ReproducaoService } from 'src/app/_services/reproducao.service';\r\nimport { Protocolo } from 'src/models/protocolo.model';\r\nimport { MY_DATE_FORMATS } from 'src/app/_utils/calendar-date-format.utils';\r\n\r\n@Component({\r\n selector: 'app-iatf-cadastro',\r\n templateUrl: './iatf-cadastro.component.html',\r\n styleUrls: ['./iatf-cadastro.component.scss'],\r\n providers: [\r\n { provide: MAT_DATE_FORMATS, useValue: MY_DATE_FORMATS }\r\n ]\r\n})\r\nexport class IatfCadastroComponent implements OnInit {\r\n\r\n protocolsList: Array;\r\n\r\n implantDate: Date;\r\n luteolise1Date: Date;\r\n luteolise2Date: Date;\r\n edfDate: Date;\r\n stimulusDate: Date;\r\n removalDate: Date;\r\n iatfDate: Date;\r\n\r\n applyErrorValidation = '';\r\n\r\n loading = false;\r\n isScheduleIatf = false;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private reproducaoService: ReproducaoService) {\r\n this.isScheduleIatf = data.isScheduleIatf ? data.isScheduleIatf : false;\r\n }\r\n\r\n ngOnInit() {\r\n this.protocolsList = [];\r\n this.getProtocols();\r\n this.setIatfValues();\r\n this.updateIatfEvents();\r\n }\r\n\r\n getProtocols() {\r\n this.loading = true;\r\n this.reproducaoService.getProtocolosIatf().subscribe((response) => {\r\n this.protocolsList = response;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n setIatfValues() {\r\n this.setImplantDate();\r\n this.setLuteolise1Date();\r\n this.setLuteolise2Date();\r\n this.setEdfDate();\r\n this.setDtEstimulo();\r\n this.setRemovalDate();\r\n this.setIatfDate();\r\n }\r\n\r\n setImplantDate() {\r\n const hasImplantDate = this.data.iatf.dtImplante !== undefined && this.data.iatf.dtImplante !== null;\r\n this.implantDate = !hasImplantDate ? new Date() : this.data.iatf.dtImplante;\r\n }\r\n\r\n setLuteolise1Date() {\r\n const hasLuteolise1Date = this.data.iatf.dtLuteolise1 !== undefined && this.data.iatf.dtLuteolise1 !== null;\r\n this.luteolise1Date = !hasLuteolise1Date ? new Date() : this.data.iatf.dtLuteolise1;\r\n }\r\n\r\n setLuteolise2Date() {\r\n const hasLuteolise2Date = this.data.iatf.dtLuteolise2 !== undefined && this.data.iatf.dtLuteolise2 !== null;\r\n this.luteolise2Date = !hasLuteolise2Date ? new Date() : this.data.iatf.dtLuteolise2;\r\n }\r\n\r\n setEdfDate() {\r\n const hasEdfDate = this.data.iatf.dtEdf !== undefined && this.data.iatf.dtEdf !== null;\r\n this.edfDate = !hasEdfDate ? new Date() : this.data.iatf.dtEdf;\r\n }\r\n\r\n setDtEstimulo() {\r\n const hasDtEstimulo = this.data.iatf.dtEstimulo !== undefined && this.data.iatf.dtEstimulo !== null;\r\n this.stimulusDate = !hasDtEstimulo ? new Date() : this.data.iatf.dtEstimulo;\r\n }\r\n\r\n setRemovalDate() {\r\n const hasRemovalDate = this.data.iatf.dtRetirada !== undefined && this.data.iatf.dtRetirada !== null;\r\n this.removalDate = !hasRemovalDate ? new Date() : this.data.iatf.dtRetirada;\r\n }\r\n\r\n setIatfDate() {\r\n const hasIatfDate = this.data.iatf.dtIatf !== undefined && this.data.iatf.dtIatf !== null;\r\n this.iatfDate = !hasIatfDate ? new Date() : this.data.iatf.dtIatf;\r\n }\r\n\r\n onDateChange(event: MatDatepickerInputEvent) {\r\n this.calculateIatfEventDates(event);\r\n }\r\n\r\n calculateIatfEventDates(implantDate: any) {\r\n const hasCdProtocol = this.data.iatf.cdProtocolo !== undefined && this.data.iatf.cdProtocolo > 0;\r\n\r\n if (hasCdProtocol) {\r\n const protocol = this.protocolsList.find(p => p.cdprotocolo === this.data.iatf.cdProtocolo);\r\n const hasProtocol = protocol !== undefined && protocol.cdprotocolo > 0;\r\n\r\n if (hasProtocol) {\r\n this.data.iatf.dtImplante = new Date(implantDate);\r\n this.calculateLuteolise1EventDate(protocol);\r\n this.calculateLuteolise2EventDate(protocol);\r\n this.calculateEdfEventDate(protocol);\r\n this.calculateStimulusEventDate(protocol);\r\n this.calculateRemovalEventDate(protocol);\r\n this.calculateIatfEventDate(protocol);\r\n }\r\n }\r\n }\r\n\r\n calculateLuteolise1EventDate(protocol: any) {\r\n const hasLuteolise1 = protocol.luteolise1 !== undefined && protocol.luteolise1 !== null;\r\n if (hasLuteolise1) {\r\n this.data.iatf.dtLuteolise1 = new Date(this.data.iatf.dtImplante);\r\n this.data.iatf.dtLuteolise1.setDate(this.data.iatf.dtImplante.getDate() + protocol.luteolise1);\r\n this.luteolise1Date = this.data.iatf.dtLuteolise1;\r\n }\r\n }\r\n\r\n calculateLuteolise2EventDate(protocol: any) {\r\n const hasLuteolise2 = protocol.luteolise2 !== undefined && protocol.luteolise2 !== null;\r\n if (hasLuteolise2) {\r\n this.data.iatf.dtLuteolise2 = new Date(this.data.iatf.dtImplante);\r\n this.data.iatf.dtLuteolise2.setDate(this.data.iatf.dtImplante.getDate() + protocol.luteolise2);\r\n this.luteolise2Date = this.data.iatf.dtLuteolise2;\r\n }\r\n }\r\n\r\n calculateEdfEventDate(protocol: any) {\r\n const hasEdf = protocol.edf !== undefined && protocol.edf !== null;\r\n if (hasEdf) {\r\n this.data.iatf.dtEdf = new Date(this.data.iatf.dtImplante);\r\n this.data.iatf.dtEdf.setDate(this.data.iatf.dtImplante.getDate() + protocol.edf);\r\n this.edfDate = this.data.iatf.dtEdf;\r\n }\r\n }\r\n\r\n calculateStimulusEventDate(protocol: any) {\r\n const hasStimulus = protocol.estimulo !== undefined && protocol.estimulo !== null;\r\n if (hasStimulus) {\r\n this.data.iatf.dtEstimulo = new Date(this.data.iatf.dtImplante);\r\n this.data.iatf.dtEstimulo.setDate(this.data.iatf.dtImplante.getDate() + protocol.estimulo);\r\n this.stimulusDate = this.data.iatf.dtEstimulo;\r\n }\r\n }\r\n\r\n calculateRemovalEventDate(protocol: any) {\r\n const hasRemoval = protocol.retirada !== undefined && protocol.retirada !== null;\r\n if (hasRemoval) {\r\n this.data.iatf.dtRetirada = new Date(this.data.iatf.dtImplante);\r\n this.data.iatf.dtRetirada.setDate(this.data.iatf.dtImplante.getDate() + protocol.retirada);\r\n this.removalDate = this.data.iatf.dtRetirada;\r\n }\r\n }\r\n\r\n calculateIatfEventDate(protocol: any) {\r\n const hasRemoval = protocol.iatf !== undefined && protocol.iatf !== null;\r\n if (hasRemoval) {\r\n this.data.iatf.dtIatf = new Date(this.data.iatf.dtImplante);\r\n this.data.iatf.dtIatf.setDate(this.data.iatf.dtImplante.getDate() + protocol.iatf);\r\n this.iatfDate = this.data.iatf.dtIatf;\r\n }\r\n }\r\n\r\n applyIatfEvents() {\r\n if (this.data.iatf.cdProtocolo === undefined && this.data.iatf.cdProtocolo === 0) {\r\n this.applyErrorValidation = 'Informe um protocolo para aplicar';\r\n } else {\r\n this.applyErrorValidation = '';\r\n }\r\n }\r\n\r\n updateIatfEvents() {\r\n this.calculateIatfEventDates(new Date(this.implantDate));\r\n }\r\n}\r\n","export default \".k-grid tr.invalid {\\n background-color: rgba(255, 0, 0, 0.2) !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcmVwcm9kdWN0aW9uL29jb3JyZW5jaWEtcmVwcm9kdWNhby1jYWRhc3Ryby9EOlxcUHJvamVjdHNcXGFsdGEtZ2VzdGFvLTA0XFxNYWluXFxWMlxcQWx0YUdlc3Rhby5XZWJcXGFsdGEtZ2VzdGFvL3NyY1xcYXBwXFxyZXByb2R1Y3Rpb25cXG9jb3JyZW5jaWEtcmVwcm9kdWNhby1jYWRhc3Ryb1xcb2NvcnJlbmNpYS1yZXByb2R1Y2FvLWNhZGFzdHJvLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9yZXByb2R1Y3Rpb24vb2NvcnJlbmNpYS1yZXByb2R1Y2FvLWNhZGFzdHJvL29jb3JyZW5jaWEtcmVwcm9kdWNhby1jYWRhc3Ryby5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGlEQUFBO0FDQ0oiLCJmaWxlIjoic3JjL2FwcC9yZXByb2R1Y3Rpb24vb2NvcnJlbmNpYS1yZXByb2R1Y2FvLWNhZGFzdHJvL29jb3JyZW5jaWEtcmVwcm9kdWNhby1jYWRhc3Ryby5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5rLWdyaWQgdHIuaW52YWxpZCB7ICAgICAgICBcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDAsMCwwLjIpICFpbXBvcnRhbnQ7ICAgIFxyXG59XHJcblxyXG4vLyAuay1ncmlkIHRyLmludmFsaWQgdGQgeyAgICAgICAgXHJcbi8vICAgICAvL0BkZWJ1Zzogd2hpdGUgIWltcG9ydGFudDtcclxuLy8gICAgIC8vZm9udC13ZWlnaHQ6IGJvbGQ7ICAgICAgIFxyXG4vLyB9IiwiLmstZ3JpZCB0ci5pbnZhbGlkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDAsIDAsIDAuMikgIWltcG9ydGFudDtcbn0iXX0= */\"","import { Component, OnInit, ViewChild, Inject, ViewEncapsulation } from '@angular/core';\r\nimport { GridComponent, GridDataResult, RowClassArgs } from '@progress/kendo-angular-grid';\r\nimport { OcorrenciaDeReproducao } from 'src/models/reproducao/ocorrencia-de-reproducao.model';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { SortDescriptor } from '@progress/kendo-data-query';\r\nimport { faPlus, faEdit } from '@fortawesome/free-solid-svg-icons';\r\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material';\r\nimport { ReproducaoService } from 'src/app/_services/reproducao.service';\r\nimport { DialogoConfirmacao } from 'src/app/_utils/dialogo-confirmacao/dialogo-confirmacao.component';\r\nimport { AltaGestaoService } from 'src/app/_services/alta-gestao.service';\r\n\r\n@Component({\r\n selector: 'app-ocorrencia-reproducao-cadastro',\r\n templateUrl: './ocorrencia-reproducao-cadastro.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n styleUrls: ['./ocorrencia-reproducao-cadastro.component.scss']\r\n})\r\nexport class OcorrenciaReproducaoCadastroComponent implements OnInit {\r\n\r\n @ViewChild('eventsGrid', { static: false }) grid: GridComponent;\r\n\r\n public hasChanges = false;\r\n public itemsToUpdate: Array = [];\r\n public itemToRemove: OcorrenciaDeReproducao;\r\n\r\n public formGroup: FormGroup;\r\n public previousEdit: any;\r\n public editedRowIndex: number;\r\n\r\n public nomeDaMatriz: string;\r\n public numeroDaMatriz: string;\r\n\r\n public removedItems: Array = [];\r\n public allItems: Array;\r\n\r\n public itemsSource: Array;\r\n public gridView: GridDataResult;\r\n public itemsSort: SortDescriptor[] = [{ field: 'dataOcorrencia', dir: 'asc' }];\r\n public gridSelection: any[] = [];\r\n public loading = false;\r\n public addIcon = faPlus;\r\n public editIcon = faEdit;\r\n\r\n public invalidItems: Array = new Array();\r\n public isValid = true;\r\n\r\n public rowIndex: number;\r\n\r\n public selectedCallback = (args: { dataItem: any; }) => args.dataItem;\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: any,\r\n public dialog: MatDialog,\r\n public snackBar: MatSnackBar,\r\n public reproducaoService: ReproducaoService,\r\n public dialogRef: MatDialogRef,\r\n public altaGestaoService: AltaGestaoService) {\r\n\r\n this.itemsSource = data.items;\r\n }\r\n\r\n ngOnInit() {\r\n this.invalidItems = new Array();\r\n }\r\n\r\n public clickTableRow() {\r\n const matrix = this.gridSelection[0];\r\n }\r\n\r\n public onCellClick({ sender, rowIndex, columnIndex, dataItem, isEdited }) {\r\n this.editHandler({ sender, rowIndex, columnIndex, dataItem, isEdited });\r\n }\r\n\r\n public validateItem(context: RowClassArgs) {\r\n const dataOcorrencia: Date = new Date(context.dataItem.dataOcorrencia);\r\n\r\n context.dataItem.isValid = true;\r\n\r\n if (context.dataItem.dataOcorrencia == null || context.dataItem.descricao == null || context.dataItem.descricaoCompl == null) {\r\n context.dataItem.isValid = false;\r\n } else if (context.dataItem.dataReproducao != null && dataOcorrencia < new Date(context.dataItem.dataReproducao)) {\r\n context.dataItem.isValid = false;\r\n } else if (dataOcorrencia > new Date()) {\r\n context.dataItem.isValid = false;\r\n }\r\n\r\n return {\r\n invalid: !context.dataItem.isValid\r\n };\r\n }\r\n\r\n public onDropDownChange(dataItem: any) {\r\n if (dataItem != null) {\r\n if (this.itemsToUpdate.filter(cond => cond === dataItem).length === 0) {\r\n this.itemsToUpdate.push(dataItem);\r\n }\r\n this.hasChanges = true;\r\n }\r\n }\r\n\r\n private createFormGroup(dataItem: OcorrenciaDeReproducao) {\r\n this.formGroup = new FormGroup({\r\n dataOcorrencia: new FormControl(new Date(dataItem.dataOcorrencia)),\r\n descricao: new FormControl(dataItem.descricao, Validators.required),\r\n descricaoCompl: new FormControl(dataItem.descricaoCompl, [Validators.required, Validators.maxLength(100)])\r\n },\r\n {\r\n updateOn: 'blur',\r\n });\r\n this.formGroup.valueChanges.subscribe(value => this.updateObjectHandler(dataItem));\r\n }\r\n\r\n private updateObjectHandler(dataItem: OcorrenciaDeReproducao) {\r\n dataItem.descricao = this.formGroup.controls.descricao.value;\r\n dataItem.descricaoCompl = this.formGroup.controls.descricaoCompl.value;\r\n dataItem.dataOcorrencia = this.formGroup.controls.dataOcorrencia.value;\r\n if (this.itemsToUpdate.filter(cond => cond === dataItem).length === 0) {\r\n this.itemsToUpdate.push(dataItem);\r\n }\r\n this.hasChanges = true;\r\n }\r\n\r\n protected closeRow({ sender, rowIndex }) {\r\n sender.closeRow(rowIndex);\r\n }\r\n\r\n public onRemoveClick({ dataItem }) {\r\n this.itemToRemove = dataItem;\r\n this.itemToRemove.isRemoved = true;\r\n this.removeHandler();\r\n }\r\n\r\n public removeHandler() {\r\n const dialogRef = this.dialog.open(DialogoConfirmacao, {\r\n data: {\r\n message: `Deseja realmente remover o registro do dia ${ new Date(this.itemToRemove.dataOcorrencia).toLocaleDateString() }\r\n - ${ this.itemToRemove.descricao ? this.itemToRemove.descricao : `Não informado`} ?`,\r\n buttonText: {\r\n ok: 'Sim',\r\n cancel: 'Não'\r\n }\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((confirmed: boolean) => {\r\n if (confirmed) {\r\n this.removeItem(dialogRef);\r\n } else {\r\n this.itemToRemove.isRemoved = false;\r\n }\r\n });\r\n }\r\n\r\n private removeItem(dialogRef) {\r\n const hasCdOcorrencia =\r\n this.itemToRemove.cdOcorrencia !== undefined && this.itemToRemove.cdOcorrencia > 0;\r\n\r\n if (hasCdOcorrencia) {\r\n this.itemsSource = this.itemsSource.filter(hm => hm.cdOcorrencia !== this.itemToRemove.cdOcorrencia);\r\n this.itemsToUpdate = this.itemsToUpdate.filter(hm => hm.cdOcorrencia !== this.itemToRemove.cdOcorrencia);\r\n\r\n this.reproducaoService.removeOcorrenciasDeReproducao([this.itemToRemove.cdOcorrencia]).subscribe((response: Array) => {\r\n if (response != null) {\r\n this.allItems = response;\r\n }\r\n });\r\n } else {\r\n this.itemsSource = this.itemsSource.filter(hm => hm.isRemoved === false || hm.isRemoved === undefined);\r\n this.itemsToUpdate = this.itemsToUpdate.filter(hm => hm.isRemoved === false || hm.isRemoved === undefined);\r\n\r\n if (this.itemsToUpdate.length === 0) {\r\n this.hasChanges = false;\r\n }\r\n }\r\n\r\n dialogRef.close();\r\n }\r\n\r\n saveClick() {\r\n this.saveHandler(true, false);\r\n }\r\n\r\n private getHistoryAndClose() {\r\n this.reproducaoService.getOcorrenciasDeReproducao().subscribe(response => {\r\n this.allItems = response;\r\n this.closeHandler();\r\n });\r\n }\r\n\r\n protected saveHandler(closeDialog: boolean, isOnCloseClick: boolean) {\r\n if (isOnCloseClick) {\r\n this.showConfirmationDialog(closeDialog);\r\n } else {\r\n if (this.itemsToUpdate.filter(cond => cond.isValid === false).length > 0) {\r\n this.snackBar.open('Não foi possível salvar as alterações. Alguns items possuem campos inválidos!', 'Fechar', {\r\n duration: 2000,\r\n });\r\n } else {\r\n this.saveChanges(closeDialog);\r\n }\r\n }\r\n }\r\n\r\n showConfirmationDialog(closeDialog: boolean) {\r\n const dialogRef = this.dialog.open(DialogoConfirmacao, {\r\n data: {\r\n message: 'Deseja salvar as alterações?',\r\n buttonText: {\r\n ok: 'Sim',\r\n cancel: 'Não'\r\n }\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe((confirmed: boolean) => {\r\n if (confirmed) {\r\n if (this.itemsToUpdate.filter(cond => cond.isValid === false).length > 0) {\r\n this.snackBar.open('Não foi possível salvar as alterações. Alguns items possuem campos inválidos!', 'Fechar', {\r\n duration: 2000,\r\n });\r\n } else {\r\n this.saveChanges(closeDialog);\r\n }\r\n } else if (closeDialog) {\r\n this.getHistoryAndClose();\r\n }\r\n });\r\n }\r\n\r\n private saveChanges(closeDialog: boolean) {\r\n this.reproducaoService.atualizaOcorrenciasDeReproducao(this.itemsToUpdate).subscribe((response: Array) => {\r\n if (response != null) {\r\n this.allItems = response;\r\n this.snackBar.open('Alterações salvas com sucesso.', 'Fechar', {\r\n duration: 2000,\r\n });\r\n if (closeDialog) {\r\n this.closeHandler();\r\n }\r\n }\r\n });\r\n this.hasChanges = false;\r\n }\r\n\r\n closeClick() {\r\n if (this.hasChanges === true) {\r\n this.saveHandler(true, true);\r\n } else {\r\n this.closeHandler();\r\n }\r\n }\r\n\r\n private closeHandler() {\r\n this.dialogRef.close(this.allItems);\r\n }\r\n\r\n addClick() {\r\n this.addHandler();\r\n }\r\n\r\n private addHandler() {\r\n const newItem: OcorrenciaDeReproducao = new OcorrenciaDeReproducao();\r\n newItem.cdMatriz = this.data.cdMatriz;\r\n newItem.CdReproducao = this.data.cdReproducao;\r\n newItem.dataOcorrencia = new Date();\r\n newItem.cdFazenda = this.altaGestaoService.getCdFazendaSelecionada();\r\n\r\n this.itemsSource.push(newItem);\r\n this.itemsToUpdate.push(newItem);\r\n\r\n this.editHandler({ sender: this.grid, rowIndex: this.itemsSource.length - 1, columnIndex: 0, dataItem: newItem, isEdited: false });\r\n\r\n this.hasChanges = true;\r\n }\r\n\r\n private editHandler({ sender, rowIndex, columnIndex, dataItem, isEdited }) {\r\n if (this.previousEdit != null) {\r\n this.closeRow(this.previousEdit);\r\n }\r\n\r\n this.createFormGroup(dataItem);\r\n\r\n sender.editCell(rowIndex, columnIndex, this.formGroup);\r\n this.previousEdit = { dataItem, sender, rowIndex };\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3JlcHJvZHVjdGlvbi9vY29ycmVuY2lhLXJlcHJvZHVjYW8tZGV0YWxoZS9vY29ycmVuY2lhLXJlcHJvZHVjYW8tZGV0YWxoZS5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { MatDialog, MatSnackBar } from '@angular/material';\r\nimport { SortDescriptor } from '@progress/kendo-data-query';\r\nimport { OcorrenciaDeReproducao } from 'src/models/reproducao/ocorrencia-de-reproducao.model';\r\nimport { OcorrenciaReproducaoCadastroComponent } from '../ocorrencia-reproducao-cadastro/ocorrencia-reproducao-cadastro.component';\r\nimport { ReproducaoService } from '../../_services/reproducao.service';\r\n\r\n@Component({\r\n selector: 'app-ocorrencia-reproducao-detalhe',\r\n templateUrl: './ocorrencia-reproducao-detalhe.component.html',\r\n styleUrls: ['./ocorrencia-reproducao-detalhe.component.scss']\r\n})\r\nexport class OcorrenciaReproducaoDetalheComponent implements OnInit {\r\n\r\n @Input() item: any;\r\n @Output() hasChanges = new EventEmitter();\r\n\r\n itemsSource: any;\r\n events: OcorrenciaDeReproducao[];\r\n eventTypes: string[];\r\n cdMatrix: number;\r\n cdReproduction: number;\r\n gridKeyDownCode = `F4`;\r\n ocurrenceSort: SortDescriptor[] = [{ field: 'dataOcorrencia', dir: 'asc' }];\r\n gridSelection: any[] = [];\r\n\r\n selectedCallback = (args: { dataItem: any; }) => args.dataItem;\r\n\r\n constructor(\r\n private reproducaoService: ReproducaoService,\r\n public dialog: MatDialog,\r\n private snackBar: MatSnackBar) { }\r\n\r\n ngOnInit() {\r\n this.setCdMatrix();\r\n this.setCdReproduction();\r\n this.getOcurrenceTypes();\r\n this.getEvents();\r\n }\r\n\r\n setCdMatrix() {\r\n this.cdMatrix =\r\n this.item.cdmatriz !== undefined ? this.item.cdmatriz :\r\n this.item.cdMatrix !== undefined ? this.item.cdMatrix : this.item.cdMatriz;\r\n }\r\n\r\n setCdReproduction() {\r\n this.cdReproduction =\r\n this.item.cdreproducao !== undefined ? this.item.cdreproducao : this.item.cdReproducao;\r\n }\r\n\r\n getOcurrenceTypes() {\r\n this.reproducaoService.getTiposOcorrencia().subscribe((response: any) => {\r\n this.eventTypes = response;\r\n }, (error) => console.error(error));\r\n }\r\n\r\n getEvents() {\r\n this.reproducaoService.getOcorrenciasDeReproducaoPorMatriz(this.cdMatrix).subscribe((response: any) => {\r\n response = response.filter(ocurrence => ocurrence.cdReproducao === this.cdReproduction);\r\n this.events = response;\r\n this.itemsSource = response;\r\n }, (error) => console.error(error));\r\n }\r\n\r\n onGridKeyDown(e: any) {\r\n if (e.code === this.gridKeyDownCode) {\r\n this.showReproductionEventsWindow();\r\n this.itemHasChanged();\r\n }\r\n }\r\n\r\n onDblClick() {\r\n this.showReproductionEventsWindow();\r\n this.itemHasChanged();\r\n }\r\n\r\n showReproductionEventsWindow() {\r\n const items: Array =\r\n this.itemsSource.filter(m => m.cdMatriz === this.cdMatrix && m.cdReproducao === this.cdReproduction);\r\n\r\n const dialogRef = this.dialog.open(OcorrenciaReproducaoCadastroComponent, {\r\n disableClose: true,\r\n height: '300px',\r\n width: '500px',\r\n data: {\r\n items,\r\n numeroDaMatriz: this.item.numeroMatriz,\r\n nomeDaMatriz: this.item.nomeMatriz,\r\n cdReproducao: this.cdReproduction,\r\n cdMatriz: this.cdMatrix,\r\n dataServico: this.item.data,\r\n tiposDeOcorrencia: this.eventTypes,\r\n snackBar: this.snackBar,\r\n service: this.reproducaoService,\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((confirmed: boolean) => {\r\n if (confirmed) {\r\n this.getEvents();\r\n }\r\n });\r\n }\r\n\r\n itemChanged(e: any) {\r\n this.itemHasChanged();\r\n }\r\n\r\n itemHasChanged() {\r\n this.hasChanges.emit(`true`);\r\n }\r\n\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3JlcHJvZHVjdGlvbi9wYXJ0by1jYWRhc3Ryby9wYXJ0by1jYWRhc3Ryby5jb21wb25lbnQuc2NzcyJ9 */\"","import { ParametrosEditaveisService } from 'src/app/_services/parametros-editaveis.service';\r\nimport { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MatSnackBar, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { DialogoAlertaComponent } from 'src/app/_utils/dialogo-alerta/dialogo-alerta.component';\r\nimport { DialogoConfirmacao } from 'src/app/_utils/dialogo-confirmacao/dialogo-confirmacao.component';\r\nimport { ValidacaoReproducaoService } from 'src/app/_services/validacao-reproducao.service';\r\nimport { ReproducaoService } from 'src/app/_services/reproducao.service';\r\nimport { Matriz } from 'src/models/matriz/matriz.model';\r\nimport { DificuldadeDeParto } from 'src/models/reproducao/dificuldade-de-parto.model';\r\nimport { OcorrenciaDeReproducao } from 'src/models/reproducao/ocorrencia-de-reproducao.model';\r\nimport { TentativaDeParto } from 'src/models/reproducao/tentativa-de-parto.model';\r\nimport { TipoDeParto } from 'src/models/reproducao/tipo-de-parto.model';\r\nimport { OcorrenciaReproducaoCadastroComponent } from '../ocorrencia-reproducao-cadastro/ocorrencia-reproducao-cadastro.component';\r\nimport { MatrizService } from 'src/app/_services/matriz.service';\r\nimport { MatrizCadastroComponent } from 'src/app/matrix/matriz-cadastro/matriz-cadastro.component';\r\nimport { MotivoBaixa } from 'src/models/matriz/motivo-baixa.model';\r\nimport { ComposicaoRacial } from 'src/models/matriz/composicao-racial.model';\r\nimport { Reprodutor } from 'src/models/matriz/reprodutor.model';\r\nimport { Lote } from 'src/models/matriz/lote.model';\r\nimport { Genealogia } from 'src/models/matriz/genealogia.model';\r\nimport { Reproducao } from 'src/models/matriz/reproducao.models';\r\nimport { HistoricoDeMatriz } from 'src/models/matriz/historico-matriz.model';\r\nimport { ParametroFiltro } from 'src/models/parametro-filtro.model';\r\nimport { FazendaParametro } from 'src/models/fazenda-parametro.model';\r\nimport { TipoPartoEnum } from 'src/app/_enums/tipo-parto.enum';\r\n\r\n@Component({\r\n selector: 'app-parto-cadastro',\r\n templateUrl: './parto-cadastro.component.html',\r\n styleUrls: ['./parto-cadastro.component.scss']\r\n})\r\nexport class PartoCadastroComponent implements OnInit {\r\n\r\n matrixPanelOpenState = true;\r\n ocurrencesPanelOpenState = true;\r\n parturitionPanelOpenState = true;\r\n\r\n gemelar = false;\r\n itemsSource: any;\r\n item: TentativaDeParto;\r\n oldItem: any;\r\n types: Array;\r\n difficulties: Array;\r\n events: Array;\r\n eventTypes: Array;\r\n hasChanges = false;\r\n isFemale = false;\r\n reload = false;\r\n loading = false;\r\n matrixId: any;\r\n composicao: Array;\r\n reprodutor: Array;\r\n motivoBaixa: Array;\r\n lote: Array;\r\n genealogia: Array;\r\n reproducao: Array;\r\n numPartos: Array;\r\n avoMaterno: any;\r\n historico: Array;\r\n matrixListAll: Array;\r\n reproductionsList: Reproducao[];\r\n parametersList: FazendaParametro[];\r\n historicoMatriz: any;\r\n cria1: any;\r\n cria2: any;\r\n showMatrizEdit1Button = false;\r\n showMatrizEdit2Button = false;\r\n error = ``;\r\n\r\n public gridSelection: any[] = [];\r\n\r\n public selectedCallback = (args: { dataItem: any; }) => args.dataItem;\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: any,\r\n public dialog: MatDialog,\r\n private snackBar: MatSnackBar,\r\n private reproducaoService: ReproducaoService,\r\n public dialogRef: MatDialogRef,\r\n private reproducaoValidacaoService: ValidacaoReproducaoService,\r\n private matrizService: MatrizService,\r\n private parameterService: ParametrosEditaveisService) {\r\n this.itemsSource = data.items;\r\n this.item = data.item;\r\n this.item.dtparto = data.item.dataParto;\r\n this.item.data = data.item.dataServico;\r\n this.item.dtdiagnostico1 = data.item.dataDiagnostico1;\r\n this.item.dtdiagnostico2 = data.item.dataDiagnostico2;\r\n this.item.cdresultadodiagnostico1 = data.item.cdDiagnostico1;\r\n this.item.cdresultadodiagnostico2 = data.item.cdDiagnostico2;\r\n this.item.cdtipoparto = data.item.cdTipoParto;\r\n this.item.cddificuldadeparto = data.item.cdDificuldadeParto;\r\n this.item.deslocamentoabomaso = data.item.deslocamentoAbomaso;\r\n this.item.doencasmetabolicas = data.item.doencasMetabolicas;\r\n this.item.retencaoplacenta = data.item.retencaoPlacenta;\r\n this.item.sexocria1 = data.item.sexoCria1;\r\n this.item.sexocria2 = data.item.sexoCria2;\r\n this.item.natimortocria1 = data.item.natimortoCria1;\r\n this.item.natimortocria2 = data.item.natimortoCria2;\r\n this.types = data.types;\r\n this.difficulties = data.difficulties;\r\n this.oldItem = this.item;\r\n }\r\n\r\n ngOnInit() {\r\n this.historicoMatriz = [];\r\n this.LoadTiposDeOcorrencia();\r\n this.LoadEvents();\r\n this.getAllReproduction();\r\n this.getReproductionsList();\r\n this.getAllMatrix();\r\n this.getAllGenealogia();\r\n this.getAllHistory();\r\n this.getAllComposicaoRacial();\r\n this.getAllReprodutor();\r\n this.getAllLote();\r\n this.getAllMotivoBaixa();\r\n this.getParametersByFarm();\r\n }\r\n\r\n LoadTiposDeOcorrencia() {\r\n this.loading = true;\r\n this.reproducaoService.getTiposOcorrencia().subscribe((response: any) => {\r\n this.eventTypes = response;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n LoadEvents() {\r\n this.loading = true;\r\n this.reproducaoService.getOcorrenciasDeReproducaoPorMatriz(this.item.cdMatriz).subscribe((response: any) => {\r\n this.events = response;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n getReproductionsList() {\r\n this.reproducaoService.getReproducoes().subscribe((response: Reproducao[]) => {\r\n this.reproductionsList = response;\r\n }, (error) => console.error(error));\r\n }\r\n\r\n getAllComposicaoRacial() {\r\n this.matrizService.getComposicaoRacial().subscribe((response) => {\r\n this.composicao = response;\r\n });\r\n }\r\n\r\n getAllReprodutor() {\r\n this.matrizService.getReprodutor().subscribe((response) => {\r\n this.reprodutor = response;\r\n });\r\n }\r\n\r\n getAllMotivoBaixa() {\r\n this.matrizService.getMotivoBaixa().subscribe((response) => {\r\n this.motivoBaixa = response;\r\n });\r\n }\r\n\r\n getAllLote() {\r\n this.matrizService.getLote().subscribe((response) => {\r\n this.lote = response;\r\n });\r\n }\r\n\r\n getAllHistory() {\r\n this.matrizService.getHistoricoDeMatrizPorFazenda().subscribe((response) => {\r\n this.historico = response;\r\n });\r\n }\r\n\r\n getAllGenealogia() {\r\n this.matrizService.getGenealogia().subscribe((response) => {\r\n this.genealogia = response;\r\n });\r\n }\r\n\r\n getAllReproduction() {\r\n this.matrizService.getReproducao().subscribe((response) => {\r\n this.reproducao = response;\r\n });\r\n }\r\n\r\n getAllMatrix() {\r\n this.matrizService.getMatrizes().subscribe((response) => {\r\n this.matrixListAll = response;\r\n });\r\n }\r\n\r\n getParametersByFarm() {\r\n const parameterFilter = new ParametroFiltro();\r\n parameterFilter.editavelWeb = true;\r\n this.parameterService.fetch(parameterFilter).subscribe((response: FazendaParametro[]) => {\r\n this.parametersList = response;\r\n }, (error) => console.error(error));\r\n }\r\n\r\n onGridKeyDown(e: any) {\r\n if (e.code === 'F4') {\r\n this.showReproductionEventsWindow();\r\n }\r\n }\r\n\r\n onSaveClick() {\r\n this.saveHandler(false);\r\n }\r\n\r\n onCloseClick() {\r\n if (this.hasChanges) {\r\n this.saveHandler(true);\r\n } else {\r\n this.closeHandler(false);\r\n }\r\n this.isFemale = false;\r\n }\r\n\r\n saveHandler(isOnCloseClick: boolean) {\r\n if (isOnCloseClick) {\r\n this.showConfirmationDialog();\r\n } else {\r\n if (this.validateToSave()) {\r\n this.saveChanges();\r\n }\r\n }\r\n }\r\n\r\n showConfirmationDialog() {\r\n const dialogRef = this.dialog.open(DialogoConfirmacao, {\r\n data: {\r\n message: 'Deseja salvar as alterações ?',\r\n buttonText: {\r\n ok: 'Sim',\r\n cancel: 'Não'\r\n }\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe((confirmed: boolean) => {\r\n if (confirmed) {\r\n if (this.item.dataParto === undefined) {\r\n this.snackBar.open('Não foi possível salvar as alterações. Necessário informar a data do parto!', 'Fechar', {\r\n duration: 2000,\r\n });\r\n } else {\r\n if (this.validateToSave()) {\r\n this.saveChanges();\r\n }\r\n }\r\n } else {\r\n this.closeHandler(false);\r\n }\r\n });\r\n }\r\n\r\n saveChanges() {\r\n this.item.dataParto = this.item.dtparto;\r\n this.item.cdTipoParto = this.item.cdtipoparto;\r\n this.item.cdDificuldadeParto = this.item.cddificuldadeparto;\r\n this.item.deslocamentoAbomaso = this.item.deslocamentoabomaso;\r\n this.item.doencasMetabolicas = this.item.doencasmetabolicas;\r\n this.item.retencaoPlacenta = this.item.retencaoplacenta;\r\n this.item.sexoCria1 = this.item.sexocria1;\r\n this.item.sexoCria2 = this.item.sexocria2;\r\n this.item.natimortoCria1 = this.item.natimortocria1;\r\n this.item.natimortoCria2 = this.item.natimortocria2;\r\n\r\n const isSexoCria1Female = this.item.sexoCria1 === 'F';\r\n const isSexoCria2Female = this.item.sexoCria2 === 'F';\r\n const isSexoCria1Male = this.item.sexoCria1 === 'M';\r\n const isSexoCria2Male = this.item.sexoCria2 === 'M';\r\n const isNatimortoCria1 = this.item.natimortocria1 === true || Number(this.item.natimortocria1) === 1;\r\n const isNatimortoCria2 = this.item.natimortocria2 === true || Number(this.item.natimortocria2) === 1;\r\n const isGemelar = this.item.gemelar === true || Number(this.item.gemelar) === 1;\r\n\r\n if (this.ehTipoDePartoAbortoComLactacao()) {\r\n this.item.gemelar = null;\r\n this.item.sexoCria1 = null;\r\n this.item.cdCria1 = null;\r\n this.item.numeroCria1 = null;\r\n this.item.natimortoCria1 = null;\r\n this.item.sexoCria2 = null;\r\n this.item.cdCria2 = null;\r\n this.item.numeroCria2 = null;\r\n this.item.natimortoCria2 = null;\r\n this.updateTentativasDeReproducao();\r\n } else if (isGemelar) {\r\n // Cria 1 macho e Cria 2 macho\r\n // Cria 1 macho e Cria 2 fêmea natimorto\r\n // Cria 1 fêmea natimorto e Cria 2 macho\r\n const salvarSemNumeroCria1ECria2 = (isSexoCria1Male && isSexoCria2Male)\r\n || (isSexoCria1Male && isSexoCria2Female && isNatimortoCria2)\r\n || (isSexoCria2Male && isSexoCria1Female && isNatimortoCria1)\r\n || ((isSexoCria1Female && isNatimortoCria1) && (isSexoCria2Female && isNatimortoCria2));\r\n\r\n const salvarComOuSemNumeroCria1ECria2 = (isSexoCria1Male && (isSexoCria2Female && !this.hasCdCria2() && !isNatimortoCria1))\r\n || (isSexoCria2Male && (isSexoCria1Female && !this.hasCdCria1() && !isNatimortoCria2))\r\n || ((isSexoCria1Female && !this.hasCdCria1() && !isNatimortoCria1)\r\n || (isSexoCria2Female && !this.hasCdCria2() && !isNatimortoCria2));\r\n\r\n const salvarComNumeroCria1ECria2 = (isSexoCria1Male && (this.hasCdCria2() && this.validateExistingMatrixNumber2()))\r\n || (isSexoCria2Male && (this.hasCdCria1() && this.validateExistingMatrixNumber1()))\r\n || ((isSexoCria1Female && isNatimortoCria1) && this.hasCdCria2())\r\n || ((isSexoCria2Female && isNatimortoCria2) && this.hasCdCria1())\r\n || ((this.hasCdCria1() && this.validateExistingMatrixNumber1())\r\n && (this.hasCdCria2() && this.validateExistingMatrixNumber2()));\r\n\r\n if (salvarSemNumeroCria1ECria2) {\r\n this.updateTentativasDeReproducao();\r\n } else if (salvarComOuSemNumeroCria1ECria2) {\r\n this.editCriaReproducaoSemCria(this.item, true);\r\n } else if (salvarComNumeroCria1ECria2) {\r\n this.updateTentativasDeReproducao();\r\n const editDialogRef = this.dialog.open(DialogoConfirmacao, {\r\n data: {\r\n message: 'Deseja editar os dados da(s) cria(s) agora ?',\r\n buttonText: {\r\n ok: 'Sim',\r\n cancel: 'Não'\r\n }\r\n }\r\n });\r\n editDialogRef.afterClosed().subscribe((confirm: boolean) => {\r\n if (confirm) {\r\n if (this.hasCdCria1()) {\r\n this.showMatrizEdit1Button = true;\r\n }\r\n if (this.hasCdCria2()) {\r\n this.showMatrizEdit2Button = true;\r\n }\r\n } else {\r\n this.closeHandler(true);\r\n }\r\n });\r\n }\r\n } else {\r\n // Cria 1 macho\r\n // Cria 1 macho natimorto\r\n // Cria 1 fêmea natimorto\r\n const salvarSemNumeroCria1 = (isSexoCria1Male)\r\n || (isSexoCria1Male && isNatimortoCria1)\r\n || (isSexoCria1Female && isNatimortoCria1);\r\n\r\n const salvarComouSemNumeroCria1 = (isSexoCria1Female && !this.hasCdCria1() && !isNatimortoCria1);\r\n\r\n const salvarComNumeroCria1 = (this.hasCdCria1() && this.validateExistingMatrixNumber1());\r\n\r\n if (salvarSemNumeroCria1) {\r\n this.updateTentativasDeReproducao();\r\n } else if (salvarComouSemNumeroCria1) {\r\n this.editCriaReproducaoSemCria(this.item, true);\r\n } else if (salvarComNumeroCria1) {\r\n this.updateTentativasDeReproducao();\r\n const editDialogRef = this.dialog.open(DialogoConfirmacao, {\r\n data: {\r\n message: 'Deseja editar os dados da(s) cria(s) agora ?',\r\n buttonText: {\r\n ok: 'Sim',\r\n cancel: 'Não'\r\n }\r\n }\r\n });\r\n editDialogRef.afterClosed().subscribe((confirm: boolean) => {\r\n if (confirm) {\r\n if (this.hasCdCria1()) {\r\n this.showMatrizEdit1Button = true;\r\n }\r\n if (this.hasCdCria2()) {\r\n this.showMatrizEdit2Button = true;\r\n }\r\n } else {\r\n this.closeHandler(true);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n updateTentativasDeReproducao() {\r\n this.reproducaoService.atualizaTentativasAtuaisDeReproducao([this.item]).subscribe((response: TentativaDeParto[]) => {\r\n if (response !== null) {\r\n this.snackBar.open('Alterações salvas com sucesso.', 'Fechar', {\r\n duration: 5000,\r\n });\r\n this.getAllMatrix();\r\n this.hasChanges = false;\r\n }\r\n });\r\n }\r\n\r\n validateExistingMatrixNumber1(): boolean {\r\n const hasExistingMatrixNumber =\r\n this.matrixListAll.find(matrix => matrix.numero.toUpperCase() === this.item.numeroCria1.toUpperCase());\r\n if (hasExistingMatrixNumber) {\r\n this.showAlertDialog(`Já existe uma matriz cadastrada no sistema com o mesmo número.`);\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n validateExistingMatrixNumber2(): boolean {\r\n const hasExistingMatrixNumber =\r\n this.matrixListAll.find(matrix => matrix.numero.toUpperCase() === this.item.numeroCria2.toUpperCase());\r\n if (hasExistingMatrixNumber) {\r\n this.showAlertDialog(`Já existe uma matriz cadastrada no sistema com o mesmo número.`);\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n closeHandler(reload: boolean) {\r\n this.dialogRef.close(reload);\r\n }\r\n\r\n showReproductionEventsWindow() {\r\n let dialogRef: MatDialogRef;\r\n dialogRef = this.dialog.open(OcorrenciaReproducaoCadastroComponent, {\r\n disableClose: true,\r\n height: '400px',\r\n width: '500px',\r\n data: {\r\n items: this.events,\r\n numeroDaMatriz: this.item.numeroMatriz,\r\n nomeDaMatriz: this.item.nomeMatriz,\r\n cdReproducao: this.item.cdReproducao,\r\n cdMatriz: this.item.cdMatriz,\r\n dataServico: this.item.dataServico,\r\n tiposDeOcorrencia: this.eventTypes,\r\n snackBar: this.snackBar,\r\n service: this.reproducaoService,\r\n dialogRef\r\n },\r\n });\r\n }\r\n\r\n validateToSave(): boolean {\r\n let isValid = true;\r\n this.error = ``;\r\n const reproduction = this.item;\r\n const matrix = new Matriz();\r\n matrix.numero = reproduction.numeroMatriz;\r\n if (!this.reproducaoValidacaoService.validaLancamentoParto(reproduction, matrix, this.matrixListAll, this.parametersList)\r\n || !this.reproducaoValidacaoService.validaLancamentoDatas(this.reproductionsList, reproduction, this.oldItem, matrix)) {\r\n isValid = false;\r\n this.error = this.reproducaoValidacaoService.getErro();\r\n this.showErrorAlert();\r\n return isValid;\r\n }\r\n return isValid;\r\n }\r\n\r\n itemHasChanged(value: string) {\r\n const hasChanges = value !== undefined && value === `true`;\r\n if (hasChanges) {\r\n this.hasChanges = true;\r\n }\r\n }\r\n\r\n itemChanged(e: any) {\r\n this.hasChanges = true;\r\n this.reload = true;\r\n }\r\n\r\n showErrorAlert() {\r\n const dialogRef = this.dialog.open(DialogoAlertaComponent, {\r\n data: {\r\n message: `${this.error}`,\r\n buttonText: {\r\n cancel: 'OK'\r\n }\r\n }\r\n });\r\n }\r\n\r\n editCriaReproducaoSemCria(item: TentativaDeParto, closeDialog: boolean) {\r\n const dialogRef = this.dialog.open(DialogoConfirmacao, {\r\n data: {\r\n message: 'O número da Cria 1 e/ou Cria 2 precisa(m) ser preenchido(s). Deseja sair sem gravar a(s) cria(s) agora ?',\r\n buttonText: {\r\n ok: 'Sim',\r\n cancel: 'Não'\r\n }\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe((confirmed: boolean) => {\r\n if (confirmed) {\r\n this.updateTentativasDeReproducao();\r\n this.closeHandler(true);\r\n }\r\n });\r\n }\r\n\r\n showMatrizEdit1() {\r\n if (this.hasCdCria1()) {\r\n this.matrixId = this.matrixListAll.find(x => x.numero.toUpperCase() === this.item.numeroCria1.toUpperCase());\r\n this.setHistoriesByMatrix();\r\n this.setGrandFatherByMatrix();\r\n this.calculoNumPartos();\r\n this.showMatrixRegisterEdit1Component();\r\n }\r\n }\r\n\r\n hasCdCria1(): boolean {\r\n const hasNumeroCria1 =\r\n this.item.numeroCria1 !== undefined\r\n && this.item.numeroCria1 !== null\r\n && this.item.numeroCria1 !== '';\r\n return hasNumeroCria1;\r\n }\r\n\r\n showMatrizEdit2() {\r\n if (this.hasCdCria2()) {\r\n this.matrixId = this.matrixListAll.find(x => x.numero.toUpperCase() === this.item.numeroCria2.toUpperCase());\r\n this.setHistoriesByMatrix();\r\n this.setGrandFatherByMatrix();\r\n this.calculoNumPartos();\r\n this.showMatrixRegisterEdit2Component();\r\n }\r\n }\r\n\r\n hasCdCria2(): boolean {\r\n const hasNumeroCria2 =\r\n this.item.numeroCria2 !== undefined\r\n && this.item.numeroCria2 !== null\r\n && this.item.numeroCria2 !== '';\r\n return hasNumeroCria2;\r\n }\r\n\r\n showMatrixRegisterEdit1Component() {\r\n const dialogRef = this.dialog.open(MatrizCadastroComponent, {\r\n disableClose: true,\r\n height: '922px',\r\n width: '900px',\r\n data: {\r\n matrixId: this.matrixId\r\n , motivoBaixa: this.motivoBaixa\r\n , composicaoRacial: this.composicao\r\n , lote: this.lote\r\n , pai: this.reprodutor\r\n , mae: this.matrixListAll\r\n , avoMat: this.avoMaterno\r\n , historyMatrix: this.historicoMatriz\r\n , genealogia: this.genealogia\r\n , numPartos: this.numPartos\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(res => {\r\n this.snackBar.open('Alterações salvas com sucesso.', 'Fechar', {\r\n duration: 2500,\r\n });\r\n this.showMatrizEdit1Button = false;\r\n });\r\n }\r\n\r\n showMatrixRegisterEdit2Component() {\r\n const dialogRef = this.dialog.open(MatrizCadastroComponent, {\r\n disableClose: true,\r\n height: '922px',\r\n width: '900px',\r\n data: {\r\n matrixId: this.matrixId\r\n , motivoBaixa: this.motivoBaixa\r\n , composicaoRacial: this.composicao\r\n , lote: this.lote\r\n , pai: this.reprodutor\r\n , mae: this.matrixListAll\r\n , avoMat: this.avoMaterno\r\n , historyMatrix: this.historicoMatriz\r\n , genealogia: this.genealogia\r\n , numPartos: this.numPartos\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(res => {\r\n this.snackBar.open('Alterações salvas com sucesso.', 'Fechar', {\r\n duration: 2500,\r\n });\r\n this.showMatrizEdit2Button = false;\r\n });\r\n }\r\n\r\n setGrandFatherByMatrix() {\r\n if (this.hasMatrixId()) {\r\n const hasCdMother = this.matrixId.cdmae !== null && this.matrixId.cdmae !== undefined;\r\n if (hasCdMother) {\r\n const maeMaterna = this.matrixListAll.find(o => o.cdmatriz === this.matrixId.cdmae);\r\n const hasCdGrandFather = maeMaterna.cdpai !== null && maeMaterna.cdpai !== undefined;\r\n if (hasCdGrandFather) {\r\n this.avoMaterno = this.reprodutor.find(o => o.cdreprodutor === maeMaterna.cdpai);\r\n }\r\n } else {\r\n this.avoMaterno = '';\r\n }\r\n }\r\n }\r\n\r\n setHistoriesByMatrix() {\r\n if (this.hasMatrixId()) {\r\n this.historicoMatriz = [];\r\n this.historicoMatriz = this.historico.filter(history => history.cdMatriz === this.matrixId.cdmatriz);\r\n }\r\n }\r\n\r\n calculoNumPartos() {\r\n if (this.hasMatrixId()) {\r\n this.numPartos = [];\r\n const hasReproductions =\r\n this.reproducao !== null && this.reproducao !== undefined && this.reproducao.length > 0;\r\n if (hasReproductions) {\r\n this.reproducao.forEach((reproduction) => {\r\n const hasCdMatrix =\r\n reproduction.cdmatriz !== null\r\n && reproduction.cdmatriz !== undefined\r\n && reproduction.cdmatriz === this.matrixId.cdmatriz;\r\n if (hasCdMatrix) {\r\n this.numPartos.push(reproduction);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n hasMatrixId(): boolean {\r\n const hasMatrixId = this.matrixId !== null && this.matrixId !== undefined;\r\n return hasMatrixId;\r\n }\r\n\r\n showAlertDialog(msg: string) {\r\n this.dialog.open(DialogoAlertaComponent, {\r\n data: {\r\n message: msg,\r\n buttonText: {\r\n cancel: 'Ok'\r\n }\r\n },\r\n });\r\n }\r\n\r\n private ehTipoDePartoAbortoComLactacao(): boolean {\r\n return this.item.cdtipoparto === TipoPartoEnum.ABORTO_COM_LACTACAO;\r\n }\r\n\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3JlcHJvZHVjdGlvbi9wYXJ0by1kZXRhbGhlL3BhcnRvLWRldGFsaGUuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { MAT_DATE_FORMATS } from '@angular/material';\r\nimport { TipoPartoEnum } from 'src/app/_enums/tipo-parto.enum';\r\nimport { MY_DATE_FORMATS } from 'src/app/_utils/calendar-date-format.utils';\r\nimport { DificuldadeDeParto } from 'src/models/reproducao/dificuldade-de-parto.model';\r\nimport { TipoDeParto } from 'src/models/reproducao/tipo-de-parto.model';\r\nimport { ReproducaoService } from '../../_services/reproducao.service';\r\n\r\n@Component({\r\n selector: 'app-parto-detalhe',\r\n templateUrl: './parto-detalhe.component.html',\r\n styleUrls: ['./parto-detalhe.component.scss'],\r\n providers: [\r\n { provide: MAT_DATE_FORMATS, useValue: MY_DATE_FORMATS }\r\n ]\r\n})\r\nexport class PartoDetalheComponent implements OnInit {\r\n\r\n @Input() item: any;\r\n @Output() hasChanges = new EventEmitter();\r\n\r\n types: TipoDeParto[];\r\n difficulties: DificuldadeDeParto[];\r\n\r\n isGemelar = false;\r\n isSexoCria1Female = false;\r\n isSexoCria2Female = false;\r\n isNatimortoCria1 = false;\r\n isNatimortoCria2 = false;\r\n isRetencaoPlacenta = false;\r\n isDoencasMetabolicas = false;\r\n isDeslocamentoAbomaso = false;\r\n\r\n constructor(private reproducaoService: ReproducaoService) { }\r\n\r\n ngOnInit() {\r\n this.getTiposDeParto();\r\n this.getDificuldadesDeParto();\r\n this.setDetalhesDoParto();\r\n }\r\n\r\n setDetalhesDoParto() {\r\n this.isGemelar =\r\n this.item.gemelar !== undefined && this.item.gemelar !== null && this.item.gemelar === 1;\r\n this.isSexoCria1Female =\r\n this.item.sexocria1 !== undefined && this.item.sexocria1 !== null && this.item.sexocria1 === `F`;\r\n this.isSexoCria2Female =\r\n this.item.sexocria2 !== undefined && this.item.sexocria2 !== null && this.item.sexocria2 === `F`;\r\n this.isNatimortoCria1 =\r\n this.item.natimortocria1 !== undefined && this.item.natimortocria1 !== null && this.item.natimortocria1 === 1;\r\n this.isNatimortoCria2 =\r\n this.item.natimortocria2 !== undefined && this.item.natimortocria2 !== null && this.item.natimortocria2 === 1;\r\n this.isDeslocamentoAbomaso =\r\n this.item.deslocamentoabomaso !== undefined && this.item.deslocamentoabomaso !== null && this.item.deslocamentoabomaso === 1;\r\n this.isDoencasMetabolicas =\r\n this.item.doencasmetabolicas !== undefined && this.item.doencasmetabolicas !== null && this.item.doencasmetabolicas === 1;\r\n this.isRetencaoPlacenta =\r\n this.item.retencaoplacenta !== undefined && this.item.retencaoplacenta !== null && this.item.retencaoplacenta === 1;\r\n this.item.cdtipoparto =\r\n this.item.cdtipoparto === undefined || this.item.cdtipoparto === null ? 1 : this.item.cdtipoparto;\r\n this.item.cddificuldadeparto =\r\n this.item.cddificuldadeparto === undefined || this.item.cddificuldadeparto === null ? 1 : this.item.cddificuldadeparto;\r\n this.item.gemelar = this.isGemelar ? 1 : 0;\r\n }\r\n\r\n getTiposDeParto() {\r\n this.reproducaoService.getTiposDeParto().subscribe((response: any) => {\r\n this.types = response;\r\n }, (error) => console.error(error));\r\n }\r\n\r\n getDificuldadesDeParto() {\r\n this.reproducaoService.getDificuldadesDeParto().subscribe((response: any) => {\r\n this.difficulties = response;\r\n }, (error) => console.error(error));\r\n }\r\n\r\n onRetencaoPlacentaChange() {\r\n this.item.retencaoplacenta = this.isRetencaoPlacenta ? 1 : 0;\r\n }\r\n\r\n onDoencasMetabolicasChange() {\r\n this.item.doencasmetabolicas = this.isDoencasMetabolicas ? 1 : 0;\r\n }\r\n\r\n onDeslocamentoAbomasoChange() {\r\n this.item.deslocamentoabomaso = this.isDeslocamentoAbomaso ? 1 : 0;\r\n }\r\n\r\n onNatimortoCria1Change() {\r\n this.item.natimortocria1 = this.isNatimortoCria1 ? 1 : 0;\r\n this.item.numeroCria1 = null;\r\n }\r\n\r\n onNatimortoCria2Change() {\r\n this.item.natimortocria2 = this.isNatimortoCria2 ? 1 : 0;\r\n this.item.numeroCria2 = null;\r\n }\r\n\r\n onSexoCria1Change(e: any) {\r\n this.item.sexocria1 = this.isSexoCria1Female ? `F` : `M`;\r\n const isMale = e.value === `M`;\r\n if (isMale) {\r\n this.item.numeroCria1 = ``;\r\n }\r\n }\r\n\r\n onSexoCria2Change(e: any) {\r\n this.item.sexocria2 = this.isSexoCria2Female ? `F` : `M`;\r\n const isMale = e.value === `M`;\r\n if (isMale) {\r\n this.item.numeroCria2 = ``;\r\n }\r\n }\r\n\r\n onCriaChange(e: any) {\r\n this.isGemelar = e.value === 1;\r\n this.item.gemelar = this.isGemelar;\r\n if (!this.isGemelar) {\r\n this.item.sexocria2 = null;\r\n this.item.natimortocria2 = null;\r\n this.item.numeroCria2 = null;\r\n this.isNatimortoCria2 = false;\r\n }\r\n }\r\n\r\n itemChanged(e: any) {\r\n this.itemHasChanged();\r\n }\r\n\r\n itemHasChanged() {\r\n this.hasChanges.emit(`true`);\r\n }\r\n\r\n onParturitionDateChange() {\r\n const hasParturitionDate = this.item.dtparto !== null && this.item.dtparto !== undefined;\r\n if (hasParturitionDate) {\r\n const hasNotParturitionType = this.item.cdtipoparto === undefined || this.item.cdtipoparto === null;\r\n if (hasNotParturitionType) {\r\n this.item.cdtipoparto = 1;\r\n }\r\n const hasNotParturitionDificulty = this.item.cddificuldadeparto === undefined || this.item.cddificuldadeparto === null;\r\n if (hasNotParturitionDificulty) {\r\n this.item.cddificuldadeparto = 1;\r\n }\r\n const hasNotGemelar = this.item.gemelar === undefined || this.item.gemelar === null;\r\n if (hasNotGemelar) {\r\n this.item.gemelar = false;\r\n }\r\n }\r\n }\r\n\r\n ehTipoDePartoAbortoComLactacao(): boolean {\r\n return this.item.cdtipoparto === TipoPartoEnum.ABORTO_COM_LACTACAO;\r\n }\r\n\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3JlcHJvZHVjdGlvbi90b3F1ZS1kZXRhbGhlL3RvcXVlLWRldGFsaGUuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { MAT_DATE_FORMATS } from '@angular/material';\r\nimport { MY_DATE_FORMATS } from 'src/app/_utils/calendar-date-format.utils';\r\n\r\n@Component({\r\n selector: 'app-toque-detalhe',\r\n templateUrl: './toque-detalhe.component.html',\r\n styleUrls: ['./toque-detalhe.component.scss'],\r\n providers: [\r\n { provide: MAT_DATE_FORMATS, useValue: MY_DATE_FORMATS }\r\n ]\r\n})\r\nexport class ToqueDetalheComponent implements OnInit {\r\n\r\n @Input() item: any;\r\n @Output() hasChanges = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n ngOnInit() { }\r\n\r\n itemChanged(e: any) {\r\n this.itemHasChanged();\r\n }\r\n\r\n itemHasChanged() {\r\n this.hasChanges.emit(`true`);\r\n }\r\n\r\n}\r\n","export const environment = {\r\n production: false,\r\n\r\n // local\r\n // baseUrl: 'https://localhost:5001',\r\n // apiBaseUrl: 'https://localhost:5001/api',\r\n // b2cRedirectUri: 'http://localhost:4200/',\r\n // b2cPostLogoutRedirectUri: 'http://localhost:4200/',\r\n // b2cClientId: '003feb18-91a9-4c12-ae47-e283a6314847',\r\n // b2cLogin: 'urusb2c.b2clogin.com',\r\n // b2cDomain: 'urusb2c.onmicrosoft.com',\r\n // b2cApiClientId: '4d78276a-0b48-4418-be59-0ddc963068b0',\r\n // b2cSignUpSignIn: 'B2C_1_AltaGestao_SignupSigninV7',\r\n // b2cResetPassword: 'B2C_1_AltaGestao_PasswordReset'\r\n\r\n // dev\r\n // baseUrl: 'https://altagestaodev.altagenetics.com.br',\r\n // apiBaseUrl: 'https://altagestaodev.altagenetics.com.br/api',\r\n // b2cRedirectUri: 'https://altagestaodev.altagenetics.com.br',\r\n // b2cPostLogoutRedirectUri: 'https://altagestaodev.altagenetics.com.br',\r\n // b2cClientId: '003feb18-91a9-4c12-ae47-e283a6314847',\r\n // b2cLogin: 'urusb2c.b2clogin.com',\r\n // b2cDomain: 'urusb2c.onmicrosoft.com',\r\n // b2cApiClientId: '4d78276a-0b48-4418-be59-0ddc963068b0',\r\n // b2cSignUpSignIn: 'B2C_1_AltaGestao_SignupSigninV7',\r\n // b2cResetPassword: 'B2C_1_AltaGestao_PasswordReset'\r\n\r\n // test\r\n // baseUrl: 'https://altagestaotest.altagenetics.com.br',\r\n // apiBaseUrl: 'https://altagestaotest.altagenetics.com.br/api',\r\n // b2cRedirectUri: 'https://altagestaotest.altagenetics.com.br',\r\n // b2cPostLogoutRedirectUri: 'https://altagestaotest.altagenetics.com.br',\r\n // b2cClientId: '62d3ea76-021d-424a-a402-556d8f859a18',\r\n // b2cLogin: 'urusb2c.b2clogin.com',\r\n // b2cDomain: 'urusb2c.onmicrosoft.com',\r\n // b2cApiClientId: '6508db8c-ed32-48c8-b8ba-f8fd3793fe9b',\r\n // b2cSignUpSignIn: 'B2C_1_AltaGestao_SignupSigninV7',\r\n // b2cResetPassword: 'B2C_1_AltaGestao_PasswordReset'\r\n\r\n // prod\r\n baseUrl: 'https://altagestao.altagenetics.com.br',\r\n apiBaseUrl: 'https://altagestao.altagenetics.com.br/api',\r\n b2cRedirectUri: 'https://altagestao.altagenetics.com.br',\r\n b2cPostLogoutRedirectUri: 'https://altagestao.altagenetics.com.br',\r\n b2cClientId: 'cde4a017-f5af-4eeb-b718-c243d5aa8319',\r\n b2cLogin: 'urusb2c.b2clogin.com',\r\n b2cDomain: 'urusb2c.onmicrosoft.com',\r\n b2cApiClientId: 'b8cd7f3d-08ae-4725-971c-b755ab4dda75',\r\n b2cSignUpSignIn: 'B2C_1_AltaGestao_SignupSigninV7',\r\n b2cResetPassword: 'B2C_1_AltaGestao_PasswordReset'\r\n};\r\n","import 'hammerjs';\r\nimport { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n","export class ColostragemFiltro {\r\n public cdColostragem: number;\r\n public cdMatriz: number;\r\n public cdFazenda: number;\r\n}\r\n","export class Colostragem {\r\n public cdColostragem: number;\r\n public cdMatriz: number;\r\n public cdFazenda: number;\r\n public tipoColostro: string;\r\n public tipoFornecimento: string;\r\n public qualidade: string;\r\n public valorCor: string;\r\n public quantLitros: number;\r\n public proteinaSanguinea: number;\r\n public avaliacaoProteina: string;\r\n public nomeFuncionario: string;\r\n}\r\n","export class EventoFiltro {\r\n public cdEvento: number;\r\n public cdMatriz: number;\r\n public cdFazenda: number;\r\n}\r\n","export class Evento {\r\n public cdEventos: number;\r\n public cdMatriz: number;\r\n public cdFazenda: number;\r\n public cdTipoEvento: number;\r\n public dataEvento: Date;\r\n public evento: string;\r\n\r\n // utilizados somente para validações na tela\r\n public isValid: boolean;\r\n public dtNascimento: Date;\r\n public isRemoved: boolean;\r\n}\r\n","export class PesagemFiltro {\r\n public cdPesagem: number;\r\n public cdMatriz: number;\r\n public cdFazenda: number;\r\n}\r\n","export class Pesagem {\r\n public cdPesagem: number;\r\n public cdMatriz: number;\r\n public cdFazenda: number;\r\n public dataPesagem: Date;\r\n public peso: number;\r\n\r\n // utilizados somente para validações na tela\r\n public isValid: boolean;\r\n public dtNascimento: Date;\r\n public isRemoved: boolean;\r\n}\r\n","export class BaseTouroFiltro {\r\n\r\n public bullId: number;\r\n public breed: string;\r\n public interregnum: string;\r\n public name: string;\r\n public shortname: string;\r\n public semencode: string;\r\n }\r\n","export class Inseminador {\r\n public cdinseminador: number;\r\n public nome: string;\r\n public cdfazenda: number;\r\n public removido: number;\r\n }\r\n","export class ProtocoloDetalhe {\r\n public cddetalhe: number;\r\n public cdprotocolo: number;\r\n public fase: string;\r\n public dias?: number;\r\n public produto: string;\r\n public doseprod?: number;\r\n public produto1: string;\r\n public doseprod1?: number;\r\n public produto2: string;\r\n public doseprod2?: number;\r\n public ordem?: number;\r\n}\r\n","export class SemenTouro {\r\n public cdreprodutor: number;\r\n public tipo: string;\r\n public numero: string;\r\n public nome: string;\r\n public registro: string;\r\n public codigoBaseunif: number;\r\n public regInternacional: string;\r\n public codigoInternacional: string;\r\n public cdfazenda: number;\r\n public removido: number;\r\n public bullid: number;\r\n public bullid1: number;\r\n}\r\n","export class Email {\r\n email: string;\r\n usuario: string;\r\n fazenda: string;\r\n cdfazenda: number;\r\n dataCadastro: Date;\r\n codigo: string;\r\n admin?: boolean;\r\n}\r\n","import { GrupoFazenda } from './cadastro/grupo-fazenda.model';\r\nimport { Municipio } from './municipio.model';\r\n\r\nexport class Fazenda {\r\n public cdfazenda: number;\r\n public nome: string;\r\n public cdmunicipio: number;\r\n public telefone: string;\r\n public codigo: number;\r\n public cdperfilracialrebanho: number;\r\n public cdsistemaproducao: number;\r\n public proprietario: string;\r\n public municipio: Municipio;\r\n public grupoFazenda: GrupoFazenda[];\r\n public cidade: string;\r\n public cdpessoa: number;\r\n public cdgrupo: number;\r\n public cdpais: number;\r\n\r\n // utilização temporária para testes\r\n public cdmesorregiao: number;\r\n public cduf: number;\r\n}\r\n","export class LogAcesso {\r\n public cdFazenda: number;\r\n public cdPessoa: number;\r\n}\r\n","export class ComposicaoRacial {\r\n public cdcomposicaoracial: number;\r\n public descricao: string;\r\n public tipo: number;\r\n public ativo: number;\r\n public cdfazenda: number;\r\n public PADRAO: number;\r\n }\r\n","export class HistoricoDeMatriz {\r\n public cdHistorico: number;\r\n public cdMatriz: number;\r\n public cdFazenda: number;\r\n public numero: string;\r\n public nome: string;\r\n public historico: string;\r\n public data: Date;\r\n\r\n // atributo utilizado para validações na tela\r\n public isValid: boolean;\r\n }\r\n","export class Lote {\r\n public cdlote: number;\r\n public descricao: string;\r\n public cdfazenda: number;\r\n }\r\n","export class Matriz {\r\n public cdmatriz: number;\r\n public numero: string;\r\n public nome: string;\r\n public registro: string;\r\n public cdcomposicaoracial: number;\r\n public dtnascimento?: Date;\r\n public dtultparto?: Date;\r\n public numpartoinicio: number;\r\n public cdmae: number;\r\n public cdpai: number;\r\n public observacao: string;\r\n public cdlote: number;\r\n public dtbaixa: Date;\r\n public descarte: boolean;\r\n public doadora: boolean;\r\n public cdreproducao: number;\r\n public cdmotivobaixa: number;\r\n public cdfazenda: number;\r\n public dtsecagemanterior: Date;\r\n public pesonascer: number;\r\n public inforealnascer: number;\r\n public dtdesaleitamento: Date;\r\n public pesodesaleitamento: number;\r\n public inforealdesaleitamento: number;\r\n public dtdescarte: Date;\r\n\r\n public historico: string;\r\n public dataHistorico: Date;\r\n }\r\n","export class ParametroFiltro {\r\n public cdFazenda: number;\r\n public editavelWeb: boolean;\r\n public geral: boolean;\r\n}\r\n","import { Usuario } from './usuario.model';\r\n\r\nexport class Pessoa {\r\n public cdpessoa: number;\r\n public nome: string;\r\n public email: string;\r\n public cpf: string;\r\n public cnpj: string;\r\n public cdUsuarioAltera: number;\r\n public dtAltera: Date;\r\n public tipoPessoa: number;\r\n public usuario: Usuario;\r\n\r\n // Para Tela Usuário\r\n public nomeFazenda: string;\r\n}\r\n","export class ControleLeiteiro {\r\n public cdFazenda: number;\r\n public cdMatriz: number;\r\n public nomeMatriz: string;\r\n public numeroMatriz: string;\r\n public cdLeite: number;\r\n public cdReproducao: number;\r\n public dataControle: Date;\r\n public dataLactacao: Date;\r\n public ccs: number;\r\n public ordenha1 = 0;\r\n public ordenha2 = 0;\r\n public ordenha3 = 0;\r\n public pesoTotal = this.ordenha1 + this.ordenha2 + this.ordenha3;\r\n public checked: boolean;\r\n}\r\n","export class Secagem {\r\n public cdfazenda: number;\r\n public cdmatriz: number;\r\n public nome: string;\r\n public numero: string;\r\n public cdreproducao: number;\r\n public dtsecagem: Date;\r\n public dtparto: Date;\r\n public checked: boolean;\r\n}","export class HistoricoReproducaoFiltro {\r\n cdFazenda: number;\r\n cdMatriz: number;\r\n cdReproducao: number;\r\n}\r\n","export class HistoricoReproducao {\r\n cdHistoricoReproducao: number;\r\n cdFazenda: number;\r\n cdMatriz: number;\r\n cdReproducao: number;\r\n descricao: string;\r\n data: Date;\r\n removido: boolean;\r\n\r\n // utilizado somente para inserir e validar novos registros de histório de reprodução no grid\r\n dataReproducao: Date;\r\n isValid: boolean;\r\n isRemoved: boolean;\r\n}\r\n","export class OcorrenciaDeReproducao {\r\n public cdOcorrencia: number;\r\n public cdMatriz: number;\r\n public cdFazenda: number;\r\n public numeroMatriz: string;\r\n public nomeMatriz: string;\r\n public CdReproducao: number;\r\n public dataReproducao: Date;\r\n public tipoTentativa: string;\r\n public cdReprodutor: number;\r\n public numeroReprodutor: string;\r\n public nomeReprodutor: string;\r\n public dataDiagnostico1: Date;\r\n public diagnostico1: string;\r\n public dataDiagnostico2: Date;\r\n public diagnostico2: string;\r\n public dataOcorrencia: Date;\r\n public descricao: string;\r\n public isValid = true;\r\n public isRemoved = false;\r\n public descricaoCompl: string;\r\n}\r\n","import { Fazenda } from './fazenda.model';\r\n\r\nexport class UsuarioFazenda {\r\n public cdUsuarioFazenda: number;\r\n public cdUsuario: number;\r\n public cdFazenda: number;\r\n public fazenda: Fazenda;\r\n}\r\n","import { Pessoa } from './pessoa.model';\r\nimport { Fazenda } from './fazenda.model';\r\nimport { UsuarioFazenda } from './usuario-fazenda.model';\r\n\r\nexport class Usuario {\r\n public cdpessoa: number;\r\n public senha: string;\r\n public login: string;\r\n public cnpj: string;\r\n public bloqueado: boolean;\r\n public dtaltera: Date;\r\n public apelido: string;\r\n public datavalidadeacesso: Date;\r\n public pendente: boolean;\r\n public dtcadastro: Date;\r\n public dtultimoacesso: Date;\r\n public indicacao: string;\r\n public usuariofazenda: UsuarioFazenda[];\r\n public isAdmin: boolean;\r\n public lembretesenha: string;\r\n public perfilAcesso: number;\r\n public pessoa: Pessoa;\r\n public trocasenha: boolean;\r\n public cdusuarioaltera: number;\r\n public usuarioGrupo: any;\r\n\r\n // Dados para crud Pessoa\r\n public nome: string;\r\n public email: string;\r\n public numeroidentificacao: string;\r\n public fazendas: Fazenda[];\r\n}\r\n"],"sourceRoot":"webpack:///"}