Commit 3261ea9020f70521adc9418d98d4c749d7893f37

Authored by geovane.filho
1 parent 532cccb1
Exists in master

Redmine #4783 Atualizações de caracteristicas

cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/EntradaAlmoxarifado.java
@@ -127,7 +127,7 @@ public class EntradaAlmoxarifado extends PersistentObjectAuditOrganizacao implem @@ -127,7 +127,7 @@ public class EntradaAlmoxarifado extends PersistentObjectAuditOrganizacao implem
127 127
128 /** Atributo dominioTipoEntrada. */ 128 /** Atributo dominioTipoEntrada. */
129 @ManyToOne(fetch = FetchType.LAZY, optional = false) 129 @ManyToOne(fetch = FetchType.LAZY, optional = false)
130 - @JsonView({ Views.EntradaAutoCompleteView.class }) 130 + @JsonView({ Views.EntradaAutoCompleteView.class, Views.EntradaListView.class })
131 private Dominio dominioTipoEntrada; 131 private Dominio dominioTipoEntrada;
132 132
133 @ManyToOne(fetch = FetchType.LAZY, optional = false) 133 @ManyToOne(fetch = FetchType.LAZY, optional = false)
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/EntradaAlmoxarifadoItem.java
@@ -128,7 +128,7 @@ public class EntradaAlmoxarifadoItem extends PersistentObjectAudit { @@ -128,7 +128,7 @@ public class EntradaAlmoxarifadoItem extends PersistentObjectAudit {
128 private UnidadeMedida unidadeMedidaEntrada; 128 private UnidadeMedida unidadeMedidaEntrada;
129 129
130 /** Atributo caracteristicas. */ 130 /** Atributo caracteristicas. */
131 - @OneToMany(fetch = FetchType.LAZY, mappedBy = "entradaItem", cascade = CascadeType.ALL, orphanRemoval = true) 131 + @OneToMany(fetch = FetchType.LAZY, mappedBy = "entradaItem", cascade = CascadeType.ALL)
132 @JsonView({ ViewsAdmMateriais.EntradaAlmoxarifadoEditView.class }) 132 @JsonView({ ViewsAdmMateriais.EntradaAlmoxarifadoEditView.class })
133 private Collection<BemAlmoxarifadoCaracteristica> caracteristicas; 133 private Collection<BemAlmoxarifadoCaracteristica> caracteristicas;
134 134
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/EntradaAlmoxarifadoItemServiceImpl.java
@@ -156,7 +156,7 @@ public class EntradaAlmoxarifadoItemServiceImpl extends GenericServiceImpl&lt;Entra @@ -156,7 +156,7 @@ public class EntradaAlmoxarifadoItemServiceImpl extends GenericServiceImpl&lt;Entra
156 156
157 if (percentagem.doubleValue() > percetagemLimite) { 157 if (percentagem.doubleValue() > percetagemLimite) {
158 158
159 - throw new BusinessException("MSG.VALIDACAO_PRECO_MEDIO_MATERIAL_CONSUMO", CodigoErro.REGRA_NEGOCIO.getValue(), percetagemLimite + "%"); 159 + throw new BusinessException("ALMOXARIFADO.MSG.VALIDACAO_PRECO_MEDIO_MATERIAL_CONSUMO", CodigoErro.REGRA_NEGOCIO.getValue(), percetagemLimite + "%");
160 } 160 }
161 } 161 }
162 162
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/EntradaAlmoxarifadoServiceImpl.java
@@ -2,6 +2,7 @@ package br.com.centralit.api.service.impl; @@ -2,6 +2,7 @@ package br.com.centralit.api.service.impl;
2 2
3 import java.util.ArrayList; 3 import java.util.ArrayList;
4 import java.util.Calendar; 4 import java.util.Calendar;
  5 +import java.util.Collection;
5 import java.util.HashMap; 6 import java.util.HashMap;
6 import java.util.List; 7 import java.util.List;
7 import java.util.Map; 8 import java.util.Map;
@@ -19,6 +20,8 @@ import br.com.centralit.api.model.EntradaAlmoxarifado; @@ -19,6 +20,8 @@ import br.com.centralit.api.model.EntradaAlmoxarifado;
19 import br.com.centralit.api.model.EntradaAlmoxarifadoDocumento; 20 import br.com.centralit.api.model.EntradaAlmoxarifadoDocumento;
20 import br.com.centralit.api.model.EntradaAlmoxarifadoItem; 21 import br.com.centralit.api.model.EntradaAlmoxarifadoItem;
21 import br.com.centralit.api.model.EntradaAlmoxarifadoObservacao; 22 import br.com.centralit.api.model.EntradaAlmoxarifadoObservacao;
  23 +import br.com.centralit.api.model.MaterialCaracteristica;
  24 +import br.com.centralit.api.model.MaterialConsumo;
