Friday, April 26, 2013

Voucher Authorization in Tally ERP 9

Tally Voucher Authorization


;; Tally Tdl for Voucher Authorization
;; Take tally data backup before trying to implement any tdl
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Alt + F12  Authorisation Button Report
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[#Form: Sales Color]

    Option    : AKVoucher    : @@IsSales

    [!Form: AKVoucher]

        Add    : Button    : At End    : Authorisation

[#Form: INV Buttons]

    Add    : Button    : At End    : Authorisation

[Button    : Authorisation]

    Key        : Alt+F12
    Title    : "Authorisation"
    Action    : Execute    : Authorisation
    Inactive: $$IsCmpOwner Or @@PrintAuthorised="Yes"

[Report    : Authorisation]

    Form    : Authorisation

[Form    : Authorisation]

    No Confirm      : Yes
    Space Top       : 0.5
    Space Left      : 1
    Space Right     : 1
;;    Background      : Very Light Grey, Very Light Grey
    Full Width      : No
    Full Height     : No
    Vertical Align  : Centre
    Parts           : Authorisation

    [Part    : Authorisation]

        Lines        : MVTitle, AuthorisationUN, Authorisation PW, Authorisation Name
        Local        : Field : MVTitle : Set as      : "Company : " + ##SVCurrentCompany
        Local        : Field : MVTitle : Delete      : Border
        Local        : Line  : MVTitle : Space Bottom: 1
        Local        : Line  : MVTitle : Border    : Flush Totals
        Option        : Small Size Part

    [Line    : AuthorisationUN]

        Field        : Medium Prompt, AuthorisationUN
        Local        : Field : Medium Prompt : Info : "Name of User :"
        Space Bottom    : 0.5

        [Field    : AuthorisationUN]

            Use            : Short Name Field
            Set Always    : Yes
            Modifies    : OlymUserName
            Storage        : AKSUserName
            Table        : Invoice Authorised Users
            ShowTable    : Always
           
    [Line    : Authorisation PW]

        Field        : Medium Prompt, Authorisation Password
        Local        : Field : Medium Prompt : Info : "Pass Word(if any) :"
        Space Bottom    : 0.5

        [Field    : Authorisation Password]

            Use            : Short Name Field
            Case        : Normal
            Modifies    : OlympicPw    
            Control        : Incorect Password : $$Value != @@CompanyPName

    [Line    : Authorisation Name]

        Field        : Medium Prompt, Authorisation Name, Authorisation Name1
        Local        : Field : Medium Prompt : Info : "Level"
        Space Bottom    : 0.5

         [Field    : Authorisation Name]

            Use            : Short Name Field
            Set as        : #AuthorisationName1
            Set Always    : Yes
            Read Only    : Yes
       
         [Field    : Authorisation Name1]

            Use            : Short Name Field
            Set as        : @@CompanySecurityName
            Set Always    : Yes
            Read Only    : Yes
            Invisible    : Yes

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; User Level Security Setting
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[#Line  : CUTitle]

    Add     : Fields : At End : Info Field

    Local    : Field          : Info Field       : Info    : "Vch. Authorized?"

;[#Line  : ComPany Users]
;
;    Add    : Fields  : At End  : OlyPW, OlyIsAuthorised;;, AKDuplicateAuthorized, JL Sec YesNo

[#Part: ComPany Users]

    Local    : Line    : Company Users    : Add    : Fields : OlyPW, OlyIsAuthorised

    [Field : JLSecYesNo]
   
        Use         : Logical Field
        Sub Form     : JL Pj Security : #JLSecYesNo
        Set as         : "Yes"
        Align        : Left
        Width        : @@NameWidth/2
        Inactive    : $$IsEmpty:$Name OR $$IsSysName:$Name

    [Field  : OlyPW]

        Use            : Short Name Field
        Set as        : #CMPPassword
        Storage        : OlyPW
        Invisible    : Yes
        Set Always    : Yes

    [Field : OlyIsAuthorised]

        Use            : Logical Field
        Storage        : IsInvAuthorised
        Width        : @@NameWidth/2
        Set as        : No
        Inactive    : $$IsSysName:$$Name

    [Field : AKDuplicateAuthorized]

        Use            : Logical Field
        Storage        : IsDuplicateAuthorized
        Width        : @@NameWidth/2+5
        Set as        : No
        Inactive    : $$IsSysName:$$Name

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;  User Collections
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[Collection    : Company Users Collection]

    Type      : User List  : Company
    Child Of  : ##SVCurrentCompany

[Collection : Invoice Authorised Users]

    Type        : User List  : Company
    Child Of    : ##SVCurrentCompany
    Format        : $$Name, 20
    Filter        : FrmIsInvAuthorised
   
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Formulas
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[System  : Formula]

    Company Security Name        : $$FilterValue:$Security:CompanyUsersCollection:First:CompanySecurityFilter
    Company Security Filter    : $Name = #AuthorisationUN

    Company PName                : $$FilterValue:$OlyPW:CompanyUsersCollection:First:CompanySecurityFilter
    Incorect Password           : "Incorrect \n PassWord"
    FrmIsInvAuthorised            : $IsInvAuthorised

    OlyAuthorisation            : $$FilterValue:$IsInvAuthorised:CompanyUsersCollection:First:CompanyAuthorisedFilter
    CompanyAuthorisedFilter     : $Name=$$CmpUserName

    OlyVoucherAlter                : "Voucher Alteration" + $$NewLine + "is not allowed"

    NotAdminAndNotAuthorised    : Not $$IsCmpOwner And $$InAlterMode And Not $IsOptional And Not @@OlyAuthorisation And ((##OlympicPw="") AND NOT (@@OlyAuthorisation="Yes"))

    PrintAuthorised              : $$FilterValue:$IsInvAuthorised:CompanyUsersCollection:First:CompanyAuthorisedFilter
    NotPrintAuthorised             : Not $$IsCmpOwner AND @@PrintAuthorised="No"

    DuplicatePerson                : $$FilterValue:$IsDuplicateAuthorized:CompanyUsersCollection:First:CompanyAuthorisedFilter
    NotDuplicatePerson            : Not $$IsCmpOwner AND @@DuplicatePerson="No"

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; UDF Informations
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[System    : UDF]

    OlyPW                    : String    : 33
    IsInvAuthorised            : Logical    : 99
    AKSUserName                : String    : 143
    IsDuplicateAuthorized    : Logical    : 100

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Variables
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[Variable  : OlymUserName]

    Type    : String

[Variable  : OlympicPw]

    Type    : String

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Sales Invoice alter Control at Voucher Level
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[#Report : Voucher]

    Variable    : OlymUserName, OlympicPw

[#Report : Accounting Voucher]

    Variable    : OlymUserName, OlympicPw

[#Form: Voucher]

    Control    : OlyVoucherAlter    : @@NotAdminAndNotAuthorised AND @@IsSales

[#Form : Accounting Voucher]

    Control    : OlyVoucherAlter    : @@NotAdminAndNotAuthorised AND @@IsSales

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Disable in Print option in Create Mode
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[#Key: Print Button]

    Inactive    : If $$IsSales:$VoucherTypeName and @@NotPrintAuthorised  Then Yes else No ;;$$InCreateMode Or @@NotAdminAndNotAuthorised

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Border Setting
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[Border    : Full Thin Right]

    Right    : Thin , Full Length

[Border: Full Thin Bottom Right]

    Bottom    : Thin, Full Length
    Right    : Thin, Full Length
   
   
;; End of File

3 comments:

  1. Could please explain how its works as i added this tdl but nothing is happened . I am new in tdl

    ReplyDelete
  2. Tdl is working for sale vouchers only. Please make alteration to this tdl so that it works for all vouchers

    ReplyDelete
  3. Tdl is working for sale vouchers only. Please make alteration to this tdl so that it works for all vouchers

    ReplyDelete