package br.com.centralit.citcorpore.ajaxForms; import java.util.ArrayList; import java.util.Collection; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang.StringEscapeUtils; import br.com.centralit.citajax.html.AjaxFormAction; import br.com.centralit.citajax.html.DocumentHTML; import br.com.centralit.citajax.html.HTMLForm; import br.com.centralit.citcorpore.bean.CategoriaProdutoDTO; import br.com.centralit.citcorpore.bean.FornecedorDTO; import br.com.centralit.citcorpore.bean.FornecedorProdutoDTO; import br.com.centralit.citcorpore.bean.MarcaDTO; import br.com.centralit.citcorpore.bean.ProdutoDTO; import br.com.centralit.citcorpore.bean.RelacionamentoProdutoDTO; import br.com.centralit.citcorpore.bean.TipoProdutoDTO; import br.com.centralit.citcorpore.bean.UnidadeMedidaDTO; import br.com.centralit.citcorpore.negocio.CategoriaProdutoService; import br.com.centralit.citcorpore.negocio.FornecedorProdutoService; import br.com.centralit.citcorpore.negocio.FornecedorService; import br.com.centralit.citcorpore.negocio.MarcaService; import br.com.centralit.citcorpore.negocio.ProdutoService; import br.com.centralit.citcorpore.negocio.RelacionamentoProdutoService; import br.com.centralit.citcorpore.negocio.TipoProdutoService; import br.com.centralit.citcorpore.negocio.UnidadeMedidaService; import br.com.centralit.citcorpore.util.WebUtil; import br.com.citframework.service.ServiceLocator; import br.com.citframework.util.UtilDatas; import br.com.citframework.util.UtilI18N; /** * * @author cleon.junior * */ public class TipoProduto extends AjaxFormAction { /** * Inicializa os dados ao carregar a tela. * * @param document * @param request * @param response * @throws Exception */ public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { } /** * Inclui registro. * * @param document * @param request * @param response * @throws Exception */ public void save(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { TipoProdutoDTO tipoProdutoDTO = (TipoProdutoDTO) document.getBean(); TipoProdutoService tipoProdutoService = (TipoProdutoService) ServiceLocator.getInstance().getService(TipoProdutoService.class, WebUtil.getUsuarioSistema(request)); if(tipoProdutoDTO.getSituacao()== null || tipoProdutoDTO.getAceitaRequisicao() == null){ document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.camposObrigatorios")); return; } if (tipoProdutoDTO.getIdTipoProduto() == null || tipoProdutoDTO.getIdTipoProduto().intValue() == 0) { if (tipoProdutoService.consultarTiposProdutos(tipoProdutoDTO)) { document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.registroJaCadastrado")); return; } tipoProdutoDTO = (TipoProdutoDTO) tipoProdutoService.create(tipoProdutoDTO, request); document.alert(UtilI18N.internacionaliza(request, "MSG05")); } else { tipoProdutoService.update(tipoProdutoDTO, request); document.alert(UtilI18N.internacionaliza(request, "MSG06")); } HTMLForm form = document.getForm("form"); document.executeScript("deleteAllRows();"); form.clear(); } /** * Restaura os dados ao clicar em um registro. * * @param document * @param request * @param response * @throws Exception */ @SuppressWarnings("unchecked") public void restore(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { TipoProdutoDTO tipoProdutoDTO = (TipoProdutoDTO) document.getBean(); TipoProdutoDTO tipoProdutoDTO2 = new TipoProdutoDTO(); FornecedorDTO fornecedorDTO = new FornecedorDTO(); MarcaDTO marcaDTO = new MarcaDTO(); CategoriaProdutoDTO categoriaProdutoDTO = new CategoriaProdutoDTO(); UnidadeMedidaDTO unidadeMedidaDTO = new UnidadeMedidaDTO(); Collection<RelacionamentoProdutoDTO> colRelacionamentoProdutoDTOs = new ArrayList(); Collection<FornecedorProdutoDTO> colFornecedorProdutoDTOs = new ArrayList(); RelacionamentoProdutoService relacionamentoProdutoService = (RelacionamentoProdutoService) ServiceLocator.getInstance().getService(RelacionamentoProdutoService.class, null); FornecedorProdutoService fornecedorProdutoService = (FornecedorProdutoService) ServiceLocator.getInstance().getService(FornecedorProdutoService.class, null); MarcaService marcaService = (MarcaService) ServiceLocator.getInstance().getService(MarcaService.class, null); FornecedorService fornecedorService = (FornecedorService) ServiceLocator.getInstance().getService(FornecedorService.class, null); TipoProdutoService tipoProdutoService = (TipoProdutoService) ServiceLocator.getInstance().getService(TipoProdutoService.class, null); CategoriaProdutoService categoriaProdutoService = (CategoriaProdutoService) ServiceLocator.getInstance().getService(CategoriaProdutoService.class, null); UnidadeMedidaService unidadeMedidaService = (UnidadeMedidaService) ServiceLocator.getInstance().getService(UnidadeMedidaService.class, null); tipoProdutoDTO = (TipoProdutoDTO) tipoProdutoService.restore(tipoProdutoDTO); unidadeMedidaDTO.setIdUnidadeMedida(tipoProdutoDTO.getIdUnidadeMedida()); if(unidadeMedidaDTO.getIdUnidadeMedida() != null){ unidadeMedidaDTO = (UnidadeMedidaDTO) unidadeMedidaService.restore(unidadeMedidaDTO); } categoriaProdutoDTO.setIdCategoria(tipoProdutoDTO.getIdCategoria()); categoriaProdutoDTO = (CategoriaProdutoDTO) categoriaProdutoService.restore(categoriaProdutoDTO); tipoProdutoDTO.setNomeUnidadeMedida(unidadeMedidaDTO.getNomeUnidadeMedida()); tipoProdutoDTO.setNomeCategoria(categoriaProdutoDTO.getNomeCategoria()); HTMLForm form = document.getForm("form"); document.executeScript("deleteAllRows();"); form.clear(); colRelacionamentoProdutoDTOs = relacionamentoProdutoService.findByIdTipoProduto(tipoProdutoDTO.getIdTipoProduto()); colFornecedorProdutoDTOs = fornecedorProdutoService.findByIdTipoProduto(tipoProdutoDTO.getIdTipoProduto()); if (colRelacionamentoProdutoDTOs != null && !colRelacionamentoProdutoDTOs.isEmpty()){ int i = 1; for (RelacionamentoProdutoDTO relacionamento : colRelacionamentoProdutoDTOs){ tipoProdutoDTO2.setIdTipoProduto(relacionamento.getIdTipoProdutoRelacionado()); tipoProdutoDTO2 = (TipoProdutoDTO) tipoProdutoService.restore(tipoProdutoDTO2); document.executeScript("addLinhaTabelaTipoProdutoRelacionado(" + tipoProdutoDTO2.getIdTipoProduto() + ", '" + StringEscapeUtils.escapeJavaScript(tipoProdutoDTO2.getNomeProduto()) + "', " + false + ");"); document.executeScript("atribuirChecked('"+ relacionamento.getTipoRelacionamento() + "',"+ i +");"); i++; } } if (colFornecedorProdutoDTOs != null && !colFornecedorProdutoDTOs.isEmpty()){ int i = 1; for (FornecedorProdutoDTO fornecedorProdutoDTO : colFornecedorProdutoDTOs){ fornecedorDTO.setIdFornecedor(fornecedorProdutoDTO.getIdFornecedor()); fornecedorDTO = (FornecedorDTO) fornecedorService.restore(fornecedorDTO); document.executeScript("addLinhaTabelaFornecedor(" + fornecedorProdutoDTO.getIdFornecedor() + ",'" + StringEscapeUtils.escapeJavaScript(fornecedorDTO.getRazaoSocial()) + "',"+ false + ");"); if (fornecedorProdutoDTO.getIdMarca() != null){ marcaDTO.setIdMarca(fornecedorProdutoDTO.getIdMarca()); marcaDTO = (MarcaDTO) marcaService.restore(marcaDTO); document.executeScript("setarMarca("+marcaDTO.getIdMarca() +",'" + StringEscapeUtils.escapeJavaScript(marcaDTO.getNomeMarca()) + "'," + i +");"); } document.executeScript("setarIdFornecedorProduto("+fornecedorProdutoDTO.getIdFornecedorProduto() +"," + i +");"); i++; } } form.setValues(tipoProdutoDTO); } public Class<TipoProdutoDTO> getBeanClass() { return TipoProdutoDTO.class; } public void deleteTipoProdutoRelacionado(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { TipoProdutoDTO tipoProdutoDTO = (TipoProdutoDTO) document.getBean(); RelacionamentoProdutoDTO relacionamentoProdutoDTO = new RelacionamentoProdutoDTO(); RelacionamentoProdutoService relacionamentoProdutoService = (RelacionamentoProdutoService) ServiceLocator.getInstance().getService(RelacionamentoProdutoService.class, null); String idTipoProdutoRelacionadoAux = request.getParameter("relacionamentoProduto"); Integer idTipoProdutoRelacionado = Integer.parseInt(idTipoProdutoRelacionadoAux); relacionamentoProdutoDTO.setIdTipoProduto(tipoProdutoDTO.getIdTipoProduto()); relacionamentoProdutoDTO.setIdTipoProdutoRelacionado(idTipoProdutoRelacionado); if (tipoProdutoDTO.getIdTipoProduto() != null && tipoProdutoDTO.getIdTipoProduto().intValue() > 0) { relacionamentoProdutoService.delete(relacionamentoProdutoDTO); } document.alert(UtilI18N.internacionaliza(request, "MSG07")); } @SuppressWarnings("unchecked") public void delete(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { TipoProdutoDTO tipoProduto = (TipoProdutoDTO) document.getBean(); ProdutoDTO produtoDTO = new ProdutoDTO(); Collection<ProdutoDTO> listProduto = new ArrayList(); Collection<FornecedorProdutoDTO> colFornecedorProdutoDTOs = new ArrayList(); RelacionamentoProdutoService relacionamentoProdutoService = (RelacionamentoProdutoService) ServiceLocator.getInstance().getService(RelacionamentoProdutoService.class, null); FornecedorProdutoService fornecedorProdutoService = (FornecedorProdutoService) ServiceLocator.getInstance().getService(FornecedorProdutoService.class, null); ProdutoService produtoService = (ProdutoService) ServiceLocator.getInstance().getService(ProdutoService.class, WebUtil.getUsuarioSistema(request)); TipoProdutoService tipoProdutoService = (TipoProdutoService) ServiceLocator.getInstance().getService(TipoProdutoService.class, WebUtil.getUsuarioSistema(request)); produtoDTO.setIdTipoProduto(tipoProduto.getIdTipoProduto()); listProduto = produtoService.findByIdTipoProduto(tipoProduto.getIdTipoProduto()); if (listProduto == null){ if (tipoProduto.getIdTipoProduto().intValue() > 0) { colFornecedorProdutoDTOs = fornecedorProdutoService.findByIdTipoProduto(tipoProduto.getIdTipoProduto()); if (colFornecedorProdutoDTOs != null && !colFornecedorProdutoDTOs.isEmpty()){ for (FornecedorProdutoDTO fornecedorProduto : colFornecedorProdutoDTOs){ fornecedorProduto.setDataFim(UtilDatas.getDataAtual()); fornecedorProdutoService.update(fornecedorProduto); } } relacionamentoProdutoService.deleteByIdTipoProduto(tipoProduto.getIdTipoProduto()); tipoProdutoService.delete(tipoProduto); } document.alert(UtilI18N.internacionaliza(request, "MSG07")); } else{ document.alert(UtilI18N.internacionaliza(request, "MSG08")); } HTMLForm form = document.getForm("form"); document.executeScript("deleteAllRows();"); form.clear(); } public void deleteFornecedor(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { TipoProdutoDTO tipoProdutoDTO = (TipoProdutoDTO) document.getBean(); FornecedorProdutoDTO fornecedorProdutoDTO = new FornecedorProdutoDTO(); FornecedorProdutoService fornecedorProdutoService = (FornecedorProdutoService) ServiceLocator.getInstance().getService(FornecedorProdutoService.class, null); String idFornecedorAux = request.getParameter("fornecedorProduto"); if (!idFornecedorAux.isEmpty()){ Integer idFornecedor = Integer.parseInt(idFornecedorAux); fornecedorProdutoDTO.setIdFornecedorProduto(idFornecedor); } if (tipoProdutoDTO.getIdTipoProduto() != null && tipoProdutoDTO.getIdTipoProduto().intValue() > 0) { fornecedorProdutoDTO = (FornecedorProdutoDTO) fornecedorProdutoService.restore(fornecedorProdutoDTO); fornecedorProdutoDTO.setDataFim(UtilDatas.getDataAtual()); fornecedorProdutoService.update(fornecedorProdutoDTO); } document.alert(UtilI18N.internacionaliza(request, "MSG07")); } }