[ 
http://mifosforge.jira.com/browse/MIFOS-2851?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

johnwoodlock updated MIFOS-2851:
--------------------------------


First, in an attempt to avoid the confusion of my previous comments the queries 
used again are.

1. To find customers whose meeting ids don't match their parents meeting ids.

select childcm.updated_flag, childcm.updated_meeting_id,
child.customer_id, child.status_id as status, child.display_name, 
child.customer_level_id as Level, 
child.parent_customer_id, parent.status_id as ParentStatus, 
parent.display_name as ParentDisplayName, parent.customer_level_id as 
ParentLevel, 
childcm.meeting_id as ChildMeetingId, childm.meeting_place, 
childrd.recur_after, childr.days, 
parentcm.meeting_id as ParentMeetingId, parentm.meeting_place, 
parentrd.recur_after, parentr.days 
from customer child 
join customer_meeting childcm on childcm.customer_id = child.customer_id 
join meeting childm on childm.meeting_id = childcm.meeting_id 
left join recurrence_detail childrd on childrd.meeting_id = childm.meeting_id 
left join recur_on_day childr on childr.details_id = childrd.details_id 

join customer parent on parent.customer_id = child.parent_customer_id 
join customer_meeting parentcm on parentcm.customer_id = parent.customer_id 
join meeting parentm on parentm.meeting_id = parentcm.meeting_id 
left join recurrence_detail parentrd on parentrd.meeting_id = 
parentm.meeting_id 
left join recur_on_day parentr on parentr.details_id = parentrd.details_id      

where childm.meeting_id <> parentm.meeting_id 
/*and (childm.meeting_place = parentm.meeting_place and childrd.recur_after = 
parentrd.recur_after and childr.days = parentr.days) */
order by parent.customer_id 


2. To find the 'old' structures that had their meeting details changed because 
of the transfer bug.

select oldstructure.status_id as "Old Structure Status",
oldstructure.customer_id as "Old Structure Parent Id", 
oldstructure.display_name as "Old Structure Parent Name", 
oldstructure.customer_level_Id as "Old Structure Parent Level",
oldstructureparent.customer_id as "Next Level Up Parent Id", 
oldstructureparent.display_name as "Next Level Up Parent Name", 
oldstructureparent.customer_level_Id as "Next Level Up Parent Level"
from customer child 
join customer_meeting childcm on childcm.customer_id = child.customer_id 
join meeting childm on childm.meeting_id = childcm.meeting_id 
left join recurrence_detail childrd on childrd.meeting_id = childm.meeting_id 
left join recur_on_day childr on childr.details_id = childrd.details_id 

join customer parent on parent.customer_id = child.parent_customer_id 
join customer_meeting parentcm on parentcm.customer_id = parent.customer_id 
join meeting parentm on parentm.meeting_id = parentcm.meeting_id 
left join recurrence_detail parentrd on parentrd.meeting_id = 
parentm.meeting_id 
left join recur_on_day parentr on parentr.details_id = parentrd.details_id      

left join customer_hierarchy ch on ch.customer_id = child.customer_id and 
ch.status = 0
left join customer oldstructure on oldstructure.customer_id = ch.parent_id
left join customer oldstructureparent on oldstructureparent.customer_id = 
oldstructure.parent_customer_id
where childm.meeting_id <> parentm.meeting_id 
group by oldstructure.customer_id
order by oldstructure.display_name




3. An update query to set all those customers with invalid meeting Ids to have 
their meeting Ids changed when the RegenerateScheduleTask batch job runs.

update customer child 
join customer_meeting childcm on childcm.customer_id = child.customer_id 
join meeting childm on childm.meeting_id = childcm.meeting_id 

join customer parent on parent.customer_id = child.parent_customer_id 
join customer_meeting parentcm on parentcm.customer_id = parent.customer_id 
join meeting parentm on parentm.meeting_id = parentcm.meeting_id 

set childcm.updated_flag = 1, childcm.updated_meeting_id = parentcm.meeting_id 
where childm.meeting_id <> parentm.meeting_id 



4. A list of all top level structures (all centers for secdep) and their 
meeting days (think Monday is usually 1, Friday 5)

select c.customer_id, c.display_name, c.status_id, c.customer_level_id,
m.meeting_place, 
rd.recur_after as "Schedule Every", rt.recurrence_name as "", 
r.days as "Working Day"
from customer c
join customer_meeting cm on cm.customer_id = c.customer_id 
join meeting m on m.meeting_id = cm.meeting_id 
left join recurrence_detail rd on rd.meeting_id = m.meeting_id 
left join recurrence_type rt on rt.recurrence_id = rd.recurrence_id
left join recur_on_day r on r.details_id = rd.details_id        
where c.parent_customer_id is null

order by c.display_name














> Clean up data falling out from Issue 2652
> -----------------------------------------
>
>                 Key: MIFOS-2851
>                 URL: http://mifosforge.jira.com/browse/MIFOS-2851
>             Project: mifos
>          Issue Type: Bug
>          Components: Centers
>    Affects Versions: Gazelle C
>            Reporter: Kay Chau
>            Assignee: Adam Monsen
>            Priority: Major
>
> As a result of Issue 2652, opening a separate issue to track the cleaning up 
> of existing bad data as a result of the issue

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://mifosforge.jira.com/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Mifos-issues mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mifos-issues

Reply via email to