*** empty log message ***
[fa-stable.git] / purchasing / includes / db / supp_trans_db.inc
1 <?php
2
3 //-------------------------------------------------------------------------------------------------------------
4
5 function add_supp_trans($type, $supplier_id, $date_, $due_date, $reference, $supp_reference, 
6         $amount, $amount_tax, $discount, $err_msg="")
7 {
8         $date = date2sql($date_);
9         $due_date = date2sql($due_date);
10         
11         $trans_no = get_next_trans_no($type);   
12
13         $curr = get_supplier_currency($supplier_id);
14         $rate = get_exchange_rate_from_home_currency($curr, $date_);    
15
16
17         $sql = "INSERT INTO ".TB_PREF."supp_trans (trans_no, type, supplier_id, tran_date, due_date, 
18                 reference, supp_reference, ov_amount, ov_gst, rate, ov_discount) ";
19         $sql .= "VALUES ($trans_no, $type, $supplier_id, '$date', '$due_date',
20                 '$reference', '$supp_reference', $amount, $amount_tax, $rate, $discount)";
21         
22         if ($err_msg == "")
23                 $err_msg = "Cannot insert a supplier transaction record";
24                 
25         db_query($sql, $err_msg);               
26
27         return $trans_no;       
28 }
29
30 //-------------------------------------------------------------------------------------------------------------
31
32 function get_supp_trans($trans_no, $trans_type=-1)
33 {
34         $sql = "SELECT ".TB_PREF."supp_trans.*, (".TB_PREF."supp_trans.ov_amount+".TB_PREF."supp_trans.ov_gst+".TB_PREF."supp_trans.ov_discount) AS Total, 
35                 ".TB_PREF."suppliers.supp_name AS supplier_name, ".TB_PREF."suppliers.curr_code AS SupplierCurrCode ";
36         
37         if ($trans_type == 22) 
38         {
39                 // it's a payment so also get the bank account
40                 $sql .= ", ".TB_PREF."bank_accounts.bank_name, ".TB_PREF."bank_accounts.bank_account_name, ".TB_PREF."bank_accounts.bank_curr_code, 
41                         ".TB_PREF."bank_trans_types.name AS BankTransType, ".TB_PREF."bank_trans.amount AS BankAmount,
42                         ".TB_PREF."bank_trans.ref ";  
43         }  
44         
45         $sql .= " FROM ".TB_PREF."supp_trans, ".TB_PREF."suppliers "; 
46
47         if ($trans_type == 22) 
48         {
49                 // it's a payment so also get the bank account
50                 $sql .= ", ".TB_PREF."bank_trans, ".TB_PREF."bank_accounts, ".TB_PREF."bank_trans_types ";  
51         }       
52         
53         $sql .= " WHERE ".TB_PREF."supp_trans.trans_no=$trans_no 
54                 AND ".TB_PREF."supp_trans.supplier_id=".TB_PREF."suppliers.supplier_id";
55                                         
56         if ($trans_type > 0)
57                 $sql .= " AND ".TB_PREF."supp_trans.type=$trans_type ";                                 
58                                         
59         if ($trans_type == 22) 
60         {
61                 // it's a payment so also get the bank account
62                 $sql .= " AND ".TB_PREF."bank_trans.trans_no =$trans_no
63                         AND ".TB_PREF."bank_trans.type=$trans_type      
64                         AND ".TB_PREF."bank_trans_types.id = ".TB_PREF."bank_trans.bank_trans_type_id
65                         AND ".TB_PREF."bank_accounts.account_code=".TB_PREF."bank_trans.bank_act ";  
66         }                                               
67         
68         $result = db_query($sql, "Cannot retreive a supplier transaction");
69         
70     if (db_num_rows($result) == 0) 
71     {
72        // can't return nothing
73        display_db_error("no supplier trans found for given params", $sql, true);
74        exit;
75     }
76     
77     if (db_num_rows($result) > 1) 
78     {
79        // can't return multiple
80        display_db_error("duplicate supplier transactions found for given params", $sql, true);
81        exit;
82     }   
83     
84     return db_fetch($result);           
85 }
86
87 //----------------------------------------------------------------------------------------
88
89 function get_supplier_transactions($extra_fields=null, $extra_conditions=null, $extra_tables=null)
90 {
91         $sql = "SELECT ".TB_PREF."supp_trans.*,
92                 ov_amount+ov_gst+ov_discount AS Total,   
93                 ".TB_PREF."suppliers.supp_name, ".TB_PREF."suppliers.address,
94                 ".TB_PREF."suppliers.curr_code ";
95                                 
96         if ($extra_fields)
97                 $sql .= ", $extra_fields ";                     
98                                 
99         $sql .= " FROM ".TB_PREF."supp_trans, ".TB_PREF."suppliers ";
100         if ($extra_tables)
101                 $sql .= " ,$extra_tables ";
102                                 
103         $sql .= " WHERE ".TB_PREF."supp_trans.supplier_id=".TB_PREF."suppliers.supplier_id";
104                                 
105         if ($extra_conditions)
106                 $sql .= " AND $extra_conditions ";      
107                 
108         $sql .= " ORDER BY trans_no";   
109         
110         return db_query($sql, "Cannot retreive supplier transactions");
111 }
112
113 //----------------------------------------------------------------------------------------
114
115 function exists_supp_trans($type, $type_no)
116 {
117         if ($type == 25)
118                 return exists_grn($type_no);
119                 
120         $sql = "SELECT trans_no FROM ".TB_PREF."supp_trans WHERE type=$type
121                 AND trans_no=$type_no";
122         $result = db_query($sql, "Cannot retreive a supplier transaction");     
123         
124     return (db_num_rows($result) > 0);                          
125 }
126
127 //----------------------------------------------------------------------------------------
128
129 function void_supp_trans($type, $type_no)
130 {
131         $sql = "UPDATE ".TB_PREF."supp_trans SET ov_amount=0, ov_discount=0, ov_gst=0, 
132                 alloc=0 WHERE type=$type AND trans_no=$type_no";
133                         
134         db_query($sql, "could not void supp transactions for type=$type and trans_no=$type_no");
135 }
136
137 //----------------------------------------------------------------------------------------
138
139 function post_void_supp_trans($type, $type_no)
140 {
141         if ($type == 22) 
142         {
143                 void_supp_payment($type, $type_no);
144                 return true;
145         }
146         
147         if ($type == 20 || $type == 21) 
148         {
149                 void_supp_invoice($type, $type_no);
150                 return true;            
151         }
152          
153         if ($type == 25) 
154         {
155                 return void_grn($type_no);
156         }        
157         
158         return false;   
159 }
160
161 //----------------------------------------------------------------------------------------
162
163 ?>