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_SALE_COORDINATOR

AutoScript

start_agent_info
   AgentName = "AU_SALE_COORDINATOR"
   AgentDescr = "Sale 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 Sale Order"
start_bpm_subactivity "Sale 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 "Sale Approval 1"
start_bpm_subactivity "Sale 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 sale !")
     endif
     if (no = 1) and (yes = 1) then
        result = 0
        call message("Approve or disapprove sale !")
     endif
     if (no = 1) then
        flag = message_yes_no("You selected to disapprove the sale ?")
        if (flag = 0) then
         result = 0
        endif
     endif

end_bpm_validation
end_bpm_activity

start_bpm_activity "Sale Approval 2"
start_bpm_subactivity "Sale 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 sale !")
     endif
     if (no = 1) and (yes = 1) then
        result = 0
        call message("Approve or disapprove sale !")
     endif
     if (no = 1) then
        flag = message_yes_no("You selected to disapprove the sale ?")
        if (flag = 0) then
         result = 0
        endif
     endif

end_bpm_validation
end_bpm_activity

start_bpm_activity "Sale Approval 3"
start_bpm_subactivity "Sale 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 sale !")
     endif
     if (no = 1) and (yes = 1) then
        result = 0
        call message("Approve or disapprove sale !")
     endif
     if (no = 1) then
        flag = message_yes_no("You selected to disapprove the sale ?")
        if (flag = 0) then
         result = 0
        endif
     endif

end_bpm_validation
end_bpm_activity

start_bpm_activity "Sale Order"
start_bpm_subactivity "Sale 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 Sending"
start_bpm_subactivity "Sale 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 Sending"

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

end_bpm_subactivity
end_bpm_activity

start_bpm_activity "Approved Ssle"
start_bpm_subactivity "Sale 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 Sending"

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

end_bpm_subactivity
end_bpm_activity

start_bpm_activity "Approved Sale"
start_bpm_subactivity "Sale 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 Sending"

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

end_bpm_subactivity
end_bpm_activity

start_bpm_activity "Sale Cover"
start_bpm_subactivity "Sale 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 "Sale Cover"

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

end_bpm_subactivity
end_bpm_activity

start_bpm_activity "Production of Sale"
start_bpm_subactivity "Sale 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 "Production Orders"

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

    call OpenFormTop("ptBrowse";"AU_PROD_ORDER_B.FM";"QRY.DATA","SORDER_MODE",rec)

end_bpm_subactivity
end_bpm_activity

start_bpm_activity "Sale in Progress"
start_bpm_subactivity "Sale 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_action

     {...........sale 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("Sale 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 )

     {...................................................define check points}
     call bpm_addcheckpoint("Order Setting",100)
     call bpm_addcheckpoint("Aproval 1",100)
     call bpm_addcheckpoint("Aproval 2",100)
     call bpm_addcheckpoint("Aproval 3",100)
     call bpm_addcheckpoint("Advance Payment",100)
     call bpm_addcheckpoint("Production",100)
     call bpm_addcheckpoint("Sending",100)
     call bpm_addcheckpoint("Completed",100)

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

     call bpm_setcheckpoint("Order Setting",1)
     call bpm_openatonce()
     callwait bpm_assign_job ( "New Sale 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....................}

     call bpm_setcheckpoint("Approval 1",1)
     callwait bpm_assign_job ( "Sale 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")

     approved_flag = True {....suppose its approved}

     if (yes1 = 1) then

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

        if (appr_id > 0) then

         appr_name = LookUpId("AU_POS",appr_id,"POS_D")

         {...................Second approval.....................}
         call bpm_setcheckpoint("Approval 2",1)
         callwait bpm_assign_job ( "Sale 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....................}
                 call bpm_setcheckpoint("Approval 3",1)
                 callwait bpm_assign_job ( "Sale 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

        {.................cashier involvement..................}
        {....maybe a cash deposit is neccessary in order the order to proceed!...}
        cashier_comm = LookUpId("AU_EVENT",rec_id,"COMM_CASHIER_INFO")

        if (cashier_comm <> "") then

         call bpm_setcheckpoint("Advance Payment",1)
         call bpm_assign_job ( "Sale Order", "", "Cashier", 0, pr_type, rec_id, form )

        endif

        {...................receipt of goods and invoice............................}

        sending_pos = LookUpId("AU_EVENT",rec_id,"DELIVERED_TO")
        sending_pos = LookUpId("AU_POS",sending_pos,"POS_D")

        x = bpm_assign_info ( "Sale in Progress", "", "Sales Department", 0, pr_type, rec_id, form )

        split_in_branch

         call bpm_setcheckpoint("Production",1)
         callwait bpm_assign_job ( "Production of Sale", "", "Production Department", 0, pr_type, rec_id, form )

        and_branch

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

        and_branch

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

        join_branches

        call bpm_setcheckpoint("Sending",1)
        callwait bpm_assign_job ( "Goods Sending", "", sending_pos, 0, pr_type, rec_id, form )

        call bpm_setcheckpoint("Completed",1)
     endif

end_action