Changed the logic a little bit in the customer model saveCustomer function, such that we can provide a default customer name if otherwise unspecified. Changed the page titles to reflect Customer vs Contact, since they can easily have the same names.

git-svn-id: file:///svn-source/pmgr/branches/invoice_receipt_20090629/site@228 97e9348a-65ac-dc4b-aefc-98561f571b83
This commit is contained in:
abijah
2009-07-06 16:57:23 +00:00
parent 47104919f2
commit 50e7f58d35
3 changed files with 50 additions and 26 deletions

View File

@@ -194,6 +194,33 @@ class Customer extends AppModel {
*/
function saveCustomer($id, $data, $primary_contact_entry) {
// Go through each contact, and create new ones as needed
foreach ($data['Contact'] AS &$contact) {
if (isset($contact['id']))
continue;
$I = new Contact();
$I->create();
if (!$I->save($contact, false)) {
return false;
}
$contact['id'] = $I->id;
}
// Set the primary contact ID based on caller selection
$data['Customer']['primary_contact_id']
= $data['Contact'][$primary_contact_entry]['id'];
// Provide a default customer name if not specified
if (!$data['Customer']['name']) {
$this->Contact->recursive = -1;
$pcontact = $this->Contact->read(null, $data['Customer']['primary_contact_id']);
pr($pcontact);
$data['Customer']['name'] = $pcontact['Contact']['display_name'];
}
// Save the customer data
$this->create();
if ($id)
$this->id = $id;
@@ -212,26 +239,15 @@ class Customer extends AppModel {
/* $this->ContactsCustomer->deleteAll */
/* (array('customer_id' => $id), false); */
// Avoid PHP notifications by making sure we have an array
if (!isset($data['Contact']))
$data['Contact'] = array();
// Assume this operation will succeed
// At this point, since we've saved data to contact,
// we'll proceed forward as much as possible, even
// if we encounter an error. For now, we'll assume
// the operation will succeed.
$ret = true;
// Go through each entry of this customer method
foreach ($data['Contact'] AS &$contact) {
// Check if the user has entered a brand new contact
if (!isset($contact['id'])) {
$I = new Contact();
$I->create();
if (!$I->save($contact, false)) {
$ret = false;
continue;
}
$contact['id'] = $I->id;
}
pr(compact('contact'));
// Update the ContactsCustomer to reflect the appropriate IDs
$contact['ContactsCustomer']['customer_id'] = $id;
@@ -241,15 +257,9 @@ class Customer extends AppModel {
$CM = new ContactsCustomer();
if (!$CM->save($contact['ContactsCustomer'], false)) {
$ret = false;
continue;
}
}
// Set the primary contact ID based on caller selection
if (!$this->saveField('primary_contact_id',
$data['Contact'][$primary_contact_entry]['id']))
$ret = false;
// Return the result
return $ret;
}