<?php
// ********************************************
// * Este módulo trada dos status dos pedidos *
// ********************************************
//
//
// -- Altera o status nos pedidos --
// Comando: SRV_STATUS.ALTERAR
Function Act_ALTERAR() {
  Global $aGlobal;
  // Conferir se a empresa possui o aplicativo no seu cadastro no Simdesk
  If ( ! $aGlobal->Capturar_Dados_Empresa_Simdesk() ) {
    $aGlobal->Reportar_Erro( $aGlobal->nCaptura_Emp_Err );  // ** ERRO: Empresa sem acesso ao serviço desta API
    return;
  }
  //
  $aLst_Pedidos = @$aGlobal->aDados_Recebidos['PEDIDOS'];
  If ( EMPTY($aLst_Pedidos) ) {
    $aGlobal->Reportar_Erro( 150 );              // ** ERRO: Faltando dados obrigatorios
    return;
  }
  //
  $aTmp_Pedidos = $aLst_Pedidos;
  $aLst_Pedidos = [];
  foreach ( $aTmp_Pedidos As $aItem_Pedido ) {
    $nItem_Codigo = @$aItem_Pedido['Codigo']+0;
    $sItem_Status = @$aItem_Pedido['Status'];
    $aLst_Pedidos[$nItem_Codigo] = $sItem_Status;
    $aCodigos_Fat_Geral[] = $nItem_Codigo;
  }
  $sCodigos_Fat_Geral = implode(',',$aCodigos_Fat_Geral);
  //
  $aReturno_Pedidos = [];
  foreach ( $aCodigos_Fat_Geral As $nFat_CodigoInd ) {
    $aReturno_Pedidos[$nFat_CodigoInd] = False;
  }
  //
  $aFat_Geral = P_SQL_Fat_Geral( $aGlobal->nSim_Emp_CodigoI, '', True );
  foreach ( $aFat_Geral As $aFtg ) {
    $nFat_CodigoInd = $aFtg['FAT_CODIGOIND']+0;
    $dFat_Dh_Captur = ConvertDtHrSTR( $aFtg['FAT_DH_CAPTUR'] );
    $dFat_Dh_FilAct = ConvertDtHrSTR( $aFtg['FAT_DH_FILACT'] );
    $dFat_Dh_HabEnt = ConvertDtHrSTR( $aFtg['FAT_DH_HABENT'] );
    $dFat_Dh_Aceito = ConvertDtHrSTR( $aFtg['FAT_DH_ACEITO'] );
    $dFat_Dh_Retira = ConvertDtHrSTR( $aFtg['FAT_DH_RETIRA'] );
    $dFat_Dh_Entreg = ConvertDtHrSTR( $aFtg['FAT_DH_ENTREG'] );
    $dFat_Dh_Recusa = ConvertDtHrSTR( $aFtg['FAT_DH_RECUSA'] );
    $dFat_Dh_Finali = ConvertDtHrSTR( $aFtg['FAT_DH_FINALI'] );
    $sItem_Status   = @$aLst_Pedidos[$nFat_CodigoInd];
    $bGrava_SQL     = False;
    //
    If ( EMPTY( $sItem_Status ) ) { continue; }
    //
    switch ( $sItem_Status ) {
      //
      case 'NAO_IMPORTADO':
        $dFat_Dh_Captur = 0;
        $bGrava_SQL = True;
      break;
      //
      case 'IMPORTADO':
        if ( $dFat_Dh_Captur == 0 ) {  $dFat_Dh_Captur = TIME();  }
        $dFat_Dh_Aceito = 0;
        $dFat_Dh_Retira = 0;
        $dFat_Dh_Entreg = 0;
        $dFat_Dh_Recusa = 0;
        $dFat_Dh_Finali = 0;
        $bGrava_SQL = True;
      break;
      //
      case 'FILIAL_ACEITOU':
        if ( $dFat_Dh_FilAct == 0 ) {  $dFat_Dh_FilAct = TIME();  }
        $dFat_Dh_HabEnt = 0;
        $dFat_Dh_Aceito = 0;
        $dFat_Dh_Retira = 0;
        $dFat_Dh_Entreg = 0;
        $dFat_Dh_Recusa = 0;
        $dFat_Dh_Finali = 0;
        $bGrava_SQL = True;
      break;
      //
      case 'DISPONIVEL':
        if ( $dFat_Dh_Captur == 0 ) {  $dFat_Dh_Captur = TIME();  }
        if ( $dFat_Dh_FilAct == 0 ) {  $dFat_Dh_FilAct = TIME();  }
        if ( $dFat_Dh_HabEnt == 0 ) {  $dFat_Dh_HabEnt = TIME();  }
        $dFat_Dh_Aceito = 0;
        $dFat_Dh_Retira = 0;
        $dFat_Dh_Entreg = 0;
        $dFat_Dh_Recusa = 0;
        $dFat_Dh_Finali = 0;
        $bGrava_SQL = True;
      break;
      //
      case 'COLETADO':
        if ( $dFat_Dh_Aceito == 0 ) {  $dFat_Dh_Aceito = TIME();  }
        if ( $dFat_Dh_Retira == 0 ) {  $dFat_Dh_Retira = TIME();  }
        $dFat_Dh_Entreg = 0;
        $dFat_Dh_Recusa = 0;
        $dFat_Dh_Finali = 0; 
        $bGrava_SQL = True;
      break;
      //
      case 'ENTREGUE':
        if ( $dFat_Dh_Aceito == 0 ) {  $dFat_Dh_Aceito = TIME();  }
        if ( $dFat_Dh_Retira == 0 ) {  $dFat_Dh_Retira = TIME();  }
        if ( $dFat_Dh_Entreg == 0 ) {  $dFat_Dh_Entreg = TIME();  }
        $dFat_Dh_Recusa = 0; 
        $dFat_Dh_Finali = 0; 
        $bGrava_SQL = True;
      break;
      //
      case 'RECUSADO':
        if ( $dFat_Dh_Aceito == 0 ) {  $dFat_Dh_Aceito = TIME();  }
        if ( $dFat_Dh_Retira == 0 ) {  $dFat_Dh_Retira = TIME();  }
        if ( $dFat_Dh_Recusa == 0 ) {  $dFat_Dh_Recusa = TIME();  }
        $dFat_Dh_Entreg = 0; 
        $dFat_Dh_Finali = 0; 
        $bGrava_SQL = True;
      break;
      //
      case 'FINALIZADO':
        if ( $dFat_Dh_Finali == 0 ) {  $dFat_Dh_Finali = TIME();  }
        $bGrava_SQL = True;
      break;
    }
    //
    If ( $bGrava_SQL ) {
      //
      $sSQLQuery =
        'UPDATE '.
          'fat_geral '.
        'SET '.
          'FAT_DH_CAPTUR = "'.C_TimeSt_StrDtHr_US( $dFat_Dh_Captur ).'",'.
          'FAT_DH_FILACT = "'.C_TimeSt_StrDtHr_US( $dFat_Dh_FilAct ).'",'.
          'FAT_DH_HABENT = "'.C_TimeSt_StrDtHr_US( $dFat_Dh_HabEnt ).'",'.
          'FAT_DH_ACEITO = "'.C_TimeSt_StrDtHr_US( $dFat_Dh_Aceito ).'",'.
          'FAT_DH_RETIRA = "'.C_TimeSt_StrDtHr_US( $dFat_Dh_Retira ).'",'.
          'FAT_DH_ENTREG = "'.C_TimeSt_StrDtHr_US( $dFat_Dh_Entreg ).'",'.
          'FAT_DH_RECUSA = "'.C_TimeSt_StrDtHr_US( $dFat_Dh_Recusa ).'",'.
          'FAT_DH_FINALI = "'.C_TimeSt_StrDtHr_US( $dFat_Dh_Finali ).'" '.
        'WHERE FAT_CODIGOSIM='.$aGlobal->nSim_Emp_CodigoI.' '.
          'AND FAT_CODIGOIND='.$nFat_CodigoInd.' '.
        ';';
      SQL_Query( $sSQLQuery );
      //
      $aReturno_Pedidos[$nFat_CodigoInd] = True;
    }
    //
  }
  //
  $aGlobal->aRetornoMod_JSon =
    [ 'Sucesso' => True,
      'PEDIDOS' => $aReturno_Pedidos
    ];
  return;
}
//
//
?>