[add] Work day details

This commit is contained in:
2018-08-14 15:39:55 -06:00
parent 03cbcce59f
commit f2851ec56a
2 changed files with 89 additions and 1 deletions

View File

@@ -714,7 +714,14 @@ class EmployeeApplication{
$bonusTime = $perHourBonus * $this->settings['hoursPerWorkDay'];
$bonusDeliveries = $deliveries * $this->settings['bonusPerDelivery'];
$this->saveWorkedDay($idEmployee, $date, $baseAmountPaid, $bonusTime, $bonusDeliveries);
$idPaymentPerEmployeePerDay = $this->saveWorkedDay($idEmployee, $date, $baseAmountPaid,
$bonusTime, $bonusDeliveries);
$contractType = $this->getContractTypeByEmployee($idEmployee);
$this->storeWorkDayDetails($idPaymentPerEmployeePerDay, $idEmployeeType, $idEmployeeTypePerformed,
$contractType, $this->settings['hoursPerWorkDay'], $this->settings['paymentPerHour'],
$perHourBonus, $deliveries, $this->settings['bonusPerDelivery']);
return array('status' => 'success', 'message' => 'The worked day has been saved.', 'data' => $requestData);
}
@@ -815,6 +822,64 @@ class EmployeeApplication{
return $results[0]['contractType'];
}
/**
* Creates a backup of the information used to calculate the amount that the employee
* will be paid for the submitted day
*
* @param $idPaymentPerEmployeePerDay integer
* @param $idEmployeeType integer
* @param $idEmployeeTypePerformed integer
* @param $contractType string
* @param $hoursWorked double
* @param $paymentPerHour double
* @param $bonusPerHour double
* @param $deliveries integer
* @param $paymentPerDelivery double
* @return integer
* @throws Exception
*/
function storeWorkDayDetails($idPaymentPerEmployeePerDay, $idEmployeeType, $idEmployeeTypePerformed, $contractType, $hoursWorked,
$paymentPerHour, $bonusPerHour, $deliveries, $paymentPerDelivery){
$this->asserts->isNotEmpty($idPaymentPerEmployeePerDay, "The idPaymentPerEmployeePerDay can't be empty.");
$this->asserts->isNotEmpty($idEmployeeType, "The idEmployeeType can't be empty.");
$this->asserts->isNotEmpty($idEmployeeTypePerformed, "The idEmployeeTypePerformed can't be empty.");
$this->asserts->isNotEmpty($contractType, "The contractType can't be empty.");
$this->asserts->isNotEmpty($hoursWorked, "The hoursWorked can't be empty.");
$this->asserts->isNotEmpty($paymentPerHour, "The paymentPerHour can't be empty.");
$this->asserts->isNotEmpty($bonusPerHour, "The bonusPerHour can't be empty.");
$this->asserts->isNotEmpty($deliveries, "The deliveries can't be empty.");
$this->asserts->isNotEmpty($paymentPerDelivery, "The paymentPerDelivery can't be empty.");
try {
$stmt = $this->pdo->prepare("INSERT INTO paymentsPerEmployeePerDayDetail
(idPaymentPerEmployeePerDay, idEmployeeType, idEmployeeTypePerformed,
contractType, hoursWorked, paymentPerHour, bonusPerHour, deliveries, paymentPerDelivery)
VALUES
(:idPaymentPerEmployeePerDay, :idEmployeeType, :idEmployeeTypePerformed,
:contractType, :hoursWorked, :paymentPerHour, :bonusPerHour, :deliveries, :paymentPerDelivery)");
$this->pdo->beginTransaction();
$stmt->execute(array(':idPaymentPerEmployeePerDay' => $idPaymentPerEmployeePerDay,
':idEmployeeType' => $idEmployeeType,
':idEmployeeTypePerformed' => $idEmployeeTypePerformed,
':contractType' => $contractType,
':hoursWorked' => $hoursWorked,
':paymentPerHour' => $paymentPerHour,
':bonusPerHour' => $bonusPerHour,
':deliveries' => $deliveries,
':paymentPerDelivery' => $paymentPerDelivery)
);
$id = $this->pdo->lastInsertId();
$this->pdo->commit();
return $id;
$stmt = null;
} catch( PDOExecption $e ) {
$this->pdo->rollback();
throw new Exception("An error occured while saving the work day details.");
}
}
function getDataWorkDayByDateAndCode($date, $code){
return array('status' => 'success', 'message' => 'Successfully did the thing.');
}