Commit cb055bf6 authored by Jean-Paul Saman's avatar Jean-Paul Saman

Deleting of timesheet works

parent a67eea8b
...@@ -72,10 +72,10 @@ $titleBlock->show(); ...@@ -72,10 +72,10 @@ $titleBlock->show();
// some javaScript code to submit the form and set the delete object flag for the form processing // some javaScript code to submit the form and set the delete object flag for the form processing
?> ?>
<script language="javascript"> <script language="javascript" type="text/javascript">
function delIt(id) { function delIt(id) {
if (confirm( "<?php echo $AppUI->_('Really delete this timesheet ?');?>" )) { if (confirm( "<?php echo $AppUI->_('Really delete this timesheet ?', UI_OUPUT_JS);?>" )) {
var f = document.editFrm; var f = document.editFrm;
f.del.value='1'; f.del.value='1';
f.submit(); f.submit();
......
<?php <?php
/* /*
* Copyright (C) 2007-2008, M2X * Copyright (C) 2007-2014, M2X BV
* *
* Authors: Jean-Paul Saman * Authors: Jean-Paul Saman
* *
...@@ -19,20 +19,22 @@ ...@@ -19,20 +19,22 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/ *****************************************************************************/
// create a new instance of the timesheet class if (!defined('W2P_BASE_DIR')) {
$obj = new CTimesheet(); die('You should not access this file directly.');
$msg = ''; // reset the message string }
$obj = new CTimesheet();
// bind the informations (variables) retrieved via post to the timesheet object // bind the informations (variables) retrieved via post to the timesheet object
if (!$obj->bind( $_POST )) { if (!$obj->bind( $_POST )) {
$AppUI->setMsg( $obj->getError(), UI_MSG_ERROR ); $AppUI->setMsg( $obj->getError(), UI_MSG_ERROR );
$AppUI->redirect(); $AppUI->redirect();
} }
// detect if a deleete operation has to be processed // detect if a delete operation has to be processed
$workperiod = dPgetParam($_POST, 'workperiod', 0); $workperiod = w2PgetParam($_POST, 'workperiod', 0);
$stat = dPgetParam($_POST, 'stat', 0); $stat = w2PgetParam($_POST, 'stat', 0);
$del = dPgetParam($_POST, 'del', 0); $del = w2PgetParam($_POST, 'del', 0);
$obj->timesheet_id = $_POST["timesheet_id"]; $obj->timesheet_id = $_POST["timesheet_id"];
$obj->timesheet_status = $_POST["timesheet_status"]; $obj->timesheet_status = $_POST["timesheet_status"];
...@@ -42,46 +44,35 @@ $obj->timesheet_creator = $_POST["timesheet_creator"]; ...@@ -42,46 +44,35 @@ $obj->timesheet_creator = $_POST["timesheet_creator"];
$obj->timesheet_worked = $_POST["timesheet_worked"]; $obj->timesheet_worked = $_POST["timesheet_worked"];
$AppUI->setMsg( 'Timesheet' ); $AppUI->setMsg( 'Timesheet' );
$msg = "m=timesheet";
if ($del) { if ($del) {
// check if there are dependencies on this object if (!$obj->delete()) {
if (!$obj->canDelete( $msg )) { $AppUI->setMsg( 'Timesheet delete failed', UI_MSG_ERROR );
$AppUI->setMsg( $msg, UI_MSG_ERROR );
$AppUI->redirect();
}
// see how easy it is to run database commands with the object oriented architecture !
// simply delete a quote from db and have detailed error or success report
if ($msg = $obj->delete()) {
$AppUI->setMsg( $msg, UI_MSG_ERROR );
$AppUI->redirect();
} else { } else {
$AppUI->setMsg( "Timesheet deleted", UI_MSG_ALERT); $AppUI->setMsg( "Timesheet deleted", UI_MSG_ALERT);
$AppUI->redirect( "m=timesheet" );
} }
} else if ($stat) { } else if ($stat) {
if ($msg = $obj->change_status()) { if (!$obj->change_status()) {
$AppUI->setMsg( $msg, UI_MSG_ERROR ); $AppUI->setMsg( "Timesheet changing status failed", UI_MSG_ERROR );
$AppUI->redirect();
} else { } else {
$AppUI->setMsg( "Timesheet status updated", UI_MSG_ALERT); $AppUI->setMsg( "Timesheet status updated", UI_MSG_ALERT);
$AppUI->redirect( "m=timesheet&a=addedit&timesheet_id=".$obj->timesheet_id ); $msg = "m=timesheet&a=addedit&timesheet_id=" . $obj->timesheet_id;
} }
} else if ($workperiod) { } else if ($workperiod) {
if ($msg = $obj->change_period($obj->timesheet_period)) { if (!$obj->change_period($obj->timesheet_period)) {
$AppUI->setMsg( $msg, UI_MSG_ERROR ); $AppUI->setMsg( "Timesheet workperiod failed", UI_MSG_ERROR );
$AppUI->redirect();
} else { } else {
$AppUI->setMsg( "Timesheet period changed", UI_MSG_ALERT); $AppUI->setMsg( "Timesheet period changed", UI_MSG_ALERT);
$AppUI->redirect( "m=timesheet&a=addedit&timesheet_id=".$obj->timesheet_id ); $msg = "m=timesheet&a=addedit&timesheet_id=" . $obj->timesheet_id;
} }
} else { } else {
// simply store the added/edited quote in database via the store method of the timesheet // simply store the added/edited quote in database via the store method of the timesheet
// child class of the CDpObject provided ba the dPFramework if (!$obj->store()) {
if (($msg = $obj->store())) { $AppUI->setMsg( "Timesheet saving failed", UI_MSG_ERROR );
$AppUI->setMsg( $msg, UI_MSG_ERROR );
} else { } else {
$isNotNew = $obj->timesheet_id; //_POST['timesheet_id']; $isNotNew = $obj->timesheet_id; //_POST['timesheet_id'];
$AppUI->setMsg( $isNotNew ? 'Timesheet updated' : 'Timesheet inserted', UI_MSG_OK); $AppUI->setMsg( $isNotNew ? 'Timesheet updated' : 'Timesheet inserted', UI_MSG_OK);
} }
$AppUI->redirect("m=timesheet" );
} }
$AppUI->redirect($msg);
?> ?>
...@@ -23,9 +23,7 @@ if (!defined('W2P_BASE_DIR')) { ...@@ -23,9 +23,7 @@ if (!defined('W2P_BASE_DIR')) {
die('You should not access this file directly.'); die('You should not access this file directly.');
} }
global $AppUI; $perms = &$AppUI->acl();
$perms = $AppUI->acl();
if (!$perms->checkModuleItem('timesheet', 'access')) { if (!$perms->checkModuleItem('timesheet', 'access')) {
$AppUI->redirect(ACCESS_DENIED); $AppUI->redirect(ACCESS_DENIED);
} }
......
...@@ -56,7 +56,7 @@ class CTimesheet extends w2p_Core_BaseObject { ...@@ -56,7 +56,7 @@ class CTimesheet extends w2p_Core_BaseObject {
} }
public function loadFull($notUsed = null, $timesheet_id) { public function loadFull($notUsed = null, $timesheet_id) {
// loadFull information for this timesheet\ // loadFull information for this timesheet
} }
public function load($notUsed = null, $timesheet_id) { public function load($notUsed = null, $timesheet_id) {
...@@ -194,24 +194,25 @@ class CTimesheet extends w2p_Core_BaseObject { ...@@ -194,24 +194,25 @@ class CTimesheet extends w2p_Core_BaseObject {
// overload the delete method of the parent class for adaptation for timesheet's needs // overload the delete method of the parent class for adaptation for timesheet's needs
public function delete($unused = null) { public function delete($unused = null) {
$this->clearErrors(); $this->clearErrors();
if ($this->canDelete()) { // FIXME: this check does not work
$q = $this->_getQuery(); //if (!$this->canDelete())
$q->setDelete('timesheet_project'); // return false;
$q->addWhere('timesheet_id = '. $this->timesheet_id );
if (!($q->exec())) { $q = $this->_getQuery();
$this->_error['delete-timesheet-project'] = db_error(); $q->setDelete('timesheet_project');
return false; $q->addWhere('timesheet_id = '. $this->timesheet_id );
} if (!($q->exec())) {
$q->clear(); $this->_error['delete-timesheet-project'] = db_error();
$q->setDelete('timesheet'); return false;
$q->addWhere('timesheet_id = '. $this->timesheet_id );
if (!($q->exec())) {
$this->_error['delete-timesheet'] = db_error();
return false;
}
return true;
} }
return false; $q->clear();
$q->setDelete('timesheet');
$q->addWhere('timesheet_id = '. $this->timesheet_id );
if (!($q->exec())) {
$this->_error['delete-timesheet'] = db_error();
return false;
}
return true;
} }
public function change_status() { public function change_status() {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment