Commit 96f7a50ced0660f31ef71eb449badf75694b0072
1 parent
514d1bd9
Exists in
master
{Redmine Atendimento #4790} compo obrigatório
Showing
3 changed files
with
106 additions
and
37 deletions
Show diff stats
cit-adm-materiais-api/src/main/java/br/com/centralit/api/model/UnidadeMedida.java
... | ... | @@ -9,6 +9,7 @@ import javax.persistence.GeneratedValue; |
9 | 9 | import javax.persistence.GenerationType; |
10 | 10 | import javax.persistence.Id; |
11 | 11 | import javax.persistence.ManyToOne; |
12 | +import javax.persistence.Transient; | |
12 | 13 | |
13 | 14 | import org.hibernate.envers.Audited; |
14 | 15 | |
... | ... | @@ -58,6 +59,9 @@ public class UnidadeMedida extends PersistentObject { |
58 | 59 | /** Atributo serialVersionUID. */ |
59 | 60 | private static final long serialVersionUID = -7573208249312737668L; |
60 | 61 | |
62 | + private final Long TIPO_NUMERICO_INTEIRO = new Long (1l); | |
63 | + private final Long TIPO_NUMERICO_DECIMAL = new Long (2l); | |
64 | + | |
61 | 65 | /** Atributo id. */ |
62 | 66 | @Id |
63 | 67 | @GeneratedValue(strategy = GenerationType.AUTO) |
... | ... | @@ -94,6 +98,14 @@ public class UnidadeMedida extends PersistentObject { |
94 | 98 | @JsonView({ ViewsAdmMateriais.UnidadeMedidaListView.class }) |
95 | 99 | private Boolean isUnidadePadrao; |
96 | 100 | |
101 | + @Transient | |
102 | + @JsonView({ ViewsAdmMateriais.UnidadeMedidaListView.class }) | |
103 | + private BigDecimal quantidadeInteiro; | |
104 | + | |
105 | + @Transient | |
106 | + @JsonView({ ViewsAdmMateriais.UnidadeMedidaListView.class }) | |
107 | + private BigDecimal quantidadeDecimal; | |
108 | + | |
97 | 109 | /** |
98 | 110 | * Responsável pela criação de novas instâncias desta classe. |
99 | 111 | */ |
... | ... | @@ -227,6 +239,26 @@ public class UnidadeMedida extends PersistentObject { |
227 | 239 | this.quantidadePadrao = quantidadePadrao; |
228 | 240 | } |
229 | 241 | |
242 | + public BigDecimal getQuantidadeInteiro() { | |
243 | + return quantidadePadrao; | |
244 | + } | |
245 | + | |
246 | + public void setQuantidadeInteiro(BigDecimal quantidadeInteiro) { | |
247 | + if(this.tipoNumerico != null && this.tipoNumerico.getCodigo().equals(TIPO_NUMERICO_INTEIRO)){ | |
248 | + this.quantidadePadrao = quantidadeInteiro; | |
249 | + } | |
250 | + } | |
251 | + | |
252 | + public BigDecimal getQuantidadeDecimal() { | |
253 | + return quantidadePadrao; | |
254 | + } | |
255 | + | |
256 | + public void setQuantidadeDecimal(BigDecimal quantidadeDecimal) { | |
257 | + if(this.tipoNumerico != null && this.tipoNumerico.getCodigo().equals(TIPO_NUMERICO_DECIMAL)){ | |
258 | + this.quantidadePadrao = quantidadeDecimal; | |
259 | + } | |
260 | + } | |
261 | + | |
230 | 262 | public Boolean getIsUnidadePadrao() { |
231 | 263 | return isUnidadePadrao; |
232 | 264 | } | ... | ... |
cit-adm-materiais-web/src/main/webapp/assets/js/angular/custom/controller/UnidadeMedidaController.js
... | ... | @@ -3,7 +3,10 @@ |
3 | 3 | citApp.controller('UnidadeMedidaController', ['$scope', 'UnidadeMedidaRepository', '$translate', '$timeout', 'DominioRepository', |
4 | 4 | function UnidadeMedidaController($scope, UnidadeMedidaRepository, $translate, $timeout, DominioRepository) { |
5 | 5 | |
6 | - $scope.unidadeMedida = {}; | |
6 | + $scope.unidadeMedida = { | |
7 | + showDecimal: false, | |
8 | + showInteiro: false | |
9 | + }; | |
7 | 10 | |
8 | 11 | // Limpa formulário para novo cadastro |
9 | 12 | $scope.resetForm = function() { |
... | ... | @@ -79,4 +82,33 @@ citApp.controller('UnidadeMedidaController', ['$scope', 'UnidadeMedidaRepository |
79 | 82 | $scope.tipoNumericoList = result; |
80 | 83 | }); |
81 | 84 | |
82 | -}]); | |
85 | + $scope.atualizaCampoQTDEPadrao = function(){ | |
86 | + $scope.unidadeMedida.quantidadePadrao; | |
87 | + }; | |
88 | + | |
89 | + $scope.alternaTipoNumerico = function(){ | |
90 | + $timeout(function(){ | |
91 | + if($scope.unidadeMedida.tipoNumerico){ | |
92 | + switch($scope.unidadeMedida.tipoNumerico.codigo){ | |
93 | + case 1: | |
94 | + $scope.showInteiro= true; | |
95 | + $scope.showDecimal = false; | |
96 | + $scope.unidadeMedida.quantidadeDecimal = ''; | |
97 | + break; | |
98 | + | |
99 | + case 2: | |
100 | + $scope.showDecimal = true; | |
101 | + $scope.showInteiro= false; | |
102 | + $scope.unidadeMedida.quantidadeInteiro = ''; | |
103 | + break; | |
104 | + | |
105 | + } | |
106 | + }else{ | |
107 | + $scope.showDecimal = false; | |
108 | + $scope.showInteiro= false; | |
109 | + $scope.unidadeMedida.quantidadeInteiro = ''; | |
110 | + $scope.unidadeMedida.quantidadeDecimal = ''; | |
111 | + } | |
112 | + }); | |
113 | + }; | |
114 | +}]); | |
83 | 115 | \ No newline at end of file | ... | ... |
cit-adm-materiais-web/src/main/webapp/html/unidadeMedida/unidadeMedidaEdit.html
... | ... | @@ -2,26 +2,26 @@ |
2 | 2 | <div class="bar-buttons-action fixed"> |
3 | 3 | <div class="row"> |
4 | 4 | <div class="col-sm-8 text-left"> |
5 | - | |
5 | + | |
6 | 6 | <button class="btn btn-clear" ng-click="saveOrUpdate()" ng-show="edit"> |
7 | 7 | <i class="fa fa-save green"></i> <translate>LABEL.SALVAR</translate> |
8 | 8 | </button> |
9 | - | |
9 | + | |
10 | 10 | <button class="btn btn-clear" ng-click="limparUnidadeMedida()" ng-show="unidadeMedida.id === undefined"> |
11 | 11 | <i class="fa fa-eraser yellow-dark"></i> <translate>LABEL.LIMPAR</translate> |
12 | 12 | </button> |
13 | - | |
13 | + | |
14 | 14 | <button class="btn btn-clear" ng-show="!edit" ng-click="edit = true"> |
15 | 15 | <i class="fa fa-pencil blue"></i> |
16 | 16 | <translate>LABEL.EDITAR</translate> |
17 | 17 | </button> |
18 | - | |
18 | + | |
19 | 19 | <button class="btn btn-clear" ng-click="remove(unidadeMedida);" ng-show="unidadeMedida.id !== undefined"> |
20 | 20 | <i class="fa fa-times red"></i> <translate>LABEL.REMOVER</translate> |
21 | 21 | </button> |
22 | - | |
22 | + | |
23 | 23 | <bloquear-desbloquear ng-model="unidadeMedida" ng-repository="UnidadeMedidaRepository" ng-edit="edit" form="unidadeMedidaForm"></bloquear-desbloquear> |
24 | - | |
24 | + | |
25 | 25 | <button class="btn btn-clear" ng-click="$showPageSearchWorkspace(workspace); atualizaPaginaPesquisa();"> |
26 | 26 | <i class="fa fa-search"></i> <translate>LABEL.PESQUISAR</translate> |
27 | 27 | </button> |
... | ... | @@ -29,17 +29,17 @@ |
29 | 29 | </div><!-- .col --> |
30 | 30 | |
31 | 31 | <div class="col-sm-4 text-right"> |
32 | - | |
32 | + | |
33 | 33 | <favorito/> |
34 | - | |
34 | + | |
35 | 35 | <help-button workspace="workspace" /> |
36 | - | |
36 | + | |
37 | 37 | </div><!-- .col --> |
38 | 38 | </div><!-- .row --> |
39 | 39 | </div><!-- .bar-buttons-action --> |
40 | - | |
40 | + | |
41 | 41 | <breadcrumb ng-workspace="workspace"></breadcrumb> |
42 | - | |
42 | + | |
43 | 43 | <form name="unidadeMedidaForm"> |
44 | 44 | <p> |
45 | 45 | <small>( <span class="red">*</span> ) <translate>LABEL.CAMPOS_OBRIGATORIOS</translate></small> |
... | ... | @@ -48,44 +48,49 @@ |
48 | 48 | <fieldset> |
49 | 49 | |
50 | 50 | <legend><translate>ADMINISTRACAODEMATERIAIS.LABEL.DADOS_UNIDADE_MEDIDA</translate></legend> |
51 | - | |
51 | + | |
52 | 52 | <div class="row"> |
53 | - | |
53 | + | |
54 | 54 | <div class="col-md-6"> |
55 | - | |
55 | + | |
56 | 56 | <label-input-number ng-id="unidadeMedida.codigo" ng-label="LABEL.CODIGO" ng-obrigatorio="true" ng-disabled="!edit" form="unidadeMedidaForm" ng-model="unidadeMedida.codigo" ng-custom-maxlength="5"/> |
57 | - | |
57 | + | |
58 | 58 | </div> |
59 | - | |
59 | + | |
60 | 60 | <div class="col-md-6"> |
61 | - | |
61 | + | |
62 | 62 | <label-input ng-id="unidadeMedida.descricao" ng-label="LABEL.DESCRICAO" ng-obrigatorio="true" ng-disabled="!edit" form="unidadeMedidaForm" ng-model="unidadeMedida.descricao" ng-custom-maxlength="100" /> |
63 | - | |
63 | + | |
64 | 64 | </div> |
65 | - </div> | |
66 | - <div class="row"> | |
65 | + </div> | |
66 | + <div class="row"> | |
67 | 67 | <div class="col-md-4"> |
68 | - | |
69 | - <label-select ng-id="unidadeMedida.tipoNumerico" ng-label="ADMINISTRACAODEMATERIAIS.LABEL.TIPO_NUMERICO" ng-model="unidadeMedida.tipoNumerico" form="unidadeMedidaForm" ng-obrigatorio="true" ng-disabled="!edit" ng-custom-options="dominio.originalElement as dominio.descricao for dominio" track-by="track by dominio.id" ng-list="tipoNumericoList" /> | |
70 | - | |
68 | + | |
69 | + <label-select ng-id="unidadeMedida.tipoNumerico" ng-custom-change="alternaTipoNumerico()" ng-label="ADMINISTRACAODEMATERIAIS.LABEL.TIPO_NUMERICO" ng-model="unidadeMedida.tipoNumerico" form="unidadeMedidaForm" ng-obrigatorio="true" ng-disabled="!edit" ng-custom-options="dominio.originalElement as dominio.descricao for dominio" track-by="track by dominio.id" ng-list="tipoNumericoList" /> | |
70 | + | |
71 | 71 | </div> |
72 | - | |
72 | + | |
73 | 73 | <div class="col-md-4"> |
74 | - | |
74 | + | |
75 | 75 | <label-input ng-id="unidadeMedida.sigla" ng-label="LABEL.SIGLA" ng-model="unidadeMedida.sigla" form="unidadeMedidaForm" ng-obrigatorio="true" ng-custom-maxlength="3" ng-type="text" ng-disabled="!edit" /> |
76 | - | |
77 | 76 | </div> |
78 | - | |
79 | - <div class="col-md-4"> | |
80 | - | |
81 | - <i tooltip="{{$translate.instant('MSG.ALTERACAO_QUANTIDADE_PADRAO')}}"> | |
82 | - <label-input-number ng-id="unidadeMedida.quantidadePadrao" ng-label="ADMINISTRACAODEMATERIAIS.LABEL.QUANTIDADE_PADRAO" ng-model="unidadeMedida.quantidadePadrao" form="unidadeMedidaForm" ng-obrigatorio="false" ng-custom-maxlength="3" ng-type="text" ng-disabled="unidadeMedida.isUnidadePadrao || !edit"/> | |
83 | - </i> | |
77 | + | |
78 | + <div class="col-md-4" ng-show="showInteiro"> | |
79 | + <label-input-number ng-id="unidadeMedida.quantidadeInteiro" ng-model="unidadeMedida.quantidadeInteiro" ng-custom-maxlength="4" ng-type="text" ng-label="ADMINISTRACAODEMATERIAIS.LABEL.QUANTIDADE_PADRAO" ng-obrigatorio="showInteiro" form="unidadeMedidaForm" ng-disabled="unidadeMedida.isUnidadePadrao || !edit"/> | |
80 | + </div> | |
81 | + <div class="col-md-4" ng-show="showDecimal"> | |
82 | + <label-input-decimal-custom ng-id="unidadeMedida.quantidadeDecimal" ng-model="unidadeMedida.quantidadeDecimal" ng-label="ADMINISTRACAODEMATERIAIS.LABEL.QUANTIDADE_PADRAO" ng-obrigatorio="showDecimal" form="unidadeMedidaForm" ng-disabled="unidadeMedida.isUnidadePadrao || !edit"/> | |
83 | +<!-- <div class="control-group" ng-class="{'has-error': quantidadeDecimalObrigatorio}"> --> | |
84 | +<!-- <label for='unidadeMedida.quantidadeDecimal' class='control-label ng-scope'> --> | |
85 | +<!-- <translate>ADMINISTRACAODEMATERIAIS.LABEL.QUANTIDADE_PADRAO</translate> --> | |
86 | +<!-- <span class='red' ng-if='edit && !evento.id'>*</span> --> | |
87 | +<!-- <i ng-if='edit && !evento.id' ng-show='quantidadeDecimalObrigatorio}' class='fa fa-warning red' tooltip-placement='top'></i> --> | |
88 | +<!-- </label> --> | |
89 | +<!-- </div> --> | |
90 | +<!-- <input type="number" g-id="unidadeMedida.quantidadeDecimal" ng-model="unidadeMedida.quantidadeDecimal" ng-pattern="/^[0-9]+(\.[0-9]{1,2})?$/" ng-obrigatorio="showDecimal"/> --> | |
84 | 91 | </div> |
85 | - | |
86 | 92 | </div> |
87 | - | |
88 | - </fieldset> | |
93 | + </fieldset> | |
89 | 94 | </form> |
90 | 95 | </div><!-- .page-content --> |
91 | 96 | ... | ... |