arreglados bugs de lineas. Ahora se suman los clicks en el total

This commit is contained in:
Jaime Jiménez
2024-01-10 21:37:55 +01:00
parent 0ed3652671
commit 76d4093265
7 changed files with 59 additions and 46 deletions

View File

@ -22,8 +22,8 @@ CI_ENVIRONMENT = development
# APP
#--------------------------------------------------------------------
app.baseURL = 'https://sk-dev.imnavajas.es'
# app.baseURL = 'https://sk-jjo.imnavajas.es'
#app.baseURL = 'https://sk-dev.imnavajas.es'
app.baseURL = 'https://sk-jjo.imnavajas.es'
# app.baseURL = 'https://sk-imn.imnavajas.es'
# app.baseURL = "http://safekat.test/"
# app.forceGlobalSecureRequests = false

View File

@ -542,6 +542,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
$model = model('App\Models\Presupuestos\PresupuestoLineaModel');
$datos = $reqData['datos'] ?? null;
$presupuesto_id = $reqData['presupuesto_id'] ?? -1;
$model->where("presupuesto_id", $presupuesto_id)->delete();
@ -720,23 +721,25 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
}
$linea['fields']['tipo_maquina'] = $maquina->is_inkjet?'inkjet':'toner';
$linea['fields']['precio_hora'] = $precio_hora;
$linea['fields']['precio_hora'] = $precio_hora*(1+$margen_precio_hora/100.0);
$linea['fields']['precio_hora_margen'] = $margen_precio_hora;
$linea['fields']['horas_maquina'] = $tiempo;
$linea['fields']['precio_impresion_horas'] = $precio_hora*$tiempo*1.0;
$linea['fields']['margen_impresion_horas'] = $precio_hora*$tiempo*1.0*$margen_precio_hora/100.0;
$linea['fields']['precio_impresion_horas'] = $precio_hora*(1+$margen_precio_hora/100.0)*$tiempo;
$linea['fields']['margen_impresion_horas'] = $precio_hora*($margen_precio_hora/100.0)*$tiempo;
if($maquina->is_inkjet){
$linea['fields']['precio_pedido'] = $linea['fields']['precio_libro'] * ($datosPedido->tirada + $datosPedido->merma);
$linea['fields']['precio_pedido'] = $linea['fields']['precio_libro'] * ($datosPedido->tirada + $datosPedido->merma)*(1+$margen_pliego_impresion);
$linea['fields']['margen_papel_pedido'] = $linea['fields']['pliegos_libro']*$margen_pliego_impresion* ($datosPedido->tirada + $datosPedido->merma); ;
$linea['fields']['total_impresion'] =
$linea['fields']['precio_pedido'] + // papel
$linea['fields']['precio_impresion_horas'] + $linea['fields']['margen_impresion_horas'] + // horas de maquina
$linea['fields']['precio_impresion_horas'] + // horas de maquina
$linea['fields']['precio_click_pedido'] + // precio clicks del pedido
$linea['fields']['precio_tinta']; // tinta
}
else{
$linea['fields']['total_impresion'] = $linea['fields']['precio_pedido'] + // papel
$linea['fields']['precio_impresion_horas']; // impresion
$linea['fields']['precio_click_pedido'] + // precio clicks del pedido
$linea['fields']['precio_impresion_horas'] ; // horas de maquina
}
@ -825,7 +828,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
// Se recorren las máquinas y se calcula el coste de linea por cada una
foreach ($maquinas as $maquina) {
for ($i = 0; $i <= 1; $i++) {
for ($i = 1; $i <= 1; $i++) { // Para que por defecto salga sólo a favor de fibra
$parametrosRotativa->a_favor_fibra = $i;
@ -896,18 +899,19 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
continue;
}
$linea['fields']['precio_hora'] = $precio_hora;
$linea['fields']['precio_hora'] = $precio_hora*(1+$margen_precio_hora/100.0);
$linea['fields']['precio_hora_margen'] = $margen_precio_hora;
$linea['fields']['horas_maquina'] = $tiempo;
$linea['fields']['precio_impresion_horas'] = $precio_hora*$tiempo*1.0;
$linea['fields']['margen_impresion_horas'] = $precio_hora*$tiempo*1.0*$margen_precio_hora/100.0;
$linea['fields']['precio_impresion_horas'] = $precio_hora*(1+$margen_precio_hora/100.0)*$tiempo;
$linea['fields']['margen_impresion_horas'] = $precio_hora*($margen_precio_hora/100.0)*$tiempo;
// total linea rotativa
//$linea['fields']['total_impresion'] = $linea['fields']['precio_pedido'] + $linea['fields']['precio_click_pedido'] + $linea['fields']['precio_tinta'] +
// $linea['fields']['total_corte'];
$linea['fields']['total_impresion'] =
$linea['fields']['precio_pedido'] + // papel
$linea['fields']['precio_impresion_horas'] + $linea['fields']['margen_impresion_horas'] + // horas de maquina
$linea['fields']['precio_click_pedido'] + // precio clicks del pedido
$linea['fields']['precio_impresion_horas'] + // horas de maquina
$linea['fields']['precio_tinta'] + // tinta
$linea['fields']['total_corte']; // corte

View File

@ -31,7 +31,13 @@ class Test extends BaseController
var_dump($formas);
echo '</pre>';*/
$this->testLineasIntPlana();
echo '<pre>';
$tarifa_value = $this->get_tarifa_enc(18,150,22,150,210);
var_dump($tarifa_value[0]);
$model = model('App\Models\Presupuestos\PresupuestoEncuadernacionesModel');
$result = $model->calcularTarifa($tarifa_value[0], 150, true);
var_dump($result);
echo '</pre>';
}
private function asignar_tarifa_defecto_todos_usuarios()

View File

@ -70,7 +70,7 @@ class PresupuestoService extends BaseService
// precio papel
$pliegos_libro = ($datosPedido->paginas / 2.0) / $response['fields']['num_formas']['value'];
$pliegos_pedido = $pliegos_libro * ($datosPedido->tirada + $datosPedido->merma);
$precio_libro = $pliegos_libro * $precio_pliego_impresion;
$precio_libro = $pliegos_libro * ($precio_pliego_impresion+$margen_pliego_impresion);
$margen_papel_pedido = $pliegos_libro * $margen_pliego_impresion * ($datosPedido->tirada + $datosPedido->merma);
$precio_pedido = $precio_libro * ($datosPedido->tirada + $datosPedido->merma);

View File

@ -84,6 +84,7 @@ const papelGenericoRotativaColorList = <?php echo json_encode($papelGenericoRota
// Formatting function for row details - modify as you need
function format(d) {
var value = '<tr>'+
'<td></td>'+
'<td></td>'+
@ -111,7 +112,7 @@ function format(d) {
'</div>'+
'<input id="' + d.row_id +'_margenPapelPedido" name="' + d.row_id +'_margenPapelPedido" readonly class="lp-input lp-cell lp-cell-disabled ' + d.row_class + '-input" type="text" value="' + d.margenPapelPedido +'" style="display: none;">' +
'<div class="d-flex col-md-auto justify-content-center align-items-center">' +
'<input id="' + d.row_id + '_checkPapel" name="' + d.row_id +'_checkPapel" class="update-totales" style="bottom:0;width: 15px; padding: 0; margin:0;" type="checkbox" checked>' +
'<input id="' + d.row_id + '_checkPapel" name="' + d.row_id +'_checkPapel" class="update-totales" style="bottom:0;width: 15px; padding: 0; margin:0;" type="checkbox" ' + (d.check_papel_total==true?'checked':'') + '>' +
'</div>'+
'<div class="col-md-1 col-lg-1">' +
"<?= lang("Presupuestos.click") ?>" +
@ -134,7 +135,7 @@ function format(d) {
'<input id="' + d.row_id +'_precioImpresion" name="' + d.row_id +'_precioImpresion" class="lp-input lp-cell lp-cell-disabled ' + d.row_class +'-input" type="text" value="' + d.precioImpresion +'">'+
'</div>'+
'<div class="d-flex col-md-auto justify-content-center align-items-center">' +
'<input id="' + d.row_id + '_checkClicks" name="' + d.row_id +'_checkClicks" class="update-totales" style="bottom:0;width: 15px; padding: 0; margin:0;" type="checkbox" checked>' +
'<input id="' + d.row_id + '_checkClicks" name="' + d.row_id +'_checkClicks" class="update-totales" style="bottom:0;width: 15px; padding: 0; margin:0;" type="checkbox" ' + (d.check_impresion_total==true?'checked':'') + '>' +
'</div>'+
'<input id="' + d.row_id +'_margenImpresion" name="' + d.row_id +'_margenImpresion" readonly class="lp-input lp-cell lp-cell-disabled ' + d.row_class + '-input" type="text" value="' + d.margenImpresion +'" style="display: none;">' +
'</div>' +
@ -575,17 +576,6 @@ tableLineasPresupuesto.on('click', 'td.dt-control', function (e) {
function processRowData(row, rowId, rowClass){
$('#lp_bn_numeroPliegos').val()
$('#lp_bn_pliegosPedido').val()
$('#lp_bn_precioPliego').val()
$('#lp_bn_libro').val()
$('#lp_bn_totalPapelPedido').val()
$('#lp_bn_margenPapelPedido').val()
$('#lp_bn_lomo').val()
$('#lp_bn_peso').val()
$('#lp_bn_click').val()
$('#lp_bn_totalClicks').val()
var icon = ""
if(rowId=='lp_bn'){
if(row.tipo_maquina=='toner')
@ -665,6 +655,8 @@ function processRowData(row, rowId, rowClass){
'precioImpresion': isNaN(parseFloat(row.precio_impresion_horas)) ? "" : parseFloat(row.precio_impresion_horas).toFixed(2),
'margenImpresion': isNaN(parseFloat(row.margen_impresion_horas)) ? "" : parseFloat(row.margen_impresion_horas).toFixed(2),
'maquinaTipo': row.tipo_maquina,
'check_papel_total': row.check_papel_total,
'check_impresion_total': row.check_impresion_total,
}
if(row.tipo_maquina=='inkjet'){
@ -982,26 +974,26 @@ $('#addLineasPresupuesto').on("change", function (e) {
function update_total_linea(e){
total = 0
var rowData = tableLineasPresupuesto.row('#' + e.data.id_linea).data()
if($('#' + e.data.id_linea + '_checkPapel').prop('checked')){
total += parseFloat($('#' + e.data.id_linea + '_totalPapelPedido').val())
}
if($('#' + e.data.id_linea + '_checkClicks').prop('checked')){
total += parseFloat($('#' + e.data.id_linea + '_precioImpresion').val())
total += parseFloat($('#' + e.data.id_linea + '_margenImpresion').val())
}
total += parseFloat($('#' + e.data.id_linea + '_totalClicks').val())
var rowData = tableLineasPresupuesto.row('#' + e.data.id_linea).data()
if (rowData.maquinaTipo == 'inkjet'){
total += parseFloat(rowData.totalTinta)
}
if (e.data.id_linea.includes('rot_')){
total += parseFloat(rowData.totalCorte)
}
}
rowData.total_linea = parseFloat(total).toFixed(2)
tableLineasPresupuesto.row('#' + e.data.id_linea).data(rowData).draw(true)
updateTotales(true, false, false)
}
<?= $this->endSection() ?>

View File

@ -89,6 +89,7 @@ function updateTotales(updateLP=true, updateServicios=true, updateEnvio=true){
var margenPapel = 0
var totalImpresion = 0
var totalImpresionforMargen = 0
var margenImpresion = 0
var totalServicios = 0
@ -107,6 +108,13 @@ function updateTotales(updateLP=true, updateServicios=true, updateEnvio=true){
}
if($('#' + rowData.row_id + '_checkClicks').prop('checked')){
totalImpresion += parseFloat($('#' + rowData.row_id + '_precioImpresion').val())
totalImpresion += parseFloat($('#' + rowData.row_id + '_totalClicks').val())
totalImpresionforMargen += parseFloat($('#' + rowData.row_id + '_precioImpresion').val())
if(rowData.maquinaTipo=='inkjet'){
totalImpresion += parseFloat(rowData.totalTinta)
totalImpresion += parseFloat(rowData.totalCorte)
}
margenImpresion += parseFloat($('#' + rowData.row_id + '_margenImpresion').val())
if(!isNaN(parseFloat($('#' + rowData.row_id + 'lp_bn_totalTinta').val())))
totalImpresion += parseFloat($('#' + rowData.row_id + 'lp_bn_totalTinta').val())
@ -114,12 +122,16 @@ function updateTotales(updateLP=true, updateServicios=true, updateEnvio=true){
})
}
totalImpresion -= margenImpresion
totalImpresionforMargen -= margenImpresion
totalPapel -= margenPapel
var porcentajeMargenPapel = isNaN(margenPapel/(totalPapel)*100)?0:margenPapel/(totalPapel)*100
$('#porcentajeMargenPapel').text(porcentajeMargenPapel.toFixed(0) + '%')
$('#totalCostePapel').text(totalPapel.toFixed(2)+ '€')
$('#margenPapel').text(margenPapel.toFixed(2) + '€')
var porcentajeMargenImpresion = isNaN(margenImpresion/(totalImpresion)*100)?0:margenImpresion/(totalImpresion)*100
var porcentajeMargenImpresion = isNaN(margenImpresion/(totalImpresionforMargen)*100)?0:margenImpresion/(totalImpresionforMargen)*100
$('#porcentajeMargenImpresion').text(porcentajeMargenImpresion.toFixed(0) + '%')
$('#totalCosteImpresion').text(totalImpresion.toFixed(2) + '€')
$('#margenImpresion').text(margenImpresion.toFixed(2) + '€')

View File

@ -112,8 +112,8 @@ $('.accordion-button').on('click', function (e) {
*******************************/
function getRowFromLineaInt(tipo, linea) {
$precio_impresion = isNaN(parseFloat(linea.fields.precio_impresion_horas + linea.fields.margen_impresion_horas)) ? "" :
parseFloat(linea.fields.precio_impresion_horas + linea.fields.margen_impresion_horas).toFixed(2);
$precio_impresion = isNaN(parseFloat(linea.fields.precio_impresion_horas + linea.fields.margen_impresion_horas + linea.fields.precio_click_pedido)) ? "" :
parseFloat(linea.fields.precio_impresion_horas + linea.fields.margen_impresion_horas + linea.fields.precio_click_pedido).toFixed(2);
return {
@ -132,8 +132,7 @@ function getRowFromLineaInt(tipo, linea) {
'peso': isNaN(parseFloat(linea.fields.peso)) ? "" : parseFloat(linea.fields.peso).toFixed(2),
'horasMaquina': isNaN(parseFloat(linea.fields.horas_maquina)) ? "" : parseFloat(linea.fields.horas_maquina).toFixed(2),
'precioImpresion': $precio_impresion,
'total': isNaN(parseFloat(linea.fields.precio_pedido) + parseFloat($precio_impresion)) ?
"" : (parseFloat(linea.fields.precio_pedido) + parseFloat($precio_impresion)).toFixed(2),
'total': isNaN(parseFloat(linea.fields.total_impresion).toFixed(2)) ? "" : parseFloat(linea.fields.total_impresion).toFixed(2),
'maquinaId': linea.fields.maquina_id,
'maquinaVelocidad': linea.fields.maquina_velocidad,
'tiempoMaquina': linea.fields.tiempo_maquina,
@ -145,8 +144,8 @@ function getRowFromLineaInt(tipo, linea) {
function getRowFromLineaRot(linea) {
$precio_impresion = isNaN(parseFloat(linea.fields.precio_impresion_horas + linea.fields.margen_impresion_horas)) ? "" :
parseFloat(linea.fields.precio_impresion_horas + linea.fields.margen_impresion_horas).toFixed(2);
$precio_impresion = isNaN(parseFloat(linea.fields.precio_impresion_horas + linea.fields.precio_click_pedido)) ? "" :
parseFloat(linea.fields.precio_impresion_horas + linea.fields.precio_click_pedido).toFixed(2);
return {
'tipo': 'rotativa',