Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace Ordem_Servico\Repositorio;
- use Repositorio\AbstractRepositorio;
- use Repositorio\Exception\RepositorioException;
- /**
- * Created by PhpStorm.
- * User: itallo
- * Date: 07/05/17
- * Time: 21:48
- */
- class ProdutoRepositorio extends AbstractRepositorio {
- protected function getTabela() {
- return "t_os_produtos";
- }
- protected function getChavePrimaria() {
- return "OSP_Codigo";
- }
- /**
- * Busca produtos vinculados a vários serviços
- * @param array $servicos lista com os códigos dos produtos (ProdFil_Codigo)
- * @return array
- */
- public function buscarProdutoPorServicos(array $servicos) {
- if (empty($servicos)) {
- return array();
- }
- $sql = "SELECT
- os_produto.*,
- produto.Prod_Codigo,
- produto.ProdFil_Descricao,
- produto.ProdFil_Referencia,
- fabricante.Fab_Descricao
- FROM t_os_produtos os_produto
- JOIN t_estq_produtos_fil produto ON produto.ProdFil_Codigo = os_produto.ProdFil_Codigo
- LEFT JOIN t_fabricantes fabricante ON fabricante.Fab_Codigo = produto.Fab_Codigo
- WHERE os_produto.OSSer_Codigo in (" . implode(",", $servicos) . ")
- ";
- $this->varcon->executa($sql);
- $servicos = array();
- for ($this->varcon->row = 0; $this->varcon->row < $this->varcon->nrw; $this->varcon->row++) {
- $this->varcon->dados(true);
- $servicos[$this->varcon->data['OSSer_Codigo']][] = $this->varcon->data;
- }
- return $servicos;
- }
- public function buscarProdutosPorOS($OS_Numero, $retornarProdutosInativos = false, array $filtros = array()) {
- $sql = "SELECT
- peca.*,
- SUM(peca.OSP_Quantidade) AS OSP_Quantidade,
- produto.Prod_Codigo,
- produto.ProdFil_Descricao,
- produto.ProdFil_Referencia,
- boxes.Box_Descricao
- FROM t_os_produtos peca
- JOIN t_estq_produtos_fil produto ON produto.ProdFil_Codigo = peca.ProdFil_Codigo
- LEFT JOIN t_estq_boxes boxes ON boxes.Box_Codigo = produto.Box_Codigo
- JOIN t_os_servicos servico ON servico.OSSer_Codigo = peca.OSSer_Codigo
- JOIN t_os_equipamentos equipamentos ON equipamentos.OSE_Codigo = servico.OSE_Codigo
- WHERE equipamentos.OS_Numero = '{$OS_Numero}'
- ";
- $filtros = $this->retirarCamposInexistentesDadosEnviados($filtros);
- foreach ($filtros as $campo => $filtro) {
- $sql .= " AND servico.{$campo} = '{$filtro}' ";
- }
- $sql .= " GROUP BY peca.ProdFil_Codigo ";
- return $this->executarConsultaMultiplosResultados($sql);
- }
- public function inserirProduto($dados) {
- try {
- return parent::inserir($dados);
- } catch (RepositorioException $ex) {
- throw new RepositorioException("Erro ao salvar produto", $ex->getErro(), $this);
- }
- }
- public function excluirProdutosPorServico($OSSerCodigo) {
- $this->varcon->manipula("DELETE FROM " . $this->getTabela() . " WHERE OSSer_Codigo = '" . $OSSerCodigo . "' ");
- if ($this->varcon->erro) {
- throw new RepositorioException(
- "Não foi possível realizar exclusão dos produtos vinculados ao produto",
- $this->varcon->erro,
- $this
- );
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement