Changeset 342

Show
Ignore:
Timestamp:
Fri Oct 12 15:29:16 2007
Author:
Alexander
Message:

include monthly view in resource tracking

Files:

Legend:

Unmodified
Added
Removed
Modified
  • scripts/trunk/Track Resource Hours/Install Assignment Hours.py

    r144 r342  
    85 85     ct = [  
    86 86     { 'Name': 'ActualEndDate',       'Label': 'Actual\nEnd Date',   'DataType': 'd', 'AccessType': 'd', 'T': 'A', 'Edit': True,  'Width': 80  },  
    87       { 'Name': 'Week/EffortHours',     'Label': 'Week/Effort',       'DataType': 'i', 'AccessType': 's', 'T': 'X', 'Edit': True,  'Width': 40  },  
    88 87 #    { 'Name': 'Day/EffortHours',      'Label': 'Day/Effort',        'DataType': 'i', 'AccessType': 's', 'T': 'X', 'Edit': True,  'Width': 40  },  
      88     { 'Name': 'Week/EffortHours',     'Label': 'Week/Effort',       'DataType': 'i', 'AccessType': 's', 'T': 'X', 'Edit': True,  'Width': 40  },  
      89     { 'Name': 'Month/EffortHours',     'Label': 'Month/Effort',       'DataType': 'i', 'AccessType': 's', 'T': 'X', 'Edit': True,  'Width': 40  },  
    89 90         ]  
    90 91     Data.AddReportType(rt, ct)  
     
    98 99     { 'Name': 'ResourcesShortNames', 'Label': 'Resource\nShort Names', 'Path': 'ID/Assignment/TaskID/ResourceID/Resource/ShortName', 'DataType': 't', 'AccessType': 'list', 'T': 'A', 'Edit': False,  'Width': 80  },  
    99 100     { 'Name': 'ActualEndDate',       'Label': 'Actual\nEnd Date',   'DataType': 'd', 'AccessType': 'd', 'T': 'A', 'Edit': True,  'Width': 80  },  
    100       { 'Name': 'Week/EffortHours',     'Label': 'Week/Effort',       'DataType': 'i', 'AccessType': 's', 'T': 'X', 'Edit': True,  'Width': 40  },  
    101 101     { 'Name': 'Day/EffortHours',      'Label': 'Day/Effort',        'DataType': 'i', 'AccessType': 's', 'T': 'X', 'Edit': True,  'Width': 40  },  
      102     { 'Name': 'Week/EffortHours',     'Label': 'Week/Effort',       'DataType': 'i', 'AccessType': 's', 'T': 'X', 'Edit': True,  'Width': 40  },  
      103     { 'Name': 'Month/EffortHours',     'Label': 'Month/Effort',       'DataType': 'i', 'AccessType': 's', 'T': 'X', 'Edit': True,  'Width': 40  },  
    102 104         ]  
    103 105     Data.AddReportType(rt, ct)  
     
    114 116            'SuggestedColumns': ',Name;,Day/EffortHours,,21' }  
    115 117     ct = [  
    116       { 'Name': 'Week/EffortHours',     'Label': 'Week/Effort',                'DataType': 'i', 'AccessType': 's', 'T': 'X', 'Edit': True,  'Width': 40 },  
    117 118     { 'Name': 'Day/EffortHours',      'Label': 'Day/Effort',                'DataType': 'i', 'AccessType': 's', 'T': 'X', 'Edit': True,  'Width': 40 },  
      119     { 'Name': 'Week/EffortHours',     'Label': 'Week/Effort',                'DataType': 'i', 'AccessType': 's', 'T': 'X', 'Edit': True,  'Width': 40 },  
      120     { 'Name': 'Month/EffortHours',     'Label': 'Month/Effort',                'DataType': 'i', 'AccessType': 's', 'T': 'X', 'Edit': True,  'Width': 40 },  
    118 121         ]  
    119 122     Data.AddReportType(rt, ct)  
     
    141 144  
    142 145     # add required data tables  
    143       Data.AddTable('ProjectWeek')  
    144 146     # Data.AddTable('ProjectDay')  
    145       Data.AddTable('TaskWeek')  
      147     Data.AddTable('ProjectWeek')  
      148     Data.AddTable('ProjectMonth')  
    146 149     Data.AddTable('TaskDay')  
    147       Data.AddTable('ResourceWeek')  
      150     Data.AddTable('TaskWeek')  
      151     Data.AddTable('TaskMonth')  
    148 152     Data.AddTable('ResourceDay')  
    149       Data.AddTable('AssignmentWeek')  
      153     Data.AddTable('ResourceWeek')  
      154     Data.AddTable('ResourceMonth')  
    150 155     Data.AddTable('AssignmentDay')  
    151    
      156     Data.AddTable('AssignmentWeek')  
      157     Data.AddTable('AssignmentMonth')  
    152 158  
    153 159     Data.SetUndo("Install Assignment Effort Tables")  
  • scripts/trunk/Track Resource Hours/Calculate Assignment Hours.py

    r202 r342  
    78 78     """  
    79 79     # make sure all required tables exist  
    80       if not (Data.Database.has_key('ProjectWeek')  
    81           and Data.Database.has_key('ResourceWeek')  
    82           and Data.Database.has_key('ResourceDay')  
    83           and Data.Database.has_key('TaskWeek')  
    84           and Data.Database.has_key('TaskDay')  
    85           and Data.Database.has_key('AssignmentWeek')  
    86           and Data.Database.has_key('AssignmentDay')  
    87           ):  
    88           hint("Summary tables haven't been created. Be sure to run the install script.")  
    89           return  
    90   #        pass   # give error message  
      80     for table in ['ProjectWeek', 'ProjectMonth',  
      81                   'ResourceDay', 'ResourceWeek', 'ResourceMonth',  
      82                   'TaskDay', 'TaskWeek', 'TaskMonth',  
      83                   'AssignmentDay', 'AssignmentWeek', 'AssignmentMonth']:  
      84         # make sure these tables are in the database  
      85         Data.AddTable(table)  
    91 86  
    92 87     # create short cuts to all of the tables used  
     
    96 91     da = Data.Database['Assignment']  
    97 92     dpw = Data.Database['ProjectWeek']  
    98       drw = Data.Database['ResourceWeek']  
      93     dpm = Data.Database['ProjectMonth']  
    98 93     drd = Data.Database['ResourceDay']  
    99       dtw = Data.Database['TaskWeek']  
      94     drw = Data.Database['ResourceWeek']  
      95     drm = Data.Database['ResourceMonth']  
    100 96     dtd = Data.Database['TaskDay']  
    101       daw = Data.Database['AssignmentWeek']  
      97     dtw = Data.Database['TaskWeek']  
      98     dtm = Data.Database['TaskMonth']  
    102 99     dad = Data.Database['AssignmentDay']  
      100     daw = Data.Database['AssignmentWeek']  
      101     dam = Data.Database['AssignmentMonth']  
    103 102  
    104 103 # was going to create an index of lists of resource per task, but decided to use  
     
    202 201  
    203 202     ipw = makeindex(dpw, 'ProjectID', 'Period')  
    204       irw = makeindex(drw, 'ResourceID', 'Period')  
      203     ipm = makeindex(dpm, 'ProjectID', 'Period')  
    204 203     ird = makeindex(drd, 'ResourceID', 'Period')  
    205       itw = makeindex(dtw, 'TaskID', 'Period')  
      204     irw = makeindex(drw, 'ResourceID', 'Period')  
      205     irm = makeindex(dpm, 'ResourceID', 'Period')  
    206 206     itd = makeindex(dtd, 'TaskID', 'Period')  
      207     itw = makeindex(dtw, 'TaskID', 'Period')  
      208     itm = makeindex(dpm, 'TaskID', 'Period')  
    207 209  
    208 210     def makeindex2(table1, table2, k1, k2, k3, k4):  
     
    218 220         return indx  
    219 221  
    220       iaw = makeindex2(daw, da, 'AssignmentID', 'TaskID', 'ResourceID', 'Period')  
    221 222     iad = makeindex2(dad, da, 'AssignmentID', 'TaskID', 'ResourceID', 'Period')  
      223     iaw = makeindex2(daw, da, 'AssignmentID', 'TaskID', 'ResourceID', 'Period')  
      224     iam = makeindex2(dam, da, 'AssignmentID', 'TaskID', 'ResourceID', 'Period')  
    222 225  
    223 226     # create summaries by:  
     
    230 233     # AssignmentDay  
    231 234  
    232       spw = {}; srw = {}; srd = {}; stw = {}; std = {}; saw = {}  
      235     spw = {}; spm = {}  
      236     srw = {}; srd = {}; srm = {};  
      237     stw = {}; std = {}; stm = {}  
      238     saw = {}; sam = {}  
    233 239     for k, v in sad.iteritems():  
    234 240         tid, rid, d = k  
     
    240 246         di = Data.DateConv[d]  
    241 247         w = Data.DateIndex[di - Data.DateInfo[di][2]]  # convert to beginning of week (date index) minus (day of week)  
      248         mi = Data.GetPeriodStart("Month", di, 0)  
      249         m = Data.DateToString(mi)  
    242 250         hours = v  
    243 251  
    244           if debug: print "t, r, p, d, w, h", tid, rid, pid, d, w, hours  
      252         if debug: print "t, r, p, d, w, h", tid, rid, pid, d, w, m, hours  
    244 252  
    245 253         def dosum(stable, key):  
     
    252 260         if hours:  
    253 261             dosum(spw, (pid, w))  
    254               dosum(srw, (rid, w))  
      262             dosum(spm, (pid, m))  
    254 262             dosum(srd, (rid, d))  
    255               dosum(stw, (tid, w))  
      263             dosum(srw, (rid, w))  
      264             dosum(srm, (rid, m))  
    256 265             dosum(std, (tid, d))  
      266             dosum(stw, (tid, w))  
      267             dosum(stm, (tid, m))  
    257 268             dosum(saw, (tid, rid, w))  
      269             dosum(sam, (tid, rid, m))  
    258 270  
    259 271     # routines to update database from summaries  
     
    313 325  
    314 326     updatekey1week(spw, dpw, ipw, 'ProjectWeek', 'ProjectID')  
    315       updatekey1week(srw, drw, irw, 'ResourceWeek', 'ResourceID')  
      327     updatekey1week(spm, dpm, ipm, 'ProjectMonth', 'ProjectID')  
      328  
    316 329     updatekey1week(srd, drd, ird, 'ResourceDay', 'ResourceID')  
    317       updatekey1week(stw, dtw, itw, 'TaskWeek', 'TaskID')  
      330     updatekey1week(srw, drw, irw, 'ResourceWeek', 'ResourceID')  
      331     updatekey1week(srm, drm, irm, 'ResourceMonth', 'ResourceID')  
      332  
    318 333     updatekey1week(std, dtd, itd, 'TaskDay', 'TaskID')  
      334     updatekey1week(stw, dtw, itw, 'TaskWeek', 'TaskID')  
      335     updatekey1week(stm, dtm, itm, 'TaskMonth', 'TaskID')  
    319 336  
    320       updatekey2week(saw, daw, iaw, ia, 'AssignmentWeek', 'AssignmentID')  
    321 337     updatekey2week(sad, dad, iad, ia, 'AssignmentDay', 'AssignmentID')  
      338     updatekey2week(saw, daw, iaw, ia, 'AssignmentWeek', 'AssignmentID')  
      339     updatekey2week(sam, dam, iam, ia, 'AssignmentMonth', 'AssignmentID')  
    322 340  
    323 341     Data.SetUndo('Update Planned Effort Summaries')