Commit f7f214f9adc2c5b591e7624deeaa164892ebeeac

Authored by joyfas.silva
1 parent d1059282
Exists in master

{Redmine tarefa-4530}

cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/EntradaAlmoxarifadoController.js
@@ -29,7 +29,7 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp @@ -29,7 +29,7 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp
29 }; 29 };
30 30
31 $scope.estruturaAlmoxarifadoPadrao = {}; 31 $scope.estruturaAlmoxarifadoPadrao = {};
32 - 32 +
33 // Limpa formulário para novo cadastro 33 // Limpa formulário para novo cadastro
34 $scope.resetForm = function() { 34 $scope.resetForm = function() {
35 $scope.limparEntradaAlmoxarifado(); 35 $scope.limparEntradaAlmoxarifado();
@@ -37,14 +37,14 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp @@ -37,14 +37,14 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp
37 $timeout(function(){ 37 $timeout(function(){
38 $scope.entradaAlmoxarifadoForm.$submitted = false; 38 $scope.entradaAlmoxarifadoForm.$submitted = false;
39 $scope.entradaAlmoxarifadoForm.$setPristine(); 39 $scope.entradaAlmoxarifadoForm.$setPristine();
40 - 40 +
41 // limpar observações 41 // limpar observações
42 if($scope.entradaObservacaoForm['observacao.descricao']) { 42 if($scope.entradaObservacaoForm['observacao.descricao']) {
43 $scope.entradaObservacaoForm['observacao.descricao'].$setViewValue(''); 43 $scope.entradaObservacaoForm['observacao.descricao'].$setViewValue('');
44 $scope.entradaObservacaoForm['observacao.descricao'].$render(); 44 $scope.entradaObservacaoForm['observacao.descricao'].$render();
45 } 45 }
46 }); 46 });
47 - 47 +
48 }; 48 };
49 49
50 // Limpa o formulario preenchido 50 // Limpa o formulario preenchido
@@ -63,14 +63,14 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp @@ -63,14 +63,14 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp
63 }; 63 };
64 $scope.entradaItemSelecionado = null; 64 $scope.entradaItemSelecionado = null;
65 $scope.valorTotalMateriais = 0.0; 65 $scope.valorTotalMateriais = 0.0;
66 - 66 +
67 DominioRepository.findAllDominio('tipoFinalidadeMaterial').then(function(result) { 67 DominioRepository.findAllDominio('tipoFinalidadeMaterial').then(function(result) {
68 $scope.dominiosTipoFinalidade = []; 68 $scope.dominiosTipoFinalidade = [];
69 - if(result && result.length >0) 69 + if(result && result.length >0)
70 result.forEach(function(r){ 70 result.forEach(function(r){
71 - 71 +
72 $scope.dominiosTipoFinalidade.push(r.originalElement); 72 $scope.dominiosTipoFinalidade.push(r.originalElement);
73 - 73 +
74 if(r.originalElement.codigo === 1){ 74 if(r.originalElement.codigo === 1){
75 $scope.entradaAlmoxarifado.dominioFinalidade = r.originalElement; 75 $scope.entradaAlmoxarifado.dominioFinalidade = r.originalElement;
76 } 76 }
@@ -123,12 +123,12 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp @@ -123,12 +123,12 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp
123 if($scope.entradaAlmoxarifado.fornecedor){ 123 if($scope.entradaAlmoxarifado.fornecedor){
124 $scope.entradaAlmoxarifado.fornecedor['pessoa.nome'] = $scope.entradaAlmoxarifado.fornecedor.pessoa.nome; 124 $scope.entradaAlmoxarifado.fornecedor['pessoa.nome'] = $scope.entradaAlmoxarifado.fornecedor.pessoa.nome;
125 } 125 }
126 - 126 +
127 $scope.dominiosTipoRecebimento.forEach(function(item){ 127 $scope.dominiosTipoRecebimento.forEach(function(item){
128 if(item.originalElement.id === $scope.entradaAlmoxarifado.dominioTipoRecebimento.id) 128 if(item.originalElement.id === $scope.entradaAlmoxarifado.dominioTipoRecebimento.id)
129 $scope.entradaAlmoxarifado.dominioTipoRecebimento = item.originalElement; 129 $scope.entradaAlmoxarifado.dominioTipoRecebimento = item.originalElement;
130 }); 130 });
131 - 131 +
132 $scope.calcularValorTotalMateriais(); 132 $scope.calcularValorTotalMateriais();
133 $scope.edit = edit; 133 $scope.edit = edit;
134 $scope.setLoading(false); 134 $scope.setLoading(false);
@@ -174,17 +174,18 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp @@ -174,17 +174,18 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp
174 } 174 }
175 }); 175 });
176 }); 176 });
177 - 177 +
178 DominioRepository.findAllDominio('tipoFinalidadeMaterial').then(function(result) { 178 DominioRepository.findAllDominio('tipoFinalidadeMaterial').then(function(result) {
179 $scope.dominiosTipoFinalidade = []; 179 $scope.dominiosTipoFinalidade = [];
180 - if(result && result.length >0) 180 + if(result && result.length >0)
181 result.forEach(function(r){ 181 result.forEach(function(r){
182 $scope.dominiosTipoFinalidade.push(r.originalElement); 182 $scope.dominiosTipoFinalidade.push(r.originalElement);
183 }); 183 });
184 $scope.dominiosTipoFinalidade.reverse(); 184 $scope.dominiosTipoFinalidade.reverse();
185 }); 185 });
186 - 186 +
187 $scope.inicializarModalMateriais = function(){ 187 $scope.inicializarModalMateriais = function(){
  188 + $scope.unidadeMedidaEntrada = {};
188 $scope.editEntrada = true; 189 $scope.editEntrada = true;
189 $scope.limparModalMateriais(); 190 $scope.limparModalMateriais();
190 $scope.$openModal('modal-materiais-consumo.html', 'lg'); 191 $scope.$openModal('modal-materiais-consumo.html', 'lg');
@@ -204,7 +205,7 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp @@ -204,7 +205,7 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp
204 }; 205 };
205 206
206 $scope.carregarItensMaterial = function(item){ 207 $scope.carregarItensMaterial = function(item){
207 - 208 +
208 $scope.entradaItem.quantidade = null; 209 $scope.entradaItem.quantidade = null;
209 $scope.entradaItem.quantidadeDominioTipoUnidadeEntrada = null; 210 $scope.entradaItem.quantidadeDominioTipoUnidadeEntrada = null;
210 $scope.entradaItem.valorTotal = null; 211 $scope.entradaItem.valorTotal = null;
@@ -214,11 +215,11 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp @@ -214,11 +215,11 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp
214 $scope.caracteristicas = []; 215 $scope.caracteristicas = [];
215 $scope.validaAnexo = false; 216 $scope.validaAnexo = false;
216 $scope.unidadesFixa = false; 217 $scope.unidadesFixa = false;
217 - 218 +
218 $scope.unidadesMedidasEntrada = item.tiposUnidadeMedidaEntrada.map(function(item){ 219 $scope.unidadesMedidasEntrada = item.tiposUnidadeMedidaEntrada.map(function(item){
219 return item.unidadeMedida; 220 return item.unidadeMedida;
220 }); 221 });
221 - 222 +
222 $scope.carregarCaracteristicasGenericas(item); 223 $scope.carregarCaracteristicasGenericas(item);
223 224
224 }; 225 };
@@ -256,6 +257,7 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp @@ -256,6 +257,7 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp
256 }; 257 };
257 258
258 $scope.definirTipoNumerico = function(){ 259 $scope.definirTipoNumerico = function(){
  260 + $scope.alternaTipoNumericoUnidadeMedida();
259 $scope.unidadesFixa = false; 261 $scope.unidadesFixa = false;
260 $timeout(function(){ 262 $timeout(function(){
261 if($scope.entradaItem.unidadeMedidaEntrada){ 263 if($scope.entradaItem.unidadeMedidaEntrada){
@@ -287,7 +289,7 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp @@ -287,7 +289,7 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp
287 } 289 }
288 }); 290 });
289 }; 291 };
290 - 292 +
291 $scope.addEntradaItem = function(formDialogMateriais) { 293 $scope.addEntradaItem = function(formDialogMateriais) {
292 formDialogMateriais.$submitted = true; 294 formDialogMateriais.$submitted = true;
293 $scope.validaAnexo = false; 295 $scope.validaAnexo = false;
@@ -374,7 +376,7 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp @@ -374,7 +376,7 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp
374 $scope.uploaderCaracteristica.queue = clone(bemPatrimonialCaracteristica.uploadAnexo); 376 $scope.uploaderCaracteristica.queue = clone(bemPatrimonialCaracteristica.uploadAnexo);
375 } 377 }
376 }); 378 });
377 - 379 +
378 if($scope.entradaItem.dataValidade && !$scope.entradaItem.id){ 380 if($scope.entradaItem.dataValidade && !$scope.entradaItem.id){
379 $scope.entradaItem.dataValidade = $filter('date')($scope.entradaItem.dataValidade, "dd/MM/yyyy"); 381 $scope.entradaItem.dataValidade = $filter('date')($scope.entradaItem.dataValidade, "dd/MM/yyyy");
380 } 382 }
@@ -545,7 +547,7 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp @@ -545,7 +547,7 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp
545 547
546 return formularioValido; 548 return formularioValido;
547 }; 549 };
548 - 550 +
549 // LISTA ESTRUTURAS ORGANIZACIONAIS QUE SAO UNIDADES REQUISITANTES 551 // LISTA ESTRUTURAS ORGANIZACIONAIS QUE SAO UNIDADES REQUISITANTES
550 $scope.findEstruturaOrganizacionalUR = function(value){ 552 $scope.findEstruturaOrganizacionalUR = function(value){
551 553
@@ -557,7 +559,7 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp @@ -557,7 +559,7 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp
557 }); 559 });
558 560
559 }; 561 };
560 - 562 +
561 //#### INICIO METODOS RELACIONADOS AO RELATORIO ### 563 //#### INICIO METODOS RELACIONADOS AO RELATORIO ###
562 564
563 //FUNCAO QUE BUSCA MATERIAL DE CONSUMO PARA FILTRO DE RELATORIO DE ENTRADAS POR PERIODO 565 //FUNCAO QUE BUSCA MATERIAL DE CONSUMO PARA FILTRO DE RELATORIO DE ENTRADAS POR PERIODO
@@ -686,4 +688,35 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp @@ -686,4 +688,35 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp
686 }; 688 };
687 //### FIM METODOS RELACIONADOS AOS RELATORIOS DE INVENTARIO ### 689 //### FIM METODOS RELACIONADOS AOS RELATORIOS DE INVENTARIO ###
688 690
  691 + $scope.alternaTipoNumericoUnidadeMedida = function(){
  692 + $scope.entradaItem.$quantidadeEntrada = '';
  693 + $timeout(function(){
  694 + if($scope.entradaItem.unidadeMedidaEntrada && $scope.entradaItem.unidadeMedidaEntrada.tipoNumerico){
  695 + switch($scope.entradaItem.unidadeMedidaEntrada.tipoNumerico.codigo){
  696 + case 1:
  697 + $scope.showInteiro= true;
  698 + $scope.showDecimal = false;
  699 + break;
  700 +
  701 + case 2:
  702 + $scope.showDecimal = true;
  703 + $scope.showInteiro= false;
  704 + break;
  705 +
  706 + }
  707 + }else{
  708 + $scope.showInteiro= false;
  709 + $scope.showDecimal = false;
  710 + }
  711 + });
  712 + };
  713 +
  714 + $scope.aplicarValidacaoDecimal = function(){
  715 + if($scope.entradaItem.$quantidadeEntrada){
  716 + $scope.entradaItem.$quantidadeEntrada = parseFloat($scope.entradaItem.$quantidadeEntrada).toFixed(2);
  717 + }else{
  718 + $scope.entradaItem.$quantidadeEntrada = '';
  719 + }
  720 + };
  721 +
