Commit 08f527446de460ddbc9a12989314ee7ded30fba5
1 parent
afd35325
Exists in
master
Redmine #4783 Terminando reestruturação de telas da entrada
Showing
4 changed files
with
204 additions
and
142 deletions
Show diff stats
cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/EntradaAlmoxarifadoController.js
... | ... | @@ -34,6 +34,10 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp |
34 | 34 | // Limpa formulário para novo cadastro |
35 | 35 | $scope.resetForm = function() { |
36 | 36 | $scope.limparEntradaAlmoxarifado(); |
37 | + | |
38 | + $scope.listaEntradaItemSelecao = []; | |
39 | + | |
40 | + $scope.atualizarListaSizeSelectEntradaItem(); | |
37 | 41 | $scope.edit = true; |
38 | 42 | $timeout(function(){ |
39 | 43 | $scope.entradaAlmoxarifadoForm.$submitted = false; |
... | ... | @@ -55,7 +59,7 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp |
55 | 59 | dataRecebimento : '', |
56 | 60 | dataContabil : '', |
57 | 61 | documentos : [], |
58 | - entradasIten : [], | |
62 | + entradasItem : [], | |
59 | 63 | dominioTipoEntrada : $scope.dominioTipoEntrada ? $scope.dominioTipoEntrada : null, |
60 | 64 | dominioTipoRecebimento : $scope.dominioTipoRecebimento ? $scope.dominioTipoRecebimento : null, |
61 | 65 | observacoes : [], |
... | ... | @@ -131,6 +135,7 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp |
131 | 135 | }); |
132 | 136 | |
133 | 137 | $scope.calcularValorTotalMateriais(); |
138 | + $scope.atualizarListaSizeSelectEntradaItem(); | |
134 | 139 | $scope.edit = edit; |
135 | 140 | $scope.setLoading(false); |
136 | 141 | }); |
... | ... | @@ -186,7 +191,8 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp |
186 | 191 | }); |
187 | 192 | |
188 | 193 | $scope.inicializarModalMateriais = function(){ |
189 | - $scope.editEntrada = true; | |
194 | + $scope.editEntrada = false; | |
195 | + $scope.newEntrada = true; | |
190 | 196 | $scope.limparModalMateriais(); |
191 | 197 | $scope.$openModal('modal-materiais-consumo.html', 'lg'); |
192 | 198 | }; |
... | ... | @@ -227,81 +233,50 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp |
227 | 233 | $scope.setLoading(false); |
228 | 234 | } |
229 | 235 | }; |
230 | - | |
231 | - $scope.limparCamposMaterial = function(){ | |
232 | - | |
233 | - $scope.unidadesMedidasEntrada = []; | |
234 | - }; | |
235 | - | |
236 | - $scope.definirTipoNumerico = function(){ | |
237 | - $timeout(function(){ | |
238 | - if($scope.entradaItem.unidadeMedidaEntrada){ | |
239 | - if($scope.entradaItem.unidadeMedidaEntrada.tipoNumerico && $scope.entradaItem.unidadeMedidaEntrada.tipoNumerico.codigo == $scope.TIPO_NUMERICO_INTEIRO ){ | |
240 | - $scope.tipoNumerico = 0; | |
241 | - }else{ | |
242 | - $scope.tipoNumerico = 2; | |
243 | - }; | |
244 | - | |
245 | - if($scope.entradaItem.unidadeMedidaEntrada.sigla){ | |
246 | - if($scope.entradaItem.unidadeMedidaEntrada.quantidadePadrao && $scope.entradaItem.unidadeMedidaEntrada.quantidadePadrao > 0){ | |
247 | - $scope.entradaItem.quantidadeDominioTipoUnidadeEntrada = $scope.entradaItem.unidadeMedidaEntrada.quantidadePadrao; | |
248 | - } | |
249 | - } | |
250 | - } else{ | |
251 | - $scope.entradaItem.quantidadeDominioTipoUnidadeEntrada = null; | |
252 | - } | |
253 | - }); | |
254 | - }; | |
255 | - | |
256 | - $scope.calcularQuantidadeEValores = function(){ | |
257 | - $timeout(function(){ | |
258 | - if($scope.entradaItem.quantidadeDominioTipoUnidadeEntrada && $scope.entradaItem.$quantidadeEntrada){ | |
259 | - $scope.entradaItem.quantidade = $scope.entradaItem.$quantidadeEntrada * $scope.entradaItem.quantidadeDominioTipoUnidadeEntrada; | |
260 | - } | |
261 | - if($scope.entradaItem.valorTotal && $scope.entradaItem.quantidade){ | |
262 | - $scope.entradaItem.valorUnitario = $scope.entradaItem.valorTotal / $scope.entradaItem.quantidade; | |
263 | - } | |
264 | - }); | |
265 | - }; | |
266 | 236 | |
267 | 237 | $scope.addEntradaItem = function(formDialogMateriais) { |
268 | 238 | formDialogMateriais.$submitted = true; |
269 | 239 | |
270 | 240 | if(formDialogMateriais.$valid){ |
271 | 241 | |
272 | - if($scope.entradaItem.$quantidadeEntrada > 0){ | |
273 | - | |
274 | - if($scope.entradaItem.$validarPrecoMedio){ | |
275 | - | |
276 | - var idAlmoxarifado = $scope.entradaAlmoxarifado.almoxarifado ? $scope.entradaAlmoxarifado.almoxarifado.id : null; | |
277 | - | |
278 | - EntradaAlmoxarifadoItemRepository.validarPrecoMedio($scope.entradaItem.valorUnitario, $scope.entradaItem.material.id, idAlmoxarifado).then(function(result) {}); | |
242 | + if(!$scope.entradaItem.$quantidadeEntrada || $scope.entradaItem.$quantidadeEntrada <= 0){ | |
243 | + $scope.showAlert('error', $translate.instant('VALIDACAO.QUANTIDADE_MAIOR_ZERO')); | |
244 | + return; | |
245 | + } | |
246 | + | |
247 | + if(!$scope.entradaItem.valorTotal || $scope.entradaItem.valorTotal <= 0){ | |
248 | + $scope.showAlert('error', $translate.instant('ADMINISTRACAODEMATERIAIS.VALIDACAO.VALOR_TOTAL_MAIOR_ZERO')); | |
249 | + return; | |
250 | + } | |
251 | + | |
252 | + if($scope.entradaItem.$validarPrecoMedio){ | |
279 | 253 | |
280 | - } | |
254 | + var idAlmoxarifado = $scope.entradaAlmoxarifado.almoxarifado ? $scope.entradaAlmoxarifado.almoxarifado.id : null; | |
281 | 255 | |
282 | - if(!$scope.entradaItem.uuid){ | |
283 | - $scope.entradaItem.uuid = getUuid(); | |
284 | - $scope.entradaAlmoxarifado.entradasIten.push($scope.entradaItem); | |
285 | - }else{ | |
286 | - var entradasItemTemp = []; | |
287 | - $scope.entradaAlmoxarifado.entradasIten.forEach(function (entradaItem, $index) { | |
288 | - if(entradaItem.uuid === $scope.entradaItem.uuid){ | |
289 | - entradasItemTemp.push($scope.entradaItem); | |
290 | - }else{ | |
291 | - entradasItemTemp.push(entradaItem); | |
292 | - } | |
293 | - }); | |
294 | - $scope.entradaAlmoxarifado.entradasIten = entradasItemTemp; | |
295 | - } | |
256 | + EntradaAlmoxarifadoItemRepository.validarPrecoMedio($scope.entradaItem.valorUnitario, $scope.entradaItem.material.id, idAlmoxarifado).then(function(result) {}); | |
296 | 257 | |
297 | - $scope.calcularValorTotalMateriais(); | |
258 | + } | |
298 | 259 | |
299 | - $scope.$modalInstance.dismiss('cancel'); | |
300 | - | |
260 | + if(!$scope.entradaItem.uuid){ | |
261 | + $scope.entradaItem.uuid = getUuid(); | |
262 | + $scope.entradaAlmoxarifado.entradasItem.push($scope.entradaItem); | |
301 | 263 | }else{ |
302 | - $scope.showAlert('error', $translate.instant('VALIDACAO.QUANTIDADE_MAIOR_ZERO')); | |
264 | + var entradasItemTemp = []; | |
265 | + $scope.entradaAlmoxarifado.entradasItem.forEach(function (entradaItem, $index) { | |
266 | + if(entradaItem.uuid === $scope.entradaItem.uuid){ | |
267 | + entradasItemTemp.push($scope.entradaItem); | |
268 | + }else{ | |
269 | + entradasItemTemp.push(entradaItem); | |
270 | + } | |
271 | + }); | |
272 | + $scope.entradaAlmoxarifado.entradasItem = entradasItemTemp; | |
303 | 273 | } |
304 | 274 | |
275 | + $scope.calcularValorTotalMateriais(); | |
276 | + | |
277 | + $scope.$modalInstance.dismiss('cancel'); | |
278 | + $scope.atualizarListaSizeSelectEntradaItem(); | |
279 | + | |
305 | 280 | }else{ |
306 | 281 | $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS')); |
307 | 282 | } |
... | ... | @@ -309,36 +284,79 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp |
309 | 284 | $scope.entradaItemSelecionado = null; |
310 | 285 | |
311 | 286 | }; |
312 | - | |
313 | - $scope.abrirEntradaItem = function(editar){ | |
314 | - | |
315 | - if($scope.entradaItemSelecionado){ | |
316 | - | |
317 | - $scope.editEntrada = editar; | |
318 | - $scope.entradaItem = clone($scope.entradaItemSelecionado); | |
319 | - $scope.entradaItem.$quantidadeEntrada = $scope.entradaItem.quantidade / $scope.entradaItem.quantidadeDominioTipoUnidadeEntrada; | |
320 | - $scope.unidadesMedidasEntrada = $scope.entradaItem.material.tiposUnidadeMedidaEntrada.map(function(item){ | |
321 | - return item.unidadeMedida; | |
322 | - });; | |
323 | - $scope.caracteristicas = $scope.entradaItem.caracteristicas; | |
324 | - | |
325 | - $scope.caracteristicas.forEach(function(bemPatrimonialCaracteristica) { | |
326 | - if(bemPatrimonialCaracteristica.materialCaracteristica.caracteristica.dominioTipoDado.nome == 'ARQUIVO'){ | |
327 | - $scope.uploaderCaracteristica.queue = clone(bemPatrimonialCaracteristica.uploadAnexo); | |
287 | + | |
288 | + // Seleciona todos os itens da entrada | |
289 | + $scope.checkAllEntradaItem = function(value) { | |
290 | + $scope.listaEntradaItemSelecao = []; | |
291 | + angular.forEach($scope.entradaAlmoxarifado.entradasItem, function (item) { | |
292 | + item.$checked = value; | |
293 | + $scope.listaEntradaItemSelecao.push(item); | |
294 | + }); | |
295 | + if(!value){ | |
296 | + $scope.listaEntradaItemSelecao = []; | |
297 | + } | |
298 | + $scope.atualizarListaSizeSelectEntradaItem(); | |
299 | + }; | |
300 | + | |
301 | + $scope.checkEntradaItem = function(item){ | |
302 | + if(item.$checked){ | |
303 | + $scope.listaEntradaItemSelecao.push(item); | |
304 | + }else{ | |
305 | + $scope.listaEntradaItemSelecao.splice($scope.listaEntradaItemSelecao.indexOf(item), 1); | |
306 | + } | |
307 | + }; | |
308 | + | |
309 | + $scope.atualizarListaSizeSelectEntradaItem = function() { | |
310 | + if(!$scope.listaEntradaItemSize){ | |
311 | + $scope.listaEntradaItemSize = 0; | |
312 | + }; | |
313 | + var lista = $scope.getEntradaItemChecked(); | |
314 | + $scope.listaEntradaItemSize = lista.length; | |
315 | + }; | |
316 | + | |
317 | + // recupera as entradas itens selecionadas | |
318 | + $scope.getEntradaItemChecked = function() { | |
319 | + var entradaItemChecked = []; | |
320 | + | |
321 | + if ($scope.entradaAlmoxarifado.entradasItem) { | |
322 | + for (var i = 0; i < $scope.entradaAlmoxarifado.entradasItem.length; i++) { | |
323 | + if ($scope.entradaAlmoxarifado.entradasItem[i].$checked) { | |
324 | + entradaItemChecked.push(angular.copy($scope.entradaAlmoxarifado.entradasItem[i])); | |
328 | 325 | } |
329 | - }); | |
330 | - | |
331 | - if($scope.entradaItem.dataValidade && !$scope.entradaItem.id){ | |
332 | - $scope.entradaItem.dataValidade = $filter('date')($scope.entradaItem.dataValidade, "dd/MM/yyyy"); | |
333 | 326 | } |
327 | + } | |
334 | 328 | |
335 | - $scope.$openModal('modal-materiais-consumo.html', 'lg'); | |
329 | + return entradaItemChecked; | |
330 | + }; | |
336 | 331 | |
337 | - }else{ | |
332 | + $scope.abrirEntradaItem = function(editar){ | |
333 | + $scope.entradaItem = null; | |
334 | + // recupera os itens de entrada selecionados | |
335 | + var itensSelecionados = $scope.getEntradaItemChecked(); | |
338 | 336 | |
339 | - $scope.showAlert('warning', editar ? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO')); | |
337 | + if (itensSelecionados.length > 1) { | |
338 | + $scope.showAlert('warning', editar? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO')); | |
339 | + return; | |
340 | 340 | } |
341 | 341 | |
342 | + if(itensSelecionados.length === 0) { | |
343 | + $scope.showAlert('warning', editar? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO')); | |
344 | + return; | |
345 | + } | |
346 | + | |
347 | + $scope.newEntrada = false; | |
348 | + $scope.editEntrada = editar; | |
349 | + $scope.entradaItem = itensSelecionados[0]; | |
350 | + $scope.entradaItem.$quantidadeEntrada = $scope.entradaItem.quantidade / $scope.entradaItem.unidadeMedidaEntrada.quantidadePadrao; | |
351 | + $scope.unidadesMedidasEntrada = $scope.entradaItem.material.tiposUnidadeMedidaEntrada.map(function(item){ | |
352 | + return item.unidadeMedida; | |
353 | + }); | |
354 | + | |
355 | + if($scope.entradaItem.dataValidade && !$scope.entradaItem.id){ | |
356 | + $scope.entradaItem.dataValidade = $filter('date')($scope.entradaItem.dataValidade, "dd/MM/yyyy"); | |
357 | + } | |
358 | + | |
359 | + $scope.$openModal('modal-materiais-consumo.html', 'lg'); | |
342 | 360 | }; |
343 | 361 | |
344 | 362 | $scope.removerEntradaItem = function(){ |
... | ... | @@ -378,19 +396,20 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp |
378 | 396 | $scope.excluirItemAlmoxarifadoDaLista = function(entradaItemSelecionada){ |
379 | 397 | var index = 0; |
380 | 398 | $scope.valorTotalMateriais = 0.0; |
381 | - $scope.entradaAlmoxarifado.entradasIten.forEach(function (entradaItem, key) { | |
399 | + $scope.entradaAlmoxarifado.entradasItem.forEach(function (entradaItem, key) { | |
382 | 400 | if(entradaItemSelecionada.uuid === entradaItem.uuid) { |
383 | 401 | index = key; |
384 | 402 | } |
385 | 403 | }); |
386 | - $scope.entradaAlmoxarifado.entradasIten.splice(index, 1); | |
404 | + $scope.entradaAlmoxarifado.entradasItem.splice(index, 1); | |
387 | 405 | $scope.calcularValorTotalMateriais(); |
406 | + $scope.atualizarListaSizeSelectEntradaItem(); | |
388 | 407 | $scope.$modalConfirmInstance.dismiss('cancel'); |
389 | 408 | }; |
390 | 409 | |
391 | 410 | $scope.calcularValorTotalMateriais = function(){ |
392 | 411 | $scope.valorTotalMateriais = 0.0; |
393 | - $scope.entradaAlmoxarifado.entradasIten.forEach(function (entradaItem) { | |
412 | + $scope.entradaAlmoxarifado.entradasItem.forEach(function (entradaItem) { | |
394 | 413 | $scope.valorTotalMateriais = converterMoedaToNumber(entradaItem.valorTotal) + $scope.valorTotalMateriais; |
395 | 414 | }); |
396 | 415 | }; |
... | ... | @@ -480,7 +499,7 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp |
480 | 499 | |
481 | 500 | var formularioValido = true; |
482 | 501 | |
483 | - if(!form.$valid || !$scope.entradaAlmoxarifado.entradasIten.length > 0 || !$scope.entradaAlmoxarifado.documentos.length > 0){ | |
502 | + if(!form.$valid || !$scope.entradaAlmoxarifado.entradasItem.length > 0 || !$scope.entradaAlmoxarifado.documentos.length > 0){ | |
484 | 503 | $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS')); |
485 | 504 | formularioValido = false; |
486 | 505 | |
... | ... | @@ -664,20 +683,22 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp |
664 | 683 | //Watch para controlar as definições de material selecionado na modal de adição de materiais |
665 | 684 | $scope.$watch('entradaItem.material', function() { |
666 | 685 | $timeout(function() { |
667 | - if (!$scope.entradaItem) { | |
668 | - $scope.entradaItem = { | |
669 | - $validarPrecoMedio : true | |
670 | - }; | |
686 | + if ($scope.newEntrada) { | |
687 | + if (!$scope.entradaItem) { | |
688 | + $scope.entradaItem = { | |
689 | + $validarPrecoMedio : true | |
690 | + }; | |
691 | + } | |
692 | + $scope.entradaItem.quantidade = null; | |
693 | + $scope.entradaItem.valorTotal = null; | |
694 | + $scope.entradaItem.valorUnitario = null; | |
695 | + $scope.entradaItem.unidadeMedidaEntrada = null; | |
696 | + $scope.entradaItem.materialLocalEstoque = null; | |
697 | + $scope.unidadesMedidasEntrada = []; | |
698 | + $scope.enderecosMaterial = []; | |
671 | 699 | } |
672 | - $scope.entradaItem.quantidade = null; | |
673 | - $scope.entradaItem.quantidadeDominioTipoUnidadeEntrada = null; | |
674 | - $scope.entradaItem.valorTotal = null; | |
675 | - $scope.entradaItem.valorUnitario = null; | |
676 | - $scope.entradaItem.unidadeMedidaEntrada = null; | |
677 | - $scope.entradaItem.materialLocalEstoque = null; | |
678 | - $scope.unidadesMedidasEntrada = []; | |
679 | 700 | |
680 | - if ($scope.entradaItem.material) { | |
701 | + if ($scope.entradaItem.material) { | |
681 | 702 | $scope.unidadesMedidasEntrada = $scope.entradaItem.material.tiposUnidadeMedidaEntrada.map(function(item){ |
682 | 703 | if (item.isPadrao && !$scope.entradaItem.unidadeMedidaEntrada) { |
683 | 704 | $scope.entradaItem.unidadeMedidaEntrada = item.unidadeMedida; |
... | ... | @@ -685,20 +706,57 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp |
685 | 706 | return item.unidadeMedida; |
686 | 707 | }); |
687 | 708 | |
688 | - $scope.enderecosMaterial = []; | |
689 | 709 | MaterialLocalEstoqueRepository.listarMaterialEstoquePorMaterial($scope.entradaItem.material.id).then(function(result) { |
690 | - for (var i = 0; i < result.length; i++) { | |
691 | - $scope.enderecosMaterial.push(result[i].originalElement); | |
710 | + $scope.enderecosMaterial = []; | |
711 | + for (var i = 0; i < result.length; i++) { | |
712 | + $scope.enderecosMaterial.push(result[i].originalElement); | |
692 | 713 | |
693 | - if (result[i].localPrincipal && !$scope.entradaItem.materialLocalEstoque) { | |
694 | - $scope.entradaItem.materialLocalEstoque = result[i].originalElement; | |
695 | - } | |
696 | - } | |
714 | + if (result[i].localPrincipal && !$scope.entradaItem.materialLocalEstoque) { | |
715 | + $scope.entradaItem.materialLocalEstoque = result[i].originalElement; | |
716 | + } | |
717 | + } | |
697 | 718 | }); |
698 | 719 | } |
699 | 720 | }); |
700 | 721 | }); |
701 | 722 | |
723 | + //Watch para controlar as mudanças da quantidade na entrada de materiais | |
724 | + $scope.$watch('entradaItem.$quantidadeEntrada', function() { | |
725 | + $timeout(function(){ | |
726 | + if($scope.entradaItem.$quantidadeEntrada && $scope.entradaItem.unidadeMedidaEntrada){ | |
727 | + $scope.entradaItem.quantidade = $scope.entradaItem.$quantidadeEntrada * $scope.entradaItem.unidadeMedidaEntrada.quantidadePadrao; | |
728 | + } else { | |
729 | + delete $scope.entradaItem.quantidade; | |
730 | + } | |
731 | + if($scope.entradaItem.quantidade && $scope.entradaItem.valorTotal){ | |
732 | + $scope.entradaItem.valorUnitario = $scope.entradaItem.valorTotal / $scope.entradaItem.quantidade; | |
733 | + } else { | |
734 | + delete $scope.entradaItem.valorUnitario; | |
735 | + } | |
736 | + }); | |
737 | + }); | |
738 | + | |
739 | + //Watch para controlar as mudanças da unidade de medida na entrada de materiais | |
740 | + $scope.$watch('entradaItem.unidadeMedidaEntrada', function() { | |
741 | + $timeout(function(){ | |
742 | + if($scope.entradaItem.$quantidadeEntrada && $scope.entradaItem.unidadeMedidaEntrada){ | |
743 | + $scope.entradaItem.quantidade = $scope.entradaItem.$quantidadeEntrada * $scope.entradaItem.unidadeMedidaEntrada.quantidadePadrao; | |
744 | + } else { | |
745 | + delete $scope.entradaItem.quantidade; | |
746 | + } | |
747 | + }); | |
748 | + }); | |
749 | + | |
750 | + //Watch para controlar as mudanças do valor total da entrada de materiais | |
751 | + $scope.$watch('entradaItem.valorTotal', function() { | |
752 | + $timeout(function(){ | |
753 | + if($scope.entradaItem.quantidade && $scope.entradaItem.valorTotal){ | |
754 | + $scope.entradaItem.valorUnitario = $scope.entradaItem.valorTotal / $scope.entradaItem.quantidade; | |
755 | + } else { | |
756 | + delete $scope.entradaItem.valorUnitario; | |
757 | + } | |
758 | + }); | |
759 | + }); | |
702 | 760 | |
703 | 761 | |
704 | 762 | |
... | ... | @@ -837,7 +895,7 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp |
837 | 895 | function validStepMateriais() { |
838 | 896 | $scope.stepValid = true; |
839 | 897 | |
840 | - if ($scope.entradaAlmoxarifadoForm.materiaisForm.$invalid) { | |
898 | + if ($scope.entradaAlmoxarifadoForm.materiaisForm.$invalid || !($scope.entradaAlmoxarifado.entradasItem.length > 0)) { | |
841 | 899 | $scope.stepValid = false; |
842 | 900 | } |
843 | 901 | |
... | ... | @@ -847,7 +905,7 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp |
847 | 905 | //Funcao especifica que retorna se o formulario de documentos esta valido |
848 | 906 | function validStepDocumentos() { |
849 | 907 | $scope.stepValid = true; |
850 | - if ($scope.entradaAlmoxarifadoForm.documentosForm.$invalid || !$scope.entradaAlmoxarifado.documentos.length > 0) { | |
908 | + if ($scope.entradaAlmoxarifadoForm.documentosForm.$invalid || !($scope.entradaAlmoxarifado.documentos.length > 0)) { | |
851 | 909 | $scope.stepValid = false; |
852 | 910 | } |
853 | 911 | return $scope.stepValid; | ... | ... |
cit-almoxarifado-web/src/main/webapp/html/entradaAlmoxarifado/dialog_add_materiais.html
1 | 1 | <ng-form name="formDialogMateriais" autocomplete="off"> |
2 | 2 | <div class="modal-header"> |
3 | - <button class="btn btn-clear" type="button" ng-hide="!editEntrada" ng-click="addEntradaItem(formDialogMateriais)"> | |
3 | + <button class="btn btn-clear" type="button" ng-hide="!editEntrada && !newEntrada" ng-click="addEntradaItem(formDialogMateriais)"> | |
4 | 4 | <i class="fa fa-save green"></i> |
5 | 5 | <translate>{{entradaItem.id ? 'LABEL.SALVAR' : 'LABEL.ADICIONAR'}} </translate> |
6 | 6 | </button> |
... | ... | @@ -13,54 +13,54 @@ |
13 | 13 | |
14 | 14 | <div class="modal-body"> |
15 | 15 | <h2 class="title-modal blue"><translate>ALMOXARIFADO.LABEL.MATERIAIS</translate></h2> |
16 | - <p ng-show="editEntrada"> | |
16 | + <p ng-show="editEntrada || newEntrada"> | |
17 | 17 | <small>( <span class="red">*</span> ) <translate>LABEL.CAMPOS_OBRIGATORIOS</translate> |
18 | 18 | </small> |
19 | 19 | </p> |
20 | 20 | <div class="row"> |
21 | 21 | <div class="col-md-4"> |
22 | - <label-input-checkbox ng-model="entradaItem.$validarPrecoMedio" ng-disabled="!editEntrada" ng-label="ALMOXARIFADO.LABEL.VALIDAR_PRECO_MEDIO" ></label-input-checkbox> | |
22 | + <label-input-checkbox ng-model="entradaItem.$validarPrecoMedio" ng-disabled="!editEntrada && !newEntrada" ng-label="ALMOXARIFADO.LABEL.VALIDAR_PRECO_MEDIO" ></label-input-checkbox> | |
23 | 23 | </div> |
24 | 24 | </div> |
25 | 25 | |
26 | 26 | <div class="row"> |
27 | 27 | <br> |
28 | 28 | <div class="col-sm-6"> |
29 | - <auto-complete ng-find="findMaterial(value)" ng-set-result="carregarItensMaterial(item)" ng-item="item.codigoEDescricao" ng-acao-borracha="limparCamposMaterial()" | |
30 | - ng-id="entradaItem.material" form="formDialogMateriais" ng-label="LABEL.MATERIAL" ng-disabled="!editEntrada" ng-model="entradaItem.material" ng-obrigatorio="true"> | |
29 | + <auto-complete ng-find="findMaterial(value)" ng-set-result="carregarItensMaterial(item)" ng-item="item.codigoEDescricao" ng-id="entradaItem.material" form="formDialogMateriais" | |
30 | + ng-label="LABEL.MATERIAL" ng-disabled="!newEntrada" ng-model="entradaItem.material" ng-obrigatorio="true"> | |
31 | 31 | </auto-complete> |
32 | 32 | </div> |
33 | 33 | <div class="col-sm-2"> |
34 | - <label-select ng-id="entradaItem.unidadeMedidaEntrada" ng-custom-change="definirTipoNumerico()" ng-label="ALMOXARIFADO.LABEL.UN_MEDIDA" ng-model="entradaItem.unidadeMedidaEntrada" | |
35 | - form="formDialogMateriais" ng-obrigatorio="editEntrada" ng-disabled="!editEntrada" ng-custom-options="unidadeMedida as unidadeMedida.sigla for unidadeMedida" | |
36 | - track-by="track by unidadeMedida.id" ng-list="unidadesMedidasEntrada"/> | |
34 | + <label-select ng-id="entradaItem.unidadeMedidaEntrada" ng-label="ALMOXARIFADO.LABEL.UN_MEDIDA" ng-model="entradaItem.unidadeMedidaEntrada" | |
35 | + form="formDialogMateriais" ng-obrigatorio="editEntrada || newEntrada" ng-disabled="!editEntrada && !newEntrada" | |
36 | + ng-custom-options="unidadeMedida as unidadeMedida.sigla for unidadeMedida" track-by="track by unidadeMedida.id" ng-list="unidadesMedidasEntrada"/> | |
37 | 37 | </div> |
38 | 38 | <div class="col-sm-4"> |
39 | 39 | <label-select ng-id="entradaItem.materialLocalEstoque.endereco" ng-custom-change="" ng-label="ALMOXARIFADO.LABEL.ENDERECO_ESTOQUE" ng-model="entradaItem.materialLocalEstoque" |
40 | - form="formDialogMateriais" ng-obrigatorio="editEntrada" ng-disabled="!editEntrada" ng-custom-options="materialLocal as materialLocal.endereco.descricao for materialLocal" | |
41 | - track-by="track by materialLocal.id" ng-list="enderecosMaterial"/> | |
40 | + form="formDialogMateriais" ng-obrigatorio="editEntrada || newEntrada" ng-disabled="!editEntrada && !newEntrada && !entradaItem.id" | |
41 | + ng-custom-options="materialLocal as materialLocal.endereco.descricao for materialLocal" track-by="track by materialLocal.id" ng-list="enderecosMaterial"/> | |
42 | 42 | </div> |
43 | 43 | </div> |
44 | 44 | |
45 | 45 | <div class="row"> |
46 | 46 | <div class="col-sm-3"> |
47 | - <label-input-decimal ng-id="entradaItem.$quantidadeEntrada" ng-label="ALMOXARIFADO.LABEL.QUANTIDADE" ng-evento-change="calcularQuantidadeEValores()" ng-obrigatorio="editEntrada" | |
48 | - ng-disabled="!editEntrada" form="formDialogMateriais" ng-model="entradaItem.$quantidadeEntrada" ng-precisao="tipoNumerico" ng-custom-maxlength="11"/> | |
47 | + <label-input-decimal ng-id="entradaItem.$quantidadeEntrada" ng-label="ALMOXARIFADO.LABEL.QUANTIDADE" ng-obrigatorio="editEntrada || newEntrada" ng-disabled="!editEntrada && !newEntrada" | |
48 | + form="formDialogMateriais" ng-model="entradaItem.$quantidadeEntrada" ng-precisao="tipoNumerico" ng-custom-maxlength="11"/> | |
49 | 49 | </div> |
50 | 50 | |
51 | 51 | <div class="col-sm-3"> |
52 | - <label-input-money ng-id="entradaItem.valorTotal" ng-evento-change="calcularQuantidadeEValores()" ng-label="ALMOXARIFADO.LABEL.VALOR_TOTAL_MATERIAL_SUBTOTAL" ng-obrigatorio="editEntrada" | |
53 | - ng-disabled="!editEntrada" form="formDialogMateriais" ng-model="entradaItem.valorTotal" ng-custom-maxlength="19"/> | |
52 | + <label-input-money ng-id="entradaItem.valorTotal" ng-label="ALMOXARIFADO.LABEL.VALOR_TOTAL_MATERIAL_SUBTOTAL" ng-obrigatorio="editEntrada || newEntrada" | |
53 | + ng-disabled="!editEntrada && !newEntrada" form="formDialogMateriais" ng-model="entradaItem.valorTotal" ng-custom-maxlength="19"/> | |
54 | 54 | </div> |
55 | 55 | |
56 | 56 | <div class="col-sm-3"> |
57 | - <label-input ng-id="entradaItem.numeroLote" ng-label="ALMOXARIFADO.LABEL.NUMERO_LOTE" ng-obrigatorio="false" ng-disabled="!editEntrada" form="formDialogMateriais" | |
57 | + <label-input ng-id="entradaItem.numeroLote" ng-label="ALMOXARIFADO.LABEL.NUMERO_LOTE" ng-obrigatorio="false" ng-disabled="!editEntrada && !newEntrada" form="formDialogMateriais" | |
58 | 58 | ng-model="entradaItem.numeroLote" /> |
59 | 59 | </div> |
60 | 60 | |
61 | 61 | <div class="col-sm-3"> |
62 | - <label-input-data ng-id="entradaItem.dataValidade" ng-label="ALMOXARIFADO.LABEL.DATA_VALIDADE" ng-obrigatorio="false" ng-disabled="!editEntrada" ng-model="entradaItem.dataValidade" | |
63 | - form="formDialogMateriais" /> | |
62 | + <label-input-data ng-id="entradaItem.dataValidade" ng-label="ALMOXARIFADO.LABEL.DATA_VALIDADE" ng-obrigatorio="false" ng-disabled="!editEntrada && !newEntrada" | |
63 | + ng-model="entradaItem.dataValidade" form="formDialogMateriais" /> | |
64 | 64 | </div> |
65 | 65 | </div> |
66 | 66 | ... | ... |
cit-almoxarifado-web/src/main/webapp/html/entradaAlmoxarifado/entradaAlmoxarifadoEdit.html
... | ... | @@ -52,19 +52,19 @@ |
52 | 52 | |
53 | 53 | <div> |
54 | 54 | <ul class="wizard-steps"> |
55 | - <li ng-class="{'active': isCurrentStep(0), 'complete' : !entradaAlmoxarifadoForm.dadosEntradaForm.$invalid, 'invalid' : (entradaAlmoxarifadoForm.dadosEntradaForm.$submitted && entradaAlmoxarifadoForm.dadosEntradaForm.$invalid)}" | |
55 | + <li ng-class="{'active': isCurrentStep(0), 'complete' : !entradaAlmoxarifadoForm.dadosEntradaForm.$invalid, 'incomplete' : (entradaAlmoxarifadoForm.dadosEntradaForm.$submitted && entradaAlmoxarifadoForm.dadosEntradaForm.$invalid)}" | |
56 | 56 | ng-click="setCurrentStep(0)" title="{{$translate.instant('ALMOXARIFADO.LABEL.DADOS_ENTRADA')}}" alt="{{$translate.instant('ALMOXARIFADO.LABEL.DADOS_ENTRADA')}}"> |
57 | 57 | <span class="step">1</span> |
58 | 58 | <a href="#void" class="title" style="text-decoration: none;"><translate>ALMOXARIFADO.LABEL.DADOS_ENTRADA</translate></a> |
59 | 59 | </li> |
60 | 60 | |
61 | - <li ng-class="{'active': isCurrentStep(1), 'complete' : ((isCurrentStep(1) || isCurrentStep(2) || isCurrentStep(3)) && !entradaAlmoxarifadoForm.materiaisForm.$invalid), 'invalid' : ((entradaAlmoxarifadoForm.materiaisForm.$submitted || step > 1) && entradaAlmoxarifadoForm.materiaisForm.$invalid) && (isCurrentStep(1) || isCurrentStep(2) || isCurrentStep(3))}" | |
61 | + <li ng-class="{'active': isCurrentStep(1), 'complete' : ((isCurrentStep(1) || isCurrentStep(2) || isCurrentStep(3)) && !entradaAlmoxarifadoForm.materiaisForm.$invalid && (entradaAlmoxarifado.entradasItem.length > 0)), 'incomplete' : ((entradaAlmoxarifadoForm.materiaisForm.$submitted || step > 1) && (entradaAlmoxarifadoForm.materiaisForm.$invalid || !(entradaAlmoxarifado.entradasItem.length > 0))) && (isCurrentStep(1) || isCurrentStep(2) || isCurrentStep(3))}" | |
62 | 62 | ng-click="setCurrentStep(1)" title="{{$translate.instant('LABEL.MATERIAIS')}}" alt="{{$translate.instant('LABEL.MATERIAIS')}}"> |
63 | 63 | <span class="step">2</span> |
64 | 64 | <a href="#void" class="title" style="text-decoration: none;"><translate>LABEL.MATERIAIS</translate></a> |
65 | 65 | </li> |
66 | 66 | |
67 | - <li ng-class="{'active': isCurrentStep(2), 'complete' : ((isCurrentStep(2) || isCurrentStep(3)) && !entradaAlmoxarifadoForm.documentosForm.$invalid), 'invalid' : ((entradaAlmoxarifadoForm.documentosForm.$submitted || step > 1) && entradaAlmoxarifadoForm.documentosForm.$invalid) && (isCurrentStep(2) || isCurrentStep(3)) && entradaAlmoxarifado.documentos.length < 1}" | |
67 | + <li ng-class="{'active': isCurrentStep(2), 'complete' : ((isCurrentStep(2) || isCurrentStep(3)) && (entradaAlmoxarifado.documentos.length > 0)), 'incomplete' : ((entradaAlmoxarifadoForm.documentosForm.$submitted || step > 2) && !(entradaAlmoxarifado.documentos.length > 0)) && (isCurrentStep(2) || isCurrentStep(3))}" | |
68 | 68 | ng-click="setCurrentStep(2)" title="{{$translate.instant('ALMOXARIFADO.LABEL.DOCUMENTOS')}}" alt="{{$translate.instant('ALMOXARIFADO.LABEL.DOCUMENTOS')}}"> |
69 | 69 | <span class="step">3</span> |
70 | 70 | <a href="#void" class="title" style="text-decoration: none;"><translate>ALMOXARIFADO.LABEL.DOCUMENTOS</translate></a> | ... | ... |
cit-almoxarifado-web/src/main/webapp/html/entradaAlmoxarifado/entradaAlmoxarifadoPg2.html
... | ... | @@ -2,10 +2,10 @@ |
2 | 2 | <div class="page-content"> |
3 | 3 | <fieldset> |
4 | 4 | <legend> |
5 | - <label ng-class="{'has-error' : materiaisForm.$submitted && entradaAlmoxarifado.entradasIten && entradaAlmoxarifado.entradasIten.length < 1}"> | |
5 | + <label ng-class="{'has-error' : materiaisForm.$submitted && entradaAlmoxarifado.entradasItem && entradaAlmoxarifado.entradasItem.length < 1}"> | |
6 | 6 | <translate>ALMOXARIFADO.LABEL.MATERIAIS</translate> |
7 | 7 | <span class='red' ng-if=" edit">*</span> |
8 | - <i ng-show="materiaisForm.$submitted && entradaAlmoxarifado.entradasIten && entradaAlmoxarifado.entradasIten.length < 1" class='fa fa-warning red' | |
8 | + <i ng-show="materiaisForm.$submitted && entradaAlmoxarifado.entradasItem && entradaAlmoxarifado.entradasItem.length < 1" class='fa fa-warning red' | |
9 | 9 | tooltip="{{$translate.instant('ALMOXARIFADO.LABEL.MATERIAIS') + ' ' +$translate.instant('LABEL.CAMPO_OBRIGATORIO')}}" tooltip-placement='top'></i> |
10 | 10 | </label> |
11 | 11 | </legend> |
... | ... | @@ -58,23 +58,27 @@ |
58 | 58 | <thead> |
59 | 59 | <tr> |
60 | 60 | <th width="20px" class="text-center"></th> |
61 | - <th width="10%" class="text-center"><translate>LABEL.ITEM</translate></th> | |
62 | - <th style="width: 25%;" class="text-center"><translate>LABEL.DESCRICAO_MATERIAL</translate></th> | |
61 | + <th width="7%" class="text-center"><translate>LABEL.ITEM</translate></th> | |
62 | + <th style="width: 20%;" class="text-center"><translate>LABEL.DESCRICAO_MATERIAL</translate></th> | |
63 | + <th style="width: 14%;" class="text-center"><translate>ALMOXARIFADO.LABEL.QUANTIDADE</translate></th> | |
63 | 64 | <th style="width: 15%;" class="text-center"><translate>LABEL.UNIDADE_MEDIDA</translate></th> |
64 | - <th style="width: 15%;" class="text-center"><translate>ALMOXARIFADO.LABEL.UNIDADES</translate></th> | |
65 | + <th style="width: 14%;" class="text-center"><translate>ALMOXARIFADO.LABEL.ENTRADA_ESTOQUE</translate></th> | |
65 | 66 | <th style="width: 15%;" class="text-center"><translate>LABEL.VALOR_UNITARIO</translate></th> |
66 | 67 | <th style="width: 15%;" class="text-center"><translate>ALMOXARIFADO.LABEL.SUBTOTAL</translate></th> |
67 | 68 | </tr> |
68 | 69 | </thead> |
69 | 70 | <tbody> |
70 | - <tr ng-hide="entradaAlmoxarifado.entradasIten.length != 0"> | |
71 | - <td colspan="7" class="text-center"><translate>LABEL.TABELA_VAZIA</translate></td> | |
71 | + <tr ng-hide="entradaAlmoxarifado.entradasItem.length != 0"> | |
72 | + <td colspan="8" class="text-center"><translate>LABEL.TABELA_VAZIA</translate></td> | |
72 | 73 | </tr> |
73 | - <tr ng-repeat="entradaItemLista in entradaAlmoxarifado.entradasIten"> | |
74 | - <td class="text-center"><input type="radio" name="entradaItemChecked" ng-value="entradaItemLista" ng-model="$parent.entradaItemSelecionado"/></td> | |
74 | + <tr ng-repeat="entradaItemLista in entradaAlmoxarifado.entradasItem"> | |
75 | + <td class="text-center"> | |
76 | + <input type="checkbox" name="entradaItemChecked" ng-model="entradaItemLista.$checked" ng-click="checkEntradaItem(entradaItemLista); atualizarListaSizeSelectEntradaItem()"/> | |
77 | + </td> | |
75 | 78 | <td class="text-center">{{$index +1}}</td> |
76 | 79 | <td class="text-center">{{ entradaItemLista.material.descricao }}</td> |
77 | - <td class="text-center">{{ entradaItemLista.material.unidadeArmazenamento.descricao }}</td> | |
80 | + <td class="text-center">{{ entradaItemLista.quantidade / entradaItemLista.unidadeMedidaEntrada.quantidadePadrao }}</td> | |
81 | + <td class="text-center">{{ entradaItemLista.unidadeMedidaEntrada.descricao }}</td> | |
78 | 82 | <td class="text-center">{{ entradaItemLista.quantidade }}</td> |
79 | 83 | <td class="text-center">{{ entradaItemLista.valorUnitario | currency:"R$":2}}</td> |
80 | 84 | <td class="text-center">{{ entradaItemLista.valorTotal | currency}}</td> | ... | ... |