Subversion Repositories Integrator Subversion

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

package br.com.ec.domain.service.impl;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import br.com.ec.core.generic.AbstractService;
import br.com.ec.core.generic.GenericRepository;
import br.com.ec.core.util.DataUtils;
import br.com.ec.core.validador.Validador;
import br.com.ec.domain.dto.AnaliseComprasProdutosDTO;
import br.com.ec.domain.dto.AnaliseVendaProdutoDTO;
import br.com.ec.domain.dto.FornecedorDTO;
import br.com.ec.domain.dto.ProdutoDTO;
import br.com.ec.domain.model.Compra;
import br.com.ec.domain.service.CompraService;
import br.com.ec.domain.service.ParcelaService;
import br.com.ec.repository.CompraRepository;

@Service
public class CompraServiceImpl extends AbstractService<Compra> implements CompraService {
               
        private ParcelaService parcelaService;
        private CompraRepository compraRepository;

        @Autowired
        public CompraServiceImpl(Validador validador, ParcelaService parcelaService, CompraRepository compraRepository) {
                super(validador);
                this.parcelaService = parcelaService;
                this.compraRepository = compraRepository;
        }

        @Override
        protected GenericRepository<Compra> getRepository() {
                return compraRepository;
        }
       
        @Override
        public AnaliseComprasProdutosDTO gerarComprasAutomaticamente(FornecedorDTO fornecedorDTO) {
                // VERIFICAR PRODUTOS:
                // VENDAS À PARTIR DE 2023
                // VERIFICAR ÚLTIMA DATA DE COMPRA DO PRODUTO
                // VERIFICAR A QUANTIDADE DE PRODUTOS VENDIDOS POR MÊS EM 3 MESES OU ATÉ A DATA DA ÚLTIMA VENDA, A QUE FOR MENOR;
                // LISTAR PRODUTOS COM UM TEMPO DE ESTOQUE INFERIOR À 15 DIAS, SEM INFORMAÇÃO DE PEDIDOS DE 'NÃO COMPRAR' OU 'SOLICITADO'
               
                AnaliseComprasProdutosDTO analiseComprasProdutosDTO = new AnaliseComprasProdutosDTO();
               
                List<AnaliseVendaProdutoDTO> analisesVendaProdutoDTO = new ArrayList<AnaliseVendaProdutoDTO>();
                AnaliseVendaProdutoDTO analiseVendaProdutoDTO = new AnaliseVendaProdutoDTO();
               
//              6                       3       0       3       09/03/2022      2024-03-16 12:18:54.193-03              XINXIN CAPAS    35479   32132   KIT CARREGADOR VEICULAR CABO DE DADOS MICRO USB V8 3.4A 1M HREBOS HS-98         18.00   60.00   true    1       K       U       false           BR                                              true    false   12                                      40.00           false                                           false

                ProdutoDTO produtoDTO = new ProdutoDTO(new Long(35479), "032132", "KIT CARREGADOR VEICULAR CABO DE DADOS MICRO USB V8 3.4A 1M HREBOS HS-98");
                analiseVendaProdutoDTO.setProdutoDTO(produtoDTO);
                analiseVendaProdutoDTO.setQuantidadeEstoque(5);
                analiseVendaProdutoDTO.setQuantidadeVendas(15);
                analiseVendaProdutoDTO.setDataUltimaCompra(DataUtils.converterStringParaData("2024-03-16"));
                analiseVendaProdutoDTO.setDataUltimaVenda(DataUtils.converterStringParaData("2024-03-16"));
               
//              FAZER EXEMPLOS SEM O PEDIDO DE COMPRA
//              ProdutoPedidoCompraDTO produtoPedidoCompraDTO = new ProdutoPedidoCompraDTO();
                analiseVendaProdutoDTO.setProdutoPedidoCompraDTO(null);
               
                FornecedorDTO fornecedorConsultaDTO = new FornecedorDTO();
                analiseVendaProdutoDTO.setFornecedorDTO(fornecedorConsultaDTO);
               
                analisesVendaProdutoDTO.add(analiseVendaProdutoDTO);
               
                analiseComprasProdutosDTO.setAnalisesVendaProdutoDTO(analisesVendaProdutoDTO);
                return analiseComprasProdutosDTO;
        }
       
        /*
        @Override
        public Compra consultarCompraDaConta(Conta conta) {
                return compraRepository.consultarCompraDaConta(conta);
        }
       
        @Override
        public void adicionarParcelasNaCompra(Compra compra, List<Parcela> listaParcelas) {
                parcelaService.cadastrarContaComParcelasNaCompra(compra, listaParcelas);
                alterar(compra);
        }
       
        @Override
        public void vincularConta(Compra compra, Conta conta) {
                if (VerificadorUtil.estaNulo(conta)) {
                        throw new NegocioException("CONTA NÃO EXISTE");
                }
                compra.setConta(conta);
                alterar(compra);
        }
       
        @Override
        public void desvincularConta(Compra compra) {
                compra.setConta(null);
                alterar(compra);
        }
       
        @Override
        public void cadastrar(Compra compra) {
                if (VerificadorUtil.estaNulo(compra.getFornecedor())) {
                        throw new NegocioException("OBRIGATÓRIO INFORMAR O FORNECEDOR");
                }
                super.cadastrar(compra);
        }
        */

}