public static Action ApproveXBRL_action(XBRL_event_info xei, Dividend existing_dvd) { if (xei == null) { return(Action.None); } if (existing_dvd == null) { return(Action.Create_New_Event); } bool diffRef_sameDepo_flag = XBRL_event_matrix.DifferentRef_from_sameDepo(xei, existing_dvd); if (diffRef_sameDepo_flag) { return(Action.Create_New_Event); } if (xei.IsCompleteEvent_flag) { if (existing_dvd.IsCompleteEvent_flag) { if (xei.Sponsored) { return(Action.Update_Existing_event); } else //Unsponsored XBRL { if (xei.IsFirstFiler) { return(Action.Update_Existing_event); } else { return(Action.Add_Ref_to_Current); } } } else //In-complete Existing Event { return(Action.Update_Existing_event); } } else // In-complete XBRL { if (existing_dvd.IsCompleteEvent_flag) { return(Action.Add_Ref_to_Current); } else //In-complete Existing Event { if (xei.Sponsored) { return(Action.Update_Existing_event); } else //Unsponsored XBRL { if (xei.IsFirstFiler) { return(Action.Update_Existing_event); } else { return(Action.Add_Ref_to_Current); } } } } }