Commit 0671222be51edc22eb21265f39de42d4d9ebf42c

Authored by geovane.filho
1 parent 733cd7b6
Exists in master

Redmine #4783 Correções de script e iniciando reestruturação da modal para adicionar materiais.

cit-almoxarifado-web/src/main/java/br/com/centralit/listener/StartupListenerAlmoxarifado.java
... ... @@ -253,7 +253,7 @@ public class StartupListenerAlmoxarifado extends UtilStartup implements Applicat
253 253 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.DATA_FIM_REQUISICAO", "Data final requisição", dominio, modulo));
254 254 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.DATA_INICIAL_REQUISICAO", "Data inicial requisição", dominio, modulo));
255 255 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.DESTINO", "Destino", dominio, modulo));
256   - internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.ENTRADA_ESTOQUE", "Ent. no estoque", dominio, modulo));
  256 + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.ENTRADA_ESTOQUE", "Ent. no estoque (Qnt.)", dominio, modulo));
257 257 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.ESTRUTURA_ORGANIZACAO", "Estrutura Organizacional - Órgão", dominio, modulo));
258 258 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.LIMITE_ESTOQUE", "Limite de estoque", dominio, modulo));
259 259 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.LOCAL_ESTOQUE", "Local estoque", dominio, modulo));
... ... @@ -293,17 +293,19 @@ public class StartupListenerAlmoxarifado extends UtilStartup implements Applicat
293 293 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.RESTOMEDIO", "Resto médio", dominio, modulo));
294 294  
295 295 //Endereco Estoque
296   - internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.ENDERECO_ESTOQUE", "Endereço de Estoque", dominio, modulo));
297   - internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.ENDERECO_SUPERIOR", "Endereço Superior", dominio, modulo));
298   - internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.ENDERECO_SUPERIOR_DESCRICAO", "Desc. Endereço Superior", dominio, modulo));
299   - internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.ACOMODA_MATERIAL", "Acomoda Materiais", dominio, modulo));
  296 + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.ENDERECO_ESTOQUE", "Endereço de estoque", dominio, modulo));
  297 + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.ENDERECO_SUPERIOR", "Endereço superior", dominio, modulo));
  298 + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.ENDERECO_SUPERIOR_DESCRICAO", "Desc. endereço superior", dominio, modulo));
  299 + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.ACOMODA_MATERIAL", "Acomoda materiais", dominio, modulo));
300 300 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.ENDERECO_ESTOQUE_TODOS_MATERIAL", "Adicionar endereço para todos os materiais", dominio, modulo));
301 301 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.MATERAIS_VINCULADOS", "Existe materiais vinculados", dominio, modulo));
302   - internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.ENDERECO_ESTOQUE_VINCULADO_SUPERIOR", "Endereço de Estoque vinculado ao endereço superior", dominio, modulo));
  302 + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.ENDERECO_ESTOQUE_VINCULADO_SUPERIOR", "Endereço de estoque vinculado ao endereço superior", dominio, modulo));
303 303  
304 304 //Entrada de materiais
305 305 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.DADOS_ENTRADA", "Dados da entrada", dominio, modulo));
306 306 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.DOCUMENTOS", "Documentos", dominio, modulo));
  307 + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.VALOR_TOTAL_MATERIAL_SUBTOTAL", "Valor total do material (Subtotal)", dominio, modulo));
  308 + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.UN_MEDIDA", "Un. medida", dominio, modulo));
