New files from unstable branch
[fa-stable.git] / includes / ui / allocation_cart.inc
index ad33e573e461d72f6992312bc29922c969ca0f2a..d408c80a6d0c52e4d7419974af23a749bf1ad089 100644 (file)
@@ -22,7 +22,7 @@ class allocation
        var $type;
        var $person_id = '';
        var $person_name = '';
-       var $person_type;
+       var $person_type;       // true - supplier, otherwise customer
        var $date_;
        var $amount = 0; /*Total amount of the transaction in FX */
        
@@ -38,12 +38,12 @@ class allocation
        }
 
        function add_item($type, $type_no, $date_, $due_date, $amount, $amount_allocated, 
-               $current_allocated)
+               $current_allocated, $ref)
        {
                if ($amount > 0)
                {
                        $this->allocs[count($this->allocs)] = new allocation_item($type, $type_no, 
-                               $date_, $due_date, $amount, $amount_allocated, $current_allocated);
+                               $date_, $due_date, $amount, $amount_allocated, $current_allocated, $ref);
                        return true;
                } 
                else 
@@ -53,12 +53,12 @@ class allocation
        }
        
        function update_item($index, $type, $type_no, $date_, $due_date, 
-               $amount, $amount_allocated, $current_allocated)
+               $amount, $amount_allocated, $current_allocated, $ref)
        {
                if ($amount > 0)
                {
                        $this->allocs[$index] = new allocation_item($type, $type_no, 
-                               $date_, $due_date, $amount, $amount_allocated, $current_allocated);
+                               $date_, $due_date, $amount, $amount_allocated, $current_allocated, $ref);
                        return true;
                } 
                else 
@@ -68,7 +68,7 @@ class allocation
        }       
        
        function add_or_update_item($type, $type_no, $date_, $due_date, 
-               $amount, $amount_allocated, $current_allocated)
+               $amount, $amount_allocated, $current_allocated, $ref)
        {
                for ($i = 0; $i < count($this->allocs); $i++) 
                {
@@ -76,16 +76,18 @@ class allocation
                        if (($item->type == $type) && ($item->type_no == $type_no)) 
                        {
                                return $this->update_item($i, $type, $type_no, $date_, $due_date, 
-                                       $amount, $amount_allocated, $current_allocated);
+                                       $amount, $amount_allocated, $current_allocated, $ref);
                        }  
                }
         return $this->add_item($type, $type_no, $date_, $due_date, 
-               $amount, $amount_allocated, $current_allocated);
-       }                                               
+               $amount, $amount_allocated, $current_allocated, $ref);
+       }
 
        //
        //      Read payment or credit current/available allocations to cart.
        //
+       // FIXME - read all transactions below twice seems to be suboptimal
+       //
        function read($type = null, $trans_no = 0) 
        {
                if ($type == null) {    // re-read
@@ -129,9 +131,9 @@ class allocation
                                sql2date($myrow["due_date"]),
                                $myrow["Total"], // trans total
                                $myrow["alloc"], // trans total allocated
-                               0); // this allocation
+                               0,
+                               $myrow["reference"]); // this allocation
                }
-
                if ($trans_no == 0) return; // this is new payment
 
        /* Now get trans that might have previously been allocated to by this trans
@@ -144,14 +146,14 @@ class allocation
                else
                        $trans_items = get_allocatable_to_cust_transactions($this->person_id, 
                                $trans_no, $type);
-       
+
                while ($myrow = db_fetch($trans_items))
                {
                        $this->add_or_update_item ($myrow["type"], $myrow["trans_no"],
                                sql2date($myrow["tran_date"]),
                                sql2date($myrow["due_date"]),
                                $myrow["Total"],
-                               $myrow["alloc"] - $myrow["amt"], $myrow["amt"]);
+                               $myrow["alloc"] - $myrow["amt"], $myrow["amt"], $myrow["reference"]);
                }
        }
        //
@@ -188,7 +190,6 @@ class allocation
                                                $alloc_item->type_no, $alloc_item->current_allocated);
                                }
                                // Exchange Variations Joe Hunt 2008-09-20 ////////////////////
-
                                exchange_variation($this->type, $this->trans_no,
                                        $alloc_item->type, $alloc_item->type_no, $this->date_,
                                        $alloc_item->current_allocated,
@@ -206,7 +207,7 @@ class allocation
                else
                        update_debtor_trans_allocation($this->type,     $this->trans_no, 
                                $total_allocated);
-       
+
                commit_transaction();
 
        }
@@ -226,16 +227,19 @@ class allocation_item
        
        var $amount_allocated;
        var $amount;
+       var $ref;
        
        var $current_allocated;
        
        function allocation_item ($type, $type_no, $date_, $due_date, $amount, 
-               $amount_allocated, $current_allocated)
+               $amount_allocated, $current_allocated, $ref)
        {
 
                $this->type = $type;
                $this->type_no = $type_no;
-               
+
+               $this->ref = $ref;
+
                $this->date_ = $date_;
                $this->due_date = $due_date;
                
@@ -249,14 +253,14 @@ class allocation_item
 
 function show_allocatable($show_totals) {
 
-       global $table_style, $systypes_array;
+       global $systypes_array;
        
     $k = $counter = $total_allocated = 0;
 
        if (count($_SESSION['alloc']->allocs)) 
        {
-               start_table("$table_style width=60%");
-               $th = array(_("Transaction Type"), _("#"), _("Date"), _("Due Date"), _("Amount"),
+               start_table(TABLESTYLE, "width=60%");
+               $th = array(_("Transaction Type"), _("#"), _("Ref"), _("Date"), _("Due Date"), _("Amount"),
                        _("Other Allocations"), _("This Allocation"), _("Left to Allocate"),'','');
                table_header($th);
 
@@ -265,6 +269,7 @@ function show_allocatable($show_totals) {
                        alt_table_row_color($k);
                label_cell($systypes_array[$alloc_item->type]);
                        label_cell(get_trans_view_str($alloc_item->type, $alloc_item->type_no));
+                       label_cell($alloc_item->ref);
                label_cell($alloc_item->date_, "align=right");
                label_cell($alloc_item->due_date, "align=right");
                amount_cell($alloc_item->amount);