Huge sales module changes toward delivery and invoicing separation. Includes some...
[fa-stable.git] / reporting / includes / form_types.inc
1 <?php
2
3 $form_types = array (
4                                 
5                                 10=>  array('code' => 'si', 'name' => _("Sales Invoice")),
6                                 11=>  array('code' => 'si', 'name' => _("Sales Credit Note")),
7                                 30=>  array('code' => 'so', 'name' => _("Sales Order")),
8                                 
9                                 18=>  array('code' => 'po', 'name' => _("Purchase Order")),
10                                 
11                                 26=>  array('code' => 'wo', 'name' => _("Work Order")),
12                                 28=>  array('code' => 'wo', 'name' => _("Work Order Issue")),
13                                 29=>  array('code' => 'wo', 'name' => _("Work Order Production")),
14                                 
15                                 40=>  array('code' => 'qw', 'name' => _("Cheque Withdrawal")),
16                                 41=>  array('code' => 'qd', 'name' => _("Cheque Deposit")),
17                                 
18                                 50=>  array('code' => 'cw', 'name' => _("Cash Withdrawal")),
19                                 51=>  array('code' => 'cd', 'name' => _("Cash Deposit")),
20                                 
21                                 60=>  array('code' => 'ir', 'name' => _("Inventory Release")),
22                                 61=>  array('code' => 'ia', 'name' => _("Inventory Add")),
23                                 62=>  array('code' => 'it', 'name' => _("Inventory Return"))                                                            
24                                         );
25                                         
26 function getFormTypeName($type)
27 {
28         global $form_types;
29         return $form_types[$type]['name'];
30 }
31
32 function add_forms_for_sys_type($trans_type, $trans_id, $ParamFrom=null, $ParamTo=null)
33 {
34         switch ($trans_type) {
35         case 1 : // bank payment
36                 case 22 : // payment to supplier 
37                         add_form_entry(50, $trans_type, $trans_id, $ParamFrom, $ParamTo); 
38                         break;
39                 
40                 case 12: // payment from customer                       
41         case 2 : // bank deposit
42                         add_form_entry(51, $trans_type, $trans_id, $ParamFrom, $ParamTo);
43                         break;
44         
45     case 4 : // bank transfer - withdraw and deposit
46                         add_form_entry(50, $trans_type, $trans_id, $ParamFrom, $ParamTo);
47                         add_form_entry(51, $trans_type, $trans_id, $ParamTo, $ParamFrom);
48                         break;          
49                 
50                 case 10 : // sales invoice - invoice form
51                         add_form_entry(10, $trans_type, $trans_id);
52                         break;
53
54                 case 13 : // sales dispatch - inventory release
55                         add_form_entry(60, $trans_type, $trans_id, $ParamFrom); 
56                         break;
57                 
58                 case 11 : // sales credit - inventory return and credit note forms
59                         add_form_entry(62, $trans_type, $trans_id, $ParamFrom); 
60                         add_form_entry(11, $trans_type, $trans_id);
61                         break;
62                 
63                 case 16 : // location transfer
64                         add_form_entry(60, $trans_type, $trans_id, $ParamFrom);
65                         add_form_entry(61, $trans_type, $trans_id, $ParamTo);
66                         break;
67                 
68                 case systypes::inventory_adjustment() : // inventory adjustment
69
70                         // $ParamFrom : if 1 inventory add, 0 inventory release
71                         if ($ParamFrom)
72                                 add_form_entry(61, $trans_type, $trans_id, $ParamTo);
73                         else
74                                 add_form_entry(60, $trans_type, $trans_id, $ParamTo);
75                         break;  
76                         
77                 case systypes::po() : // purchase order
78                         add_form_entry(18, $trans_type, $trans_id);
79                         break; 
80                         
81                 case 25 : // purchase order delivery
82                         add_form_entry(61, $trans_type, $trans_id, $ParamFrom);
83                         break;  
84
85                 case systypes::work_order() : // work order
86                         add_form_entry(26, $trans_type, $trans_id);
87                         break;  
88                         
89                 case 28 : // work order issue
90                         // $ParamFrom : if 1 inventory add, 0 inventory release
91                         if ($ParamFrom)
92                                 add_form_entry(61, $trans_type, $trans_id, $ParamTo);
93                         else
94                                 add_form_entry(60, $trans_type, $trans_id, $ParamTo);
95                         break;  
96                         
97                 case 29 : // work order production
98                         // $ParamFrom is the quantity - if +ve inventory add, -ve inventory release
99                         if ($ParamFrom >= 0)
100                                 add_form_entry(61, $trans_type, $trans_id, $ParamTo);
101                         else
102                                 add_form_entry(60, $trans_type, $trans_id, $ParamTo);
103                         break;                                                  
104                 
105                 case 30 : // sales order - sales order form
106                         add_form_entry(30, $trans_type, $trans_id);
107                         break;
108         }
109 }       
110
111 function add_form_entry($form_type, $trans_type, $trans_id, $param1=null, $param2=null) 
112 {
113         $sql = "SELECT max(form_id) FROM ".TB_PREF."form_items WHERE form_type=$form_type";
114         $result = db_query($sql, "could not get next form_id");
115         $row = db_fetch_row($result);
116         $form_id = $row[0] + 1;
117         
118         $sql = "INSERT INTO ".TB_PREF."form_items (form_id, form_type, trans_type, trans_id, param1, param2)
119                 VALUES ($form_id, $form_type, $trans_type, $trans_id, '$param1', '$param2')";
120         $result = db_query($sql, "could not add form entry for $trans_type, $trans_id");
121 }                       
122
123 function delete_forms_for_systype($trans_type, $trans_id)
124 {
125         $sql = "DELETE FROM ".TB_PREF."form_items WHERE trans_type=$trans_type AND trans_id=$trans_id";
126         $result = db_query($sql, "could not delete form entry for $trans_type, $trans_id");
127 }
128
129 function get_form_entries($trans_type, $trans_id)
130 {
131         $sql = "SELECT * FROM ".TB_PREF."form_items WHERE trans_type=$trans_type AND trans_id=$trans_id";
132         $result = db_query($sql, "could not query form entry for $trans_type, $trans_id");
133         
134         return $result;
135 }
136
137 ?>