Do not let any software impress you!

Only let it convince your intellect.
Slider img 1
Do not look for a business paradise!

It is a waste of time.
Slider img 2
Only yourself can push you uphill.

There is no easy road to prizes.
Slider img 3
Productivity is the name of the game.

And you have to conquer it.
Slider img 4
As long as you understand it,

you will start to build your know-how.
Slider img 5
We can help with that.

We have the tools and the method.
Slider img 6
Procedure : AU_PURCHASE_COORDINATOR

AutoScript

start_agent_info
   AgentName = "AU_PURCHASE_COORDINATOR"
   AgentDescr = "Purchase Coordinator"
   AgentLanguage = ""
   __timer_interval = 0 {....define (in seconds) the timer interval for the wake up}
   __delete_on_termination = 0 {....1=the agent frees itself when terminates its task}
end_agent_info

start_bpm_activity "New Purchase Order"
start_bpm_subactivity "Purchase Form"

    prom_type = __params[1]
    rec     = __params[2]
    form     = __params[3]

    expr = strcat(rec,"=AU_EVENT")
    call OpenFormTop("ptEdit",form,"WORK.AU_EVENT",1,expr)

end_bpm_subactivity
end_bpm_activity

start_bpm_activity "Purchase Approval 1"
start_bpm_subactivity "Purchase Form"

    prom_type = __params[1]
    rec     = __params[2]
    form     = __params[3]

    call OnOpenForm_DisableAllFields()
    call OnOpenForm_EnableField("APPROVER1_YES")
    call OnOpenForm_EnableField("APPROVER1_NO")
    call OnOpenForm_EnableField("F_APPROVER2_POS_D")    
    call OnOpenForm_EnableField("PRICES_CONTROL_FLAG")        

    expr = strcat(rec,"=AU_EVENT")
    call OpenFormTop("ptEdit",form,"WORK.AU_EVENT",1,expr)

end_bpm_subactivity
start_bpm_validation

     result = 1
     yes = LookUpId("AU_EVENT",__params[2],"APPROVER1_YES")
     no     = LookUpId("AU_EVENT",__params[2],"APPROVER1_NO")
     yes = val(yes)
     no     = val(no)

     if (no = 0) and (yes = 0) then
        result = 0
        call message("Approve or disapprove purchase !")
     endif
     if (no = 1) and (yes = 1) then
        result = 0
        call message("Approve or disapprove purchase !")
     endif
     if (no = 1) then
        flag = message_yes_no("You selected to disapprove the purchase ?")
        if (flag = 0) then
         result = 0
        endif
     endif

end_bpm_validation
end_bpm_activity

start_bpm_activity "Purchase Approval 2"
start_bpm_subactivity "Purchase Form"

    prom_type = __params[1]
    rec     = __params[2]
    form     = __params[3]

    call OnOpenForm_DisableAllFields()
    call OnOpenForm_EnableField("APPROVER2_YES")
    call OnOpenForm_EnableField("APPROVER2_NO")
    call OnOpenForm_EnableField("F_APPROVER3_POS_D")
   
    expr = strcat(rec,"=AU_EVENT")
    call OpenFormTop("ptEdit",form,"WORK.AU_EVENT",1,expr)

end_bpm_subactivity
start_bpm_validation

     result = 1
     yes = LookUpId("AU_EVENT",__params[2],"APPROVER2_YES")
     no     = LookUpId("AU_EVENT",__params[2],"APPROVER2_NO")
     yes = val(yes)
     no     = val(no)

     if (no = 0) and (yes = 0) then
        result = 0
        call message("Approve or disapprove purchase !")
     endif
     if (no = 1) and (yes = 1) then
        result = 0
        call message("Approve or disapprove purchase !")
     endif
     if (no = 1) then
        flag = message_yes_no("You selected to disapprove the purchase ?")
        if (flag = 0) then
         result = 0
        endif
     endif

end_bpm_validation
end_bpm_activity

start_bpm_activity "Purchase Approval 3"
start_bpm_subactivity "Purchase Form"

    prom_type = __params[1]
    rec     = __params[2]
    form     = __params[3]

    call OnOpenForm_DisableAllFields()
    call OnOpenForm_EnableField("APPROVER3_YES")
    call OnOpenForm_EnableField("APPROVER3_NO")

    expr = strcat(rec,"=AU_EVENT")
    call OpenFormTop("ptEdit",form,"WORK.AU_EVENT",1,expr)

end_bpm_subactivity
start_bpm_validation

     result = 1
     yes = LookUpId("AU_EVENT",__params[2],"APPROVER3_YES")
     no     = LookUpId("AU_EVENT",__params[2],"APPROVER3_NO")
     yes = val(yes)
     no     = val(no)

     if (no = 0) and (yes = 0) then
        result = 0
        call message("Approve or disapprove purchase !")
     endif
     if (no = 1) and (yes = 1) then
        result = 0
        call message("Approve or disapprove purchase !")
     endif
     if (no = 1) then
        flag = message_yes_no("You selected to disapprove the purchase ?")
        if (flag = 0) then
         result = 0
        endif
     endif

