add the annual accumulation of mileage costs for the selection of the coefficient
This commit is contained in:
parent
6f0047cc77
commit
23cd63963a
@ -89,24 +89,19 @@ if (empty($fk_expense) || $fk_expense < 0) {
|
||||
$rep->response_status = 'error';
|
||||
} else {
|
||||
$expense = new ExpenseReport($db);
|
||||
$result = $expense->computeTotalKm($fk_c_exp_tax_cat, $qty, $vatrate);
|
||||
if ($result < 0) {
|
||||
$rep->error = $result;
|
||||
$rep->errorMessage = $langs->trans('errorComputeTtcOnMileageExpense');
|
||||
$rep->response_status = 'error';
|
||||
} else {
|
||||
$rep->data = $result;
|
||||
$rep->response_status = 'success';
|
||||
$result = $expense->fetch($fk_expense);
|
||||
if ($result){
|
||||
$result = $expense->computeTotalKm($fk_c_exp_tax_cat, $qty, $vatrate);
|
||||
if ($result < 0) {
|
||||
$rep->error = $result;
|
||||
$rep->errorMessage = $langs->trans('errorComputeTtcOnMileageExpense');
|
||||
$rep->response_status = 'error';
|
||||
} else {
|
||||
$rep->data = $result;
|
||||
$rep->response_status = 'success';
|
||||
}
|
||||
}
|
||||
|
||||
/*if (empty($range)) {
|
||||
$rep->errorMessage = json_encode(array('error' => $langs->transnoentitiesnoconv('ErrorRecordNotFound'), 'range' => $range));
|
||||
$rep->response_status = 'error';
|
||||
} else {
|
||||
$ikoffset = price($range->ikoffset, 0, $langs, 1, -1, -1, $conf->currency);
|
||||
$rep->errorMessage = json_encode(array('up' => $range->coef, 'ikoffset' => $range->ikoffset, 'title' => $langs->transnoentitiesnoconv('ExpenseRangeOffset', $ikoffset), 'comment' => 'offset should be applied on addline or updateline'));
|
||||
$rep->response_status = 'error';
|
||||
}*/
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2604,7 +2604,7 @@ if ($action == 'create') {
|
||||
let tax_cat = jQuery("#select_fk_c_exp_tax_cat").find(":selected").val();
|
||||
let tva = jQuery("#vatrate").find(":selected").val();
|
||||
let qty = jQuery("#input_qty").val();
|
||||
console.log(qty);
|
||||
|
||||
|
||||
|
||||
let path = "'.dol_buildpath("/expensereport/ajax/ajaxik.php", 1) .'";
|
||||
@ -2621,12 +2621,9 @@ if ($action == 'create') {
|
||||
,dataType:"json"
|
||||
,success:function(response) {
|
||||
if (response.response_status == "success"){
|
||||
|
||||
jQuery("#value_unit_ht").val(response.data);
|
||||
}else{
|
||||
/* console.log(response.errorMessage) */
|
||||
jQuery("#value_unit").val("");
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
});
|
||||
|
||||
@ -2572,10 +2572,10 @@ class ExpenseReport extends CommonObject
|
||||
global $langs,$user,$db,$conf;
|
||||
|
||||
|
||||
$total_ttc = 0;
|
||||
$cumulYearQty = 0;
|
||||
$ranges = array();
|
||||
$coef = 0;
|
||||
$offset = 0;
|
||||
|
||||
|
||||
if ($fk_cat < 0) {
|
||||
$this->error = $langs->trans('ErrorBadParameterCat');
|
||||
@ -2604,6 +2604,26 @@ class ExpenseReport extends CommonObject
|
||||
$result = $this->db->query($sql);
|
||||
|
||||
if ($result) {
|
||||
|
||||
if ($conf->global->EXPENSEREPORT_CALCULATE_MILEAGE_EXPENSE_COEFFICIENT_ON_CURRENT_YEAR){
|
||||
|
||||
$arrayDate = dol_getdate(dol_now());
|
||||
$sql = " SELECT count(n.qty) as cumul FROM ".MAIN_DB_PREFIX."expensereport_det n";
|
||||
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."expensereport e ON e.rowid = n.fk_expensereport";
|
||||
$sql.= " WHERE e.fk_user_author = ".(int) $this->fk_user_author;
|
||||
$sql.= " AND YEAR(n.date) = ".(int) $arrayDate['year'] ;
|
||||
$sql.= " AND n.fk_c_type_fees = 4";
|
||||
$sql.= " AND e.fk_statut = ".(int) ExpenseReport::STATUS_VALIDATED;
|
||||
$resql = $this->db->query($sql);
|
||||
|
||||
if ($resql){
|
||||
$obj = $this->db->fetch_object($resql);
|
||||
$cumulYearQty = $obj->cumul;
|
||||
}
|
||||
$qty = $cumulYearQty + $qty;
|
||||
|
||||
}
|
||||
|
||||
$num = $this->db->num_rows($result);
|
||||
|
||||
if ($num) {
|
||||
@ -2617,12 +2637,12 @@ class ExpenseReport extends CommonObject
|
||||
for ($i = 0; $i < $num; $i++) {
|
||||
if ($i < ($num - 1)) {
|
||||
|
||||
if ($qty > $ranges[$i]->range && $qty < $ranges[$i+1]->range) {
|
||||
if ($qty > $ranges[$i]->range_ik && $qty < $ranges[$i+1]->range_ik) {
|
||||
$coef = $ranges[$i]->coef;
|
||||
$offset = $ranges[$i]->offset;
|
||||
}
|
||||
} else {
|
||||
if ($qty > $ranges[$i]->range) {
|
||||
if ($qty > $ranges[$i]->range_ik) {
|
||||
$coef = $ranges[$i]->coef;
|
||||
$offset = $ranges[$i]->offset;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user