X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=includes%2Fui%2Fcontacts_view.inc;h=bd25e2820e5003bfbbf51b3bf8f8dd8710c3d3f3;hb=c640dae024fb9554d476bd863a68ef82ada8822d;hp=9f1abe4a1f3a8301671cf231dad52d9805c37bde;hpb=5088ee92669272ebac6f1bd1acebc05fe382829f;p=fa-stable.git diff --git a/includes/ui/contacts_view.inc b/includes/ui/contacts_view.inc index 9f1abe4a..bd25e282 100644 --- a/includes/ui/contacts_view.inc +++ b/includes/ui/contacts_view.inc @@ -17,21 +17,26 @@ include_once($path_to_root . "/includes/db/crm_contacts_db.inc"); */ class contacts extends simple_crud { var $id; - + var $entity; + var $sub_class; + var $class; + function contacts($name, $id, $class, $subclass=null) { - $this->simple_crud($name); + $fields = array('ref','name','name2','address', 'phone', 'phone2','fax', + 'email','lang','notes', 'assgn' =>array('fld'=>'contacts')); + $this->simple_crud($name, $fields); $this->class = $class; $this->subclass = $subclass; $this->entity = $id; } - function listing() { + function list_view() { br(); $contacts = get_crm_persons($this->class, $this->subclass, $this->entity); // check_value('show_inactive')); - start_table(TABLESTYLE, "width=80%"); + start_table(TABLESTYLE, "width='80%'"); $th = array(_('Assignment'), _("Reference"), _("Full Name"), _("Phone"), _("Sec Phone"), _("Fax"), _("email"), '', @@ -40,35 +45,46 @@ class contacts extends simple_crud { table_header($th); $k = 0; - while ($myrow = db_fetch($contacts)) - { - alt_table_row_color($k); - label_cell($myrow["description"]); - label_cell($myrow["ref"]); - label_cell($myrow["name"].' '.$myrow["name2"]); - label_cell($myrow["phone"]); - label_cell($myrow["phone2"]); - label_cell($myrow["fax"]); - email_cell($myrow["email"]); + $last = $myrow = db_fetch($contacts); + while ($last) + { + + if ($myrow['id'] != $last['id']) { + alt_table_row_color($k); + label_cell(implode('
',$description)); + label_cell($last["ref"]); + label_cell($last["name"].' '.$last["name2"]); + label_cell($last["phone"]); + label_cell($last["phone2"]); + label_cell($last["fax"]); + email_cell($last["email"]); // inactive_control_cell($myrow["id"], $myrow["inactive"], 'crm_contacts', 'id'); - edit_button_cell("{$this->name}Edit".$myrow["id"], _("Edit")); + edit_button_cell("{$this->name}Edit[{$last['id']}]", _("Edit")); - // delete button removes only category unless this is the last conatct for this person - delete_button_cell("{$this->name}Delete".$myrow["contact_id"], _("Delete")); - end_row(); + // delete button removes only category unless this is the last contact for this person + delete_button_cell("{$this->name}Delete[{$last['id']}]", _("Delete")); + end_row(); + $description = array(); + $last = $myrow; + } + + if ($myrow) { + $description[] = $myrow['description']; + $myrow = db_fetch($contacts); + } } - + //inactive_control_row($th); end_table(1); } - function editor() + function editor_view() { br(); - start_outer_table(TABLESTYLE, "width=80%"); + start_outer_table(TABLESTYLE); table_section(1); table_section_title(_("Contact data")); @@ -89,27 +105,25 @@ class contacts extends simple_crud { email_row(_("E-mail:"), 'email', @$this->data['email'], 35, 55); table_section(2); + table_section_title(" "); textarea_row(_("Address:"), 'address', @$this->data['address'], 30, 4); languages_list_row( _("Document Language:"), 'lang', @$this->data['lang'], _("Customer default")); textarea_row(_("Notes:"), 'notes', @$this->data['notes'], 30, 4); end_outer_table(1); - -// submit_add_or_update_center($this->selected_id == '0', '', 'both', -// $this->selected_id=='0', $this->name); } function db_insert() { - return add_crm_person($_POST['ref'], $_POST['name'], $_POST['name2'], $_POST['address'], - $_POST['phone'], $_POST['phone2'], $_POST['fax'], $_POST['email'], $_POST['lang'], - $_POST['notes'], $_POST['assgn'], $this->entity); + $dat = $this->data; + return add_crm_person($dat['ref'], $dat['name'], $dat['name2'], $dat['address'], + $dat['phone'], $dat['phone2'], $dat['fax'], $dat['email'], $dat['lang'], + $dat['notes'], $dat['contacts'], $this->entity); } function db_update() { return update_crm_person($this->selected_id, $_POST['ref'], $_POST['name'], $_POST['name2'], $_POST['address'], $_POST['phone'], $_POST['phone2'], $_POST['fax'], $_POST['email'], - $_POST['lang'], $_POST['notes'], $_POST['assgn'], $this->entity); - + $_POST['lang'], $_POST['notes'], $_POST['assgn'], $this->entity, $this->class); } function insert_check() { @@ -139,19 +153,17 @@ class contacts extends simple_crud { return true; } // - // Delete single contact only (unless this is last contact for this person) + // Delete all contacts for person in current class/entity // function db_delete() { - $rel = get_crm_contact($this->selected_id); - if (delete_crm_contact($this->selected_id)) { + if (delete_crm_contacts($this->selected_id, $this->class, $this->entity)) { // if this is the last relation - delete contact data - $rels = get_person_contacts($rel['person_id']); + $rels = get_person_contacts($this->selected_id); if (count($rels)==0) { - return delete_crm_person($rel['person_id']); + return delete_crm_person($this->selected_id); } } return false; } } -?> \ No newline at end of file