end_bpm_validation
end_bpm_activity

start_bpm_activity "Send Order to supplier"
start_bpm_subactivity "Purchase Form"

    prom_type = __params[1]
    rec     = __params[2]
    form     = __params[3]

    call OnOpenForm_DisablePost()

    expr = strcat(rec,"=AU_EVENT")
    call OpenFormTop("ptEdit",form,"WORK.AU_EVENT",1,expr)

end_bpm_subactivity
end_bpm_activity

start_bpm_activity "Purchase Order"
start_bpm_subactivity "Purchase Form"

    prom_type = __params[1]
    rec     = __params[2]
    form     = __params[3]

    call OnOpenForm_DisablePost()

    expr = strcat(rec,"=AU_EVENT")
    call OpenFormTop("ptEdit",form,"WORK.AU_EVENT",1,expr)

end_bpm_subactivity
end_bpm_activity

start_bpm_activity "Goods Receipt"
start_bpm_subactivity "Purchase Form"

    prom_type = __params[1]
    rec     = __params[2]
    form     = __params[3]

    call OnOpenForm_DisablePost()

    expr = strcat(rec,"=AU_EVENT")
    call OpenFormTop("ptEdit",form,"WORK.AU_EVENT",1,expr)

end_bpm_subactivity
start_bpm_subactivity "Goods Receipt"

    rec = __params[2]
    call OpenFormTop("ptBrowse","AU_PURCHASE_GOODRECEIPT_B.FM","QRY.DATA","PORDER_MODE",rec)

end_bpm_subactivity
end_bpm_activity

start_bpm_activity "Approved Purchase"
start_bpm_subactivity "Purchase Form"

    prom_type = __params[1]
    rec     = __params[2]
    form     = __params[3]

    call OnOpenForm_DisablePost()

    expr = strcat(rec,"=AU_EVENT")
    call OpenFormTop("ptEdit",form,"WORK.AU_EVENT",1,expr)

end_bpm_subactivity
start_bpm_subactivity "Goods Receipt"
                
    rec = __params[2]
    call OpenFormTop("ptBrowse","AU_PURCHASE_GOODRECEIPT_B.FM","QRY.DATA","PORDER_MODE",rec)

end_bpm_subactivity
end_bpm_activity

start_bpm_activity "Purchase Approval 1"
start_bpm_subactivity "Form"

    prom_type = __params[1]
    rec     = __params[2]
    form     = __params[3]

    call OnOpenForm_DisableAllFields()

    expr = strcat(rec,"=AU_EVENT")
    call OpenFormTop("ptEdit",form,"WORK.AU_EVENT",1,expr)

end_bpm_subactivity
start_bpm_validation

     result = 1
     yes = LookUpId("AU_EVENT",__params[2],"APPROVER1_YES")
     no     = LookUpId("AU_EVENT",__params[2],"APPROVER1_NO")
     yes = val(yes)
     no     = val(no)

     if (no = 0) and (yes = 0) then
        result = 0
        call message("Approve or disapprove purchase !")
     endif
     if (no = 1) and (yes = 1) then
        result = 0
        call message("Approve or disapprove purchase !")
     endif
     if (no = 1) then
        flag = message_yes_no("You selected to disapprove the purchase ?")
        if (flag = 0) then
         result = 0
        endif
     endif

end_bpm_validation
end_bpm_activity

start_bpm_activity "Prices Control"
start_bpm_subactivity "Purchase Form"

    prom_type = __params[1]
    rec     = __params[2]
    form     = __params[3]

    call OnOpenForm_DisablePost()

    expr = strcat(rec,"=AU_EVENT")
    call OpenFormTop("ptEdit",form,"WORK.AU_EVENT",1,expr)
                        
end_bpm_subactivity
start_bpm_subactivity "Prices Comments"

    call message("Add Notes or attach a document with prices commenting!")

end_bpm_subactivity
end_bpm_activity

start_bpm_activity "Purchase Cover"
start_bpm_subactivity "Purchase Form"

    prom_type = __params[1]
    rec     = __params[2]
    form     = __params[3]

    call OnOpenForm_DisablePost()

    expr = strcat(rec,"=AU_EVENT")
    call OpenFormTop("ptEdit",form,"WORK.AU_EVENT",1,expr)

end_bpm_subactivity
start_bpm_subactivity "Purchase Cover"
                                
    rec = __params[2]
    call OpenFormTop("ptBrowse","AU_PURCHASE_COVER_B.FM","QRY.DATA","PORDER_MODE",rec)