22 import br.com.centralit.api.model.MovimentoEstoque; 25 import br.com.centralit.api.model.MovimentoEstoque;
23 import br.com.centralit.api.service.ConfiguracaoParametroSistemaService; 26 import br.com.centralit.api.service.ConfiguracaoParametroSistemaService;
24 import br.com.centralit.api.service.ContaContabilMovimentoAlmoxarifadoService; 27 import br.com.centralit.api.service.ContaContabilMovimentoAlmoxarifadoService;
@@ -261,18 +264,28 @@ public class EntradaAlmoxarifadoServiceImpl extends GenericServiceImpl&lt;EntradaAl @@ -261,18 +264,28 @@ public class EntradaAlmoxarifadoServiceImpl extends GenericServiceImpl&lt;EntradaAl
261 entradaAlmoxarifadoItem.setEntrada(entrada); 264 entradaAlmoxarifadoItem.setEntrada(entrada);
262 265
263 List<BemAlmoxarifadoCaracteristica> caracteristicas = new ArrayList<BemAlmoxarifadoCaracteristica>(); 266 List<BemAlmoxarifadoCaracteristica> caracteristicas = new ArrayList<BemAlmoxarifadoCaracteristica>();
  267 +
  268 + if (!UtilObjeto.isReferencia(entradaAlmoxarifadoItem.getCaracteristicas()) || entradaAlmoxarifadoItem.getCaracteristicas().isEmpty()) {
  269 + MaterialConsumo material = this.materialConsumoService.find(entradaAlmoxarifadoItem.getMaterial().getId());
  270 + Collection<MaterialCaracteristica> caracs = material.getMaterialCaracteristicas();
  271 + Collection<BemAlmoxarifadoCaracteristica> matCarac = new ArrayList<BemAlmoxarifadoCaracteristica>();
  272 +
  273 + for (MaterialCaracteristica materialCaracteristica : caracs) {
  274 + BemAlmoxarifadoCaracteristica carac = new BemAlmoxarifadoCaracteristica();
  275 + carac.setMaterialCaracteristica(materialCaracteristica);
  276 + matCarac.add(carac);
  277 + }
  278 + entradaAlmoxarifadoItem.setCaracteristicas(matCarac);
  279 + }
264 280
265 - //TODO Arrumar caracteristicas  
266 for (BemAlmoxarifadoCaracteristica bemAlmoxarifadoCaracteristica : entradaAlmoxarifadoItem.getCaracteristicas()) { 281 for (BemAlmoxarifadoCaracteristica bemAlmoxarifadoCaracteristica : entradaAlmoxarifadoItem.getCaracteristicas()) {
267 282
268 - if(StringUtils.isNotBlank(bemAlmoxarifadoCaracteristica.getValorCaracteristica())){  
269 - bemAlmoxarifadoCaracteristica.setMaterialCaracteristica(this.materialCaracteristicaService.find(bemAlmoxarifadoCaracteristica.getMaterialCaracteristica().getId()));  
270 -  
271 - bemAlmoxarifadoCaracteristica.setCaracteristica(bemAlmoxarifadoCaracteristica.getMaterialCaracteristica().getCaracteristica());  
272 -  
273 - bemAlmoxarifadoCaracteristica.setEntradaItem(entradaAlmoxarifadoItem);  
274 - caracteristicas.add(bemAlmoxarifadoCaracteristica);  
275 - } 283 + bemAlmoxarifadoCaracteristica.setMaterialCaracteristica(this.materialCaracteristicaService.find(bemAlmoxarifadoCaracteristica.getMaterialCaracteristica().getId()));
  284 +
  285 + bemAlmoxarifadoCaracteristica.setCaracteristica(bemAlmoxarifadoCaracteristica.getMaterialCaracteristica().getCaracteristica());
  286 +
  287 + bemAlmoxarifadoCaracteristica.setEntradaItem(entradaAlmoxarifadoItem);
  288 + caracteristicas.add(bemAlmoxarifadoCaracteristica);
276 289
277 } 290 }
278 291
cit-almoxarifado-web/src/main/java/br/com/centralit/listener/StartupListenerAlmoxarifado.java
@@ -366,6 +366,7 @@ public class StartupListenerAlmoxarifado extends UtilStartup implements Applicat @@ -366,6 +366,7 @@ public class StartupListenerAlmoxarifado extends UtilStartup implements Applicat
366 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.SELECIONE_UM_ITEM_PARA_DEFINIR_CARAC", "Selecione um item para definir suas características!", dominio, modulo)); 366 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.SELECIONE_UM_ITEM_PARA_DEFINIR_CARAC", "Selecione um item para definir suas características!", dominio, modulo));
367 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.MATERIAL_NAO_POSSUI_CARACTERISTICAS", "Material não possui características cadastradas.", dominio, modulo)); 367 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.MATERIAL_NAO_POSSUI_CARACTERISTICAS", "Material não possui características cadastradas.", dominio, modulo));
368 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.ACAO_COM_SAIDAS_POSTERIORES", "Você não pode realizar esta ação pois existem as seguintes saídas com materiais desta entrada: ", dominio, modulo)); 368 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.ACAO_COM_SAIDAS_POSTERIORES", "Você não pode realizar esta ação pois existem as seguintes saídas com materiais desta entrada: ", dominio, modulo));
  369 + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.VALIDACAO_PRECO_MEDIO_MATERIAL_CONSUMO", "Valor médio do material é superior a ", dominio, modulo));
