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 | 127 | |
128 | 128 | /** Atributo dominioTipoEntrada. */ |
129 | 129 | @ManyToOne(fetch = FetchType.LAZY, optional = false) |
130 | - @JsonView({ Views.EntradaAutoCompleteView.class }) | |
130 | + @JsonView({ Views.EntradaAutoCompleteView.class, Views.EntradaListView.class }) | |
131 | 131 | private Dominio dominioTipoEntrada; |
132 | 132 | |
133 | 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 | 128 | private UnidadeMedida unidadeMedidaEntrada; |
129 | 129 | |
130 | 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 | 132 | @JsonView({ ViewsAdmMateriais.EntradaAlmoxarifadoEditView.class }) |
133 | 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 | 156 | |
157 | 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 | 2 | |
3 | 3 | import java.util.ArrayList; |
4 | 4 | import java.util.Calendar; |
5 | +import java.util.Collection; | |
5 | 6 | import java.util.HashMap; |
6 | 7 | import java.util.List; |
7 | 8 | import java.util.Map; |
... | ... | @@ -19,6 +20,8 @@ import br.com.centralit.api.model.EntradaAlmoxarifado; |
19 | 20 | import br.com.centralit.api.model.EntradaAlmoxarifadoDocumento; |
20 | 21 | import br.com.centralit.api.model.EntradaAlmoxarifadoItem; |
21 | 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 | 25 | import br.com.centralit.api.model.MovimentoEstoque; |
23 | 26 | import br.com.centralit.api.service.ConfiguracaoParametroSistemaService; |
24 | 27 | import br.com.centralit.api.service.ContaContabilMovimentoAlmoxarifadoService; |
... | ... | @@ -261,18 +264,28 @@ public class EntradaAlmoxarifadoServiceImpl extends GenericServiceImpl<EntradaAl |
261 | 264 | entradaAlmoxarifadoItem.setEntrada(entrada); |
262 | 265 | |
263 | 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 | 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 | 366 | internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.SELECIONE_UM_ITEM_PARA_DEFINIR_CARAC", "Selecione um item para definir suas características!", dominio, modulo)); |
367 | 367 | internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.MATERIAL_NAO_POSSUI_CARACTERISTICAS", "Material não possui características cadastradas.", dominio, modulo)); |
368 | 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 | 277 | |
278 | 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 | 313 | }else{ |
305 | 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 | 37 | </div> |
38 | 38 | <div class="col-sm-4"> |
39 | 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 | 41 | ng-custom-options="materialLocal as materialLocal.endereco.descricao for materialLocal" track-by="track by materialLocal.id" ng-list="enderecosMaterial"/> |
42 | 42 | </div> |
43 | 43 | </div> | ... | ... |