end_bpm_subactivity
end_bpm_activity

start_action

     {...........purchase coordinator....}

     {.........pr_type = 1 (general) pr_type = 2 (materials)....}

     pr_type = __params[1]
     rec_id = __params[2]
     form = __params[3]

     call bpm_setprocedureowner(__activation_user)                     {.....set the procedure owner}
     call bpm_setprocedurecomment("Purchase Order")                     {.....set the procedures comment}

     user_id = SelectFrom("SELECT AU_USER FROM AU_USER WHERE (UNAME='",__activation_user,"')")
     call UpdateTable ("AU_EVENT", rec_id, "REQUESTER", user_id )

     {.............initial order form completion.......}                         

     call bpm_openatonce()
     callwait bpm_assign_job ( "New Purchase Order", __activation_user, "", 0, pr_type, rec_id, form )
                                                                                                                        
     comm      = LookUpId("AU_EVENT",rec_id,"SUBJECT")
     business_id = LookUpId("AU_EVENT",rec_id,"BUSINESS_FROM")
     appr_id     = LookUpId("AU_EVENT",rec_id,"APPROVER1")
     appr_name = LookUpId("AU_POS",appr_id,"POS_D")          
     
     call bpm_setprocedurecomment(comm)                     {.....set the procedures comment}
     call bpm_setprocedurebusiness(business_id)

     {.....................First approval....................}

     callwait bpm_assign_job ( "Purchase Approval 1", "", appr_name, 0, pr_type, rec_id, form )
                                                                        
     yes1 = LookUpId("AU_EVENT",rec_id,"APPROVER1_YES")
     no1     = LookUpId("AU_EVENT",rec_id,"APPROVER1_NO")
     pc_flag = LookUpId("AU_EVENT",rec_id,"PRICES_CONTROL_FLAG")                              
        
     approved_flag = True {....suppose its approved}
                                                
     if (yes1 = 1) then
     
        {.....................Prices Control........................}
                                                
        if (pc_flag = True) then
     
         callwait bpm_assign_job ( "Prices Control", "", "Prices Control Department", 0, pr_type, rec_id, form )

        endif
     
        appr_id = LookUpId("AU_EVENT",rec_id,"APPROVER2")

        if (appr_id > 0) then
     
         appr_name = LookUpId("AU_POS",appr_id,"POS_D")        
        
         {...................Second approval.....................}

         callwait bpm_assign_job ( "Purchase Approval 2", "", appr_name, 0, pr_type, rec_id, form )

         yes2 = LookUpId("AU_EVENT",rec_id,"APPROVER2_YES")
         no2 = LookUpId("AU_EVENT",rec_id,"APPROVER2_NO")
                                                
         if (yes2 = 1) then
                                                        
         appr_id = LookUpId("AU_EVENT",rec_id,"APPROVER3")

         if (appr_id > 0) then
                                        
                 appr_name = LookUpId("AU_POS",appr_id,"POS_D")        
        
                 {....................Third approval....................}

                 callwait bpm_assign_job ( "Purchase Approval 3", "", appr_name, 0, pr_type, rec_id, form )

                 yes3 = LookUpId("AU_EVENT",rec_id,"APPROVER3_YES")
                 no3 = LookUpId("AU_EVENT",rec_id,"APPROVER3_NO")
                
                 if (no3 = 1) then
                
                 approved_flag = False        
                
                 endif                
         endif
        
         endif
         if (no2 = 1) then
        
         approved_flag = False        
        
         endif
                                                                                
        endif
        
     endif          
     if (no1 = 1) then

        approved_flag = False
        
     endif
     
     if (approved_flag = True) then
     
        {.................Send order to the supplier............................}
        callwait bpm_assign_job ( "Send Order to supplier", __activation_user, "", 0, pr_type, rec_id, form )

        {.................cashier involvement..................}
        cashier_comm = LookUpId("AU_EVENT",rec_id,"COMM_CASHIER_INFO")

        if (cashier_comm <> "") then

         call bpm_assign_job ( "Purchase Order", "", "Cashier", 0, pr_type, rec_id, form )

        endif

        {...................receipt of goods and invoice............................}
        receipt_pos = LookUpId("AU_EVENT",rec_id,"DELIVERED_TO")
        receipt_pos = LookUpId("AU_POS",receipt_pos,"POS_D")

        split_in_branch

         callwait bpm_assign_job ( "Approved Purchase", "", "Accounting Department", 0, pr_type, rec_id, form )

        and_branch

         callwait bpm_assign_job ( "Purchase Cover", "", "Accounting Department", 0, pr_type, rec_id, form )

        and_branch

         callwait bpm_assign_job ( "Goods Receipt", "", receipt_pos, 0, pr_type, rec_id, form )

        join_branches


     endif

end_action