369 } 370 }
370 } 371 }
371 372
cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/EntradaAlmoxarifadoController.js
@@ -277,29 +277,38 @@ citApp.controller(&#39;EntradaAlmoxarifadoController&#39;, [&#39;$scope&#39;, &#39;$filter&#39;, &#39;FileUp @@ -277,29 +277,38 @@ citApp.controller(&#39;EntradaAlmoxarifadoController&#39;, [&#39;$scope&#39;, &#39;$filter&#39;, &#39;FileUp
277 277
278 var idAlmoxarifado = $scope.entradaAlmoxarifado.almoxarifado ? $scope.entradaAlmoxarifado.almoxarifado.id : null; 278 var idAlmoxarifado = $scope.entradaAlmoxarifado.almoxarifado ? $scope.entradaAlmoxarifado.almoxarifado.id : null;
279 279
280 - EntradaAlmoxarifadoItemRepository.validarPrecoMedio($scope.entradaItem.valorUnitario, $scope.entradaItem.material.id, idAlmoxarifado).then(function(result) {}); 280 + EntradaAlmoxarifadoItemRepository.validarPrecoMedio($scope.entradaItem.valorUnitario, $scope.entradaItem.material.id, idAlmoxarifado).then(function(result) {
  281 + if ($scope.entradaItem.$checked) {
  282 + for (var i = 0; i < $scope.entradaAlmoxarifado.entradasItem.length; i++) {
  283 + if ($scope.entradaAlmoxarifado.entradasItem[i].$checked) {
  284 + $scope.entradaAlmoxarifado.entradasItem[i] = $scope.entradaItem;
  285 + }
  286 + }
  287 + } else {
  288 + $scope.entradaAlmoxarifado.entradasItem.push($scope.entradaItem);
  289 + }
281 290
282 - } 291 + $scope.calcularValorTotalMateriais();
283 292
284 - if(!$scope.entradaItem.uuid){  
285 - $scope.entradaItem.uuid = getUuid();  
286 - $scope.entradaAlmoxarifado.entradasItem.push($scope.entradaItem);  
287 - }else{  
288 - var entradasItemTemp = [];  
289 - $scope.entradaAlmoxarifado.entradasItem.forEach(function (entradaItem, $index) {  
290 - if(entradaItem.uuid === $scope.entradaItem.uuid){  
291 - entradasItemTemp.push($scope.entradaItem);  
292 - }else{  
293 - entradasItemTemp.push(entradaItem);  
294 - } 293 + $scope.$modalInstance.dismiss('cancel');
  294 + $scope.atualizarListaSizeSelectEntradaItem();
295 }); 295 });
296 - $scope.entradaAlmoxarifado.entradasItem = entradasItemTemp;  
297 - } 296 + } else {
  297 + if ($scope.entradaItem.$checked) {
  298 + for (var i = 0; i < $scope.entradaAlmoxarifado.entradasItem.length; i++) {
  299 + if ($scope.entradaAlmoxarifado.entradasItem[i].$checked) {
  300 + $scope.entradaAlmoxarifado.entradasItem[i] = $scope.entradaItem;
  301 + }
  302 + }
  303 + } else {
  304 + $scope.entradaAlmoxarifado.entradasItem.push($scope.entradaItem);
  305 + }
298 306
299 - $scope.calcularValorTotalMateriais(); 307 + $scope.calcularValorTotalMateriais();
300 308
301 - $scope.$modalInstance.dismiss('cancel');  
302 - $scope.atualizarListaSizeSelectEntradaItem(); 309 + $scope.$modalInstance.dismiss('cancel');
  310 + $scope.atualizarListaSizeSelectEntradaItem();
  311 + }
303 312
304 }else{ 313 }else{
305 $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS')); 314 $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'));
cit-almoxarifado-web/src/main/webapp/html/entradaAlmoxarifado/dialog_add_materiais.html
@@ -37,7 +37,7 @@ @@ -37,7 +37,7 @@
37 </div> 37 </div>
38 <div class="col-sm-4"> 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" 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 || newEntrada" ng-disabled="!editEntrada && !newEntrada && !entradaItem.id" 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"/> 41 ng-custom-options="materialLocal as materialLocal.endereco.descricao for materialLocal" track-by="track by materialLocal.id" ng-list="enderecosMaterial"/>
42 </div> 42 </div>
43 </div> 43 </div>