Fix #7123 - getting abra ready to test
[Pman.Xtuple] / VoidSalesAndPurchaseOrders.php
index 80e2363..244ca1f 100644 (file)
@@ -3,16 +3,33 @@ require_once 'Pman/Roo.php';
 
 class Pman_Xtuple_VoidSalesAndPurchaseOrders extends Pman_Roo
 {   
+    static $cli_desc = "Void ALL the Sales Orders / Vouchers / Purchase Orders - Make Sure you know what is going to do!!!";
+    
+    static $cli_opts = array(
+        'confirm' => array(
+            'desc' => 'Confirm',
+            'default' => '',
+            'short' => 'f',
+            'min' => 0,
+            'max' => 1,
+        )
+    );
+    
     function getAuth()
     {
         if (HTML_FlexyFramework::get()->cli) {
-            return false;
+            return true;
         }
-        return parent::getAuth();
+        
+        return false;
     }
    
-    function get()
+    function get($v = '', $opts)
     {
+        if(empty($opts['confirm']) || $opts['confirm'] !== 'I am sure to void all things'){
+            $this->jerr("If you know what is going to do, try -f 'I am sure to void all things'");
+        }
+        
         $this->transObj = DB_DataObject::Factory('cohead');
         
         $this->transObj->query('BEGIN');
@@ -21,28 +38,41 @@ class Pman_Xtuple_VoidSalesAndPurchaseOrders extends Pman_Roo
         
         DB_DataObject::factory('cohead')->lockTables();
         
-//        $cohead = DB_DataObject::factory('cohead');
-//        $cohead->whereAdd("
-//            cohead_status != 'X'
-//        ");
-//        $cohead->find();
-//        
-//        while ($cohead->fetch()){
-//            $cohead->clear($this);
-//        }
+        $cohead = DB_DataObject::factory('cohead');
+        $cohead->whereAdd("
+            cohead_status != 'X'
+        ");
+        $cohead->find();
+        
+        while ($cohead->fetch()){
+            $co = clone ($cohead);
+            
+            $this->log("Voiding Sales Order : {$co->cohead_number}");
+            
+            $co->clear($this);
+        }
         
         
         $pohead = DB_DataObject::factory('pohead');
         $pohead->find();
         
         while ($pohead->fetch()){
-            $pohead->clear($this);
+            $po = clone ($pohead);
+            
+            $this->log("Voiding Purchase Order : {$po->pohead_number}");
+            
+            $po->clear($this);
         }
-        exit;
         
-        $this->jerr('ROLL BACK');
+        
+        $this->jok('DONE');
+        
         exit;
     }
     
+    function log($str)
+    {
+        echo "$str \n";
+    }
         
 }
\ No newline at end of file