Commit 77b98f4c1f3f6f41b081753ffa474e03b06cc8bc

Authored by joyfas.silva
2 parents d23effd2 18389550
Exists in master

Merge branch 'adm-1.15.0' of http://ferramentasgo.centralit.com.br:8080/scm/git/…

…cit-grp-adm-materiais into adm-1.15.0
cit-adm-materiais-api/src/main/java/br/com/centralit/api/service/impl/InicializarAdmMateriaisServiceImpl.java
... ... @@ -79,6 +79,11 @@ public class InicializarAdmMateriaisServiceImpl extends UtilStartup {
79 79 filesMenuFileMaterial.add(new MenuFile(CIT_ADM_MATERIAIS_WEB_ANGULAR_CUSTOM + "repository/MaterialConsumoTipoUnidadeMedidaEntradaRepository.min.js", dominioJS, menuMaterial));
80 80 filesMenuFileMaterial.add(new MenuFile(CIT_ADM_MATERIAIS_WEB_ANGULAR_CUSTOM + "repository/UnidadeMedidaRepository.js", dominioJS, menuMaterial));
81 81 filesMenuFileMaterial.add(new MenuFile(CIT_ADM_MATERIAIS_WEB_ANGULAR_CUSTOM + "repository/UnidadeMedidaRepository.min.js", dominioJS, menuMaterial));
  82 + filesMenuFileMaterial.add(new MenuFile(CIT_ALMOXARIFADO_WEB_ANGULAR_CUSTOM + "repository/MaterialLocalEstoqueRepository.js", dominioJS, menuMaterial));
  83 + filesMenuFileMaterial.add(new MenuFile(CIT_ALMOXARIFADO_WEB_ANGULAR_CUSTOM + "repository/MaterialLocalEstoqueRepository.min.js", dominioJS, menuMaterial));
  84 + filesMenuFileMaterial.add(new MenuFile(CIT_ALMOXARIFADO_WEB_ANGULAR_CUSTOM + "repository/MaterialEnderecoEstoqueRepository.js", dominioJS, menuMaterial));
  85 + filesMenuFileMaterial.add(new MenuFile(CIT_ALMOXARIFADO_WEB_ANGULAR_CUSTOM + "repository/MaterialEnderecoEstoqueRepository.min.js", dominioJS, menuMaterial));
  86 +
82 87 menuMaterial.setIncludes(filesMenuFileMaterial);
83 88 this.menuService.mergeIfNotExist(menuMaterial);
84 89 // Menu Classificação de materiais
... ...
cit-adm-materiais-api/src/main/resources/scripts-bd/postgres/v1.15.0/01-cit-adm-materiais-v1.15.0-postgres.sql
... ... @@ -1456,4 +1456,31 @@ DELETE FROM entradadocumento WHERE entrada_id IS NOT null AND entrada_id NOT IN
1456 1456 DELETE FROM entradadocumento WHERE entrada_id IS NOT null AND entradainativo_id NOT IN (SELECT id FROM entradapatrimonio);
1457 1457 DELETE FROM entrada WHERE id NOT IN (SELECT id FROM entradapatrimonio);
1458 1458  
1459   --- GEOVANE FIM 04/05/2016
1460 1459 \ No newline at end of file
  1460 +-- GEOVANE FIM 04/05/2016
  1461 +
  1462 +-- ERICK INICIO 04/05/2016
  1463 +
  1464 +INSERT INTO menufile (id, datacriacao, dataedicao, version, ativo, caminho, dominiomenufile_id, menu_id)
  1465 +VALUES (NEXTVAL('hibernate_sequence'), LOCALTIMESTAMP, LOCALTIMESTAMP, 0, true, '/cit-almoxarifado-web/assets/js/angular/custom/repository/MaterialEnderecoEstoqueRepository.js',
  1466 + (SELECT id FROM dominio WHERE chave = 'tipoFile' AND codigo = 2), (SELECT id FROM menu WHERE chave = 'USUARIO'));
  1467 +
  1468 +INSERT INTO menufile (id, datacriacao, dataedicao, version, ativo, caminho, dominiomenufile_id, menu_id)
  1469 +VALUES (NEXTVAL('hibernate_sequence'), LOCALTIMESTAMP, LOCALTIMESTAMP, 0, true, '/cit-almoxarifado-web/assets/js/angular/custom/repository/MaterialEnderecoEstoqueRepository.min.js',
  1470 + (SELECT id FROM dominio WHERE chave = 'tipoFile' AND codigo = 2), (SELECT id FROM menu WHERE chave = 'USUARIO'));
  1471 +
  1472 +INSERT INTO menufile (id, datacriacao, dataedicao, version, ativo, caminho, dominiomenufile_id, menu_id)
  1473 +VALUES (NEXTVAL('hibernate_sequence'), LOCALTIMESTAMP, LOCALTIMESTAMP, 0, true, '/cit-almoxarifado-web/assets/js/angular/custom/repository/MaterialLocalEstoqueRepository.js',
  1474 + (SELECT id FROM dominio WHERE chave = 'tipoFile' AND codigo = 2), (SELECT id FROM menu WHERE chave = 'USUARIO'));
  1475 +
  1476 +INSERT INTO menufile (id, datacriacao, dataedicao, version, ativo, caminho, dominiomenufile_id, menu_id)
  1477 +VALUES (NEXTVAL('hibernate_sequence'), LOCALTIMESTAMP, LOCALTIMESTAMP, 0, true, '/cit-almoxarifado-web/assets/js/angular/custom/repository/MaterialLocalEstoqueRepository.min.js',
  1478 + (SELECT id FROM dominio WHERE chave = 'tipoFile' AND codigo = 2), (SELECT id FROM menu WHERE chave = 'USUARIO'));
  1479 +
  1480 +
  1481 +ALTER TABLE alm_me_localestoque ALTER COLUMN unidadeMedidaEntrada_id DROP NOT NULL;
  1482 +ALTER TABLE alm_me_localestoque ADD COLUMN localPrincipal BOOLEAN;
  1483 +
  1484 +
  1485 +ALTER TABLE alm_me_localestoque DROP CONSTRAINT uk_jsrcjmbvm7pnw3ql1hoiyhamj;
  1486 +ALTER TABLE alm_me_localestoque DROP CONSTRAINT uk_qnx0r3sv9yxte5bholpq15k4p;
  1487 +-- ERICK FIM 04/05/2016
1461 1488 \ No newline at end of file
... ...
cit-adm-materiais-web/src/main/java/br/com/centralit/listener/StartupListenerAdmMaterial.java
... ... @@ -239,6 +239,11 @@ public class StartupListenerAdmMaterial extends UtilStartup implements Applicati
239 239 internacionalizacaoList.add(new Internacionalizacao("ADMINISTRACAODEMATERIAIS.MSG.FECHAMENTO_ENTRADAS_INCOMPLETAS", "Existem entradas de bens incompletas neste mês de referência! Por favor concluir as mesmas antes de realizar o fechamento do mês!", dominio, modulo));
240 240 internacionalizacaoList.add(new Internacionalizacao("ADMINISTRACAODEMATERIAIS.MSG.INFO_MSG_FECHAMENTO_MES_NOTIFICA_FIM", "Fechamento do mês de referência em execução. Quando o processo terminar, você será notificado!", dominio, modulo));
241 241 internacionalizacaoList.add(new Internacionalizacao("ADMINISTRACAODEMATERIAIS.MSG.CONFIRMA_ALTERAR_PADRAO", "Já foi definido uma Unidae de medida de entrada como padrão! Deseja Alterar?", dominio, modulo));
  242 +
  243 + internacionalizacaoList.add(new Internacionalizacao("ADMINISTRACAODEMATERIAIS.MSG.REMOVER_LOCAL_ESTOQUE_MATERIAL_PRINCIPAL", "O endereço selecionado para remoção está definido como principal de um almoxarifado. Para remover este endereço de estoque, informe outro endereço de estoque como principal para o almoxarifado.", dominio, modulo));
  244 + internacionalizacaoList.add(new Internacionalizacao("ADMINISTRACAODEMATERIAIS.MSG.EDITA_LOCAL_ESTOQUE_MATERIAL_PRINCIPAL", "Para definir esse endereço de estoque como não sendo principal, primeiramente informe outro endereço de estoque como principal para o almoxarifado.", dominio, modulo));
  245 + internacionalizacaoList.add(new Internacionalizacao("ADMINISTRACAODEMATERIAIS.MSG.LOCAL_SALVA_ESTOQUE_MATERIAL_COMO_PRINCIPAL_PARA_ALMOXARIFADO", "Este endereço de estoque é o principal do almoxarifado ", dominio, modulo));
  246 + internacionalizacaoList.add(new Internacionalizacao("ADMINISTRACAODEMATERIAIS.MSG.LOCAL_ESTOQUE_JA_VINCULADO_MATERIAL", "Este endereço de estoque já possui vínculo ao material.", dominio, modulo));
242 247 }
243 248  
244 249 }
245 250 \ No newline at end of file
... ...
cit-adm-materiais-web/src/main/webapp/assets/js/angular/custom/controller/MaterialController.js
1 1 'use strict';
2 2 citApp.controller('MaterialController', ['$scope', 'MaterialRepository', 'ClassificacaoMaterialRepository', 'CaracteristicaRepository', 'FileUploader', 'MaterialImagemRepository',
3   - '$timeout', 'MaterialCaracteristicaRepository', 'MaterialPermanenteConsumoRepository', 'ContaContabilRepository', 'DominioRepository', '$translate', '$filter', 'MaterialConsumoRepository', 'MaterialConsumoTipoUnidadeMedidaEntradaRepository', 'MaterialPermanenteRepository', 'UnidadeMedidaRepository',
  3 + '$timeout', 'MaterialCaracteristicaRepository', 'MaterialPermanenteConsumoRepository', 'ContaContabilRepository', 'DominioRepository', '$translate', '$filter', 'MaterialConsumoRepository', 'MaterialConsumoTipoUnidadeMedidaEntradaRepository', 'MaterialPermanenteRepository', 'UnidadeMedidaRepository', '$injector',
4 4 function MaterialController($scope, MaterialRepository, ClassificacaoMaterialRepository, CaracteristicaRepository, FileUploader, MaterialImagemRepository,
5   - $timeout, MaterialCaracteristicaRepository, MaterialPermanenteConsumoRepository, ContaContabilRepository, DominioRepository, $translate, $filter, MaterialConsumoRepository, MaterialConsumoTipoUnidadeMedidaEntradaRepository, MaterialPermanenteRepository, UnidadeMedidaRepository) {
  5 + $timeout, MaterialCaracteristicaRepository, MaterialPermanenteConsumoRepository, ContaContabilRepository, DominioRepository, $translate, $filter, MaterialConsumoRepository, MaterialConsumoTipoUnidadeMedidaEntradaRepository, MaterialPermanenteRepository, UnidadeMedidaRepository, $injector) {
6 6  
7 7 // CONSTANTES DOMINIO
8 8 var CODIGO_TIPO_CLASSIFICACAO_DETALHE = 4;
... ... @@ -58,6 +58,7 @@ citApp.controller('MaterialController', ['$scope', 'MaterialRepository', 'Classi
58 58  
59 59 configurarDadosClassificacaoMaterial();
60 60 verificaMaterialConsumoSetGenerico();
  61 + $scope.verificaAlmoxarifadoAtivo();
61 62 $scope.setLoading(false);
62 63 });
63 64 };
... ... @@ -688,5 +689,132 @@ citApp.controller('MaterialController', ['$scope', 'MaterialRepository', 'Classi
688 689 $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_ITEM_EXCLUIR'));
689 690 }
690 691 };
691   -
  692 +
  693 + $scope.verificaAlmoxarifadoAtivo = function(){
  694 + $scope.almoxarifadoAtivo = $scope.isModuloAtivo("/cit-almoxarifado-web");
  695 + if($scope.almoxarifadoAtivo){
  696 + $scope.MaterialLocalEstoqueRepository = $injector.get(["MaterialLocalEstoqueRepository"]);
  697 + $scope.EstruturaOrganizacionalAlmoxarifadoRepository = $injector.get(["EstruturaOrganizacionalAlmoxarifadoRepository"]);
  698 + $scope.EnderecoEstoqueRepository = $injector.get(["EnderecoEstoqueRepository"]);
  699 +
  700 + $scope.EstruturaOrganizacionalAlmoxarifadoRepository.getAlmoxarifadoPadrao($scope.usuarioLogado.organizacao.id).then(function(result){
  701 + $scope.almoxarifadoTemp = result.originalElement.estruturaOrganizacional;
  702 + });
  703 + if($scope.material && $scope.material.id){
  704 + $scope.listaLocaisEstoqueMaterial();
  705 + }
  706 + $scope.editEnderecoEstoque = false;
  707 + }
  708 + }
  709 +
  710 +
  711 + $scope.adicionarEnderecoEstoque = function(){
  712 + $scope.$openModal('modal-material-endereco-estoque.html', 'lg');
  713 + };
  714 +
  715 + $scope.editarEnderecoEstoque = function(){
  716 + if(!$scope.matEndEstoqueCheck){
  717 + $scope.showAlert("warning", $translate.instant('LABEL.SELECIONE_UM_ITEM'));
  718 + }else{
  719 + $scope.editEnderecoEstoque = true;
  720 + $scope.materialLocalEstoque = $scope.matEndEstoqueCheck;
  721 + $scope.$openModal('modal-material-endereco-estoque.html', 'lg');
  722 + }
  723 + };
  724 +
  725 + $scope.removerEnderecoEstoque = function(){
  726 + if(!$scope.matEndEstoqueCheck){
  727 + $scope.showAlert("warning", $translate.instant('LABEL.SELECIONE_UM_ITEM'));
  728 + }else{
  729 + $scope.$openModalConfirm({message: $translate.instant('LABEL.CONFIRMA_EXCLUSAO'), callback: function() {
  730 + $scope.setLoading(true);
  731 + $scope.MaterialLocalEstoqueRepository.buscarLocaisEstoquePorIdMaterialIdAlmoxarifado($scope.material.id, $scope.matEndEstoqueCheck.endereco.estoque.almoxarifado.id).then(function(result) {
  732 + if(result && result.length > 1){
  733 + if($scope.matEndEstoqueCheck.localPrincipal){
  734 + $scope.showAlert("warning", $translate.instant('ADMINISTRACAODEMATERIAIS.MSG.REMOVER_LOCAL_ESTOQUE_MATERIAL_PRINCIPAL'));
  735 + $scope.setLoading(false);
  736 + $scope.$modalConfirmInstance.dismiss('cancel');
  737 + return;
  738 + }
  739 + }
  740 + $scope.MaterialLocalEstoqueRepository.remove($scope.matEndEstoqueCheck).then(function(result) {
  741 + $scope.listaLocaisEstoqueMaterial();
  742 + $scope.setLoading(false);
  743 + });
  744 + $scope.$modalConfirmInstance.dismiss('cancel');
  745 + });
  746 + }
  747 + });
  748 + }
  749 + };
  750 +
  751 + $scope.checkMatEndEstoque = function(materialLocalEstoque){
  752 + $scope.matEndEstoqueCheck = materialLocalEstoque.originalElement;
  753 + };
  754 +
  755 + $scope.findAutoCompleteAlmoxarifado = function(value){
  756 + return $scope.EstruturaOrganizacionalAlmoxarifadoRepository.listarEstruturasOrganizacionaisAlmoxarifadoPorOrganizacao(value, $scope.usuarioLogado.organizacao.id).then(function(result) {
  757 + return result;
  758 + });
  759 + };
  760 +
  761 + $scope.findAutoCompleteEndereco = function(value, almoxarifado){
  762 + var idAlmoxarifado = 0;
  763 + if(almoxarifado){
  764 + idAlmoxarifado = almoxarifado.id;
  765 + }
  766 + return $scope.EnderecoEstoqueRepository.listarEnderecosEstoque(value, idAlmoxarifado).then(function(result) {
  767 + return result;
  768 + });
  769 + };
  770 +
  771 + $scope.salvarMaterialEnderecoEstoque = function(materialLocalEstoque){
  772 + $scope.setLoading(true);
  773 + if(!materialLocalEstoque.materialEstoque){
  774 + materialLocalEstoque.materialEstoque = {material : $scope.material};
  775 + }
  776 + materialLocalEstoque.endereco.estoque = {almoxarifado : $scope.almoxarifadoTemp};
  777 + $scope.MaterialLocalEstoqueRepository.save(materialLocalEstoque).then(function(result) {
  778 + if( result.originalElement.localPrincipal){
  779 + $scope.showAlert("warning", $translate.instant('ADMINISTRACAODEMATERIAIS.MSG.LOCAL_SALVA_ESTOQUE_MATERIAL_COMO_PRINCIPAL_PARA_ALMOXARIFADO') + $scope.almoxarifadoTemp.codigoENome);
  780 + }
  781 + $scope.$modalInstance.dismiss('cancel');
  782 + $scope.listaLocaisEstoqueMaterial();
  783 + $scope.editEnderecoEstoque = false;
  784 + $scope.setLoading(false);
  785 + });
  786 + };
  787 +
  788 + $scope.listaLocaisEstoqueMaterial = function(){
  789 + $scope.setLoading(true);
  790 + $scope.listaMaterialEnderecoEstoque = [];
  791 + $scope.MaterialLocalEstoqueRepository.listarMaterialEstoquePorMaterial($scope.material.id).then(function(result) {
  792 + $scope.listaMaterialEnderecoEstoque = result;
  793 + $scope.matEndEstoqueCheck = null;
  794 + $scope.setLoading(false);
  795 + });
  796 + };
  797 +
  798 + $scope.bloquearEnderecoEstoque = function(){
  799 + if(!$scope.matEndEstoqueCheck){
  800 + $scope.showAlert("warning", $translate.instant('LABEL.SELECIONE_UM_ITEM'));
  801 + }else{
  802 + $scope.matEndEstoqueCheck.dataBloqueio = new Date();
  803 + $scope.MaterialLocalEstoqueRepository.save($scope.matEndEstoqueCheck).then(function(result) {
  804 + $scope.listaLocaisEstoqueMaterial();
  805 + });
  806 + }
  807 + };
  808 +
  809 + $scope.desbloquearEnderecoEstoque = function(){
  810 + if(!$scope.matEndEstoqueCheck){
  811 + $scope.showAlert("warning", $translate.instant('LABEL.SELECIONE_UM_ITEM'));
  812 + }else{
  813 + $scope.matEndEstoqueCheck.dataBloqueio = null;
  814 + $scope.MaterialLocalEstoqueRepository.save($scope.matEndEstoqueCheck).then(function(result) {
  815 + $scope.listaLocaisEstoqueMaterial();
  816 + });
  817 + }
  818 + };
  819 +
692 820 }]);
693 821 \ No newline at end of file
... ...
cit-adm-materiais-web/src/main/webapp/html/material/materialEdit.html
... ... @@ -59,6 +59,13 @@
59 59 <div class="row">
60 60 <div class="col-sm-12">
61 61  
  62 + <div class="row margin-top" ng-show="material.id && material.dominioTipoMaterial.codigo == 1 && almoxarifadoAtivo">
  63 + <div class="col-sm-12">
  64 + <div ng-include src="'/cit-adm-materiais-web/html/material/materialEnderecoEstoque.html'" />
  65 + </div>
  66 + </div>
  67 +
  68 +