689 }]); 722 }]);
cit-almoxarifado-web/src/main/webapp/html/entradaAlmoxarifado/dialog_add_materiais.html
@@ -29,14 +29,18 @@ @@ -29,14 +29,18 @@
29 </label> 29 </label>
30 </div> 30 </div>
31 </div> 31 </div>
32 - 32 +
33 <div class="row"> 33 <div class="row">
34 - <div class="col-sm-3">  
35 - <label-input-decimal ng-id="entradaItem.$quantidadeEntrada" ng-label="ALMOXARIFADO.LABEL.QUANTIDADE" ng-evento-change="calcularQuantidadeEValores()" ng-obrigatorio="editEntrada" ng-disabled="!editEntrada" form="formDialogMateriais"  
36 - ng-model="entradaItem.$quantidadeEntrada" ng-precisao="tipoNumerico" ng-custom-maxlength="11"/> 34 + <div class="col-sm-3" ng-show="showDecimal">
  35 + <label-input-decimal ng-precisao="decimal" ng-evento-blur="aplicarValidacaoDecimal" ng-custom-maxlength="11" ng-id="entradaItem.$quantidadeEntrada" ng-label="ALMOXARIFADO.LABEL.QUANTIDADE" ng-evento-change="calcularQuantidadeEValores()" ng-obrigatorio="editEntrada" ng-disabled="!editEntrada" form="formDialogMateriais"
  36 + ng-model="entradaItem.$quantidadeEntrada"/>
  37 + </div>
  38 + <div class="col-sm-3" ng-show="showInteiro">
  39 + <label-input-number ng-custom-maxlength="4" ng-id="entradaItem.$quantidadeEntrada" ng-label="ALMOXARIFADO.LABEL.QUANTIDADE" ng-evento-change="calcularQuantidadeEValores()" ng-obrigatorio="editEntrada" ng-disabled="!editEntrada" form="formDialogMateriais"
  40 + ng-model="entradaItem.$quantidadeEntrada"/>
