Merge branch 'main' into dev/chat

This commit is contained in:
Alvaro Mazuecos Nogales
2024-09-23 10:04:55 +02:00
25 changed files with 204 additions and 183 deletions

View File

@ -9,8 +9,6 @@ class TarifaextraEntity extends \CodeIgniter\Entity\Entity
"id" => null, "id" => null,
"nombre" => null, "nombre" => null,
"precio" => null, "precio" => null,
"precio_min" => 0,
"importe_fijo" => 0,
"margen" => 0, "margen" => 0,
"mostrar_en_presupuesto" => 1, "mostrar_en_presupuesto" => 1,
"user_created_id" => 1, "user_created_id" => 1,
@ -22,8 +20,6 @@ class TarifaextraEntity extends \CodeIgniter\Entity\Entity
]; ];
protected $casts = [ protected $casts = [
"precio" => "float", "precio" => "float",
"precio_min" => "float",
"importe_fijo" => "float",
"margen" => "float", "margen" => "float",
"mostrar_en_presupuesto" => "int", "mostrar_en_presupuesto" => "int",
"user_created_id" => "int", "user_created_id" => "int",

View File

@ -9,8 +9,6 @@ class TarifapreimpresionEntity extends \CodeIgniter\Entity\Entity
"id" => null, "id" => null,
"nombre" => null, "nombre" => null,
"precio" => null, "precio" => null,
"precio_min" => 0,
"importe_fijo" => 0,
"margen" => 0, "margen" => 0,
"mostrar_en_presupuesto" => 1, "mostrar_en_presupuesto" => 1,
"user_created_id" => 1, "user_created_id" => 1,
@ -22,8 +20,6 @@ class TarifapreimpresionEntity extends \CodeIgniter\Entity\Entity
]; ];
protected $casts = [ protected $casts = [
"precio" => "float", "precio" => "float",
"precio_min" => "float",
"importe_fijo" => "float",
"margen" => "float", "margen" => "float",
"mostrar_en_presupuesto" => "int", "mostrar_en_presupuesto" => "int",
"user_created_id" => "int", "user_created_id" => "int",

View File

@ -13,7 +13,7 @@ return [
'nombre' => 'Name', 'nombre' => 'Name',
'precioMax' => 'Price Max', 'precioMax' => 'Price Max',
'precioMin' => 'Price Min', 'precioMin' => 'Price Min',
'precioMin' => 'Min Price', 'importeMinimo' => 'Min Price',
'importeFijo' => 'Fixed amount', 'importeFijo' => 'Fixed amount',
'mostrar_en_presupuesto' => 'Show in budget', 'mostrar_en_presupuesto' => 'Show in budget',
'margen' => 'Margin', 'margen' => 'Margin',

View File

@ -19,6 +19,7 @@ return [
'updatedAt' => 'Updated At', 'updatedAt' => 'Updated At',
'userCreatedId' => 'User Created ID', 'userCreatedId' => 'User Created ID',
'userUpdateId' => 'User Update ID', 'userUpdateId' => 'User Update ID',
'coste' => 'Cost',
'validation' => [ 'validation' => [
'nombre' => [ 'nombre' => [
'max_length' => 'The {field} field cannot exceed {param} characters in length.', 'max_length' => 'The {field} field cannot exceed {param} characters in length.',

View File

@ -18,6 +18,7 @@ return [
'updatedAt' => 'Actualizado en', 'updatedAt' => 'Actualizado en',
'userCreatedId' => 'ID Usuario \"Creado en\"', 'userCreatedId' => 'ID Usuario \"Creado en\"',
'userUpdateId' => 'ID Usuario \"Actualizado en\"', 'userUpdateId' => 'ID Usuario \"Actualizado en\"',
'coste' => 'Coste',
'validation' => [ 'validation' => [
'nombre' => [ 'nombre' => [
'max_length' => 'El campo {field} no puede exceder {param} caracteres en longitud.', 'max_length' => 'El campo {field} no puede exceder {param} caracteres en longitud.',

View File

@ -10,6 +10,7 @@ return [
'id' => 'ID', 'id' => 'ID',
'moduleTitle' => 'Tarifas Manipulado', 'moduleTitle' => 'Tarifas Manipulado',
'nombre' => 'Nombre', 'nombre' => 'Nombre',
'importeMinimo' => 'Importe mínimo',
'precioMax' => 'Precio T. Mín', 'precioMax' => 'Precio T. Mín',
'precioMin' => 'Precio T. Máx', 'precioMin' => 'Precio T. Máx',
'importeFijo' => 'Importe Fijo', 'importeFijo' => 'Importe Fijo',

View File

@ -18,6 +18,7 @@ return [
'updatedAt' => 'Actualizado en', 'updatedAt' => 'Actualizado en',
'userCreatedId' => 'ID Usuario \"Creado en\"', 'userCreatedId' => 'ID Usuario \"Creado en\"',
'userUpdateId' => 'ID Usuario \"Actualizado en\"', 'userUpdateId' => 'ID Usuario \"Actualizado en\"',
'coste' => 'Coste',
'validation' => [ 'validation' => [
'nombre' => [ 'nombre' => [
'max_length' => 'El campo {field} no puede exceder {param} caracteres en longitud.', 'max_length' => 'El campo {field} no puede exceder {param} caracteres en longitud.',

View File

@ -209,6 +209,7 @@ class ProveedorModel extends \App\Models\BaseModel
->select( ->select(
"t1.id AS value, t1.nombre AS label, t1.propiedades AS options") "t1.id AS value, t1.nombre AS label, t1.propiedades AS options")
->where("tipo_id", $tipoId) ->where("tipo_id", $tipoId)
->where("is_deleted", 0)
->orderBy('t1.nombre', 'asc'); ->orderBy('t1.nombre', 'asc');
return $builder->get()->getResultObject(); return $builder->get()->getResultObject();

View File

@ -283,6 +283,13 @@ class PresupuestoAcabadosModel extends \App\Models\BaseModel
$total = $precio_unidad * $tirada; $total = $precio_unidad * $tirada;
$margen = floatval($tarifa->margen); $margen = floatval($tarifa->margen);
if($tarifa->tarifa_precio_min > $total){
$total = $total-($total * $margen/100.0);
$margen = round(100.0 * (floatval($tarifa->tarifa_precio_min) - $total) / floatval($tarifa->tarifa_precio_min), 0);
$total = floatval($tarifa->tarifa_precio_min);
$precio_unidad = round(floatval($total / $tirada), 2);
}
if (!$is_POD){ if (!$is_POD){
$total += floatval($tarifa->tarifa_importe_fijo); $total += floatval($tarifa->tarifa_importe_fijo);
} }

View File

@ -324,6 +324,13 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
$total = $precio_unidad * $ejemplares; $total = $precio_unidad * $ejemplares;
$margen = floatval($tarifa->margen); $margen = floatval($tarifa->margen);
if($tarifa->tarifa_precio_min > $total){
$total = $total-($total * $margen/100.0);
$margen = round(100.0 * (floatval($tarifa->tarifa_precio_min) - $total) / floatval($tarifa->tarifa_precio_min), 0);
$total = floatval($tarifa->tarifa_precio_min);
$precio_unidad = round(floatval($total / $ejemplares), 2);
}
if (!$is_POD){ if (!$is_POD){
$total += floatval($tarifa->tarifa_importe_fijo); $total += floatval($tarifa->tarifa_importe_fijo);
} }

View File

@ -84,6 +84,13 @@ class PresupuestoManipuladosModel extends \App\Models\BaseModel
$total = $precio_unidad * $tirada; $total = $precio_unidad * $tirada;
$margen = floatval($tarifa->margen); $margen = floatval($tarifa->margen);
if($tarifa->tarifa_precio_min > $total){
$total = $total-($total * $margen/100.0);
$margen = round(100.0 * (floatval($tarifa->tarifa_precio_min) - $total) / floatval($tarifa->tarifa_precio_min), 0);
$total = floatval($tarifa->tarifa_precio_min);
$precio_unidad = round(floatval($total / $tirada), 2);
}
if (!$is_POD){ if (!$is_POD){
$total += floatval($tarifa->tarifa_importe_fijo); $total += floatval($tarifa->tarifa_importe_fijo);
} }

View File

@ -69,7 +69,6 @@ class PresupuestoPreimpresionesModel extends \App\Models\BaseModel
]; ];
return $ret_array; return $ret_array;
} }
return [];
} }
private function calcularTarifa($tarifa){ private function calcularTarifa($tarifa){

View File

@ -15,8 +15,6 @@ class TarifaextraModel extends \App\Models\BaseModel
protected $allowedFields = [ protected $allowedFields = [
"nombre", "nombre",
"precio", "precio",
"precio_min",
"importe_fijo",
"margen", "margen",
"mostrar_en_presupuesto", "mostrar_en_presupuesto",
"deleted_at", "deleted_at",
@ -39,14 +37,6 @@ class TarifaextraModel extends \App\Models\BaseModel
"label" => "Tarifaextra.nombre", "label" => "Tarifaextra.nombre",
"rules" => "trim|required|max_length[255]", "rules" => "trim|required|max_length[255]",
], ],
"precio" => [
"label" => "Tarifaextra.precio",
"rules" => "required|decimal",
],
"precio_min" => [
"label" => "Tarifaextra.precioMin",
"rules" => "required|decimal",
],
"importe_fijo" => [ "importe_fijo" => [
"label" => "Tarifaextra.importeFijo", "label" => "Tarifaextra.importeFijo",
"rules" => "required|decimal", "rules" => "required|decimal",
@ -66,14 +56,6 @@ class TarifaextraModel extends \App\Models\BaseModel
"decimal" => "Tarifaextra.validation.precio.decimal", "decimal" => "Tarifaextra.validation.precio.decimal",
"required" => "Tarifaextra.validation.precio.required", "required" => "Tarifaextra.validation.precio.required",
], ],
"precio_min" => [
"required" => "Tarifaextra.validation.precio_min.required",
"decimal" => "Tarifaextra.validation.precio_min.decimal",
],
"importe_fijo" => [
"required" => "Tarifaextra.validation.importe_fijo.required",
"decimal" => "Tarifaextra.validation.importe_fijo.decimal",
],
"margen" => [ "margen" => [
"required" => "Tarifaextra.validation.margen.required", "required" => "Tarifaextra.validation.margen.required",
"decimal" => "Tarifaextra.validation.margen.decimal", "decimal" => "Tarifaextra.validation.margen.decimal",

View File

@ -15,8 +15,6 @@ class TarifapreimpresionModel extends \App\Models\BaseModel
protected $allowedFields = [ protected $allowedFields = [
"nombre", "nombre",
"precio", "precio",
"precio_min",
"importe_fijo",
"margen", "margen",
"mostrar_en_presupuesto", "mostrar_en_presupuesto",
"deleted_at", "deleted_at",
@ -43,14 +41,6 @@ class TarifapreimpresionModel extends \App\Models\BaseModel
"label" => "Tarifapreimpresion.precio", "label" => "Tarifapreimpresion.precio",
"rules" => "required|decimal", "rules" => "required|decimal",
], ],
"precio_min" => [
"label" => "Tarifapreimpresion.precioMin",
"rules" => "required|decimal",
],
"importe_fijo" => [
"label" => "Tarifapreimpresion.importeFijo",
"rules" => "required|decimal",
],
"margen" => [ "margen" => [
"label" => "Tarifapreimpresion.margen", "label" => "Tarifapreimpresion.margen",
"rules" => "required|decimal", "rules" => "required|decimal",
@ -66,14 +56,6 @@ class TarifapreimpresionModel extends \App\Models\BaseModel
"decimal" => "Tarifapreimpresion.validation.precio.decimal", "decimal" => "Tarifapreimpresion.validation.precio.decimal",
"required" => "Tarifapreimpresion.validation.precio.required", "required" => "Tarifapreimpresion.validation.precio.required",
], ],
"precio_min" => [
"required" => "Tarifapreimpresion.validation.precio_min.required",
"decimal" => "Tarifapreimpresion.validation.precio_min.decimal",
],
"importe_fijo" => [
"required" => "Tarifapreimpresion.validation.importe_fijo.required",
"decimal" => "Tarifapreimpresion.validation.importe_fijo.decimal",
],
"margen" => [ "margen" => [
"required" => "Tarifapreimpresion.validation.margen.required", "required" => "Tarifapreimpresion.validation.margen.required",
"decimal" => "Tarifapreimpresion.validation.margen.decimal", "decimal" => "Tarifapreimpresion.validation.margen.decimal",

View File

@ -200,62 +200,80 @@
<h6> Color del interior </h6> <h6> Color del interior </h6>
<div class="row-color"> <div class="row-color">
<!-- Fila 1 -->
<div class="row mb-2 col-sm-6"> <div class="row mb-2">
<!-- Imagen 1 (Color Negro) -->
<div class="container col col-sm-3 d-flex justify-content-center"> <div class="col-sm-4 offset-sm-1 d-flex flex-column align-items-center justify-content-center">
<div id="colorNegroDiv" class="form-check change-tipo-impresion custom-option-color custom-option custom-option-image custom-option-image-radio"> <div id="colorNegroDiv" class="form-check change-tipo-impresion custom-option-color custom-option custom-option-image custom-option-image-radio">
<label class="form-check-label custom-option-content" for="colorNegro"> <label class="form-check-label custom-option-content" for="colorNegro">
<span class="custom-option-body"> <span class="custom-option-body">
<img style="height:150px;width:240px" src="<?= site_url("assets/img/bn.png") ?>" alt=""> <img style="height:150px;width:240px" src="<?= site_url('assets/img/bn.png') ?>" alt="">
</span> </span>
</label> </label>
<input name="colorNegro" class="form-check-input calcular-presupuesto" type="radio" value="colorNegro" id="colorNegro" <input name="colorNegro" class="form-check-input calcular-presupuesto" type="radio" value="colorNegro" id="colorNegro"
<?php echo ($datosPresupuesto->color_impresion == 'negro' ? ' checked=""': ''); ?> > <?php echo ($datosPresupuesto->color_impresion == 'negro' ? ' checked=""': ''); ?> >
</div> </div>
<!-- Texto alineado debajo de la imagen -->
<div>
<h6 class="mt-2 text-center">Blanco y Negro Estándar</h6>
</div>
</div> </div>
<div class="container col col-sm-3 d-flex justify-content-center"> <!-- Imagen 2 (Color Negro HQ) -->
<div class="col-sm-4 d-flex flex-column align-items-center justify-content-center">
<div id="colorNegroHqDiv" class="form-check change-tipo-impresion custom-option-color custom-option custom-option-image custom-option-image-radio"> <div id="colorNegroHqDiv" class="form-check change-tipo-impresion custom-option-color custom-option custom-option-image custom-option-image-radio">
<label class="form-check-label custom-option-content" for="colorNegroHq"> <label class="form-check-label custom-option-content" for="colorNegroHq">
<span class="custom-option-body"> <span class="custom-option-body">
<img style="height:150px;width:240px" src="<?= site_url("assets/img//bn_hq.png") ?>" alt=""> <img style="height:150px;width:240px" src="<?= site_url('assets/img/bn_hq.png') ?>" alt="">
</span> </span>
</label> </label>
<input name="colorNegroHq" class="form-check-input calcular-presupuesto" type="radio" value="colorNegroHq" id="colorNegroHq" <input name="colorNegroHq" class="form-check-input calcular-presupuesto" type="radio" value="colorNegroHq" id="colorNegroHq"
<?php echo ($datosPresupuesto->color_impresion == 'negroHq' ? ' checked=""': ''); ?> > <?php echo ($datosPresupuesto->color_impresion == 'negroHq' ? ' checked=""': ''); ?> >
</div> </div>
<!-- Texto alineado debajo de la imagen -->
<div>
<h6 class="mt-2 text-center">Blanco y Negro Premium</h6>
</div>
</div> </div>
</div> <!-- //.row -->
</div> <!--//.row --> <!-- Fila 2 -->
<div class="row col-sm-6"> <div class="row mb-2">
<!-- Imagen 3 (Color) -->
<div class="container col col-sm-3 d-flex justify-content-center"> <div class="col-sm-4 offset-sm-1 d-flex flex-column align-items-center justify-content-center">
<div id="colorColorDiv" class="form-check change-tipo-impresion custom-option-color custom-option custom-option-image custom-option-image-radio"> <div id="colorColorDiv" class="form-check change-tipo-impresion custom-option-color custom-option custom-option-image custom-option-image-radio">
<label class="form-check-label custom-option-content" for="colorColor"> <label class="form-check-label custom-option-content" for="colorColor">
<span class="custom-option-body"> <span class="custom-option-body">
<img style="height:150px;width:240px" src="<?= site_url("assets/img/color.png") ?>" alt=""> <img style="height:150px;width:240px" src="<?= site_url('assets/img/color.png') ?>" alt="">
</span> </span>
</label> </label>
<input name="colorColor" class="form-check-input calcular-presupuesto" type="radio" value="colorColor" id="colorColor" <input name="colorColor" class="form-check-input calcular-presupuesto" type="radio" value="colorColor" id="colorColor"
<?php echo ($datosPresupuesto->color_impresion == 'color' ? ' checked=""': ''); ?> > <?php echo ($datosPresupuesto->color_impresion == 'color' ? ' checked=""': ''); ?> >
</div> </div>
<!-- Texto alineado debajo de la imagen -->
<div>
<h6 class="mt-2 text-center">Color Estándar</h6>
</div>
</div> </div>
<div class="container col col-sm-3 d-flex justify-content-center"> <!-- Imagen 4 (Color HQ) -->
<div class="col-sm-4 d-flex flex-column align-items-center justify-content-center">
<div id="colorColorHqDiv" class="form-check change-tipo-impresion custom-option-color custom-option custom-option-image custom-option-image-radio"> <div id="colorColorHqDiv" class="form-check change-tipo-impresion custom-option-color custom-option custom-option-image custom-option-image-radio">
<label class="form-check-label custom-option-content" for="colorColorHq"> <label class="form-check-label custom-option-content" for="colorColorHq">
<span class="custom-option-body"> <span class="custom-option-body">
<img style="height:150px;width:240px" src="<?= site_url("assets/img//color_hq.png") ?>" alt=""> <img style="height:150px;width:240px" src="<?= site_url('assets/img/color_hq.png') ?>" alt="">
</span> </span>
</label> </label>
<input name="colorColorHq" class="form-check-input calcular-presupuesto" type="radio" value="colorColorHq" id="colorColorHq" <input name="colorColorHq" class="form-check-input calcular-presupuesto" type="radio" value="colorColorHq" id="colorColorHq"
<?php echo ($datosPresupuesto->color_impresion == 'colorHq' ? ' checked=""': ''); ?> > <?php echo ($datosPresupuesto->color_impresion == 'colorHq' ? ' checked=""': ''); ?> >
</div> </div>
<!-- Texto alineado debajo de la imagen -->
<div>
<h6 class="mt-2 text-center">Color Premium</h6>
</div>
</div> </div>
</div> <!-- //.row -->
</div> <!--//.row --> </div> <!-- //.row-color -->
</div> <!--//.row-color -->
<div id="pagColorDiv" class="row"> <div id="pagColorDiv" class="row">
<div class="col-sm-3 mb-3"> <div class="col-sm-3 mb-3">

View File

@ -204,6 +204,11 @@ function init_servicio_acabado(){
else if (element.sobrecubierta == 1){ else if (element.sobrecubierta == 1){
nombre_completo += ' (' + window.Presupuestos.sobrecubierta + ')' nombre_completo += ' (' + window.Presupuestos.sobrecubierta + ')'
} }
var precio_unidad = parseFloat(element.precio_unidad).toFixed(2)
var margen = parseFloat(element.margen).toFixed(2)
var precio_unidad_coste = (precio_unidad/(1+margen/100)).toFixed(2)
tableServiciosAcabado.row.add([ tableServiciosAcabado.row.add([
element.tarifa_acabado_id, element.tarifa_acabado_id,
nombre_completo, nombre_completo,
@ -212,9 +217,9 @@ function init_servicio_acabado(){
element.proveedor + element.proveedor +
'</option>' + '</option>' +
'</select>', '</select>',
'<span id="precio_unidad_acabado_' + element.tarifa_acabado_id + '">' + parseFloat(element.precio_unidad).toFixed(2) + '</span>', '<span id="precio_unidad_acabado_' + element.tarifa_acabado_id + '">' + precio_unidad_coste + ' / ' + precio_unidad + '</span>',
'<input class="update-totales-servicios" id="precio_total_acabado_' + element.tarifa_acabado_id +'" value="' + parseFloat(element.precio_total).toFixed(2) + '"></input>', '<input class="update-totales-servicios" id="precio_total_acabado_' + element.tarifa_acabado_id +'" value="' + parseFloat(element.precio_total).toFixed(2) + '"></input>',
'<span style="display: none;" class="update-totales" id="acabado_margen_' + element.tarifa_acabado_id + '">' + parseFloat(element.margen).toFixed(2) + '</span>', '<span style="display: none;" class="update-totales" id="acabado_margen_' + element.tarifa_acabado_id + '">' + margen + '</span>',
'<a href="javascript:void(0);"><i class="ti ti-trash ti-sm btn-delete-serv mx-2" data-id="' + element.tarifa_acabado_id +'" data-text="' + nombre_completo + '"></i></a>' '<a href="javascript:void(0);"><i class="ti ti-trash ti-sm btn-delete-serv mx-2" data-id="' + element.tarifa_acabado_id +'" data-text="' + nombre_completo + '"></i></a>'
]).draw(false) ]).draw(false)
@ -301,9 +306,13 @@ function select_acabado_event(){
data: datos, data: datos,
success: function (data) { success: function (data) {
$('#precio_unidad_acabado_' + datos.tarifa_acabado_id).text(parseFloat(data.values[0].precio_unidad).toFixed(2)) var precio_unidad = parseFloat(data.values[0].precio_unidad).toFixed(2)
var margen = parseFloat(data.values[0].margen).toFixed(2)
var precio_unidad_coste = (precio_unidad/(1+margen/100)).toFixed(2)
$('#precio_unidad_acabado_' + datos.tarifa_acabado_id).text(precio_unidad_coste + ' / ' + precio_unidad)
$('#precio_total_acabado_' + datos.tarifa_acabado_id).val(parseFloat(data.values[0].total).toFixed(2)) $('#precio_total_acabado_' + datos.tarifa_acabado_id).val(parseFloat(data.values[0].total).toFixed(2))
$('#acabado_margen_' + datos.tarifa_acabado_id).val(parseFloat(data.values[0].margen).toFixed(2)) $('#acabado_margen_' + datos.tarifa_acabado_id).val(margen)
yeniden(data[window.csrf_token]); yeniden(data[window.csrf_token]);
return true; return true;
@ -366,6 +375,10 @@ function get_tarifas_acabado(tarifa_id = -1, uso=null){
if(uso!= null) if(uso!= null)
nombre += ' (' + uso + ')' nombre += ' (' + uso + ')'
var precio_unidad = parseFloat(row.precio_unidad).toFixed(2)
var margen = parseFloat(row.margen).toFixed(2)
var precio_unidad_coste = (precio_unidad/(1+margen/100)).toFixed(2)
tableServiciosAcabado.row.add([ tableServiciosAcabado.row.add([
row.tarifa_id, row.tarifa_id,
nombre, nombre,
@ -374,9 +387,9 @@ function get_tarifas_acabado(tarifa_id = -1, uso=null){
row.proveedor + row.proveedor +
'</option>' + '</option>' +
'</select>', '</select>',
'<span id="precio_unidad_acabado_' + row.tarifa_id + '">' + parseFloat(row.precio_unidad).toFixed(2) + '</span>', '<span id="precio_unidad_acabado_' + row.tarifa_id + '">' + precio_unidad_coste + ' / ' + precio_unidad + '</span>',
'<input class="update-totales-servicios" id="precio_total_acabado_' + row.tarifa_id +'" value="' + parseFloat(row.total).toFixed(2) + '"></input>', '<input class="update-totales-servicios" id="precio_total_acabado_' + row.tarifa_id +'" value="' + parseFloat(row.total).toFixed(2) + '"></input>',
'<span style="display: none;" class="update-totales" id="acabado_margen_' + row.tarifa_id + '">' + parseFloat(row.margen).toFixed(2) + '</span>', '<span style="display: none;" class="update-totales" id="acabado_margen_' + row.tarifa_id + '">' + margen + '</span>',
'<a href="javascript:void(0);"><i class="ti ti-trash ti-sm btn-delete-serv mx-2 tiradas-alternativas" data-id="' + row.tarifa_id +'" data-text="' + nombre +'"></i></a>' '<a href="javascript:void(0);"><i class="ti ti-trash ti-sm btn-delete-serv mx-2 tiradas-alternativas" data-id="' + row.tarifa_id +'" data-text="' + nombre +'"></i></a>'
]).draw(false) ]).draw(false)
@ -550,7 +563,7 @@ function get_datos_acabado(){
values['proveedor_id'] = $(this).children(":first").select2('data')[0].id values['proveedor_id'] = $(this).children(":first").select2('data')[0].id
break break
case 3: case 3:
values['precio_unidad'] = $(this).text() values['precio_unidad'] = $(this).text().split('/')[1].trim()
break break
case 4: case 4:
values['precio_total'] = $(this).children(":first").val() values['precio_total'] = $(this).children(":first").val()
@ -653,6 +666,10 @@ 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
var precio_unidad = parseFloat(element.precio_unidad).toFixed(2)
var margen = parseFloat(element.margen).toFixed(0)
var precio_unidad_coste = (precio_unidad/(1+margen/100)).toFixed(2)
var linea = [ var linea = [
element.tarifa_encuadernado_id, element.tarifa_encuadernado_id,
element.nombre, element.nombre,
@ -661,11 +678,11 @@ function init_servicio_encuadernado(){
proveedor_nombre + proveedor_nombre +
'</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 + '">' + precio_unidad_coste + ' / ' + precio_unidad + '</span>',
(element.hasOwnProperty('paginas_por_cuadernillo') && element.paginas_por_cuadernillo!=null)?selectForCuadernillos(element.tarifa_encuadernado_id, element.paginas_por_cuadernillo):'', (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 + '">' + margen + '</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>'
] ]
@ -815,10 +832,14 @@ function select_enc_event(){
data: datos, data: datos,
success: function (data) { success: function (data) {
$('#precio_unidad_encuadernado_' + datos.tarifa_encuadernacion_id).text(parseFloat(data.values[0].precio_unidad).toFixed(2)) var precio_unidad = parseFloat(data.values[0].precio_unidad).toFixed(2)
var margen = parseFloat(data.values[0].margen).toFixed(0)
var precio_unidad_coste = (precio_unidad/(1+margen/100)).toFixed(2)
$('#precio_unidad_encuadernado_' + datos.tarifa_encuadernacion_id).text(precio_unidad_coste + ' / ' + precio_unidad)
$('#tiempo_encuadernado_' + datos.tarifa_encuadernacion_id).text(convertirTiempo(data.values[0].tiempo)) $('#tiempo_encuadernado_' + datos.tarifa_encuadernacion_id).text(convertirTiempo(data.values[0].tiempo))
$('#precio_total_encuadernado_' + datos.tarifa_encuadernacion_id).val(parseFloat(data.values[0].total).toFixed(2)) $('#precio_total_encuadernado_' + datos.tarifa_encuadernacion_id).val(parseFloat(data.values[0].total).toFixed(2))
$('#enc_margen_' + datos.tarifa_encuadernacion_id).val(parseFloat(data.values[0].margen).toFixed(2)) $('#enc_margen_' + datos.tarifa_encuadernacion_id).val(margen)
yeniden(data[window.csrf_token]); yeniden(data[window.csrf_token]);
return true; return true;
@ -890,6 +911,10 @@ async function get_tarifas_enc(tipo=null, tarifa_id = -1){
data.values.forEach((row) => { data.values.forEach((row) => {
var precio_unidad = parseFloat(row.precio_unidad).toFixed(2)
var margen = parseFloat(row.margen).toFixed(0)
var precio_unidad_coste = (precio_unidad/(1+margen/100)).toFixed(2)
tableServiciosEnc.row.add([ tableServiciosEnc.row.add([
row.tarifa_id, row.tarifa_id,
row.tarifa_nombre, row.tarifa_nombre,
@ -898,11 +923,11 @@ async function get_tarifas_enc(tipo=null, tarifa_id = -1){
row.proveedor + row.proveedor +
'</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 + '">' + precio_unidad_coste + ' / ' + precio_unidad + '</span>',
(row.hasOwnProperty('paginas_por_cuadernillo') && row.paginas_por_cuadernillo!=null)?selectForCuadernillos(row.tarifa_id, 32):'', (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 + '">' + margen + '</span>',
'<a href="javascript:void(0);"><i class="ti ti-trash ti-sm btn-delete-serv mx-2" data-id="' + row.tarifa_id +'"></i></a>' '<a href="javascript:void(0);"><i class="ti ti-trash ti-sm btn-delete-serv mx-2" data-id="' + row.tarifa_id +'"></i></a>'
]).draw(false) ]).draw(false)
@ -1008,7 +1033,7 @@ function get_datos_encuadernacion(){
values['proveedor_id'] = $(this).children(":first").select2('data')[0].id values['proveedor_id'] = $(this).children(":first").select2('data')[0].id
break break
case 3: case 3:
values['precio_unidad'] = $(this).text() values['precio_unidad'] = $(this).text().split('/')[1].trim()
break break
case 4: case 4:
values['paginas_por_cuadernillo'] = $(this).children(":first").val() values['paginas_por_cuadernillo'] = $(this).children(":first").val()
@ -1123,12 +1148,16 @@ function init_servicio_manipulado(){
window.serviciosmanipuladoList.forEach((element) =>{ window.serviciosmanipuladoList.forEach((element) =>{
var precio_unidad = parseFloat(element.precio_unidad).toFixed(2)
var margen = parseFloat(element.margen).toFixed(0)
var precio_unidad_coste = (precio_unidad/(1+margen/100)).toFixed(2)
tableServiciosManipulado.row.add([ tableServiciosManipulado.row.add([
element.tarifa_manipulado_id, element.tarifa_manipulado_id,
element.nombre, element.nombre,
'<span id="precio_unidad_manipulado_' + element.tarifa_manipulado_id + '">' + parseFloat(element.precio_unidad).toFixed(2) + '</span>', '<span id="precio_unidad_manipulado_' + element.tarifa_manipulado_id + '">' + precio_unidad_coste + ' / ' + precio_unidad + '</span>',
'<input class="update-totales-servicios" id="precio_total_manipulado_' + element.tarifa_manipulado_id +'" value="' + parseFloat(element.precio_total).toFixed(2) + '"></input>', '<input class="update-totales-servicios" id="precio_total_manipulado_' + element.tarifa_manipulado_id +'" value="' + parseFloat(element.precio_total).toFixed(2) + '"></input>',
'<span style="display: none;" class="update-totales" id="manipulado_margen_' + element.tarifa_manipulado_id + '">' + parseFloat(element.margen).toFixed(2) + '</span>', '<span style="display: none;" class="update-totales" id="manipulado_margen_' + element.tarifa_manipulado_id + '">' + margen + '</span>',
'<a href="javascript:void(0);"><i class="ti ti-trash ti-sm btn-delete-serv mx-2" data-id="' + element.tarifa_manipulado_id +'"></i></a>' '<a href="javascript:void(0);"><i class="ti ti-trash ti-sm btn-delete-serv mx-2" data-id="' + element.tarifa_manipulado_id +'"></i></a>'
]).draw(false) ]).draw(false)
@ -1202,12 +1231,16 @@ async function get_tarifas_manipulado(tipo=null, tarifa_id = -1){
data.values.forEach((row) => { data.values.forEach((row) => {
var precio_unidad = parseFloat(row.precio_unidad).toFixed(2)
var margen = parseFloat(row.margen).toFixed(0)
var precio_unidad_coste = (precio_unidad/(1+margen/100)).toFixed(2)
tableServiciosManipulado.row.add([ tableServiciosManipulado.row.add([
row.tarifa_id, row.tarifa_id,
row.tarifa_nombre, row.tarifa_nombre,
'<span id="precio_unidad_manipulado_' + row.tarifa_id + '">' + parseFloat(row.precio_unidad).toFixed(2) + '</span>', '<span id="precio_unidad_manipulado_' + row.tarifa_id + '">' + precio_unidad_coste + ' / ' + precio_unidad + '</span>',
'<input class="update-totales-servicios" id="precio_total_manipulado_' + row.tarifa_id +'" value="' + parseFloat(row.total).toFixed(2) + '"></input>', '<input class="update-totales-servicios" id="precio_total_manipulado_' + row.tarifa_id +'" value="' + parseFloat(row.total).toFixed(2) + '"></input>',
'<span style="display: none;" class="update-totales" id="manipulado_margen_' + row.tarifa_id + '">' + parseFloat(row.margen).toFixed(2) + '</span>', '<span style="display: none;" class="update-totales" id="manipulado_margen_' + row.tarifa_id + '">' + margen + '</span>',
'<a href="javascript:void(0);"><i class="ti ti-trash ti-sm btn-delete-serv mx-2" data-id="' + row.tarifa_id +'"></i></a>' '<a href="javascript:void(0);"><i class="ti ti-trash ti-sm btn-delete-serv mx-2" data-id="' + row.tarifa_id +'"></i></a>'
]).draw(false) ]).draw(false)
@ -1276,7 +1309,7 @@ function get_datos_manipulado(){
values['tarifa_id'] = $(this).text() values['tarifa_id'] = $(this).text()
break break
case 2: case 2:
values['precio_unidad'] = $(this).text() values['precio_unidad'] = $(this).text().split('/')[1].trim()
break break
case 3: case 3:
values['precio_total'] = $(this).children(":first").val() values['precio_total'] = $(this).children(":first").val()
@ -1374,11 +1407,16 @@ function init_servicio_preimpresion(){
window.serviciospreimpresionList.forEach((element) =>{ window.serviciospreimpresionList.forEach((element) =>{
var precio = parseFloat(element.precio).toFixed(2)
var margen = parseFloat(element.margen).toFixed(2)
var coste = (precio/(1+margen/100)).toFixed(2)
tableServiciosPreimpresion.row.add([ tableServiciosPreimpresion.row.add([
element.tarifa_preimpresion_id, element.tarifa_preimpresion_id,
element.nombre, element.nombre,
'<input class="update-totales-servicios" id="precio_preimpresion_' + element.tarifa_preimpresion_id +'" value="' + parseFloat(element.precio).toFixed(2) + '"></input>', '<span id="coste_preimprecion_' + element.tarifa_id + '">' + coste + '</span>',
'<span style="display: none;" class="update-totales" id="preimpresion_margen_' + element.tarifa_preimpresion_id + '">' + parseFloat(element.margen).toFixed(2) + '</span>', '<input class="update-totales-servicios" id="precio_preimpresion_' + element.tarifa_preimpresion_id +'" value="' + precio + '"></input>',
'<span style="display: none;" class="update-totales" id="preimpresion_margen_' + element.tarifa_preimpresion_id + '">' + margen + '</span>',
'<a href="javascript:void(0);"><i class="ti ti-trash ti-sm btn-delete-serv mx-2" data-id="' + element.tarifa_preimpresion_id +'"></i></a>' '<a href="javascript:void(0);"><i class="ti ti-trash ti-sm btn-delete-serv mx-2" data-id="' + element.tarifa_preimpresion_id +'"></i></a>'
]).draw(false) ]).draw(false)
@ -1434,9 +1472,14 @@ function get_tarifas_preimpresion(tarifa_id = -1){
data.values.forEach((row) => { data.values.forEach((row) => {
var precio = parseFloat(row.precio).toFixed(2)
var margen = parseFloat(row.margen).toFixed(2)
var coste = (precio/(1+margen/100)).toFixed(2)
tableServiciosPreimpresion.row.add([ tableServiciosPreimpresion.row.add([
row.tarifa_id, row.tarifa_id,
row.tarifa_nombre, row.tarifa_nombre,
'<span id="coste_preimprecion_' + row.tarifa_id + '">' + coste + '</span>',
'<input class="update-totales-servicios" id="precio_preimpresion_' + row.tarifa_id +'" value="' + parseFloat(row.precio).toFixed(2) + '"></input>', '<input class="update-totales-servicios" id="precio_preimpresion_' + row.tarifa_id +'" value="' + parseFloat(row.precio).toFixed(2) + '"></input>',
'<span style="display: none;" class="update-totales" id="preimpresion_margen_' + row.tarifa_id + '">' + parseFloat(row.margen).toFixed(2) + '</span>', '<span style="display: none;" class="update-totales" id="preimpresion_margen_' + row.tarifa_id + '">' + parseFloat(row.margen).toFixed(2) + '</span>',
'<a href="javascript:void(0);"><i class="ti ti-trash ti-sm btn-delete-serv mx-2" data-id="' + row.tarifa_id +'"></i></a>' '<a href="javascript:void(0);"><i class="ti ti-trash ti-sm btn-delete-serv mx-2" data-id="' + row.tarifa_id +'"></i></a>'
@ -1528,10 +1571,10 @@ function get_datos_preimpresion(){
case 0: case 0:
values['tarifa_id'] = $(this).text() values['tarifa_id'] = $(this).text()
break break
case 2: case 3:
values['precio'] = $(this).children(":first").val() values['precio'] = $(this).children(":first").val()
break break
case 3: case 4:
values['margen'] = $(this).text() values['margen'] = $(this).text()
break break
} }
@ -1627,11 +1670,16 @@ function init_servicio_extra(){
window.serviciosextraList.forEach((element) =>{ window.serviciosextraList.forEach((element) =>{
var precio = parseFloat(element.precio).toFixed(2)
var margen = parseFloat(element.margen).toFixed(2)
var coste = (precio/(1+margen/100)).toFixed(2)
tableServiciosExtra.row.add([ tableServiciosExtra.row.add([
element.tarifa_extra_id, element.tarifa_extra_id,
element.nombre, element.nombre,
'<input class="update-totales-servicios" id="precio_servicioextra_' + element.tarifa_extra_id +'" value="' + parseFloat(element.precio).toFixed(2) + '"></input>', '<span id="coste_servicioextra_' + element.tarifa_id + '">' + coste + '</span>',
'<span style="display: none;" class="update-totales" id="servicioextra_margen_' + element.tarifa_extra_id + '">' + parseFloat(element.margen).toFixed(2) + '</span>', '<input class="update-totales-servicios" id="precio_servicioextra_' + element.tarifa_extra_id +'" value="' + precio + '"></input>',
'<span style="display: none;" class="update-totales" id="servicioextra_margen_' + element.tarifa_extra_id + '">' + margen + '</span>',
'<a href="javascript:void(0);"><i class="ti ti-trash ti-sm btn-delete-serv mx-2" data-id="' + element.tarifa_extra_id +'"></i></a>' '<a href="javascript:void(0);"><i class="ti ti-trash ti-sm btn-delete-serv mx-2" data-id="' + element.tarifa_extra_id +'"></i></a>'
]).draw(false) ]).draw(false)
@ -1687,11 +1735,16 @@ function get_tarifas_extra(tarifa_id = -1){
data.values.forEach((row) => { data.values.forEach((row) => {
var precio = parseFloat(row.precio).toFixed(2)
var margen = parseFloat(row.margen).toFixed(2)
var coste = (precio/(1+margen/100)).toFixed(2)
tableServiciosExtra.row.add([ tableServiciosExtra.row.add([
row.tarifa_id, row.tarifa_id,
row.tarifa_nombre, row.tarifa_nombre,
'<input class="update-totales-servicios" id="precio_servicioextra_' + row.tarifa_id +'" value="' + parseFloat(row.precio).toFixed(2) + '"></input>', '<span id="coste_servicioextra_' + row.tarifa_id + '">' + coste + '</span>',
'<span style="display: none;" class="update-totales" id="servicioextra_margen_' + row.tarifa_id + '">' + parseFloat(row.margen).toFixed(2) + '</span>', '<input class="update-totales-servicios" id="precio_servicioextra_' + row.tarifa_id +'" value="' + precio + '"></input>',
'<span style="display: none;" class="update-totales" id="servicioextra_margen_' + row.tarifa_id + '">' + margen + '</span>',
'<a href="javascript:void(0);"><i class="ti ti-trash ti-sm btn-delete-serv mx-2" data-id="' + row.tarifa_id +'"></i></a>' '<a href="javascript:void(0);"><i class="ti ti-trash ti-sm btn-delete-serv mx-2" data-id="' + row.tarifa_id +'"></i></a>'
]).draw(false) ]).draw(false)
@ -1744,10 +1797,10 @@ function get_datos_serviciosextra(){
case 0: case 0:
values['tarifa_id'] = $(this).text() values['tarifa_id'] = $(this).text()
break break
case 2: case 3:
values['precio'] = $(this).children(":first").val() values['precio'] = $(this).children(":first").val()
break break
case 3: case 4:
values['margen'] = $(this).text() values['margen'] = $(this).text()
break break
} }
@ -1872,6 +1925,11 @@ async function actualizar_servicios(update_preimpresion=false){
.then(response => response.json()) .then(response => response.json())
.then(data => { .then(data => {
data.lines.forEach((line) => { data.lines.forEach((line) => {
var precio_unidad = parseFloat(line[0].precio_unidad).toFixed(2)
var margen = parseFloat(line[0].margen).toFixed(0)
var precio_unidad_coste = (precio_unidad/(1+margen/100)).toFixed(2)
$('#proveedor_acabado_' + line[0].tarifa_id).off('change') $('#proveedor_acabado_' + line[0].tarifa_id).off('change')
if(line[0].hasOwnProperty('proveedor_id')){ if(line[0].hasOwnProperty('proveedor_id')){
$('#proveedor_acabado_' + line[0].tarifa_id) $('#proveedor_acabado_' + line[0].tarifa_id)
@ -1881,9 +1939,9 @@ async function actualizar_servicios(update_preimpresion=false){
$('#proveedor_acabado_' + line[0].tarifa_id).empty() $('#proveedor_acabado_' + line[0].tarifa_id).empty()
.append('<option selected="selected" value="' + line[0].proveedor_id + '">' + window.Presupuestos.no_disponible + '</option>') .append('<option selected="selected" value="' + line[0].proveedor_id + '">' + window.Presupuestos.no_disponible + '</option>')
} }
$('#precio_unidad_acabado_' + line[0].tarifa_id).text(parseFloat(line[0].precio_unidad).toFixed(2)) $('#precio_unidad_acabado_' + line[0].tarifa_id).text(precio_unidad_coste + " / " + precio_unidad)
$('#precio_total_acabado_' + line[0].tarifa_id).val(parseFloat(line[0].total).toFixed(2)) $('#precio_total_acabado_' + line[0].tarifa_id).val(parseFloat(line[0].total).toFixed(2))
$('#acabado_margen_' + line[0].tarifa_id).text(parseFloat(line[0].margen).toFixed(2)) $('#acabado_margen_' + line[0].tarifa_id).text(margen)
$('#proveedor_acabado_' + line[0].tarifa_id).on('change', select_enc_event) $('#proveedor_acabado_' + line[0].tarifa_id).on('change', select_enc_event)
}); });
check_serv_acabado_error() check_serv_acabado_error()
@ -1901,6 +1959,10 @@ async function actualizar_servicios(update_preimpresion=false){
.then(data => { .then(data => {
data.lines.forEach((line) => { data.lines.forEach((line) => {
var precio_unidad = parseFloat(line[0].precio_unidad).toFixed(2)
var margen = parseFloat(line[0].margen).toFixed(0)
var precio_unidad_coste = (precio_unidad/(1+margen/100)).toFixed(2)
$('#proveedor_enc_' + line[0].tarifa_id).off('change') $('#proveedor_enc_' + line[0].tarifa_id).off('change')
if(line[0].hasOwnProperty('proveedor_id')){ if(line[0].hasOwnProperty('proveedor_id')){
$('#proveedor_enc_' + line[0].tarifa_id) $('#proveedor_enc_' + line[0].tarifa_id)
@ -1910,9 +1972,9 @@ async function actualizar_servicios(update_preimpresion=false){
$('#proveedor_enc_' + line[0].tarifa_id).empty() $('#proveedor_enc_' + line[0].tarifa_id).empty()
.append('<option selected="selected" value="' + line[0].proveedor_id + '">' + window.Presupuestos.no_disponible + '</option>') .append('<option selected="selected" value="' + line[0].proveedor_id + '">' + window.Presupuestos.no_disponible + '</option>')
} }
$('#precio_unidad_encuadernado_' + line[0].tarifa_id).text(parseFloat(line[0].precio_unidad).toFixed(2)) $('#precio_unidad_encuadernado_' + line[0].tarifa_id).text(precio_unidad_coste + " / " + precio_unidad)
$('#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(margen)
$('#proveedor_enc_' + line[0].tarifa_id).on('change', select_enc_event) $('#proveedor_enc_' + line[0].tarifa_id).on('change', select_enc_event)
}); });
check_serv_enc_error() check_serv_enc_error()
@ -1928,9 +1990,14 @@ async function actualizar_servicios(update_preimpresion=false){
.then(response => response.json()) .then(response => response.json())
.then(data => { .then(data => {
data.lines.forEach((line) => { data.lines.forEach((line) => {
$('#precio_unidad_manipulado_' + line[0].tarifa_id).text(parseFloat(line[0].precio_unidad).toFixed(2))
var precio_unidad = parseFloat(line[0].precio_unidad).toFixed(2)
var margen = parseFloat(line[0].margen).toFixed(0)
var precio_unidad_coste = (precio_unidad/(1+margen/100)).toFixed(2)
$('#precio_unidad_manipulado_' + line[0].tarifa_id).text(precio_unidad_coste + " / " + precio_unidad)
$('#precio_total_manipulado_' + line[0].tarifa_id).val(parseFloat(line[0].total).toFixed(2)) $('#precio_total_manipulado_' + line[0].tarifa_id).val(parseFloat(line[0].total).toFixed(2))
$('#manipulado_margen_' + line[0].tarifa_id).val(parseFloat(line[0].margen).toFixed(2)) $('#manipulado_margen_' + line[0].tarifa_id).val(margen)
}); });
check_serv_manipulado_error() check_serv_manipulado_error()
yeniden(data[window.csrf_token]); yeniden(data[window.csrf_token]);
@ -1947,8 +2014,14 @@ async function actualizar_servicios(update_preimpresion=false){
.then(data => { .then(data => {
data.lines.forEach((line) => { data.lines.forEach((line) => {
$('#precio_preimpresion_' + line[0].tarifa_id).val(parseFloat(line[0].total).toFixed(2))
$('#preimpresion_margen_' + line[0].tarifa_id).val(parseFloat(line[0].margen).toFixed(2)) var precio = parseFloat(line[0].total).toFixed(2)
var margen = parseFloat(line[0].margen).toFixed(2)
var coste = (precio/(1+margen/100)).toFixed(2)
$('#coste_preimprecion_' + line[0].tarifa_id).text(coste)
$('#precio_preimpresion_' + line[0].tarifa_id).val(precio)
$('#preimpresion_margen_' + line[0].tarifa_id).val(margen)
}); });
check_serv_preimpresion_error() check_serv_preimpresion_error()
yeniden(data[window.csrf_token]); yeniden(data[window.csrf_token]);
@ -1966,9 +2039,14 @@ async function actualizar_servicios(update_preimpresion=false){
.then(response => response.json()) .then(response => response.json())
.then(data => { .then(data => {
var precio = parseFloat(data[0].total).toFixed(2)
var margen = parseFloat(data[0].margen).toFixed(2)
var coste = (precio/(1+margen/100)).toFixed(2)
data.lines.forEach((line) => { data.lines.forEach((line) => {
$('#precio_serviciosextra_' + line[0].tarifa_id).val(parseFloat(line[0].total).toFixed(2)) $('#coste_servicioextra_' + line[0].tarifa_id).text(coste)
$('#serviciosextra_margen_' + line[0].tarifa_id).val(parseFloat(line[0].margen).toFixed(2)) $('#precio_serviciosextra_' + line[0].tarifa_id).val(precio)
$('#serviciosextra_margen_' + line[0].tarifa_id).val(margen)
}); });
check_serv_preimpresion_error(); check_serv_preimpresion_error();
yeniden(data[window.csrf_token]); yeniden(data[window.csrf_token]);

View File

@ -129,6 +129,7 @@
<tr> <tr>
<th><?= lang('Presupuestos.id') ?></th> <th><?= lang('Presupuestos.id') ?></th>
<th><?= lang('Tarifapreimpresion.tarifapreimpresion') ?></th> <th><?= lang('Tarifapreimpresion.tarifapreimpresion') ?></th>
<th><?= lang('Tarifapreimpresion.coste') ?></th>
<th><?= lang('Presupuestos.precio') ?></th> <th><?= lang('Presupuestos.precio') ?></th>
<th></th> <th></th>
<th class="text-nowrap"><?= lang('Basic.global.Action') ?></th> <th class="text-nowrap"><?= lang('Basic.global.Action') ?></th>
@ -246,6 +247,7 @@
<tr> <tr>
<th><?= lang('Presupuestos.id') ?></th> <th><?= lang('Presupuestos.id') ?></th>
<th><?= lang('Tarifaextra.tarifaextra') ?></th> <th><?= lang('Tarifaextra.tarifaextra') ?></th>
<th><?= lang('Tarifaextra.coste') ?></th>
<th><?= lang('Presupuestos.precio') ?></th> <th><?= lang('Presupuestos.precio') ?></th>
<th></th> <th></th>
<th class="text-nowrap"><?= lang('Basic.global.Action') ?></th> <th class="text-nowrap"><?= lang('Basic.global.Action') ?></th>

View File

@ -47,7 +47,8 @@
<dt class="col-5 fw-normal text-end">Total Costes</dt> <dt class="col-5 fw-normal text-end">Total Costes</dt>
<dd id="totalCostes" class="col-6 text-end"><?= old('0', $presupuestoEntity->total_costes) ?>€</dd> <dd id="totalCostes" class="col-6 text-end"><?= old('0', $presupuestoEntity->total_costes) ?>€</dd>
<dt class="col-5 fw-normal text-end">Total Margen</dt> <dt class="col-5 fw-normal text-end">Total Margen</dt>
<dd id="totalMargenes" class="col-6 text-end"><?= old('0', $presupuestoEntity->total_margenes) ?></dd> <dd id="porcentajeMargen" class="col-3 text-end py-1"><?= old('0', round(100*$presupuestoEntity->total_margenes/($presupuestoEntity->total_costes+$presupuestoEntity->total_margenes),0)) ?>%</dd>
<dd id="totalMargenes" class="col-3 text-end py-1"><?= old('0', $presupuestoEntity->total_margenes) ?>€</dd>
</dl> </dl>
<hr class="mx-n4"> <hr class="mx-n4">

View File

@ -16,7 +16,11 @@ function updateTotales(updateLP=true, updateServicios=true, updateEnvio=true){
var sumForFactor = 0.0 var sumForFactor = 0.0
var sumForFactorPonderado = 0.0 var sumForFactorPonderado = 0.0
var margenPorHoras = 0.0;
if(updateLP){ if(updateLP){
if(typeof $("#tableLineasPresupuesto").DataTable() !== 'undefined'){ if(typeof $("#tableLineasPresupuesto").DataTable() !== 'undefined'){
$("#tableLineasPresupuesto").DataTable().rows().every( function ( rowIdx, tableLoop, rowLoop ) { $("#tableLineasPresupuesto").DataTable().rows().every( function ( rowIdx, tableLoop, rowLoop ) {
var rowData = this.data(); var rowData = this.data();
@ -30,7 +34,8 @@ function updateTotales(updateLP=true, updateServicios=true, updateEnvio=true){
} }
if(rowData.check_impresion_total){ if(rowData.check_impresion_total){
totalImpresion += parseFloat($('#' + rowData.row_id + '_precioImpresion').val()) //totalImpresion += parseFloat($('#' + rowData.row_id + '_precioImpresion').val())
margenPorHoras += parseFloat($('#' + rowData.row_id + '_precioImpresion').val())
totalImpresion += parseFloat($('#' + rowData.row_id + '_totalClicks').val()) totalImpresion += parseFloat($('#' + rowData.row_id + '_totalClicks').val())
sumForFactor += parseFloat($('#' + rowData.row_id + '_totalClicks').val()) sumForFactor += parseFloat($('#' + rowData.row_id + '_totalClicks').val())
@ -41,9 +46,11 @@ function updateTotales(updateLP=true, updateServicios=true, updateEnvio=true){
sumForFactor += (parseFloat(rowData.totalTinta) + parseFloat(rowData.totalCorte)) sumForFactor += (parseFloat(rowData.totalTinta) + parseFloat(rowData.totalCorte))
} }
margenImpresion += parseFloat($('#' + rowData.row_id + '_margenImpresion').val()) //margenImpresion += parseFloat($('#' + rowData.row_id + '_margenImpresion').val())
//margenPorHoras += parseFloat($('#' + rowData.row_id + '_margenImpresion').val())
margenImpresion += parseFloat($('#' + rowData.row_id + '_margenClicks').val()) margenImpresion += parseFloat($('#' + rowData.row_id + '_margenClicks').val())
sumForFactor -= parseFloat($('#' + rowData.row_id + '_margenClicks').val()) sumForFactor -= parseFloat($('#' + rowData.row_id + '_margenClicks').val())
if(!isNaN(parseFloat($('#' + rowData.row_id + 'lp_bn_totalTinta').val()))){ if(!isNaN(parseFloat($('#' + rowData.row_id + 'lp_bn_totalTinta').val()))){
@ -57,6 +64,8 @@ function updateTotales(updateLP=true, updateServicios=true, updateEnvio=true){
totalImpresion -= margenImpresion totalImpresion -= margenImpresion
totalPapel -= margenPapel totalPapel -= margenPapel
margenImpresion += margenPorHoras
var porcentajeMargenPapel = isNaN(margenPapel/(totalPapel)*100.0)?0:margenPapel/(totalPapel)*100.0 var porcentajeMargenPapel = isNaN(margenPapel/(totalPapel)*100.0)?0:margenPapel/(totalPapel)*100.0
$('#porcentajeMargenPapel').text(porcentajeMargenPapel.toFixed(0) + '%') $('#porcentajeMargenPapel').text(porcentajeMargenPapel.toFixed(0) + '%')
$('#totalCostePapel').text((addSeparatorsNF(totalPapel.toFixed(2), ".", ",", ".")) + "€") $('#totalCostePapel').text((addSeparatorsNF(totalPapel.toFixed(2), ".", ",", ".")) + "€")
@ -150,7 +159,7 @@ function updateTotales(updateLP=true, updateServicios=true, updateEnvio=true){
sumForFactorPonderado += totalServicios; sumForFactorPonderado += totalServicios;
var porcentajeMargenServicios = margenServicios/(margenServicios+totalServicios)*100 var porcentajeMargenServicios = margenServicios/(totalServicios)*100
$('#porcentajeMargenServicios').text(isNaN(porcentajeMargenServicios.toFixed(0))?0:porcentajeMargenServicios.toFixed(0) + '%') $('#porcentajeMargenServicios').text(isNaN(porcentajeMargenServicios.toFixed(0))?0:porcentajeMargenServicios.toFixed(0) + '%')
$('#totalServicios').text((addSeparatorsNF(totalServicios.toFixed(2), ".", ",", ".")) + "€") $('#totalServicios').text((addSeparatorsNF(totalServicios.toFixed(2), ".", ",", ".")) + "€")
$('#margenServicios').text((addSeparatorsNF(margenServicios.toFixed(2), ".", ",", ".")) + "€") $('#margenServicios').text((addSeparatorsNF(margenServicios.toFixed(2), ".", ",", ".")) + "€")
@ -189,10 +198,13 @@ function updateTotales(updateLP=true, updateServicios=true, updateEnvio=true){
var totalCostes = parseFloat(totalPapel.toFixed(2)) + parseFloat(totalImpresion.toFixed(2)) + parseFloat(totalServicios.toFixed(2)) + parseFloat(totalEnvios.toFixed(2)) var totalCostes = parseFloat(totalPapel.toFixed(2)) + parseFloat(totalImpresion.toFixed(2)) + parseFloat(totalServicios.toFixed(2)) + parseFloat(totalEnvios.toFixed(2))
var totalMargenes = parseFloat(margenPapel.toFixed(2)) + parseFloat(margenImpresion.toFixed(2)) + parseFloat(margenServicios.toFixed(2)) + parseFloat(margenEnvios.toFixed(2)) var totalMargenes = parseFloat(margenPapel.toFixed(2)) + parseFloat(margenImpresion.toFixed(2)) + parseFloat(margenServicios.toFixed(2)) + parseFloat(margenEnvios.toFixed(2))
var porcentajeMargen = (100*totalMargenes/(totalCostes+totalMargenes)).toFixed(0)
$('#totalCostes').text((addSeparatorsNF(totalCostes.toFixed(2), ".", ",", ".")) + "€") $('#totalCostes').text((addSeparatorsNF(totalCostes.toFixed(2), ".", ",", ".")) + "€")
$('#totalMargenes').text((addSeparatorsNF(totalMargenes.toFixed(2), ".", ",", ".")) + "€") $('#totalMargenes').text((addSeparatorsNF(totalMargenes.toFixed(2), ".", ",", ".")) + "€")
$('#totalCostes').attr('val',(totalCostes).toFixed(2) + '€') $('#totalCostes').attr('val',(totalCostes).toFixed(2) + '€')
$('#totalMargenes').attr('val',(totalMargenes).toFixed(2) + '€') $('#totalMargenes').attr('val',(totalMargenes).toFixed(2) + '€')
$('#porcentajeMargen').text(porcentajeMargen + '%')
$('#porcentajeMargen').attr('val',porcentajeMargen)
if($('#total_descuentoPercent').val()<0){ if($('#total_descuentoPercent').val()<0){
$('#total_descuentoPercent').val(0) $('#total_descuentoPercent').val(0)

View File

@ -31,34 +31,6 @@
> >
</div><!--//.mb-3 --> </div><!--//.mb-3 -->
<div class="mb-3">
<label for="precio_min" class="form-label">
<?= lang('Tarifaextra.precioMin') ?>*
</label>
<input
type="text"
id="precio_min"
name="precio_min"
required
class="form-control"
value="<?= old('precio_min', $tarifaextraEntity->precio_min) ?>"
>
</div><!--//.mb-3 -->
<div class="mb-3">
<label for="importe_fijo" class="form-label">
<?= lang('Tarifaextra.importeFijo') ?>*
</label>
<input
type="text"
id="importe_fijo"
name="importe_fijo"
required
class="form-control"
value="<?= old('importe_fijo', $tarifaextraEntity->importe_fijo) ?>"
>
</div><!--//.mb-3 -->
<div class="mb-3"> <div class="mb-3">
<label for="margen" class="form-label"> <label for="margen" class="form-label">
<?= lang('Tarifaextra.margen') ?>* <?= lang('Tarifaextra.margen') ?>*

View File

@ -17,8 +17,6 @@
<tr> <tr>
<th><?= lang('Tarifaextra.nombre') ?></th> <th><?= lang('Tarifaextra.nombre') ?></th>
<th><?= lang('Tarifaextra.precio') ?></th> <th><?= lang('Tarifaextra.precio') ?></th>
<th><?= lang('Tarifaextra.precioMin') ?></th>
<th><?= lang('Tarifaextra.importeFijo') ?></th>
<th><?= lang('Tarifaextra.margen') ?></th> <th><?= lang('Tarifaextra.margen') ?></th>
<th><?= lang('Tarifaextra.mostrar_en_presupuesto') ?></th> <th><?= lang('Tarifaextra.mostrar_en_presupuesto') ?></th>
<th class="text-nowrap"><?= lang('Basic.global.Action') ?></th> <th class="text-nowrap"><?= lang('Basic.global.Action') ?></th>
@ -33,12 +31,6 @@
<td class="align-middle"> <td class="align-middle">
<?= esc($item->precio) ?> <?= esc($item->precio) ?>
</td> </td>
<td class="align-middle">
<?= esc($item->precio_min) ?>
</td>
<td class="align-middle">
<?= esc($item->importe_fijo) ?>
</td>
<td class="align-middle"> <td class="align-middle">
<?= esc($item->margen) ?> <?= esc($item->margen) ?>
</td> </td>

View File

@ -9,7 +9,7 @@
<div class="mb-3"> <div class="mb-3">
<label for="nombre" class="form-label"> <label for="nombre" class="form-label">
<?=lang('Tarifamanipulado.precioMin') ?>* <?=lang('Tarifamanipulado.importeMinimo') ?>*
</label> </label>
<input type="text" id="precio_min" name="precio_min" class="form-control" value="<?=old('precio_min', $tarifaManipuladoEntity->precio_min) ?>"> <input type="text" id="precio_min" name="precio_min" class="form-control" value="<?=old('precio_min', $tarifaManipuladoEntity->precio_min) ?>">
</div><!--//.mb-3 --> </div><!--//.mb-3 -->

View File

@ -17,7 +17,7 @@
<thead> <thead>
<tr> <tr>
<th><?= lang('Tarifamanipulado.nombre') ?></th> <th><?= lang('Tarifamanipulado.nombre') ?></th>
<th><?= lang('Tarifamanipulado.precioMin') ?></th> <th><?= lang('Tarifamanipulado.importeMinimo') ?></th>
<th><?= lang('Tarifamanipulado.importeFijo') ?></th> <th><?= lang('Tarifamanipulado.importeFijo') ?></th>
<th><?= lang('Tarifamanipulado.mostrar_en_presupuesto') ?></th> <th><?= lang('Tarifamanipulado.mostrar_en_presupuesto') ?></th>
<th class="text-nowrap"><?= lang('Basic.global.Action') ?></th> <th class="text-nowrap"><?= lang('Basic.global.Action') ?></th>

View File

@ -31,33 +31,6 @@
> >
</div><!--//.mb-3 --> </div><!--//.mb-3 -->
<div class="mb-3">
<label for="precio_min" class="form-label">
<?= lang('Tarifapreimpresion.precioMin') ?>*
</label>
<input
type="text"
id="precio_min"
name="precio_min"
required
class="form-control"
value="<?= old('precio_min', $tarifapreimpresionEntity->precio_min) ?>"
>
</div><!--//.mb-3 -->
<div class="mb-3">
<label for="importe_fijo" class="form-label">
<?= lang('Tarifapreimpresion.importeFijo') ?>*
</label>
<input
type="text"
id="importe_fijo"
name="importe_fijo"
required
class="form-control"
value="<?= old('importe_fijo', $tarifapreimpresionEntity->importe_fijo) ?>"
>
</div><!--//.mb-3 -->
<div class="mb-3"> <div class="mb-3">
<label for="margen" class="form-label"> <label for="margen" class="form-label">

View File

@ -17,8 +17,6 @@
<tr> <tr>
<th><?= lang('Tarifapreimpresion.nombre') ?></th> <th><?= lang('Tarifapreimpresion.nombre') ?></th>
<th><?= lang('Tarifapreimpresion.precio') ?></th> <th><?= lang('Tarifapreimpresion.precio') ?></th>
<th><?= lang('Tarifapreimpresion.precioMin') ?></th>
<th><?= lang('Tarifapreimpresion.importeFijo') ?></th>
<th><?= lang('Tarifapreimpresion.margen') ?></th> <th><?= lang('Tarifapreimpresion.margen') ?></th>
<th><?= lang('Tarifapreimpresion.mostrar_en_presupuesto') ?></th> <th><?= lang('Tarifapreimpresion.mostrar_en_presupuesto') ?></th>
<th class="text-nowrap"><?= lang('Basic.global.Action') ?></th> <th class="text-nowrap"><?= lang('Basic.global.Action') ?></th>
@ -33,12 +31,6 @@
<td class="align-middle"> <td class="align-middle">
<?= esc($item->precio) ?> <?= esc($item->precio) ?>
</td> </td>
<td class="align-middle">
<?= esc($item->precio_min) ?>
</td>
<td class="align-middle">
<?= esc($item->importe_fijo) ?>
</td>
<td class="align-middle"> <td class="align-middle">
<?= esc($item->margen) ?> <?= esc($item->margen) ?>
</td> </td>