Langsung ke konten utama

Call Multiple SP

function submit($data)
 {
      
  $vNotes               = $data['vNotes'];
  $vCreated_By          = $data['vCreated_By'];
  $records              = $data['records']; 
  $vScript_Id           = $data['vScript_Id'];
  $vBatch_No            = '';
  $vBatch_Id            = ''; 
  
  
  try{
    $success = true;
    // Header
    $sql1       = "CALL sp_Create_SMS_Batch(:vNotes,:vCreated_By,:vBatch_No,:vBatch_Id)"; 
    $stmt1  = oci_parse($this->db->conn_id, $sql1); 
    
    // Header Bind sql1 the input parameter
    oci_bind_by_name($stmt1,':vNotes',$vNotes);
    oci_bind_by_name($stmt1,':vCreated_By',$vCreated_By);       
    
    // Header Bind sql1 the output parameter
    oci_bind_by_name($stmt1,':vBatch_No',$Batch_No,32); 
    oci_bind_by_name($stmt1,':vBatch_Id',$vBatch_Id,32);  
    
    // return sql1
    $success     = $success && @oci_execute($stmt1); 
                
    if(!$success)
    {
     $err1 = oci_error($stmt1);  
     throw new Exception('ERROR Header : '. $err1['message']);
    }                       
                
    // Detail
    foreach ($records as $value)
    {
     $sql2        = "CALL sp_Create_SMS_Entry(:vBuyer_Id,:vScript_Id,:vBatch_Id,:vCreated_By,:vPromo_Id)";
        $stmt2      = oci_parse($this->db->conn_id, $sql2); 
     
     // Detail Bind sql2 the input parameter
     oci_bind_by_name($stmt2,':vBuyer_Id',$value['BUYER_ID']);
     oci_bind_by_name($stmt2,':vScript_Id',$vScript_Id); 
     oci_bind_by_name($stmt2,':vBatch_Id',$vBatch_Id);
     oci_bind_by_name($stmt2,':vCreated_By',$vCreated_By);
     
     // Detail Bind sql2 the output parameter
     oci_bind_by_name($stmt2,':vPromo_Id',$vPromo_Id);
                    
     // return sql 2     
     $success     = $success && @oci_execute($stmt2); 
                    
     if(!$success)
                    {
                        $err2 = oci_error($stmt2);  
      throw new Exception('ERROR Detail : ' . $err2['message']);
                    }       
    }    
        
    $sql3        = "CALL sp_Submit_Mncshop_SMS(:vBatch_No)";
    $stmt3   = oci_parse($this->db->conn_id, $sql3); 
     
     // SMS LINKTONE Bind sql 3 the input parameter
    oci_bind_by_name($stmt3,':vBatch_No',$Batch_No); 
    // return sql3
    $success     = $success && @oci_execute($stmt3);
    
       
   if(!$success){
    $err3 = oci_error($stmt3);
      throw new Exception('ERROR Send SMS Linktone : '.$err3['message']);
   }    
   $result['commit']    = oci_commit($this->db->conn_id);
   $result['status']   = TRUE;
   $result['message']   = 'Sukses Insert Batch Nomer: ' .$Batch_No;
   $result['batch_no']  = $Batch_No;
  }  
  catch (Exception $e) {

   
   $result['status']   = FALSE;
   $result['message']  = $e->getMessage(); 
      $result['rollback'] = oci_rollback($this->db->conn_id);
  
  }
  
    
  
  
  
  return $result;    
 }

Komentar

Popular Posts

Extjs html class render

Ext.select('.datepicker').each(function(el){ new Ext.form.DateField({ allowBlank : true, renderTo: el, format:'m-d-Y', editable:false, width:140, fieldCls : 'tanggal x-form-field x-form-text x-trigger-noedit', }); }); Ext.select('.note').each(function(el){ new Ext.form.field.TextArea({ allowBlank : false, renderTo: el, grow : true, hideLabel : true, fieldCls : 'pesan x-form-field x-form-text x-trigger-noedit', }); });