307 309 }
308 310  
309 311 private void gerarValidacao(Dominio dominio, Modulo modulo, List<Internacionalizacao> internacionalizacaoList) {
... ...
cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/EntradaAlmoxarifadoController.js
... ... @@ -192,9 +192,10 @@ citApp.controller(&#39;EntradaAlmoxarifadoController&#39;, [&#39;$scope&#39;, &#39;$filter&#39;, &#39;FileUp
192 192 };
193 193  
194 194 $scope.limparModalMateriais = function(){
195   - $scope.entradaItem = {};
  195 + $scope.entradaItem = {
  196 + $validarPrecoMedio : true
  197 + };
196 198 $scope.unidadesFixa = false;
197   - $scope.caracteristicas = [];
198 199 $scope.valorUnitario = 0;
199 200 };
200 201  
... ...
cit-almoxarifado-web/src/main/webapp/html/entradaAlmoxarifado/dialog_add_materiais.html
... ... @@ -17,168 +17,62 @@
17 17 <small>( <span class="red">*</span> ) <translate>LABEL.CAMPOS_OBRIGATORIOS</translate>
18 18 </small>
19 19 </p>
  20 + <div class="row">
  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>
  23 + </div>
  24 + </div>
  25 +
20 26 <div class="row">
21   - <div class="col-sm-8">
  27 + <br>
  28 + <div class="col-sm-6">
22 29 <auto-complete ng-find="findMaterial(value)" ng-set-result="carregarItensMaterial(item)" ng-item="item.codigoEDescricao" ng-acao-borracha="limparCamposMaterial()"
23   - ng-id="entradaItem.material" form="formDialogMateriais" ng-label="LABEL.MATERIAL" ng-disabled="!editEntrada" ng-model="entradaItem.material" ng-obrigatorio="edit"></auto-complete>
  30 + ng-id="entradaItem.material" form="formDialogMateriais" ng-label="LABEL.MATERIAL" ng-disabled="!editEntrada" ng-model="entradaItem.material" ng-obrigatorio="true">
  31 + </auto-complete>
  32 + </div>
  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"/>
24 37 </div>
25   - <div ng-show="editEntrada" class="col-sm-4" style="padding-top: 28px;">
26   - <label>
27   - <input type="checkbox" ng-model="entradaItem.$validarPrecoMedio"/>
28   - <translate>ALMOXARIFADO.LABEL.VALIDAR_PRECO_MEDIO</translate>
29   - </label>
  38 + <div class="col-sm-4">
  39 + <label-select ng-id="entradaItem.materialLocalEstoque.endereco" ng-custom-change="" ng-label="ALMOXARIFADO.LABEL.ENDERECO_ESTOQUE" ng-model="entradaItem.materialLocalEstoque.endereco"
  40 + form="formDialogMateriais" ng-obrigatorio="editEntrada" ng-disabled="!editEntrada" ng-custom-options="endereco as endereco.descricao for endereco"
  41 + track-by="track by endereco.id" ng-list="enderecosMaterial"/>
30 42 </div>
31 43 </div>
32 44  
33 45 <div class="row">
34 46 <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"/>
  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"/>
37 49 </div>
  50 +
38 51 <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"
40   - ng-custom-options="unidadeMedida as unidadeMedida.sigla for unidadeMedida" track-by="track by unidadeMedida.id" ng-list="unidadesMedidasEntrada"/>
  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"/>
41 54 </div>
  55 +
42 56 <div class="col-sm-3">
43   - <label-input-decimal ng-id="entradaItem.quantidadeDominioTipoUnidadeEntrada" ng-evento-change="calcularQuantidadeEValores()" ng-label="ALMOXARIFADO.LABEL.UNIDADES"
44   - ng-obrigatorio="editEntrada" ng-disabled="!editEntrada || unidadesFixa" form="formDialogMateriais" ng-model="entradaItem.quantidadeDominioTipoUnidadeEntrada" ng-custom-maxlength="12"/>
  57 + <label-input ng-id="entradaItem.numeroLote" ng-label="ALMOXARIFADO.LABEL.NUMERO_LOTE" ng-obrigatorio="false" ng-disabled="!editEntrada" form="formDialogMateriais"
  58 + ng-model="entradaItem.numeroLote" />
45 59 </div>
  60 +
46 61 <div class="col-sm-3">
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"/>
  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" />
48 64 </div>
49 65 </div>
50 66  
51 67 <div class="row">
52   - <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" />
  68 + <div class="col-sm-3 col-sm-offset-6">
  69 + <label-input-money ng-id="entradaItem.valorUnitario" ng-label="LABEL.VALOR_UNITARIO" ng-disabled="true" form="formDialogMateriais" ng-model="entradaItem.valorUnitario"
  70 + ng-precision="2" ng-custom-maxlength="19"/>
54 71 </div>
55 72 <div class="col-sm-3">
56   - <label-input-data ng-id="entradaItem.dataValidade" ng-label="ALMOXARIFADO.LABEL.DATA_VALIDADE" ng-obrigatorio="false" ng-disabled="!editEntrada" ng-model="entradaItem.dataValidade" form="formDialogMateriais" />
57   - </div>
58   - <div class='col-sm-2'>
59   - <label-input-money ng-id="entradaItem.valorUnitario" ng-label="LABEL.VALOR_UNITARIO" ng-disabled="true" form="formDialogMateriais" ng-model="entradaItem.valorUnitario" ng-precision="2" ng-custom-maxlength="19"/>
60   - </div>
61   - <div class="col-sm-2">
62 73 <label-input ng-id="entradaItem.quantidade" ng-label="ALMOXARIFADO.LABEL.ENTRADA_ESTOQUE" ng-disabled="true" ng-model="entradaItem.quantidade" />
63 74 </div>
64   - <div class="col-sm-1" style="padding-top: 25px">
65   - <label>{{entradaItem.material.unidadeArmazenamento.tipoUnidadeMedida.descricao}}</label>
66   - </div>
67 75 </div>
68   -
69   - <fieldset ng-show="caracteristicas.length > 0 || (entradaItem.caracteristicas.length > 0 && !editEntrada)">
70   - <legend>
71   - <translate>LABEL.CARACTERISTICAS</translate>
72   - </legend>
73   -
74   - <div class="col-sm-12" ng-repeat="bemAlmoxarifadoCaracteristica in caracteristicas">
75   -
76   - <div class="row" ng-if="bemAlmoxarifadoCaracteristica.materialCaracteristica.caracteristica.dominioTipoDado.nome == 'TEXT_FIELD'">
77   - <div class="col-sm-12">
78   - <label-input ng-type="text" ng-id="bemAlmoxarifadoCaracteristica.valorCaracteristica-{{$index}}"
79   - ng-label="{{bemAlmoxarifadoCaracteristica.materialCaracteristica.caracteristica.descricao}}" ng-obrigatorio="bemAlmoxarifadoCaracteristica.materialCaracteristica.obrigatorio"
80   - ng-disabled="!editEntrada" form="formDialogMateriais" ng-model="bemAlmoxarifadoCaracteristica.valorCaracteristica"
81   - ng-custom-maxlength="{{bemAlmoxarifadoCaracteristica.materialCaracteristica.caracteristica.tamanho}}" ng-regex="bemAlmoxarifadoCaracteristica.materialCaracteristica.caracteristica.expressaoRegular"/>
82   - </div>
83   - </div>
84   -
85   - <div class="row" ng-if="bemAlmoxarifadoCaracteristica.materialCaracteristica.caracteristica.dominioTipoDado.nome == 'TEXT_AREA'">
86   - <div class="col-sm-12">
87   - <label-text-area ng-id="bemAlmoxarifadoCaracteristica.valorCaracteristica-{{$index}}"
88   - ng-label="{{bemAlmoxarifadoCaracteristica.materialCaracteristica.caracteristica.descricao}}" rows="2" form="formDialogMateriais" ng-disabled="!editEntrada"
89   - ng-obrigatorio="bemAlmoxarifadoCaracteristica.materialCaracteristica.obrigatorio" ng-model="bemAlmoxarifadoCaracteristica.valorCaracteristica"
90   - ng-custom-maxlength="{{bemAlmoxarifadoCaracteristica.materialCaracteristica.caracteristica.tamanho}}" ng-regex="bemAlmoxarifadoCaracteristica.materialCaracteristica.caracteristica.expressaoRegular"></label-text-area>
91   - </div>
92   - </div>
93   -
94   - <div class="row" ng-if="bemAlmoxarifadoCaracteristica.materialCaracteristica.caracteristica.dominioTipoDado.nome == 'NUMBER'">
95   - <div class="col-sm-12">
96   - <label-input-number ng-id="bemAlmoxarifadoCaracteristica.valorCaracteristica-{{$index}}"
97   - ng-label="{{bemAlmoxarifadoCaracteristica.materialCaracteristica.caracteristica.descricao}}" ng-obrigatorio="bemAlmoxarifadoCaracteristica.materialCaracteristica.obrigatorio"
98   - ng-disabled="!editEntrada" form="formDialogMateriais" ng-model="bemAlmoxarifadoCaracteristica.valorCaracteristica" ng-regex="bemAlmoxarifadoCaracteristica.materialCaracteristica.caracteristica.expressaoRegular"/>
99   - </div>
100   - </div>
101   -
102   - <div class="row" ng-if="bemAlmoxarifadoCaracteristica.materialCaracteristica.caracteristica.dominioTipoDado.nome == 'DATA'">
103   - <div class="col-sm-12">
104   - <label-input-data ng-id="bemAlmoxarifadoCaracteristica.valorCaracteristica-{{$index}}"
105   - ng-label="{{bemAlmoxarifadoCaracteristica.materialCaracteristica.caracteristica.descricao}}" ng-obrigatorio="bemAlmoxarifadoCaracteristica.materialCaracteristica.obrigatorio"
106   - ng-disabled="!editEntrada" ng-model="bemAlmoxarifadoCaracteristica.valorCaracteristica" form="formDialogMateriais" />
107   - </div>
108   - </div>
109   -
110   - <div class="row" ng-if="bemAlmoxarifadoCaracteristica.materialCaracteristica.caracteristica.dominioTipoDado.nome == 'DECIMAL'">
111   - <div class="col-sm-12">
112   - <label-input-money ng-id="bemAlmoxarifadoCaracteristica.valorCaracteristica-{{$index}}"
113   - ng-label="{{bemAlmoxarifadoCaracteristica.materialCaracteristica.caracteristica.descricao}}" ng-obrigatorio="bemAlmoxarifadoCaracteristica.materialCaracteristica.obrigatorio"
114   - ng-disabled="!editEntrada" form="formDialogMateriais" ng-model="bemAlmoxarifadoCaracteristica.valorCaracteristica"></label-input-money>
115   - </div>
116   - </div>
117   -
118   - <div class="row" ng-if="bemAlmoxarifadoCaracteristica.materialCaracteristica.caracteristica.dominioTipoDado.nome == 'TIPO_DOMINIO'">
119   - <div class="col-sm-12">
120   - <label-select ng-id="bemAlmoxarifadoCaracteristica.valorCaracteristica-{{$index}}" ng-model="bemAlmoxarifadoCaracteristica.valorCaracteristica"
121   - ng-label="{{bemAlmoxarifadoCaracteristica.materialCaracteristica.caracteristica.descricao}}" ng-obrigatorio="bemAlmoxarifadoCaracteristica.materialCaracteristica.obrigatorio"
122   - ng-disabled="!editEntrada" form="formDialogMateriais" ng-list="bemAlmoxarifadoCaracteristica.listaDominios"
123   - ng-custom-options="dominio.id as dominio.descricao for dominio"></label-select>
124   - </div>
125   - </div>
126   -
127   - <div class="row" ng-if="bemAlmoxarifadoCaracteristica.materialCaracteristica.caracteristica.dominioTipoDado.nome == 'ARQUIVO'">
128   - <div class="col-sm-12">
129   - <div class="form-group">
130   -
131   - <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>
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>
134   - </label>
135   -
136   - <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);">
138   - <div nv-file-over="" uploader="uploaderCaracteristica" over-class="another-file-over-class">
139   - <label class="file-input file-multiple">
140   - <span class="file-container">
141   - <label class="uploadMsg"><translate>LABEL.UPLOAD_MSG_ARRASTE</translate></label>
142   - <span class="file-name" data-title="...">
143   - <i class="icon icon fa fa-cloud-upload"></i>
144   - </span>
145   - </span>
146   - </label>
147   - </div>
148   - </div>
149   - <input id="uploadArquivos-{{workspace.id}}" type="file" nv-file-select="" uploader="uploaderCaracteristica" ng-show="false" />
150   - </div>
151   - <div class="row" ng-show="uploaderCaracteristica.queue.length > 0">
152   - <div class="col-sm-12">
153   - <table class="table">
154   - <thead>
155   - <tr>
156   - <th width="50%"><translate>LABEL.NOME</translate></th>
157   - <th ng-show="uploader.isHTML5"><translate>LABEL.TAMANHO</translate></th>
158   - <th style="text-align: center;"><translate>LABEL.ACOES</translate></th>
159   - </tr>
160   - </thead>
161   - <tbody>
162   - <tr ng-repeat="item in uploaderCaracteristica.queue">
163   - <td><strong>{{ item.file.name }}</strong></td>
164   - <td ng-show="uploaderCaracteristica.isHTML5" nowrap>{{ item.file.size/1024/1024|number:2 }} MB</td>
165   - <td nowrap style="text-align: center;">
166   - <button type="button" class="btn btn-danger btn-xs" ng-show="editEntrada" ng-click="item.remove()">
167   - <span class="fa fa-trash-o"></span>
168   - </button>
169   - </td>
170   - </tr>
171   - </tbody>
172   - </table>
173   - </div>
174   - </div>
175   - </div>
176   - </div>
177   - </div>
178   -
179   - </div>
180   - </fieldset>
181   -
182 76 </div>
183 77  
184 78 </ng-form>
... ...