<?php
Function PuxarPrecoPromocional( $nIte_CodigoI=0, $nQtd_Itens=0, $bCalcular=False, $nIte_Preco_Nor=0, $sFat_Dat_Hor='' ) {
  Global $sData_Trabalho;
  If ( EMPTY($sData_Trabalho) ) {
     $sData_Trabalho = SQLVarConfig('DATA_DE_TRABALHO');   // Data de trabalho do sistema
  }
  $nIte_Pre_Nor = -1;
  //
  If ( $nIte_CodigoI>0 ) {
     $sSQLQuery =
       "SELECT * ".
       "FROM cad_promocao_itens ".
       "WHERE ". 
       "CPI_CODPROINT = ".$nIte_CodigoI." AND ".
       "(".
         "(CPI_PARQUAN>0 AND CPI_PARQUAN <= ".$nQtd_Itens.") OR ".
         "(CPI_QTDMULT>0 AND CPI_QTDMULT <= ".$nQtd_Itens.") ".
       ")".
       "AND ".
       "COALESCE(CPI_DATACANCE,0) = 0 AND ".
       "( ( COALESCE(CPI_DIASEMANA,0) = 0 AND ".
           "CPI_DATAINICI <= '".$sData_Trabalho."' AND " .
           "CPI_DATAFINAL >= '".$sData_Trabalho."' ".
       ") OR ".
       "( CPI_DIASEMANA > 0 AND ".
         "CPI_DIASEMANA = DAYOFWEEK('".$sData_Trabalho."')) ".
       ") ".
       "ORDER BY CPI_DATAINICI DESC LIMIT 1;";
     $Row = MYSQL_QUERY($sSQLQuery) Or Die( $sSQLQuery.'<BR>'.MYSQL_ERROR() );
     If ($Row = MYSQL_FETCH_ARRAY($Row,MYSQL_ASSOC)) {
        $nIte_Pre_Nor = -2;
        $bCnd_Semana = False;
        For ( $nDia_Semana=1; $nDia_Semana<=7; $nDia_Semana++ ) {
            $sId_HrSm_Chk = 'CPI_HRSM'.$nDia_Semana.'_HABI';
            If ( @$Row[$sId_HrSm_Chk]+0 ) {
               $bCnd_Semana = True;
               BREAK;
            }
        }
        If ( $bCnd_Semana ) {
           $sV_HoraAtual = DATE('H:i:s');
           If ( ! EMPTY($sFat_Dat_Hor) ) {
              $nTmp = STRLEN($sFat_Dat_Hor);
              If ( $nTmp > 8 ) {
                 $sV_HoraAtual = SUBSTR($sFat_Dat_Hor, $nTmp-8 );
              } Else {
                 $sV_HoraAtual = $sFat_Dat_Hor;
              }
           }
           // Por decisão do Cícero a representação numérica está fora do padrão ISO-8601 do dia da semana : 0 (para Domingo) até 7 (para sábado)
           $nData_Trabalho = ConvertDataSTR($sData_Trabalho);
           $nDia_Semana = DATE("w", $nData_Trabalho)+1;
           $sId_HrSm_Chk  = 'CPI_HRSM'.$nDia_Semana.'_HABI';
           $sId_HrSm_Ini1 = 'CPI_HRSM'.$nDia_Semana.'_INI1';     $sId_HrSm_Fim1 = 'CPI_HRSM'.$nDia_Semana.'_FIM1';
           $sId_HrSm_Ini2 = 'CPI_HRSM'.$nDia_Semana.'_INI2';     $sId_HrSm_Fim2 = 'CPI_HRSM'.$nDia_Semana.'_FIM2';
           If ( @$Row[$sId_HrSm_Chk] ) {
              $nV_HoraAtual = ConvertHoraStr($sV_HoraAtual);
              $nVl_HrSm_Ini1 = ConvertHoraStr($Row[$sId_HrSm_Ini1]);    $nVl_HrSm_Fim1 = ConvertHoraStr($Row[$sId_HrSm_Fim1]);
              $nVl_HrSm_Ini2 = ConvertHoraStr($Row[$sId_HrSm_Ini2]);    $nVl_HrSm_Fim2 = ConvertHoraStr($Row[$sId_HrSm_Fim2]);
              //
              If ( ( $nVl_HrSm_Ini1==0  &&  $nVl_HrSm_Fim1==0 ) AND
                   ( $nVl_HrSm_Ini2==0  &&  $nVl_HrSm_Fim2==0 ) ) {
                 // Promoção aplicável
              } ElseIf ( ( $nV_HoraAtual >= $nVl_HrSm_Ini1  &&  $nV_HoraAtual <= $nVl_HrSm_Fim1 ) OR
                   ( $nV_HoraAtual >= $nVl_HrSm_Ini2  &&  $nV_HoraAtual <= $nVl_HrSm_Fim2 ) ) {
                 // Promoção aplicável
              } Else {
                 Return $nIte_Pre_Nor;
              }
           } Else {
              Return $nIte_Pre_Nor;
           }
        }
        //
        $nIte_Pre_Nor = $Row['CPI_VALORPROM'];
        If ( $Row['CPI_PARQUAN']>0 ) {
           If ( $bCalcular ) {
              $nIte_Pre_Nor = $Row['CPI_VALORPROM'] * $nQtd_Itens;
           }
        } ElseIf ( $Row['CPI_QTDMULT']>0 ) {
           If ( $bCalcular ) {
              $nIte_Pre_Nor = 0;
              $nQtd_TmpCalc = $nQtd_Itens;
              While (True) {
                 If ( $nQtd_TmpCalc<$Row['CPI_QTDMULT'] ) {
                    $nIte_Pre_Nor += ($nQtd_TmpCalc * $nIte_Preco_Nor);
                    BREAK;
                 }
                 $nIte_Pre_Nor += $Row['CPI_VALORPROM'] * $Row['CPI_QTDMULT'];
                 $nQtd_TmpCalc -= $Row['CPI_QTDMULT'];
              }
           }
        }
     }
  }
  //
  Return $nIte_Pre_Nor;
  //
}
//
Function Puxar_SubT_Promocao( $nIte_CodigoI=0, $nQtd_Itens=0, $nFat_Tip_Loc=0, $sData_Consulta='' ) {
  Global $sData_Trabalho;
  If ( EMPTY($sData_Consulta) ) {
	 $sData_Consulta = $sData_Trabalho;
  }
  $b_Retorno = False;
  //
  If ( $nIte_CodigoI>0 ) {
     $sSQLQuery =
        "SELECT CPI_P_BALCAO, CPI_P_DELIVERY, CPI_P_MESA ".
        "FROM cad_promocao_itens ".
        "WHERE ". 
		"CPI_SUBTOT_FC AND ".
        "CPI_CODPROINT = ".$nIte_CodigoI." AND ".
		"CPI_PARQUAN <= ".$nQtd_Itens." AND ".
        "CPI_DATACANCE IS NULL AND ".
        "( ( COALESCE(CPI_DIASEMANA,0) = 0 AND ".
            "CPI_DATAINICI <= '".$sData_Trabalho."' AND " .
            "CPI_DATAFINAL >= '".$sData_Trabalho."' ".
        ") OR ".
        "( CPI_DIASEMANA > 0 AND ".
          "CPI_DIASEMANA = DAYOFWEEK('".$sData_Trabalho."')) ".
        ") ".
        "ORDER BY CPI_DATAINICI DESC LIMIT 1;";
     $Row = MYSQL_QUERY($sSQLQuery) Or Die( $sSQLQuery.'<BR>'.MYSQL_ERROR() );
     If ($Row = MYSQL_FETCH_OBJECT($Row)) {
        // Tipo do local (0=Mesa, 1=Balcao, 2=Entrega)
        If ( $nFat_Tip_Loc==1 ) {
           $b_Retorno = $Row->CPI_P_BALCAO+0;
        } ElseIf ( $nFat_Tip_Loc==2 ) {
           $b_Retorno = $Row->CPI_P_DELIVERY+0;
        } Else {
           $b_Retorno = $Row->CPI_P_MESA+0;
		}
     }
  }
  //
  Return $b_Retorno;
  //
}
//
Function PuxarPrecoCusto( $nIte_CodigoI=0, $sTipo ) {
   $nIte_Custo_G =0;
    
   //
   If ( $nIte_CodigoI>0 ) {
     $sSQLQuery =
        "SELECT ITE_CODIGOI,ITE_PRE_CUS_001, ".
		       "ITE_PRE_CUS_002, ITE_PRE_CUS_003, ".
			   "ITE_PRE_CUS_004,ITE_PRE_CUSTO_N, ".
			   "ITE_PRE_CUSTO_M ". 
		"FROM cad_produto ".
        "WHERE ". 
        "ITE_CODIGOI = '".$nIte_CodigoI."';";
     $Row = MYSQL_QUERY($sSQLQuery) Or Die( $sSQLQuery.'<BR>'.MYSQL_ERROR() );
     If ($Row = MYSQL_FETCH_OBJECT($Row)) {
        
		If ($sTipo=='N') {
		  $nIte_Custo_G = $Row->ITE_PRE_CUSTO_N;
		} ElseIf ($sTipo=='M'){
		  $nIte_Custo_G = $Row->ITE_PRE_CUSTO_M;
		} ElseIf ($sTipo=='1'){
	      $nIte_Custo_G = $Row->ITE_PRE_CUS_001;
		} ElseIf ($sTipo=='2'){
	      $nIte_Custo_G = $Row->ITE_PRE_CUS_002;
        } ElseIf ($sTipo=='3'){
	      $nIte_Custo_G = $Row->ITE_PRE_CUS_003;
        } ElseIf ($sTipo=='4'){
	      $nIte_Custo_G = $Row->ITE_PRE_CUS_004;		  
		}
		
     }
   }
   //
   Return ( $nIte_Custo_G);
   //
}
//
Function PuxarTaxaPromocional() {
  $nPer_Txa = 0;
  
  $sSQLQuery =
     "SELECT CPI_PERCEPROM ".
     "FROM cad_promocao_itens ".
     "WHERE ". 
       "CPI_DATACANCE IS NULL AND ".
	   "CPI_TIP_TABEL=1 AND ".    // SOMENTE TAXAS
       "( ( COALESCE(CPI_DIASEMANA,0) = 0 AND ".
             "CURDATE() >= CPI_DATAINICI AND ".
             "CURDATE() <= CPI_DATAFINAL ".
          ") OR ".
          "( coalesce(CPI_DIASEMANA,0) > 0 AND ".
             "CPI_DIASEMANA = DAYOFWEEK(CURDATE()) ".
          ")". 
       ") AND ".
       "( (TIME(CPI_HORAR_INI) = 0) OR ".      
          "CURTIME() >= TIME(CPI_HORAR_INI) AND ".
          "CURTIME() <= TIME(CPI_HORAR_FIM) ".
       ")".
     "ORDER BY CPI_DATAINICI DESC LIMIT 1;";

  $Row = MYSQL_QUERY($sSQLQuery) Or Die( $sSQLQuery.'<BR>'.MYSQL_ERROR() );
  If ($Row = MYSQL_FETCH_OBJECT($Row)) {
     $nPer_Txa = $Row->CPI_PERCEPROM;
  } Else {
     $nPer_Txa = SQLVarConfig('GARCOM_GAR_COMISSAO');
  }
  
  //
  Return $nPer_Txa;
  //
}

