paginas por cuadernillo añadido a presupuesto comercial

This commit is contained in:
2024-08-23 13:44:24 +02:00
parent 50334186f2
commit b9f28c5ee8
8 changed files with 129 additions and 29 deletions

View File

@ -118,6 +118,7 @@ class Presupuestoencuadernaciones extends \App\Controllers\BaseResourceControlle
$alto = $reqData['alto'] ?? 0; $alto = $reqData['alto'] ?? 0;
$POD = $reqData['POD'] ?? 0; $POD = $reqData['POD'] ?? 0;
$paginas_cuadernillo = $reqData['paginas_por_cuadernillo'] ?? null;
$newTokenHash = csrf_hash(); $newTokenHash = csrf_hash();
$csrfTokenName = csrf_token(); $csrfTokenName = csrf_token();
@ -125,7 +126,7 @@ class Presupuestoencuadernaciones extends \App\Controllers\BaseResourceControlle
$tarifaModel = model('App\Models\Tarifas\TarifaEncuadernacionModel'); $tarifaModel = model('App\Models\Tarifas\TarifaEncuadernacionModel');
if(is_null($tipo)){ if(is_null($tipo)){
if($tarifaModel->isTarifaPorHoras($tarifa_encuadernacion_id)){ if($tarifaModel->isTarifaPorHoras($tarifa_encuadernacion_id)){
$values = $this->model->getPrecioTarifaHoras($tarifa_encuadernacion_id, $paginas, $tirada, $proveedor_id, $POD); $values = $this->model->getPrecioTarifaHoras($tarifa_encuadernacion_id, $paginas, $tirada, $proveedor_id, $POD, $paginas_cuadernillo);
}else{ }else{
$values = $this->model->getPrecioTarifa($tarifa_encuadernacion_id, $paginas, $tirada, $ancho, $alto, $proveedor_id, $POD); $values = $this->model->getPrecioTarifa($tarifa_encuadernacion_id, $paginas, $tirada, $ancho, $alto, $proveedor_id, $POD);
} }

View File

@ -11,6 +11,7 @@ class PresupuestoEncuadernacionesEntity extends \CodeIgniter\Entity\Entity
"tarifa_encuadernado_id" => null, "tarifa_encuadernado_id" => null,
"proveedor_id" => null, "proveedor_id" => null,
"precio_unidad" => null, "precio_unidad" => null,
"paginas_por_cuadernillo" => null,
"tiempo" => null, "tiempo" => null,
"precio_total" => null, "precio_total" => null,
"margen" => null, "margen" => null,
@ -22,6 +23,7 @@ class PresupuestoEncuadernacionesEntity extends \CodeIgniter\Entity\Entity
"tarifa_encuadernado_id" => "int", "tarifa_encuadernado_id" => "int",
"proveedor_id" => "int", "proveedor_id" => "int",
"precio_unidad" => "float", "precio_unidad" => "float",
"paginas_por_cuadernillo" => "int",
"tiempo" => "float", "tiempo" => "float",
"precio_total" => "float", "precio_total" => "float",
"margen" => "float", "margen" => "float",

View File

@ -247,6 +247,7 @@ return [
'precio' => 'Precio', 'precio' => 'Precio',
'precioUnidad' => 'Precio unidad', 'precioUnidad' => 'Precio unidad',
'tiempo' => 'Tiempo', 'tiempo' => 'Tiempo',
"paginasCuadernillo" => "Páginas/cuadernillo",
'precioTotal' => 'Precio total', 'precioTotal' => 'Precio total',
'serviciosDefault' => 'Servicios por defecto', 'serviciosDefault' => 'Servicios por defecto',
'tarifa' => 'Tarifa', 'tarifa' => 'Tarifa',

View File

@ -21,7 +21,7 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
4 => "t1.precio_total" 4 => "t1.precio_total"
]; ];
protected $allowedFields = ["presupuesto_id", "tarifa_encuadernado_id", "proveedor_id", "nombre", "precio_total", "precio_unidad", "tiempo", "margen"]; protected $allowedFields = ["presupuesto_id", "tarifa_encuadernado_id", "proveedor_id", "nombre", "precio_total", "precio_unidad", "paginas_por_cuadernillo", "tiempo", "margen"];
protected $returnType = "App\Entities\Presupuestos\PresupuestoEncuadernacionesEntity"; protected $returnType = "App\Entities\Presupuestos\PresupuestoEncuadernacionesEntity";
protected $useTimestamps = true; protected $useTimestamps = true;
@ -60,7 +60,12 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
if($modelTarifa->isTarifaPorHoras($tarifa['tarifa_id'])){ if($modelTarifa->isTarifaPorHoras($tarifa['tarifa_id'])){
$tiempo = $this->calcularTiempo(16, $paginas, $tirada); // ID fija. Cambiar cuando se metan maquinas de corte. Velocidad en minutos if($tarifa['tarifa_id'] == 2 || $tarifa['tarifa_id'] == 14){ // Rústica cosido hilo vegetal y Rústica cosido hilo vegetal solapas
$tiempo = $this->calcularTiempoCosido(16, $paginas, $tirada); // ID fija. Cambiar cuando se metan maquinas de corte. Velocidad en minutos
}
else{
$tiempo = $this->calcularTiempo(16, $paginas, $tirada); // ID fija. Cambiar cuando se metan maquinas de corte. Velocidad en minutos
}
$tarifa_value = $modelTarifa->getTarifaPresupuestoEncuadernacionHoras($tarifa['tarifa_id'], $tiempo, $tirada); $tarifa_value = $modelTarifa->getTarifaPresupuestoEncuadernacionHoras($tarifa['tarifa_id'], $tiempo, $tirada);
if (count($tarifa_value)>0) { if (count($tarifa_value)>0) {
@ -76,8 +81,7 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
$result_data[1] = $precio_total; $result_data[1] = $precio_total;
$result_data[2] = $tarifa_proveedor->margen ; // margen $result_data[2] = $tarifa_proveedor->margen ; // margen
array_push($result_array, $datos = [
(object)[
'tarifa_id'=> $tarifa['tarifa_id'], 'tarifa_id'=> $tarifa['tarifa_id'],
'tarifa_nombre'=> $tarifa_proveedor->tarifa_enc_nombre, 'tarifa_nombre'=> $tarifa_proveedor->tarifa_enc_nombre,
'precio_unidad'=> $result_data[0], 'precio_unidad'=> $result_data[0],
@ -86,7 +90,14 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
'margen' => $result_data[2], 'margen' => $result_data[2],
'proveedor' => $tarifa_proveedor->proveedor_nombre, 'proveedor' => $tarifa_proveedor->proveedor_nombre,
'proveedor_id' => $tarifa_proveedor->proveedor_id, 'proveedor_id' => $tarifa_proveedor->proveedor_id,
]); ];
if($tarifa['tarifa_id'] == 2 || $tarifa['tarifa_id'] == 14){
$datos['paginas_por_cuadernillo'] = 32; // valor por defecto
}
array_push($result_array,
(object)$datos);
} }
usort($result_array, function($a, $b) { usort($result_array, function($a, $b) {
@ -237,11 +248,16 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
return []; return [];
} }
public function getPrecioTarifaHoras($tarifa_encuadernacion_id, $paginas, $tirada, $proveedor_id, $POD){ public function getPrecioTarifaHoras($tarifa_encuadernacion_id, $paginas, $tirada, $proveedor_id, $POD, $paginas_cuadernillo = null){
$modelTarifa = model('App\Models\Tarifas\TarifaEncuadernacionModel'); $modelTarifa = model('App\Models\Tarifas\TarifaEncuadernacionModel');
$tiempo = $this->calcularTiempo(16, $paginas, $tirada); // ID fija. Cambiar cuando se metan maquinas de corte. Velocidad en minutos if($tarifa_encuadernacion_id == 2 || $tarifa_encuadernacion_id == 14){ // Rústica cosido hilo vegetal y Rústica cosido hilo vegetal solapas
$tiempo = $this->calcularTiempoCosido(16, $paginas, $tirada, $paginas_cuadernillo); // ID fija. Cambiar cuando se metan maquinas de corte. Velocidad en minutos
}
else{
$tiempo = $this->calcularTiempo(16, $paginas, $tirada); // ID fija. Cambiar cuando se metan maquinas de corte. Velocidad en minutos
}
$tarifa_value = $modelTarifa->getTarifaPresupuestoEncuadernacionHoras($tarifa_encuadernacion_id, $tiempo, $tirada, $proveedor_id); $tarifa_value = $modelTarifa->getTarifaPresupuestoEncuadernacionHoras($tarifa_encuadernacion_id, $tiempo, $tirada, $proveedor_id);
if (count($tarifa_value)>0) { if (count($tarifa_value)>0) {
@ -257,12 +273,14 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
$result_data[1] = $precio_total; $result_data[1] = $precio_total;
$result_data[2] = $tarifa_proveedor->margen ; // margen $result_data[2] = $tarifa_proveedor->margen ; // margen
array_push($ret_array, array_push($ret_array,
(object)[ (object)[
'tarifa_id'=> $tarifa_proveedor->tarifa_enc_id, 'tarifa_id'=> $tarifa_proveedor->tarifa_enc_id,
'tarifa_nombre'=> $tarifa_proveedor->tarifa_enc_nombre, 'tarifa_nombre'=> $tarifa_proveedor->tarifa_enc_nombre,
'precio_unidad'=> $result_data[0], 'precio_unidad'=> $result_data[0],
'tiempo' => $tiempo, 'tiempo' => $tiempo,
'paginas_por_cuadernillo' => $paginas_cuadernillo,
'total'=> $result_data[1], 'total'=> $result_data[1],
'margen' => $result_data[2], 'margen' => $result_data[2],
'proveedor' => $tarifa_proveedor->proveedor_nombre, 'proveedor' => $tarifa_proveedor->proveedor_nombre,
@ -287,6 +305,7 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
'proveedor' => lang('Presupuestos.no_disponible'), 'proveedor' => lang('Presupuestos.no_disponible'),
'precio_unidad'=> 0, 'precio_unidad'=> 0,
'tiempo' => null, 'tiempo' => null,
'paginas_por_cuadernillo' => null,
'total'=> 0, 'total'=> 0,
'margen' => 0, 'margen' => 0,
]; ];
@ -355,6 +374,7 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
$builder->where('presupuesto_id', $presupuesto_id); $builder->where('presupuesto_id', $presupuesto_id);
$builder->where('tarifa_encuadernado_id', $tarifa->tarifa_id); $builder->where('tarifa_encuadernado_id', $tarifa->tarifa_id);
$result = $builder->get()->getResultObject(); $result = $builder->get()->getResultObject();
$paginas_cuadernillo = $tarifa->paginas_por_cuadernillo??null;
if(count($result)>0){ if(count($result)>0){
$this->db $this->db
->table($this->table . " t1") ->table($this->table . " t1")
@ -365,6 +385,7 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
->set('tiempo', $tarifa->tiempo) ->set('tiempo', $tarifa->tiempo)
->set('precio_total', $tarifa->precio_total) ->set('precio_total', $tarifa->precio_total)
->set('margen', $tarifa->margen) ->set('margen', $tarifa->margen)
->set('paginas_por_cuadernillo', $paginas_cuadernillo)
->update(); ->update();
@ -397,7 +418,8 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
->table($this->table . " t1") ->table($this->table . " t1")
->select( ->select(
"t1.id AS id, t1.tarifa_encuadernado_id AS tarifa_encuadernado_id, t1.precio_unidad AS precio_unidad, t1.tiempo AS tiempo, "t1.id AS id, t1.tarifa_encuadernado_id AS tarifa_encuadernado_id, t1.precio_unidad AS precio_unidad, t1.tiempo AS tiempo,
t1.precio_total AS precio_total, t1.margen AS margen, t2.nombre AS nombre, t1.proveedor_id AS proveedor_id, t3.nombre AS proveedor" t1.precio_total AS precio_total, t1.margen AS margen, t2.nombre AS nombre, t1.proveedor_id AS proveedor_id, t3.nombre AS proveedor,
t1.paginas_por_cuadernillo AS paginas_por_cuadernillo"
); );
$builder->where('t1.presupuesto_id', $presupuesto_id); $builder->where('t1.presupuesto_id', $presupuesto_id);
@ -415,4 +437,13 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
$velocidad = $maquinaModel->getVelocidad($maquina_id); $velocidad = $maquinaModel->getVelocidad($maquina_id);
return round($cuadernillos_pedido/($velocidad*60.0), 2); return round($cuadernillos_pedido/($velocidad*60.0), 2);
} }
private function calcularTiempoCosido($maquina_id, $paginas, $tirada, $cuadernillos_por_pagina = 32){
$maquinaModel = model("App\Models\Configuracion\MaquinaModel");
$velocidad = $maquinaModel->getVelocidad($maquina_id); // cuadernillos por minuto
$cuadernillos_libro = ceil($paginas/intval($cuadernillos_por_pagina));
$cuadernillos_pedido = $cuadernillos_libro*$tirada;
return round($cuadernillos_pedido/($velocidad*60.0), 2); // tiempo en segundos
}
} }

View File

@ -1421,12 +1421,14 @@ class PresupuestoService extends BaseService
// Si es un presupuesto duplicado hay que buscar el proveedor más barato // Si es un presupuesto duplicado hay que buscar el proveedor más barato
if($input_data['is_duplicado']){ if($input_data['is_duplicado']){
if($tarifaModel->isTarifaPorHoras($servicio->tarifa_encuadernado_id)){ if($tarifaModel->isTarifaPorHoras($servicio->tarifa_encuadernado_id)){
$paginas_cuadernillo = $servicio->paginas_por_cuadernillo??null;
$nueva_tarifa = $model->getPrecioTarifaHoras( $nueva_tarifa = $model->getPrecioTarifaHoras(
$servicio->tarifa_encuadernado_id, $servicio->tarifa_encuadernado_id,
$input_data['paginas'], $input_data['paginas'],
$input_data['tirada'], $input_data['tirada'],
-1, -1,
$input_data['POD']); $input_data['POD'],
$paginas_cuadernillo);
}else{ }else{
$nueva_tarifa = $model->getPrecioTarifa( $nueva_tarifa = $model->getPrecioTarifa(
$servicio->tarifa_encuadernado_id, $servicio->tarifa_encuadernado_id,
@ -1443,12 +1445,14 @@ class PresupuestoService extends BaseService
// con el mismo proveedor // con el mismo proveedor
else{ else{
if($tarifaModel->isTarifaPorHoras($servicio->tarifa_encuadernado_id)){ if($tarifaModel->isTarifaPorHoras($servicio->tarifa_encuadernado_id)){
$paginas_cuadernillo = $servicio->paginas_por_cuadernillo??null;
$nueva_tarifa = $model->getPrecioTarifaHoras( $nueva_tarifa = $model->getPrecioTarifaHoras(
$servicio->tarifa_encuadernado_id, $servicio->tarifa_encuadernado_id,
$input_data['paginas'], $input_data['paginas'],
$input_data['tirada'], $input_data['tirada'],
$servicio->proveedor_id, $servicio->proveedor_id,
$input_data['POD']); $input_data['POD'],
$paginas_cuadernillo);
}else{ }else{
$nueva_tarifa = $model->getPrecioTarifa( $nueva_tarifa = $model->getPrecioTarifa(
$servicio->tarifa_encuadernado_id, $servicio->tarifa_encuadernado_id,

View File

@ -173,7 +173,7 @@ theTable = $('#tableOfPresupuestos').DataTable({
} }
], ],
stateSave: false, stateSave: false,
order: [[1, 'asc']], order: [[1, 'desc']],
language: { language: {
url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json" url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
}, },

View File

@ -518,7 +518,7 @@ function init_servicio_encuadernado(){
const tarifa_id = element.tarifa_encuadernado_id const tarifa_id = element.tarifa_encuadernado_id
var proveedor_nombre = element.proveedor===null? window.Presupuestos.no_disponible: element.proveedor var proveedor_nombre = element.proveedor===null? window.Presupuestos.no_disponible: element.proveedor
tableServiciosEnc.row.add([ var linea = [
element.tarifa_encuadernado_id, element.tarifa_encuadernado_id,
element.nombre, element.nombre,
'<select id="proveedor_enc_' + element.tarifa_encuadernado_id + '" class="proveedor_enc select2bs2" style="width: 100%;">' + '<select id="proveedor_enc_' + element.tarifa_encuadernado_id + '" class="proveedor_enc select2bs2" style="width: 100%;">' +
@ -527,11 +527,14 @@ function init_servicio_encuadernado(){
'</option>' + '</option>' +
'</select>', '</select>',
'<span id="precio_unidad_encuadernado_' + element.tarifa_encuadernado_id + '">' + parseFloat(element.precio_unidad).toFixed(2) + '</span>', '<span id="precio_unidad_encuadernado_' + element.tarifa_encuadernado_id + '">' + parseFloat(element.precio_unidad).toFixed(2) + '</span>',
(element.hasOwnProperty('paginas_por_cuadernillo') && element.paginas_por_cuadernillo!=null)?selectForCuadernillos(element.tarifa_encuadernado_id, element.paginas_por_cuadernillo):'',
'<span id="tiempo_encuadernado_' + element.tarifa_encuadernado_id + '">' + convertirTiempo(element.tiempo) + '</span>', '<span id="tiempo_encuadernado_' + element.tarifa_encuadernado_id + '">' + convertirTiempo(element.tiempo) + '</span>',
'<input class="update-totales-servicios" id="precio_total_encuadernado_' + element.tarifa_encuadernado_id +'" value="' + parseFloat(element.precio_total).toFixed(2) + '"></input>', '<input class="update-totales-servicios" id="precio_total_encuadernado_' + element.tarifa_encuadernado_id +'" value="' + parseFloat(element.precio_total).toFixed(2) + '"></input>',
'<span style="display: none;" class="update-totales" id="enc_margen_' + element.tarifa_encuadernado_id + '">' + parseFloat(element.margen).toFixed(2) + '</span>', '<span style="display: none;" class="update-totales" id="enc_margen_' + element.tarifa_encuadernado_id + '">' + parseFloat(element.margen).toFixed(2) + '</span>',
'<a href="javascript:void(0);"><i class="ti ti-trash ti-sm btn-delete-serv mx-2" data-id="' + element.tarifa_encuadernado_id +'"></i></a>' '<a href="javascript:void(0);"><i class="ti ti-trash ti-sm btn-delete-serv mx-2" data-id="' + element.tarifa_encuadernado_id +'"></i></a>'
]).draw(false) ]
tableServiciosEnc.row.add(linea).draw(false)
$('#precio_total_encuadernado_' + element.tarifa_encuadernado_id).on('change', function(){ $('#precio_total_encuadernado_' + element.tarifa_encuadernado_id).on('change', function(){
updatePresupuesto({ updatePresupuesto({
@ -583,12 +586,38 @@ function init_servicio_encuadernado(){
cache: true cache: true
} }
}); });
$('#proveedor_enc_' + element.tarifa_encuadernado_id).on('change', proveedor_enc_event) $('#proveedor_enc_' + element.tarifa_encuadernado_id).on('change', select_enc_event)
if(element.hasOwnProperty('paginas_por_cuadernillo') && element.paginas_por_cuadernillo!=null){
$('#cuadernillos_' + element.tarifa_encuadernado_id).select2({
allowClear: false,
minimumResultsForSearch: -1,
});
$('#cuadernillos_' + element.tarifa_encuadernado_id).on('change', select_enc_event)
}
}); });
check_serv_enc_error() check_serv_enc_error()
} }
function selectForCuadernillos(tarifa_id, select_value){
const value_list = [32, 28, 24, 20, 16];
var string =
'<select id="cuadernillos_' + tarifa_id + '" class="cuadernillo_enc select2bs2" style="width: 50%;">';
for (let i = 0; i < value_list.length; i++) {
string +=
'<option value="' + value_list[i] + '" ' + (value_list[i]==select_value?'selected':'') +'>' +
value_list[i] +
'</option>';
}
string += '</select>';
return string;
}
function convertirTiempo(horas){ function convertirTiempo(horas){
if(horas != null){ if(horas != null){
if(parseFloat(horas)>0){ if(parseFloat(horas)>0){
@ -602,28 +631,45 @@ function convertirTiempo(horas){
else{ else{
return ""; return "";
} }
} }
else{ else{
return ""; return "";
} }
} }
function proveedor_enc_event(){ function select_enc_event(){
const dimension = getDimensionLibro(); const dimension = getDimensionLibro();
if(parseInt($('#tirada').val())>0){ if(parseInt($('#tirada').val())>0){
var tirada = parseInt($('#tirada').val()) var tirada = parseInt($('#tirada').val()) + parseInt($('#merma').val())
} }
else{ else{
var tirada = 0 var tirada = 0
} }
var tarifa_id = null;
if(this.id.includes('proveedor_enc')){
tarifa_id = this.id.split('_')[2];
}
else{
tarifa_id = this.id.split('_')[1];
}
// se checkea si el elemento #cuadernillos_ + tarifa_id existe
var paginas_por_cuadernillo = null;
if($('#cuadernillos_' + tarifa_id).length){
paginas_por_cuadernillo = parseInt($('#cuadernillos_' + tarifa_id).select2('data')[0].id);
}
var datos = { var datos = {
tarifa_encuadernacion_id: this.id.split('_')[2], tarifa_encuadernacion_id: tarifa_id,
paginas: parseInt($('#paginas').val())>0?parseInt($('#paginas').val()):0, paginas: parseInt($('#paginas').val())>0?parseInt($('#paginas').val()):0,
tirada: tirada, tirada: tirada,
ancho: dimension.ancho, ancho: dimension.ancho,
alto: dimension.alto, alto: dimension.alto,
proveedor_id: parseInt($('#' + this.id).select2('data')[0].id), paginas_por_cuadernillo: paginas_por_cuadernillo,
proveedor_id: parseInt($('#proveedor_enc_' + tarifa_id).select2('data')[0].id),
POD: parseInt($('#POD').val()) POD: parseInt($('#POD').val())
}; };
datos = Object.assign(datos, window.token_ajax); datos = Object.assign(datos, window.token_ajax);
@ -677,7 +723,7 @@ async function get_tarifas_enc(tipo=null, tarifa_id = -1){
const dimension = getDimensionLibro(); const dimension = getDimensionLibro();
if(parseInt($('#tirada').val())>0){ if(parseInt($('#tirada').val())>0){
var tirada = parseInt($('#tirada').val()) var tirada = parseInt($('#tirada').val()) + parseInt($('#merma').val())
} }
else{ else{
var tirada = 0 var tirada = 0
@ -719,6 +765,7 @@ async function get_tarifas_enc(tipo=null, tarifa_id = -1){
'</option>' + '</option>' +
'</select>', '</select>',
'<span id="precio_unidad_encuadernado_' + row.tarifa_id + '">' + parseFloat(row.precio_unidad).toFixed(2) + '</span>', '<span id="precio_unidad_encuadernado_' + row.tarifa_id + '">' + parseFloat(row.precio_unidad).toFixed(2) + '</span>',
(row.hasOwnProperty('paginas_por_cuadernillo') && row.paginas_por_cuadernillo!=null)?selectForCuadernillos(row.tarifa_id, 32):'',
'<span id="tiempo_encuadernado_' + row.tarifa_id + '">' + convertirTiempo(row.tiempo) + '</span>', '<span id="tiempo_encuadernado_' + row.tarifa_id + '">' + convertirTiempo(row.tiempo) + '</span>',
'<input class="update-totales-servicios" id="precio_total_encuadernado_' + row.tarifa_id +'" value="' + parseFloat(row.total).toFixed(2) + '"></input>', '<input class="update-totales-servicios" id="precio_total_encuadernado_' + row.tarifa_id +'" value="' + parseFloat(row.total).toFixed(2) + '"></input>',
'<span style="display: none;" class="update-totales" id="enc_margen_' + row.tarifa_id + '">' + parseFloat(row.margen).toFixed(2) + '</span>', '<span style="display: none;" class="update-totales" id="enc_margen_' + row.tarifa_id + '">' + parseFloat(row.margen).toFixed(2) + '</span>',
@ -745,7 +792,7 @@ async function get_tarifas_enc(tipo=null, tarifa_id = -1){
data: function (params) { data: function (params) {
if( parseInt( $('#tirada').val() )>0){ if( parseInt( $('#tirada').val() )>0){
var tirada = parseInt($('#tirada').val()) var tirada = parseInt($('#tirada').val()) + parseInt($('#merma').val())
} }
else{ else{
var tirada = 0 var tirada = 0
@ -755,8 +802,8 @@ async function get_tarifas_enc(tipo=null, tarifa_id = -1){
tarifa_id: row.tarifa_id, tarifa_id: row.tarifa_id,
paginas: parseInt($('#paginas').val())>0?parseInt($('#paginas').val()):0, paginas: parseInt($('#paginas').val())>0?parseInt($('#paginas').val()):0,
tirada: tirada, tirada: tirada,
ancho: ancho_libro, ancho: dimension.ancho,
alto: alto_libro, alto: dimension.alto,
searchtxt: params.term, // search term searchtxt: params.term, // search term
} }
return_data = Object.assign(return_data, window.token_ajax); return_data = Object.assign(return_data, window.token_ajax);
@ -773,9 +820,17 @@ async function get_tarifas_enc(tipo=null, tarifa_id = -1){
} }
}); });
$('#proveedor_enc_' + row.tarifa_id).on('change', proveedor_enc_event) $('#proveedor_enc_' + row.tarifa_id).on('change', select_enc_event)
if(row.hasOwnProperty('paginas_por_cuadernillo') && row.paginas_por_cuadernillo!=null){
$('#cuadernillos_' + row.tarifa_id).select2({
allowClear: false,
minimumResultsForSearch: -1,
});
$('#cuadernillos_' + row.tarifa_id).on('change', select_enc_event)
}
}); });
check_serv_enc_error() check_serv_enc_error()
yeniden(data[window.csrf_token]); yeniden(data[window.csrf_token]);
@ -822,15 +877,20 @@ function get_datos_encuadernacion(){
values['precio_unidad'] = $(this).text() values['precio_unidad'] = $(this).text()
break break
case 4: case 4:
values['paginas_por_cuadernillo'] = $(this).children(":first").val()
// Si el valor es "undefined" se pone a null
if(values['paginas_por_cuadernillo'] == "undefined")
values['paginas_por_cuadernillo'] = null
case 5:
values['tiempo'] = $(this).text() values['tiempo'] = $(this).text()
// se pasa el string hh:mm:ss a horas // se pasa el string hh:mm:ss a horas
if(values['tiempo'] != null) if(values['tiempo'] != null)
values['tiempo'] = parseInt(values['tiempo'].split(':')[0]) + parseInt(values['tiempo'].split(':')[1])/60 + parseInt(values['tiempo'].split(':')[2])/3600 values['tiempo'] = parseInt(values['tiempo'].split(':')[0]) + parseInt(values['tiempo'].split(':')[1])/60 + parseInt(values['tiempo'].split(':')[2])/3600
break break
case 5: case 6:
values['precio_total'] = $(this).children(":first").val() values['precio_total'] = $(this).children(":first").val()
break break
case 6: case 7:
values['margen'] = $(this).text() values['margen'] = $(this).text()
break break
} }
@ -1709,7 +1769,7 @@ async function actualizar_servicios(update_preimpresion=false){
$('#precio_unidad_encuadernado_' + line[0].tarifa_id).text(parseFloat(line[0].precio_unidad).toFixed(2)) $('#precio_unidad_encuadernado_' + line[0].tarifa_id).text(parseFloat(line[0].precio_unidad).toFixed(2))
$('#precio_total_encuadernado_' + line[0].tarifa_id).val(parseFloat(line[0].total).toFixed(2)) $('#precio_total_encuadernado_' + line[0].tarifa_id).val(parseFloat(line[0].total).toFixed(2))
$('#enc_margen_' + line[0].tarifa_id).val(parseFloat(line[0].margen).toFixed(2)) $('#enc_margen_' + line[0].tarifa_id).val(parseFloat(line[0].margen).toFixed(2))
$('#proveedor_enc_' + line[0].tarifa_id).on('change', proveedor_enc_event) $('#proveedor_enc_' + line[0].tarifa_id).on('change', select_enc_event)
}); });
check_serv_enc_error() check_serv_enc_error()
yeniden(data[window.csrf_token]); yeniden(data[window.csrf_token]);

View File

@ -167,6 +167,7 @@
<th><?= lang('Presupuestos.tarifa') ?></th> <th><?= lang('Presupuestos.tarifa') ?></th>
<th><?= lang('Proveedores.proveedor') ?></th> <th><?= lang('Proveedores.proveedor') ?></th>
<th><?= lang('Presupuestos.precioUnidad') ?></th> <th><?= lang('Presupuestos.precioUnidad') ?></th>
<th><?= lang('Presupuestos.paginasCuadernillo') ?></th>
<th><?= lang('Presupuestos.tiempo') ?></th> <th><?= lang('Presupuestos.tiempo') ?></th>
<th><?= lang('Presupuestos.precioTotal') ?></th> <th><?= lang('Presupuestos.precioTotal') ?></th>
<th></th> <th></th>