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 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&lt;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&lt;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(&#39;EntradaAlmoxarifadoController&#39;, [&#39;$scope&#39;, &#39;$filter&#39;, &#39;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>
... ...