Jump to content

Recommended Posts

Posted

I was just wondering if anyone has used Device Scripting on the MFP's to limit copy volume per month or week? I have been working on converting the sample script that limits color coping by day, but haven't tried it yet.

 

[font=Consolas][color=#D4D4D4][color=#6a9955]/*[/color][/color]
[color=#D4D4D4][color=#6a9955]* Set a monthly copy limit and block copy access once this limit has been reached.[/color][/color]
[color=#D4D4D4][color=#6a9955]*[/color][/color]
[color=#D4D4D4][color=#6a9955]* Note: Test before use as not all devices will support this feature.[/color][/color]
[color=#D4D4D4][color=#6a9955]*       It's also important to note that color copy access can only be blocked *on login*[/color][/color]
[color=#D4D4D4][color=#6a9955]*       Therefore this recipe comes with disclaimer that once a user has been logged in, they[/color][/color]
[color=#D4D4D4][color=#6a9955]*       can continue doing color copies and you will only be able to block them when the user next[/color][/color]
[color=#D4D4D4][color=#6a9955]*       logs in.[/color][/color]
[color=#D4D4D4][color=#6a9955]*/[/color][/color]
[color=#D4D4D4][color=#6a9955]// eslint-disable-next-line no-unused-vars[/color][/color]
[color=#D4D4D4][color=#569cd6]function[/color] [color=#dcdcaa]deviceLoginHook[/color]([color=#9cdcfe]inputs[/color], [color=#9cdcfe]actions[/color]) {[/color]
[color=#D4D4D4]  [/color]
[color=#D4D4D4]    [color=#569cd6]var[/color] [color=#9cdcfe]MAX_SHEETS_PER_MONTH[/color] = [color=#b5cea8]600[/color];[/color]
[color=#D4D4D4]    [color=#569cd6]var[/color] [color=#9cdcfe]spedTeachers[/color] = [color=#9cdcfe]inputs[/color].[color=#9cdcfe]user[/color].[color=#dcdcaa]isInGroup[/color]([color=#ce9178]"SpedTeachers"[/color]);[/color]
[color=#d4d4d4]    [/color][color=#569CD6]var[/color][color=#d4d4d4] [/color][color=#9cdcfe]exampleGroup [/color][color=#d4d4d4]= [/color][color=#9CDCFE]inputs[/color][color=#d4d4d4].[/color][color=#9CDCFE]user[/color][color=#d4d4d4].[/color][color=#DCDCAA]isInGroup[/color][color=#d4d4d4]([/color][color=#CE9178]"example group"[/color][color=#d4d4d4]);[/color]
[color=#D4D4D4]    [color=#569cd6]var[/color] [color=#9cdcfe]currentMonthlyCount[/color] = [color=#9cdcfe]inputs[/color].[color=#9cdcfe]user[/color].[color=#dcdcaa]getNumberProperty[/color]([color=#ce9178]"per-month"[/color]);[/color]
[color=#D4D4D4]    [color=#569cd6]var[/color] [color=#9cdcfe]monthLastSeen[/color] = [color=#9cdcfe]inputs[/color].[color=#9cdcfe]user[/color].[color=#dcdcaa]getProperty[/color]([color=#ce9178]"month-last-seen"[/color]);[/color]
[color=#D4D4D4]    [color=#569cd6]var[/color] [color=#9cdcfe]currentMonthIndex[/color] = [color=#9cdcfe]inputs[/color].[color=#9cdcfe]job[/color].[color=#9cdcfe]date[/color].[color=#dcdcaa]getMonth[/color]();[/color]
[color=#d4d4d4]
[/color][color=#D4D4D4]    [color=#c586c0]if[/color] ([color=#9cdcfe]inputs[/color].[color=#9cdcfe]user[/color].[color=#9cdcfe]isInGroup[/color] == [/color][color=#9cdcfe]exampleGroup [/color][color=#d4d4d4]|| [/color][color=#9CDCFE]inputs[/color][color=#d4d4d4].[/color][color=#9CDCFE]user[/color][color=#d4d4d4].[/color][color=#9CDCFE]isInGroup[/color][color=#d4d4d4] != [/color][color=#9CDCFE]spedTeachers[/color][color=#d4d4d4]) {[/color]
[color=#d4d4d4]

[/color][color=#D4D4D4]       [color=#6a9955]// Reset monthly copy counter if:[/color][/color]
[color=#D4D4D4]       [color=#6a9955]//    i) Monthly copy count doesn't exist for user, or[/color][/color]
[color=#D4D4D4]       [color=#6a9955]//    ii) We don't have a month the last copy job was performed, or[/color][/color]
[color=#D4D4D4]       [color=#6a9955]//    iii) It's a new month[/color][/color]
[color=#D4D4D4]       [color=#c586c0]if[/color] ([color=#9cdcfe]currentMonthlyCount[/color] == [color=#569cd6]null[/color] || [color=#9cdcfe]monthLastSeen[/color] == [color=#569cd6]null[/color] || [color=#9cdcfe]monthLastSeen[/color] != [color=#9cdcfe]currentMonthIndex[/color]) {[/color]
[color=#D4D4D4]         [color=#9cdcfe]currentMonthlyCount[/color] = [color=#b5cea8]0[/color];[/color]
[color=#D4D4D4]         [color=#9cdcfe]actions[/color].[color=#9cdcfe]user[/color].[color=#dcdcaa]onCompletionSaveProperty[/color]([color=#ce9178]"per-month"[/color], [color=#9cdcfe]currentMonthlyCount[/color]);[/color]
[color=#D4D4D4]       }[/color]
[color=#d4d4d4]
[/color][color=#D4D4D4]       [color=#c586c0]if[/color] ([color=#9cdcfe]currentMonthlyCount[/color] >= [color=#9cdcfe]MAX_SHEETS_PER_MONTH[/color]) {[/color]
[color=#D4D4D4]         [color=#9cdcfe]actions[/color].[color=#9cdcfe]log[/color].[color=#dcdcaa]info[/color]([color=#ce9178]"Denying copy access for user "[/color] + [color=#9cdcfe]inputs[/color].[color=#9cdcfe]user[/color].[color=#9cdcfe]username[/color] + [color=#ce9178]" as Monthly page limit has been reached"[/color]);[/color]
[color=#D4D4D4]         [color=#9cdcfe]actions[/color].[color=#9cdcfe]login[/color].[color=#dcdcaa]denyColorCopyAccess[/color]();[/color]
[color=#D4D4D4]       }[/color]
[color=#d4d4d4]
[/color][color=#D4D4D4]     }[/color]
[color=#D4D4D4]}  [/color]
[color=#D4D4D4]  [/color]
[color=#D4D4D4]  [color=#6a9955]// eslint-disable-next-line no-unused-vars[/color][/color]
[color=#D4D4D4]  [color=#569cd6]function[/color] [color=#dcdcaa]deviceJobLogHook[/color]([color=#9cdcfe]inputs[/color], [color=#9cdcfe]actions[/color]) {[/color]
[color=#D4D4D4]    [color=#569cd6]var[/color] [color=#9cdcfe]currentMonthlyCount[/color] = [color=#9cdcfe]inputs[/color].[color=#9cdcfe]user[/color].[color=#dcdcaa]getNumberProperty[/color]([color=#ce9178]"per-month"[/color]);[/color]
[color=#D4D4D4]    [color=#569cd6]var[/color] [color=#9cdcfe]currentMonthIndex[/color] = [color=#9cdcfe]inputs[/color].[color=#9cdcfe]job[/color].[color=#9cdcfe]date[/color].[color=#dcdcaa]getMonth[/color]();[/color]
[color=#D4D4D4]    [color=#c586c0]if[/color] ([color=#9cdcfe]inputs[/color].[color=#9cdcfe]job[/color].[color=#9cdcfe]isCopy[/color]) {[/color]
[color=#D4D4D4]      [color=#6a9955]// read in number of color pages for copy job and save[/color][/color]
[color=#D4D4D4]      [color=#9cdcfe]actions[/color].[color=#9cdcfe]user[/color].[color=#dcdcaa]onCompletionIncrementNumberProperty[/color]([color=#ce9178]"per-month"[/color], [color=#9cdcfe]currentMonthlyCount[/color]);[/color]
[color=#D4D4D4]      [/color]
[color=#D4D4D4]      [color=#6a9955]// update color copy day to today.[/color][/color]
[color=#D4D4D4]      [color=#569cd6]var[/color] [color=#9cdcfe]month[/color] = [color=#569cd6]new[/color] [color=#4ec9b0]Date[/color]();[/color]
[color=#D4D4D4]      [color=#9cdcfe]actions[/color].[color=#9cdcfe]user[/color].[color=#dcdcaa]onCompletionSaveProperty[/color]([color=#ce9178]"month-last-seen"[/color], [color=#9cdcfe]currentMonthIndex[/color]);[/color]
[color=#D4D4D4]    }[/color]
[color=#D4D4D4]  }[/color]
[color=#D4D4D4]  [/color]
[/font]

 

Any feed back would be welcome.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...