Commit a4f6c726926eee1131f9810e9efa9d7acf7f57da

Authored by joyfas.silva
2 parents c6232142 47351c79
Exists in master

Merge remote-tracking branch 'remotes/origin/adm-1.16.0' into tarefa-3815

cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/AtendimentoRequisicaoConsumoItemDaoHibernate.java
1 1 package br.com.centralit.api.dao.impl;
2 2  
  3 +import java.util.ArrayList;
3 4 import java.util.Calendar;
4 5 import java.util.Collection;
5 6 import java.util.List;
... ... @@ -12,6 +13,7 @@ import br.com.centralit.api.model.AtendimentoRequisicaoConsumoItem;
12 13 import br.com.centralit.api.viewHelper.AtendimentoVH;
13 14 import br.com.centralit.framework.dao.arquitetura.CitGenericDAOImpl;
14 15 import br.com.centralit.framework.dao.arquitetura.SearchSeven;
  16 +import br.com.centralit.framework.util.UtilObjeto;
15 17  
16 18 @Repository("atendimentoRequisicaoConsumoItemDao")
17 19 public class AtendimentoRequisicaoConsumoItemDaoHibernate extends CitGenericDAOImpl implements AtendimentoRequisicaoConsumoItemDao {
... ... @@ -85,13 +87,17 @@ public class AtendimentoRequisicaoConsumoItemDaoHibernate extends CitGenericDAOI
85 87 */
86 88 @Override
87 89 public List<String> buscarAtendimentosComMateriaisEDataMaior(List<Long> idsMateriais, Calendar dataReferencia) {
88   - SearchSeven searchSeven = new SearchSeven();
89   -
90   - searchSeven.addField("atendimentoRequisicaoConsumo.numeroAtendimento");
91   - searchSeven.addFilterIn("material.id", idsMateriais);
92   - searchSeven.addFilterGreaterOrEqual("atendimentoRequisicaoConsumo.dataAtendimento", dataReferencia);
93   - searchSeven.setDistinct(true);
94   -
95   - return this.search(searchSeven);
  90 + if (UtilObjeto.isReferencia(dataReferencia)) {
  91 + SearchSeven searchSeven = new SearchSeven();
  92 +
  93 + searchSeven.addField("atendimentoRequisicaoConsumo.numeroAtendimento");
  94 + searchSeven.addFilterIn("material.id", idsMateriais);
  95 + searchSeven.addFilterGreaterOrEqual("atendimentoRequisicaoConsumo.dataAtendimento", dataReferencia);
  96 + searchSeven.setDistinct(true);
  97 +
  98 + return this.search(searchSeven);
  99 + } else {
  100 + return new ArrayList<String>();
  101 + }
96 102 }
97 103 }
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/BaixaAlmoxarifadoItemDaoHibernate.java
1 1 package br.com.centralit.api.dao.impl;
2 2  
  3 +import java.util.ArrayList;
3 4 import java.util.Calendar;
4 5 import java.util.List;
5 6  
... ... @@ -10,6 +11,7 @@ import org.springframework.stereotype.Repository;
10 11  
11 12 import br.com.centralit.framework.dao.arquitetura.CitGenericDAOImpl;
12 13 import br.com.centralit.framework.dao.arquitetura.SearchSeven;
  14 +import br.com.centralit.framework.util.UtilObjeto;
13 15  
14 16 @Repository("baixaAlmoxarifadoItemDao")
15 17 public class BaixaAlmoxarifadoItemDaoHibernate extends CitGenericDAOImpl implements BaixaAlmoxarifadoItemDao {
... ... @@ -19,14 +21,18 @@ public class BaixaAlmoxarifadoItemDaoHibernate extends CitGenericDAOImpl impleme
19 21  
20 22 @Override
21 23 public List<String> buscarBaixasComMateriaisEDataMaior(List<Long> idsMateriais, Calendar dataReferencia) {
22   - SearchSeven searchSeven = new SearchSeven();
23   -
24   - searchSeven.addField("baixaAlmoxarifado.numeroBaixa");
25   - searchSeven.addFilterIn("materialConsumo.id", idsMateriais);
26   - searchSeven.addFilterGreaterOrEqual("baixaAlmoxarifado.dataBaixa", dataReferencia);
27   - searchSeven.addFilterNull("dataEstorno");
28   - searchSeven.setDistinct(true);
29   -
30   - return this.search(searchSeven);
  24 + if (UtilObjeto.isReferencia(dataReferencia)) {
  25 + SearchSeven searchSeven = new SearchSeven();
  26 +
  27 + searchSeven.addField("baixaAlmoxarifado.numeroBaixa");
  28 + searchSeven.addFilterIn("materialConsumo.id", idsMateriais);
  29 + searchSeven.addFilterGreaterOrEqual("baixaAlmoxarifado.dataBaixa", dataReferencia);
  30 + searchSeven.addFilterNull("dataEstorno");
  31 + searchSeven.setDistinct(true);
  32 +
  33 + return this.search(searchSeven);
  34 + } else {
  35 + return new ArrayList<String>();
  36 + }
31 37 }
32 38 }
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/EntradaAlmoxarifadoItemServiceImpl.java
... ... @@ -15,12 +15,14 @@ import br.com.centralit.api.model.ContaContabilMovimento;
15 15 import br.com.centralit.api.model.EntradaAlmoxarifadoItem;
16 16 import br.com.centralit.api.model.EstruturaOrganizacional;
17 17 import br.com.centralit.api.model.MaterialConsumo;
  18 +import br.com.centralit.api.model.MaterialEstoque;
18 19 import br.com.centralit.api.model.MovimentoEstoque;
19 20 import br.com.centralit.api.service.ConfiguracaoParametroSistemaService;
20 21 import br.com.centralit.api.service.ContaContabilMovimentoAlmoxarifadoService;
21 22 import br.com.centralit.api.service.EntradaAlmoxarifadoItemService;
22 23 import br.com.centralit.api.service.EstruturaOrganizacionalService;
23 24 import br.com.centralit.api.service.MaterialConsumoService;
  25 +import br.com.centralit.api.service.MaterialEstoqueService;
24 26 import br.com.centralit.api.service.MovimentoEstoqueService;
25 27 import br.com.centralit.framework.exception.BusinessException;
26 28 import br.com.centralit.framework.exception.CodigoErro;
... ... @@ -76,7 +78,10 @@ public class EntradaAlmoxarifadoItemServiceImpl extends GenericServiceImpl&lt;Entra
76 78  
77 79 @Autowired
78 80 private ContaContabilMovimentoAlmoxarifadoService contaContabilMovimentoAlmoxarifadoService;
79   -
  81 +
  82 + @Autowired
  83 + private MaterialEstoqueService materialEstoqueService;
  84 +
80 85 /**
81 86 * Responsável pela criação de novas instâncias desta classe.
82 87 *
... ... @@ -150,27 +155,18 @@ public class EntradaAlmoxarifadoItemServiceImpl extends GenericServiceImpl&lt;Entra
150 155 @Override
151 156 public Boolean validarPrecoMedio(BigDecimal valorUnitario, Long idMaterial, Long idAlmoxarifado) {
152 157  
153   - MaterialConsumo materialConsumo = this.materialConsumoService.find(idMaterial);
154   -
155   - EstruturaOrganizacional almoxarifado = null;
156   -
157   - if (UtilObjeto.isReferencia(idAlmoxarifado)) {
158   -
159   - almoxarifado = this.estruturaOrganizacionalService.find(idAlmoxarifado);
160   -
161   - }
162   -
163   - BigDecimal precoMedio = this.recuperarMediaEntradaMaterial(materialConsumo, null, null, almoxarifado);
164   -
  158 + MaterialEstoque materialEstoque = materialEstoqueService.findByIdMaterial(idMaterial);
  159 + BigDecimal precoMedio = materialEstoque.getValorUnitarioMedio();
  160 +
165 161 Organizacao organizacao = ((Usuario) SecurityContextHolder.getContext().getAuthentication().getPrincipal()).getOrganizacao();
166 162 ConfiguracaoParametroSistema parametro = configuracaoParametroSistemaService.getParametro("MARGEM_ERRO_PRECO_MEDIO", organizacao);
167 163  
168 164 Double percetagemLimite = UtilString.isNullOrEmpty(parametro.getValor()) ? 0D : Double.parseDouble(parametro.getValor());
169 165  
170   - if (precoMedio != null) {
  166 + if (precoMedio != null && (precoMedio.compareTo(BigDecimal.ZERO) != 0)) {
171 167 BigDecimal percentagem = valorUnitario.multiply(BigDecimal.valueOf(100D)).divide(precoMedio, 2, BigDecimal.ROUND_HALF_UP).subtract(BigDecimal.valueOf(100D));
172 168  
173   - if (percentagem.doubleValue() > percetagemLimite) {
  169 + if (Math.abs(percentagem.doubleValue()) > percetagemLimite) {
174 170  
175 171 throw new BusinessException("ALMOXARIFADO.MSG.VALIDACAO_PRECO_MEDIO_MATERIAL_CONSUMO", CodigoErro.REGRA_NEGOCIO.getValue(), percetagemLimite + "%");
176 172 }
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/MovimentoEstoqueServiceImpl.java
... ... @@ -681,8 +681,10 @@ public class MovimentoEstoqueServiceImpl extends GenericServiceImpl&lt;MovimentoEst
681 681 @Override
682 682 public Collection<MovimentoEstoque> findAllByEntradaItem(EntradaAlmoxarifadoItem entradaAlmoxarifadoItem) {
683 683 Dominio classeReferenciaEntradaItem = this.dominioService.findByChaveAndCodigo(DominioMaterial.CLASSE_REFERENCIA, DominioMaterial.REFERENCIA_ENTRADA_ALMOXARIFADO_ITEM);
684   -
685   - return this.findAllByClasseReferencia(classeReferenciaEntradaItem, entradaAlmoxarifadoItem.getId());
  684 + if(entradaAlmoxarifadoItem.getId() != null){
  685 + return this.findAllByClasseReferencia(classeReferenciaEntradaItem, entradaAlmoxarifadoItem.getId());
  686 + }
  687 + return new ArrayList<MovimentoEstoque>();
686 688 }
687 689  
688 690 }
... ...
cit-almoxarifado-web/src/main/resources/reports/PosicaoEstoqueAnalitico.jrxml
1 1 <?xml version="1.0" encoding="UTF-8"?>
2 2 <!-- Created with Jaspersoft Studio version 6.2.2.final using JasperReports Library version 6.2.2 -->
3   -<!-- 2016-05-12T15:15:23 -->
  3 +<!-- 2016-05-16T15:44:53 -->
4 4 <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="PosicaoEstoqueAnalítico" language="groovy" pageWidth="802" pageHeight="555" orientation="Landscape" whenNoDataType="NoDataSection" columnWidth="802" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="ad8f14cf-4bc6-4008-beb0-a366c90e1c3f">
5 5 <property name="ireport.zoom" value="1.3636363636363635"/>
6 6 <property name="ireport.x" value="0"/>
... ... @@ -55,31 +55,34 @@
55 55 <parameter name="siglaOrganizacao" class="java.lang.String"/>
56 56 <parameter name="codigoOrganizacao" class="java.lang.String"/>
57 57 <queryString>
58   - <![CDATA[select
59   - contacontabil.codigo as codigoContaContabil,
60   - contacontabil.descricao as contaContabil,
61   - material.id as idMaterial,
62   - material.descricao as material,
63   - material.codigo as codigoMaterial,
64   - um.sigla as unidadeMedida,
65   - (select sum(valorsobra) from entradaalmoxarifadoitem
66   - inner join entradaalmoxarifado entradaalmoxarifado on entradaalmoxarifadoitem.entrada_id = entradaalmoxarifado.id
67   - and entradaalmoxarifado.almoxarifado_id = $P{idAlmoxarifado} where material_id = materialconsumo.id) as residuo,
68   - materialestoquesaldomedio.valorunitariomedio as precoMedio,
  58 + <![CDATA[ select
  59 + contacontabil.codigo as codigoContaContabil,
  60 + contacontabil.descricao as contaContabil,
  61 + material.id as idMaterial,
  62 + material.descricao as material,
  63 + material.codigo as codigoMaterial,
  64 + um.sigla as unidadeMedida,
  65 + (select sum(materialestoquefifoitem.valorsobra) from alm_en_entradaitem entradaalmoxarifadoitem
  66 + inner join alm_me_fifoitem materialestoquefifoitem on materialestoquefifoitem.entradaitem_id = entradaalmoxarifadoitem.id
  67 + inner join alm_entrada entradaalmoxarifado on entradaalmoxarifadoitem.entrada_id = entradaalmoxarifado.id
  68 + and entradaalmoxarifado.almoxarifado_id = $P{idAlmoxarifado} where entradaalmoxarifadoitem.material_id = materialconsumo.id) as residuo,
  69 + materialestoque.valorunitariomedio as precoMedio,
69 70 materialestoquesaldo.quantidade as quantidadeEstoqueSaldo,
70   - (select sum(quantidade) from movimentoestoque
71   - where material_id = materialconsumo.id and materialestoquesaldo_id is null and datainativo is null) as quantidadeMovimento,
72   - (select sum(quantidade) from atendimentoreqconsumoitem arci
73   - inner join atendimentorequisicaoconsumo arc on arc.id = arci.atendimentoreqconsumo_id
  71 + (select sum(quantidade) from alm_me_movimentoestoque
  72 + where material_id = materialconsumo.id and (datareferencia between $P{dataReferenciaAnterior} and $P{dataReferencia}) and datainativo is null) as quantidadeMovimento,
  73 + (select sum(quantidade) from alm_rc_atendimentoitem arci
  74 + inner join alm_rc_atendimento arc on arc.id = arci.atendimentoreqconsumo_id
74 75 where arci.material_id = materialconsumo.id and arci.datainativo is null
75 76 and arc.dataatendimento between $P{dataReferenciaAnterior} and $P{dataReferencia}) as quantidadeAtendida
76   - from materialconsumo materialconsumo
  77 + from alm_materialconsumo materialconsumo
77 78 inner join material material on materialconsumo.id = material.id and material.datainativo is null
78 79 inner join unidademedida um on materialconsumo.unidadearmazenamento_id = um.id
79   -inner join materialestoquesaldomedio materialestoquesaldomedio on materialestoquesaldomedio.material_id = material.id
80   -left join materialestoquesaldo materialestoquesaldo on materialestoquesaldo.material_id = material.id and materialestoquesaldo.datareferencia = $P{dataReferencia}
  80 +inner join alm_materialestoque materialestoque on materialestoque.material_id = material.id
  81 +left join alm_me_saldo materialestoquesaldo on materialestoquesaldo.material_id = material.id and materialestoquesaldo.datareferencia = $P{dataReferencia}
81 82 inner join contacontabil contacontabil on material.contacontabil_id = contacontabil.id and $X{IN,contacontabil.id,idsContas}
82   -left join localestoque localestoque on materialestoquesaldo.localestoque_id = localestoque.id and localestoque.almoxarifado_id = $P{idAlmoxarifado}
  83 +left join alm_me_localestoque materiallocalestoque on materialestoquesaldo.localestoque_id = materiallocalestoque.id
  84 +inner join alm_es_enderecoestoque enderecoestoque on materiallocalestoque.endereco_id = enderecoestoque.id
  85 +inner join alm_estoque estoque on enderecoestoque.estoque_id = estoque.id and estoque.almoxarifado_id = $P{idAlmoxarifado}
83 86 order by contaContabil, material]]>
84 87 </queryString>
85 88 <field name="codigocontacontabil" class="java.lang.String"/>
... ...
cit-almoxarifado-web/src/main/resources/reports/PosicaoEstoqueResumoAnalitico.jrxml
1 1 <?xml version="1.0" encoding="UTF-8"?>
2 2 <!-- Created with Jaspersoft Studio version 6.2.2.final using JasperReports Library version 6.2.2 -->
3   -<!-- 2016-05-12T16:05:27 -->
  3 +<!-- 2016-05-16T17:04:38 -->
4 4 <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="PosicaoEstoqueAnalítico" language="groovy" pageWidth="802" pageHeight="555" orientation="Landscape" whenNoDataType="NoDataSection" columnWidth="802" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="ad8f14cf-4bc6-4008-beb0-a366c90e1c3f">
5 5 <property name="ireport.zoom" value="1.2396694214876032"/>
6 6 <property name="ireport.x" value="0"/>
... ... @@ -58,16 +58,18 @@
58 58 contacontabil.codigo as codigoContaContabil,
59 59 contacontabil.descricao as contaContabil,
60 60 material.id as material,
61   - materialestoquesaldomedio.valorunitariomedio as precoMedio,
  61 + materialestoque.valorunitariomedio as precoMedio,
62 62 materialestoquesaldo.quantidade as quantidadeEstoqueSaldo,
63   - (select sum(quantidade) from movimentoestoque
64   - where material_id = materialconsumo.id and materialestoquesaldo_id is null and datainativo is null) as quantidadeMovimento
65   - from materialconsumo materialconsumo
  63 + (select sum(quantidade) from alm_me_movimentoestoque
  64 + where material_id = materialconsumo.id and (datamovimento between $P{dataReferenciaAnterior} and $P{dataReferencia}) and datainativo is null) as quantidadeMovimento
  65 + from alm_materialconsumo materialconsumo
66 66 inner join material material on materialconsumo.id = material.id and material.datainativo is null
67   -inner join materialestoquesaldomedio materialestoquesaldomedio on materialestoquesaldomedio.material_id = materialconsumo.id
68   -left join materialestoquesaldo materialestoquesaldo on materialestoquesaldo.material_id = materialconsumo.id and materialestoquesaldo.datareferencia = $P{dataReferencia}
  67 +inner join alm_materialestoque materialestoque on materialestoque.material_id = material.id
  68 +left join alm_me_saldo materialestoquesaldo on materialestoquesaldo.material_id = material.id and materialestoquesaldo.datareferencia = $P{dataReferencia}
69 69 inner join contacontabil contacontabil on material.contacontabil_id = contacontabil.id and $X{IN,contacontabil.id,idsContas}
70   -left join localestoque localestoque on materialestoquesaldo.localestoque_id = localestoque.id and localestoque.almoxarifado_id = $P{idAlmoxarifado}
  70 +left join alm_me_localestoque materiallocalestoque on materialestoquesaldo.localestoque_id = materiallocalestoque.id
  71 +inner join alm_es_enderecoestoque enderecoestoque on materiallocalestoque.endereco_id = enderecoestoque.id
  72 +inner join alm_estoque estoque on enderecoestoque.estoque_id = estoque.id and estoque.almoxarifado_id = $P{idAlmoxarifado}
71 73 order by contaContabil]]>
72 74 </queryString>
73 75 <field name="codigocontacontabil" class="java.lang.String"/>
... ...
cit-almoxarifado-web/src/main/resources/reports/RelatorioMaterialEstoqueAlmoxarifado.jrxml
... ... @@ -53,8 +53,8 @@
53 53 <parameter name="isReferenciaAtual" class="java.lang.Boolean" isForPrompting="false"/>
54 54 <parameter name="movimento_estoque" class="java.lang.String" isForPrompting="false">
55 55 <defaultValueExpression><![CDATA[( $P{isReferenciaAtual} ? "(select sum(quantidade) " +
56   - "from movimentoestoque " +
57   - "where material_id = materialconsumo.id and materialestoquesaldo_id is null and datainativo is null)" : 0 )]]></defaultValueExpression>
  56 + "from alm_me_movimentoestoque " +
  57 + "where material_id = materialconsumo.id and datainativo is null)" : 0 )]]></defaultValueExpression>
58 58 </parameter>
59 59 <parameter name="codigoOrganizacao" class="java.lang.String"/>
60 60 <parameter name="siglaOrganizacao" class="java.lang.String"/>
... ... @@ -67,14 +67,16 @@
67 67 materialestoquesaldo.quantidade as quantidadeestoqueSaldo,
68 68 $P!{movimento_estoque} as quantidademovimento,
69 69 materialestoquesaldo.valorfechado as valorEstoque,
70   - 0 as pontopedido,
71   - materialestoquesaldomedio.valorunitariomedio as precomedio
72   - from materialconsumo materialconsumo
  70 + 0 as pontopedido
  71 +
  72 + from alm_materialconsumo materialconsumo
73 73 inner join material material on materialconsumo.id = material.id and material.datainativo is null
74 74 inner join unidademedida um on materialconsumo.unidadearmazenamento_id = um.id
75   -inner join materialestoquesaldomedio materialestoquesaldomedio on materialestoquesaldomedio.material_id = material.id
76   -left join materialestoquesaldo materialestoquesaldo on materialestoquesaldo.material_id = material.id and materialestoquesaldo.datareferencia = $P{dataReferencia}
77   -left join localestoque localestoque on materialestoquesaldo.localestoque_id = localestoque.id and localestoque.almoxarifado_id = $P{idAlmoxarifado}
  75 +
  76 +left join alm_me_saldo materialestoquesaldo on materialestoquesaldo.material_id = material.id and materialestoquesaldo.datareferencia = $P{dataReferencia}
  77 +left join alm_me_localestoque localestoque on materialestoquesaldo.localestoque_id = localestoque.id
  78 +left join alm_es_enderecoestoque endEstoque on endEstoque.id = localestoque.endereco_id
  79 +left join alm_estoque estoque on estoque.id = endEstoque.estoque_id and estoque.almoxarifado_id = $P{idAlmoxarifado}
78 80 where $X{IN,material.id,idsMateriais}
79 81 order by material]]>
80 82 </queryString>
... ... @@ -86,7 +88,6 @@ order by material]]&gt;
86 88 <field name="quantidademovimento" class="java.math.BigDecimal"/>
87 89 <field name="valorestoque" class="java.math.BigDecimal"/>
88 90 <field name="pontopedido" class="java.lang.Integer"/>
89   - <field name="precomedio" class="java.math.BigDecimal"/>
90 91 <group name="material">
91 92 <groupExpression><![CDATA[$F{idmaterial}]]></groupExpression>
92 93 <groupHeader>
... ... @@ -118,7 +119,7 @@ order by material]]&gt;
118 119 <font size="6"/>
119 120 <paragraph rightIndent="3"/>
120 121 </textElement>
121   - <textFieldExpression><![CDATA[$F{precomedio} * (( $F{quantidademovimento} != null ? $F{quantidademovimento} : 0 ) + ( $F{quantidadeestoquesaldo} != null ? $F{quantidadeestoquesaldo} : 0 ))]]></textFieldExpression>
  122 + <textFieldExpression><![CDATA[ (( $F{quantidademovimento} != null ? $F{quantidademovimento} : 0 ) + ( $F{quantidadeestoquesaldo} != null ? $F{quantidadeestoquesaldo} : 0 ))]]></textFieldExpression>
122 123 </textField>
123 124 <textField isStretchWithOverflow="true" pattern="¤ #,##0.00" isBlankWhenNull="true">
124 125 <reportElement stretchType="RelativeToBandHeight" x="499" y="0" width="87" height="17" uuid="76a0e723-baf8-46d6-9fa7-e2cfdf0ee6c0"/>
... ... @@ -132,7 +133,6 @@ order by material]]&gt;
132 133 <font size="6"/>
133 134 <paragraph rightIndent="3"/>
134 135 </textElement>
135   - <textFieldExpression><![CDATA[$F{precomedio}]]></textFieldExpression>
136 136 </textField>
137 137 <textField isStretchWithOverflow="true" isBlankWhenNull="true">
138 138 <reportElement stretchType="RelativeToBandHeight" x="392" y="0" width="34" height="17" uuid="591d69e1-0fda-4e35-a326-8b631e1eb579"/>
... ...
cit-almoxarifado-web/src/main/resources/reports/SaidaMaterialPorContaSintetico.jrxml
1 1 <?xml version="1.0" encoding="UTF-8"?>
2 2 <!-- Created with Jaspersoft Studio version 6.2.2.final using JasperReports Library version 6.2.2 -->
3   -<!-- 2016-05-12T16:30:04 -->
  3 +<!-- 2016-05-17T08:18:29 -->
4 4 <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="entradaMaterialAnalitico" language="groovy" pageWidth="555" pageHeight="802" whenNoDataType="NoDataSection" columnWidth="555" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="151318af-6127-44c9-89d0-65848a7d6d80">
5 5 <property name="ireport.zoom" value="1.610510000000001"/>
6 6 <property name="ireport.x" value="0"/>
... ... @@ -105,13 +105,14 @@ u.sigla as unidade,
105 105 sum(me.quantidade) as quantidade,
106 106 0 as quantidadedevolvida,
107 107 sum(me.valorfifo) as valortotal
108   -from movimentoestoque me
109   -inner join baixaalmoxarifadoitem bmi on me.baixaalmoxarifadoitem_id = bmi.id and bmi.dataestorno is null
  108 +from alm_me_movimentoestoque me
  109 +inner join alm_bx_item bmi on me.idclassereferencia = bmi.id and bmi.dataestorno is null
110 110 inner join material m on me.material_id = m.id
111   -left join materialconsumo mc on m.id = mc.id
  111 +left join alm_materialconsumo mc on m.id = mc.id
112 112 left join unidademedida u on mc.unidadearmazenamento_id = u.id
113 113 inner join contacontabil cc on m.contacontabil_id = cc.id
114 114 where me.organizacao_id = $P{idOrganizacao} and me.datamovimento between (TO_TIMESTAMP($P{dataInicio},'YYYY-MM-DD HH24:MI:SS')::timestamp without time zone) and (TO_TIMESTAMP($P{dataFim},'YYYY-MM-DD HH24:MI:SS')::timestamp without time zone) and me.datainativo is null
  115 +and ((select id from dominio where chave = 'classeReferencia' and codigo = 13) = me.dominioclassereferencia_id)
115 116 group by codigocontacontabil, contacontabil, material, codigomaterial, unidade
116 117 union
117 118 select
... ... @@ -123,14 +124,15 @@ u.sigla as unidade,
123 124 sum(me.quantidade) as quantidade,
124 125 sum(rci.quantidadedevolvida) as quantidadedevolvida,
125 126 sum(me.valorfifo) as valortotal
126   -from movimentoestoque me
127   -inner join atendimentoreqconsumoitem arci on me.atendimentoreqconsumoitem_id = arci.id
128   -inner join requisicaoconsumoitem rci on arci.requisicaoconsumoitem_id = rci.id
  127 +from alm_me_movimentoestoque me
  128 +inner join alm_rc_atendimentoitem arci on me.idclassereferencia = arci.id
  129 +inner join alm_rc_item rci on arci.requisicaoconsumoitem_id = rci.id
129 130 inner join material m on me.material_id = m.id
130   -left join materialconsumo mc on m.id = mc.id
  131 +left join alm_materialconsumo mc on m.id = mc.id
131 132 left join unidademedida u on mc.unidadearmazenamento_id = u.id
132 133 inner join contacontabil cc on m.contacontabil_id = cc.id
133 134 where me.organizacao_id = $P{idOrganizacao} and me.datamovimento between (TO_TIMESTAMP($P{dataInicio},'YYYY-MM-DD HH24:MI:SS')::timestamp without time zone) and (TO_TIMESTAMP($P{dataFim},'YYYY-MM-DD HH24:MI:SS')::timestamp without time zone) and me.datainativo is null
  135 +and and ((select id from dominio where chave = 'classeReferencia' and codigo = 14) = me.dominioclassereferencia_id)
134 136 group by codigocontacontabil, contacontabil, material, codigomaterial, unidade
135 137 ) view
136 138 group by codigocontacontabil, contacontabil, material, unidade, codigomaterial
... ...
cit-almoxarifado-web/src/main/resources/reports/consumoAlmoxarifado.jrxml
1 1 <?xml version="1.0" encoding="UTF-8"?>
2 2 <!-- Created with Jaspersoft Studio version 6.2.2.final using JasperReports Library version 6.2.2 -->
3   -<!-- 2016-05-12T11:49:02 -->
  3 +<!-- 2016-05-16T10:00:19 -->
4 4 <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="consumoAlmoxarifado" language="groovy" pageWidth="555" pageHeight="802" whenNoDataType="NoDataSection" columnWidth="555" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="16b0028f-e4d1-4c28-96d2-f9a51170b4df">
5 5 <property name="ireport.zoom" value="2.2000000000000015"/>
6 6 <property name="ireport.x" value="0"/>
... ... @@ -26,15 +26,17 @@ from
26 26 select m.descricao as nomeMaterial,
27 27 to_char(me.datamovimento, 'YYYY') as ano,
28 28 to_char(me.datamovimento, 'MM') as mes,
29   - case when (entradaalmoxarifadoitem_id is null) then 0 else me.quantidade end as quantidadeEntrada,
30   - case when (devolucaoitem_id is null) then 0 else me.quantidade end as quantidadeDevolucao,
  29 + case when ((select id from dominio where chave = 'classeReferencia' and codigo = 12) != dominioclassereferencia_id) then 0 else me.quantidade end as quantidadeEntrada,
  30 + case when ((select id from dominio where chave = 'classeReferencia' and codigo = 6) != dominioclassereferencia_id) then 0 else me.quantidade end as quantidadeDevolucao,
31 31 0 as quantidadeRequisicao,
32   - case when (baixaalmoxarifadoitem_id is null) then 0 else me.quantidade end as quantidadeBaixa
33   - from movimentoestoque me
  32 + case when ((select id from dominio where chave = 'classeReferencia' and codigo = 13) != dominioclassereferencia_id ) then 0 else me.quantidade end as quantidadeBaixa
  33 + from alm_me_movimentoestoque me
34 34 inner join material m on m.id = me.material_id
35 35 inner join dominio d on d.id = me.tipomovimento_id
36   - inner join localestoque le on le.id = me.localestoque_id
37   - where le.almoxarifado_id = $P{idAlmoxarifado} and d.codigo in (1,2,4) and me.datamovimento between (TO_TIMESTAMP($P{dataInicio},'YYYY-MM-DD HH24:MI:SS')::timestamp without time zone) and (TO_TIMESTAMP($P{dataFim},'YYYY-MM-DD HH24:MI:SS')::timestamp without time zone) and me.datainativo is null $P!{filtroMateriais}
  36 + inner join alm_me_localestoque materialLocalEstoque on materialLocalEstoque.id = me.materiallocalestoque_id
  37 + inner join alm_es_enderecoestoque enderecoEstoque on enderecoEstoque.id = materialLocalEstoque.endereco_id
  38 + inner join alm_estoque estoque on estoque.id = enderecoEstoque.estoque_id
  39 + where estoque.almoxarifado_id = $P{idAlmoxarifado} and d.codigo in (1,2,4) and me.datamovimento between (TO_TIMESTAMP($P{dataInicio},'YYYY-MM-DD HH24:MI:SS')::timestamp without time zone) and (TO_TIMESTAMP($P{dataFim},'YYYY-MM-DD HH24:MI:SS')::timestamp without time zone) and me.datainativo is null $P!{filtroMateriais}
38 40 union
39 41 select
40 42 material.descricao as nomeMaterial,
... ... @@ -44,10 +46,10 @@ from
44 46 0 as quantidadeDevolucao,
45 47 requisicaoconsumoitem.quantidadeatendida as quantidadeRequisicao,
46 48 0 as quantidadeBaixa
47   - from atendimentorequisicaoconsumo atendimentorequisicaoconsumo
48   - inner join requisicaoconsumo requisicaoconsumo on atendimentorequisicaoconsumo.requisicaoconsumo_id =requisicaoconsumo.id
49   - inner join requisicaoconsumoitem requisicaoconsumoitem on requisicaoconsumo.id = requisicaoconsumoitem.requisicaoconsumo_id
50   - inner join atendimentoreqconsumoitem atendimentoreqconsumoitem on requisicaoconsumoitem.id = atendimentoreqconsumoitem.requisicaoconsumoitem_id
  49 + from alm_rc_atendimento atendimentorequisicaoconsumo
  50 + inner join alm_requisicaoconsumo requisicaoconsumo on atendimentorequisicaoconsumo.requisicaoconsumo_id =requisicaoconsumo.id
  51 + inner join alm_rc_item requisicaoconsumoitem on requisicaoconsumo.id = requisicaoconsumoitem.requisicaoconsumo_id
  52 + inner join alm_rc_atendimentoitem atendimentoreqconsumoitem on requisicaoconsumoitem.id = atendimentoreqconsumoitem.requisicaoconsumoitem_id
51 53 inner join material material on requisicaoconsumoitem.materialconsumo_id = material.id
52 54 where requisicaoconsumo.almoxarifado_id = $P{idAlmoxarifado} and atendimentorequisicaoconsumo.dataatendimento between (TO_TIMESTAMP($P{dataInicio},'YYYY-MM-DD HH24:MI:SS')::timestamp without time zone) and (TO_TIMESTAMP($P{dataFim},'YYYY-MM-DD HH24:MI:SS')::timestamp without time zone) and atendimentorequisicaoconsumo.datainativo is null $P!{filtroMateriais}
53 55 ) view
... ...
cit-almoxarifado-web/src/main/resources/reports/entradaMaterialAnaliticoEntrada.jrxml
1 1 <?xml version="1.0" encoding="UTF-8"?>
2 2 <!-- Created with Jaspersoft Studio version 6.2.2.final using JasperReports Library version 6.2.2 -->
3   -<!-- 2016-05-12T14:41:32 -->
  3 +<!-- 2016-05-16T10:29:35 -->
4 4 <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="entradaMaterialAnaliticoEntrada" language="groovy" pageWidth="802" pageHeight="555" orientation="Landscape" whenNoDataType="NoDataSection" columnWidth="802" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="5ed15610-1772-4ec5-9238-b8bb4567a519">
5 5 <property name="ireport.zoom" value="1.331000000000001"/>
6 6 <property name="ireport.x" value="0"/>
... ... @@ -75,13 +75,13 @@ WHERE ed.entrada_id = $P{idEntrada}]]&gt;
75 75 entradaalmoxarifadoitem.quantidade AS quantidade,
76 76 entradaalmoxarifadoitem.valorunitario AS valorUnitario,
77 77 entradaalmoxarifadoitem.valortotal AS valorTotal
78   -FROM entradaalmoxarifado entradaalmoxarifado
  78 +FROM alm_entrada entradaalmoxarifado
79 79 INNER JOIN dominio dominio ON dominio.id = entradaalmoxarifado.dominiotiporecebimento_id
80 80 INNER JOIN parceiro parceiro ON parceiro.id = entradaalmoxarifado.fornecedor_id
81 81 INNER JOIN pessoa pessoa ON pessoa.id = parceiro.pessoa_id
82 82 LEFT JOIN pessoajuridica pessoajuridica ON pessoa.id = pessoajuridica.pessoa_id
83 83 LEFT JOIN pessoafisica pessoafisica ON pessoa.id = pessoafisica.pessoa_id
84   - INNER JOIN entradaalmoxarifadoitem entradaalmoxarifadoitem ON entradaalmoxarifadoitem.entrada_id = entradaalmoxarifado.id
  84 + INNER JOIN alm_en_entradaitem entradaalmoxarifadoitem ON entradaalmoxarifadoitem.entrada_id = entradaalmoxarifado.id
85 85 LEFT JOIN unidademedida unidademedida ON entradaalmoxarifadoitem.unidademedidaentrada_id = unidademedida.id
86 86 INNER JOIN material material ON material.id = entradaalmoxarifadoitem.material_id
87 87 LEFT JOIN contacontabil contacontabil ON material.contacontabil_id = contacontabil.id
... ...
cit-almoxarifado-web/src/main/resources/reports/entradaMaterialNotaRecebimento.jrxml
1 1 <?xml version="1.0" encoding="UTF-8"?>
2 2 <!-- Created with Jaspersoft Studio version 6.2.2.final using JasperReports Library version 6.2.2 -->
3   -<!-- 2016-05-12T14:51:45 -->
  3 +<!-- 2016-05-16T10:33:33 -->
4 4 <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="entradaMaterialAnaliticoEntrada" language="groovy" pageWidth="802" pageHeight="555" orientation="Landscape" whenNoDataType="NoDataSection" columnWidth="802" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="5ed15610-1772-4ec5-9238-b8bb4567a519">
5 5 <property name="ireport.zoom" value="1.6500000000000008"/>
6 6 <property name="ireport.x" value="25"/>
... ... @@ -85,13 +85,13 @@ ORDER BY contacontabil]]&gt;
85 85 entradaalmoxarifadoitem.valorunitario AS valorUnitario,
86 86 entradaalmoxarifadoitem.valortotal AS valorTotal,
87 87 dominioFin.descricao AS finalidadeCompra
88   -FROM entradaalmoxarifado entradaalmoxarifado
  88 +FROM alm_entrada entradaalmoxarifado
89 89 INNER JOIN dominio dominio ON dominio.id = entradaalmoxarifado.dominiotiporecebimento_id
90 90 INNER JOIN parceiro parceiro ON parceiro.id = entradaalmoxarifado.fornecedor_id
91 91 INNER JOIN pessoa pessoa ON pessoa.id = parceiro.pessoa_id
92 92 LEFT JOIN pessoajuridica pessoajuridica ON pessoa.id = pessoajuridica.pessoa_id
93 93 LEFT JOIN pessoafisica pessoafisica ON pessoa.id = pessoafisica.pessoa_id
94   - INNER JOIN entradaalmoxarifadoitem entradaalmoxarifadoitem ON entradaalmoxarifadoitem.entrada_id = entradaalmoxarifado.id
  94 + INNER JOIN alm_en_entradaitem entradaalmoxarifadoitem ON entradaalmoxarifadoitem.entrada_id = entradaalmoxarifado.id
95 95 LEFT JOIN dominio dominioFin ON dominioFin.id = entradaalmoxarifado.dominiofinalidade_id
96 96 LEFT JOIN unidademedida unidademedida ON entradaalmoxarifadoitem.unidademedidaentrada_id = unidademedida.id
97 97 INNER JOIN material material ON material.id = entradaalmoxarifadoitem.material_id
... ...
cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/EntradaAlmoxarifadoController.js
... ... @@ -2,10 +2,10 @@
2 2  
3 3 citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUploader', 'EntradaAlmoxarifadoRepository', 'EstruturaOrganizacionalAlmoxarifadoRepository', '$translate', '$timeout',
4 4 'DominioRepository', 'FornecedorRepository', 'MaterialConsumoRepository', 'EntradaAlmoxarifadoItemRepository', 'MaterialLocalEstoqueRepository',
5   - 'MovimentoEstoqueRepository','$q','MaterialRepository',
  5 + 'MovimentoEstoqueRepository','$q','MaterialRepository', 'ConfiguracaoParametroSistemaRepository',
6 6 function EntradaAlmoxarifadoController($scope, $filter, FileUploader, EntradaAlmoxarifadoRepository, EstruturaOrganizacionalAlmoxarifadoRepository,
7 7 $translate, $timeout, DominioRepository , FornecedorRepository, MaterialConsumoRepository, EntradaAlmoxarifadoItemRepository,
8   - MaterialLocalEstoqueRepository, MovimentoEstoqueRepository, $q, MaterialRepository) {
  8 + MaterialLocalEstoqueRepository, MovimentoEstoqueRepository, $q, MaterialRepository, ConfiguracaoParametroSistemaRepository) {
9 9  
10 10 var CODIGO_DOMINIO_TIPO_RECEBIMENTO_COMPRA_ORCAMENTARIA = 1;
11 11  
... ... @@ -16,7 +16,17 @@ citApp.controller(&#39;EntradaAlmoxarifadoController&#39;, [&#39;$scope&#39;, &#39;$filter&#39;, &#39;FileUp
16 16  
17 17 $scope.listaEntradaItemSelecao = [];
18 18 $scope.edit = true;
19   -
  19 +
  20 + //recupera o parametro TIPO_CONFIGURACAO_UNIDADE_MEDIDA_ENTRADA
  21 + ConfiguracaoParametroSistemaRepository.getParametro('TIPO_CONFIGURACAO_UNIDADE_MEDIDA_ENTRADA').then(function(result) {
  22 + if(result !== undefined && result.valor === '1' ) {
  23 + $scope.indicaMultiplasUnidadesMedida = false;
  24 + } else if(result !== undefined && result.valor === '2' ) {
  25 + $scope.indicaMultiplasUnidadesMedida = true;
  26 + }
  27 +
  28 + });
  29 +
20 30 /**
21 31 * Inicializa as datas do formulario de cadastro como data padrao hoje.
22 32 */
... ... @@ -406,6 +416,8 @@ citApp.controller(&#39;EntradaAlmoxarifadoController&#39;, [&#39;$scope&#39;, &#39;$filter&#39;, &#39;FileUp
406 416  
407 417 $scope.abrirEntradaItem = function(editar){
408 418 $scope.entradaItem = null;
  419 +
  420 +
409 421 // recupera os itens de entrada selecionados
410 422 var itensSelecionados = $scope.getEntradaItemChecked();
411 423  
... ... @@ -940,14 +952,27 @@ citApp.controller(&#39;EntradaAlmoxarifadoController&#39;, [&#39;$scope&#39;, &#39;$filter&#39;, &#39;FileUp
940 952 $scope.enderecosMaterial = [];
941 953 }
942 954  
943   - if ($scope.entradaItem && $scope.entradaItem.material) {
944   - $scope.unidadesMedidasEntrada = $scope.entradaItem.material.tiposUnidadeMedidaEntrada.map(function(item){
945   - if (item.isPadrao && !$scope.entradaItem.unidadeMedidaEntrada) {
946   - $scope.entradaItem.unidadeMedidaEntrada = item.unidadeMedida;
947   - $scope.defineTipoNumerico();
  955 + if ($scope.entradaItem && $scope.entradaItem.material && $scope.entradaItem.material.tiposUnidadeMedidaEntrada) {
  956 +
  957 + if($scope.indicaMultiplasUnidadesMedida) {
  958 + $scope.unidadesMedidasEntrada = $scope.entradaItem.material.tiposUnidadeMedidaEntrada.map(function(item){
  959 + if (item.isPadrao && !$scope.entradaItem.unidadeMedidaEntrada) {
  960 + $scope.entradaItem.unidadeMedidaEntrada = item.unidadeMedida;
  961 + $scope.defineTipoNumerico();
  962 + }
  963 + return item.unidadeMedida;
  964 + });
  965 + } else {
  966 + $scope.unidadesMedidasEntrada.push($scope.entradaItem.material.unidadeArmazenamento);
  967 + $scope.unidadesMedidasEntrada.push($scope.entradaItem.material.tiposUnidadeMedidaEntrada.map(function(item){
  968 + return item.unidadeMedida;
  969 + }));
  970 +
  971 + if (!$scope.entradaItem.unidadeMedidaEntrada) {
  972 + $scope.entradaItem.unidadeMedidaEntrada = $scope.entradaItem.material.unidadeArmazenamento;
948 973 }
949   - return item.unidadeMedida;
950   - });
  974 + }
  975 +
951 976  
952 977 MaterialLocalEstoqueRepository.buscarLocaisEstoquePorIdMaterialIdAlmoxarifado($scope.entradaItem.material.id, $scope.entradaAlmoxarifado.almoxarifado.id).then(function(result) {
953 978 $scope.enderecosMaterial = [];
... ... @@ -1231,6 +1256,16 @@ citApp.controller(&#39;EntradaAlmoxarifadoController&#39;, [&#39;$scope&#39;, &#39;$filter&#39;, &#39;FileUp
1231 1256 ++count;
1232 1257 }
1233 1258 });
  1259 + } else {
  1260 + tempMateriais.forEach(function(item){
  1261 + if(materialCarac.caracteristica.chaveDominio === item.caracteristica.chaveDominio) {
  1262 + $scope.entradaItem.caracteristicas.push({
  1263 + materialCaracteristica: angular.copy(item),
  1264 + listaDominios: []
  1265 + });
  1266 + ++count;
  1267 + }
  1268 + });
1234 1269 }
1235 1270  
1236 1271 if(count === limiteArray) {
... ...
cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/EntradaAlmoxarifadoListController.js
... ... @@ -54,7 +54,7 @@ citApp.controller(&#39;EntradaAlmoxarifadoListController&#39;, [&#39;$scope&#39;, &#39;EntradaAlmoxa
54 54 }
55 55  
56 56 MovimentoEstoqueRepository.buscarMovimentosSaidaComMateriaisDaEntrada(entradaAlmoxarifado.id).then(function(result) {
57   - if (result.saidas) {
  57 + if (edit && result.saidas) {
58 58 $scope.showAlert('warning', $translate.instant('ALMOXARIFADO.VALIDACAO.EDITAR_ENTRADA_COM_SAIDAS') + result.saidas);
59 59 return;
60 60 } else {
... ...
cit-almoxarifado-web/src/main/webapp/html/entradaAlmoxarifado/dialog_add_materiais.html
... ... @@ -26,13 +26,13 @@
26 26 <div class="row">
27 27 <br>
28 28 <div class="col-sm-6">
29   - <auto-complete ng-find="findMaterial(value)" ng-set-result="carregarItensMaterial(item)" ng-item="item.codigoEDescricao" ng-id="entradaItem.material" form="formDialogMateriais"
  29 + <auto-complete ng-find="findMaterial(value)" ng-item="item.codigoEDescricao" ng-id="entradaItem.material" form="formDialogMateriais"
30 30 ng-label="LABEL.MATERIAL" ng-disabled="!newEntrada" ng-model="entradaItem.material" ng-obrigatorio="true">
31 31 </auto-complete>
32 32 </div>
33 33 <div class="col-sm-2">
34 34 <label-select ng-id="entradaItem.unidadeMedidaEntrada" ng-label="ALMOXARIFADO.LABEL.UN_MEDIDA" ng-model="entradaItem.unidadeMedidaEntrada"
35   - form="formDialogMateriais" ng-obrigatorio="editEntrada || newEntrada" ng-disabled="!editEntrada && !newEntrada" ng-custom-change="alternaTipoNumericoUnidadeMedida()"
  35 + form="formDialogMateriais" ng-obrigatorio="editEntrada || newEntrada" ng-disabled="(!editEntrada && !newEntrada) || !indicaMultiplasUnidadesMedida" ng-custom-change="alternaTipoNumericoUnidadeMedida()"
36 36 ng-custom-options="unidadeMedida as unidadeMedida.sigla for unidadeMedida" track-by="track by unidadeMedida.id" ng-list="unidadesMedidasEntrada"/>
37 37 </div>
38 38 <div class="col-sm-4">
... ...