mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
Merge branch 'bug/a_favor_fibra' into 'main'
resuelto el bug. tampoco funcionaba el comparador para rotativa color y esta arreglado See merge request jjimenez/safekat!132
This commit is contained in:
@ -425,6 +425,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
'merma' => intval($reqData['merma']) ?? 0,
|
||||
'ancho' => intval($reqData['ancho']) ?? 100000,
|
||||
'alto' => intval($reqData['alto']) ?? 100000,
|
||||
'a_favor_fibra' => $reqData['a_favor_fibra'] ?? 1,
|
||||
'isCosido' => true, // JJO esto es custom por cada tipo de presupuesto
|
||||
);
|
||||
|
||||
@ -752,15 +753,13 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
|
||||
public function getCompIntRotData($datosPedido, $papel_generico, $gramaje, $paginas, $cliente_id, $datosTipolog = null)
|
||||
{
|
||||
|
||||
$uso = 'interior';
|
||||
|
||||
$tipo = $paginas->color>0? 'color': 'negro';
|
||||
|
||||
|
||||
$parametrosRotativa = (object)array(
|
||||
'a_favor_fibra' => 0, // este parametro se cambia para comprobar
|
||||
// en las dos direcciones (menos en rustica fresada que es siempre 1)
|
||||
'a_favor_fibra' => $datosPedido->a_favor_fibra,
|
||||
'bnPages' => $paginas->negro,
|
||||
'colorPages' => $paginas->color,
|
||||
'rotativa_gota_negro' => 0,
|
||||
@ -773,12 +772,12 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
|
||||
$tipo = array();
|
||||
if( $paginas->color > 0 ){
|
||||
$tipo[] = 'color';
|
||||
$tipo = 'color';
|
||||
$opciones_papel['color'] = 1;
|
||||
}
|
||||
if( $paginas->negro > 0 ){
|
||||
$opciones_papel['bn'] = 1;
|
||||
$tipo[] = 'negro';
|
||||
$tipo = 'negro';
|
||||
}
|
||||
|
||||
// Se obtienen los papeles disponibles
|
||||
@ -828,95 +827,90 @@ 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 = 1; $i <= 1; $i++) { // Para que por defecto salga sólo a favor de fibra
|
||||
|
||||
$parametrosRotativa->a_favor_fibra = $i;
|
||||
|
||||
$tarifamodel = new MaquinasTarifasImpresionModel();
|
||||
[$tarifaId, $tarifa] = $tarifamodel->getTarifa($maquina->maquina_id, $uso, is_array($tipo)?'color':$tipo);
|
||||
if(!is_float($tarifa)){
|
||||
continue;
|
||||
}
|
||||
|
||||
// precio del pliego de impresion
|
||||
$linea['fields'] = PresupuestoService::getCostesLineaRotativa($maquina, $papel, $datosPedido, $parametrosRotativa);
|
||||
|
||||
[$precio_pliego_impresion, $margen_pliego_impresion] = PresupuestoService::getPrecioPliego($maquina, $papel, $datosPedido->paginas);
|
||||
|
||||
$linea['fields']['tarifa_impresion_id'] = $tarifaId;
|
||||
|
||||
$linea['fields']['precios_pliegos'] = $precio_pliego_impresion;
|
||||
|
||||
$linea['fields']['precio_libro'] = $linea['fields']['pliegos_libro'] * $precio_pliego_impresion;
|
||||
// Precio papel pedido
|
||||
$linea['fields']['precio_pedido'] = $linea['fields']['precio_libro'] * ($datosPedido->tirada + $datosPedido->merma);
|
||||
$linea['fields']['margen_papel_pedido'] = $linea['fields']['pliegos_libro']*$margen_pliego_impresion* ($datosPedido->tirada + $datosPedido->merma); ;
|
||||
|
||||
$linea['fields']['a_favor_fibra'] = $parametrosRotativa->a_favor_fibra;
|
||||
$linea['fields']['maquina'] = $maquina->maquina;
|
||||
$linea['fields']['maquina_id'] = $maquina->maquina_id;
|
||||
$linea['fields']['maquina_velocidad'] = $maquina->velocidad;
|
||||
$linea['fields']['tipo_maquina'] = 'inkjet';
|
||||
$linea['fields']['papel_impresion'] = $papel->nombre;
|
||||
$linea['fields']['papel_impresion_id'] = $papel->id;
|
||||
$linea['fields']['paginas'] = $datosPedido->paginas;
|
||||
$linea['fields']['paginas_color'] = $paginas->color;
|
||||
$linea['fields']['gramaje'] = $gramaje;
|
||||
$linea['fields']['papel_generico_id'] = $papel_generico['id'];
|
||||
$linea['fields']['papel_generico'] = $papel_generico['nombre'];
|
||||
|
||||
$linea['fields']['posicion_formas'] = $parametrosRotativa->a_favor_fibra ? 'h' : 'v';
|
||||
$linea['fields']['num_formas_horizontales'] = floor($linea['fields']['factor_anchura']);
|
||||
$linea['fields']['num_formas_verticales'] = floor($linea['fields']['factor_altura']);
|
||||
|
||||
|
||||
|
||||
$linea['fields']['datosTipologias'] = $datosTipologias[0];
|
||||
|
||||
// impresion
|
||||
$linea['fields']['precio_click'] = $tarifa;
|
||||
$linea['fields']['precio_click_pedido'] = $linea['fields']['clicks_pedido'] * $linea['fields']['precio_click'];
|
||||
|
||||
$linea['fields']['tiempo_maquina'] = PresupuestoService::getTiempoMaquina(
|
||||
$linea['fields']['precio_click_pedido'],
|
||||
$linea['fields']['precio_click'],
|
||||
$maquina->velocidad);
|
||||
|
||||
|
||||
$clientePreciosModel = new ClientePreciosModel();
|
||||
$config = (object)[
|
||||
"tipo" => $uso,
|
||||
"tipo_maquina" => 'inkjet',
|
||||
"tipo_impresion" => $tipo
|
||||
];
|
||||
$tiempo = PresupuestoService::getHorasMaquina(
|
||||
$linea['fields']['precio_click_pedido'],
|
||||
$linea['fields']['precio_click'],
|
||||
$maquina->velocidad);
|
||||
[$precio_hora, $margen_precio_hora] = $clientePreciosModel->get_precio_hora($cliente_id, $config, $tiempo);
|
||||
|
||||
if(is_null($precio_hora)){
|
||||
continue;
|
||||
}
|
||||
|
||||
$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*(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_click_pedido'] + // precio clicks del pedido
|
||||
$linea['fields']['precio_impresion_horas'] + // horas de maquina
|
||||
$linea['fields']['precio_tinta'] + // tinta
|
||||
$linea['fields']['total_corte']; // corte
|
||||
|
||||
array_push($lineas, $linea);
|
||||
$tarifamodel = new MaquinasTarifasImpresionModel();
|
||||
[$tarifaId, $tarifa] = $tarifamodel->getTarifa($maquina->maquina_id, $uso, is_array($tipo)?'color':$tipo);
|
||||
if(!is_float($tarifa)){
|
||||
continue;
|
||||
}
|
||||
|
||||
// precio del pliego de impresion
|
||||
$linea['fields'] = PresupuestoService::getCostesLineaRotativa($maquina, $papel, $datosPedido, $parametrosRotativa);
|
||||
|
||||
[$precio_pliego_impresion, $margen_pliego_impresion] = PresupuestoService::getPrecioPliego($maquina, $papel, $datosPedido->paginas);
|
||||
|
||||
$linea['fields']['tarifa_impresion_id'] = $tarifaId;
|
||||
|
||||
$linea['fields']['precios_pliegos'] = $precio_pliego_impresion;
|
||||
|
||||
$linea['fields']['precio_libro'] = $linea['fields']['pliegos_libro'] * $precio_pliego_impresion;
|
||||
// Precio papel pedido
|
||||
$linea['fields']['precio_pedido'] = $linea['fields']['precio_libro'] * ($datosPedido->tirada + $datosPedido->merma);
|
||||
$linea['fields']['margen_papel_pedido'] = $linea['fields']['pliegos_libro']*$margen_pliego_impresion* ($datosPedido->tirada + $datosPedido->merma); ;
|
||||
|
||||
$linea['fields']['a_favor_fibra'] = $parametrosRotativa->a_favor_fibra;
|
||||
$linea['fields']['maquina'] = $maquina->maquina;
|
||||
$linea['fields']['maquina_id'] = $maquina->maquina_id;
|
||||
$linea['fields']['maquina_velocidad'] = $maquina->velocidad;
|
||||
$linea['fields']['tipo_maquina'] = 'inkjet';
|
||||
$linea['fields']['papel_impresion'] = $papel->nombre;
|
||||
$linea['fields']['papel_impresion_id'] = $papel->id;
|
||||
$linea['fields']['paginas'] = $datosPedido->paginas;
|
||||
$linea['fields']['paginas_color'] = $paginas->color;
|
||||
$linea['fields']['gramaje'] = $gramaje;
|
||||
$linea['fields']['papel_generico_id'] = $papel_generico['id'];
|
||||
$linea['fields']['papel_generico'] = $papel_generico['nombre'];
|
||||
|
||||
$linea['fields']['posicion_formas'] = $parametrosRotativa->a_favor_fibra ? 'h' : 'v';
|
||||
$linea['fields']['num_formas_horizontales'] = floor($linea['fields']['factor_anchura']);
|
||||
$linea['fields']['num_formas_verticales'] = floor($linea['fields']['factor_altura']);
|
||||
|
||||
|
||||
|
||||
$linea['fields']['datosTipologias'] = $datosTipologias[0];
|
||||
|
||||
// impresion
|
||||
$linea['fields']['precio_click'] = $tarifa;
|
||||
$linea['fields']['precio_click_pedido'] = $linea['fields']['clicks_pedido'] * $linea['fields']['precio_click'];
|
||||
|
||||
$linea['fields']['tiempo_maquina'] = PresupuestoService::getTiempoMaquina(
|
||||
$linea['fields']['precio_click_pedido'],
|
||||
$linea['fields']['precio_click'],
|
||||
$maquina->velocidad);
|
||||
|
||||
|
||||
$clientePreciosModel = new ClientePreciosModel();
|
||||
$config = (object)[
|
||||
"tipo" => $uso,
|
||||
"tipo_maquina" => 'inkjet',
|
||||
"tipo_impresion" => $tipo
|
||||
];
|
||||
$tiempo = PresupuestoService::getHorasMaquina(
|
||||
$linea['fields']['precio_click_pedido'],
|
||||
$linea['fields']['precio_click'],
|
||||
$maquina->velocidad);
|
||||
[$precio_hora, $margen_precio_hora] = $clientePreciosModel->get_precio_hora($cliente_id, $config, $tiempo);
|
||||
|
||||
if(is_null($precio_hora)){
|
||||
continue;
|
||||
}
|
||||
|
||||
$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*(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_click_pedido'] + // precio clicks del pedido
|
||||
$linea['fields']['precio_impresion_horas'] + // horas de maquina
|
||||
$linea['fields']['precio_tinta'] + // tinta
|
||||
$linea['fields']['total_corte']; // corte
|
||||
|
||||
array_push($lineas, $linea);
|
||||
}
|
||||
}
|
||||
return $lineas;
|
||||
|
||||
@ -280,6 +280,7 @@ class PresupuestoService extends BaseService
|
||||
|
||||
$anchoLibro = $datosPedido->ancho;
|
||||
$altoLibro = $datosPedido->alto;
|
||||
|
||||
if (!$parametrosRotativa->a_favor_fibra) {
|
||||
$anchoLibro = $datosPedido->alto;
|
||||
$altoLibro = $datosPedido->ancho;
|
||||
|
||||
@ -1130,7 +1130,7 @@
|
||||
|
||||
if ($(''+ elementos.papel).select2('data').length > 0 &&
|
||||
$(''+ elementos.gramaje).select2('data').length > 0 &&
|
||||
parseInt($(''+ elementos.paginas).val()) > 0 &&
|
||||
parseInt($(''+ elementos.paginas).val()) >= 0 &&
|
||||
checkDatosPedidoForComp()) {
|
||||
|
||||
|
||||
@ -1143,8 +1143,8 @@
|
||||
else
|
||||
{
|
||||
if(!is_hq){
|
||||
if ($('#compPapelNegro').select2('data')>0 && $('#compPapelColor').select2('data')>0 &&
|
||||
$('#compGramajeNegro').select2('data')>0 && $('#compGramajeColor').select2('data')>0)
|
||||
if ($('#compPapelNegro').select2('data').length>0 && $('#compPapelColor').select2('data').length>0 &&
|
||||
$('#compGramajeNegro').select2('data').length>0 && $('#compGramajeColor').select2('data').length>0)
|
||||
{
|
||||
if(($('#compPapelNegro').select2('data')[0].id == $('#compPapelColor').select2('data')[0].id &&
|
||||
$('#compGramajeNegro').select2('data')[0].text.trim() == $('#compGramajeColor').select2('data')[0].text.trim()))
|
||||
|
||||
@ -158,7 +158,7 @@ function format(d) {
|
||||
'</div>'+
|
||||
'<div class="col-md-12 col-lg-1">' +
|
||||
'<?= lang('Presupuestos.numPagColor') ?>' +
|
||||
'<input type="text" id="' + d.row_id +'_numPagColor" name="' + d.row_id +'_numPagColor" class="lp-cell lp-input lp-cell-disabled" readonly value="' + d.numPagColor +'">' +
|
||||
'<input type="text" id="' + d.row_id +'_numPagColor" name="' + d.row_id +'_numPagColor" class="lp-cell lp-input' + (d.row_id.includes('color')?'" ':' lp-cell-disabled" readonly ') + ' value="' + d.numPagColor +'">' +
|
||||
'</div>' +
|
||||
'<div class="col-md-12 col-lg-1">' +
|
||||
'<?= lang('Presupuestos.saturacion') ?>' +
|
||||
@ -2268,7 +2268,7 @@ function clear_lp_rot_bn(clear_selectors){
|
||||
function change_lp_rot_bn_maquina(){
|
||||
|
||||
if(parseInt($('#lp_rot_bn_paginas').val())>0){
|
||||
calcularPresupuesto_rot_bn();
|
||||
calcularPresupuesto_rot_bn(true,false);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2294,6 +2294,10 @@ function change_lp_rot_bn_aFavorFibra(){
|
||||
$('#lp_rot_bn_gramaje option:selected').text().length>0 &&
|
||||
parseInt($('#lp_rot_bn_papelImpresion option:selected').val())>0
|
||||
){
|
||||
var rowData = tableLineasPresupuesto.row('#lp_rot_bn').data()
|
||||
rowData.aFavorFibra = $('#lp_rot_bn_aFavorFibra').prop('checked')
|
||||
tableLineasPresupuesto.row('#lp_rot_bn').data(rowData).draw(false)
|
||||
|
||||
|
||||
calcularPresupuesto_rot_bn(false, true);
|
||||
}
|
||||
@ -2313,7 +2317,7 @@ function calcularPresupuesto_rot_bn(fromComparador=false, updatedTipologias=fals
|
||||
gramaje: $('#lp_rot_bn_gramaje option:selected').text().trim(),
|
||||
maquina_id: $('#lp_rot_bn_maquina option:selected').val(),
|
||||
papel_impresion_id: $('#lp_rot_bn_papelImpresion option:selected').val(),
|
||||
fibra: $('#lp_rot_bn_aFavorFibra').prop('checked')
|
||||
fibra: fromComparador==false? ($('#lp_rot_bn_aFavorFibra').prop('checked')?1:0):1
|
||||
}
|
||||
}
|
||||
|
||||
@ -2332,6 +2336,7 @@ function calcularPresupuesto_rot_bn(fromComparador=false, updatedTipologias=fals
|
||||
papel_generico: input_data.papel_generico,
|
||||
gramaje: input_data.gramaje,
|
||||
cliente_id: $('#clienteId').find(":selected").val(),
|
||||
a_favor_fibra: fromComparador==false? ($('#lp_rot_bn_aFavorFibra').prop('checked')?1:0):1,
|
||||
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
|
||||
};
|
||||
|
||||
@ -2429,7 +2434,7 @@ function fill_lp_rot_bn(row, fromComparador=false){
|
||||
gramaje: row.gramaje,
|
||||
papel_impresion_id: row.papelImpresionId,
|
||||
maquina_id: row.maquinaId,
|
||||
fibra: row.aFavorFibra=='no'?false:true
|
||||
fibra: row.aFavorFibra=='no'?0:1
|
||||
}
|
||||
|
||||
calcularPresupuesto_rot_bn(true, false, input_data);
|
||||
@ -2592,7 +2597,8 @@ function clear_lp_rot_color(clear_selectors){
|
||||
function change_lp_rot_color_maquina(){
|
||||
|
||||
if(parseInt($('#lp_rot_color_paginas').val())>0){
|
||||
calcularPresupuesto_rot_color();
|
||||
|
||||
calcularPresupuesto_rot_color(true,false);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2617,7 +2623,10 @@ function change_lp_rot_color_aFavorFibra(){
|
||||
$('#lp_rot_color_gramaje option:selected').text().length>0 &&
|
||||
parseInt($('#lp_rot_color_papelImpresion option:selected').val())>0
|
||||
){
|
||||
|
||||
var rowData = tableLineasPresupuesto.row('#lp_rot_color').data()
|
||||
rowData.aFavorFibra = $('#lp_rot_color_aFavorFibra').prop('checked')
|
||||
tableLineasPresupuesto.row('#lp_rot_color').data(rowData).draw(false)
|
||||
|
||||
calcularPresupuesto_rot_color(false, true);
|
||||
}
|
||||
}
|
||||
@ -2636,17 +2645,19 @@ function calcularPresupuesto_rot_color(fromComparador=false, updatedTipologias=f
|
||||
gramaje: $('#lp_rot_color_gramaje option:selected').text().trim(),
|
||||
maquina_id: $('#lp_rot_color_maquina option:selected').val(),
|
||||
papel_impresion_id: $('#lp_rot_color_papelImpresion option:selected').val(),
|
||||
fibra: $('#lp_rot_bn_aFavorFibra').prop('checked')
|
||||
fibra: fromComparador==false? ($('#lp_rot_color_aFavorFibra').prop('checked')?1:0):1
|
||||
}
|
||||
}
|
||||
|
||||
paginas_color = isNaN(parseInt($('#lp_rot_color_numPagColor').val()))?input_data.paginas:parseInt($('#lp_rot_color_numPagColor').val())
|
||||
|
||||
let datos = {
|
||||
type: 'interior_rot',
|
||||
color: 1,
|
||||
hq: 0,
|
||||
hq: 0,
|
||||
paginas: input_data.paginas,
|
||||
paginas_negro: input_data.paginas-parseInt($('#lp_rot_color_numPagColor').val()),
|
||||
paginas_color: parseInt($('#lp_rot_color_numPagColor').val()),
|
||||
paginas_negro: input_data.paginas-paginas_color,
|
||||
paginas_color: paginas_color,
|
||||
tirada: parseInt($('#tirada').val()),
|
||||
merma: parseInt($('#merma').val()),
|
||||
ancho: dimension.ancho,
|
||||
@ -2655,6 +2666,7 @@ function calcularPresupuesto_rot_color(fromComparador=false, updatedTipologias=f
|
||||
papel_generico: input_data.papel_generico,
|
||||
gramaje: input_data.gramaje,
|
||||
cliente_id: $('#clienteId').find(":selected").val(),
|
||||
a_favor_fibra: fromComparador==false? ($('#lp_rot_color_aFavorFibra').prop('checked')?1:0):1,
|
||||
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
|
||||
};
|
||||
|
||||
@ -2699,7 +2711,7 @@ function calcularPresupuesto_rot_color(fromComparador=false, updatedTipologias=f
|
||||
value.fields.a_favor_fibra == input_data.fibra) {
|
||||
|
||||
value.fields.check_papel_total = $('#lp_rot_color' + '_checkPapel').is(":checked")?1:0
|
||||
value.fields.check_impresion_total = $('#lp_rot_bn' + '_checkClicks').is(":checked")?1:0
|
||||
value.fields.check_impresion_total = $('#lp_rot_color' + '_checkClicks').is(":checked")?1:0
|
||||
|
||||
fill_lp_rot_color(value.fields);
|
||||
return false;
|
||||
@ -2756,7 +2768,7 @@ function fill_lp_rot_color(row, fromComparador=false){
|
||||
gramaje: row.gramaje,
|
||||
papel_impresion_id: row.papelImpresionId,
|
||||
maquina_id: row.maquinaId,
|
||||
fibra: row.aFavorFibra=='no'?false:true
|
||||
fibra: row.aFavorFibra=='no'?0:1
|
||||
}
|
||||
|
||||
calcularPresupuesto_rot_color(true, false, input_data);
|
||||
@ -2795,6 +2807,7 @@ function eventos_lp_rot_color(){
|
||||
$('#lp_rot_color_maquina').bind("focus", set_lp_rot_color_maquina);
|
||||
$('#lp_rot_color_maquina').bind("change", change_lp_rot_color_maquina);
|
||||
$('#lp_rot_color_paginas').bind("change", change_lp_rot_color_paginas);
|
||||
$('#lp_rot_color_numPagColor').bind("change", change_lp_rot_color_paginas);
|
||||
$('#lp_rot_color_vercalculos').bind("click", {rowId: 'lp_rot_color'}, verCalculosInkjet);
|
||||
$('#lp_rot_color_aFavorFibra').bind("change", change_lp_rot_color_aFavorFibra);
|
||||
$('.lp-rot-color-tipologia').bind("change", change_lp_rot_color_tipologia);
|
||||
@ -3314,6 +3327,7 @@ async function fill_bbdd_from_lp(presupuesto_id){
|
||||
linea_data.rotativa_precio_hora_corte = rowData.precioHoraCorte
|
||||
linea_data.rotativa_tiempo_corte = rowData.tiempoCorte
|
||||
linea_data.rotativa_total_corte = rowData.totalCorte
|
||||
linea_data.rotativa_a_favor_fibra = rowData.aFavorFibra==true?1:0
|
||||
}
|
||||
|
||||
data.push(linea_data)
|
||||
|
||||
Reference in New Issue
Block a user