-
Notifications
You must be signed in to change notification settings - Fork 3
/
commerce_fulfillment.install
129 lines (125 loc) · 5.37 KB
/
commerce_fulfillment.install
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<?php
/***********************************************************************************
* This file is part of Commerce Fulfilment. A drupal module used to fulfil *
* orders placed in the Drupal Commerce module. *
* *
* Authors: Dylan Harvey, Evan Schisler, Levi Weir, Parker Groenewoud *
* *
* Project for COSC224 - Projects in Computer Science at Okanagan College. *
* Sponsored by Acro Media *
* *
* *
* Version: 1.0 - 12/03/15 - (Code before header) *
* 1.1 - 26/03/15 - (Code after header) *
* 1.2 - 08/04/15 - (Added additional fields to the shipment entity.) *
* Originally from: http://choosealicense.com/licenses/mit/ *
* The MIT License (MIT) *
* *
* *
* *
* Permission is hereby granted, free of charge, to any person obtaining a copy *
* of this software and associated documentation files (the "Software"), to deal *
* in the Software without restriction, including without limitation the rights *
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell *
* copies of the Software, and to permit persons to whom the Software is *
* furnished to do so, subject to the following conditions: *
* *
* The above copyright notice and this permission notice shall be included in all *
* copies or substantial portions of the Software. *
* *
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR *
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, *
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE *
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER *
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, *
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE *
* SOFTWARE. *
**********************************************************************************/
/**
* @return array
* implement hook_schema()
* creates the entity base table in the database
*
*/
function commerce_fulfilment_schema() {
$schema = array();
//@todo - not sure this comment is very helpful, it is pretty clear this is a package entity
//package entity
$schema['commerce_fulfilment_packages'] = array(
'description' => 'The base table for the package entity',
'fields' => array(
'package_id' => array(
'description' => 'Primary key of the package entity',
'type' => 'serial',
'unsigned' => TRUE,
'not null' => TRUE,
),
'order_id' => array(
'type' => 'blob',
'not null'=> TRUE,
),
'line_items' => array (
'type' => 'blob',
'serialize' => TRUE,
'not null' => FALSE,
),
'box_type' => array(
'type' => 'varchar',
'length' => '255',
'not null' => FALSE,
),
'shipping_info' => array(
'type' => 'blob',
'serialize'=> TRUE,
'not null' => TRUE,
),
),
'primary key' => array('package_id'),
);
//shipment entity
$schema['commerce_fulfilment_shipments'] = array(
'description' => 'The base table for the Shipment entity',
'fields' => array(
'shipment_id' => array(
'description' => 'Primary key of the Shipment entity',
'type' => 'serial',
'unsigned' => TRUE,
'not null' => TRUE,
),
'order_num' => array(
'type' => 'blob',
'not null'=> TRUE,
),
'status' => array(
'description' => 'Status of the shipment("Pending" or "Completed")',
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
),
'package_num' => array(
'description' => 'An array of the packages in the shipment.',
'type' => 'blob',
'serialize' => TRUE,
'not null' => FALSE,
),
'dates' => array (
'type' => 'blob',
'serialize' => TRUE,
'not null' => FALSE,
),
'method' => array (
'type' => 'blob',
'serialize' => TRUE,
'not null' => FALSE,
),
'tracking_number' => array(
'description' => 'Tracking number for the shipments',
'type' => 'varchar',
'length' => 255,
'not null' => FALSE,
),
),
'primary key' => array('shipment_id'),
);
return $schema;
}