Subversion Repositories SmartDukaan

Rev

Rev 1251 | Rev 4013 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1251 Rev 3044
Line 10... Line 10...
10
    sys.path.insert(0, os.getcwd())
10
    sys.path.insert(0, os.getcwd())
11
 
11
 
12
from shop2020.logistics.service.impl import DataService
12
from shop2020.logistics.service.impl import DataService
13
from shop2020.logistics.service.impl.DataService import Awb, Provider
13
from shop2020.logistics.service.impl.DataService import Awb, Provider
14
 
14
 
15
def load_awb_numbers(filename, provider_name):
15
def load_awb_numbers(filename, provider_id, type):
16
    DataService.initialize('logistics')
16
    DataService.initialize('logistics')
17
 
17
 
18
    provider = Provider.get_by(name=provider_name)
18
    provider = Provider.get_by(id=provider_id)
19
    if provider is None:
19
    if provider is None:
20
        provider = Provider()
-
 
21
        provider.name = provider_name
-
 
22
        session.commit()
20
        exit()
23
    
21
    
24
    workbook = xlrd.open_workbook(filename)
22
    workbook = xlrd.open_workbook(filename)
25
    sheet = workbook.sheet_by_index(0)
23
    sheet = workbook.sheet_by_index(0)
26
    num_rows = sheet.nrows
24
    num_rows = sheet.nrows
27
    for rownum in range(1, num_rows):
25
    for rownum in range(1, num_rows):
28
        awb_number = sheet.row_values(rownum)[0]
26
        awb_number = sheet.row_values(rownum)[0]
29
        awb = Awb()
27
        awb = Awb()
30
        awb.awb_number = int(awb_number)
28
        awb.awb_number = int(awb_number)
31
        awb.is_available = True
29
        awb.is_available = True
32
        awb.provider = provider
30
        awb.provider = provider
33
        awb.type = "Prepaid"
31
        awb.type = type
34
    session.commit()
32
    session.commit()
35
 
33
 
36
def main():
34
def main():
37
    parser = optparse.OptionParser()
35
    parser = optparse.OptionParser()
38
    parser.add_option("-f", "--file", dest="filename",
36
    parser.add_option("-f", "--file", dest="filename",
39
                   default="AwbNumbers.xls", type="string",
37
                   default="AwbNumbers.xls", type="string",
40
                   help="Read the AWB numbers from FILE",
38
                   help="Read the AWB numbers from FILE",
41
                   metavar="FILE")
39
                   metavar="FILE")
42
    parser.add_option("-P", "--provider", dest="provider_name",
40
    parser.add_option("-P", "--provider", dest="provider_id",
43
                      type="string", help="Load these entries for PROVIDER",
41
                      type="int", help="Load these entries for PROVIDER",
44
                      metavar="PROVIDER")
42
                      metavar="PROVIDER")
-
 
43
    parser.add_option("-t", "--type", dest="type",
-
 
44
                      type="string", help="The TYPE of orders these AWB numbers are for",
-
 
45
                      metavar="TYPE")
45
    (options, args) = parser.parse_args()
46
    (options, args) = parser.parse_args()
46
    if len(args) != 0:
47
    if len(args) != 0:
47
        parser.error("You've supplied extra arguments. Are you sure you want to run this program?")
48
        parser.error("You've supplied extra arguments. Are you sure you want to run this program?")
48
    filename = options.filename
49
    filename = options.filename
49
    provider_name = options.provider_name
50
    provider_id = options.provider_id
-
 
51
    type = options.type
50
    if filename is None or provider_name is None:
52
    if filename is None or provider_id is None or type is None:
51
        parser.error("A provider's name and a filename must be provided. Use -h for usage details.")
53
        parser.error("A provider's name and a filename must be provided. Use -h for usage details.")
52
    load_awb_numbers(filename, provider_name)
54
    load_awb_numbers(filename, provider_id, type)
53
 
55
 
54
if __name__ == '__main__':
56
if __name__ == '__main__':
55
    main()
57
    main()