//
// Funcão que faz comunicação via HTTP, posta dados e captura retorno
//Function ComunicaUrl( $s_Endereco_URL="", $a_Dados_Post=ARRAY() ) {
//   // Inicializa o objeto do componente
//   $h_CURL = CURL_INIT();
//   $b_Usar_Post = COUNT($a_Dados_Post);
//   // Configura
//   CURL_SETOPT($h_CURL, CURLOPT_URL           , $s_Endereco_URL );
//   CURL_SETOPT($h_CURL, CURLOPT_TIMEOUT       , 10 ); 
//   CURL_SETOPT($h_CURL, CURLOPT_POST          , $b_Usar_Post );
//   CURL_SETOPT($h_CURL, CURLOPT_RETURNTRANSFER, True );
//   CURL_SETOPT($h_CURL, CURLOPT_SSL_VERIFYPEER, False );
//   //curl_setopt($ch, CURLOPT_BINARYTRANSFER    , True );
//   //curl_setopt($ch, CURLOPT_HEADER            , True );
//   If ( $b_Usar_Post ) {
//      CURL_SETOPT($h_CURL, CURLOPT_POSTFIELDS     , $a_Dados_Post );
//   }
//   CURL_SETOPT($h_CURL, CURLOPT_HTTPHEADER    , array('Accept: charset=UTF-8'));
//   CURL_SETOPT($h_CURL, CURLOPT_USERAGENT     , $_SERVER['HTTP_USER_AGENT']); 
//   // Executa a consulta
//   $sRet_Dados = CURL_EXEC($h_CURL);
//   //
//   $nRet_CodigoHttp = CURL_GETINFO($h_CURL, CURLINFO_HTTP_CODE    )+0;
//   $nRet_TamanhoDwn = CURL_GETINFO($h_CURL, CURLINFO_SIZE_DOWNLOAD)+0;
//   // Encerra o objeto
//   CURL_CLOSE($h_CURL);
//   //
//   Return ARRAY( $sRet_Dados, $nRet_CodigoHttp );
//}
//
//
// Funcão que faz comunicação via HTTP, posta dados e captura retorno
Function ComunicaUrl( $s_Endereco_URL="", $a_Dados_Post=ARRAY(), $b_Postar_JSon=False, $nTimeout = 10 ) {
   // Inicializa o objeto do componente
   $h_CURL = CURL_INIT();
   $b_Usar_Post = COUNT($a_Dados_Post);
   $a_Http_Head = ARRAY('Accept: charset=UTF-8');
   // Configura
   CURL_SETOPT($h_CURL, CURLOPT_URL           , $s_Endereco_URL );
   CURL_SETOPT($h_CURL, CURLOPT_TIMEOUT       , $nTimeout       ); 
   CURL_SETOPT($h_CURL, CURLOPT_POST          , $b_Usar_Post    );
   CURL_SETOPT($h_CURL, CURLOPT_RETURNTRANSFER, True );
   CURL_SETOPT($h_CURL, CURLOPT_SSL_VERIFYPEER, False );
   //curl_setopt($ch, CURLOPT_BINARYTRANSFER    , True );
   //curl_setopt($ch, CURLOPT_HEADER            , True );
   If ( $b_Usar_Post ) {
	  If ( $b_Postar_JSon ) {
		 $a_Http_Head[] = 'Content-Type: application/json';
         CURL_SETOPT($h_CURL, CURLOPT_POSTFIELDS, JSON_ENCODE($a_Dados_Post) );
	  } Else {
         CURL_SETOPT($h_CURL, CURLOPT_POSTFIELDS, $a_Dados_Post );
	  }
   }
   CURL_SETOPT($h_CURL, CURLOPT_HTTPHEADER    , $a_Http_Head);
   CURL_SETOPT($h_CURL, CURLOPT_USERAGENT     , $_SERVER['HTTP_USER_AGENT']); 
   // Executa a consulta
   $sRet_Dados = CURL_EXEC($h_CURL);
   //
   $nRet_CodigoHttp = CURL_GETINFO($h_CURL, CURLINFO_HTTP_CODE    )+0;
   $nRet_TamanhoDwn = CURL_GETINFO($h_CURL, CURLINFO_SIZE_DOWNLOAD)+0;
   // Encerra o objeto
   CURL_CLOSE($h_CURL);
   //
   Return ARRAY( $sRet_Dados, $nRet_CodigoHttp );
}





?>