Accounting Report

Accounting Reports must be done monthly. From Application Menu Settings – Account you can define your Accounting Period. If a Calendar is connected, you can also get a Reminder as Calendar Event.

TimeTracker also reminds you in different ways:

  • If APP is minimized
  • Marking Tabbed Pane with a star
  • Showing a Bell at HomeScreen

Here’s the minimized view:

Q01

You see that my Report is due since 106 days. To document the workflows on this device I have three months open.

From Homepage you see the Bell and the Marker from TabbedPane. The Bell is animated.

Q02

Cascades makes it easy to animate Objects. Here’s the code:

Container {
    id: dueContainer
    visible: false
    onVisibleChanged: {
        if(visible){
            rotateBell.play()
        } else {
            rotateBell.stop()
        }
    }
    horizontalAlignment: HorizontalAlignment.Right
    verticalAlignment: VerticalAlignment.Top
    ImageView {
        imageSource: "asset:///images/ca_notification_unread.png"
    }
    gestureHandlers: [
        TapHandler {
            onTapped: {
                rootPane.goToReportingTab()  
                visible = false
            }
        }
    ]
    animations: [
        SequentialAnimation {
            id: rotateBell
            repeatCount: AnimationRepeatCount.Forever
            RotateTransition {
                fromAngleZ: 15
                toAngleZ: -15
                duration: 600
            }
            RotateTransition {
                fromAngleZ: -15
                toAngleZ: 15
                duration: 600
            }
        }
    ]
    function onAccountingDueChanged(state){
        visible = state
    }
    onCreationCompleted: {
        visible = monitorTime.isAccountingDue()
        monitorTime.accountingDueChanged.connect(onAccountingDueChanged)
    }
} // dueContainer

Let me explain some cool concepts of Cascades UI development.

To make it easy to maintain I created a Container (dueContainer) and this Container lives inside a DockLayout from HomePage. To position the Bell Image I set Horizontal Alignment to right and Vertical Alignment to Top.

By default the Container isn’t visible (set to false)

on creation time I’m checking (logic in C++) if the Account is due and if yes, setting the visible property to true. Also I’m connecting a Signal from C++ (accountingDueChanged) to a QML function (onAccountingDueChanged) working as a Slot. Signals and Slots are a powerful architecture to send and receive events asynchron. Later on when Account Reporting is done, my C++ logic will send a signal and the bell will disappear by magic or come back if next due date is reached.

Take a look at the visible property: as soon as the value changes the onVisibleChanged() function will be called – again Signal and Slot concept. If visible I start the animation (rotateBell.play)

rotateBell is a simple sequential animation moving the bell. The animation is directly attached to the ImageView.

There’s also a GestureHandler attached: a TapHandler: as soon as the User taps on the Bell the Reporting Tab will be opened and setting the bell to invisible will also stop the animation.

Doesn’t matter if the user taps on the Bell or goes to the Report Tab – this Page will be opened:

Q03

This Page is a Dynamic Page – the content will be different and depends from

  • is Accounting due ?
  • is Accounting today ?
  • is all Accounting done ?

In this case I’m getting the information that my Report is due since 106 days for Accounting Period March 2014.

From ActionBar I can jump to current History (old Accounting Reports), List of Open Tracked Times (no Accounting done) or directly start creating my Accounting Report (see blue arrow)

Accounting Report is automatically filled out:

Q06

You can control the sums of hours per Category. Also you can verify and also modify (if allowed) the tracked times: all tracked times for this Accounting Period are attached to the Report and you can get the list by tapping on the ‘Attached’ Icon in the middle. Then it looks the same as from List of all Open Times – only filtered for this report. More information HowTo verify and change tracked times see here. Changing Categories of times will automatically re-calculate the sums.

Scroll down and you can add some remarks for your Manager and you can sign the report, if Signature is required from Settings.

Q07

Tap on Signature Field or Signature Action. Full Screen can be used to sign. If working on a pure Touch Device, TimeTracker automatically changes Orientation to Landscape. (See Customer Reports)

Q08

Sign and Save:

Q09

You can attach the tracked data to this report and you can suppress empty rows. If all is prepared, save the Report. You must confirm:

Q11

Then the Report will be sent out and your Report Page tells you that there’s another Report Due:

Q12

The sent Report itself looks like this:

Q13_14_15

Jumping over to History Tab we’ll see the Month there:

Q16

More Infos on History here. Back to the Reports Tab:

Q18

Q19

Create and send your report for April – now it looks better: only 16 days due

Q20

One more Accounting Report and you’re done:

Q21

History now has 3 months:

Q22

Hint: History of May is missing, because there were no Times Tracked in May.

Minimized View (ActiveFrame) also looks much better now 🙂

Q23

More Infos on different kind of TimeTracker Reports: