Fix #7123 - getting abra ready to test
[Pman.Xtuple] / VoidSalesAndPurchaseOrders.php
index e476bc5..244ca1f 100644 (file)
@@ -3,17 +3,42 @@ 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)
     {
-        $cohead = DB_DataObejct::factory('cohead');
+        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');
+        
+        PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, array($this, 'onPearError'));
+        
+        DB_DataObject::factory('cohead')->lockTables();
+        
+        $cohead = DB_DataObject::factory('cohead');
         $cohead->whereAdd("
             cohead_status != 'X'
         ");
@@ -22,12 +47,32 @@ class Pman_Xtuple_VoidSalesAndPurchaseOrders extends Pman_Roo
         while ($cohead->fetch()){
             $co = clone ($cohead);
             
-            $cobmiscs = $co->cobmiscs();
+            $this->log("Voiding Sales Order : {$co->cohead_number}");
             
-            print_r($cobmiscs);exit;
+            $co->clear($this);
+        }
+        
+        
+        $pohead = DB_DataObject::factory('pohead');
+        $pohead->find();
+        
+        while ($pohead->fetch()){
+            $po = clone ($pohead);
             
+            $this->log("Voiding Purchase Order : {$po->pohead_number}");
             
+            $po->clear($this);
         }
+        
+        
+        $this->jok('DONE');
+        
+        exit;
+    }
+    
+    function log($str)
+    {
+        echo "$str \n";
     }
         
 }
\ No newline at end of file