Skip to content

Commit

Permalink
[Facturedet] add: mileage extrafield creation
Browse files Browse the repository at this point in the history
  • Loading branch information
Théo David committed May 30, 2022
1 parent f3d7a23 commit 94de957
Show file tree
Hide file tree
Showing 2 changed files with 82 additions and 25 deletions.
106 changes: 81 additions & 25 deletions class/actions_dolicar.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -116,10 +116,67 @@ public function printCommonFooter($parameters)
jQuery('#extrafield_lines_area_create').find('.facturedet_extras_registrationcertificatefr').not('.valuefieldlinecreate').empty()
jQuery('#extrafield_lines_area_create').find('.facturedet_extras_registrationcertificatefr').not('.valuefieldlinecreate').append(<?php echo json_encode($outputline) ; ?>)
jQuery('#extrafield_lines_area_create').hide()
jQuery('#extrafield_lines_area_edit').hide()
let rows = jQuery('.valuefieldlinecreate.facturedet_extras_dolicar_data')
let mileage = ''
rows.each((i, obj) => {
if ( $(obj).find('.facturedet_extras_dolicar_data').text().match(/mileage:/)) {
mileage = <?php echo json_encode($langs->transnoentities('Mileage') . ' : ') ?> + $(obj).find('.facturedet_extras_dolicar_data').text().split(/mileage:/)[1].split(/}/)[0]
$(obj).text(mileage)
} else {
$(obj).hide()
}
})
</script>
<?php
}

if ( GETPOST('action') != 'create' && (GETPOST('facid') > 0 || GETPOST('id') > 0)) {

global $user;
require_once __DIR__ . '/../../../compta/facture/class/facture.class.php';

$facture = new Facture($db);
$facture->fetch(GETPOST('facid') ?: GETPOST('id'));
$facture->fetch_optionals();

if (empty($facture->array_options["options_dolicar_data"])) {

require_once DOL_DOCUMENT_ROOT . '/product/stock/class/productlot.class.php';
require_once __DIR__ . '/../class/registrationcertificatefr.class.php';

$registrationcertificatefr = new RegistrationCertificateFr($db);
$registrationcertificatefr->fetch($facture->array_options['options_registrationcertificatefr']);

$product = new Product($db);
$product->fetch($registrationcertificatefr->d3_vehicle_model);

$productlot = new ProductLot($db);
$productlot->fetch($registrationcertificatefr->fk_lot);

$dolicar_data = array(
'registration_number' => $registrationcertificatefr->a_registration_number,
'vehicle_model' => $product->ref,
'mileage' => $productlot->array_options['options_mileage']
);

$dolicar_data_json = json_encode($dolicar_data);
$facture->array_options["options_dolicar_data"] = $dolicar_data_json;
$facture->update($user);
}

$decoded_json = json_decode($facture->array_options['options_dolicar_data']);

$output = '<tr><td>'.$langs->trans('Mileage').'</td><td colspan="2">';
$output .= $decoded_json->mileage;
$output .= '</td></tr>';

?>
<script>
jQuery('.facture_extras_registrationcertificatefr').parent().parent().append(<?php echo json_encode($output)?>)
</script>
<?php
}
}

if (true) {
Expand Down Expand Up @@ -161,6 +218,30 @@ public function doActions($parameters, &$object, &$action, $hookmanager)
$this->errors[] = 'Error message';
return -1;
}
} else if ($parameters['currentcontext'] == 'invoicecard') {
if (GETPOST('action') == 'addline') {

require_once DOL_DOCUMENT_ROOT . '/product/stock/class/productlot.class.php';
require_once __DIR__ . '/../class/registrationcertificatefr.class.php';

$registrationcertificatefr = new RegistrationCertificateFr($this->db);
$registrationcertificatefr->fetch($object->array_options['options_registrationcertificatefr']);

$product = new Product($this->db);
$product->fetch($registrationcertificatefr->d3_vehicle_model);

$productlot = new ProductLot($this->db);
$productlot->fetch($registrationcertificatefr->fk_lot);

$dolicar_data = array(
'registration_number' => $registrationcertificatefr->a_registration_number,
'vehicle_model' => $product->ref,
'mileage' => $productlot->array_options['options_mileage']
);

$dolicar_data_json = json_encode($dolicar_data);
$_POST['options_dolicar_data'] = $dolicar_data_json;
}
}
}

Expand Down Expand Up @@ -254,31 +335,6 @@ public function beforePDFCreation($parameters, &$object, &$action)

$object->fetch_optionals();

require_once DOL_DOCUMENT_ROOT . '/product/stock/class/productlot.class.php';
require_once __DIR__ . '/../class/registrationcertificatefr.class.php';

$registrationcertificatefr = new RegistrationCertificateFr($db);
$registrationcertificatefr->fetch($object->array_options['options_registrationcertificatefr']);

$product = new Product($db);
$product->fetch($registrationcertificatefr->d3_vehicle_model);

$productlot = new ProductLot($db);
$productlot->fetch($registrationcertificatefr->fk_lot);

if (empty($object->array_options["options_dolicar_data"])) {

$dolicar_data = array(
'registration_number' => $registrationcertificatefr->a_registration_number,
'vehicle_model' => $product->ref,
'mileage' => $productlot->array_options['options_mileage']
);

$dolicar_data_json = json_encode($dolicar_data);
$object->array_options["options_dolicar_data"] = $dolicar_data_json;
$object->update($user);
}

$dolicar_data_decoded = json_decode($object->array_options["options_dolicar_data"]);

$object->note_public = '';
Expand Down
1 change: 1 addition & 0 deletions core/modules/modDoliCar.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -240,6 +240,7 @@ public function init($options = '')
$extrafields = new ExtraFields($this->db);
$extrafields->addExtraField('mileage', $langs->transnoentities("Mileage"), 'int', 1010, '', 'product_lot', 0, 0, '', '', 1, '', 1);
$extrafields->addExtraField('dolicar_data', $langs->transnoentities("DolicarData"), 'varchar', 1020, '2048', 'facture', 0, 0, '', '', '', '', 0);
$extrafields->addExtraField('dolicar_data', $langs->transnoentities("DolicarData"), 'varchar', 1020, '2048', 'facturedet', 0, 0, '', '', '', '', 1);
$extrafields->addExtraField('registrationcertificatefr', $langs->transnoentities("RegistrationCertificateFr"), 'sellist', 1030, '', 'facture', 0, 0, '', 'a:1:{s:7:"options";a:1:{s:80:"dolicar_registrationcertificatefr:a_registration_number:rowid::entity = $ENTITY$";N;}}', '', '', 1);
$extrafields->addExtraField('registrationcertificatefr', $langs->transnoentities("RegistrationCertificateFr"), 'sellist', 1040, '', 'facturedet', 0, 0, '', 'a:1:{s:7:"options";a:1:{s:80:"dolicar_registrationcertificatefr:a_registration_number:rowid::entity = $ENTITY$";N;}}', '', '', 1);

Expand Down

0 comments on commit 94de957

Please sign in to comment.