37 </div> 41 </div>
38 <div class="col-sm-3"> 42 <div class="col-sm-3">
39 - <label-select ng-id="entradaItem.unidadeMedidaEntrada" ng-custom-change="definirTipoNumerico()" ng-label="LABEL.UNIDADE_MEDIDA" ng-model="entradaItem.unidadeMedidaEntrada" form="formDialogMateriais" ng-obrigatorio="editEntrada" ng-disabled="!editEntrada" 43 + <label-select ng-id="entradaItem.unidadeMedidaEntrada" ng-custom-change="definirTipoNumerico()" ng-label="LABEL.UNIDADE_MEDIDA" ng-model="entradaItem.unidadeMedidaEntrada" form="formDialogMateriais" ng-obrigatorio="editEntrada" ng-disabled="!editEntrada"
40 ng-custom-options="unidadeMedida as unidadeMedida.sigla for unidadeMedida" track-by="track by unidadeMedida.id" ng-list="unidadesMedidasEntrada"/> 44 ng-custom-options="unidadeMedida as unidadeMedida.sigla for unidadeMedida" track-by="track by unidadeMedida.id" ng-list="unidadesMedidasEntrada"/>
41 </div> 45 </div>
42 <div class="col-sm-3"> 46 <div class="col-sm-3">
@@ -47,7 +51,7 @@ @@ -47,7 +51,7 @@
47 <label-input-money ng-id="entradaItem.valorTotal" ng-evento-change="calcularQuantidadeEValores()" ng-label="ALMOXARIFADO.LABEL.SUBTOTAL" ng-obrigatorio="editEntrada" ng-disabled="!editEntrada" form="formDialogMateriais" ng-model="entradaItem.valorTotal" ng-custom-maxlength="19"/> 51 <label-input-money ng-id="entradaItem.valorTotal" ng-evento-change="calcularQuantidadeEValores()" ng-label="ALMOXARIFADO.LABEL.SUBTOTAL" ng-obrigatorio="editEntrada" ng-disabled="!editEntrada" form="formDialogMateriais" ng-model="entradaItem.valorTotal" ng-custom-maxlength="19"/>
48 </div> 52 </div>
49 </div> 53 </div>
50 - 54 +
51 <div class="row"> 55 <div class="row">
52 <div class="col-sm-4"> 56 <div class="col-sm-4">
53 <label-input ng-id="entradaItem.numeroLote" ng-label="ALMOXARIFADO.LABEL.NUMERO_LOTE" ng-obrigatorio="false" ng-disabled="!editEntrada" form="formDialogMateriais" ng-model="entradaItem.numeroLote" /> 57 <label-input ng-id="entradaItem.numeroLote" ng-label="ALMOXARIFADO.LABEL.NUMERO_LOTE" ng-obrigatorio="false" ng-disabled="!editEntrada" form="formDialogMateriais" ng-model="entradaItem.numeroLote" />
@@ -65,7 +69,7 @@ @@ -65,7 +69,7 @@
65 <label>{{entradaItem.material.unidadeArmazenamento.tipoUnidadeMedida.descricao}}</label> 69 <label>{{entradaItem.material.unidadeArmazenamento.tipoUnidadeMedida.descricao}}</label>
66 </div> 70 </div>
67 </div> 71 </div>
68 - 72 +
69 <fieldset ng-show="caracteristicas.length > 0 || (entradaItem.caracteristicas.length > 0 && !editEntrada)"> 73 <fieldset ng-show="caracteristicas.length > 0 || (entradaItem.caracteristicas.length > 0 && !editEntrada)">
70 <legend> 74 <legend>
71 <translate>LABEL.CARACTERISTICAS</translate> 75 <translate>LABEL.CARACTERISTICAS</translate>
@@ -127,22 +131,22 @@ @@ -127,22 +131,22 @@
127 <div class="row" ng-if="bemAlmoxarifadoCaracteristica.materialCaracteristica.caracteristica.dominioTipoDado.nome == 'ARQUIVO'"> 131 <div class="row" ng-if="bemAlmoxarifadoCaracteristica.materialCaracteristica.caracteristica.dominioTipoDado.nome == 'ARQUIVO'">
128 <div class="col-sm-12"> 132 <div class="col-sm-12">
129 <div class="form-group"> 133 <div class="form-group">
130 - 134 +
131 <label ng-class="{'has-error': validaAnexo}" for='bemAlmoxarifadoCaracteristica.valorCaracteristica-arquivo-{{$index}}' class='control-label'>{{bemAlmoxarifadoCaracteristica.materialCaracteristica.caracteristica.descricao}} 135 <label ng-class="{'has-error': validaAnexo}" for='bemAlmoxarifadoCaracteristica.valorCaracteristica-arquivo-{{$index}}' class='control-label'>{{bemAlmoxarifadoCaracteristica.materialCaracteristica.caracteristica.descricao}}
132 <span class='red' ng-show='bemAlmoxarifadoCaracteristica.materialCaracteristica.obrigatorio'>*</span> 136 <span class='red' ng-show='bemAlmoxarifadoCaracteristica.materialCaracteristica.obrigatorio'>*</span>
133 <i ng-if='bemAlmoxarifadoCaracteristica.materialCaracteristica.obrigatorio' ng-show='validaAnexo' class='fa fa-warning red' tooltip="{{bemAlmoxarifadoCaracteristica.materialCaracteristica.caracteristica.descricao + ' ' +$translate.instant('LABEL.CAMPO_OBRIGATORIO')}}" tooltip-placement='top'></i> 137 <i ng-if='bemAlmoxarifadoCaracteristica.materialCaracteristica.obrigatorio' ng-show='validaAnexo' class='fa fa-warning red' tooltip="{{bemAlmoxarifadoCaracteristica.materialCaracteristica.caracteristica.descricao + ' ' +$translate.instant('LABEL.CAMPO_OBRIGATORIO')}}" tooltip-placement='top'></i>
134 - </label>  
135 - 138 + </label>
  139 +
