Всем доброго времени суток!
Есть большое условие, нужно уменьшить его до приемлемых размеров, несколько часов уже над ним сижу. Может кто помочь укоротить его при этом сохранив всю логику?
if ($contr_type == 0) {
if ($contr_doc_id != 4) {
if ($contr_doc_id == 1 && ($contr_ser_doc =~ /\D/g || $contr_num_doc =~ /\D/g)) {
if (!$contr_bday) {
$personal_data = '1. паспорт и дата рождения';
} else {
$personal_data = '2. паспорт';
}
} else {
if ($contr_ser_doc && $contr_num_doc && $contr_bday) {
$personal_data = 'Ок';
} elsif ((!$contr_ser_doc || !$contr_num_doc) && !$contr_bday) {
$personal_data = '1. паспорт и дата рождения';
} elsif ((!$contr_ser_doc || !$contr_num_doc) && $contr_bday) {
$personal_data = '2. паспорт';
} elsif (($contr_ser_doc && $contr_num_doc) && !$contr_bday) {
$personal_data = '3. дата рождения';
}
}
} else {
if (($contr_ser_doc || $contr_num_doc) && $contr_bday) {
$personal_data = 'ОК';
} elsif (!$contr_ser_doc && !$contr_num_doc && !$contr_bday) {
$personal_data = '1. паспорт и дата рождения';
} elsif ((!$contr_ser_doc && !$contr_num_doc) && $contr_bday) {
$personal_data = '2. паспорт';
} elsif (($contr_ser_doc || $contr_num_doc) && !$contr_bday) {
$personal_data = '3. дата рождения';
}
}
} elsif ($contr_type == 1) {
if ($contr_ip == 1) {
if ($contr_inn) {
$personal_data = 'Ок';
} else {
$personal_data = '2. Нет ИНН';
}
} else {
if ($contr_inn && $contr_kpp) {
$personal_data = 'Ок';
} elsif (!$contr_inn && $contr_kpp) {
$personal_data = '2. Нет ИНН';
} elsif ($contr_inn && !$contr_kpp) {
$personal_data = '3. Нет КПП';
} else {
$personal_data = '1. Нет ИНН и КПП';
}
}
}