our
$VERSION
=
'2.04'
;
sub
delete_phone_number_organization
{
my
(
$self
,
$creator_id
,
$id
) =
@_
;
$self
-> db -> logger ->
log
(
debug
=>
"Database::PhoneNumber.delete_phone_number_organization($creator_id, $id)"
);
$self
-> db -> simple ->
delete
(
'phone_organizations'
, {
id
=>
$id
})
||
die
$self
-> db -> simple -> error;
}
sub
delete_phone_number_person
{
my
(
$self
,
$creator_id
,
$id
) =
@_
;
$self
-> db -> logger ->
log
(
debug
=>
"Database::PhoneNumber.delete_phone_number_people($creator_id, $id)"
);
$self
-> db -> simple ->
delete
(
'phone_people'
, {
id
=>
$id
})
||
die
$self
-> db -> simple -> error;
}
sub
get_organizations_and_people
{
my
(
$self
,
$user_id
,
$uc_key
) =
@_
;
$self
-> db -> logger ->
log
(
debug
=>
"Database::PhoneNumber.get_organizations_and_people($user_id, $uc_key)"
);
my
(
$result
) =
$self
-> db -> simple -> query(
"select * from phone_numbers where upper_number like ?"
,
"%$uc_key%"
)
||
die
$self
-> db -> simple -> error;
my
(
@organization_record
);
my
(
@person_record
);
for
my
$record
(@{
$self
-> db -> library -> decode_hashref_list(
$result
-> hashes)})
{
$result
=
$self
-> db -> simple -> query(
"select * from phone_organizations where phone_number_id = ?"
,
$$record
{id})
||
die
$self
-> db -> simple -> error;
push
@organization_record
, @{
$self
-> db -> library -> decode_hashref_list(
$result
-> hashes)};
$result
=
$self
-> db -> simple -> query(
"select * from phone_people where phone_number_id = ?"
,
$$record
{id})
||
die
$self
-> db -> simple -> error;
push
@person_record
, @{
$self
-> db -> library -> decode_hashref_list(
$result
-> hashes)};
}
$self
-> db -> logger ->
log
(
debug
=>
"Initial organization count: @{[scalar @organization_record]}"
);
$self
-> db -> logger ->
log
(
debug
=>
"Initial person count: @{[scalar @person_record]}"
);
my
(
@organization
);
my
(
%seen
);
for
my
$org
(
@organization_record
)
{
next
if
(
$seen
{
$$org
{organization_id} });
push
@organization
, @{
$self
-> db -> organization -> get_organization_list(
$user_id
,
$$org
{organization_id})};
$seen
{
$$org
{organization_id} } = 1;
}
%seen
= ();
my
(
@person
);
for
my
$person
(
@person_record
)
{
next
if
(
$seen
{
$$person
{person_id} });
push
@person
, @{
$self
-> db -> person -> get_person_list(
$user_id
,
$$person
{person_id})};
$seen
{
$$person
{person_id} } = 1;
}
$self
-> db -> logger ->
log
(
debug
=>
"Initial organization count: @{[scalar @organization]}"
);
$self
-> db -> logger ->
log
(
debug
=>
"Initial person count: @{[scalar @person]}"
);
return
(\
@person
, \
@organization
);
}
sub
get_phone_number_id_via_number
{
my
(
$self
,
$number
) =
@_
;
$self
-> db -> logger ->
log
(
debug
=>
"Database::PhoneNumber.get_phone_number_id_via_number($number)"
);
my
(
$result
) =
$self
-> db -> simple -> query(
'select id from phone_numbers where number = ?'
,
$number
)
||
die
$self
-> db -> simple -> error;
return
(
$result
-> list)[0] || 0;
}
sub
get_phone_number_id_via_organization
{
my
(
$self
,
$organization_id
) =
@_
;
$self
-> db -> logger ->
log
(
debug
=>
"Database::PhoneNumber.get_phone_number_id_via_organization($organization_id)"
);
my
(
$result
) =
$self
-> db -> simple -> query(
'select id, phone_number_id from phone_organizations where organization_id = ?'
,
$organization_id
)
||
die
$self
-> db -> simple -> error;
return
$self
-> db -> library -> decode_hashref_list(
$result
-> hashes);
}
sub
get_phone_number_id_via_person
{
my
(
$self
,
$person_id
) =
@_
;
$self
-> db -> logger ->
log
(
debug
=>
"Database::PhoneNumber.get_phone_number_id_via_person($person_id)"
);
my
(
$result
) =
$self
-> db -> simple -> query(
'select id, phone_number_id from phone_people where person_id = ?'
,
$person_id
)
||
die
$self
-> db -> simple -> error;
return
$self
-> db -> library -> decode_hashref_list(
$result
-> hashes);
}
sub
get_phone_number_type_id_via_name
{
my
(
$self
,
$name
) =
@_
;
$self
-> db -> logger ->
log
(
debug
=>
"Database::PhoneNumber.get_phone_number_type_id_via_name($name)"
);
my
(
$result
) =
$self
-> db -> simple -> query(
'select id from phone_number_types where name = ?'
,
$name
)
||
die
$self
-> db -> simple -> error;
return
(
$result
-> list)[0] || 0;
}
sub
get_phone_number_type_name_via_id
{
my
(
$self
,
$id
) =
@_
;
$self
-> db -> logger ->
log
(
debug
=>
"Database::PhoneNumber.get_phone_number_type_name_via_id($id)"
);
my
(
$result
) =
$self
-> db -> simple -> query(
'select name from phone_number_types where id = ?'
,
$id
)
||
die
$self
-> db -> simple -> error;
return
(
$result
-> list)[0] ||
''
;
}
sub
get_phone_number_via_id
{
my
(
$self
,
$id
) =
@_
;
$self
-> db -> logger ->
log
(
debug
=>
"Database::PhoneNumber.get_phone_number_via_id($id)"
);
my
(
$result
) =
$self
-> db -> simple -> query(
'select number, phone_number_type_id from phone_numbers where id = ?'
,
$id
)
||
die
$self
-> db -> simple -> error;
my
(
@number
) =
$result
-> list;
my
(
$name
) =
$self
-> get_phone_number_type_name_via_id(
$number
[1]);
return
{
number
=> decode(
'utf-8'
,
$number
[0]),
type_id
=>
$number
[1],
type_name
=>
$name
,
};
}
sub
save_phone_number_for_organization
{
my
(
$self
,
$context
,
$organization
,
$count
) =
@_
;
$self
-> db -> logger ->
log
(
debug
=>
"Database::PhoneNumber.save_phone_number_for_organization($context, ...)"
);
my
(
$table_name
) =
'phone_numbers'
;
my
(
$phone
) = {};
$$phone
{number} =
$$organization
{
"phone_number_$count"
};
$$phone
{phone_number_type_id} =
$$organization
{
"phone_number_type_id_$count"
};
$$phone
{upper_number} =
uc
$$phone
{number};
my
(
$id
) =
$self
-> get_phone_number_id_via_number(
$$phone
{number});
if
(
$id
== 0)
{
$id
=
$self
-> db -> library -> insert_hashref_get_id(
$table_name
,
$phone
);
}
$table_name
=
'phone_organizations'
;
$phone
= {};
$$phone
{organization_id} =
$$organization
{id};
$$phone
{phone_number_id} =
$id
;
$self
-> db -> simple -> insert(
$table_name
,
$phone
)
||
die
$self
-> db -> simple -> error;
}
sub
save_phone_number_for_person
{
my
(
$self
,
$context
,
$person
,
$count
) =
@_
;
$self
-> db -> logger ->
log
(
debug
=>
"Database::PhoneNumber.save_phone_number_for_person($context, $$person{name}, $count)"
);
my
(
$table_name
) =
'phone_numbers'
;
my
(
$phone
) = {};
$$phone
{number} =
$$person
{
"phone_number_$count"
};
$$phone
{phone_number_type_id} =
$$person
{
"phone_number_type_id_$count"
};
$$phone
{upper_number} =
uc
$$phone
{number};
my
(
$id
) =
$self
-> get_phone_number_id_via_number(
$$phone
{number});
$self
-> db -> logger ->
log
(
debug
=>
"Saving phone_number: $$phone{number}"
);
if
(
$id
== 0)
{
$id
=
$self
-> db -> library -> insert_hashref_get_id(
$table_name
,
$phone
);
}
$table_name
=
'phone_people'
;
$phone
= {};
$$phone
{person_id} =
$$person
{id};
$$phone
{phone_number_id} =
$id
;
$self
-> db -> simple -> insert(
$table_name
,
$phone
)
||
die
$self
-> db -> simple -> error;
}
sub
update_phone_number_type
{
my
(
$self
,
$creator_id
,
$number
) =
@_
;
$self
-> db -> logger ->
log
(
debug
=>
"Database::PhoneNumber.update_phone_number_type($creator_id, ...)"
);
my
(
$table_name
) =
'phone_numbers'
;
$self
-> db -> simple -> update(
$table_name
, {
phone_number_type_id
=>
$$number
{type_id} }, {
id
=>
$$number
{number_id} })
||
die
$self
-> db -> simple -> error;
}
1;