136 <div class="col-sm-12" ng-show="editEntrada && uploaderCaracteristica.queue < 1"> 140 <div class="col-sm-12" ng-show="editEntrada && uploaderCaracteristica.queue < 1">
137 <div nv-file-drop="" uploader="uploaderCaracteristica" id="actionUploadArquivos-{{workspace.id}}" onclick="acionarInputFile(this);"> 141 <div nv-file-drop="" uploader="uploaderCaracteristica" id="actionUploadArquivos-{{workspace.id}}" onclick="acionarInputFile(this);">
138 <div nv-file-over="" uploader="uploaderCaracteristica" over-class="another-file-over-class"> 142 <div nv-file-over="" uploader="uploaderCaracteristica" over-class="another-file-over-class">
139 - <label class="file-input file-multiple">  
140 - <span class="file-container"> 143 + <label class="file-input file-multiple">
  144 + <span class="file-container">
141 <label class="uploadMsg"><translate>LABEL.UPLOAD_MSG_ARRASTE</translate></label> 145 <label class="uploadMsg"><translate>LABEL.UPLOAD_MSG_ARRASTE</translate></label>
142 - <span class="file-name" data-title="..."> 146 + <span class="file-name" data-title="...">
143 <i class="icon icon fa fa-cloud-upload"></i> 147 <i class="icon icon fa fa-cloud-upload"></i>
144 </span> 148 </span>
145 - </span> 149 + </span>
146 </label> 150 </label>
147 </div> 151 </div>
148 </div> 152 </div>