62 69 <div class="row margin-top" ng-show="material.dominioTipoMaterial.codigo == 1">
63 70 <div class="col-sm-12">
64 71 <div ng-include src="'/cit-adm-materiais-web/html/material/materialTipoUnidadeMedidaEntrada.html'" />
... ...
cit-adm-materiais-web/src/main/webapp/html/material/materialEnderecoEstoque.html 0 → 100644
... ... @@ -0,0 +1,148 @@
  1 + <div class="widget-box margin-bottom">
  2 + <div class="widget-header">
  3 + <h4 class="widget-title">
  4 + <translate>ALMOXARIFADO.LABEL.ENDERECO_ESTOQUE</translate> <translate>LABEL.DO</translate> <translate>LABEL.MATERIAL</translate>
  5 + </h4>
  6 + <div class="widget-toolbar">
  7 + <a href="#void" ng-click="widgetEnderecoEstoqueMaterialIsCollapsed = !widgetEnderecoEstoqueMaterialIsCollapsed">
  8 + <i class="fa" ng-class="{'fa-chevron-up': !widgetEnderecoEstoqueMaterialIsCollapsed, 'fa-chevron-down': widgetEnderecoEstoqueMaterialIsCollapsed}"></i>
  9 + </a>
  10 + </div>
  11 + </div>
  12 + <div collapse="widgetEnderecoEstoqueMaterialIsCollapsed" class="widget-body">
  13 + <div class="widget-main clearfix">
  14 + <div class="row">
  15 + <div class="col-sm-12">
  16 + <div class="panel panel-default">
  17 + <div class="panel-heading clearfix">
  18 + <button title="{{$translate.instant('LABEL.ADICIONAR')}}" alt="{{$translate.instant('LABEL.ADICIONAR')}}" class="btn btn-clear" ng-click="adicionarEnderecoEstoque()" type="button">
  19 + <i class="fa fa-plus-circle yellow-dark"></i>
  20 + <translate>LABEL.ADICIONAR</translate> </a>
  21 + </button>
  22 +
  23 + <button title="{{$translate.instant('LABEL.EDITAR')}}" alt="{{$translate.instant('LABEL.EDITAR')}}" class="btn btn-clear" type="button"
  24 + ng-click="editarEnderecoEstoque()">
  25 + <i class="fa fa-pencil blue"></i>
  26 + <translate>LABEL.EDITAR</translate>
  27 + </button>
  28 +
  29 + <button title="{{$translate.instant('LABEL.REMOVER')}}" alt="{{$translate.instant('LABEL.REMOVER')}}" class="btn btn-clear" ng-click="removerEnderecoEstoque()" type="button">
  30 + <i class="fa fa-close red"></i>
  31 + <translate>LABEL.REMOVER</translate> </a>
  32 + </button>
  33 +
  34 + <button title="{{$translate.instant('PORTAL.LABEL.BLOQUEAR')}}" alt="{{$translate.instant('PORTAL.LABEL.BLOQUEAR')}}" class="btn btn-clear" ng-show="!matEndEstoqueCheck.dataBloqueio" ng-click="bloquearEnderecoEstoque()" type="button">
  35 + <i class="fa fa-lock"></i>
  36 + <translate>PORTAL.LABEL.BLOQUEAR</translate> </a>
  37 + </button>
  38 +
  39 + <button type="button" title="{{$translate.instant('LABEL.DESBLOQUEAR')}}" alt="{{$translate.instant('LABEL.DESBLOQUEAR')}}" class="btn btn-clear" ng-show="matEndEstoqueCheck.dataBloqueio" ng-click="desbloquearEnderecoEstoque();">
  40 + <i class="fa fa-unlock grey"></i> <translate>LABEL.DESBLOQUEAR</translate>
  41 + </button>
  42 +
  43 + </div>
  44 +
  45 + <table class="table table-bordered table-striped">
  46 + <thead>
  47 + <tr>
  48 + <th class="text-center" style="width: 5%;"></th>
  49 +
  50 + <th style="width: 10%;">
  51 + <translate>LABEL.CODIGO</translate>
  52 + </th>
  53 + <th style="width: 25%;">
  54 + <translate>LABEL.DESCRICAO</translate>
  55 + </th>
  56 + <th style="width: 25%;">
  57 + <translate>ALMOXARIFADO.LABEL.ALMOXARIFADO</translate>
  58 + </th>
  59 + <th style="width: 15%;">
  60 + <translate>LABEL.CAPACIDADE</translate>
  61 + </th>
  62 + <th style="width: 10%;">
  63 + <translate>LABEL.PRINCIPAL</translate>
  64 + </th>
  65 + <th style="width: 15%;">
  66 + <translate>LABEL.DATA_BLOQUEIO</translate>
  67 + </th>
  68 + </tr>
  69 + </thead>
  70 + <tbody>
  71 + <tr ng-repeat="matEndEstoque in listaMaterialEnderecoEstoque">
  72 + <td class="text-center">
  73 + <input type="radio" name="matEndEstoqueSelect" ng-checked="matEndEstoque.$checked" ng-click="checkMatEndEstoque(matEndEstoque)" ng-disabled="!edit"/>
  74 + </td>
  75 + <td>
  76 + {{matEndEstoque.endereco.codigo}}
  77 + </td>
  78 + <td>
  79 + {{matEndEstoque.endereco.descricao}}
  80 + </td>
  81 + <td>
  82 + {{matEndEstoque.endereco.estoque.almoxarifado.codigoENome}}
  83 + </td>
  84 + <td>
  85 + {{matEndEstoque.quantidade}}
  86 + </td>
  87 + <td>
  88 + {{matEndEstoque.localPrincipal | booleanSimNao}}
  89 + </td>
  90 + <td>
  91 + {{matEndEstoque.dataBloqueio | date : 'dd/MM/yyyy'}}
  92 + </td>
  93 + </tr>
  94 + </tbody>
  95 + </table>
  96 +
  97 + </div>
  98 +
  99 + </div>
  100 + </div><!-- .row -->
  101 + </div><!-- .widget-main -->
  102 + </div><!-- .widget-body -->
  103 +</div><!-- .widget-box -->
  104 +
  105 +<script type="text/ng-template" id="modal-material-endereco-estoque.html">
  106 + <form name="formDialogMaterialEnderecoEstoque" novalidate >
  107 + <div class="modal-header">
  108 + <button title="{{$translate.instant('LABEL.SALVAR')}}" alt="{{$translate.instant('LABEL.SALVAR')}}" ng-click="salvarMaterialEnderecoEstoque(materialLocalEstoque)" class="btn btn-clear" type="button">
  109 + <i class="fa fa-save green"></i>
  110 + <translate>LABEL.SALVAR</translate>
  111 + </button>
  112 +
  113 + <button title="{{$translate.instant('LABEL.CANCELAR')}}" alt="{{$translate.instant('LABEL.CANCELAR')}}" ng-click="$dismiss('cancel');" class="btn btn-clear" type="button">
  114 + <i class="fa fa-times red"></i>
  115 + <translate>LABEL.CANCELAR</translate>
  116 + </button>
  117 + </div>
  118 +
  119 + <div class="modal-body">
  120 + <div class="row">
  121 + <div class="col-md-12">
  122 + <auto-complete ng-id="almoxarifadoTemp" ng-label="ALMOXARIFADO.LABEL.ALMOXARIFADO" ng-model="almoxarifadoTemp" form="formDialogMaterialEnderecoEstoque" ng-obrigatorio="false" ng-find="findAutoCompleteAlmoxarifado(value)" ng-item="item.nome" />
  123 + </div>
  124 + </div>
  125 + <div class="row">
  126 + <div class="col-md-7">
  127 + <auto-complete ng-id="materialLocalEstoque.endereco" ng-label="ALMOXARIFADO.LABEL.ENDERECO_ESTOQUE" ng-model="materialLocalEstoque.endereco" form="formDialogMaterialEnderecoEstoque" ng-obrigatorio="true" ng-find="findAutoCompleteEndereco(value, almoxarifadoTemp)" ng-item="item.descricao" />
  128 + </div>
  129 + <div class="col-md-5">
  130 + <label-input-number ng-max-number="99999" ng-min-number="0" ng-type="text" ng-id="materialLocalEstoque.quantidade" ng-obrigatorio="true" form="formDialogMaterialEnderecoEstoque" ng-label="LABEL.CAPACIDADE" ng-model="materialLocalEstoque.quantidade" ng-custom-maxlength="5" />
  131 + </div>
  132 + </div>
  133 + <div class="row">
  134 + <div class="col-md-12">
  135 + <label-input-checkbox ng-model="materialLocalEstoque.localPrincipal" ng-label="LABEL.PRINCIPAL" form="formDialogMaterialEnderecoEstoque"/>
  136 + </div>
  137 + </div>
  138 + </form>
  139 +</script>
  140 +
  141 +
  142 +
  143 +
  144 +
  145 +
  146 +
  147 +
  148 +
... ...