Advertisement
Guest User

Untitled

a guest
Jan 16th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.65 KB | None | 0 0
  1.     public function getQtdDevolvidaPendente($idfilial, $iditembase) {
  2.  
  3.         $stmt = $this->_connection->prepare("WITH movimento
  4.     AS (SELECT sim.quantidade,
  5.                sh.idsituacaoautorizacaodevolucao,
  6.                sh.datamovimento,
  7.                Max(sh.datamovimento)
  8.                  OVER (
  9.                    partition BY s.idsolicitacao) AS ultimomovimento
  10.         FROM   gdc.solicitacaoitem si
  11.                JOIN gdc.solicitacaoitemmotivo sim
  12.                  ON sim.idfilial = si.idfilial
  13.                     AND sim.idsolicitacaoitem = si.idsolicitacaoitem
  14.                JOIN gdc.solicitacao s
  15.                  ON s.idfilial = si.idfilial
  16.                     AND s.idsolicitacao = si.idsolicitacao
  17.                JOIN gdc.solicitacaohistorico sh
  18.                  ON sh.idfilial = s.idfilial
  19.                     AND sh.idsolicitacao = s.idsolicitacao
  20.         WHERE  si.idfilial = :idfilial
  21.                AND si.iditembase = :iditembase)
  22. SELECT Sum(m.quantidade) AS quantidade
  23. FROM   movimento m
  24. WHERE  m.datamovimento = ultimomovimento
  25.       AND m.idsituacaoautorizacaodevolucao IN (" . Solicitacao::SITUACAO_AUTORIZADA_FORNECEDOR . "," . Solicitacao::SITUACAO_AGUARDANDO_AUTORIZACAO_FORNECEDOR . "," . Solicitacao::SITUACAO_AUTORIZADA_AUTOMATICAMENTE_CD ."," .Solicitacao::SITUACAO_AGUARDANDO_GERACAO_NOTA_DEVOLUCAO. ") ");
  26.  
  27.         $stmt->bind([
  28.             'iditembase' => $iditembase,
  29.             'idfilial' => $idfilial,
  30.                 ], [
  31.             'iditembase' => 'integer',
  32.             'idfilial' => 'integer',
  33.         ]);
  34.  
  35.         $stmt->execute();
  36.  
  37.         $retorno = $stmt->fetch("assoc");
  38.         return $retorno['quantidade'];
  39.     }
  40.  
  41.     public function getQtdDevolvida($idfilial, $iditembase) {
  42.  
  43.         $stmt = $this->_connection->prepare("SELECT Sum(COALESCE(ibd.quantidade, 0)) AS quantidade
  44. FROM   rst.itemnotadevolucao ind
  45.       JOIN rst.itembase ibd
  46.         ON ibd.idfilial = ind.idfilial
  47.            AND ibd.iditembase = ind.iditembasedevolucao
  48. WHERE  ind.idfilial = :idfilial
  49.       AND ind.iditembasereferente = :iditembase  ");
  50.  
  51.         $stmt->bind([
  52.             'iditembase' => $iditembase,
  53.             'idfilial' => $idfilial,
  54.                 ], [
  55.             'iditembase' => 'integer',
  56.             'idfilial' => 'integer',
  57.         ]);
  58.  
  59.         $stmt->execute();
  60.  
  61.         $retorno = $stmt->fetch("assoc");
  62.  
  63.         return $retorno['quantidade'];
  64.     }
  65.  
  66.     public function totalDevolucoes($idfilial, $iditembase) {
  67.         return (int) $this->getQtdDevolvida($idfilial, $iditembase) + $this->getQtdDevolvidaPendente($idfilial, $iditembase);
  68.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement