Commit 3261ea9020f70521adc9418d98d4c749d7893f37
1 parent
532cccb1
Exists in
master
Redmine #4783 Atualizações de caracteristicas
Showing
7 changed files
with
54 additions
and
31 deletions
Show diff stats
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<Entra | @@ -156,7 +156,7 @@ public class EntradaAlmoxarifadoItemServiceImpl extends GenericServiceImpl<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<EntradaAl | @@ -261,18 +264,28 @@ public class EntradaAlmoxarifadoServiceImpl extends GenericServiceImpl<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('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp | @@ -277,29 +277,38 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', '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> |